Browse files

PERF: Updated lbfgsb to fix bug

Condition for Use: This software is freely available, but we expect that
all publications describing  work using this software , or all
commercial products using it, quote at least one of the references given
below. This software is released under the BSD License. This note has
been added to the NOTICE file at the top of the ITK source tree.

This remark describes an improvement and a correction to Algorithm 778.
It is shown that the performance of the algorithm can be improved
significantly by making a relatively simple modification to the subspace
minimization phase. The correction concerns an error caused by the use
of routine dpmeps to estimate machine precision.

Change-Id: Iee35b8c6ee383b27a9870f73edbb604508c6ef2f
  • Loading branch information...
1 parent e12d00e commit 2194f1bf78eec5bea6f7c21758db08d0cc93e358 @hjmjohnson hjmjohnson committed with luisibanez Dec 2, 2011
@@ -51,7 +51,17 @@ bool vnl_lbfgsb::minimize(vnl_vector<double>& x)
vnl_vector<double> gradient(n);
// Working space.
- vnl_vector<double> wa((2*m+4)*n + 12*m*m + 12*m);
+ // The total work space **wa** required by the new version is
+ //
+ // 2*m*n + 11*m*m + 5*n + 8*m
+ //
+ vnl_vector<double> wa(2*m*n + 11*m*m + 5*n + 8*m);
+ //
+ // the previous version required:
+ //
+ // 2*m*n + 12*m*m + 4*n + 12*m
+ //
+ //
vnl_vector<long> iwa(3*n);
char csave[60];
long lsave[4];
Oops, something went wrong.

0 comments on commit 2194f1b

Please sign in to comment.