summaryrefslogtreecommitdiff
path: root/third-party/boost-math/include/boost/math/ccmath/isless.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'third-party/boost-math/include/boost/math/ccmath/isless.hpp')
-rw-r--r--third-party/boost-math/include/boost/math/ccmath/isless.hpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/third-party/boost-math/include/boost/math/ccmath/isless.hpp b/third-party/boost-math/include/boost/math/ccmath/isless.hpp
new file mode 100644
index 000000000000..bf923e6f807b
--- /dev/null
+++ b/third-party/boost-math/include/boost/math/ccmath/isless.hpp
@@ -0,0 +1,42 @@
+// (C) Copyright Matt Borland 2022.
+// 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_ISLESS_HPP
+#define BOOST_MATH_CCMATH_ISLESS_HPP
+
+#include <boost/math/ccmath/detail/config.hpp>
+
+#ifdef BOOST_MATH_NO_CCMATH
+#error "The header <boost/math/isless.hpp> can only be used in C++17 and later."
+#endif
+
+#include <boost/math/ccmath/isnan.hpp>
+
+namespace boost::math::ccmath {
+
+template <typename T1, typename T2 = T1>
+inline constexpr bool isless(T1 x, T2 y) noexcept
+{
+ if (BOOST_MATH_IS_CONSTANT_EVALUATED(x))
+ {
+ if (boost::math::ccmath::isnan(x) || boost::math::ccmath::isnan(y))
+ {
+ return false;
+ }
+ else
+ {
+ return x < y;
+ }
+ }
+ else
+ {
+ using std::isless;
+ return isless(x, y);
+ }
+}
+
+} // Namespaces
+
+#endif // BOOST_MATH_CCMATH_ISLESS_HPP