[libc-commits] [libc] [libc][math][c23] Add nextup{, f, f128} and nextdown{, f, f128} functions (PR #85431)
via libc-commits
libc-commits at lists.llvm.org
Fri Mar 15 10:40:03 PDT 2024
================
@@ -0,0 +1,55 @@
+//===-- Utility class to test different flavors of nextdown -----*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_TEST_SRC_MATH_NEXTDOWNTEST_H
+#define LLVM_LIBC_TEST_SRC_MATH_NEXTDOWNTEST_H
+
+#include "test/UnitTest/FPMatcher.h"
+#include "test/UnitTest/Test.h"
+
+template <typename T>
+class NextDownTestTemplate : public LIBC_NAMESPACE::testing::Test {
+ using FPBits = typename LIBC_NAMESPACE::fputil::FPBits<T>;
+ using Sign = typename LIBC_NAMESPACE::fputil::Sign;
+
+ static constexpr T inf = FPBits::inf().get_val();
+ static constexpr T neg_inf = FPBits::inf(Sign::NEG).get_val();
+ static constexpr T zero = FPBits::zero().get_val();
+ static constexpr T neg_zero = FPBits::zero(Sign::NEG).get_val();
+ static constexpr T nan = FPBits::quiet_nan().get_val();
+
+ static constexpr T min_subnormal = FPBits::min_subnormal().get_val();
+ static constexpr T neg_min_subnormal =
+ FPBits::min_subnormal(Sign::NEG).get_val();
+ static constexpr T max_normal = FPBits::max_normal().get_val();
+ static constexpr T neg_max_normal = FPBits::max_normal(Sign::NEG).get_val();
----------------
lntue wrote:
You can add the signed versions to `DECLARE_SPECIAL_CONSTANTS` macro and use it here:
https://github.com/llvm/llvm-project/blob/main/libc/test/UnitTest/FPMatcher.h#L92
https://github.com/llvm/llvm-project/pull/85431
More information about the libc-commits
mailing list