package nlopt

All checked builds pass
  1. Overview
  2. Docs

Description

Tags

clib:nlopt

Added to opam-repository:

README

nlopt-ocaml implements OCaml bindings to the NLOpt optimization library.

Build Status

Dependencies

  • ocaml
  • dune
  • NLopt

Installation

Mac OS X

Use OPAM to install the OCaml interface. This will also automatically install NLopt using homebrew.

opam install nlopt-ocaml

Ubuntu (Focal)

Install nlopt:

sudo apt-get install libnlopt0 libnlopt-dev

Use OPAM to install the OCaml interface:

opam install nlopt-ocaml

Generic installation instructions

Use git to get the newest sources:

git clone https://github.com/mkur/nlopt-ocaml

In the main directory type

make 

to build and install nlopt-ocaml using dune.

Simple Example

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

A more complex example is included in the examples subdirectory (code).

Documentation

The interface closely matches the object-oriented API of NLopt.

Generate the API documentation using

make doc

Online documentation

Dependencies (3)

  1. conf-nlopt
  2. dune >= "2.9"
  3. ocaml >= "4.08"

Dev Dependencies (1)

  1. odoc with-doc

Optional Dependencies

None

Used by (3)

  1. mmo
  2. nlopt-ocaml >= "transition"
  3. svmwrap >= "5.0.0"

Build status

Results of building nlopt with each compiler on check.ci.ocaml.org, run of against opam-repository 8a77e58. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
0.7.0 (this version) good good good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure