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

Function setUnique

src/backend/cpu/set.cpp:32–51  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30
31template<typename T>
32Array<T> setUnique(const Array<T> &in, const bool is_sorted) {
33 Array<T> out = createEmptyArray<T>(af::dim4());
34 if (is_sorted) {
35 out = copyArray<T>(in);
36 } else {
37 out = sort<T>(in, 0, true);
38 }
39
40 // Need to sync old jobs since we need to
41 // operator on pointers directly in std::unique
42 getQueue().sync();
43
44 T *ptr = out.get();
45 T *last = unique(ptr, ptr + in.elements());
46 auto dist = static_cast<dim_t>(distance(ptr, last));
47
48 dim4 dims(dist, 1, 1, 1);
49 out.resetDims(dims);
50 return out;
51}
52
53template<typename T>
54Array<T> setUnion(const Array<T> &first, const Array<T> &second,

Callers 2

setUnionFunction · 0.70
setIntersectFunction · 0.70

Calls 7

dim4Class · 0.70
getQueueFunction · 0.50
distanceFunction · 0.50
syncMethod · 0.45
getMethod · 0.45
elementsMethod · 0.45
resetDimsMethod · 0.45

Tested by

no test coverage detected