xtensor¶
Defined in xtensor/xtensor.hpp
-
template<class
EC
, std::size_tN
, layout_typeL
, classTag
>
classxtensor_container
: public xt::xstrided_container<xtensor_container<EC, N, L, Tag>>, public xt::xcontainer_semantic<xtensor_container<EC, N, L, Tag>>, public extension::xtensor_container_base_t<EC, N, L, Tag>¶ Dense multidimensional container with tensor semantic and fixed dimension.
The xtensor_container class implements a dense multidimensional container with tensor semantics and fixed dimension
- See
- Template Parameters
EC
: The type of the container holding the elements.N
: The dimension of the container.L
: The layout_type of the tensor.Tag
: The expression tag.
Constructors
-
xtensor_container
()¶ Allocates an uninitialized xtensor_container that holds 0 elements.
-
xtensor_container
(nested_initializer_list_t<value_type, N> t)¶ Allocates an xtensor_container with nested initializer lists.
-
xtensor_container
(const shape_type &shape, layout_type l = L)¶ Allocates an uninitialized xtensor_container with the specified shape and layout_type.
- Parameters
shape
: the shape of the xtensor_containerl
: the layout_type of the xtensor_container
-
xtensor_container
(const shape_type &shape, const_reference value, layout_type l = L)¶ Allocates an xtensor_container with the specified shape and layout_type.
Elements are initialized to the specified value.
- Parameters
shape
: the shape of the xtensor_containervalue
: the value of the elementsl
: the layout_type of the xtensor_container
-
xtensor_container
(const shape_type &shape, const strides_type &strides)¶ Allocates an uninitialized xtensor_container with the specified shape and strides.
- Parameters
shape
: the shape of the xtensor_containerstrides
: the strides of the xtensor_container
-
xtensor_container
(const shape_type &shape, const strides_type &strides, const_reference value)¶ Allocates an uninitialized xtensor_container with the specified shape and strides.
Elements are initialized to the specified value.
- Parameters
shape
: the shape of the xtensor_containerstrides
: the strides of the xtensor_containervalue
: the value of the elements
-
xtensor_container
(storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)¶ Allocates an xtensor_container by moving specified data, shape and strides.
- Parameters
storage
: the data for the xtensor_containershape
: the shape of the xtensor_containerstrides
: the strides of the xtensor_container
Extended copy semantic
-
template<class
E
>xtensor_container
(const xexpression<E> &e)¶ The extended copy constructor.
-
template<class
E
>
autooperator=
(const xexpression<E> &e)¶ The extended assignment operator.
-
typedef
xt
::
xtensor
¶ Alias template on xtensor_container with default parameters for data container type.
This allows to write
xt::xtensor<double, 2> a = {{1., 2.}, {3., 4.}};
instead of the heavier syntax
xt::xtensor_container<std::vector<double>, 2> a = ...
- Template Parameters
T
: The value type of the elements.N
: The dimension of the tensor.L
: The layout_type of the tensor (default: XTENSOR_DEFAULT_LAYOUT).A
: The allocator of the containers holding the elements.
-
typedef
xt
::
xtensor_optional
¶ Alias template on xtensor_container for handling missing values.
- Template Parameters
T
: The value type of the elements.N
: The dimension of the tensor.L
: The layout_type of the container (default: XTENSOR_DEFAULT_LAYOUT).A
: The allocator of the containers holding the elements.BA
: The allocator of the container holding the missing flags.
-
template<class
T
>
autoxt
::
from_indices
(const std::vector<T> &idx) Converts
std::vector<index_type>
(returned e.g.from
xt::argwhere
) toxtensor
.- Return
xt::xtensor<typename index_type::value_type, 2>
(e.g.xt::xtensor<size_t, 2>
)- Parameters
idx
: vector of indices
-
template<class
T
>
autoxt
::
flatten_indices
(const std::vector<T> &idx)¶ Converts
std::vector<index_type>
(returned e.g.from
xt::argwhere
) to a flattenedxtensor
.- Return
xt::xtensor<typename index_type::value_type, 1>
(e.g.xt::xtensor<size_t, 1>
)- Parameters
idx
: a vector of indices
-
template<class
Tag
= ravel_tensor_tag, classC
, classS
>
ravel_return_type_t<C, Tag>xt
::
ravel_indices
(const C &idx, const S &shape, layout_type l = layout_type::row_major)¶ Converts
std::vector<index_type>
(returned e.g.from
xt::argwhere
) toxtensor
whereby the indices are ravelled. For 1-d input there is no conversion.- Return
xt::xtensor<typename index_type::value_type, 1>
(e.g.xt::xtensor<size_t, 1>
)- Parameters
idx
: vector of indicesshape
: the shape of the original arrayl
: the layout type (row-major or column-major)