|
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 | operator() (Args... args) |
|
template<class... Args> |
const_reference | operator() (Args... args) const |
|
template<class... Args> |
reference | unchecked (Args... args) |
|
template<class... Args> |
const_reference | unchecked (Args... args) const |
|
template<class It > |
reference | element (It first, It last) |
|
template<class It > |
const_reference | element (It first, It last) const |
|
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 |
|
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 |
|
template<class... Args> |
reference | at (Args... args) |
|
template<class... Args> |
auto | at (Args... args) -> reference |
| Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
|
|
template<class... Args> |
const_reference | at (Args... args) const |
|
template<class... Args> |
auto | at (Args... args) const -> const_reference |
| Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
|
|
reference | back () |
| Returns a reference to the last element of the expression.
|
|
const_reference | back () const |
| Returns a constant reference to last the element of the expression.
|
|
reference | front () |
| Returns a reference to the first element of the expression.
|
|
const_reference | front () const |
| Returns a constant reference to first the element of the expression.
|
|
template<class... Args> |
reference | periodic (Args... args) |
|
template<class... Args> |
auto | periodic (Args... args) -> reference |
| 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).
|
|
template<class... Args> |
const_reference | periodic (Args... args) const |
|
template<class... Args> |
auto | periodic (Args... args) const -> const_reference |
| Returns a constant 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.
|
|
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... Args> |
auto | operator() (Args... args) -> reference |
| Returns a reference to the element at the specified position in the container.
|
|
template<class... Args> |
auto | operator() (Args... args) const -> const_reference |
| Returns a constant reference to the element at the specified position in the container.
|
|
template<class... Args> |
auto | unchecked (Args... args) -> reference |
| Returns a reference to the element at the specified position in the container.
|
|
template<class... Args> |
auto | unchecked (Args... args) const -> const_reference |
| Returns a constant reference to the element at the specified position in the container.
|
|
template<class It > |
auto | element (It first, It last) -> reference |
| Returns a reference to the element at the specified position in the container.
|
|
template<class It > |
auto | element (It first, It last) const -> const_reference |
| Returns a reference to the element at the specified position 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.
|
|
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) |
|
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<class S > |
auto | stepper_begin (const S &shape) noexcept -> stepper |
|
template<class S > |
auto | stepper_end (const S &shape, layout_type l) noexcept -> stepper |
|
template<class S > |
auto | stepper_begin (const S &shape) const noexcept -> const_stepper |
|
template<class S > |
auto | stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper |
|
template<class alignment , class requested_type , std::size_t N> |
auto | load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type > |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_iterator< L > | begin () noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_iterator< L > | end () noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_const_iterator< L > | begin () const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_const_iterator< L > | end () const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_const_iterator< L > | cbegin () const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_const_iterator< L > | cend () const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_reverse_iterator< L > | rbegin () noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_reverse_iterator< L > | rend () noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_const_reverse_iterator< L > | rbegin () const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_const_reverse_iterator< L > | rend () const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_const_reverse_iterator< L > | crbegin () const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major> |
select_const_reverse_iterator< L > | crend () const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
broadcast_iterator< S, L > | begin (const S &shape) noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
broadcast_iterator< S, L > | end (const S &shape) noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
const_broadcast_iterator< S, L > | begin (const S &shape) const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
const_broadcast_iterator< S, L > | end (const S &shape) const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
const_broadcast_iterator< S, L > | cbegin (const S &shape) const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
const_broadcast_iterator< S, L > | cend (const S &shape) const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
reverse_broadcast_iterator< S, L > | rbegin (const S &shape) noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
reverse_broadcast_iterator< S, L > | rend (const S &shape) noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
const_reverse_broadcast_iterator< S, L > | rbegin (const S &shape) const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
const_reverse_broadcast_iterator< S, L > | rend (const S &shape) const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
const_reverse_broadcast_iterator< S, L > | crbegin (const S &shape) const noexcept |
|
template<layout_type L = ::xt::layout_type::row_major, class S > |
const_reverse_broadcast_iterator< S, L > | crend (const S &shape) const noexcept |
|
template<layout_type L> |
auto | begin () noexcept -> select_iterator< L > |
| Returns an iterator to the first element of the expression.
|
|
template<layout_type L> |
auto | end () noexcept -> select_iterator< L > |
| Returns an iterator to the element following the last element of the expression.
|
|
template<layout_type L> |
auto | begin () const noexcept -> select_const_iterator< L > |
| Returns a constant iterator to the first element of the expression.
|
|
template<layout_type L> |
auto | end () const noexcept -> select_const_iterator< L > |
| Returns a constant iterator to the element following the last element of the expression.
|
|
template<layout_type L> |
auto | cbegin () const noexcept -> select_const_iterator< L > |
| Returns a constant iterator to the first element of the expression.
|
|
template<layout_type L> |
auto | cend () const noexcept -> select_const_iterator< L > |
| Returns a constant iterator to the element following the last element of the expression.
|
|
template<layout_type L> |
auto | rbegin () noexcept -> select_reverse_iterator< L > |
| Returns an iterator to the first element of the reversed expression.
|
|
template<layout_type L> |
auto | rend () noexcept -> select_reverse_iterator< L > |
| Returns an iterator to the element following the last element of the reversed expression.
|
|
template<layout_type L> |
auto | rbegin () const noexcept -> select_const_reverse_iterator< L > |
| Returns a constant iterator to the first element of the reversed expression.
|
|
template<layout_type L> |
auto | rend () const noexcept -> select_const_reverse_iterator< L > |
| Returns a constant iterator to the element following the last element of the reversed expression.
|
|
template<layout_type L> |
auto | crbegin () const noexcept -> select_const_reverse_iterator< L > |
| Returns a constant iterator to the first element of the reversed expression.
|
|
template<layout_type L> |
auto | crend () const noexcept -> select_const_reverse_iterator< L > |
| Returns a constant iterator to the element following the last element of the reversed expression.
|
|
template<layout_type L, class S > |
auto | begin (const S &shape) noexcept -> broadcast_iterator< S, L > |
| Returns an iterator to the first element of the expression.
|
|
template<layout_type L, class S > |
auto | end (const S &shape) noexcept -> broadcast_iterator< S, L > |
| Returns an iterator to the element following the last element of the expression.
|
|
template<layout_type L, class S > |
auto | begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L > |
| Returns a constant iterator to the first element of the expression.
|
|
template<layout_type L, class S > |
auto | end (const S &shape) const noexcept -> const_broadcast_iterator< S, L > |
| Returns a constant iterator to the element following the last element of the expression.
|
|
template<layout_type L, class S > |
auto | cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L > |
| Returns a constant iterator to the first element of the expression.
|
|
template<layout_type L, class S > |
auto | cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L > |
| Returns a constant iterator to the element following the last element of the expression.
|
|
template<layout_type L, class S > |
auto | rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L > |
| Returns an iterator to the first element of the reversed expression.
|
|
template<layout_type L, class S > |
auto | rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L > |
| Returns an iterator to the element following the last element of the reversed expression.
|
|
template<layout_type L, class S > |
auto | rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > |
| Returns a constant iterator to the first element of the reversed expression.
|
|
template<layout_type L, class S > |
auto | rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > |
| Returns a constant iterator to the element following the last element of the reversed expression.
|
|
template<layout_type L, class S > |
auto | crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > |
| Returns a constant iterator to the first element of the reversed expression.
|
|
template<layout_type L, class S > |
auto | crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > |
| 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 |
|