org.apache.commons.math.util

## Class ContinuedFraction

- java.lang.Object
- - org.apache.commons.math.util.ContinuedFraction

-     public abstract class ContinuedFraction
      extends java.lang.Object

  Provides a generic means to evaluate continued fractions. Subclasses simply provided the a and b coefficients to evaluate the continued fraction.

  References:

  - Continued Fraction
  Version:
    $Revision: 990655 $ $Date: 2010-08-29 23:49:40 +0200 (dim. 29 août 2010) $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static double` | `DEFAULT_EPSILON` Maximum allowed numerical error.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ContinuedFraction()` Default constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `evaluate(double x)` Evaluates the continued fraction at the value x.
    `double` | `evaluate(double x, double epsilon)` Evaluates the continued fraction at the value x.
    `double` | `evaluate(double x, double epsilon, int maxIterations)` Evaluates the continued fraction at the value x.
    `double` | `evaluate(double x, int maxIterations)` Evaluates the continued fraction at the value x.
    `protected abstract double` | `getA(int n, double x)` Access the n-th a coefficient of the continued fraction.
    `protected abstract double` | `getB(int n, double x)` Access the n-th b coefficient of the continued fraction.

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

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

- - ### Field Detail

    - #### DEFAULT_EPSILON

          private static final double DEFAULT_EPSILON

      Maximum allowed numerical error.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ContinuedFraction

          protected ContinuedFraction()

      Default constructor.

  - ### Method Detail

    - #### getA

          protected abstract double getA(int n,
                    double x)

      Access the n-th a coefficient of the continued fraction. Since a can be a function of the evaluation point, x, that is passed in as well.
      Parameters:
        `n` - the coefficient index to retrieve.
        `x` - the evaluation point.
      Returns:
        the n-th a coefficient.

    - #### getB

          protected abstract double getB(int n,
                    double x)

      Access the n-th b coefficient of the continued fraction. Since b can be a function of the evaluation point, x, that is passed in as well.
      Parameters:
        `n` - the coefficient index to retrieve.
        `x` - the evaluation point.
      Returns:
        the n-th b coefficient.

    - #### evaluate

          public double evaluate(double x)
                          throws MathException

      Evaluates the continued fraction at the value x.
      Parameters:
        `x` - the evaluation point.
      Returns:
        the value of the continued fraction evaluated at x.
      Throws:
        `MathException` - if the algorithm fails to converge.

    - #### evaluate

          public double evaluate(double x,
                        double epsilon)
                          throws MathException

      Evaluates the continued fraction at the value x.
      Parameters:
        `x` - the evaluation point.
        `epsilon` - maximum error allowed.
      Returns:
        the value of the continued fraction evaluated at x.
      Throws:
        `MathException` - if the algorithm fails to converge.

    - #### evaluate

          public double evaluate(double x,
                        int maxIterations)
                          throws MathException

      Evaluates the continued fraction at the value x.
      Parameters:
        `x` - the evaluation point.
        `maxIterations` - maximum number of convergents
      Returns:
        the value of the continued fraction evaluated at x.
      Throws:
        `MathException` - if the algorithm fails to converge.

    - #### evaluate

          public double evaluate(double x,
                        double epsilon,
                        int maxIterations)
                          throws MathException

      Evaluates the continued fraction at the value x.

      The implementation of this method is based on equations 14-17 of:

      - Eric W. Weisstein. "Continued Fraction." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/ContinuedFraction.html
      The recurrence relationship defined in those equations can result in very large intermediate results which can result in numerical overflow. As a means to combat these overflow conditions, the intermediate results are scaled whenever they threaten to become numerically unstable.
      Parameters:
        `x` - the evaluation point.
        `epsilon` - maximum error allowed.
        `maxIterations` - maximum number of convergents
      Returns:
        the value of the continued fraction evaluated at x.
      Throws:
        `MathException` - if the algorithm fails to converge.

Copyright (c) 2003-2013 Apache Software Foundation