xarray_adaptor

Defined in xtensor/xarray.hpp

template <class EC, layout_type L, class SC, class Tag>
class xarray_adaptor : public xt::xstrided_container<xarray_adaptor<EC, L, SC, Tag>>, public xt::xcontainer_semantic<xarray_adaptor<EC, L, SC, Tag>>

Dense multidimensional container adaptor with tensor semantic.

The xarray_adaptor class implements a dense multidimensional container adaptor with tensor semantic. It is used to provide a multidimensional container semantic and a tensor semantic to stl-like containers.

Template Parameters
  • EC: The closure for the container type to adapt.
  • L: The layout_type of the adaptor.
  • SC: The type of the containers holding the shape and the strides.
  • Tag: The expression tag.

Constructors

xarray_adaptor(storage_type &&storage)

Constructs an xarray_adaptor of the given stl-like container.

Parameters
  • storage: the container to adapt

xarray_adaptor(const storage_type &storage)

Constructs an xarray_adaptor of the given stl-like container.

Parameters
  • storage: the container to adapt

template <class D>
xarray_adaptor(D &&storage, const shape_type &shape, layout_type l = L)

Constructs an xarray_adaptor of the given stl-like container, with the specified shape and layout_type.

Parameters

template <class D>
xarray_adaptor(D &&storage, const shape_type &shape, const strides_type &strides)

Constructs an xarray_adaptor of the given stl-like container, with the specified shape and strides.

Parameters

Extended copy semantic

template <class E>
auto operator=(const xexpression<E> &e)

The extended assignment operator.

adapt (xarray_adaptor)

Defined in xtensor/xadapt.hpp

template <layout_type L = ::xt::layout_type::row_major, class C, class SC, typename std::enable_if_t<!detail::is_array< std::decay_t< SC >>::value, int > = 0, typename std::enable_if_t<!std::is_pointer< C >::value, int > = 0>
xarray_adaptor<xtl::closure_type_t<C>, L, std::decay_t<SC>> xt::adapt(C &&container, const SC &shape, layout_type l = L)

Constructs an xarray_adaptor of the given stl-like container, with the specified shape and layout.

Parameters

template <class C, class SC, class SS, typename std::enable_if_t<!detail::is_array< std::decay_t< SC >>::value, int > = 0, typename std::enable_if_t<!std::is_same< layout_type, std::decay_t< SS >>::value, int > = 0>
xarray_adaptor<xtl::closure_type_t<C>, layout_type::dynamic, std::decay_t<SC>> xt::adapt(C &&container, SC &&shape, SS &&strides)

Constructs an xarray_adaptor of the given stl-like container, with the specified shape and strides.

Parameters

template <layout_type L = ::xt::layout_type::row_major, class P, class O, class SC, class A = detail::default_allocator_for_ptr_t<P>, typename std::enable_if_t<!detail::is_array< std::decay_t< SC >>::value, int > = 0>
xarray_adaptor<xbuffer_adaptor<xtl::closure_type_t<P>, O, A>, L, SC> xt::adapt(P &&pointer, typename A::size_type size, O ownership, const SC &shape, layout_type l = L, const A &alloc = A())

Constructs an xarray_adaptor of the given dynamically allocated C array, with the specified shape and layout.

Parameters
  • pointer: the pointer to the beginning of the dynamic array
  • size: the size of the dynamic array
  • ownership: indicates whether the adaptor takes ownership of the array. Possible values are no_ownerhsip() or acquire_ownership()
  • shape: the shape of the xarray_adaptor
  • l: the layout_type of the xarray_adaptor
  • alloc: the allocator used for allocating / deallocating the dynamic array

template <class P, class O, class SC, class SS, class A = detail::default_allocator_for_ptr_t<P>, typename std::enable_if_t<!detail::is_array< std::decay_t< SC >>::value, int > = 0, typename std::enable_if_t<!std::is_same< layout_type, std::decay_t< SS >>::value, int > = 0>
xarray_adaptor<xbuffer_adaptor<xtl::closure_type_t<P>, O, A>, layout_type::dynamic, std::decay_t<SC>> xt::adapt(P &&pointer, typename A::size_type size, O ownership, SC &&shape, SS &&strides, const A &alloc = A())

Constructs an xarray_adaptor of the given dynamically allocated C array, with the specified shape and layout.

Parameters
  • pointer: the pointer to the beginning of the dynamic array
  • size: the size of the dynamic array
  • ownership: indicates whether the adaptor takes ownership of the array. Possible values are no_ownerhsip() or acquire_ownership()
  • shape: the shape of the xarray_adaptor
  • strides: the strides of the xarray_adaptor
  • alloc: the allocator used for allocating / deallocating the dynamic array