-
#include "tensorstore/index_space/transformed_array.h" -
template <typename Func, typename... Arrays>
Result<bool> tensorstore::IterateOverTransformedArrays(
Func&& func,
IterationConstraints constraints,
const Arrays&... arrays); Jointly iterates over one or more transformed arrays with compatible domains.
For each index vector
input_indicesin the domain of the transformed arrays, invokes:func(&TransformedArray(arrays).array()(output_indices)...)where for each of the
arrays,output_indicesis the output index vector corresponding toinput_indices.- Requires:¶
sizeof...(Arrays) > 0- Parameters:¶
- Func &&func¶
The element-wise function. Must return
voidorboolwhen invoked with(Array::Element*...). Iteration stops if the return value offuncisfalse.- IterationConstraints constraints¶
Specifies constraints on the iteration order, and whether repeated elements may be skipped. If
constraints.can_skip_repeated_elements(), the element-wise function may be invoked only once for multipleinput_indicesvectors that yield the same tuple of element pointers. Ifconstraints.has_order_constraint(),funcis invoked in the order given byconstraints.order_constraint_value(). Otherwise, iteration is not guaranteed to occur in any particular order; an efficient iteration order is determined automatically.- const Arrays&... arrays¶
The transformed arrays over which to iterate, which must all have compatible input domains.
- Returns:¶
trueon success, orfalsein the case of an error.- Error absl::StatusCode::kInvalidArgument:¶
if the transformed arrays do not all have the same rank.
- Error absl::StatusCode::kOutOfRange:¶
if the transformed arrays do not have compatible domains.
- Error absl::StatusCode::kOutOfRange:¶
if an index array contains an out-of-bounds index.
- Error absl::StatusCode::kInvalidArgument:¶
if integer overflow occurs computing output indices.