|
| using | base_type = xcontainer<D> |
| using | storage_type = typename base_type::storage_type |
| using | value_type = typename base_type::value_type |
| using | reference = typename base_type::reference |
| using | const_reference = typename base_type::const_reference |
| using | pointer = typename base_type::pointer |
| using | const_pointer = typename base_type::const_pointer |
| using | size_type = typename base_type::size_type |
| using | shape_type = typename base_type::shape_type |
| using | strides_type = typename base_type::strides_type |
| using | inner_shape_type = typename base_type::inner_shape_type |
| using | inner_strides_type = typename base_type::inner_strides_type |
| using | inner_backstrides_type = typename base_type::inner_backstrides_type |
| 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<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 |
| 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.
|
| static constexpr layout_type | static_layout = inner_types::layout |
| static constexpr bool | contiguous_layout = static_layout != layout_type::dynamic |
| static constexpr layout_type | static_layout = inner_types::layout |
template<class D>
class xt::xstrided_container< D >
Partial implementation of xcontainer that embeds the strides and the shape.
The xstrided_container class is a partial implementation of the xcontainer interface that embed the strides and the shape of the multidimensional container. It does not embed the data container, this responsibility is delegated to the inheriting classes.
- Template Parameters
-
| D | The derived type, i.e. the inheriting class for which xstrided_container provides the partial imlpementation of xcontainer. |
Definition at line 258 of file xcontainer.hpp.