diff options
author | 2013-03-20 16:15:18 +0100 | |
---|---|---|
committer | 2013-03-20 16:15:18 +0100 | |
commit | da6219b19dd92231cd0afe380ae4880b62bfe88d (patch) | |
tree | 36babeb2074be95e585fa450b571c351d76fe2bd /Eigen/src/IterativeLinearSolvers/BiCGSTAB.h | |
parent | 22460edb49885a60672f1ab29e71c6dd7f89d197 (diff) |
Bug567 : Fix iterative solvers to immediately return when the initial guess is the true solution and for trivial solution
Diffstat (limited to 'Eigen/src/IterativeLinearSolvers/BiCGSTAB.h')
-rw-r--r-- | Eigen/src/IterativeLinearSolvers/BiCGSTAB.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h b/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h index 5a822e0ea..fbefb696f 100644 --- a/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +++ b/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h @@ -44,6 +44,11 @@ bool bicgstab(const MatrixType& mat, const Rhs& rhs, Dest& x, VectorType r0 = r; RealScalar r0_sqnorm = rhs.squaredNorm(); + if(r0_sqnorm == 0) + { + x.setZero(); + return true; + } Scalar rho = 1; Scalar alpha = 1; Scalar w = 1; |