l-bfgs-b-0.1.0.1: l-bfgs-b.cabal
Name: l-bfgs-b
Version: 0.1.0.1
Synopsis: Bindings to L-BFGS-B, Fortran code for limited-memory quasi-Newton bound-constrained optimization
Homepage: http://nonempty.org/software/haskell-l-bfgs-b
License: BSD3
License-file: LICENSE
Author: Gard Spreemann
Maintainer: Gard Spreemann <gspreemann@gmail.com>
Copyright: 2013-2014 Gard Spreemann
Category: Math
Build-type: Simple
Cabal-version: >=1.4
Description: 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.
Library
Exposed-modules: Numeric.LBFGSB,
Numeric.LBFGSB.Convenience,
Numeric.LBFGSB.Result
Other-modules:
hs-source-dirs: src
Build-depends: base >= 4 && <5, vector
c-sources:
cc-options:
extra-libraries: lbfgsb
include-dirs: