Finds the sum of an input array according to an array of keys.
More...

AFAPI void  sumByKey (array &keys_out, array &vals_out, const array &keys, const array &vals, const int dim=1) 
 C++ Interface for sum of elements along given dimension by key. More...


AFAPI void  sumByKey (array &keys_out, array &vals_out, const array &keys, const array &vals, const int dim, const double nanval) 
 C++ Interface for sum of elements along given dimension by key while replacing nan values. More...


AFAPI af_err  af_sum_by_key (af_array *keys_out, af_array *vals_out, const af_array keys, const af_array vals, const int dim) 
 C Interface for sum of elements in an array according to key. More...


AFAPI af_err  af_sum_by_key_nan (af_array *keys_out, af_array *vals_out, const af_array keys, const af_array vals, const int dim, const double nanval) 
 C Interface for sum of elements in an array according to key while replacing nans. More...


Finds the sum of an input array according to an array of keys.
The values corresponding to each group of consecutive equal keys will be summed together. 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 reduced values. An example demonstrating the reduction behavior can be seen in the following snippet.
The keys input type must be an integer type(s32 or u32). This table defines the return types for the corresponding values type
Input Type  Output Type 
f32, f64, c32, c64  same as input 
s32, u32, s64, u64  same as input 
s16  s32 
u16, u8, b8  u32 
f16  f32 
The input keys must be a 1D vector matching the size of the reduced dimension. In the case of multiple dimensions in the input values array, the dim parameter specifies which dimension to reduce along. An example of multidimensional reduce by key can be seen below:
const int reduce_dim = 1;
sumByKey(okeys, ovals, keys, vals, reduce_dim);
◆ af_sum_by_key()
C Interface for sum of elements in an array according to key.
 Parameters

[out]  keys_out  will contain the reduced keys in vals along dim 
[out]  vals_out  will contain the sum of all values in vals along dim according to keys 
[in]  keys  is the key array 
[in]  vals  is the array containing the values to be reduced 
[in]  dim  The dimension along which the add operation occurs 
 Returns
 AF_SUCCESS if the execution completes properly
◆ af_sum_by_key_nan()
C Interface for sum of elements in an array according to key while replacing nans.
 Parameters

[out]  keys_out  will contain the reduced keys in vals along dim 
[out]  vals_out  will contain the sum of all values in vals along dim according to keys 
[in]  keys  is the key array 
[in]  vals  is the array containing the values to be reduced 
[in]  dim  The dimension along which the add operation occurs 
[in]  nanval  The value that will replace the NaNs in vals 
 Returns
 AF_SUCCESS if the execution completes properly
◆ sumByKey() [1/2]
C++ Interface for sum of elements along given dimension by key.
 Parameters

[out]  keys_out  will contain the reduced keys in vals along dim 
[out]  vals_out  will contain the sum of all values in vals along dim according to keys 
[in]  keys  is the key array 
[in]  vals  is the array containing the values to be reduced 
[in]  dim  The dimension along which the add operation occurs 
 Note
dim
is 1 by default. 1 denotes the first nonsingleton dimension.
◆ sumByKey() [2/2]
AFAPI void af::sumByKey 
( 
array & 
keys_out, 


array & 
vals_out, 


const array & 
keys, 


const array & 
vals, 


const int 
dim, 


const double 
nanval 

) 
 
C++ Interface for sum of elements along given dimension by key while replacing nan values.
 Parameters

[out]  keys_out  Will contain the reduced keys in vals along dim 
[out]  vals_out  Will contain the sum of all values in vals along dim according to keys 
[in]  keys  Is the key array 
[in]  vals  Is the array containing the values to be reduced 
[in]  dim  The dimension along which the add operation occurs 
[in]  nanval  The value that will replace the NaNs in vals 