diff options
author | Thomas Capricelli <orzel@freehackers.org> | 2010-01-29 08:59:25 +0100 |
---|---|---|
committer | Thomas Capricelli <orzel@freehackers.org> | 2010-01-29 08:59:25 +0100 |
commit | 2b2fcc9460b0d541172e951a9059be4d982d44d0 (patch) | |
tree | 83cf4ea77843c875ce5a54017237c6b1a3d01923 /unsupported/Eigen/src/NonLinearOptimization | |
parent | 375b5faa8a433a5707d59a645e5573c89eed9dfc (diff) |
erm.... using nxn is the actual purpose of this variant, fix this.
Diffstat (limited to 'unsupported/Eigen/src/NonLinearOptimization')
-rw-r--r-- | unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h b/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h index 7457c688e..49b63bed8 100644 --- a/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +++ b/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h @@ -417,7 +417,12 @@ LevenbergMarquardt<FunctorType,Scalar>::minimizeOptimumStorageInit( wa1.resize(n); wa2.resize(n); wa3.resize(n); wa4.resize(m); fvec.resize(m); - fjac.resize(m, n); + // Only R is stored in fjac. Q is only used to compute 'qtf', which is + // Q.transpose()*rhs. qtf will be updated using givens rotation, + // instead of storing them in Q. + // The purpose it to only use a nxn matrix, instead of mxn here, so + // that we can handle cases where m>>n : + fjac.resize(n, n); if (mode != 2) diag.resize(n); assert( (mode!=2 || diag.size()==n) || "When using mode==2, the caller must provide a valid 'diag'"); |