#include "tensorstore/index_space/output_index_map.h"
template <DimensionIndex InputRank = dynamic_rank,
         
 DimensionIndex OutputRank = dynamic_rank,
         
 ContainerKind CKind = view>
class tensorstore::OutputIndexMapRange;

Represents a const range view of the output index maps for an index transform.

This range is valid only as long as the underlying index transform.

Types

using value_type = OutputIndexMapRef<InputRank>;
using reference = value_type;

Proxy reference to an output index map.

using iterator = OutputIndexMapIterator<InputRank>;

Iterator over output index maps.

using difference_type = DimensionIndex;

Iterator difference type.

Data members

constexpr const DimensionIndex extent = OutputRank;

The static extent of this range, equal to the static output rank of the transform.

Constructors

OutputIndexMapRange();

Constructs an invalid output index map range.

explicit OutputIndexMapRange(
    
IndexTransform<InputRank, OutputRank, CKind> transform);

Constructs from an index transform.

OutputIndexMapRange(
    
OutputIndexMapRange<OtherInputRank, OtherOutputRank, OtherCKind>
       
 other
);

Converts from a compatible OutputIndexMapRange type.

Methods

StaticOrDynamicRank<OutputRank> size() const;

Returns the output rank of the transform.

bool empty() const;

Returns true if size() == 0.

iterator begin() const;
iterator end() const;

Returns the begin/end iterators.

OutputIndexMapRef<InputRank>
operator[](DimensionIndex output_dim) const;

Returns the output index map for dimension output_dim.

StaticOrDynamicRank<InputRank> input_rank() const;

Returns the input rank of the index transform.

class tensorstore::OutputIndexMapIterator<InputRank>;

Iterator type for OutputIndexMapRange.