xtensor
Loading...
Searching...
No Matches
xt::xfunctor_applier_base< D > Class Template Reference
Inheritance diagram for xt::xfunctor_applier_base< D >:
xt::xaccessible< D >

Public Types

using self_type = xfunctor_applier_base<D>
 
using inner_types = xcontainer_inner_types<D>
 
using xexpression_type = typename inner_types::xexpression_type
 
using undecay_expression = typename inner_types::undecay_expression
 
using functor_type = typename inner_types::functor_type
 
using accessible_base = xaccessible<D>
 
using extension_base = extension::xfunctor_view_base_t<functor_type, undecay_expression>
 
using expression_tag = typename extension_base::expression_tag
 
using value_type = typename functor_type::value_type
 
using reference = typename inner_types::reference
 
using const_reference = typename inner_types::const_reference
 
using pointer = typename functor_type::pointer
 
using const_pointer = typename functor_type::const_pointer
 
using size_type = typename inner_types::size_type
 
using difference_type = typename xexpression_type::difference_type
 
using shape_type = typename xexpression_type::shape_type
 
using strides_type
 
using backstrides_type
 
using inner_shape_type = typename xexpression_type::inner_shape_type
 
using inner_strides_type
 
using inner_backstrides_type
 
using bool_load_type = xt::bool_load_type<value_type>
 
using stepper = xfunctor_stepper<functor_type, typename xexpression_type::stepper>
 
using const_stepper = xfunctor_stepper<const functor_type, typename xexpression_type::const_stepper>
 
template<layout_type L>
using layout_iterator = xfunctor_iterator<functor_type, typename xexpression_type::template layout_iterator<L>>
 
template<layout_type L>
using const_layout_iterator
 
template<layout_type L>
using reverse_layout_iterator
 
template<layout_type L>
using const_reverse_layout_iterator
 
template<class S , layout_type L>
using broadcast_iterator = xfunctor_iterator<functor_type, xiterator<typename xexpression_type::stepper, S, L>>
 
template<class S , layout_type L>
using const_broadcast_iterator
 
template<class S , layout_type L>
using reverse_broadcast_iterator
 
template<class S , layout_type L>
using const_reverse_broadcast_iterator
 
using linear_iterator = xfunctor_iterator<functor_type, typename xexpression_type::linear_iterator>
 
using const_linear_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_linear_iterator>
 
using reverse_linear_iterator = xfunctor_iterator<functor_type, typename xexpression_type::reverse_linear_iterator>
 
using const_reverse_linear_iterator
 
using iterator = xfunctor_iterator<functor_type, typename xexpression_type::iterator>
 
using const_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_iterator>
 
using reverse_iterator = xfunctor_iterator<functor_type, typename xexpression_type::reverse_iterator>
 
using const_reverse_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_reverse_iterator>
 

Public Member Functions

template<class... Args>
reference operator() (Args... args)
 
template<class... Args>
reference unchecked (Args... args)
 
template<class IT >
reference element (IT first, IT last)
 
template<class... Args>
const_reference operator() (Args... args) const
 
template<class... Args>
const_reference unchecked (Args... args) const
 
template<class IT >
const_reference element (IT first, IT last) const
 
template<class FCT = functor_type>
auto data_element (size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().data_element(i)))
 
template<class FCT = functor_type>
auto data_element (size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().data_element(i)))
 
template<class FCT = functor_type>
auto flat (size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().flat(i)))
 
template<class FCT = functor_type>
auto flat (size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().flat(i)))
 
template<class align , class requested_type = typename xexpression_type::value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size, class FCT = functor_type>
auto load_simd (size_type i) const -> decltype(std::declval< FCT >().template proxy_simd_load< align, requested_type, N >(std::declval< undecay_expression >(), i))
 
template<class align , class simd , class FCT = functor_type>
auto store_simd (size_type i, const simd &e) -> decltype(std::declval< FCT >() .template proxy_simd_store< align >(std::declval< undecay_expression >(), i, e))
 
template<class S , layout_type L = ::xt::layout_type::row_major>
broadcast_iterator< S, Lbegin (const S &shape) noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
broadcast_iterator< S, Lend (const S &shape) noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
const_broadcast_iterator< S, Lbegin (const S &shape) const noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
const_broadcast_iterator< S, Lend (const S &shape) const noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
const_broadcast_iterator< S, Lcbegin (const S &shape) const noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
const_broadcast_iterator< S, Lcend (const S &shape) const noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
reverse_broadcast_iterator< S, Lrbegin (const S &shape) noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
reverse_broadcast_iterator< S, Lrend (const S &shape) noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
const_reverse_broadcast_iterator< S, Lrbegin (const S &shape) const noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
const_reverse_broadcast_iterator< S, Lrend (const S &shape) const noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
const_reverse_broadcast_iterator< S, Lcrbegin (const S &shape) const noexcept
 
