bug #1017: apply Christoph's patch preventing underflows in makeHouseholder

(grafted from 476beed7f837cbed9abc401f685c1882936fa959
)
This commit is contained in:
Gael Guennebaud 2015-06-22 16:51:45 +02:00
parent 38b9ff8b6f
commit 4f7baefa81

View File

@ -75,8 +75,9 @@ void MatrixBase<Derived>::makeHouseholder(
RealScalar tailSqNorm = size()==1 ? RealScalar(0) : tail.squaredNorm();
Scalar c0 = coeff(0);
const RealScalar tol = (std::numeric_limits<RealScalar>::min)();
if(tailSqNorm == RealScalar(0) && numext::imag(c0)==RealScalar(0))
if(tailSqNorm <= tol && numext::abs2(numext::imag(c0))<=tol)
{
tau = RealScalar(0);
beta = numext::real(c0);