OOK is a library for developing optimisation algorithms.
Currently implemented optimisers are line search based methods:
- Steepest descent
- Fletcher-Reeves
- BFGS
- Newton
- LBFGS
The library requires
- Boost.Test for running the test suite.
- Doxygen for building the docs.
- OpenBlas
- Blaze linear algebra library
It has been tested on Suse 13.1 using
- gcc-4.8.1
- boost-1.55.0
To build the tests,
> mkdir $BUILD_DIR
> cd $BUILD_DIR
> cmake -DBLAS_LIBRARIES=<blas library> <path to ook dir>
> make
To run tests,
> make test
and also,
> diff <(./bin/sdrive) ../ook/test/f.out && diff <(./bin/sdrive_diagco) ../ook/test/diagco_f.out
To build and view documentation,
> make doc
> <your browser> ./doc/html/index.html
To install,
> sudo make install
C++ implementation of lbfgs. This is based on the original Fortran implementation, by first running f2c, then refactoring the code to a point where it is easier to see what is going on for a regular C++ user. The refactoring took place with some ad hoc testing which is included here. The test compares the output files generated by fortran (with a substitution of E for D) to those generated by comparable C++ programs.