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

This commit is contained in:
Gael Guennebaud 2015-06-22 16:51:45 +02:00
parent 9fc1c92137
commit 476beed7f8

View File

@ -75,8 +75,9 @@ void MatrixBase<Derived>::makeHouseholder(
RealScalar tailSqNorm = size()==1 ? RealScalar(0) : tail.squaredNorm(); RealScalar tailSqNorm = size()==1 ? RealScalar(0) : tail.squaredNorm();
Scalar c0 = coeff(0); 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); tau = RealScalar(0);
beta = numext::real(c0); beta = numext::real(c0);