## 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: 920558 $ $Date: 2010-03-08 17:57:32 -0500 (Mon, 08 Mar 2010) $

Field Summary
`private static double` `DEFAULT_EPSILON` Maximum allowed numerical error.

Constructor Summary
`protected` `ContinuedFraction()` Default constructor.

Method Summary
`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-2011 Apache Software Foundation