chiark / gitweb /
strip
[nlopt.git] / README.md
1 [![Latest Docs](https://readthedocs.org/projects/nlopt/badge/?version=latest)](http://nlopt.readthedocs.io/en/latest/)
2 [![Build Status](https://travis-ci.org/stevengj/nlopt.svg?branch=master)](https://travis-ci.org/stevengj/nlopt)
3 [![Build Status](https://ci.appveyor.com/api/projects/status/github/stevengj/nlopt?branch=master&svg=true)](https://ci.appveyor.com/project/StevenGJohnson/nlopt)
4
5 NLopt is a library for nonlinear local and global optimization, for
6 functions with and without gradient information.  It is designed as
7 a simple, unified interface and packaging of several free/open-source
8 nonlinear optimization libraries.
9
10 The latest release and a complete manual may be found at the NLopt
11 home page: http://ab-initio.mit.edu/nlopt
12
13 NLopt is compiled and installed with the [CMake][1] build system
14 (see `CMakeLists.txt` file for available options):
15
16     git clone git://github.com/stevengj/nlopt
17     cd nlopt
18     mkdir build
19     cd build
20     cmake ..
21     make
22     sudo make install
23
24 (To build the latest development sources from git, you will need [SWIG][2]
25 to generate the Python and Guile bindings.)
26
27 Once it is installed, `#include <nlopt.h>` in your C/C++ programs and
28 link it with `-lnlopt -lm`.  You may need to use a C++ compiler to link
29 in order to include the C++ libraries (which are used internally by NLopt,
30 even though it exports a C API).
31
32 The minimization function, `nlopt_minimize`, is described in the [manpage][3]
33 (`api/nlopt_minimize.3`, which is installed by `make install`).
34 See also the manual on our web page.
35
36 There are also interfaces for Fortran, Python, MATLAB, GNU Octave, OCaml,
37 GNU Guile, GNU R, Lua, and Julia.  Interfaces for other languages may
38 be added in the future.
39
40 [1]: https://cmake.org/
41 [2]: http://www.swig.org/
42 [3]: https://en.wikipedia.org/wiki/Man_page