org.apache.commons.math3.optimization.direct

## Class PowellOptimizer.LineSearch

- java.lang.Object
- - org.apache.commons.math3.optimization.univariate.BaseAbstractUnivariateOptimizer
  - - org.apache.commons.math3.optimization.univariate.BrentOptimizer
    - - org.apache.commons.math3.optimization.direct.PowellOptimizer.LineSearch

All Implemented Interfaces:
  BaseOptimizer<UnivariatePointValuePair>, BaseUnivariateOptimizer<UnivariateFunction>, UnivariateOptimizer

Enclosing class:
  PowellOptimizer

    private class PowellOptimizer.LineSearch
    extends BrentOptimizer

Class for finding the minimum of the objective function along a given direction.

### Field Summary

Fields
`private static double` `ABS_TOL_UNUSED` Value that will pass the precondition check for `BrentOptimizer` but will not pass the convergence check, so that the custom checker will always decide when to stop the line search.
`private BracketFinder` `bracket` Automatic bracketing.
`private static double` `REL_TOL_UNUSED` Value that will pass the precondition check for `BrentOptimizer` but will not pass the convergence check, so that the custom checker will always decide when to stop the line search.

### Constructor Summary

Constructors
Constructor and Description
`PowellOptimizer.LineSearch(double rel, double abs)` The "BrentOptimizer" default stopping criterion uses the tolerances to check the domain (point) values, not the function values.

### Method Summary

Methods
`UnivariatePointValuePair` `search(double[] p, double[] d)` Find the minimum of the function `f(p + alpha * d)`.

### Methods inherited from class org.apache.commons.math3.optimization.univariate.BrentOptimizer

`doOptimize`

### Methods inherited from class org.apache.commons.math3.optimization.univariate.BaseAbstractUnivariateOptimizer

`computeObjectiveValue, getConvergenceChecker, getEvaluations, getGoalType, getMax, getMaxEvaluations, getMin, getStartValue, optimize, optimize`

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

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

### Field Detail

#### REL_TOL_UNUSED

    private static final double REL_TOL_UNUSED

Value that will pass the precondition check for `BrentOptimizer` but will not pass the convergence check, so that the custom checker will always decide when to stop the line search.

See Also:
  Constant Field Values

#### ABS_TOL_UNUSED

    private static final double ABS_TOL_UNUSED

Value that will pass the precondition check for `BrentOptimizer` but will not pass the convergence check, so that the custom checker will always decide when to stop the line search.

See Also:
  Constant Field Values

#### bracket

    private final BracketFinder bracket

Automatic bracketing.

### Constructor Detail

#### PowellOptimizer.LineSearch

    PowellOptimizer.LineSearch(double rel,
                              double abs)

The "BrentOptimizer" default stopping criterion uses the tolerances to check the domain (point) values, not the function values. We thus create a custom checker to use function values.

Parameters:
  `rel` - Relative threshold.
  `abs` - Absolute threshold.

### Method Detail

#### search

    public UnivariatePointValuePair search(double[] p,
                                  double[] d)

Find the minimum of the function `f(p + alpha * d)`.

Parameters:
  `p` - Starting point.
  `d` - Search direction.
Returns:
  the optimum.
Throws:
  `TooManyEvaluationsException` - if the number of evaluations is exceeded.