[libcxx-commits] [libcxx] [libcxx][test][z/OS] Fix hermite.pass.cpp for HEX float (PR #101019)
via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jul 29 07:31:40 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Zibi Sarbinowski (zibi2)
<details>
<summary>Changes</summary>
The HEX float on z/OS does not have infinity nor NaN. In addition, the limits are smaller before the overflow occurs in mathematical calculations. This PR accounts for this.
FYI, this LIT test was recently added in PR [89982](https://github.com/llvm/llvm-project/pull/89982)
---
Full diff: https://github.com/llvm/llvm-project/pull/101019.diff
1 Files Affected:
- (modified) libcxx/test/std/numerics/c.math/hermite.pass.cpp (+10-1)
``````````diff
diff --git a/libcxx/test/std/numerics/c.math/hermite.pass.cpp b/libcxx/test/std/numerics/c.math/hermite.pass.cpp
index 08fbd5c3283c1..fb702369ad036 100644
--- a/libcxx/test/std/numerics/c.math/hermite.pass.cpp
+++ b/libcxx/test/std/numerics/c.math/hermite.pass.cpp
@@ -26,7 +26,12 @@
#include "type_algorithms.h"
-inline constexpr unsigned g_max_n = 128;
+inline constexpr unsigned g_max_n =
+#if !(defined(__MVS__) && !defined(__BFP__))
+ 128;
+#else
+ 39;
+#endif
template <class T>
std::array<T, 11> sample_points() {
@@ -203,6 +208,7 @@ std::vector<T> get_roots(unsigned n) {
template <class Real>
void test() {
+#if !(defined(__MVS__) && !defined(__BFP__))
{ // checks if NaNs are reported correctly (i.e. output == input for input == NaN)
using nl = std::numeric_limits<Real>;
for (Real NaN : {nl::quiet_NaN(), nl::signaling_NaN()})
@@ -215,6 +221,7 @@ void test() {
for (unsigned n = 0; n < g_max_n; ++n)
assert(!std::isnan(std::hermite(n, x)));
}
+#endif
{ // checks std::hermite(n, x) for n=0..5 against analytic polynoms
const auto h0 = [](Real) -> Real { return 1; };
@@ -289,6 +296,7 @@ void test() {
}
}
+#if !(defined(__MVS__) && !defined(__BFP__))
{ // check input infinity is handled correctly
Real inf = std::numeric_limits<Real>::infinity();
for (unsigned n = 1; n < g_max_n; ++n) {
@@ -316,6 +324,7 @@ void test() {
}
}
}
+#endif
}
struct TestFloat {
``````````
</details>
https://github.com/llvm/llvm-project/pull/101019
More information about the libcxx-commits
mailing list