Bug #1790: Make `areApprox` check `numext::isnan` instead of bitwise equality (NaNs don't have to be bitwise equal).
diff --git a/test/packetmath_test_shared.h b/test/packetmath_test_shared.h index 046fd81..de1a055 100644 --- a/test/packetmath_test_shared.h +++ b/test/packetmath_test_shared.h
@@ -100,8 +100,12 @@ { for (int i=0; i<size; ++i) { - if ((!internal::biteq(a[i],b[i])) && a[i]!=b[i] && !internal::isApprox(a[i],b[i])) + if (a[i]!=b[i] && !internal::isApprox(a[i],b[i])) { + if((numext::isnan)(a[i]) && (numext::isnan)(b[i])) + { + continue; + } std::cout << "ref: [" << Map<const Matrix<Scalar,1,Dynamic> >(a,size) << "]" << " != vec: [" << Map<const Matrix<Scalar,1,Dynamic> >(b,size) << "]\n"; return false; }