# Classification functions

xtensor provides the following classification functions for xexpressions and scalars:

Defined in `xtensor/xmath.hpp`

template<class E>
inline auto xt::isfinite(E &&e) noexcept -> detail::xfunction_type_t<math::isfinite_fun, E>

  finite value check

  Returns an xfunction for the element-wise finite value check tangent of e.

  Parameters

    e – an xexpression

  Returns

    an xfunction

template<class E>
inline auto xt::isinf(E &&e) noexcept -> detail::xfunction_type_t<math::isinf_fun, E>

  infinity check

  Returns an xfunction for the element-wise infinity check tangent of e.

  Parameters

    e – an xexpression

  Returns

    an xfunction

template<class E>
inline auto xt::isnan(E &&e) noexcept -> detail::xfunction_type_t<math::isnan_fun, E>

  NaN check.

  Returns an xfunction for the element-wise NaN check tangent of e.

  Parameters

    e – an xexpression

  Returns

    an xfunction

template<class E1, class E2>
inline auto xt::isclose(E1 &&e1, E2 &&e2, double rtol = 1e-05, double atol = 1e-08, bool equal_nan = false) noexcept

  Element-wise closeness detection.

  Returns an xfunction that evaluates to true if the elements in `e1` and `e2` are close to each other according to parameters `atol` and `rtol`. The equation is: `std::abs(a - b) <= (m_atol + m_rtol * std::abs(b))`.

  Parameters

    - e1 – input array to compare

    - e2 – input array to compare

    - rtol – the relative tolerance parameter (default 1e-05)

    - atol – the absolute tolerance parameter (default 1e-08)

    - equal_nan – if true, isclose returns true if both elements of e1 and e2 are NaN

  Returns

    an xfunction

Warning

doxygenfunction: Unable to resolve function “allclose” with arguments (E1&&, E2&, double, double) in doxygen xml output for project “xtensor” from directory: ../xml. Potential matches:

    - template<class E1, class E2> auto allclose(E1 &&e1, E2 &&e2, double rtol = 1e-05, double atol = 1e-08) noexcept