Struct argmin::solver::conjugategradient::cg::ConjugateGradient[−][src]

`pub struct ConjugateGradient<P, S> { /* fields omitted */ }`

The conjugate gradient method is a solver for systems of linear equations with a symmetric and positive-definite matrix.

Example

References:

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

Implementations

`impl<P, S> ConjugateGradient<P, S> where    P: Clone + Default,    S: Default, `[src]

`pub fn new(b: P) -> Result<Self, Error>`[src]

Constructor

Parameters:

`b`: right hand side of `A * x = b`

`pub fn p(&self) -> P`[src]

Return the current search direction (This is needed by NewtonCG for instance)

`pub fn p_prev(&self) -> P`[src]

Return the previous search direction (This is needed by NewtonCG for instance)

`pub fn residual(&self) -> P`[src]

Return the current residual (This is needed by NewtonCG for instance)

Trait Implementations

`impl<P, O, S, F> Solver<O> for ConjugateGradient<P, S> where    O: ArgminOp<Param = P, Output = P, Float = F>,    P: Clone + Serialize + DeserializeOwned + ArgminDot<O::Param, S> + ArgminSub<O::Param, O::Param> + ArgminScaledAdd<O::Param, S, O::Param> + ArgminAdd<O::Param, O::Param> + ArgminConj + ArgminMul<O::Float, O::Param>,    S: Debug + ArgminDiv<S, S> + ArgminNorm<O::Float> + ArgminConj,    F: ArgminFloat, `[src]

`fn next_iter(    &mut self,     op: &mut OpWrapper<O>,     state: &IterState<O>) -> Result<ArgminIterData<O>, Error>`[src]

Perform one iteration of CG algorithm

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.