MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / sort

Function sort

src/backend/oneapi/sort.cpp:31–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29
30template<typename T>
31Array<T> sort(const Array<T> &in, const unsigned dim, bool isAscending) {
32 Array<T> out = copyArray<T>(in);
33 switch (dim) {
34 case 0: kernel::sort0<T>(out, isAscending); break;
35 case 1: kernel::sortBatched<T>(out, 1, isAscending); break;
36 case 2: kernel::sortBatched<T>(out, 2, isAscending); break;
37 case 3: kernel::sortBatched<T>(out, 3, isAscending); break;
38 default: AF_ERROR("Not Supported", AF_ERR_NOT_SUPPORTED);
39 }
40
41 if (dim != 0) {
42 af::dim4 preorderDims = out.dims();
43 af::dim4 reorderDims(0, 1, 2, 3);
44 reorderDims[dim] = 0;
45 preorderDims[0] = out.dims()[dim];
46 for (int i = 1; i <= static_cast<int>(dim); i++) {
47 reorderDims[i - 1] = i;
48 preorderDims[i] = out.dims()[i - 1];
49 }
50
51 out.setDataDims(preorderDims);
52 out = reorder<T>(out, reorderDims);
53 }
54 return out;
55}
56
57#define INSTANTIATE(T) \
58 template Array<T> sort<T>(const Array<T> &in, const unsigned dim, \

Callers 5

setUniqueFunction · 0.70
sort0ByKeyIterativeFunction · 0.50
sortByKeyBatchedFunction · 0.50
sort0IterativeFunction · 0.50
sortBatchedFunction · 0.50

Calls 2

dimsMethod · 0.45
setDataDimsMethod · 0.45

Tested by

no test coverage detected