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

Function setUnique

src/backend/oneapi/set.cpp:37–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35
36template<typename T>
37Array<T> setUnique(const Array<T> &in, const bool is_sorted) {
38 auto dpl_policy = ::oneapi::dpl::execution::make_device_policy(getQueue());
39
40 Array<T> out = copyArray<T>(in);
41
42 auto out_begin = ::oneapi::dpl::begin(*out.get());
43 auto out_end = out_begin + out.elements();
44
45 if (!is_sorted) {
46 std::sort(dpl_policy, out_begin, out_end,
47 [](auto lhs, auto rhs) { return lhs < rhs; });
48 }
49
50 out_end = std::unique(dpl_policy, out_begin, out_end);
51
52 out.resetDims(dim4(std::distance(out_begin, out_end), 1, 1, 1));
53
54 return out;
55}
56
57template<typename T>
58Array<T> setUnion(const Array<T> &first, const Array<T> &second,

Callers 2

setUnionFunction · 0.70
setIntersectFunction · 0.70

Calls 8

beginFunction · 0.85
sortFunction · 0.70
getQueueFunction · 0.50
dim4Class · 0.50
distanceFunction · 0.50
getMethod · 0.45
elementsMethod · 0.45
resetDimsMethod · 0.45

Tested by

no test coverage detected