`pub struct NonlinearConjugateGradient<P, L, B, F> { /* fields omitted */ }`

The nonlinear conjugate gradient is a generalization of the conjugate gradient method for nonlinear optimization problems.

Example

# References:

[0] Jorge Nocedal and Stephen J. Wright (2006). Numerical Optimization. Springer. ISBN 0-387-30303-0.

## Implementations

### `impl<P, L, B, F> NonlinearConjugateGradient<P, L, B, F> where    P: Default,    F: ArgminFloat, `[src]

#### `pub fn new(linesearch: L, beta_method: B) -> Result<Self, Error>`[src]

Constructor (Polak Ribiere Conjugate Gradient (PR-CG))

#### `pub fn restart_iters(self, iters: u64) -> Self`[src]

Specifiy the number of iterations after which a restart should be performed This allows the algorithm to "forget" previous information which may not be helpful anymore.

#### `pub fn restart_orthogonality(self, v: F) -> Self`[src]

Set the value for the orthogonality measure. Setting this parameter leads to a restart of the algorithm (setting beta = 0) after two consecutive search directions are not orthogonal anymore. In other words, if this condition is met:

`|\nabla f_k^T * \nabla f_{k-1}| / | \nabla f_k ||^2 >= v`

A typical value for `v` is 0.1.

## Blanket Implementations

### `impl<T> ToOwned for T where    T: Clone, `[src]

#### `type Owned = T`

The resulting type after obtaining ownership.

### `impl<T, U> TryFrom<U> for T where    U: Into<T>, `[src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

### `impl<T, U> TryInto<U> for T where    U: TryFrom<T>, `[src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.