NaN functions¶
xtensor provides the following functions that deal with NaNs in xexpressions:
Defined in xtensor/xmath.hpp
-
template<class
E>
autoxt::nan_to_num(E &&e)¶ Convert nan or +/- inf to numbers.
This functions converts nan to 0, and +inf to the highest, -inf to the lowest floating point value of the same type.
- Return
an xexpression
- Parameters
e: input xexpression
-
template<class
T= void, classE, classX, classEVS= std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<xtl::negation<is_reducer_options<X>>, xtl::negation<xtl::is_integral<X>>> = 0>
autoxt::nansum(E &&e, X &&axes, EVS es = EVS())¶ Sum of elements over given axes, replacing nan with 0.
Returns an xreducer for the sum of elements over given axes, replacing nan with 0.
- Return
an xreducer
- Parameters
e: an xexpressionaxes: the axes along which the sum is performed (optional)es: evaluation strategy of the reducer (optional)
- Template Parameters
T: the value type used for internal computation. The default isE::value_type.Tis also used for determining the value type of the result, which is the type ofT() + E::value_type(). You can passbig_promote_value_type_t<E>to avoid overflow in computation.
-
template<class
T= void, classE, classX, classEVS= std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<xtl::negation<is_reducer_options<X>>, xtl::negation<xtl::is_integral<X>>> = 0>
autoxt::nanprod(E &&e, X &&axes, EVS es = EVS())¶ Product of elements over given axes, replacing nan with 1.
Returns an xreducer for the sum of elements over given axes, replacing nan with 1.
- Return
an xreducer
- Parameters
e: an xexpressionaxes: the axes along which the sum is performed (optional)es: evaluation strategy of the reducer (optional)
- Template Parameters
T: the value type used for internal computation. The default isE::value_type.Tis also used for determining the value type of the result, which is the type ofT() * E::value_type(). You can passbig_promote_value_type_t<E>to avoid overflow in computation.
-
template<class
T= void, classE>
autoxt::nancumsum(E &&e, std::ptrdiff_t axis)¶ Cumulative sum, replacing nan with 0.
Returns an xaccumulator for the sum of elements over given axis, replacing nan with 0.
- Return
an xaccumulator
- Parameters
e: an xexpressionaxis: the axis along which the elements are accumulated (optional)
- Template Parameters
T: the value type used for internal computation. The default isE::value_type.Tis also used for determining the value type of the result, which is the type ofT() + E::value_type(). You can passbig_promote_value_type_t<E>to avoid overflow in computation.
-
template<class
T= void, classE>
autoxt::nancumprod(E &&e, std::ptrdiff_t axis)¶ Cumulative product, replacing nan with 1.
Returns an xaccumulator for the product of elements over given axis, replacing nan with 1.
- Return
an xaccumulator
- Parameters
e: an xexpressionaxis: the axis along which the elements are accumulated (optional)
- Template Parameters
T: the value type used for internal computation. The default isE::value_type.Tis also used for determining the value type of the result, which is the type ofT() * E::value_type(). You can passbig_promote_value_type_t<E>to avoid overflow in computation.