]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/math/ccmath/isnan.hpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / boost / math / ccmath / isnan.hpp
diff --git a/ceph/src/boost/boost/math/ccmath/isnan.hpp b/ceph/src/boost/boost/math/ccmath/isnan.hpp
new file mode 100644 (file)
index 0000000..e56a2f3
--- /dev/null
@@ -0,0 +1,39 @@
+//  (C) Copyright Matt Borland 2021.
+//  Use, modification and distribution are subject to the
+//  Boost Software License, Version 1.0. (See accompanying file
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_MATH_CCMATH_ISNAN
+#define BOOST_MATH_CCMATH_ISNAN
+
+#include <cmath>
+#include <type_traits>
+#include <boost/math/tools/is_constant_evaluated.hpp>
+
+namespace boost::math::ccmath {
+
+template <typename T>
+inline constexpr bool isnan(T x)
+{
+    if(BOOST_MATH_IS_CONSTANT_EVALUATED(x))
+    {
+        return x != x;
+    }
+    else
+    {
+        using std::isnan;
+
+        if constexpr (!std::is_integral_v<T>)
+        {
+            return isnan(x);
+        }
+        else
+        {
+            return isnan(static_cast<double>(x));
+        }
+    }
+}
+
+}
+
+#endif // BOOST_MATH_CCMATH_ISNAN