template<class S , layout_type L = ::xt::layout_type::row_major>
const_reverse_broadcast_iterator< S, Lcrend (const S &shape) const noexcept
 
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... 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).
 
Constructors
 xfunctor_applier_base (undecay_expression) noexcept
 Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
 
template<class Func , class E >
 xfunctor_applier_base (Func &&, E &&) noexcept
 Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
 
Size and shape
size_type size () const noexcept
 Returns the size of the expression.
 
const inner_shape_type & shape () const noexcept
 Returns the shape of the expression.
 
const inner_strides_type & strides () const noexcept
 Returns the strides of the expression.
 
const inner_backstrides_type & backstrides () const noexcept
 Returns the backstrides of the expression.
 
layout_type layout () const noexcept
 Returns the layout_type of the expression.
 
bool is_contiguous () const noexcept
 
Data
xexpression_type & expression () noexcept
 Returns a reference to the underlying expression of the view.
 
const xexpression_type & expression () const noexcept
 Returns a consttant reference to the underlying expression of the view.
 
template<class... Args>
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the expression.
 
template<class... Args>
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the expression.
 
template<class IT >
auto element (IT first, IT last) -> reference
 Returns a reference to the element at the specified position in the expression.
 
template<class... Args>
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression.
 
template<class... Args>
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression.
 
template<class IT >
auto element (IT first, IT last) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression.
 
Broadcasting
template<class S >
bool broadcast_shape (S &shape, bool reuse_cache=false) const
 Broadcast the shape of the function to the specified parameter.
 
template<class S >
bool has_linear_assign (const S &strides) const
 Checks whether the xfunctor_applier_base can be linearly assigned to an expression with the specified strides.
 
Iterators
template<layout_type L = ::xt::layout_type::row_major>
auto begin () noexcept
 Returns an iterator to the first element of the expression.
 
template<layout_type L = ::xt::layout_type::row_major>
auto end () noexcept
 Returns an iterator to the element following the last element of the expression.
 
template<layout_type L = ::xt::layout_type::row_major>
auto begin () const noexcept
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L = ::xt::layout_type::row_major>
auto 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>
auto cbegin () const noexcept
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L = ::xt::layout_type::row_major>
auto cend () const noexcept
 Returns a constant iterator to the element following the last element of the expression.
 
Reverse iterators
template<layout_type L = ::xt::layout_type::row_major>
auto rbegin () noexcept
 Returns an iterator to the first element of the reversed expression.
 
template<layout_type L = ::xt::layout_type::row_major>
auto 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>
auto rbegin () const noexcept
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L = ::xt::layout_type::row_major>
auto 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>
auto crbegin () const noexcept
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L = ::xt::layout_type::row_major>
auto crend () const noexcept
 Returns a constant iterator to the element following the last element of the reversed expression.
 
