%PDF- %PDF-
| Direktori : /usr/lib/python3/dist-packages/pythran/pythonic/numpy/ |
| Current File : //usr/lib/python3/dist-packages/pythran/pythonic/numpy/isclose.hpp |
#ifndef PYTHONIC_NUMPY_ISCLOSE_HPP
#define PYTHONIC_NUMPY_ISCLOSE_HPP
#include "pythonic/include/numpy/isclose.hpp"
#include "pythonic/utils/functor.hpp"
#include "pythonic/types/ndarray.hpp"
#include "pythonic/numpy/abs.hpp"
#include "pythonic/numpy/isfinite.hpp"
#include "pythonic/numpy/isnan.hpp"
PYTHONIC_NS_BEGIN
namespace numpy
{
namespace wrapper
{
template <class T0, class T1>
bool isclose(T0 const &u, T1 const &v, double rtol, double atol,
bool equal_nan)
{
if (functor::isfinite()(u) && functor::isfinite()(v))
return functor::abs()(u - v) <= (atol + rtol * functor::abs()(v));
else if (functor::isnan()(u) && functor::isnan()(v))
return equal_nan;
else
return (u == v);
}
}
#define NUMPY_NARY_FUNC_NAME isclose
#define NUMPY_NARY_FUNC_SYM wrapper::isclose
#include "pythonic/types/numpy_nary_expr.hpp"
}
PYTHONIC_NS_END
#endif