A high-performance general-purpose compute library

- Main Page
- Tutorials
- Release Notes
- Examples

Functions
anyTrueByKey
ArrayFire Functions | ArrayFire Functions by Category » Vector Algorithms » Reduction operations

## 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.
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.

## 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 ]]

## Function Documentation

## ◆ 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