xoptional_assembly

Defined in xtensor/xoptional_assembly.hpp

template<class VE, class FE>
class xt::xoptional_assembly : public xt::xoptional_assembly_base<xoptional_assembly<VE, FE>>, public xt::xcontainer_semantic<xoptional_assembly<VE, FE>>

Dense multidimensional container holding optional values, optimized for tensor operations.

The xoptional_assembly class implements a dense multidimensional container hoding optional values. This container is optimized of tensor operations: contrary to xarray_optional, xoptional_assembly holds two separated expressions, one for the values, the other for the missing mask.

tparam VE

The type of expression holding the values.

tparam FE

The type of expression holding the missing mask.

Constructors

inline xoptional_assembly()

Allocates an uninitialized xoptional_assembly that holds 0 element.

inline explicit xoptional_assembly(const shape_type &shape, layout_type l = base_type::static_layout)

Allocates an uninitialized xoptional_assembly with the specified shape and layout_type.

Parameters
inline explicit xoptional_assembly(const shape_type &shape, const value_type &value, layout_type l = base_type::static_layout)

Allocates an xoptional_assembly with the specified shape and layout_type.

Elements are initialized to the specified value.

Parameters
inline explicit xoptional_assembly(const shape_type &shape, const strides_type &strides)

Allocates an uninitialized xoptional_assembly with the specified shape and strides.

Parameters
inline explicit xoptional_assembly(const shape_type &shape, const strides_type &strides, const value_type &value)

Allocates an uninitialized xoptional_assembly with the specified shape and strides.

Elements are initialized to the specified value.

Parameters
inline xoptional_assembly(const VE &ve)

Allocates an xoptional_assembly from the specified value expression.

The flag expression is initialized as if no value is missing.

Parameters

ve – the expression holding the values

inline xoptional_assembly(VE &&ve)

Allocates an xoptional_assembly from the specified value expression.

The flag expression is initialized as if no value is missing. The value expression is moved inside the xoptional_assembly and is therefore not available after the xoptional_assembly has been constructed.

Parameters

ve – the expression holding the values

template<class OVE, class OFE, typename = std::enable_if_t<is_xexpression<OVE>::value && is_xexpression<OFE>::value>>
inline xoptional_assembly(OVE &&ove, OFE &&ofe)

Allocates an xoptional_assembly from the specified value expression and missing mask expression.

Parameters
  • ove – the expression holding the values

  • ofe – the expression holding the missing mask

inline xoptional_assembly(const value_type &value)

Allocates an xoptional_assembly that holds a single element initialized to the specified value.

Parameters

value – the value of the element

Constructors from initializer list

inline xoptional_assembly(nested_initializer_list_t<value_type, 1> t)

Allocates a one-dimensional xoptional_assembly.

Parameters

t – the elements of the xoptional_assembly

inline xoptional_assembly(nested_initializer_list_t<value_type, 2> t)

Allocates a two-dimensional xoptional_assembly.

Parameters

t – the elements of the xoptional_assembly

inline xoptional_assembly(nested_initializer_list_t<value_type, 3> t)

Allocates a three-dimensional xoptional_assembly.

Parameters

t – the elements of the xoptional_assembly

inline xoptional_assembly(nested_initializer_list_t<value_type, 4> t)

Allocates a four-dimensional xoptional_assembly.

Parameters

t – the elements of the xoptional_assembly

inline xoptional_assembly(nested_initializer_list_t<value_type, 5> t)

Allocates a five-dimensional xoptional_assembly.

Parameters

t – the elements of the xoptional_assembly

template<class S>
inline xoptional_assembly<VE, FE> from_shape(S &&s)

Allocates and returns an xoptional_assembly with the specified shape.

Parameters

s – the shape of the xoptional_assembly

Extended copy semantic

template<class E>
inline xoptional_assembly(const xexpression<E> &e)

The extended copy constructor.

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

The extended assignment operator.