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

Function af_sort

src/api/c/sort.cpp:43–73  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41}
42
43af_err af_sort(af_array *out, const af_array in, const unsigned dim,
44 const bool isAscending) {
45 try {
46 const ArrayInfo &info = getInfo(in);
47 af_dtype type = info.getType();
48
49 if (info.elements() == 0) { return af_retain_array(out, in); }
50 DIM_ASSERT(1, info.elements() > 0);
51
52 af_array val;
53
54 switch (type) {
55 case f32: val = sort<float>(in, dim, isAscending); break;
56 case f64: val = sort<double>(in, dim, isAscending); break;
57 case s32: val = sort<int>(in, dim, isAscending); break;
58 case u32: val = sort<uint>(in, dim, isAscending); break;
59 case s16: val = sort<short>(in, dim, isAscending); break;
60 case u16: val = sort<ushort>(in, dim, isAscending); break;
61 case s64: val = sort<intl>(in, dim, isAscending); break;
62 case u64: val = sort<uintl>(in, dim, isAscending); break;
63 case s8: val = sort<schar>(in, dim, isAscending); break;
64 case u8: val = sort<uchar>(in, dim, isAscending); break;
65 case b8: val = sort<char>(in, dim, isAscending); break;
66 default: TYPE_ERROR(1, type);
67 }
68 std::swap(*out, val);
69 }
70 CATCHALL;
71
72 return AF_SUCCESS;
73}
74
75template<typename T>
76static inline void sort_index(af_array *val, af_array *idx, const af_array in,

Callers 2

sortTestFunction · 0.50
sortFunction · 0.50

Calls 4

swapFunction · 0.85
af_retain_arrayFunction · 0.70
getTypeMethod · 0.45
elementsMethod · 0.45

Tested by

no test coverage detected