# l-bfgs-b: Bindings to L-BFGS-B, Fortran code for limited-memory quasi-Newton bound-constrained optimization

Versions | 0.1, 0.1.0.1 |
---|---|

Dependencies | base (==4.*), vector [details] |

License | BSD-3-Clause |

Copyright | 2013-2014 Gard Spreemann |

Author | Gard Spreemann |

Maintainer | Gard Spreemann <gspreemann@gmail.com> |

Category | Math |

Home page | http://nonempty.org/software/haskell-l-bfgs-b |

Uploaded | by GardSpreemann at Thu Jul 3 18:59:47 UTC 2014 |

Distributions | NixOS:0.1.0.1 |

Downloads | 869 total (11 in the last 30 days) |

Rating | (no votes yet) [estimated by rule of succession] |

Your Rating | |

Status | Docs not available [build log] All reported builds failed as of 2016-12-14 [all 8 reports] Hackage Matrix CI |

Bindings to L-BFGS-B, Fortran code for limited-memory quasi-Newton bound-constrained optimization.

L-BFGS-B is a Fortran library for limited-memory quasi-Newton bound-constrained optimization written by Ciyou Zhu, Richard Byrd, Jorge Nocedal and Jose Luis Morales. More information can be found on its homepage http://users.eecs.northwestern.edu/~nocedal/lbfgsb.html, or in [1].

The L-BFGS-B Fortran code is not included in this package, as I consider it a dependency. This package expects to be able to link against version 3.0 of the L-BFGS-B code, as built by a relatively recent version of gfortran. Instructions on how to build L-BFGS-B as a shared library can be found at http://nonempty.org/software/haskell-l-bfgs-b.

The functions provided in this package wrap FFI calls in `unsafePerformIO`

, which among other things means that
the called L-BFGS-B code should not output anything. The relevant `iprint`

flag is thus set negative to suppress
output as specified in the L-BFGS-B code. However, there are two places in said code where the flag is ignored
and output still occurs. If it bothers you that code exposed as pure prints things, see
http://nonempty.org/software/haskell-l-bfgs-b for information on a simple patch for L-BFGS-B. The SciPy project
has described the same behavior in https://github.com/scipy/scipy/issues/2261.

The code assumes that your Haskell compiler's Doubles are IEEE-754 doubles.

Example on usage can be found in the included `examples`

directiory.

The current version has only been lightly tested, and should not be trusted for serious work. Feedback is appreciated.

Changes in version 0.1.0.1:

Check some function arguments for sanity and cause a runtime error otherwise.

Add note above on double representation.

Added TODO below.

Changes in version 0.1:

There has only been cursory testing, so do not trust these bindings yet.

Initial release.

TODO:

Be more generic with regards to vector types?

[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.

## Modules

*Numeric*- Numeric.LBFGSB
- Numeric.LBFGSB.Convenience
- Numeric.LBFGSB.Result

- Numeric.LBFGSB

## Downloads

- l-bfgs-b-0.1.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)