Sizes

class Sizes

Fixed-capacity vector of up to max_size dimension sizes.

The shape and stride type used throughout Tensor; a small stack-allocated alternative to std::vector<std::size_t> since every tensor has at most max_size dimensions.

Public Functions

inline Sizes()

Empty (0-dimensional) sizes.

inline explicit Sizes(std::size_t size)

size dimensions, all zero.

inline Sizes(std::size_t size, std::size_t value)

size dimensions, each set to value.

inline Sizes(std::initializer_list<std::size_t> values)

One dimension per entry of values.

inline Sizes(const SizeVec &values)

One dimension per entry of values.

inline std::size_t &operator[](std::size_t index)

The dimension size at index.

inline const std::size_t &operator[](std::size_t index) const

The dimension size at index.

inline std::size_t size() const

Number of dimensions.

inline std::size_t *begin()

Iterator over the dimension sizes.

inline std::size_t *end()

Iterator past the last dimension size.

inline const std::size_t *begin() const

Iterator over the dimension sizes.

inline const std::size_t *end() const

Iterator past the last dimension size.

inline void push_back(std::size_t item)

Append one more dimension.

inline std::size_t *data()

Raw pointer to the dimension sizes.

inline const std::size_t *data() const

Raw pointer to the dimension sizes.

inline std::size_t &back()

Size of the last dimension.

inline const std::size_t &back() const

Size of the last dimension.

inline std::size_t product() const

Product of all dimension sizes, i.e. the total element count.

Public Static Attributes

static constexpr std::size_t max_size

Maximum number of dimensions a Sizes can hold.