Reverse broadcast iterators
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 , layout_type L>
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
template<class S , layout_type L>
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<class S , layout_type L>
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<class S , layout_type L>
auto rend (const S &) 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 S , layout_type L>
auto crbegin (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<class S , layout_type L>
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 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
 
Broadcast iterators
template<class S , layout_type L>
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<class S , layout_type L>
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<class S , layout_type L>
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<class S , layout_type L>
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<class S , layout_type L>
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<class S , layout_type L>
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 = xexpression_type::static_layout
 
static constexpr bool contiguous_layout = xexpression_type::contiguous_layout
 

Protected Attributes

undecay_expression m_e
 
functor_type m_functor
 

Friends

class xaccessible< D >
 
class xconst_accessible< D >
 

Detailed Description

template<class D>
class xt::xfunctor_applier_base< D >

Definition at line 73 of file xfunctor_view.hpp.

Member Typedef Documentation

◆ accessible_base

template<class D >
using xt::xfunctor_applier_base< D >::accessible_base = xaccessible<D>

Definition at line 82 of file xfunctor_view.hpp.

◆ backstrides_type

template<class D >
using xt::xfunctor_applier_base< D >::backstrides_type
Initial value:
xtl::mpl::eval_if_t<
has_strides<xexpression_type>,
detail::expr_backstrides_type<xexpression_type>,
get_strides_type<shape_type>>

Definition at line 100 of file xfunctor_view.hpp.

◆ bool_load_type

template<class D >
using xt::xfunctor_applier_base< D >::bool_load_type = xt::bool_load_type<value_type>

Definition at line 115 of file xfunctor_view.hpp.

◆ broadcast_iterator

template<class D >
template<class S , layout_type L>
using xt::xfunctor_applier_base< D >::broadcast_iterator = xfunctor_iterator<functor_type, xiterator<typename xexpression_type::stepper, S, L>>

Definition at line 140 of file xfunctor_view.hpp.

◆ const_broadcast_iterator

template<class D >
template<class S , layout_type L>
using xt::xfunctor_applier_base< D >::const_broadcast_iterator
Initial value:
xfunctor_iterator<
functor_type,
xiterator<typename xexpression_type::const_stepper, S, L>>

Definition at line 142 of file xfunctor_view.hpp.

◆ const_iterator

template<class D >
using xt::xfunctor_applier_base< D >::const_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_iterator>

Definition at line 163 of file xfunctor_view.hpp.

◆ const_layout_iterator

template<class D >
template<layout_type L>
using xt::xfunctor_applier_base< D >::const_layout_iterator
Initial value:
xfunctor_iterator<
const functor_type,
typename xexpression_type::template const_layout_iterator<L>>

Definition at line 126 of file xfunctor_view.hpp.

◆ const_linear_iterator

template<class D >
using xt::xfunctor_applier_base< D >::const_linear_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_linear_iterator>

Definition at line 156 of file xfunctor_view.hpp.

◆ const_pointer

template<class D >
using xt::xfunctor_applier_base< D >::const_pointer = typename functor_type::const_pointer

Definition at line 91 of file xfunctor_view.hpp.

◆ const_reference

template<class D >
using xt::xfunctor_applier_base< D >::const_reference = typename inner_types::const_reference

Definition at line 89 of file xfunctor_view.hpp.

◆ const_reverse_broadcast_iterator

template<class D >
template<class S , layout_type L>
using xt::xfunctor_applier_base< D >::const_reverse_broadcast_iterator
Initial value:
xfunctor_iterator<
functor_type,
typename xexpression_type::template const_reverse_broadcast_iterator<S, L>>

Definition at line 151 of file xfunctor_view.hpp.

◆ const_reverse_iterator

template<class D >
using xt::xfunctor_applier_base< D >::const_reverse_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_reverse_iterator>

Definition at line 165 of file xfunctor_view.hpp.

◆ const_reverse_layout_iterator

template<class D >
template<layout_type L>
using xt::xfunctor_applier_base< D >::const_reverse_layout_iterator
Initial value:
xfunctor_iterator<
const functor_type,
typename xexpression_type::template const_reverse_layout_iterator<L>>

Definition at line 135 of file xfunctor_view.hpp.

◆ const_reverse_linear_iterator

template<class D >
using xt::xfunctor_applier_base< D >::const_reverse_linear_iterator
Initial value:
xfunctor_iterator<
const functor_type,
typename xexpression_type::const_reverse_linear_iterator>

Definition at line 158 of file xfunctor_view.hpp.

◆ const_stepper

template<class D >
using xt::xfunctor_applier_base< D >::const_stepper = xfunctor_stepper<const functor_type, typename xexpression_type::const_stepper>

Definition at line 121 of file xfunctor_view.hpp.

◆ difference_type

template<class D >
using xt::xfunctor_applier_base< D >::difference_type = typename xexpression_type::difference_type

Definition at line 93 of file xfunctor_view.hpp.

◆ expression_tag

template<class D >
using xt::xfunctor_applier_base< D >::expression_tag = typename extension_base::expression_tag

Definition at line 85 of file xfunctor_view.hpp.

◆ extension_base

template<class D >
using xt::xfunctor_applier_base< D >::extension_base = extension::xfunctor_view_base_t<functor_type, undecay_expression>

Definition at line 84 of file xfunctor_view.hpp.

◆ functor_type

template<class D >
using xt::xfunctor_applier_base< D >::functor_type = typename inner_types::functor_type

Definition at line 81 of file xfunctor_view.hpp.

◆ inner_backstrides_type

template<class D >
using xt::xfunctor_applier_base< D >::inner_backstrides_type
Initial value:
xtl::mpl::eval_if_t<
has_strides<xexpression_type>,
detail::expr_inner_backstrides_type<xexpression_type>,
get_strides_type<shape_type>>

Definition at line 110 of file xfunctor_view.hpp.

◆ inner_shape_type

template<class D >
using xt::xfunctor_applier_base< D >::inner_shape_type = typename xexpression_type::inner_shape_type

Definition at line 105 of file xfunctor_view.hpp.

◆ inner_strides_type

template<class D >
using xt::xfunctor_applier_base< D >::inner_strides_type
Initial value:
xtl::mpl::eval_if_t<
has_strides<xexpression_type>,
detail::expr_inner_strides_type<xexpression_type>,
get_strides_type<shape_type>>

Definition at line 106 of file xfunctor_view.hpp.

◆ inner_types

Definition at line 78 of file xfunctor_view.hpp.

◆ iterator

template<class D >
using xt::xfunctor_applier_base< D >::iterator = xfunctor_iterator<functor_type, typename xexpression_type::iterator>

Definition at line 162 of file xfunctor_view.hpp.

◆ layout_iterator

template<class D >
template<layout_type L>
using xt::xfunctor_applier_base< D >::layout_iterator = xfunctor_iterator<functor_type, typename xexpression_type::template layout_iterator<L>>

Definition at line 124 of file xfunctor_view.hpp.

◆ linear_iterator

template<class D >
using xt::xfunctor_applier_base< D >::linear_iterator = xfunctor_iterator<functor_type, typename xexpression_type::linear_iterator>

Definition at line 155 of file xfunctor_view.hpp.

◆ pointer

template<class D >
using xt::xfunctor_applier_base< D >::pointer = typename functor_type::pointer

Definition at line 90 of file xfunctor_view.hpp.

◆ reference

template<class D >
using xt::xfunctor_applier_base< D >::reference = typename inner_types::reference

Definition at line 88 of file xfunctor_view.hpp.

◆ reverse_broadcast_iterator

template<class D >
template<class S , layout_type L>
using xt::xfunctor_applier_base< D >::reverse_broadcast_iterator
Initial value:
xfunctor_iterator<
functor_type,
typename xexpression_type::template reverse_broadcast_iterator<S, L>>

Definition at line 147 of file xfunctor_view.hpp.

◆ reverse_iterator

template<class D >
using xt::xfunctor_applier_base< D >::reverse_iterator = xfunctor_iterator<functor_type, typename xexpression_type::reverse_iterator>

Definition at line 164 of file xfunctor_view.hpp.

◆ reverse_layout_iterator

template<class D >
template<layout_type L>
using xt::xfunctor_applier_base< D >::reverse_layout_iterator
Initial value:
xfunctor_iterator<
functor_type,
typename xexpression_type::template reverse_layout_iterator<L>>

Definition at line 131 of file xfunctor_view.hpp.

◆ reverse_linear_iterator

template<class D >
using xt::xfunctor_applier_base< D >::reverse_linear_iterator = xfunctor_iterator<functor_type, typename xexpression_type::reverse_linear_iterator>

Definition at line 157 of file xfunctor_view.hpp.

◆ self_type

Definition at line 77 of file xfunctor_view.hpp.

◆ shape_type

template<class D >
using xt::xfunctor_applier_base< D >::shape_type = typename xexpression_type::shape_type

Definition at line 95 of file xfunctor_view.hpp.

◆ size_type

template<class D >
using xt::xfunctor_applier_base< D >::size_type = typename inner_types::size_type

Definition at line 92 of file xfunctor_view.hpp.

◆ stepper

template<class D >
using xt::xfunctor_applier_base< D >::stepper = xfunctor_stepper<functor_type, typename xexpression_type::stepper>

Definition at line 120 of file xfunctor_view.hpp.

◆ strides_type

template<class D >
using xt::xfunctor_applier_base< D >::strides_type
Initial value:
xtl::mpl::eval_if_t<
has_strides<xexpression_type>,
detail::expr_strides_type<xexpression_type>,
get_strides_type<shape_type>>

Definition at line 96 of file xfunctor_view.hpp.

◆ undecay_expression

template<class D >
using xt::xfunctor_applier_base< D >::undecay_expression = typename inner_types::undecay_expression

Definition at line 80 of file xfunctor_view.hpp.

◆ value_type

template<class D >
using xt::xfunctor_applier_base< D >::value_type = typename functor_type::value_type

Definition at line 87 of file xfunctor_view.hpp.

◆ xexpression_type

template<class D >
using xt::xfunctor_applier_base< D >::xexpression_type = typename inner_types::xexpression_type

Definition at line 79 of file xfunctor_view.hpp.

Constructor & Destructor Documentation

◆ xfunctor_applier_base() [1/2]

template<class D >
xt::xfunctor_applier_base< D >::xfunctor_applier_base ( undecay_expression e)
inlineexplicitnoexcept

Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.

Parameters
ethe underlying expression

Definition at line 679 of file xfunctor_view.hpp.

◆ xfunctor_applier_base() [2/2]

template<class D >
template<class Func , class E >
xt::xfunctor_applier_base< D >::xfunctor_applier_base ( Func && func,
E && e )
inlinenoexcept

Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.

Parameters
functhe functor to be applied to the elements of the underlying expression.
ethe underlying expression

Definition at line 693 of file xfunctor_view.hpp.

Member Function Documentation

◆ at() [1/2]

template<class D >
template<class... Args>
auto xt::xaccessible< D >::at ( Args... args) -> reference
inline

Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.

Parameters
argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices should be equal to the number of dimensions of the expression.
Exceptions
std::out_of_rangeif the number of argument is greater than the number of dimensions or if indices are out of bounds.

Definition at line 274 of file xaccessible.hpp.

◆ at() [2/2]

template<class D >
template<class... Args>
auto xt::xconst_accessible< D >::at ( Args... args) const -> const_reference
inline

Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.

Parameters
argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices should be equal to the number of dimensions of the expression.
Exceptions
std::out_of_rangeif the number of argument is greater than the number of dimensions or if indices are out of bounds.

Definition at line 111 of file xaccessible.hpp.

◆ back() [1/2]

template<class D >
auto xt::xaccessible< D >::back ( )
inline

Returns a reference to the last element of the expression.

Definition at line 109 of file xaccessible.hpp.

◆ back() [2/2]

template<class D >
auto xt::xconst_accessible< D >::back ( ) const
inline

Returns a constant reference to last the element of the expression.

Definition at line 113 of file xaccessible.hpp.

◆ backstrides()

template<class D >
auto xt::xfunctor_applier_base< D >::backstrides ( ) const
inlinenoexcept

Returns the backstrides of the expression.

Definition at line 736 of file xfunctor_view.hpp.

◆ begin() [1/4]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::begin ( ) const
inlinenoexcept

Returns a constant iterator to the first element of the expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 962 of file xfunctor_view.hpp.

◆ begin() [2/4]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::begin ( )
inlinenoexcept

Returns an iterator to the first element of the expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 936 of file xfunctor_view.hpp.

◆ begin() [3/4]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::begin ( const S & shape) const -> const_broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the first element of the expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1051 of file xfunctor_view.hpp.

◆ begin() [4/4]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::begin ( const S & shape) -> broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the first element of the expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1023 of file xfunctor_view.hpp.

◆ broadcast_shape()

template<class D >
template<class S >
bool xt::xfunctor_applier_base< D >::broadcast_shape ( S & shape,
bool reuse_cache = false ) const
inline

Broadcast the shape of the function to the specified parameter.

Parameters
shapethe result shape
reuse_cacheboolean for reusing a previously computed shape
Returns
a boolean indicating whether the broadcasting is trivial

Definition at line 906 of file xfunctor_view.hpp.

◆ cbegin() [1/2]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::cbegin ( ) const
inlinenoexcept

Returns a constant iterator to the first element of the expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 985 of file xfunctor_view.hpp.

◆ cbegin() [2/2]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::cbegin ( const S & shape) const -> const_broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the first element of the expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1080 of file xfunctor_view.hpp.

◆ cend() [1/2]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::cend ( ) const
inlinenoexcept

Returns a constant iterator to the element following the last element of the expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1000 of file xfunctor_view.hpp.

◆ cend() [2/2]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::cend ( const S & shape) const -> const_broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the element following the last element of the expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1095 of file xfunctor_view.hpp.

◆ crbegin() [1/2]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::crbegin ( ) const
inlinenoexcept

Returns a constant iterator to the first element of the reversed expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1164 of file xfunctor_view.hpp.

◆ crbegin() [2/2]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::crbegin ( const S & ) const -> const_reverse_broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the first element of the reversed expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1260 of file xfunctor_view.hpp.

◆ crend() [1/2]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::crend ( ) const
inlinenoexcept

Returns a constant iterator to the element following the last element of the reversed expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1179 of file xfunctor_view.hpp.

◆ crend() [2/2]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::crend ( const S & shape) const -> const_reverse_broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the element following the last element of the reversed expression.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1275 of file xfunctor_view.hpp.

◆ data_element() [1/2]

template<class D >
template<class FCT = functor_type>
auto xt::xfunctor_applier_base< D >::data_element ( size_type i) -> decltype(std::declval<FCT>()(std::declval<undecay_expression>().data_element(i)))
inline

Definition at line 218 of file xfunctor_view.hpp.

◆ data_element() [2/2]

template<class D >
template<class FCT = functor_type>
auto xt::xfunctor_applier_base< D >::data_element ( size_type i) const -> decltype(std::declval<FCT>()(std::declval<const undecay_expression>().data_element(i)))
inline

Definition at line 225 of file xfunctor_view.hpp.

◆ element() [1/2]

template<class D >
template<class IT >
auto xt::xfunctor_applier_base< D >::element ( IT first,
IT last ) -> reference
inline

Returns a reference to the element at the specified position in the expression.

Parameters
firstiterator starting the sequence of indices
lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the function.

Definition at line 812 of file xfunctor_view.hpp.

◆ element() [2/2]

template<class D >
template<class IT >
auto xt::xfunctor_applier_base< D >::element ( IT first,
IT last ) const -> const_reference
inline

Returns a constant reference to the element at the specified position in the expression.

Parameters
firstiterator starting the sequence of indices
lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the function.

Definition at line 868 of file xfunctor_view.hpp.

◆ end() [1/4]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::end ( ) const
inlinenoexcept

Returns a constant iterator to the element following the last element of the expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 974 of file xfunctor_view.hpp.

◆ end() [2/4]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::end ( )
inlinenoexcept

Returns an iterator to the element following the last element of the expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 951 of file xfunctor_view.hpp.

◆ end() [3/4]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::end ( const S & shape) const -> const_broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the element following the last element of the expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1066 of file xfunctor_view.hpp.

◆ end() [4/4]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::end ( const S & shape) -> broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the element following the last element of the expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1037 of file xfunctor_view.hpp.

◆ expression() [1/2]

template<class D >
auto xt::xfunctor_applier_base< D >::expression ( ) const
inlinenoexcept

Returns a consttant reference to the underlying expression of the view.

Definition at line 887 of file xfunctor_view.hpp.

◆ expression() [2/2]

template<class D >
auto xt::xfunctor_applier_base< D >::expression ( )
inlinenoexcept

Returns a reference to the underlying expression of the view.

Definition at line 878 of file xfunctor_view.hpp.

◆ flat() [1/2]

template<class D >
template<class FCT = functor_type>
auto xt::xfunctor_applier_base< D >::flat ( size_type i) -> decltype(std::declval<FCT>()(std::declval<undecay_expression>().flat(i)))
inline

Definition at line 232 of file xfunctor_view.hpp.

◆ flat() [2/2]

template<class D >
template<class FCT = functor_type>
auto xt::xfunctor_applier_base< D >::flat ( size_type i) const -> decltype(std::declval<FCT>()(std::declval<const undecay_expression>().flat(i)))
inline

Definition at line 238 of file xfunctor_view.hpp.

◆ front() [1/2]

template<class D >
auto xt::xaccessible< D >::front ( )
inline

Returns a reference to the first element of the expression.

Definition at line 108 of file xaccessible.hpp.

◆ front() [2/2]

template<class D >
auto xt::xconst_accessible< D >::front ( ) const
inline

Returns a constant reference to first the element of the expression.

Definition at line 114 of file xaccessible.hpp.

◆ has_linear_assign()

template<class D >
template<class S >
bool xt::xfunctor_applier_base< D >::has_linear_assign ( const S & strides) const
inline

Checks whether the xfunctor_applier_base can be linearly assigned to an expression with the specified strides.

Returns
a boolean indicating whether a linear assign is possible

Definition at line 919 of file xfunctor_view.hpp.

◆ is_contiguous()

template<class D >
bool xt::xfunctor_applier_base< D >::is_contiguous ( ) const
inlinenoexcept

Definition at line 751 of file xfunctor_view.hpp.

◆ layout()

template<class D >
layout_type xt::xfunctor_applier_base< D >::layout ( ) const
inlinenoexcept

Returns the layout_type of the expression.

Definition at line 745 of file xfunctor_view.hpp.

◆ linear_begin() [1/2]

template<class D >
auto xt::xfunctor_applier_base< D >::linear_begin ( ) const
inlinenoexcept

Definition at line 1296 of file xfunctor_view.hpp.

◆ linear_begin() [2/2]

template<class D >
auto xt::xfunctor_applier_base< D >::linear_begin ( )
inlinenoexcept

Definition at line 1284 of file xfunctor_view.hpp.

◆ linear_cbegin()

template<class D >
auto xt::xfunctor_applier_base< D >::linear_cbegin ( ) const
inlinenoexcept

Definition at line 1308 of file xfunctor_view.hpp.

◆ linear_cend()

template<class D >
auto xt::xfunctor_applier_base< D >::linear_cend ( ) const
inlinenoexcept

Definition at line 1314 of file xfunctor_view.hpp.

◆ linear_crbegin()

template<class D >
auto xt::xfunctor_applier_base< D >::linear_crbegin ( ) const
inlinenoexcept

Definition at line 1344 of file xfunctor_view.hpp.

◆ linear_crend()

template<class D >
auto xt::xfunctor_applier_base< D >::linear_crend ( ) const
inlinenoexcept

Definition at line 1350 of file xfunctor_view.hpp.

◆ linear_end() [1/2]

template<class D >
auto xt::xfunctor_applier_base< D >::linear_end ( ) const
inlinenoexcept

Definition at line 1302 of file xfunctor_view.hpp.

◆ linear_end() [2/2]

template<class D >
auto xt::xfunctor_applier_base< D >::linear_end ( )
inlinenoexcept

Definition at line 1290 of file xfunctor_view.hpp.

◆ linear_rbegin() [1/2]

template<class D >
auto xt::xfunctor_applier_base< D >::linear_rbegin ( ) const
inlinenoexcept

Definition at line 1332 of file xfunctor_view.hpp.

◆ linear_rbegin() [2/2]

template<class D >
auto xt::xfunctor_applier_base< D >::linear_rbegin ( )
inlinenoexcept

Definition at line 1320 of file xfunctor_view.hpp.

◆ linear_rend() [1/2]

template<class D >
auto xt::xfunctor_applier_base< D >::linear_rend ( ) const
inlinenoexcept

Definition at line 1338 of file xfunctor_view.hpp.

◆ linear_rend() [2/2]

template<class D >
auto xt::xfunctor_applier_base< D >::linear_rend ( )
inlinenoexcept

Definition at line 1326 of file xfunctor_view.hpp.

◆ load_simd()

template<class D >
template<class align , class requested_type = typename xexpression_type::value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size, class FCT = functor_type>
auto xt::xfunctor_applier_base< D >::load_simd ( size_type i) const -> decltype(std::declval<FCT>().template proxy_simd_load<align, requested_type, N>( std::declval<undecay_expression>(), i ))
inline

Definition at line 251 of file xfunctor_view.hpp.

◆ operator()() [1/2]

template<class D >
template<class... Args>
auto xt::xfunctor_applier_base< D >::operator() ( Args... args) -> reference
inline

Returns a reference to the element at the specified position in the expression.

Parameters
argsa list of indices specifying the position in the function. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the expression.

Definition at line 770 of file xfunctor_view.hpp.

◆ operator()() [2/2]

template<class D >
template<class... Args>
auto xt::xfunctor_applier_base< D >::operator() ( Args... args) const -> const_reference
inline

Returns a constant reference to the element at the specified position in the expression.

Parameters
argsa list of indices specifying the position in the function. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the expression.

Definition at line 826 of file xfunctor_view.hpp.

◆ periodic() [1/2]

template<class D >
template<class... Args>
auto xt::xaccessible< D >::periodic ( Args... args) -> reference
inline

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).

