package nlopt
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
On This Page
  
  
  OCaml bindings to the NLOpt optimization library
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      release-0.7.tar.gz
    
    
        
    
  
  
  
    
  
  
    
  
        sha256=53f25f9d04eb6fd900aafa7fbd2394a45e9aac683f1f834d5d0ea0083105dc6e
    
    
  md5=c7679809ad75964377d8b56f70ac3a96
    
    
  Description
README
nlopt-ocaml implements OCaml bindings to the NLOpt optimization library.
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-ocamlUbuntu (Focal)
Install nlopt:
sudo apt-get install libnlopt0 libnlopt-devUse OPAM to install the OCaml interface:
opam install nlopt-ocamlGeneric installation instructions
Use 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.
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.exeA 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 docDependencies (3)
- conf-nlopt
- 
  
    dune
  
  
    >= "2.9"
- 
  
    ocaml
  
  
    >= "4.08"
Dev Dependencies (1)
- 
  
    odoc
  
  
    with-doc
Used by (3)
- mmo
- 
  
    nlopt-ocaml
  
  
    >= "transition"
- 
  
    svmwrap
  
  
    >= "5.0.0"
Conflicts (1)
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  On This Page