aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/QR
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-01-29 16:11:46 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-01-29 16:11:46 +0000
commit8e0ec3c62b3412c76a7c6cb3d69c8b1f7fb5b1fd (patch)
tree3e54e4b38947c46d5402c35ccc86390ebf9180e5 /Eigen/src/QR
parentcf0857c44d4efcf8c7429f2d59dad2ba491cc886 (diff)
reduce epsilon in QR
Diffstat (limited to 'Eigen/src/QR')
-rw-r--r--Eigen/src/QR/QR.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/Eigen/src/QR/QR.h b/Eigen/src/QR/QR.h
index 199d94307..19002e0eb 100644
--- a/Eigen/src/QR/QR.h
+++ b/Eigen/src/QR/QR.h
@@ -185,6 +185,7 @@ void QR<MatrixType>::_compute(const MatrixType& matrix)
m_qr = matrix;
int rows = matrix.rows();
int cols = matrix.cols();
+ RealScalar eps2 = precision<RealScalar>()*precision<RealScalar>();
for (int k = 0; k < cols; ++k)
{
@@ -209,7 +210,8 @@ void QR<MatrixType>::_compute(const MatrixType& matrix)
m_hCoeffs.coeffRef(k) = 0;
}
}
- else if ( (!ei_isMuchSmallerThan(beta=m_qr.col(k).end(remainingSize-1).squaredNorm(),static_cast<Scalar>(1))) ) // FIXME what about ei_imag(v0) ??
+ else if ((beta=m_qr.col(k).end(remainingSize-1).squaredNorm())>eps2)
+ // FIXME what about ei_imag(v0) ??
{
// form k-th Householder vector
beta = ei_sqrt(ei_abs2(v0)+beta);