Parameters
argsa list of indices specifying the position in the expression. Indices must be integers, the number of indices should be equal to the number of dimensions of the expression.

Definition at line 315 of file xaccessible.hpp.

◆ periodic() [2/2]

template<class D >
template<class... Args>
auto xt::xconst_accessible< D >::periodic ( Args... args) const -> const_reference
inline

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).

Parameters
argsa list of indices specifying the position in the expression. Indices must be integers, the number of indices should be equal to the number of dimensions of the expression.

Definition at line 115 of file xaccessible.hpp.

◆ rbegin() [1/4]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::rbegin ( ) const
inlinenoexcept

Returns a constant iterator to the first element of the reversed expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1141 of file xfunctor_view.hpp.

◆ rbegin() [2/4]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::rbegin ( )
inlinenoexcept

Returns an iterator to the first element of the reversed expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1112 of file xfunctor_view.hpp.

◆ rbegin() [3/4]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::rbegin ( const S & shape) const -> const_reverse_broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the first element of the reversed expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1230 of file xfunctor_view.hpp.

◆ rbegin() [4/4]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::rbegin ( const S & shape) -> reverse_broadcast_iterator<S, L>
inlinenoexcept

Returns an iterator to the first element of the expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1202 of file xfunctor_view.hpp.

