|
| AFAPI array | select (const array &cond, const array &a, const array &b) |
| | C++ Interface to select elements based on a conditional array.
|
| AFAPI array | select (const array &cond, const array &a, const double &b) |
| | C++ Interface to select elements based on a conditional array.
|
| AFAPI array | select (const array &cond, const double &a, const array &b) |
| | C++ Interface to select elements based on a conditional array.
|
| AFAPI array | select (const array &cond, const array &a, const long long b) |
| | C++ Interface to select elements based on a conditional array.
|
| AFAPI array | select (const array &cond, const array &a, const unsigned long long b) |
| | C++ Interface to select elements based on a conditional array.
|
| AFAPI array | select (const array &cond, const long long a, const array &b) |
| | C++ Interface to select elements based on a conditional array.
|
| AFAPI array | select (const array &cond, const unsigned long long a, const array &b) |
| | C++ Interface to select elements based on a conditional array.
|
| AFAPI af_err | af_select (af_array *out, const af_array cond, const af_array a, const af_array b) |
| | C Interface to select elements based on a conditional array.
|
| AFAPI af_err | af_select_scalar_r (af_array *out, const af_array cond, const af_array a, const double b) |
| | C Interface to select elements based on a conditional array.
|
| AFAPI af_err | af_select_scalar_l (af_array *out, const af_array cond, const double a, const af_array b) |
| | C Interface to select elements based on a conditional array.
|
| AFAPI af_err | af_select_scalar_r_long (af_array *out, const af_array cond, const af_array a, const long long b) |
| | C Interface to select elements based on a conditional array.
|
| AFAPI af_err | af_select_scalar_r_ulong (af_array *out, const af_array cond, const af_array a, const unsigned long long b) |
| | C Interface to select elements based on a conditional array.
|
| AFAPI af_err | af_select_scalar_l_long (af_array *out, const af_array cond, const long long a, const af_array b) |
| | C Interface to select elements based on a conditional array.
|
| AFAPI af_err | af_select_scalar_l_ulong (af_array *out, const af_array cond, const unsigned long long a, const af_array b) |
| | C Interface to select elements based on a conditional array.
|
Select elements based on a conditional array.
Creates a new array that is composed of values either from array a or array b, based on a third conditional array. For all non-zero elements in the conditional array, the output array will contain values from a. Otherwise the output will contain values from b.
int elements = 9;
char hCond[] = {1, 0, 1, 0, 1, 0, 1, 0, 1};
float hA[] = {2, 2, 2, 2, 2, 2, 2, 2, 2};
float hB[] = {3, 3, 3, 3, 3, 3, 3, 3, 3};
array cond(elements, hCond);
array a(elements, hA);
array b(elements, hB);
array out =
select(cond, a, b);
is equivalent to:
vector<float> hOut(elements);
for (size_t i = 0; i < hOut.size(); i++) {
if (hCond[i]) {
hOut[i] = hA[i];
} else {
hOut[i] = hB[i];
}
}
The conditional array must be a b8 typed array.
The select function can perform batched operations based on the size of each of the inputs. The following table describes the input and output sizes for supported batched configurations.
| Output | Condition Array | Array A | Array B |
| (M, N) | (M, 1) | (M, 1) | (M, N) |
| (M, N) | (M, 1) | (M, N) | (M, 1) |
| (M, N) | (M, 1) | (M, N) | (M, N) |
| (M, N) | (M, N) | (M, 1) | (M, N) |
| (M, N) | (M, N) | (M, 1) | (M, N) |