xindex_view¶
Defined in xtensor/xindex_view.hpp
- template <class CT, class I>
-
class
xt::xindex_view¶ View of an xexpression from vector of indices.
The xindex_view class implements a flat (1D) view into a multidimensional xexpression yielding the values at the indices of the index array. xindex_view is not meant to be used directly, but only with the index_view and filter helper functions.
- See
- index_view, filter
- Template Parameters
CT: the closure type of the xexpression type underlying this viewI: the index array type of the view
Inherits from xt::xview_semantic< xindex_view< CT, I > >, xt::xiterable< xindex_view< CT, I > >, extension::xindex_view_base_t< CT, I >
Constructor
- template <class CTA, class I2>
-
xindex_view(CTA &&e, I2 &&indices)¶ Constructs an xindex_view, selecting the indices specified by indices.
The resulting xexpression has a 1D shape with a length of n for n indices.
- Parameters
e: the underlying xexpression for this viewindices: the indices to select
Size and shape
-
auto
size() const¶ Returns the size of the xindex_view.
-
auto
dimension() const¶ Returns the number of dimensions of the xindex_view.
-
auto
shape() const¶ Returns the shape of the xindex_view.
-
auto
shape(size_type index) const¶ Returns the i-th dimension of the expression.
Data
- template <class T>
-
void
fill(const T &value)¶ Fills the view with the given value.
- Parameters
value: the value to fill the view with.
-
auto
operator()(size_type idx = size_type(0))¶ Returns a reference to the element at the specified position in the xindex_view.
- Parameters
idx: index specifying the position in the index_view. More indices may be provided, only the last one will be used.
-
auto
unchecked(size_type idx)¶ Returns a reference to the element at the specified position in the xindex_view.
- Parameters
idx: index specifying the position in the index_view.
-
auto
operator()(size_type idx = size_type(0)) const¶ Returns a constant reference to the element at the specified position in the xindex_view.
- Parameters
idx: index specifying the position in the index_view. More indices may be provided, only the last one will be used.
-
auto
unchecked(size_type idx) const¶ Returns a constant reference to the element at the specified position in the xindex_view.
- Parameters
idx: index specifying the position in the index_view.
-
auto
expression()¶ Returns a reference to the underlying expression of the view.
-
auto
expression() const¶ Returns a constant reference to the underlying expression of the view.
- template <class S>
-
auto
operator[](const S &index)¶ Returns a reference to the element at the specified position in the container.
- Parameters
index: a sequence of indices specifying the position in the container. Indices must be unsigned integers, the number of indices in the list should be equal or greater than the number of dimensions of the container.
- template <class S>
-
auto
operator[](const S &index) const¶ Returns a constant reference to the element at the specified position in the container.
- Parameters
index: a sequence of indices specifying the position in the container. Indices must be unsigned integers, the number of indices in the list should be equal or greater than the number of dimensions of the container.
- template <class It>
-
auto
element(It first, It)¶ Returns a reference to the element at the specified position in the xindex_view.
- Parameters
first: iterator starting the sequence of indices The number of indices in the sequence should be equal to or greater 1.
- template <class It>
-
auto
element(It first, It) const¶ Returns a reference to the element at the specified position in the xindex_view.
- Parameters
first: iterator starting the sequence of indices The number of indices in the sequence should be equal to or greater 1.
Broadcasting
- template <class O>
-
bool
broadcast_shape(O &shape, bool reuse_cache = false) const¶ Broadcast the shape of the xindex_view to the specified parameter.
- Return
- a boolean indicating whether the broadcasting is trivial
- Parameters
shape: the result shapereuse_cache: parameter for internal optimization
- template <class O>
-
bool
has_linear_assign(const O&) const¶ Checks whether the xindex_view can be linearly assigned to an expression with the specified strides.
- Return
- a boolean indicating whether a linear assign is possible
Extended copy semantic
- template <class E>
-
auto
operator=(const xexpression<E> &e)¶ The extended assignment operator.
- template <class ECT, class CCT>
-
class
xt::xfiltration¶ Filter of a xexpression for fast scalar assign.
The xfiltration class implements a lazy filtration of a multidimentional xexpression, optimized for scalar and computed scalar assignments. Actually, the xfiltration class IS NOT an xexpression and the scalar and computed scalar assignments are the only method it provides. The filtering condition is not evaluated until the filtration is assigned.
xfiltration is not meant to be used directly, but only with the filtration helper function.
- See
- filtration
- Template Parameters
ECT: the closure type of the xexpression type underlying this filtrationCCR: the closure type of the filtering xexpression type
Constructor
- template <class ECTA, class CCTA>
-
xfiltration(ECTA &&e, CCTA &&condition)¶ Constructs a xfiltration on the given expression
e, selecting the elements matching the specifiedcondition.- Parameters
e: the xexpression to filter.condition: the filtering xexpression to apply.
Extended copy semantic
- template <class E>
-
auto
operator=(const E &e)¶ Assigns the scalar
eto*this.- Return
- a reference to \ *this.
- Parameters
e: the scalar to assign.
Computed assignement
- template <class E>
-
auto
operator+=(const E &e)¶ Adds the scalar
eto*this.- Return
- a reference to
*this. - Parameters
e: the scalar to add.
- template <class E>
-
auto
operator-=(const E &e)¶ Subtracts the scalar
efrom*this.- Return
- a reference to
*this. - Parameters
e: the scalar to subtract.
- template <class E>
-
auto
operator*=(const E &e)¶ Multiplies
*thiswith the scalare.- Return
- a reference to
*this. - Parameters
e: the scalar involved in the operation.
- template <class E>
-
auto
operator/=(const E &e)¶ Divides
*thisby the scalare.- Return
- a reference to
*this. - Parameters
e: the scalar involved in the operation.
- template <class E>
-
auto
operator%=(const E &e)¶ Computes the remainder of
*thisafter division by the scalare.- Return
- a reference to
*this. - Parameters
e: the scalar involved in the operation.
- template <class E, class I>
-
auto
xt::index_view(E &&e, I &&indices) creates an indexview from a container of indices.
Returns a 1D view with the elements at indices selected.
xarray<double> a = {{1,5,3}, {4,5,6}}; b = index_view(a, {{0, 0}, {1, 0}, {1, 1}}); std::cout << b << std::endl; // {1, 4, 5} b += 100; std::cout << a << std::endl; // {{101, 5, 3}, {104, 105, 6}}
- Parameters
e: the underlying xexpressionindices: the indices to select
- template <layout_type L = ::xt::layout_type::row_major, class E, class O>
-
auto
xt::filter(E &&e, O &&condition)¶ creates a view into e filtered by condition.
Returns a 1D view with the elements selected where condition evaluates to true. This is equivalent to
The returned view is not optimal if you just want to assign a scalar to the filtered elements. In that case, you should consider using the filtration function instead.{index_view(e, argwhere(condition));}
xarray<double> a = {{1,5,3}, {4,5,6}}; b = filter(a, a >= 5); std::cout << b << std::endl; // {5, 5, 6}
- Template Parameters
L: the traversal order
- Parameters
e: the underlying xexpressioncondition: xexpression with shape of e which selects indices
- See
- filtration
- template <class E, class C>
-
auto
xt::filtration(E &&e, C &&condition)¶ creates a filtration of
efiltered by condition.Returns a lazy filtration optimized for scalar assignment. Actually, scalar assignment and computed scalar assignments are the only available methods of the filtration, the filtration IS NOT an xexpression.
xarray<double> a = {{1,5,3}, {4,5,6}}; filtration(a, a >= 5) += 2; std::cout << a << std::endl; // {{1, 7, 3}, {4, 7, 8}}
- Parameters
e: the xexpression to filtercondition: the filtering xexpression