From 40f326ef2ecf50022b082ec09bc9e545f19ebf6f Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 17 Jun 2015 15:33:09 +0200 Subject: [PATCH] workaround clang's broken complex division --- test/array.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/array.cpp b/test/array.cpp index b802e52f6..b0210c682 100644 --- a/test/array.cpp +++ b/test/array.cpp @@ -346,7 +346,18 @@ template void array_complex(const ArrayType& m) std::complex zero(0.0,0.0); VERIFY(isnan(m1*zero/zero).all()); +#if EIGEN_COMP_CLANG + // clang's complex division is notoriously broken + if(numext::isinf(m1(0,0)/Scalar(0))) { +#endif VERIFY(isinf(m1/zero).all()); +#if EIGEN_COMP_CLANG + } + else + { + VERIFY(isinf(m1.real()/zero.real()).all()); + } +#endif VERIFY((isfinite(m1) && !isfinite(m1*zero/zero) && !isfinite(m1/zero)).all()); VERIFY_IS_APPROX(inverse(inverse(m1)),m1);