Preconditioner (Apache Commons Math 3.3 API)

org.apache.commons.math3.optimization.general

## Interface Preconditioner

- All Known Implementing Classes:
    NonLinearConjugateGradientOptimizer.IdentityPreconditioner

  Deprecated.
  As of 3.1 (to be removed in 4.0).

      @Deprecated
      public interface Preconditioner

  This interface represents a preconditioner for differentiable scalar objective function optimizers.
  Since:
    2.0
  Version:
    $Id: Preconditioner.java 1422230 2012-12-15 12:11:13Z erans $

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double[]` | `precondition(double[] point, double[] r)` Deprecated. Precondition a search direction.

- - ### Method Detail

    - #### precondition

          double[] precondition(double[] point,
                              double[] r)

      Deprecated.
      Precondition a search direction.

      The returned preconditioned search direction must be computed fast or the algorithm performances will drop drastically. A classical approach is to compute only the diagonal elements of the hessian and to divide the raw search direction by these elements if they are all positive. If at least one of them is negative, it is safer to return a clone of the raw search direction as if the hessian was the identity matrix. The rationale for this simplified choice is that a negative diagonal element means the current point is far from the optimum and preconditioning will not be efficient anyway in this case.

      Parameters:
        `point` - current point at which the search direction was computed
        `r` - raw search direction (i.e. opposite of the gradient)
      Returns:
        approximation of H-1r where H is the objective function hessian

Copyright © 2003–2014 The Apache Software Foundation. All rights reserved.