org.apache.commons.math

## Class ConvergingAlgorithmImpl

- java.lang.Object
- - org.apache.commons.math.ConvergingAlgorithmImpl

- All Implemented Interfaces:
    ConvergingAlgorithm
  Direct Known Subclasses:
    AbstractUnivariateRealOptimizer, UnivariateRealIntegratorImpl, UnivariateRealSolverImpl

  Deprecated.
  in 2.2 (to be removed in 3.0).

      public abstract class ConvergingAlgorithmImpl
      extends java.lang.Object
      implements ConvergingAlgorithm

  Provide a default implementation for several functions useful to generic converging algorithms.
  Since:
    2.0
  Version:
    $Revision: 1062691 $ $Date: 2011-01-24 10:12:47 +0100 (lun. 24 janv. 2011) $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected double` | `absoluteAccuracy` Deprecated. Maximum absolute error.
    `protected double` | `defaultAbsoluteAccuracy` Deprecated. Default maximum absolute error.
    `protected int` | `defaultMaximalIterationCount` Deprecated. Default maximum number of iterations.
    `protected double` | `defaultRelativeAccuracy` Deprecated. Default maximum relative error.
    `protected int` | `iterationCount` Deprecated. The last iteration count.
    `protected int` | `maximalIterationCount` Deprecated. Maximum number of iterations.
    `protected double` | `relativeAccuracy` Deprecated. Maximum relative error.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ConvergingAlgorithmImpl()` Deprecated. in 2.2 (to be removed as soon as the single non-default one has been removed).
    `protected` | `ConvergingAlgorithmImpl(int defaultMaximalIterationCount, double defaultAbsoluteAccuracy)` Deprecated. in 2.2. Derived classes should use the "setter" methods in order to assign meaningful values to all the instances variables.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `getAbsoluteAccuracy()` Deprecated. Get the actual absolute accuracy.
    `int` | `getIterationCount()` Deprecated. Get the number of iterations in the last run of the algorithm.
    `int` | `getMaximalIterationCount()` Deprecated. Get the upper limit for the number of iterations.
    `double` | `getRelativeAccuracy()` Deprecated. Get the actual relative accuracy.
    `protected void` | `incrementIterationsCounter()` Deprecated. Increment the iterations counter by 1.
    `void` | `resetAbsoluteAccuracy()` Deprecated. Reset the absolute accuracy to the default.
    `protected void` | `resetIterationsCounter()` Deprecated. Reset the iterations counter to 0.
    `void` | `resetMaximalIterationCount()` Deprecated. Reset the upper limit for the number of iterations to the default.
    `void` | `resetRelativeAccuracy()` Deprecated. Reset the relative accuracy to the default.
    `void` | `setAbsoluteAccuracy(double accuracy)` Deprecated. Set the absolute accuracy.
    `void` | `setMaximalIterationCount(int count)` Deprecated. Set the upper limit for the number of iterations.
    `void` | `setRelativeAccuracy(double accuracy)` Deprecated. Set the relative accuracy.

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

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

