### 47.2 Functions and Variables for cobyla

Function: fmin_cobyla
`fmin_cobyla` (F, X, Y)
`fmin_cobyla` (F, X, Y, optional_args)

  Returns an approximate minimum of the expression F with respect to the variables X, subject to an optional set of constraints. Y is a list of initial guesses for X.

  F must be ordinary expressions, not names of functions or lambda expressions.

  `optional_args` represents additional arguments, specified as `symbol = value`. The optional arguments recognized are:

  `constraints`

    List of inequality and equality constraints that must be satisfied by X. The inequality constraints must be actual inequalities of the form `g(X) >= h(X)` or `g(X) <= h(X)`. The equality constraints must be of the form `g(X) = h(X)`.

  `rhobeg`

    Initial value of the internal RHO variable which controls the size of simplex. (Defaults to 1.0)

  `rhoend`

    The desired final value rho parameter. It is approximately the accuracy in the variables. (Defaults to 1d-6.)

  `iprint`

    Verbose output level. (Defaults to 0)

    - 0 - No output
    - 1 - Summary at the end of the calculation
    - 2 - Each new value of RHO and SIGMA is printed, including the vector of variables, some function information when RHO is reduced.
    - 3 - Like 2, but information is printed when F(X) is computed.
  `maxfun`

    The maximum number of function evaluations. (Defaults to 1000).

  On return, a vector is given:

  1. The value of the variables giving the minimum. This is a list of elements of the form `var = value` for each of the variables listed in X.
  2. The minimized function value
  3. The number of function evaluations.
  4. Return code with the following meanings
     1. 0 - No errors.
     2. 1 - Limit on maximum number of function evaluations reached.
     3. 2 - Rounding errors inhibiting progress.

  `load("fmin_cobyla")` loads this function.

Function: bf_fmin_cobyla
`bf_fmin_cobyla` (F, X, Y)
`bf_fmin_cobyla` (F, X, Y, optional_args)

  This function is identical to `fmin_cobyla`, except that bigfloat operations are used, and the default value for rhoend is `10^(fpprec/2)`.

  See `fmin_cobyla` for more information.

  `load("bf_fmin_cobyla")` loads this function.