# COBYLA : constrained optimization by linear approximation
# Version 1.1
# Copyright (c) 1992, Michael J. D. Powell (M.J.D.Powell@damtp.cam.ac.uk)
# Copyright (c) 2004, J.S. Roy (js@jeannot.org)
# See the LICENSE file for copyright information.
# $Jeannot: README,v 1.7 2004/04/18 14:04:20 js Exp $

This software is a C version of COBYLA2, a contrained optimization by linear
approximation package developed by Michael J. D. Powell in Fortran.

The original source code can be found at :
http://plato.la.asu.edu/topics/problems/nlores.html

Reference article for the method: Powell, J.M.D. (1992), "A Direct Search
Optimization Method that Models the Objective and Constraint Functions by Linear
Interpolation", DAMTP/NA5, Cambridge, England.

This package was initially built by J.S. Roy to ease integration into SciPy.
See: http://www.scipy.org/
Many thanks to Michael J. D. Powell for allowing this to happen !

This software, a derivative free non-linear optimizer, aims at minimizing the
value of a nonlinear function subject to nonlinear constraints. It requires to
be able to evaluate the function and the value of the constraints.

COBYLA will try to make all the values of the constraints positive.
So if you want to input a constraint j such as variable x[i] <= MAX, set:
  constraint[j] = MAX - x[i]

See the comments in cobyla.c for more details.

This software has been converted from the Fortran into C and provides the
following modifications :
- reentrancy, no global variables or functions ;
- ability to pass a pointer to the function to be optimized (to provide
  access to constants) ;
- ability to end the minimization at any time ;
And other small changes.

The last version (and other software) is avalaible at the URL :
http://www.jeannot.org/~js/code/index.en.html

A Python interface module is also provided.

Contents :
- cobyla.c : Source
- cobyla.h : Header, and API documentation
- LICENSE : License and copyright information
- HISTORY : Release history
- README : This file
- example.c : A simple example
- Makefile : Make file used to build the examples
- moduleCobyla.c : the source of the python module
- cobyla.py : the python module wrapper
- example.py : an example for the python module
- setup.py : the python installer

Use is described in cobyla.h. For more information, see the example.
The example can be built and executed by doing :
  make test

You may need to adjust the Makefile before building cobyla.

To install the module in the current directory, use:
 python setup.py build_ext --inplace
To test it, execute:
  python cobyla.py
To install it globaly, use:
 python setup.py install

If you make use of this software, or if you make modifications to it (for a
specific platform for example), you are encouraged to contact the author of
this Fortran to C conversion at the following email : js@jeannot.org
Thanks !
