Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

PERF: Updated lbfgsb to fix bug

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...
commit 2194f1bf78eec5bea6f7c21758db08d0cc93e358 1 parent e12d00e
Hans Johnson hjmjohnson authored luisibanez committed
12 Modules/ThirdParty/VNL/src/vxl/core/vnl/algo/vnl_lbfgsb.cxx
View
@@ -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];
3,052 Modules/ThirdParty/VNL/src/vxl/v3p/netlib/opt/lbfgsb.c
View
715 additions, 2,337 deletions not shown
13 Modules/ThirdParty/VNL/src/vxl/v3p/netlib/opt/lbfgsb.h
View
@@ -76,7 +76,6 @@ extern int v3p_netlib_mainlb_(
v3p_netlib_doublereal *wy,
v3p_netlib_doublereal *sy,
v3p_netlib_doublereal *ss,
- v3p_netlib_doublereal *yy,
v3p_netlib_doublereal *wt,
v3p_netlib_doublereal *wn,
v3p_netlib_doublereal *snd,
@@ -84,11 +83,8 @@ extern int v3p_netlib_mainlb_(
v3p_netlib_doublereal *r__,
v3p_netlib_doublereal *d__,
v3p_netlib_doublereal *t,
+ v3p_netlib_doublereal *xp,
v3p_netlib_doublereal *wa,
- v3p_netlib_doublereal *sg,
- v3p_netlib_doublereal *sgo,
- v3p_netlib_doublereal *yg,
- v3p_netlib_doublereal *ygo,
v3p_netlib_integer *index,
v3p_netlib_integer *iwhere,
v3p_netlib_integer *indx2,
@@ -146,9 +142,7 @@ extern int v3p_netlib_cauchy_(
v3p_netlib_doublereal *c__,
v3p_netlib_doublereal *wbp,
v3p_netlib_doublereal *v,
- v3p_netlib_integer *nint,
- v3p_netlib_doublereal *sg,
- v3p_netlib_doublereal *yg,
+ v3p_netlib_integer *nseg,
v3p_netlib_integer *iprint,
v3p_netlib_doublereal *sbgnrm,
v3p_netlib_integer *info,
@@ -307,9 +301,12 @@ extern int v3p_netlib_subsm_(
v3p_netlib_integer *nbd,
v3p_netlib_doublereal *x,
v3p_netlib_doublereal *d__,
+ v3p_netlib_doublereal *xp,
v3p_netlib_doublereal *ws,
v3p_netlib_doublereal *wy,
v3p_netlib_doublereal *theta,
+ v3p_netlib_doublereal *xx,
+ v3p_netlib_doublereal *gg,
v3p_netlib_integer *col,
v3p_netlib_integer *head,
v3p_netlib_integer *iword,
17 NOTICE
View
@@ -196,6 +196,23 @@ Utilities:
J) kwsys : Copyright: Kitware : BSD-Like License
+ K) VXL/lbfgsb
+
+ http://users.eecs.northwestern.edu/~nocedal/lbfgsb.html
+
+ This software is released under the BSD License
+
+ 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.
+
+ References
+
+ 1. R. H. Byrd, P. Lu and J. Nocedal. A Limited Memory Algorithm for Bound Constrained Optimization, (1995), SIAM Journal on Scientific and Statistical Computing , 16, 5, pp. 1190-1208.
+ 2. C. Zhu, R. H. Byrd and J. Nocedal. L-BFGS-B: Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization (1997), ACM Transactions on Mathematical Software, Vol 23, Num. 4, pp. 550 - 560.
+ 3. J.L. Morales and J. Nocedal. L-BFGS-B: Remark on Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization (2011), to appear in ACM Transactions on Mathematical Software.
+
============== NEXT COPYRIGHT NOTICE AND LICENSE ENTRY ==============
Please sign in to comment.
Something went wrong with that request. Please try again.