nlopt-ocaml implements OCaml bindings to the NLOpt optimization library.
Use OPAM to install the OCaml interface. This will also automatically install NLopt using homebrew.
opam install nlopt-ocamlInstall nlopt:
sudo apt-get install libnlopt0 libnlopt-devUse OPAM to install the OCaml interface:
opam install nlopt-ocamlUse git to get the newest sources:
git clone https://github.com/mkur/nlopt-ocamlIn the main directory type
make to build and install nlopt-ocaml using dune.
open Nlopt;;
let opt = create lbfgs 2;;
let f a grad =
let x = a.(0) in
let y = a.(1) in
let () =
match grad with
None -> ()
| Some g ->
begin
g.(0) <- 2. *. (x -. 1.);
g.(1) <- 2. *. y;
end in
(x -. 1.) ** 2. +. y ** 2.;;
set_min_objective opt f;;
set_xtol_rel opt 1e-06;;
let x0 = [| 5.; 5.|];;
let (res, xopt, fopt) = optimize opt x0;;To run this example type
dune exec examples/tutorial.exeA more complex example is included in the examples subdirectory (code).
The interface closely matches the object-oriented API of NLopt.
Generate the API documentation using
make doc