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

Function rank

src/api/c/rank.cpp:37–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35
36template<typename T>
37static inline uint rank(const af_array in, double tol) {
38 using BT = typename af::dtype_traits<T>::base_type;
39 const Array<T> In = getArray<T>(in);
40
41 Array<BT> R = createEmptyArray<BT>(dim4());
42
43 // Scoping to get rid of q, r and t as they are not necessary
44 {
45 Array<T> q = createEmptyArray<T>(dim4());
46 Array<T> r = createEmptyArray<T>(dim4());
47 Array<T> t = createEmptyArray<T>(dim4());
48 qr(q, r, t, In);
49 using detail::abs;
50
51 R = abs<BT, T>(r);
52 }
53
54 Array<BT> val = createValueArray<BT>(R.dims(), scalar<BT>(tol));
55 Array<char> gt = logicOp<BT, af_gt_t>(R, val, val.dims());
56 Array<char> at = reduce<af_or_t, char, char>(gt, 1);
57 return getScalar<uint>(reduce_all<af_notzero_t, char, uint>(at));
58}
59
60af_err af_rank(uint* out, const af_array in, const double tol) {
61 try {

Callers 4

TESTFunction · 0.50
rankSmallFunction · 0.50
rankBigFunction · 0.50
rankLowFunction · 0.50

Calls 3

qrFunction · 0.70
dim4Class · 0.50
dimsMethod · 0.45

Tested by

no test coverage detected