◆ rend() [1/4]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::rend ( ) const
inlinenoexcept

Returns a constant iterator to the element following the last element of the reversed expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1153 of file xfunctor_view.hpp.

◆ rend() [2/4]

template<class D >
template<layout_type L>
auto xt::xfunctor_applier_base< D >::rend ( )
inlinenoexcept

Returns an iterator to the element following the last element of the reversed expression.

Template Parameters
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1127 of file xfunctor_view.hpp.

◆ rend() [3/4]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::rend ( const S & ) const -> const_reverse_broadcast_iterator<S, L>
inlinenoexcept

Returns a constant iterator to the element following the last element of the reversed expression.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1245 of file xfunctor_view.hpp.

◆ rend() [4/4]

template<class D >
template<class S , layout_type L>
auto xt::xfunctor_applier_base< D >::rend ( const S & shape) -> reverse_broadcast_iterator<S, L>
inlinenoexcept

Returns an iterator to the element following the last element of the reversed expression.

The iteration is broadcasted to the specified shape.

Parameters
shapethe shape used for broadcasting
Template Parameters
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.

Definition at line 1216 of file xfunctor_view.hpp.

◆ shape()

template<class D >
auto xt::xfunctor_applier_base< D >::shape ( ) const
inlinenoexcept

Returns the shape of the expression.

