|
| using | derived_type = D |
| using | inner_types = xcontainer_inner_types<D> |
| using | storage_type = typename inner_types::storage_type |
| using | allocator_type = allocator_type_t<std::decay_t<storage_type>> |
| using | value_type = typename storage_type::value_type |
| using | reference = typename inner_types::reference |
| using | const_reference = typename inner_types::const_reference |
| using | pointer = typename storage_type::pointer |
| using | const_pointer = typename storage_type::const_pointer |
| using | size_type = typename inner_types::size_type |
| using | difference_type = typename storage_type::difference_type |
| using | simd_value_type = xt_simd::simd_type<value_type> |
| using | bool_load_type = xt::bool_load_type<value_type> |
| using | shape_type = typename inner_types::shape_type |
| using | strides_type = typename inner_types::strides_type |
| using | backstrides_type = typename inner_types::backstrides_type |
| using | inner_shape_type = typename inner_types::inner_shape_type |
| using | inner_strides_type = typename inner_types::inner_strides_type |
| using | inner_backstrides_type = typename inner_types::inner_backstrides_type |
| using | iterable_base = xcontiguous_iterable<D> |
| using | stepper = typename iterable_base::stepper |
| using | const_stepper = typename iterable_base::const_stepper |
| using | accessible_base = xaccessible<D> |
| using | data_alignment = xt_simd::container_alignment_t<storage_type> |
| using | simd_type = xt_simd::simd_type<value_type> |
| using | linear_iterator = typename iterable_base::linear_iterator |
| using | const_linear_iterator = typename iterable_base::const_linear_iterator |
| using | reverse_linear_iterator = typename iterable_base::reverse_linear_iterator |
| using | const_reverse_linear_iterator = typename iterable_base::const_reverse_linear_iterator |
| template<class requested_type> |
| using | simd_return_type = xt_simd::simd_return_type<value_type, requested_type> |
| using | container_iterator = linear_iterator |
| using | const_container_iterator = const_linear_iterator |
| using | derived_type = D |
| using | inner_types = xcontainer_inner_types<D> |
| using | iterable_base = xiterable<D> |
| using | stepper = typename iterable_base::stepper |
| using | const_stepper = typename iterable_base::const_stepper |
| template<layout_type L> |
| using | layout_iterator = typename iterable_base::template layout_iterator<L> |
| template<layout_type L> |
| using | const_layout_iterator = typename iterable_base::template const_layout_iterator<L> |
| template<layout_type L> |
| using | reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L> |
| template<layout_type L> |
| using | const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L> |
| template<class S, layout_type L> |
| using | broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L> |
| template<class S, layout_type L> |
| using | const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L> |
| template<class S, layout_type L> |
| using | reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L> |
| template<class S, layout_type L> |
| using | const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L> |
| using | linear_traits = detail::linear_iterator_traits<D> |
| using | linear_iterator = typename linear_traits::linear_iterator |
| using | const_linear_iterator = typename linear_traits::const_linear_iterator |
| using | reverse_linear_iterator = typename linear_traits::reverse_linear_iterator |
| using | const_reverse_linear_iterator = typename linear_traits::const_reverse_linear_iterator |
| template<layout_type L, class It1, class It2> |
| using | select_iterator_impl = std::conditional_t<L == static_layout, It1, It2> |
| template<layout_type L> |
| using | select_iterator = select_iterator_impl<L, linear_iterator, layout_iterator<L>> |
| template<layout_type L> |
| using | select_const_iterator = select_iterator_impl<L, const_linear_iterator, const_layout_iterator<L>> |
| template<layout_type L> |
| using | select_reverse_iterator = select_iterator_impl<L, reverse_linear_iterator, reverse_layout_iterator<L>> |
| template<layout_type L> |
| using | select_const_reverse_iterator |
| using | iterator = select_iterator< ::xt::layout_type::row_major > |
| using | const_iterator = select_const_iterator< ::xt::layout_type::row_major > |
| using | reverse_iterator = select_reverse_iterator< ::xt::layout_type::row_major > |
| using | const_reverse_iterator = select_const_reverse_iterator< ::xt::layout_type::row_major > |
|
| template<class... Args> |
| reference | at (Args... args) |
| | Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
|
| template<class S> |
| disable_integral_t< S, reference > | operator[] (const S &index) |
| | Returns a reference to the element at the specified position in the expression.
|
| template<class I> |
| reference | operator[] (std::initializer_list< I > index) |
| reference | operator[] (size_type i) |
| reference | back () |
| | Returns a reference to the last element of the expression.
|
| reference | front () |
| | Returns a reference to the first element of the expression.
|
| template<class... Args> |
| reference | periodic (Args... args) |
| | Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
|
| size_type | size () const noexcept |
| | Returns the number of element in the container.
|
| constexpr size_type | dimension () const noexcept |
| | Returns the number of dimensions of the container.
|
| constexpr const inner_shape_type & | shape () const noexcept |
| | Returns the shape of the container.
|
| constexpr const inner_strides_type & | strides () const noexcept |
| | Returns the strides of the container.
|
| constexpr const inner_backstrides_type & | backstrides () const noexcept |
| | Returns the backstrides of the container.
|
| template<class T> |
| void | fill (const T &value) |
| | Fills the container with the given value.
|
| template<class... Args> |
| reference | operator() (Args... args) |
| | Returns a reference to the element at the specified position in the container.
|
| template<class... Args> |
| const_reference | operator() (Args... args) const |
| | Returns a constant reference to the element at the specified position in the container.
|
| template<class... Args> |
| reference | unchecked (Args... args) |
| | Returns a reference to the element at the specified position in the container.
|
| template<class... Args> |
| const_reference | unchecked (Args... args) const |
| | Returns a constant reference to the element at the specified position in the container.
|
| template<class It> |
| reference | element (It first, It last) |
| | Returns a reference to the element at the specified position in the container.
|
| template<class It> |
| const_reference | element (It first, It last) const |
| | Returns a reference to the element at the specified position in the container.
|
| storage_type & | storage () noexcept |
| | Returns a reference to the buffer containing the elements of the container.
|
| const storage_type & | storage () const noexcept |
| | Returns a constant reference to the buffer containing the elements of the container.
|
| pointer | data () noexcept |
| | Returns a pointer to the underlying array serving as element storage.
|
| const_pointer | data () const noexcept |
| | Returns a constant pointer to the underlying array serving as element storage.
|
| const size_type | data_offset () const noexcept |
| | Returns the offset to the first element in the container.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_iterator< L > | begin () noexcept |
| | Returns an iterator to the first element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_iterator< L > | end () noexcept |
| | Returns an iterator to the element following the last element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_const_iterator< L > | begin () const noexcept |
| | Returns a constant iterator to the first element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_const_iterator< L > | end () const noexcept |
| | Returns a constant iterator to the element following the last element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_const_iterator< L > | cbegin () const noexcept |
| | Returns a constant iterator to the first element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_const_iterator< L > | cend () const noexcept |
| | Returns a constant iterator to the element following the last element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_reverse_iterator< L > | rbegin () noexcept |
| | Returns an iterator to the first element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_reverse_iterator< L > | rend () noexcept |
| | Returns an iterator to the element following the last element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_const_reverse_iterator< L > | rbegin () const noexcept |
| | Returns a constant iterator to the first element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_const_reverse_iterator< L > | rend () const noexcept |
| | Returns a constant iterator to the element following the last element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_const_reverse_iterator< L > | crbegin () const noexcept |
| | Returns a constant iterator to the first element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major> |
| select_const_reverse_iterator< L > | crend () const noexcept |
| | Returns a constant iterator to the element following the last element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| broadcast_iterator< S, L > | begin (const S &shape) noexcept |
| | Returns an iterator to the first element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| broadcast_iterator< S, L > | end (const S &shape) noexcept |
| | Returns an iterator to the element following the last element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| const_broadcast_iterator< S, L > | begin (const S &shape) const noexcept |
| | Returns a constant iterator to the first element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| const_broadcast_iterator< S, L > | end (const S &shape) const noexcept |
| | Returns a constant iterator to the element following the last element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| const_broadcast_iterator< S, L > | cbegin (const S &shape) const noexcept |
| | Returns a constant iterator to the first element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| const_broadcast_iterator< S, L > | cend (const S &shape) const noexcept |
| | Returns a constant iterator to the element following the last element of the expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| reverse_broadcast_iterator< S, L > | rbegin (const S &shape) noexcept |
| | Returns an iterator to the first element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| reverse_broadcast_iterator< S, L > | rend (const S &shape) noexcept |
| | Returns an iterator to the element following the last element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| const_reverse_broadcast_iterator< S, L > | rbegin (const S &shape) const noexcept |
| | Returns a constant iterator to the first element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| const_reverse_broadcast_iterator< S, L > | rend (const S &shape) const noexcept |
| | Returns a constant iterator to the element following the last element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| const_reverse_broadcast_iterator< S, L > | crbegin (const S &shape) const noexcept |
| | Returns a constant iterator to the first element of the reversed expression.
|
| template<layout_type L = ::xt::layout_type::row_major, class S> |
| const_reverse_broadcast_iterator< S, L > | crend (const S &shape) const noexcept |
| | Returns a constant iterator to the element following the last element of the reversed expression.
|
|
| template<class S> |
| bool | broadcast_shape (S &shape, bool reuse_cache=false) const |
| | Broadcast the shape of the container to the specified parameter.
|
| template<class S> |
| bool | has_linear_assign (const S &strides) const noexcept |
| | Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
|
| template<class S> |
| stepper | stepper_begin (const S &shape) noexcept |
| template<class S> |
| stepper | stepper_end (const S &shape, layout_type l) noexcept |
| template<class S> |
| const_stepper | stepper_begin (const S &shape) const noexcept |
| template<class S> |
| const_stepper | stepper_end (const S &shape, layout_type l) const noexcept |
| reference | data_element (size_type i) |
| const_reference | data_element (size_type i) const |
| reference | flat (size_type i) |
| | Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
|
| const_reference | flat (size_type i) const |
| | Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
|
| template<class align, class simd> |
| void | store_simd (size_type i, const simd &e) |
| template<class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size> |
| container_simd_return_type_t< storage_type, value_type, requested_type > | load_simd (size_type i) const |
| linear_iterator | linear_begin () noexcept |
| linear_iterator | linear_end () noexcept |
| const_linear_iterator | linear_begin () const noexcept |
| const_linear_iterator | linear_end () const noexcept |
| const_linear_iterator | linear_cbegin () const noexcept |
| const_linear_iterator | linear_cend () const noexcept |
| reverse_linear_iterator | linear_rbegin () noexcept |
| reverse_linear_iterator | linear_rend () noexcept |
| const_reverse_linear_iterator | linear_rbegin () const noexcept |
| const_reverse_linear_iterator | linear_rend () const noexcept |
| const_reverse_linear_iterator | linear_crbegin () const noexcept |
| const_reverse_linear_iterator | linear_crend () const noexcept |
| container_iterator | data_xbegin () noexcept |
| const_container_iterator | data_xbegin () const noexcept |
| container_iterator | data_xend (layout_type l, size_type offset) noexcept |
| const_container_iterator | data_xend (layout_type l, size_type offset) const noexcept |
| derived_type & | derived_cast () &noexcept |
| const derived_type & | derived_cast () const &noexcept |
| derived_type | derived_cast () &&noexcept |
template<class D>
class xt::xcontainer< D >
Base class for dense multidimensional containers.
The xcontainer class defines the interface for dense multidimensional container classes. It does not embed any data container, this responsibility is delegated to the inheriting classes.
- Template Parameters
-
| D | The derived type, i.e. the inheriting class for which xcontainer provides the interface. |
Definition at line 69 of file xcontainer.hpp.