# 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:
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:
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:
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:

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
```