This is wrapper of the famous lbfgsb fortran library of Julia language inspired by this wrapper
0.0.1 (just usable)
Currently only for Linux with gfortran
installed
File fotran routine is written by the authors of the following papers,
- 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.
- 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.
- 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.
I am new to Julia language so the code will be cleaned gradually
- First, run
Pkg.clone("https://github.com/yuhonglin/Lbfgsb.jl")
, then runPkg.build("Lbfgsb")
- Currently only provide a function called
lbfgsb
, see its option below,
ogFunc
: Objective and gradient function. It accept currentx
and a gradient arrayg
. It should return the objective function value and put the gradient into intog
.x
: Initial value ofx
.lb
: lower bounds of each dimension ofx
. Set to-Inf
if equals to[]
.ub
: upper bounds of each dimension ofx
. Set toInf
if equals to[]
.btype
: boundary types, see below,
btype | boundary type of corresponding dimension |
---|---|
0 | unbounded |
1 | only lower bound |
2 | both lower and upper bound |
3 | only upper bound |
- Other parameters : see the paper above for reference (mostly does not need to modify)
iprint
: printing level of the fortran routine, set to-1
if you does not want to print anything
BSD-3