Definition at line 718 of file xfunctor_view.hpp.

◆ size()

template<class D >
auto xt::xfunctor_applier_base< D >::size ( ) const
inlinenoexcept

Returns the size of the expression.

Definition at line 709 of file xfunctor_view.hpp.

◆ stepper_begin() [1/2]

template<class D >
template<class S >
auto xt::xfunctor_applier_base< D >::stepper_begin ( const S & shape) const -> const_stepper
inlinenoexcept

Definition at line 1375 of file xfunctor_view.hpp.

◆ stepper_begin() [2/2]

template<class D >
template<class S >
auto xt::xfunctor_applier_base< D >::stepper_begin ( const S & shape) -> stepper
inlinenoexcept

Definition at line 1361 of file xfunctor_view.hpp.

◆ stepper_end() [1/2]

template<class D >
template<class S >
auto xt::xfunctor_applier_base< D >::stepper_end ( const S & shape,
layout_type l ) const -> const_stepper
inlinenoexcept

Definition at line 1383 of file xfunctor_view.hpp.

◆ stepper_end() [2/2]

template<class D >
template<class S >
auto xt::xfunctor_applier_base< D >::stepper_end ( const S & shape,
layout_type l ) -> stepper
inlinenoexcept

Definition at line 1368 of file xfunctor_view.hpp.

