mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-21 04:14:26 +08:00
Fix bug in checking subnormals.
This commit is contained in:
parent
5a90fbceaa
commit
f391289150
@ -97,11 +97,10 @@ void binary_op_test(std::string name, Fn fun, RefFn ref) {
|
|||||||
Scalar e = static_cast<Scalar>(ref(lhs(i, j), rhs(i, j)));
|
Scalar e = static_cast<Scalar>(ref(lhs(i, j), rhs(i, j)));
|
||||||
Scalar a = actual(i, j);
|
Scalar a = actual(i, j);
|
||||||
#if EIGEN_ARCH_ARM
|
#if EIGEN_ARCH_ARM
|
||||||
// Work around NEON flush-to-zero mode
|
// Work around NEON flush-to-zero mode.
|
||||||
// if ref returns a subnormal value and Eigen returns 0, then skip the test
|
// If ref returns a subnormal value and Eigen returns 0, then skip the test.
|
||||||
if (a == Scalar(0) &&
|
if (a == Scalar(0) && (e > -(std::numeric_limits<Scalar>::min)() && e < (std::numeric_limits<Scalar>::min)()) &&
|
||||||
(e > -(std::numeric_limits<Scalar>::min)() && e < (std::numeric_limits<Scalar>::min)() &&
|
(e <= -std::numeric_limits<Scalar>::denorm_min() || e >= std::numeric_limits<Scalar>::denorm_min())) {
|
||||||
e >= -std::numeric_limits<Scalar>::denorm_min() && e <= std::numeric_limits<Scalar>::denorm_min())) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user