- - ### Field Detail

    - #### absoluteAccuracy

          protected double absoluteAccuracy

      Deprecated.
      Maximum absolute error.

    - #### relativeAccuracy

          protected double relativeAccuracy

      Deprecated.
      Maximum relative error.

    - #### maximalIterationCount

          protected int maximalIterationCount

      Deprecated.
      Maximum number of iterations.

    - #### defaultAbsoluteAccuracy

          protected double defaultAbsoluteAccuracy

      Deprecated.
      Default maximum absolute error.

    - #### defaultRelativeAccuracy

          protected double defaultRelativeAccuracy

      Deprecated.
      Default maximum relative error.

    - #### defaultMaximalIterationCount

          protected int defaultMaximalIterationCount

      Deprecated.
      Default maximum number of iterations.

    - #### iterationCount

          protected int iterationCount

      Deprecated.
      The last iteration count.

  - ### Constructor Detail

    - #### ConvergingAlgorithmImpl

          @Deprecated
          protected ConvergingAlgorithmImpl(int defaultMaximalIterationCount,
                                            double defaultAbsoluteAccuracy)

      Deprecated. in 2.2. Derived classes should use the "setter" methods in order to assign meaningful values to all the instances variables.
      Construct an algorithm with given iteration count and accuracy.
      Parameters:
        `defaultAbsoluteAccuracy` - maximum absolute error
        `defaultMaximalIterationCount` - maximum number of iterations
      Throws:
        `java.lang.IllegalArgumentException` - if f is null or the defaultAbsoluteAccuracy is not valid

    - #### ConvergingAlgorithmImpl

          @Deprecated
          protected ConvergingAlgorithmImpl()

      Deprecated. in 2.2 (to be removed as soon as the single non-default one has been removed).
      Default constructor.
      Since:
        2.2

  - ### Method Detail

    - #### getIterationCount

          public int getIterationCount()

      Deprecated.
      Get the number of iterations in the last run of the algorithm.

      This is mainly meant for testing purposes. It may occasionally help track down performance problems: if the iteration count is notoriously high, check whether the problem is evaluated properly, and whether another algorithm is more amenable to the problem.

      Specified by:
        `getIterationCount` in interface `ConvergingAlgorithm`
      Returns:
        the last iteration count.

    - #### setAbsoluteAccuracy

          public void setAbsoluteAccuracy(double accuracy)

      Deprecated.
      Set the absolute accuracy.

      The default is usually chosen so that results in the interval -10..-0.1 and +0.1..+10 can be found with a reasonable accuracy. If the expected absolute value of your results is of much smaller magnitude, set this to a smaller value.

      Algorithms are advised to do a plausibility check with the relative accuracy, but clients should not rely on this.

      Specified by:
        `setAbsoluteAccuracy` in interface `ConvergingAlgorithm`
      Parameters:
        `accuracy` - the accuracy.

    - #### getAbsoluteAccuracy

          public double getAbsoluteAccuracy()

      Deprecated.
      Get the actual absolute accuracy.
      Specified by:
        `getAbsoluteAccuracy` in interface `ConvergingAlgorithm`
      Returns:
        the accuracy

    - #### resetAbsoluteAccuracy

          public void resetAbsoluteAccuracy()

      Deprecated.
      Reset the absolute accuracy to the default.

      The default value is provided by the algorithm implementation.

      Specified by:
        `resetAbsoluteAccuracy` in interface `ConvergingAlgorithm`

    - #### setMaximalIterationCount

          public void setMaximalIterationCount(int count)

      Deprecated.
      Set the upper limit for the number of iterations.

      Usually a high iteration count indicates convergence problems. However, the "reasonable value" varies widely for different algorithms. Users are advised to use the default value supplied by the algorithm.

      A `ConvergenceException` will be thrown if this number is exceeded.

      Specified by:
        `setMaximalIterationCount` in interface `ConvergingAlgorithm`
      Parameters:
        `count` - maximum number of iterations

    - #### getMaximalIterationCount

          public int getMaximalIterationCount()

      Deprecated.
      Get the upper limit for the number of iterations.
      Specified by:
        `getMaximalIterationCount` in interface `ConvergingAlgorithm`
      Returns:
        the actual upper limit

    - #### resetMaximalIterationCount

          public void resetMaximalIterationCount()

      Deprecated.
      Reset the upper limit for the number of iterations to the default.

      The default value is supplied by the algorithm implementation.

      Specified by:
        `resetMaximalIterationCount` in interface `ConvergingAlgorithm`
      See Also:
        `ConvergingAlgorithm.setMaximalIterationCount(int)`

    - #### setRelativeAccuracy

          public void setRelativeAccuracy(double accuracy)

      Deprecated.
      Set the relative accuracy.

      This is used to stop iterations if the absolute accuracy can't be achieved due to large values or short mantissa length.

      If this should be the primary criterion for convergence rather then a safety measure, set the absolute accuracy to a ridiculously small value, like `MathUtils.SAFE_MIN`.

      Specified by:
        `setRelativeAccuracy` in interface `ConvergingAlgorithm`
      Parameters:
        `accuracy` - the relative accuracy.

    - #### getRelativeAccuracy

          public double getRelativeAccuracy()

      Deprecated.
      Get the actual relative accuracy.
      Specified by:
        `getRelativeAccuracy` in interface `ConvergingAlgorithm`
      Returns:
        the accuracy

    - #### resetRelativeAccuracy

          public void resetRelativeAccuracy()

      Deprecated.
      Reset the relative accuracy to the default. The default value is provided by the algorithm implementation.
      Specified by:
        `resetRelativeAccuracy` in interface `ConvergingAlgorithm`

    - #### resetIterationsCounter

          protected void resetIterationsCounter()

      Deprecated.
      Reset the iterations counter to 0.
      Since:
        2.2

    - #### incrementIterationsCounter

          protected void incrementIterationsCounter()
                                             throws MaxIterationsExceededException

      Deprecated.
      Increment the iterations counter by 1.
      Throws:
        `MaxIterationsExceededException` - if the maximal number of iterations is exceeded.
      Since:
        2.2

Copyright (c) 2003-2013 Apache Software Foundation