<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p data-start="429" data-end="737">Hello, <br>
I found that the test case failure is not due to incorrect
behavior but rather seems like it is because of platform-specific
floating-point precision differences on ppc64le. The numerical
error is marginal and well within acceptable limits for
floating-point operations involving matrix decompositions and
pseudo-inverses.</p>
<p data-start="739" data-end="1026">This appears to be a case where
the test's absolute epsilon (<code data-start="800" data-end="806">1e-5</code>)
is a bit strict for some platforms, especially when fallback to
the normal pseudo-inverse occurs (as the fast pseudo-inverse
fails). The same issue also appears to be for arm64.<br>
<br>
To resolve this, I suggest for relaxing the epsilon slightly.
Following is the diff for that.<br>
<br>
diff --git a/unittest/ztensor_cp_test.cc
b/unittest/ztensor_cp_test.cc<br>
index e9f9a0f..4cd8446 100644<br>
--- a/unittest/ztensor_cp_test.cc<br>
+++ b/unittest/ztensor_cp_test.cc<br>
@@ -26,6 +26,9 @@ TEST_CASE("ZCP") {<br>
// double epsilon = fmax(1e-10,
<a class="moz-txt-link-freetext" href="std::numeric_limits">std::numeric_limits</a><double>::epsilon());<br>
double epsilon = 1e-5;<br>
<br>
+ #if defined(__PPC64__) || defined(__powerpc64__)<br>
+ epsilon = 2e-5;<br>
+ #endif<br>
ztensor Z3(3, 2, 4);<br>
<a class="moz-txt-link-freetext" href="std::ifstream">std::ifstream</a> inp3(__dirname + "/z-mat3D.txt");<br>
if (inp3.is_open()) {<br>
<a class="moz-txt-link-abbreviated" href="mailto:debian@ltc-zz14-lp9:~/test-btas/btas-1.0.0/debian/patches$">debian@ltc-zz14-lp9:~/test-btas/btas-1.0.0/debian/patches$</a> <br>
<br>
Thanks and regards.<br>
<br>
</p>
<p data-start="1028" data-end="1062"><br>
</p>
<p></p>
</body>
</html>