Class ContinuedFraction
- java.lang.Object
-
- org.apache.commons.numbers.fraction.ContinuedFraction
-
public abstract class ContinuedFraction extends java.lang.ObjectProvides a generic means to evaluate continued fractions. Subclasses must provide theaandbcoefficients to evaluate the continued fraction.
-
-
Constructor Summary
Constructors Constructor Description ContinuedFraction()
-
Method Summary
Modifier and Type Method Description doubleevaluate(double x)Evaluates the continued fraction.doubleevaluate(double x, double epsilon)Evaluates the continued fraction.doubleevaluate(double x, double epsilon, int maxIterations)Evaluates the continued fraction.doubleevaluate(double x, int maxIterations)Evaluates the continued fraction at the value x.protected abstract doublegetA(int n, double x)Defines then-th "a" coefficient of the continued fraction.protected abstract doublegetB(int n, double x)Defines then-th "b" coefficient of the continued fraction.
-
-
-
Method Detail
-
getA
protected abstract double getA(int n, double x)Defines then-th "a" coefficient of the continued fraction.- Parameters:
n- Index of the coefficient to retrieve.x- Evaluation point.- Returns:
- the coefficient
an.
-
getB
protected abstract double getB(int n, double x)Defines then-th "b" coefficient of the continued fraction.- Parameters:
n- Index of the coefficient to retrieve.x- Evaluation point.- Returns:
- the coefficient
bn.
-
evaluate
public double evaluate(double x)
Evaluates the continued fraction.- Parameters:
x- Point at which to evaluate the continued fraction.- Returns:
- the value of the continued fraction evaluated at
x. - Throws:
java.lang.ArithmeticException- if the algorithm fails to converge.java.lang.ArithmeticException- if the maximal number of iterations is reached before the expected convergence is achieved.- See Also:
evaluate(double,double,int)
-
evaluate
public double evaluate(double x, double epsilon)Evaluates the continued fraction.- Parameters:
x- the evaluation point.epsilon- Maximum error allowed.- Returns:
- the value of the continued fraction evaluated at
x. - Throws:
java.lang.ArithmeticException- if the algorithm fails to converge.java.lang.ArithmeticException- if the maximal number of iterations is reached before the expected convergence is achieved.- See Also:
evaluate(double,double,int)
-
evaluate
public double evaluate(double x, int maxIterations)Evaluates the continued fraction at the value x.- Parameters:
x- the evaluation point.maxIterations- Maximum number of iterations.- Returns:
- the value of the continued fraction evaluated at
x. - Throws:
java.lang.ArithmeticException- if the algorithm fails to converge.java.lang.ArithmeticException- if the maximal number of iterations is reached before the expected convergence is achieved.- See Also:
evaluate(double,double,int)
-
evaluate
public double evaluate(double x, double epsilon, int maxIterations)Evaluates the continued fraction.The implementation of this method is based on the modified Lentz algorithm as described on page 18 ff. in:
- I. J. Thompson, A. R. Barnett. "Coulomb and Bessel Functions of Complex Arguments and Order." http://www.fresco.org.uk/papers/Thompson-JCP64p490.pdf
- Parameters:
x- Point at which to evaluate the continued fraction.epsilon- Maximum error allowed.maxIterations- Maximum number of iterations.- Returns:
- the value of the continued fraction evaluated at
x. - Throws:
java.lang.ArithmeticException- if the algorithm fails to converge.java.lang.ArithmeticException- if the maximal number of iterations is reached before the expected convergence is achieved.
-
-