org.apache.commons.math3.optim.univariate

## Class BracketFinder

- java.lang.Object
- - org.apache.commons.math3.optim.univariate.BracketFinder

    public class BracketFinder
    extends java.lang.Object

Provide an interval that brackets a local optimum of a function. This code is based on a Python implementation (from SciPy, module `optimize.py` v0.5).

Since:
  2.2
Version:
  $Id: BracketFinder.java 1413186 2012-11-24 13:47:59Z erans $

### Field Summary

Fields
`private static double` `EPS_MIN` Tolerance to avoid division by zero.
`private Incrementor` `evaluations` Counter for function evaluations.
`private double` `fHi` Function value at `hi`.
`private double` `fLo` Function value at `lo`.
`private double` `fMid` Function value at `mid`.
`private static double` `GOLD` Golden section.
`private double` `growLimit` Factor for expanding the interval.
`private double` `hi` Higher bound of the bracket.
`private double` `lo` Lower bound of the bracket.
`private double` `mid` Point inside the bracket.

### Constructor Summary

Constructors
Constructor and Description
`BracketFinder()` Constructor with default values `100, 50` (see the `other constructor`).
`BracketFinder(double growLimit, int maxEvaluations)` Create a bracketing interval finder.

### Method Summary

Methods
`private double` `eval(UnivariateFunction f, double x)`
`int` `getEvaluations()`
`double` `getFHi()` Get function value at `getHi()`.
`double` `getFLo()` Get function value at `getLo()`.
`double` `getFMid()` Get function value at `getMid()`.
`double` `getHi()`
`double` `getLo()`
`int` `getMaxEvaluations()`
`double` `getMid()`
`void` `search(UnivariateFunction func, GoalType goal, double xA, double xB)` Search new points that bracket a local optimum of the function.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### EPS_MIN

    private static final double EPS_MIN

Tolerance to avoid division by zero.

See Also:
  Constant Field Values

#### GOLD

    private static final double GOLD

Golden section.

See Also:
  Constant Field Values

#### growLimit

    private final double growLimit

Factor for expanding the interval.

#### evaluations

    private final Incrementor evaluations

Counter for function evaluations.

#### lo

    private double lo

Lower bound of the bracket.

#### hi

    private double hi

Higher bound of the bracket.

#### mid

    private double mid

Point inside the bracket.

#### fLo

    private double fLo

Function value at `lo`.

#### fHi

    private double fHi

Function value at `hi`.

#### fMid

    private double fMid

Function value at `mid`.

### Constructor Detail

#### BracketFinder

    public BracketFinder()

Constructor with default values `100, 50` (see the `other constructor`).

#### BracketFinder

    public BracketFinder(double growLimit,
                 int maxEvaluations)

Create a bracketing interval finder.

Parameters:
  `growLimit` - Expanding factor.
  `maxEvaluations` - Maximum number of evaluations allowed for finding a bracketing interval.

### Method Detail

#### search

    public void search(UnivariateFunction func,
              GoalType goal,
              double xA,
              double xB)

Search new points that bracket a local optimum of the function.

Parameters:
  `func` - Function whose optimum should be bracketed.
  `goal` - `Goal type`.
  `xA` - Initial point.
  `xB` - Initial point.
Throws:
  `TooManyEvaluationsException` - if the maximum number of evaluations is exceeded.

#### getMaxEvaluations

    public int getMaxEvaluations()

Returns:
  the number of evalutations.

#### getEvaluations

    public int getEvaluations()

Returns:
  the number of evalutations.

#### getLo

    public double getLo()

Returns:
  the lower bound of the bracket.
See Also:
  `getFLo()`

#### getFLo

    public double getFLo()

Get function value at `getLo()`.

Returns:
  function value at `getLo()`

#### getHi

    public double getHi()

Returns:
  the higher bound of the bracket.
See Also:
  `getFHi()`

#### getFHi

    public double getFHi()

Get function value at `getHi()`.

Returns:
  function value at `getHi()`

#### getMid

    public double getMid()

Returns:
  a point in the middle of the bracket.
See Also:
  `getFMid()`

#### getFMid

    public double getFMid()

Get function value at `getMid()`.

Returns:
  function value at `getMid()`

#### eval

    private double eval(UnivariateFunction f,
              double x)

Parameters:
  `f` - Function.
  `x` - Argument.
Returns:
  `f(x)`
Throws:
  `TooManyEvaluationsException` - if the maximal number of evaluations is exceeded.