xview¶
Defined in xtensor/xview.hpp
-
template<class
CT
, class ...S
>
classxview
: public xt::xview_semantic<xview<CT, S...>>, public std::conditional_t<detail::is_contiguous_view<std::decay_t<CT>, S...>::value, xcontiguous_iterable<xview<CT, S...>>, xiterable<xview<CT, S...>>>, public xt::xaccessible<xview<CT, S...>>, public extension::xview_base_t<CT, S...>¶ Multidimensional view with tensor semantic.
The xview class implements a multidimensional view with tensor semantic. It is used to adapt the shape of an xexpression without changing it. xview is not meant to be used directly, but only with the view helper functions.
- See
- Template Parameters
CT
: the closure type of the xexpression to adaptS
: the slices type describing the shape adaptation
Extended copy semantic
-
template<class
E
>
autooperator=
(const xexpression<E> &e)¶ The extended assignment operator.
Constructor
-
template<class
CTA
, classFSL
, class ...SL
>xview
(CTA &&e, FSL &&first_slice, SL&&... slices)¶ Constructs a view on the specified xexpression.
Users should not call directly this constructor but use the view function instead.
- See
- Parameters
e
: the xexpression to adaptfirst_slice
: the first slice describing the viewslices
: the slices list describing the view
Size and shape
-
auto
shape
() const¶ Returns the shape of the view.
-
auto
slices
() const¶ Returns the slices of the view.
-
layout_type
layout
() const¶ Returns the slices of the view.
Data
-
template<class
T
>
voidfill
(const T &value)¶ Fills the view with the given value.
- Parameters
value
: the value to fill the view with.
-
auto
expression
()¶ Returns a reference to the underlying expression of the view.
-
auto
expression
() const¶ Returns a const reference to the underlying expression of the view.
-
template<class ...
Args
>
autooperator()
(Args... args)¶ Returns a reference to the element at the specified position in the view.
- Parameters
args
: a list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the view.
-
template<class ...
Args
>
autounchecked
(Args... args)¶ Returns a reference to the element at the specified position in the view.
- 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.
- Warning
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);
- Parameters
args
: a list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the view, else the behavior is undefined.
-
template<class ...
Args
>
autooperator()
(Args... args) const¶ Returns a constant reference to the element at the specified position in the view.
- Parameters
args
: a list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the view.
-
template<class ...
Args
>
autounchecked
(Args... args) const¶ Returns a constant reference to the element at the specified position in the view.
- 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.
- Warning
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);
- Parameters
args
: a list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the view, else the behavior is undefined.
-
template<class
T
>
autostorage
()¶ Returns the data holder of the underlying container (only if the view is on a realized container).
xt::eval
will make sure that the underlying xexpression is on a realized container.
-
template<class
T
>
autostrides
() const¶ Return the strides for the underlying container of the view.
-
template<class
T
>
autodata
() const¶ Return the pointer to the underlying buffer.
-
template<class
T
>
autodata_offset
() const¶ Return the offset to the first element of the view in the underlying container.
Broadcasting
-
template<class
E
, class ...S
>
autoxt
::
view
(E &&e, S&&... slices)¶ Constructs and returns a view on the specified xexpression.
Users should not directly construct the slices but call helper functions instead.
-
template<class
E
>
autoxt
::
row
(E &&e, std::ptrdiff_t index)¶ Constructs and returns a row (sliced view) on the specified expression.
Users should not directly construct the slices but call helper functions instead. This function is only allowed on expressions with two dimensions.
- Parameters
e
: the xexpression to adaptindex
: 0-based index of the row, negative indices will return the last rows in reverse order.
- Exceptions
std::invalid_argument
: if the expression has more than 2 dimensions.
-
template<class
E
>
autoxt
::
col
(E &&e, std::ptrdiff_t index)¶ Constructs and returns a column (sliced view) on the specified expression.
Users should not directly construct the slices but call helper functions instead. This function is only allowed on expressions with two dimensions.
- Parameters
e
: the xexpression to adaptindex
: 0-based index of the column, negative indices will return the last columns in reverse order.
- Exceptions
std::invalid_argument
: if the expression has more than 2 dimensions.
Defined in xtensor/xslice.hpp
-
template<class
A
, classB
>
autoxt
::
range
(A start_val, B stop_val) Select a range from start_val to stop_val (excluded).
You can use the shorthand
_
syntax to select from the start or until the end.using namespace xt::placeholders; // to enable _ syntax range(3, _) // select from index 3 to the end range(_, 5) // select from index 0 to 5 (excluded) range(_, _) // equivalent to `all()`
- See
-
template<class
A
, classB
, classC
>
autoxt
::
range
(A start_val, B stop_val, C step) Select a range from start_val to stop_val (excluded) with step You can use the shorthand
_
syntax to select from the start or until the end.using namespace xt::placeholders; // to enable _ syntax range(3, _, 5) // select from index 3 to the end with stepsize 5
- See
-
auto
xt
::
all
() Returns a slice representing a full dimension, to be used as an argument of view function.
- See
-
auto
xt
::
newaxis
()¶ Returns a slice representing a new axis of length one, to be used as an argument of view function.
- See
-
auto
xt
::
ellipsis
()¶ Returns a slice representing all remaining dimensions, and selecting all in these dimensions.
Ellipsis will expand to a series of
all()
slices, until the number of slices is equal to the number of dimensions of the source array.Note: ellipsis can only be used in strided_view!
xarray<double> a = xarray<double>::from_shape({5, 5, 1, 1, 5}); auto v = xt::strided_view(a, {2, xt::ellipsis(), 2}); // equivalent to using {2, xt::all(), xt::all(), xt::all(), 2};
- See
-
template<class
T
>
detail::disable_integral_keep<T>xt
::
keep
(T &&indices) Create a non-contigous slice from a container of indices to keep.
Note: this slice cannot be used in the xstrided_view!
xt::xarray<double> a = xt::arange(9); a.reshape({3, 3}); xt::view(a, xt::keep(0, 2); // => {{0, 1, 2}, {6, 7, 8}} xt::view(a, xt::keep(1, 1, 1); // => {{3, 4, 5}, {3, 4, 5}, {3, 4, 5}}
- Return
instance of xkeep_slice
- Parameters
indices
: The indices container
-
template<class
T
>
detail::disable_integral_drop<T>xt
::
drop
(T &&indices) Create a non-contigous slice from a container of indices to drop.
Note: this slice cannot be used in the xstrided_view!
xt::xarray<double> a = xt::arange(9); a.reshape({3, 3}); xt::view(a, xt::drop(0, 2); // => {{3, 4, 5}}
- Return
instance of xdrop_slice
- Parameters
indices
: The container of indices to drop