Package org.apfloat
Class HypergeometricHelper
- java.lang.Object
-
- org.apfloat.HypergeometricHelper
-
class HypergeometricHelper extends java.lang.Object
Helper class for hypergeometric functions.- Since:
- 1.11.0
- Version:
- 1.14.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
HypergeometricHelper.Hypergeometric2F1Helper
private static class
HypergeometricHelper.NotConvergingException
private static class
HypergeometricHelper.RetryException
private static class
HypergeometricHelper.Transformation
-
Field Summary
Fields Modifier and Type Field Description private Apcomplex[]
a
private Apcomplex[]
b
private long
extraPrecision
private Apint
one
private int
radix
private long
targetPrecision
private long
workingPrecision
private Apcomplex
z
private Apint
zero
-
Constructor Summary
Constructors Modifier Constructor Description private
HypergeometricHelper(Apcomplex[] a, Apcomplex[] b, Apcomplex z)
Helper for the generalized hypergeometric function pFq.
-
Method Summary
-
-
-
Method Detail
-
hypergeometricPFQ
public static Apcomplex hypergeometricPFQ(Apcomplex[] a, Apcomplex[] b, Apcomplex z)
Generalized hypergeometric function pFq.- Parameters:
a
- The first argument.b
- The second argument.z
- The third argument.- Returns:
- pFq(a1, …, ap; b1, …, bq; z)
- Throws:
java.lang.ArithmeticException
- If the series does not converge.
-
hypergeometricPFQRegularized
public static Apcomplex hypergeometricPFQRegularized(Apcomplex[] a, Apcomplex[] b, Apcomplex z)
Regularized generalized hypergeometric function pF̃q.- Parameters:
a
- The first argument.b
- The second argument.z
- The third argument.- Returns:
- pF̃q(a1, …, ap; b1, …, bq; z)
- Throws:
java.lang.ArithmeticException
- If the series does not converge.- Since:
- 1.13.0
-
hypergeometricPFQRegularized
private Apcomplex hypergeometricPFQRegularized()
-
hypergeometricU
public static Apcomplex hypergeometricU(Apcomplex a, Apcomplex b, Apcomplex z, boolean fastOnly)
Tricomi's confluent hypergeometric function U. Also known as the confluent hypergeometric function of the second kind.- Parameters:
a
- The first argument.b
- The second argument.z
- The third argument.fastOnly
- Only attempt relatively fast algorithms and return null if not applicable- Returns:
- U(a, b, z)
- Since:
- 1.13.0
-
hypergeometricPFQ
private Apcomplex hypergeometricPFQ() throws java.lang.ArithmeticException, ApfloatRuntimeException
- Throws:
java.lang.ArithmeticException
ApfloatRuntimeException
-
hypergeometric0F1
private Apcomplex hypergeometric0F1(Apcomplex b, Apcomplex z) throws java.lang.ArithmeticException, ApfloatRuntimeException
- Throws:
java.lang.ArithmeticException
ApfloatRuntimeException
-
hypergeometric1F1
private Apcomplex hypergeometric1F1(Apcomplex a, Apcomplex b, Apcomplex z) throws java.lang.ArithmeticException, ApfloatRuntimeException
- Throws:
java.lang.ArithmeticException
ApfloatRuntimeException
-
hypergeometric1F1series
private Apcomplex hypergeometric1F1series(Apcomplex a, Apcomplex b, Apcomplex z)
-
hypergeometricUStar
private Apcomplex hypergeometricUStar(Apcomplex a, Apcomplex b, Apcomplex z) throws java.lang.ArithmeticException, ApfloatRuntimeException
- Throws:
java.lang.ArithmeticException
ApfloatRuntimeException
-
hypergeometricU
private Apcomplex hypergeometricU(boolean fastOnly) throws java.lang.ArithmeticException, ApfloatRuntimeException
- Throws:
java.lang.ArithmeticException
ApfloatRuntimeException
-
hypergeometric2F1
private Apcomplex hypergeometric2F1(Apcomplex a, Apcomplex b, Apcomplex c, Apcomplex z) throws java.lang.ArithmeticException, ApfloatRuntimeException
- Throws:
java.lang.ArithmeticException
ApfloatRuntimeException
-
precision
private static long precision(Apcomplex... z)
-
checkResult
private Apcomplex checkResult()
-
offset
private Apfloat offset(long scale)
-
ensurePrecision
private void ensurePrecision(Apcomplex[] src, Apcomplex[] dest, long extendedPrecision)
-
-