A high-performance general-purpose compute library

Check if any values along a given dimension are true, according to an array of keys. More...

Functions

AFAPI void anyTrueByKey (array &keys_out, array &vals_out, const array &keys, const array &vals, const int dim=-1)
C++ Interface to check if any values along a given dimension are true, according to an array of keys. More...

AFAPI af_err af_any_true_by_key (af_array *keys_out, af_array *vals_out, const af_array keys, const af_array vals, const int dim)
C Interface to check if any values along a given dimension are true. More...

Detailed Description

Check if any values along a given dimension are true, according to an array of keys.

Values corresponding to each group of consecutive equal keys will be tested to check if any are true. Keys can repeat; however, only consecutive key values will be considered for each reduction. If a key value is repeated somewhere else in the keys array it will be considered the start of a new reduction. There are two outputs: the reduced set of consecutive keys and the corresponding final set of reduced values.

An example demonstrating the reduction behavior can be seen in the following snippet.

array keys(9, hkeys); // keys = [ 0 0 1 1 1 0 0 2 2 ]
array vals(9, hvals); // vals = [ 1 1 0 1 1 0 0 1 0 ];
array okeys, ovals;
anyTrueByKey(okeys, ovals, keys, vals);
// okeys = [ 0 1 0 2 ]
// ovals = [ 1 0 0 0 ]

The keys' input type must be integer (s32 or u32).

The output type is b8.

The keys array must be 1-dimenstional matching the size of the reduced dimension. An example of multi-dimensional reduce-by-key can be seen below:

array keys(5, hkeys);
array vals(2, 5, hvals);
// keys = [ 1 0 0 2 2 ]
// vals = [[ 1 1 1 0 1 ]
// [ 0 1 0 1 1 ]]
const int reduce_dim = 1;
array okeys, ovals;
anyTrueByKey(okeys, ovals, keys, vals, reduce_dim);
// okeys = [ 1 0 2 ]
// ovals = [[ 1 1 1 ],
// [ 0 1 1 ]]

◆ af_any_true_by_key()

 AFAPI af_err af_any_true_by_key ( af_array * keys_out, af_array * vals_out, const af_array keys, const af_array vals, const int dim )

C Interface to check if any values along a given dimension are true.

NaN values are ignored.

Parameters
 [out] keys_out reduced keys [out] vals_out array containing 1's if any true; 0's otherwise [in] keys keys array [in] vals input array [in] dim dimensions along which the check occurs
Returns
AF_SUCCESS, if function returns successfully, else an af_err code is given

◆ anyTrueByKey()

 AFAPI void anyTrueByKey ( array & keys_out, array & vals_out, const array & keys, const array & vals, const int dim = -1 )

C++ Interface to check if any values along a given dimension are true, according to an array of keys.

NaN values are ignored.

Parameters
 [out] keys_out reduced keys [out] vals_out array containing 1's if any true; 0's otherwise [in] keys keys array [in] vals input array [in] dim dimension along which the check occurs