Class LineSearch

java.lang.Object
ffx.numerics.optimization.LineSearch

public class LineSearch extends Object
This class implements an algorithm for uni-dimensional line search. This file is a translation of FORTRAN code written by Jay Ponder.
Since:
1.0
Author:
Michael J. Schnieders
Derived from Jay Ponder's FORTRAN code (search.f).
  • Method Details

    • search

      public double search(int n, double[] x, double f, double[] g, double[] p, double[] angle, double fMove, LineSearch.LineSearchResult[] info, int[] functionEvaluations, OptimizationInterface optimizationSystem)
      Minimize a function along a search direction.

      This is a unidimensional line search based upon parabolic extrapolation and cubic interpolation using both function and gradient values; if forced to search in an uphill direction, return is after the initial step.

      Parameters:
      n - Number of variables.
      x - Current variable values.
      f - Current function value.
      g - Current gradient values.
      p - Search direction.
      angle - Angle between the gradient and search direction.
      fMove - Change in function value due to previous step.
      info - Line search result.
      functionEvaluations - Number of function evaluations.
      optimizationSystem - Instance of the Potential interface.
      Returns:
      The final function value.
      Since:
      1.0