# NaN functions

xtensor provides the following functions that deal with NaNs in xexpressions:

Defined in `xtensor/xmath.hpp`

Warning

doxygenfunction: Cannot find function “nan_to_num” in doxygen xml output for project “xtensor” from directory: ../xml

Warning

doxygenfunction: Unable to resolve function “nanmin” with arguments (E&&, X&&, EVS) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<is_reducer_options<EVS>> = 0> auto nanmin(E &&e, EVS es = EVS())
    - template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>> auto nanmin(E &&e, const I (&axes)[N], EVS es = EVS())
    - template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<xtl::negation<is_reducer_options<X>>, xtl::is_integral<std::decay_t<X>>> = 0> auto nanmin(E &&e, X axis, EVS es = EVS())

Warning

doxygenfunction: Unable to resolve function “nanmax” with arguments (E&&, X&&, EVS) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<is_reducer_options<EVS>> = 0> auto nanmax(E &&e, EVS es = EVS())
    - template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>> auto nanmax(E &&e, const I (&axes)[N], EVS es = EVS())
    - template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<xtl::negation<is_reducer_options<X>>, xtl::is_integral<std::decay_t<X>>> = 0> auto nanmax(E &&e, X axis, EVS es = EVS())

Warning

doxygenfunction: Unable to resolve function “nansum” with arguments (E&&, X&&, EVS) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<is_reducer_options<EVS>> = 0> auto nansum(E &&e, EVS es = EVS())
    - template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>> auto nansum(E &&e, const I (&axes)[N], EVS es = EVS())
    - template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<xtl::negation<is_reducer_options<X>>, xtl::is_integral<std::decay_t<X>>> = 0> auto nansum(E &&e, X axis, EVS es = EVS())

Warning

doxygenfunction: Unable to resolve function “nanmean” with arguments (E&&, X&&, EVS) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<is_reducer_options<EVS>> = 0> auto nanmean(E &&e, EVS es = EVS())
    - template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>> auto nanmean(E &&e, const I (&axes)[N], EVS es = EVS())

Warning

doxygenfunction: Unable to resolve function “nanvar” with arguments (E&&, X&&, EVS) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>> auto nanvar(E &&e, const A (&axes)[N], EVS es = EVS())
    - template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<is_reducer_options<EVS>> = 0> auto nanvar(E &&e, EVS es = EVS())

Warning

doxygenfunction: Unable to resolve function “nanstd” with arguments (E&&, X&&, EVS) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>> auto nanstd(E &&e, const A (&axes)[N], EVS es = EVS())
    - template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<is_reducer_options<EVS>> = 0> auto nanstd(E &&e, EVS es = EVS())

Warning

doxygenfunction: Unable to resolve function “nanprod” with arguments (E&&, X&&, EVS) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<is_reducer_options<EVS>> = 0> auto nanprod(E &&e, EVS es = EVS())
    - template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>> auto nanprod(E &&e, const I (&axes)[N], EVS es = EVS())
    - template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept<xtl::negation<is_reducer_options<X>>, xtl::is_integral<std::decay_t<X>>> = 0> auto nanprod(E &&e, X axis, EVS es = EVS())

template<class T = void, class E>
inline auto xt::nancumsum(E &&e)

Warning

doxygenfunction: Unable to resolve function “nancumsum” with arguments (E&&, std::ptrdiff_t) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class T = void, class E> auto nancumsum(E &&e)

template<class T = void, class E>
inline auto xt::nancumprod(E &&e)

Warning

doxygenfunction: Unable to resolve function “nancumprod” with arguments (E&&, std::ptrdiff_t) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class T = void, class E> auto nancumprod(E &&e)