Base class for multidimensional iterable expressions with contiguous storage. More...
#include <xiterable.hpp>
Public Types | |
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 > |
Public Member Functions | |
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 |
Iterators | |
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. | |
Reverse iterators | |
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. | |
Broadcast iterators | |
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. | |
Static Public Attributes | |
static constexpr layout_type | static_layout = inner_types::layout |
Friends | |
class | xiterable< D > |
class | xconst_iterable< D > |
Reverse broadcast iterators | |
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. | |
Base class for multidimensional iterable expressions with contiguous storage.
The xcontiguous_iterable class defines the interface for multidimensional expressions with contiguous that can be iterated.
D | The derived type, i.e. the inheriting class for which xcontiguous_iterable provides the interface. |
Definition at line 311 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L> |
Definition at line 351 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L> |
Definition at line 353 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::const_iterator = select_const_iterator< ::xt::layout_type::row_major > |
Definition at line 381 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::const_layout_iterator = typename iterable_base::template const_layout_iterator<L> |
Definition at line 343 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::const_linear_iterator = typename linear_traits::const_linear_iterator |
Definition at line 361 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L> |
Definition at line 357 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::const_reverse_iterator = select_const_reverse_iterator< ::xt::layout_type::row_major > |
Definition at line 383 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L> |
Definition at line 347 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::const_reverse_linear_iterator = typename linear_traits::const_reverse_linear_iterator |
Definition at line 363 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::const_stepper = typename iterable_base::const_stepper |
Definition at line 321 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::derived_type = D |
Definition at line 315 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::inner_types = xcontainer_inner_types<D> |
Definition at line 317 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::iterable_base = xiterable<D> |
Definition at line 319 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::iterator = select_iterator< ::xt::layout_type::row_major > |
Definition at line 380 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::layout_iterator = typename iterable_base::template layout_iterator<L> |
Definition at line 341 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::linear_iterator = typename linear_traits::linear_iterator |
Definition at line 360 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::linear_traits = detail::linear_iterator_traits<D> |
Definition at line 359 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L> |
Definition at line 355 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::reverse_iterator = select_reverse_iterator< ::xt::layout_type::row_major > |
Definition at line 382 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L> |
Definition at line 345 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::reverse_linear_iterator = typename linear_traits::reverse_linear_iterator |
Definition at line 362 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::select_const_iterator = select_iterator_impl<L, const_linear_iterator, const_layout_iterator<L>> |
Definition at line 371 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::select_const_reverse_iterator |
Definition at line 375 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::select_iterator = select_iterator_impl<L, linear_iterator, layout_iterator<L>> |
Definition at line 369 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::select_iterator_impl = std::conditional_t<L == static_layout, It1, It2> |
Definition at line 366 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::select_reverse_iterator = select_iterator_impl<L, reverse_linear_iterator, reverse_layout_iterator<L>> |
Definition at line 373 of file xiterable.hpp.
using xt::xcontiguous_iterable< D >::stepper = typename iterable_base::stepper |
Definition at line 320 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the first element of the expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 992 of file xiterable.hpp.
|
inlinenoexcept |
Returns an iterator to the first element of the expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 949 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the first element of the expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1211 of file xiterable.hpp.
|
inlinenoexcept |
Returns an iterator to the first element of the expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1183 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the first element of the expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1015 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the first element of the expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1239 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the element following the last element of the expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1037 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the element following the last element of the expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1254 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the first element of the reversed expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1130 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the first element of the reversed expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1332 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the element following the last element of the reversed expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1152 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the element following the last element of the reversed expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1347 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the element following the last element of the expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1004 of file xiterable.hpp.
|
inlinenoexcept |
Returns an iterator to the element following the last element of the expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 971 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the element following the last element of the expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1225 of file xiterable.hpp.
|
inlinenoexcept |
Returns an iterator to the element following the last element of the expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1197 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the first element of the reversed expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1107 of file xiterable.hpp.
|
inlinenoexcept |
Returns an iterator to the first element of the reversed expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1064 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the first element of the reversed expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1302 of file xiterable.hpp.
|
inlinenoexcept |
Returns an iterator to the first element of the reversed expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1274 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the element following the last element of the reversed expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1119 of file xiterable.hpp.
|
inlinenoexcept |
Returns an iterator to the element following the last element of the reversed expression.
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1086 of file xiterable.hpp.
|
inlinenoexcept |
Returns a constant iterator to the element following the last element of the reversed expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1317 of file xiterable.hpp.
|
inlinenoexcept |
Returns an iterator to the element following the last element of the reversed expression.
The iteration is broadcasted to the specified shape.
shape | the shape used for broadcasting |
S | type of the shape parameter. |
L | order used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL . |
Definition at line 1288 of file xiterable.hpp.
|
friend |
Definition at line 444 of file xiterable.hpp.
|
friend |
Definition at line 444 of file xiterable.hpp.
|
staticconstexpr |
Definition at line 323 of file xiterable.hpp.