◆ store_simd()

template<class D >
template<class align , class simd , class FCT = functor_type>
auto xt::xfunctor_applier_base< D >::store_simd ( size_type i,
const simd & e ) -> decltype(std::declval<FCT>() .template proxy_simd_store<align>(std::declval<undecay_expression>(), i, e))
inline

Definition at line 261 of file xfunctor_view.hpp.

◆ strides()

template<class D >
auto xt::xfunctor_applier_base< D >::strides ( ) const
inlinenoexcept

Returns the strides of the expression.

Definition at line 727 of file xfunctor_view.hpp.

◆ unchecked() [1/2]

template<class D >
template<class... Args>
auto xt::xfunctor_applier_base< D >::unchecked ( Args... args) -> reference
inline

Returns a reference to the element at the specified position in the expression.

Parameters
argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the expression, else the behavior is undefined.
Warning
This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
xt::xarray<double> a = {{0, 1}, {2, 3}};
xt::xarray<double> b = {0, 1};
auto fd = a + b;
double res = fd.unchecked(0, 1);

Definition at line 798 of file xfunctor_view.hpp.

◆ unchecked() [2/2]

template<class D >
template<class... Args>
auto xt::xfunctor_applier_base< D >::unchecked ( Args... args) const -> const_reference
inline

