Functions

AFAPI array setIntersect (const array &first, const array &second, const bool is_unique=false)
 C++ Interface for finding 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 for finding the intersection of two arrays. More...
 
AFAPI array setintersect (const array &first, const array &second, const bool is_unique=false)
 C++ Interface for finding the intersection of two arrays. More...
 

Detailed Description

Find the intersection of two sets. The inputs must be one-dimensional arrays. Batching is not currently supported.

A simple example of finding the intersection of two sets using setIntersect() can be seen below:

// 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 };

The function can be sped up if it is known that each 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 for finding the intersection of two arrays.

Parameters
[out]outwill contain the intersection of first and second
[in]firstis the first input array
[in]secondis the second input array
[in]is_uniqueif true, skips calling unique internally
Returns
AF_SUCCESS if the execution completes properly

◆ setintersect()

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

C++ Interface for finding the intersection of two arrays.

Parameters
[in]firstis the first input array
[in]secondis the second input array
[in]is_uniqueif true, skips calling unique internally
Returns
unique values that are present in both first and second(intersection) in increasing order
Deprecated:
Use setIntersect instead

◆ setIntersect()

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

C++ Interface for finding the intersection of two arrays.

Parameters
[in]firstis the first input array
[in]secondis the second input array
[in]is_uniqueif true, skips calling unique internally
Returns
unique values that are present in both first and second(intersection) in increasing order
af::array
A multi dimensional data container.
Definition: array.h:35
af::setIntersect
AFAPI array setIntersect(const array &first, const array &second, const bool is_unique=false)
C++ Interface for finding the intersection of two arrays.