|
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<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.
|
|
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 71 of file xcontainer.hpp.