Skip to content

Commit

Permalink
PERF: Updated lbfgsb to fix bug
Browse files Browse the repository at this point in the history
http://users.eecs.northwestern.edu/~nocedal/lbfgsb.html

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
hjmjohnson authored and Luis Ibanez committed Dec 21, 2011
1 parent e12d00e commit 2194f1b
Show file tree
Hide file tree
Showing 4 changed files with 748 additions and 2,346 deletions.
12 changes: 11 additions & 1 deletion Modules/ThirdParty/VNL/src/vxl/core/vnl/algo/vnl_lbfgsb.cxx
Expand Up @@ -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];
Expand Down

0 comments on commit 2194f1b

Please sign in to comment.