ClikaRT::ops::IndexEntry
class
Header: ClikaRT/compute/tensor.h
One subscript position of index / index_put, the standard tensor indexing vocabulary: an int (select), a bool (0-D mask), an integer or boolean Tensor (advanced indexing), an IndexSlice, ellipsis, or new_axis. A braced integer list indexes via a Tensor (Tensor::from_data); pass it as the Tensor arm.
Types
enum Kind
enum class Kind : std::uint8_t
The arm discriminant for kind(): one value per subscript form the class block enumerates (int select, 0-D bool mask, advanced-index Tensor, slice, ellipsis, new-axis).
| Enumerator | Description |
|---|---|
Int | |
Bool | |
Tensor | |
Slice | |
Ellipsis | |
NewAxis |
Declared in ClikaRT/compute/tensor.h, line 849
Member functions
IndexEntry(bool)
IndexEntry(bool b)
The 0-D boolean-mask arm (see the class block's vocabulary).
Declared in ClikaRT/compute/tensor.h, line 852
IndexEntry(T)
template <``typename T, typename std::enable_if<std::is_integral<T>::value &&!std::is_same<T, bool>::value, int>::type = 0``>IndexEntry(T v)
The integer-select arm: picks one position along the dim (kept integral).
Declared in ClikaRT/compute/tensor.h, line 858
IndexEntry(Tensor)
IndexEntry(Tensor t)
The advanced-indexing arm: an integer or boolean Tensor of positions / a mask.
Declared in ClikaRT/compute/tensor.h, line 860
IndexEntry(IndexSlice)
IndexEntry(IndexSlice s)
The slice arm: start:stop:step bounds.
Declared in ClikaRT/compute/tensor.h, line 862
IndexEntry(EllipsisTag)
IndexEntry(EllipsisTag)
The ellipsis arm: expands to full slices over the dims no other entry names.
Declared in ClikaRT/compute/tensor.h, line 864
IndexEntry(NewAxisTag)
IndexEntry(NewAxisTag)
The new_axis arm: inserts a fresh size-1 dim at this position.
Declared in ClikaRT/compute/tensor.h, line 866
kind()
Kind kind() const
Which arm this entry holds.
Declared in ClikaRT/compute/tensor.h, line 869
bool_value()
bool bool_value() const
The boolean payload; meaningful for Kind::Bool.
Declared in ClikaRT/compute/tensor.h, line 871
int_value()
std::int64_t int_value() const
The integer payload; meaningful for Kind::Int.
Declared in ClikaRT/compute/tensor.h, line 873
tensor()
const Tensor& tensor() const
The tensor payload; meaningful for Kind::Tensor.
Declared in ClikaRT/compute/tensor.h, line 875
slice()
const IndexSlice& slice() const
The slice payload; meaningful for Kind::Slice.
Declared in ClikaRT/compute/tensor.h, line 877