A high-performance general-purpose compute library

Evaluate the intersection of two arrays. More...

Functions

AFAPI array setIntersect (const array &first, const array &second, const bool is_unique=false)
 C++ Interface to evaluate the intersection of two arrays. More...
 
AFAPI af_err af_set_intersect (af_array *out, const af_array first, const af_array second, const bool is_unique)
 C Interface to evaluate the intersection of two arrays. More...
 
AFAPI array setintersect (const array &first, const array &second, const bool is_unique=false)
 

Detailed Description

Evaluate the intersection of two arrays.

The inputs must be one-dimensional arrays. Batching is not currently supported.

An example:

// input data
int h_setA[4] = {1, 2, 3, 3};
int h_setB[4] = {3, 3, 4, 5};
af::array setA(4, h_setA);
af::array setB(4, h_setB);
af::array setA_B = setIntersect(setA, setB);
// setA_B == { 3 };
A multi dimensional data container.
Definition: array.h:37
AFAPI array setIntersect(const array &first, const array &second, const bool is_unique=false)
C++ Interface to evaluate the intersection of two arrays.

The function can be sped up if the input is sorted in increasing order and its values are unique.

// input data
int h_setA[4] = {1, 2, 3, 4};
int h_setB[4] = {2, 3, 4, 5};
af::array setA(4, h_setA);
af::array setB(4, h_setB);
const bool is_unique = true;
// is_unique flag specifies if inputs are unique,
// allows algorithm to skip internal calls to setUnique
// inputs must be unique and sorted in increasing order
af::array setA_B = setIntersect(setA, setB, is_unique);
// setA_B == { 2, 3, 4 };

Function Documentation

◆ af_set_intersect()

AFAPI af_err af_set_intersect ( af_array out,
const af_array  first,
const af_array  second,
const bool  is_unique 
)

C Interface to evaluate the intersection of two arrays.

Parameters
[out]outintersection, values in increasing order
[in]firstinput array
[in]secondinput array
[in]is_uniqueif true, skip calling unique internally
Returns
AF_SUCCESS, if function returns successfully, else an af_err code is given

◆ setIntersect()

AFAPI array setIntersect ( const array first,
const array second,
const bool  is_unique = false 
)

C++ Interface to evaluate the intersection of two arrays.

Parameters
[in]firstinput array
[in]secondinput array
[in]is_uniqueif true, skip calling setUnique internally
Returns
intersection, values in increasing order

◆ setintersect()

AFAPI array setintersect ( const array first,
const array second,
const bool  is_unique = false 
)

C++ Interface to evaluate the intersection of two arrays.

Parameters
[in]firstinput array
[in]secondinput array
[in]is_uniqueif true, skip calling setUnique internally
Returns
intersection, values in increasing order
Deprecated:
Use setIntersect instead