Returns a constant reference to the element at the specified position in the expression.

Parameters
argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the expression, else the behavior is undefined.
Warning
This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
xt::xarray<double> a = {{0, 1}, {2, 3}};
xt::xarray<double> b = {0, 1};
auto fd = a + b;
double res = fd.uncheked(0, 1);

Definition at line 854 of file xfunctor_view.hpp.

Friends And Related Symbol Documentation

◆ xaccessible< D >

template<class D >
friend class xaccessible< D >
friend

Definition at line 352 of file xfunctor_view.hpp.

◆ xconst_accessible< D >

template<class D >
friend class xconst_accessible< D >
friend

Definition at line 352 of file xfunctor_view.hpp.

Member Data Documentation

◆ contiguous_layout

template<class D >
constexpr bool xt::xfunctor_applier_base< D >::contiguous_layout = xexpression_type::contiguous_layout
staticconstexpr

Definition at line 118 of file xfunctor_view.hpp.

◆ m_e

template<class D >
undecay_expression xt::xfunctor_applier_base< D >::m_e
protected

Definition at line 351 of file xfunctor_view.hpp.

◆ m_functor

template<class D >
functor_type xt::xfunctor_applier_base< D >::m_functor
protected

Definition at line 352 of file xfunctor_view.hpp.

◆ static_layout

template<class D >
constexpr layout_type xt::xfunctor_applier_base< D >::static_layout = xexpression_type::static_layout
staticconstexpr

Definition at line 117 of file xfunctor_view.hpp.


The documentation for this class was generated from the following file: