IGLib
1.7.2
The IGLib base library EXTENDED - with other lilbraries and applications.
|
Contains methods that compute advanced functions with real arguments. More...
Static Public Member Functions | |
static double | BesselJ (int n, double x) |
Computes the regular Bessel function for integer orders. More... | |
static double | BesselY (int n, double x) |
Computes the irregular Bessel function for integer orders. More... | |
static double | BesselJ (double nu, double x) |
Computes the regular Bessel function for real orders. More... | |
static double | BesselY (double nu, double x) |
Computes the irregual Bessel function for real orders. More... | |
static SolutionPair | Bessel (double nu, double x) |
Computes both solutions of the Bessel differential equation. More... | |
static double | SphericalBesselJ (int n, double x) |
Computes the regular spherical Bessel function of integer order. More... | |
static double | SphericalBesselY (int n, double x) |
Computes the irregular spherical Bessel function of integer order. More... | |
static double | CoulombF (int L, double eta, double rho) |
Computes the regular Coulomb wave function. More... | |
static double | CoulombG (int L, double eta, double rho) |
Computes the irregular Coulomb wave function. More... | |
static double | CarlsonF (double x, double y, double z) |
Computes the Carslon elliptic integral RF. More... | |
static double | CarlsonD (double x, double y, double z) |
Computes the Carlson integral RD. More... | |
static double | EllipticK (double k) |
Computes the complete elliptic integral of the first kind. More... | |
static double | EllipticF (double phi, double k) |
Computes the incomplete elliptic integral of the first kind. More... | |
static double | EllipticE (double k) |
Computes the complete elliptic integral of the second kind. More... | |
static double | EllipticE (double phi, double k) |
Computes the incomplete elliptic integral of the second kind. More... | |
static double | Erf (double x) |
Computes the error function. More... | |
static double | Erfc (double x) |
Computes the complementary error function. More... | |
static double | InverseErfc (double y) |
Computes the inverse complementary error function. More... | |
static double | InverseErf (double y) |
Computes the inverse error function. More... | |
static double | IntegralEi (double x) |
Computes the principal value of the exponential integral. More... | |
static double | IntegralE (int n, double x) |
Computes the exponential integral. More... | |
static double | IntegralCi (double x) |
Computes the cosine integral. More... | |
static double | IntegralSi (double x) |
Computes the sine integral. More... | |
static double | IntegralTi (double x) |
Computes the inverse tangent integral. More... | |
static double | LogGamma (double x) |
Computes the natural logrithm of the Gamma function. More... | |
static double | Gamma (double x) |
Computes the Gamma function. More... | |
static double | Psi (double x) |
Computes the digamma function. More... | |
static double | Psi (int n, double x) |
Computes the polygamma function. More... | |
static double | Beta (double a, double b) |
Computes the Beta function. More... | |
static double | LogBeta (double a, double b) |
Computes the lograrithm of the Beta function. More... | |
static double | LeftRegularizedGamma (double a, double x) |
Computes the normalized lower (left) incomplete Gamma function. More... | |
static double | RightRegularizedGamma (double a, double x) |
Computes the normalized upper (right) incomplete Gamma function. More... | |
static double | Gamma (double a, double x) |
Computes the upper incomplete Gamma function. More... | |
static double | Beta (double a, double b, double x) |
Computes the incomplete Beta function. More... | |
static double | LeftRegularizedBeta (double a, double b, double x) |
Computes the regularized incomplete Beta function. More... | |
static Complex | SphericalHarmonic (int l, int m, double theta, double phi) |
Computes the value of a spherical harmonic function. More... | |
static double | LambertW (double x) |
Computes the Lambert W function. More... | |
static SolutionPair | ModifiedBessel (double nu, double x) |
Computes modified cylindrical Bessel functions. More... | |
static double | ModifiedBesselI (double nu, double x) |
Computes the regular modified cynlindrical Bessel function. More... | |
static double | ModifiedBesselK (double nu, double x) |
Computes the irregular modified cynlindrical Bessel function. More... | |
static double | AiryAi (double x) |
Computes the Airy function of the first kind. More... | |
static double | AiryBi (double x) |
Computes the Airy function of the second kind. More... | |
static SolutionPair | Airy (double x) |
Computes both Airy functions and their derivatives. More... | |
static double | DiLog (double x) |
Computes the dilogarathm function, also called Spence's function. More... | |
static double | PolyLog (int n, double x) |
Computes the polylogarithm function. More... | |
static double | Clausen (double t) |
Computes the Clausen integral. More... | |
static double | RiemannZeta (double x) |
Compute the Riemann zeta function. More... | |
static double | DirichletEta (double x) |
Computes the Dirichlet eta function. More... | |
Public Attributes | |
const double | EulerGamma = 0.577215664901532860606512 |
The Euler constant. More... | |
const double | Catalan = 0.915965594177219015054604 |
Catalan's constant. More... | |
Static Public Attributes | |
static readonly double | GoldenRatio = (1.0 + Math.Sqrt(5.0)) / 2.0 |
The golden ratio. More... | |
Private Member Functions | |
< summary > Computes the Dawson integral.</summary > < paramname="x"> The argument. </param >< returns > The value of | F (x).</returns >< remarks >< para >The Dawson function is defined by the integral |
< summary > Computes the Fresnel cosine integral. </summary >< paramname="x"> The argument.</param > < returns > The value of | C (x).</returns >< remarks >< para >The Fresnel cosine integral is defined as |
< summary > Computes the Fresnel sine integral. </summary >< paramname="x"> The argument.</param > < returns > The value of | S (x).</returns >< remarks >< para >The Fresnel sine integral is defined as |
Static Private Member Functions | |
static double | BesselJ_Series (int n, double x) |
static void | BesselY_Series (double x, out double Y0, out double Y1) |
static void | BesselY_Series (double nu, double x, out double Y0, out double Y1) |
static double | BesselJ_Series (double nu, double x) |
static void | BesselJ_Series (double nu, double x, out double J, out double JP) |
static double | Bessel_CF1 (double nu, double x, out int sign) |
static Complex | Bessel_CF2 (double nu, double x) |
static void | Bessel_RecurrUpward (double nu, double x, ref double F, ref double FP, int n) |
static SolutionPair | Bessel_Steed (double nu, double x) |
static SolutionPair | Bessel_Steed (double r, Complex z, double W, int sign) |
static SolutionPair | Bessel_Asymptotic (double nu, double x) |
static double | SphericalBesselJ_Zero (double x) |
static double | SphericalBesselJ_SeriesOne (double x) |
static double | SphericalBesselJ_One (double x) |
static double | SphericalBesselJ_Series (int n, double x) |
static double | SphericalBesselY_Series (int n, double x) |
static double | SphericalBesselY_Zero (double x) |
static double | SphericalBesselY_SeriesOne (double x) |
static double | SphericalBesselY_One (double x) |
static double | SphericalBesselJ_Miller (int n, double x) |
static double | CoulombFactorZero (double eta) |
static double | CoulombFactor (int L, double eta) |
static void | CoulombF_Series (int L, double eta, double rho, out double F, out double FP) |
static void | Coulomb_Zero_Series (double eta, double rho, out double F, out double FP, out double G, out double GP) |
static SolutionPair | Coulomb_Steed (double L, double eta, double rho) |
static double | Coulomb_CF1 (double L, double eta, double rho, out int sign) |
static Complex | Coulomb_CF2 (double L, double eta, double rho) |
static void | Coulomb_Asymptotic (double L, double eta, double rho, out double F, out double G) |
static double | CoulombTurningPoint (double L, double eta) |
static void | Coulomb_Recurse_Upward (int L1, int L2, double eta, double rho, ref double U, ref double UP) |
static double | CoulombF_Integrate (int L, double eta, double rho) |
static double | EllipticK_Series (double k) |
static double | EllipticK_Asymptotic (double k1) |
static double | Elliptic_AGM (double k) |
static double | EllipticE_Series (double k) |
static double | EllipticE_Asymptotic (double k1) |
static double | Erf_Series (double x) |
static double | Erfc_ContinuedFraction (double x) |
static double | InverseErfSeries (double x) |
static double[] | ComputeInverseErfSeriesCoefficients (int n) |
static double | InverseErfcByRefinement (double y) |
static double | InverseErfcAsymptoticExpansion (double x) |
static double | InverseErfcRationalApproximation (double x) |
static double | Dawson_Series (double x) |
static double | Dawson_Asymptotic (double x) |
static double | Dawson_Rybicki (double x) |
static double[] | Compute_Dawson_Rybicki_Coefficients (double h, int n) |
static double | IntegralEi_Series (double x) |
static double | IntegralEi_Asymptotic (double x) |
static double | IntegralE_Series (int n, double x) |
static double | IntegralE_ContinuedFraction (int n, double x) |
static double | IntegralSi_Series (double x) |
static double | IntegralCi_Series (double x) |
static Complex | IntegralE1_Imaginary_ContinuedFraction (double x) |
static double | IntegralTi_Series (double x) |
static double | IntegralTi_LogSeries (double x) |
static double[] | ComputeCotDerivative (int n) |
static double | EvaluateCotDerivative (double[] p, double x) |
static double | PowOverBeta (double a, double b, double x) |
static double | GammaP_Series (double a, double x) |
static double | GammaQ_ContinuedFraction (double a, double x) |
static void | Gamma_Temme (double a, double x, out double P, out double Q) |
static double | Lambert_Halley (double x, double w0) |
static double | Lambert_SeriesZero (double x) |
static double | Lambert_SeriesSmall (double x) |
static double | Lambert_SeriesLarge (double x) |
static void | ModifiedBesselK_RecurrUpward (double mu, double x, ref double K, ref double KP, int n) |
static void | ModifiedBesselI_Series (double nu, double x, out double I, out double IP) |
static double | ModifiedBesselI_Series (double nu, double x) |
static void | ModifiedBessel_Asymptotic (double nu, double x, out double sI, out double sIP, out double sK, out double sKP) |
static double | ModifiedBessel_CF1 (double nu, double x) |
static void | ModifiedBessel_CF_K (double nu, double x, out double K, out double g) |
static void | ModifiedBesselK_Series (double nu, double x, out double K0, out double K1) |
static double | AiryAi_Series (double x) |
static double | AiryBi_Series (double x) |
static SolutionPair | Airy_Series (double x) |
static double | DiLog_Series (double x) |
static double | PolyLog_BernoulliSum (int n, double w) |
static double | PolyLog_Series (int n, double x) |
static double | PolyLog_LogSeries (int n, double x) |
static double | ClausenNearZero (double t) |
static double | ClausenNearPi (double t) |
static double | DirichletEta_Borwein (double x) |
static double[] | ComputeBorweinEtaCoefficients (int n) |
static double | RiemannZeta_LaurentSeries (double x) |
Private Attributes | |
const double | Dawson_Rybicki_h = 0.25 |
const double | EI = 1.0 / Math.E |
Static Private Attributes | |
static readonly decimal | dPI2 = 2.0m * 3.1415926535897932384626433832795m |
static readonly double | dmax = Convert.ToDouble(Decimal.MaxValue) |
static readonly double | c4 = Math.Pow(2.0, 2.0 / 3.0) |
static readonly double | SqrtAccuracy = Math.Sqrt(Global.Accuracy) |
static readonly double[] | inverfSeriesCoefficients = ComputeInverseErfSeriesCoefficients(24) |
static readonly double[] | Dawson_Rybicki_coefficients = Compute_Dawson_Rybicki_Coefficients(0.25, 16) |
static readonly double[][] | TemmeD |
static readonly double[] | DirichletEta_BorweinCoefficients = ComputeBorweinEtaCoefficients(16) |
Contains methods that compute advanced functions with real arguments.
|
inlinestatic |
Computes the regular Bessel function for integer orders.
n | The order parameter. |
x | The argument. |
For information on the cylindrical Bessel functions, see AdvancedMath.Bessel.
References Meta.Numerics.Functions.SolutionPair.FirstSolutionDerivative, and Meta.Numerics.Functions.SolutionPair.FirstSolutionValue.
Referenced by FutureTest.FutureTest.BesselExactTest(), Test.AdvancedMathTest.BesselJ0Integral(), Test.AdvancedMathTest.BesselKapteynIntegral(), Test.AdvancedMathTest.BesselLipshitzIntegral(), Test.AdvancedMathTest.BesselModifiedBesselRelationship(), Test.AdvancedMathTest.BesselTower(), Test.AdvancedMathTest.BesselWeberIntegral(), FutureTest.FutureTest.ComputeChiTest(), Test.AdvancedMathTest.FullBesselRealBesselAgreement(), Test.AdvancedMathTest.IntegerBesselJIntegral(), Test.AdvancedMathTest.IntegerBesselNegativeArgument(), Test.AdvancedMathTest.IntegerBesselNegativeOrder(), Test.AdvancedMathTest.IntegerBesselRealBesselAgreement(), Test.AdvancedMathTest.IntegerBesselRecurrence(), Test.AdvancedMathTest.IntegerBesselSpecialCase(), Test.AdvancedMathTest.IntegerBesselWronskian(), Test.AdvancedMathTest.RealBesselFresnel(), Test.AdvancedMathTest.RealBesselInequality(), Test.AdvancedMathTest.RealBesselJIntegral(), Test.AdvancedMathTest.RealBesselRecurrence(), Test.AdvancedMathTest.RealBesselWronskian(), Test.RootsTest.RootOfJ0(), Test.AdvancedMathTest.SphericalBesselRealBesselAgreement(), and Test.OrthogonalPolynomialsTest.ZernikeBessel().
|
inlinestatic |
Computes the irregular Bessel function for integer orders.
n | The order parameter. |
x | The argument. |
For information on the cylindrical Bessel functions, see AdvancedMath.Bessel.
Referenced by Test.AdvancedMathTest.BesselY0Integral(), FutureTest.FutureTest.BesselYSeries(), Test.AdvancedMathTest.FullBesselRealBesselAgreement(), Test.AdvancedMathTest.IntegerBesselNegativeOrder(), Test.AdvancedMathTest.IntegerBesselRealBesselAgreement(), Test.AdvancedMathTest.IntegerBesselRecurrence(), Test.AdvancedMathTest.IntegerBesselSpecialCase(), Test.AdvancedMathTest.IntegerBesselWronskian(), Test.AdvancedMathTest.RealBesselInequality(), Test.AdvancedMathTest.RealBesselRecurrence(), Test.AdvancedMathTest.RealBesselWronskian(), and Test.AdvancedMathTest.SphericalBesselRealBesselAgreement().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.ComplexMath.I.
|
inlinestatic |
Computes the regular Bessel function for real orders.
nu | The order parameter. |
x | The argument, which must be non-negative. |
For information on the cylindrical Bessel functions, see AdvancedMath.Bessel.
ArgumentOutOfRangeException | x is negative. |
References Meta.Numerics.Functions.SolutionPair.FirstSolutionValue.
|
inlinestatic |
Computes the irregual Bessel function for real orders.
nu | The order parameter. |
x | The argument, which must be non-negative. |
For information on the cylindrical Bessel functions, see AdvancedMath.Bessel.
ArgumentOutOfRangeException | x is negative. |
References Meta.Numerics.Functions.SolutionPair.SecondSolutionDerivative, and Meta.Numerics.Functions.SolutionPair.SecondSolutionValue.
|
inlinestatic |
Computes both solutions of the Bessel differential equation.
nu | The order, which must be non-negative. |
x | The argument, which must be non-negative. |
Bessel functions often occur in physical phenomenon with cylindrical symmetry. They satisfy the differential equation
Since this is second order linear equation, is has two linearly independent solutions. The regular Bessel function Jν(x), which is regular at the origin, and the irregular Bessel function Yν(x), which diverges at the origin. Far from the origin, both functions are oscilatory.
This method simultaneously computes both Bessel functions and their derivatives. If you need both J and Y, it is faster to call this method once than to call BesselJ(double,double) and BesselY(double,double) seperately. If on, the other hand, you need only J or only Y, it is faster to call the appropriate method to compute the one you need.
ArgumentOutOfRangeException | nu or x is negative. |
References Meta.Numerics.Functions.SolutionPair.SecondSolutionDerivative, and Meta.Numerics.Functions.SolutionPair.SecondSolutionValue.
Referenced by Test.AdvancedMathTest.FullBesselDerivative(), Test.AdvancedMathTest.FullBesselRealBesselAgreement(), and Test.AdvancedMathTest.FullBesselWronskian().
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.Complex.Im, and Meta.Numerics.Complex.Re.
|
inlinestaticprivate |
References Meta.Numerics.Complex.Im, and Meta.Numerics.Complex.Re.
|
inlinestaticprivate |
|
inlinestatic |
Computes the regular spherical Bessel function of integer order.
n | The order parameter. |
x | The argument. |
The spherical Bessel functions occur in solutions to the wave equations with spherical symmetry. The regular sperhical Bessel functions are finite at the origin, and thus occur in situations where the wave equation is satisfied at the origin.
The regular spherical Bessel functions are related to the regular Bessel functions of half-integer order by jn(x) = Sqrt(π/2x) Jn+1/2(x).
Referenced by Test.AdvancedMathTest.SphericalBesselNegativeOrder(), Test.AdvancedMathTest.SphericalBesselRealBesselAgreement(), Test.AdvancedMathTest.SphericalBesselRecurrence(), Test.AdvancedMathTest.SphericalBesselSpecialCase(), Test.AdvancedMathTest.SphericalBesselTower(), and Test.AdvancedMathTest.SphericalBesselWronskian().
|
inlinestatic |
Computes the irregular spherical Bessel function of integer order.
n | The order parameter. |
x | The argument. |
Referenced by Test.AdvancedMathTest.SphericalBesselNegativeOrder(), Test.AdvancedMathTest.SphericalBesselRealBesselAgreement(), Test.AdvancedMathTest.SphericalBesselRecurrence(), Test.AdvancedMathTest.SphericalBesselSpecialCase(), and Test.AdvancedMathTest.SphericalBesselWronskian().
|
inlinestaticprivate |
References Meta.Numerics.MoreMath.Sin().
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.MoreMath.Cos(), and Meta.Numerics.MoreMath.Sin().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.MoreMath.Cos().
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.MoreMath.Cos(), and Meta.Numerics.MoreMath.Sin().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.MoreMath.Hypot().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.Functions.SolutionPair.FirstSolutionDerivative, Meta.Numerics.Functions.SolutionPair.FirstSolutionValue, Meta.Numerics.Complex.Im, Meta.Numerics.Complex.Re, Meta.Numerics.Functions.SolutionPair.SecondSolutionDerivative, and Meta.Numerics.Functions.SolutionPair.SecondSolutionValue.
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.ComplexMath.I.
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the regular Coulomb wave function.
L | The angular momentum number, which must be non-negative. |
eta | The charge parameter, which can be postive or negative. |
rho | The radial distance parameter, which must be non-negative. |
The Coulomb wave functions are the radial wave functions of a non-relativistic particle in a Coulomb potential.
They satisfy the differential equation:
A repulsive potential is represented by η > 0, an attractive potential by η < 0.
F is oscilatory in the region beyond the classical turning point. In the quantum tunneling region inside the classical turning point, F is exponentially supressed.
Many numerical libraries compute Coulomb wave functions in the quantum tunneling region using a WKB approximation, which accurately determine only the first handfull of digits; our library computes Coulomb wave functions even in this computationaly difficult region to nearly full precision – all but the last 3-4 digits can be trusted.
The irregular Coulomb wave functions GL(η,ρ) are the complementary independent solutions of the same differential equation.
ArgumentOutOfRangeException | L or rho is negative. |
References Meta.Numerics.Functions.SolutionPair.FirstSolutionValue.
Referenced by Test.AdvancedMathTest.CoulombEtaZeroTest(), Test.AdvancedMathTest.CoulombRecursionTest(), and Test.AdvancedMathTest.CoulombWronskianHelper().
|
inlinestatic |
Computes the irregular Coulomb wave function.
L | The angular momentum number, which must be non-negative. |
eta | The charge parameter, which can be postive or negative. |
rho | The radial distance parameter, which must be non-negative. |
For information on the Coulomb wave functions, see the remarks on CoulombF.
ArgumentOutOfRangeException | L or rho is negative. |
References Meta.Numerics.Functions.SolutionPair.SecondSolutionDerivative, and Meta.Numerics.Functions.SolutionPair.SecondSolutionValue.
Referenced by Test.AdvancedMathTest.CoulombEtaZeroTest(), Test.AdvancedMathTest.CoulombRecursionTest(), and Test.AdvancedMathTest.CoulombWronskianHelper().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the Carslon elliptic integral RF.
x | The first parameter, which must be non-negative. |
y | The second parameter, which must be non-negative. |
z | The third parameter, which must be non-negative. |
The Carlson F integral is:
As can be seen from the integral, all three parameters are equivilent, so RF is symmetric with respect to any permutation of the parameters.
The Carlson integrals can be used to express integrals of rational functions. In that sense, they are replacements for the Legendre elliptic functions.
Referenced by Test.AdvancedMathTest.CarlsonDSymmetrizedSum(), Test.AdvancedMathTest.CarlsonFDuplication(), Test.AdvancedMathTest.CarlsonFInequality(), Test.AdvancedMathTest.CarlsonFSpecialCases(), Test.AdvancedMathTest.CarlsonLegendreRelation(), Test.AdvancedMathTest.CarlsonLemniscaticValues(), and Test.AdvancedMathTest.EllipticKCarlsonFRelationship().
|
inlinestatic |
Computes the Carlson integral RD.
x | The first parameter, which must be non-negative. |
y | The second parameter, which must be non-negative. |
z | The third parameter, which must be non-negative. |
The Carlson D integral is:
It is symmetric with respect to the interchange of the first two parameters, but not the third parameter.
The Carlson integrals can be used to express integrals of rational functions. In that sense, they are replacements for the Legendre elliptic functions.
Referenced by Test.AdvancedMathTest.CarlsonDSymmetrizedSum(), Test.AdvancedMathTest.CarlsonLegendreRelation(), Test.AdvancedMathTest.CarlsonLemniscaticValues(), and Test.AdvancedMathTest.CarslonDSpecialCases().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the complete elliptic integral of the first kind.
k | The elliptic modulus, which must lie between zero and one. |
K(k) is defined as the complete elliptic integral:
It appears in the Legendre reduction of integrals of rational funtions.
Be aware that some authors use the the parameter m = k2 instead of the modulus k.
Referenced by Test.AdvancedMathTest.EllipticKCarlsonFRelationship(), Test.AdvancedMathTest.EllipticKCatalanIntegral(), Test.AdvancedMathTest.EllipticKInequality(), Test.AdvancedMathTest.EllipticKIntegration(), Test.AdvancedMathTest.EllipticKSpecialCases(), Test.AdvancedMathTest.EllipticLandenTransform(), and Test.AdvancedMathTest.EllipticLegendreRelation().
|
inlinestatic |
Computes the incomplete elliptic integral of the first kind.
phi | The integration angle (in radians). |
k | The elliptic modulus, which must lie between zero and one. |
Legendre's first incomplete elliptic integral is:
When the integral angle is π, this function reduces to the complete elliptic integral of the first kind (EllipticK.
Be aware that some authors use the the parameter m = k2 instead of the modulus k.
References Meta.Numerics.MoreMath.Cos(), and Meta.Numerics.MoreMath.Sin().
Referenced by Test.AdvancedMathTest.EllipticFBetaRelationship(), Test.AdvancedMathTest.EllipticFIntegral(), Test.AdvancedMathTest.EllipticFIntegration(), and Test.AdvancedMathTest.EllipticFSpecialCases().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the complete elliptic integral of the second kind.
k | The elliptic modulus, which must lie between zero and one. |
E(k) is defined as the complete elliptic integral:
It appears in the Legendre reduction of integrals of rational funtions.
The perimeter of an ellipse with major axis a and eccentricity e is 4 a E(e).
Be aware that some authors use the the parameter m = k2 instead of the modulus k.
Referenced by Test.AdvancedMathTest.EllipticEIntegration(), Test.AdvancedMathTest.EllipticESPecialCases(), Test.AdvancedMathTest.EllipticLandenTransform(), and Test.AdvancedMathTest.EllipticLegendreRelation().
|
inlinestatic |
Computes the incomplete elliptic integral of the second kind.
phi | The integration angle (in radians). |
k | The elliptic modulus, which must lie between zero and one. |
The incomplete elliptic integral of the second kind is:
It appears in the Legendre reduction of integrals of rational funtions.
Be aware that some authors use the the parameter m = k2 instead of the modulus k.
References Meta.Numerics.MoreMath.Sin().
|
inlinestatic |
Computes the error function.
x | The argument. |
The error can be defined via a Gaussian integral.
The area under a bell curve (Meta.Numerics.Statistics.Distributions.NormalDistribution) within ∓z standard deviations of the mean is given by erf(z/√2).
For large values of x, erf(x) ≈ 1 to within floating-point accuracy. To obtain accurate values of erfc(x) = 1 - erf(x) in this range, use the Erfc function.
The inverse of the error function is implemented as AdvancedMath.InverseErf.
Values of the error function for complex arguments can be obtained using AdvancedComplexMath.Erf method, or using the equivalent but re-parameterized AdvancedComplexMath.Faddeeva function.
Referenced by Test.BugTests.Bug5705(), Test.AdvancedMathTest.ErfIntegralTest(), Test.AdvancedMathTest.ErfNegativeArgumentsTest(), Test.AdvancedMathTest.ErrorFunctionComplementarity(), Test.AdvancedMathTest.ErrorFunctionSpecialCases(), and Test.AdvancedMathTest.InverseErfTest().
|
inlinestatic |
Computes the complementary error function.
x | The argument. |
The complementary error function can be used to express the area in the tails of a Bell curve beyond a given distance from its center.
It can be defined via an integral:
For small values of x, erfc(x) ≈ 1 to within floating-point accuracy. To obtain accurate values of erfc(x) = 1 - erf(x) in this region, use the Erf function.
Referenced by Test.BugTests.Bug5705(), Test.AdvancedMathTest.ErfcInequality(), Test.AdvancedMathTest.ErfcIntegral(), Test.AdvancedMathTest.ErrorFunctionComplementarity(), Test.AdvancedMathTest.ErrorFunctionSpecialCases(), Meta.Numerics.Functions.AdvancedMath.Gamma_Temme(), Test.AdvancedMathTest.IncompleteGammaErfc(), and Test.AdvancedMathTest.InverseErfTest().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the inverse complementary error function.
y | The value of erfc(x), which must lie between 0 and 1. |
ArgumentOutOfRangeException | y lies outside [0,1]. |
Referenced by Test.AdvancedMathTest.InverseErfTest(), and Test.AdvancedMathTest.InverseErrofFunctionSpecialCases().
|
inlinestatic |
Computes the inverse error function.
y | The error function value erf(x), which must lie between -1 and 1. |
ArgumentOutOfRangeException | y is outside [-1,1]. |
Referenced by Meta.Numerics.UncertainValue.ConfidenceInterval(), Test.AdvancedMathTest.InverseErfIntegralTest(), Test.AdvancedMathTest.InverseErfTest(), Test.AdvancedMathTest.InverseErrofFunctionSpecialCases(), FutureTest.FutureTest.NormalMeanOrderStatisticExpansion(), and FutureTest.FutureTest.NormalMeanOrderStatisticExpansion2().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlineprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlineprivate |
|
inlineprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the principal value of the exponential integral.
x | The argument, which must be non-negative. |
The function Ei(x) appears in the evaluation of some indefinite integrals involving exponents and in number theory in the approximation li(x) = Ei(ln x) to the cumulative distribution of primes.
It is related to the real part of the exponential integral for negative arguments by E1(-x ± iε) = -Ei(x) ∓ iπ.
ArgumentOutOfRangeException | x is negative. |
Referenced by Test.AdvancedComplexMathTest.ComplexEinAgreement(), and Test.RootsTest.RootOfEi().
|
inlinestatic |
Computes the exponential integral.
n | The order parameter. |
x | The argument, which must be non-negative. |
The exponential integral is defined as:
It is related to the incomplete Gamma function for negative, integer shape parameters by Γ(-k, x) = Eik+1(x) / xk.
In hydrology, E1(x) is sometimes called the Well function.
ArgumentOutOfRangeException | x is negative. |
References Meta.Numerics.Functions.AdvancedMath.Gamma(), and Meta.Numerics.MoreMath.Pow().
Referenced by Test.AdvancedComplexMathTest.ComplexEinAgreement(), Test.AdvancedMathTest.IntegralE1Inequality(), Test.AdvancedMathTest.IntegralEIncompleteGamma(), Test.AdvancedMathTest.IntegralEInequality(), Test.AdvancedMathTest.IntegralEIntegral(), Test.AdvancedMathTest.IntegralEInvalidArgumentTest(), Test.AdvancedMathTest.IntegralERecurrence(), and Test.AdvancedMathTest.IntegralESpecialCaseTest().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the cosine integral.
x | The argument, which must be non-negative. |
The cosine integral is defined as:
The cosine integral diverges logrithmically to negative inifity at the origin and executes a damped oscilation arround zero as its argument increases.
ArgumentOutOfRangeException | x is negative. |
Referenced by Test.AdvancedMathTest.IntegralCiSiIntegrals().
|
inlinestatic |
Computes the sine integral.
x | The argument. |
The sine integral is defined as:
The sine integral is zero at the origin and executes a damped oscilation arround π/2 as its argument increases.
Referenced by Test.AdvancedMathTest.IntegralCiSiIntegrals(), Test.AdvancedMathTest.IntegralSiDefinition(), and Test.AdvancedMathTest.SphericalBesselTower().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the inverse tangent integral.
x | The argument. |
Referenced by Test.AdvancedMathTest.IntegralTiDefinition().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the natural logrithm of the Gamma function.
x | The argument, which must be positive. |
Because Γ(x) grows rapidly for increasing positive x, it is often necessary to work with its logarithm in order to avoid overflow. This function returns accurate values of ln(Γ(x)) even for values of x which would cause Γ(x) to overflow.
ArgumentOutOfRangeException | x is negative or zero. |
Referenced by Meta.Numerics.Functions.AdvancedMath.BesselJ_Series(), Test.AdvancedMathTest.BesselYInRange(), Test.AdvancedComplexMathTest.ComplexLogGammaAgreement(), Meta.Numerics.Statistics.Distributions.GammaDistribution.GammaDistribution(), Test.AdvancedMathTest.GammaRatioInequality(), Test.AdvancedMathTest.IntegerBesselWronskian(), Meta.Numerics.Functions.AdvancedIntegerMath.LogDoubleFactorial_Gamma(), Meta.Numerics.Functions.AdvancedIntegerMath.LogFactorial(), Test.AdvancedMathTest.LogGammaDuplication(), Test.AdvancedMathTest.LogGammaNegativeArgument(), Test.AdvancedMathTest.LogGammaTriplication(), Meta.Numerics.Functions.AdvancedMath.ModifiedBesselI_Series(), and Meta.Numerics.Statistics.Distributions.ChiSquaredDistribution.Moment().
|
inlinestatic |
Computes the Gamma function.
x | The argument. |
The Gamma function is a generalization of the factorial (see AdvancedIntegerMath.Factorial) to arbitrary real values.
For positive integer arguments, this integral evaluates to Γ(n+1)=n!, but it can also be evaluated for non-integer z.
Because Γ(x) grows beyond the largest value that can be represented by a System.Double at quite moderate values of x, you may find it useful to work with the LogGamma method, which returns ln(Γ(x)).
To evaluate the Gamma function for a complex argument, use AdvancedComplexMath.Gamma.
The function is defined for all x. It has poles at all negative integers and at zero; the method returns Double.NaN for these arguments. For positive arguments, the value of the function increases rapidly with increasing argument. For values of x greater than about 170, the value of the function exceeds Double.MaxValue; for these arguments the method returns Double.PositiveInfinity. The method is accurate to full precision over its entire domain.
DLMF on the Gamma Function
Referenced by Meta.Numerics.Functions.AdvancedMath.Airy_Series(), Meta.Numerics.Functions.AdvancedMath.AiryAi_Series(), Meta.Numerics.Functions.AdvancedMath.AiryBi_Series(), Test.AdvancedMathTest.AiryZeroArgument(), Test.OrthogonalPolynomialsTest.AssociatedLaguerreOrthonormality(), Test.MultiIntegrateTest.BallVolumeIntegrals(), Meta.Numerics.Functions.AdvancedMath.BesselJ_Series(), Test.AdvancedMathTest.CarlsonLemniscaticValues(), Test.AdvancedComplexMathTest.ComplexGammaInequality(), Test.AdvancedMathTest.EllipticESPecialCases(), Test.AdvancedMathTest.EllipticKSpecialCases(), Meta.Numerics.Functions.AdvancedIntegerMath.Factorial(), Test.ExtremaTest.FindMinimumOfGamma(), Meta.Numerics.Statistics.Distributions.GammaDistribution.GammaDistribution(), Test.AdvancedMathTest.GammaInequality(), Test.AdvancedMathTest.GammaIntegral(), Test.AdvancedMathTest.GammaRecurrsion(), Test.AdvancedMathTest.GammaReflection(), Test.AdvancedMathTest.GammaSpecialCases(), Test.AdvancedMathTest.GammaTrottIdentity(), FutureTest.FutureTest.GammaWithDerivative(), Test.AdvancedMathTest.IncompleteGammaErfc(), Test.AdvancedMathTest.IncompleteGammaExp(), Test.AdvancedMathTest.IncompleteGammaInequality(), Meta.Numerics.Functions.AdvancedMath.IntegralE(), Test.AdvancedMathTest.IntegralEIncompleteGamma(), Meta.Numerics.Functions.AdvancedMath.ModifiedBesselI_Series(), Meta.Numerics.Statistics.Distributions.WeibullDistribution.Moment(), Meta.Numerics.Statistics.Distributions.KolmogorovDistribution.Moment(), Meta.Numerics.Statistics.Distributions.KuiperDistribution.Moment(), Test.MultiIntegrateTest.RambleIntegrals(), Test.AdvancedMathTest.RealBesselJIntegral(), Test.AdvancedMathTest.RegularizedIncompleteGammaRecurrence(), Meta.Numerics.Functions.AdvancedMath.RiemannZeta(), Test.AdvancedMathTest.RiemannZetaReflectionTest(), FutureTest.FutureTest.TestGammaValues(), FutureTest.FutureTest.TestMinimizationWithoutDerivative(), and Test.MultiIntegrateTest.WatsonIntegrals().
|
inlinestatic |
Computes the digamma function.
x | The argument. |
The psi function, also called the digamma function, is the logrithmic derivative of the Γ function.
To evaluate the Psi function for complex arguments, use AdvancedComplexMath.Psi.
Referenced by Test.AdvancedMathTest.ClausenSpecialValues(), Test.AdvancedMathTest.DigammaAgreement(), Meta.Numerics.Statistics.Distributions.BetaDistribution.FitToSample(), Meta.Numerics.Statistics.Distributions.GammaDistribution.FitToSample(), FutureTest.FutureTest.GammaWithDerivative(), Meta.Numerics.Functions.AdvancedIntegerMath.HarmonicNumber(), Test.AdvancedIntegerMathTest.HarmonicPsiAgreement(), Test.AdvancedMathTest.PolyGammaDuplication(), Test.AdvancedMathTest.PolyGammaIntegral(), Test.AdvancedMathTest.PolyGammaRecurrence(), Test.AdvancedMathTest.PolyGammaRiemann(), Test.AdvancedMathTest.PsiDuplication(), Test.AdvancedMathTest.PsiRecurrence(), Test.AdvancedMathTest.PsiReflection(), Test.AdvancedMathTest.PsiSpecialCases(), Test.RootsTest.RootOfPsi(), Test.AdvancedMathTest.TetraGammaReflection(), Test.DistributionTest.TransformedBetaMoments(), Test.AdvancedMathTest.TriGammaReflection(), and Test.AdvancedMathTest.TriGammaSpecialCases().
|
inlinestatic |
Computes the polygamma function.
n | The order, which must be non-negative. |
x | The argument. |
The polygamma function gives higher logarithmic derivatives of the Gamma function.
ArgumentOutOfRangeException | n is negative. |
References Meta.Numerics.Functions.AdvancedIntegerMath.Factorial(), and Meta.Numerics.MoreMath.Pow().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the Beta function.
a | The first parameter, which must be positive. |
b | The second parameter, which must be positive. |
ArgumentOutOfRangeException | a or b is non-positive. |
Referenced by FutureTest.FutureTest.ApproximateInverseBeta(), FutureTest.FutureTest.ApproximateInverseBetaSeries(), Meta.Numerics.Statistics.Distributions.BetaDistribution.BetaDistribution(), Test.AdvancedMathTest.BetaInequality(), Test.AdvancedMathTest.BetaIntegral(), Test.AdvancedMathTest.BetaRecurrence(), Test.AdvancedMathTest.BetaSpecialValues(), Test.AdvancedMathTest.BetaTransformationTest(), Test.AdvancedMathTest.EllipticFBetaRelationship(), Meta.Numerics.Statistics.Distributions.StudentDistribution.LeftProbability(), Meta.Numerics.Statistics.Distributions.PearsonRDistribution.LeftProbability(), Meta.Numerics.Statistics.Distributions.PearsonRDistribution.ProbabilityDensity(), Meta.Numerics.Statistics.Distributions.StudentDistribution.ProbabilityDensity(), FutureTest.FutureTest.RefineInverseBeta(), and Meta.Numerics.Statistics.Distributions.BinomialDistribution.RightExclusiveProbability().
|
inlinestatic |
Computes the lograrithm of the Beta function.
a | The first parameter, which must be positive. |
b | The second parameter, which must be positive. |
This function accurately computes ln(B(a,b)) even for values of a and b for which B(a,b) is too small or large to be represented by a double.
ArgumentOutOfRangeException | a or b is non-positive. |
|
inlinestatic |
Computes the normalized lower (left) incomplete Gamma function.
a | The shape parameter, which must be positive. |
x | The argument, which must be non-negative. |
The incomplete Gamma function is obtained by carrying out the Gamma function integration from zero to some finite value x, instead of to infinity. The function is normalized by dividing by the complete integral, so the function ranges from 0 to 1 as x ranges from 0 to infinity.
For large values of x, this function becomes 1 within floating point precision. To determine its deviation from 1 in this region, use the complementary function RightRegularizedGamma.
For a=ν/2 and x=χ2/2, this function is the CDF of the χ2 distribution with ν degrees of freedom.
ArgumentOutOfRangeException | a is negative or zero. |
ArgumentOutOfRangeException | x is negative. |
Referenced by Meta.Numerics.Statistics.Distributions.GammaDistribution.InverseLeftStandardGamma(), Meta.Numerics.Statistics.Distributions.GammaDistribution.LeftProbability(), Test.AdvancedMathTest.RegularizedIncompleteGammaRecurrence(), Test.AdvancedMathTest.RegularizedIncompleteGammaUnitarity(), and Meta.Numerics.Statistics.Distributions.PoissonDistribution.RightExclusiveProbability().
|
inlinestatic |
Computes the normalized upper (right) incomplete Gamma function.
a | The shape paraemter, which must be positive. |
x | The argument, which must be non-negative. |
This function is the complement of the left incomplete Gamma function LeftRegularizedGamma.
ArgumentOutOfRangeException | a is negative or zero. |
ArgumentOutOfRangeException | x is negative. |
Referenced by Test.AdvancedMathTest.IncompleteGammaIntegerInequality(), Meta.Numerics.Statistics.Distributions.PoissonDistribution.LeftInclusiveProbability(), Test.AdvancedMathTest.RegularizedIncompleteGammaExponential(), Test.AdvancedMathTest.RegularizedIncompleteGammaUnitarity(), and Meta.Numerics.Statistics.Distributions.GammaDistribution.RightProbability().
|
inlinestatic |
Computes the upper incomplete Gamma function.
a | The shape parameter, which must be positive. |
x | The argument, which must be non-negative. |
The incomplete Gamma function is defined by the same integrand as the Gamma function (Gamma(double)), but the integral is not taken over the full positive real axis.
Like the Γ function itself, this function gets large very quickly. For most purposes, you will prefer to use the regularized incomplete gamma functions LeftRegularizedGamma and RightRegularizedGamma.
|
inlinestatic |
Computes the incomplete Beta function.
a | The left shape parameter, which must be non-negative. |
b | The right shape paraemter, which must be non-negative. |
x | The integral endpoint, which must lie in [0,1]. |
|
inlinestatic |
Computes the regularized incomplete Beta function.
a | The left shape parameter, which must be non-negative. |
b | The right shape paraemter, which must be non-negative. |
x | The integral endpoint, which must lie in [0,1]. |
Referenced by Test.AdvancedMathTest.IncompleteBetaIdentity1(), Test.AdvancedMathTest.IncompleteBetaIdentity2(), Test.AdvancedMathTest.IncompleteBetaLimits(), Test.AdvancedMathTest.IncompleteBetaRecurrence(), Meta.Numerics.Statistics.Distributions.BinomialDistribution.LeftExclusiveProbability(), Meta.Numerics.Statistics.Distributions.BetaDistribution.LeftProbability(), FutureTest.FutureTest.RefineInverseBeta(), Meta.Numerics.Statistics.Distributions.StudentDistribution.RightProbability(), Meta.Numerics.Statistics.Distributions.BetaDistribution.RightProbability(), and FutureTest.FutureTest.TestBeta().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.Functions.AdvancedMath.Erfc().
|
inlinestatic |
Computes the value of a spherical harmonic function.
l | The order, which must be non-negative. |
m | The sub-order, which must lie between -l and l inclusive. |
theta | The azimuthal angle θ. This angle is usually expressed as between -π/2 and +π/2, with positive values representing the upper hemisphere and negative values representing the lower hemisphere. |
phi | The cylindrical angle φ. This angle is usually expressed as between 0 and 2π, measured counter-clockwise (as seen from above) from the positive x-axis. It is also possible to use negative values to represent clockwise movement. |
ArgumentOutOfRangeException | l is negative, or m lies outside the range [-l, l]. |
References Meta.Numerics.Complex.Conjugate, Meta.Numerics.MoreMath.Cos(), and Meta.Numerics.MoreMath.Sin().
Referenced by Test.OrthogonalPolynomialsTest.SphericalHarmonicAddition(), Test.OrthogonalPolynomialsTest.SphericalHarmonicConjugation(), Test.OrthogonalPolynomialsTest.SphericalHarmonicLegendre(), Test.OrthogonalPolynomialsTest.SphericalHarmonicLowOrders(), Test.OrthogonalPolynomialsTest.SphericalHarmonicNormalization(), and Test.OrthogonalPolynomialsTest.SphericalHarmonicSpecialCases().
|
inlinestatic |
Computes the Lambert W function.
x | The argument, which must be greater than or equal to -1/e. |
The Lambert W function solves the transcendental equation W eW = x. The function appears in a number of contexts, including the solution of differential equations and the enumeration of trees.
Referenced by Test.AdvancedMathTest.LambertSpecialCaseTest(), and Test.AdvancedMathTest.LambertTest().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes modified cylindrical Bessel functions.
nu | The order, which must be non-negative. |
x | The argument, which must be non-negative. |
The modified bessel functions fufill a differential equation similiar to the bessel differential equation.
Referenced by Test.AdvancedMathTest.FullModifiedBesselDerivitive(), Test.AdvancedMathTest.ModifiedBesselAgreement(), and Test.AdvancedMathTest.ModifiedBesselWronskian().
|
inlinestaticprivate |
|
inlinestatic |
Computes the regular modified cynlindrical Bessel function.
nu | The order parameter. |
x | The argument, which must be non-negative. |
The modified Bessel functions appear as the solutions of hyperbolic differential equations with cylindrical or circular symmetry, for example the conduction of heat through a cylindrical pipe.
The regular modified Bessel functions are related to the Bessel fuctions with pure imaginary arguments.
The regular modified Bessel functions increase monotonically and exponentially from the origin.
Referenced by Test.AdvancedMathTest.BesselModifiedBesselRelationship(), Test.AdvancedMathTest.ModifiedBesselAgreement(), Test.AdvancedMathTest.ModifiedBesselArgumentZeroTest(), Test.AdvancedMathTest.ModifiedBesselHalfIntegerOrderTest(), Test.AdvancedMathTest.ModifiedBesselIntegralTest(), Test.AdvancedMathTest.ModifiedBesselTower(), and Test.AdvancedMathTest.ModifiedBesselWronskianTest().
|
inlinestatic |
Computes the irregular modified cynlindrical Bessel function.
nu | The order parameter. |
x | The argument. |
The modified Bessel functions are related to the Bessel fuctions with pure imaginary arguments.
The irregular modified Bessel function decreases monotonically and exponentially from the origin.
Referenced by Test.AdvancedMathTest.ModifiedBesselAgreement(), Test.AdvancedMathTest.ModifiedBesselArgumentZeroTest(), Test.AdvancedMathTest.ModifiedBesselHalfIntegerOrderTest(), and Test.AdvancedMathTest.ModifiedBesselWronskianTest().
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.Functions.AdvancedMath.Gamma().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestatic |
Computes the Airy function of the first kind.
x | The argument. |
Airy functions are solutions to the Airy differential equation:
The Airy functions appear in quantum mechanics in the semiclassical WKB solution to the wave functions in a potential.
For negative arguments, Ai(x) is oscilatory. For positive arguments, it decreases exponentially with increasing x.
References Meta.Numerics.Functions.SolutionPair.FirstSolutionValue, and Meta.Numerics.Functions.SolutionPair.SecondSolutionValue.
Referenced by Test.AdvancedMathTest.AiryBairyIntegral(), Test.AdvancedMathTest.AiryIntegral(), Test.AdvancedMathTest.AiryIntegrals(), FutureTest.FutureTest.AiryTest(), and Test.AdvancedMathTest.AiryZeroArgument().
|
inlinestaticprivate |
References Meta.Numerics.Functions.AdvancedMath.Gamma().
|
inlinestatic |
Computes the Airy function of the second kind.
x | The argument. |
The Airy functions appear in quantum mechanics in the semiclassical WKB solution to the wave functions in a potential.
For negative arguments, Bi(x) is oscilatory. For positive arguments, it increases exponentially with increasing x.
While the notation Bi(x) was chosen simply as a natural complement to Ai(x), it has influenced the common nomenclature for this function, which is now often called the "Bairy function".
References Meta.Numerics.Functions.SolutionPair.FirstSolutionValue, and Meta.Numerics.Functions.SolutionPair.SecondSolutionValue.
Referenced by Test.AdvancedMathTest.AiryBairyIntegral(), and Test.AdvancedMathTest.AiryZeroArgument().
|
inlinestaticprivate |
References Meta.Numerics.Functions.AdvancedMath.Gamma().
|
inlinestatic |
Computes both Airy functions and their derivatives.
x | The argument. |
References Meta.Numerics.Functions.SolutionPair.FirstSolutionDerivative, Meta.Numerics.Functions.SolutionPair.FirstSolutionValue, Meta.Numerics.Functions.SolutionPair.SecondSolutionDerivative, and Meta.Numerics.Functions.SolutionPair.SecondSolutionValue.
Referenced by FutureTest.FutureTest.AiryTest(), Test.AdvancedMathTest.AiryWronskian(), FutureTest.FutureTest.BesselFix(), FutureTest.FutureTest.BesselUAE(), and FutureTest.FutureTest.ComputeChiTest().
|
inlinestaticprivate |
References Meta.Numerics.Functions.AdvancedMath.Gamma().
|
inlinestatic |
Computes the dilogarathm function, also called Spence's function.
x | The argument, which must be less than or equal to unity. |
The dilogarithm can be defined by an infinite sum.
The function gets is name from the similiarity of this series to the expansion of ln(1-x), the difference being that the integer in the denominator is raised to the second power.
Li2(x) is real for -∞ < x ≤ 1; for values outside this range, use the complex version AdvancedComplexMath.DiLog.
Referenced by Test.AdvancedComplexMathTest.ComplexDiLogAgreement(), Test.AdvancedMathTest.DiLogBailyIdentity(), Test.AdvancedMathTest.DiLogDuplication(), Test.AdvancedMathTest.DiLogExpIntegral(), Test.AdvancedMathTest.DiLogLogIntegral(), and Test.AdvancedMathTest.DiLogSpecialCases().
|
inlinestaticprivate |
|
inlinestatic |
Computes the polylogarithm function.
n | The order, which must be non-negative. |
x | The argument, which must be less than or equal to one. |
The polylogarithm function becomes complex for arguments larger than one.
References Meta.Numerics.MoreMath.LogOnePlus(), and Meta.Numerics.MoreMath.Pow().
Referenced by Test.AdvancedMathTest.PolyLogDuplication(), Test.AdvancedMathTest.PolyLogIntegration(), Test.AdvancedMathTest.PolyLogOneHalf(), Test.AdvancedMathTest.PolyLogSpecialCases(), Test.AdvancedMathTest.TriLogBaileyLadders(), and Test.AdvancedMathTest.TriLogSpecialCases().
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.MoreMath.Pow().
|
inlinestaticprivate |
|
inlinestatic |
Computes the Clausen integral.
t | The argument. |
Referenced by Test.AdvancedMathTest.ClausenIntegral(), Test.AdvancedMathTest.ClausenSpecialValues(), Test.AdvancedMathTest.ClausenSymmetries(), and Test.AdvancedComplexMathTest.ComplexDiLogClausen().
|
inlinestaticprivate |
|
inlinestaticprivate |
References Meta.Numerics.MoreMath.Pow().
|
inlinestatic |
Compute the Riemann zeta function.
x | The argument. |
The Riemann ζ function can be defined as the sum of the x th inverse power of the natural numbers.
References Meta.Numerics.MoreMath.Cos(), and Meta.Numerics.Functions.AdvancedMath.Gamma().
Referenced by Meta.Numerics.Functions.AdvancedIntegerMath.BernoulliNumber(), Test.AdvancedComplexMathTest.ComplexRealRiemannZetaAgreement(), Meta.Numerics.Statistics.Distributions.LogisticDistribution.Cumulant(), Meta.Numerics.Statistics.Distributions.GumbelDistribution.Cumulant(), Test.MultiIntegrateTest.IsingIntegrals(), Meta.Numerics.Statistics.Distributions.KuiperDistribution.Moment(), Test.AdvancedMathTest.PolyGammaRiemann(), Meta.Numerics.Functions.AdvancedMath.PolyLog_LogSeries(), Test.AdvancedMathTest.PolyLogOneHalf(), Test.AdvancedMathTest.PolyLogSpecialCases(), Test.AdvancedMathTest.ReimannZetaPrimesTest(), Test.AdvancedMathTest.RiemannZetaReflectionTest(), Test.AdvancedMathTest.RiemannZetaSpecialCaseTest(), Test.AdvancedMathTest.TriLogBaileyLadders(), Test.AdvancedMathTest.TriLogSpecialCases(), and Test.MultiIntegrateTest.ZetaIntegrals().
|
inlinestatic |
Computes the Dirichlet eta function.
x | The argument, which must be non-negative. |
The Dirichlet eta function is the sum of the x th inverse power of the natural numbers, with alternating signs.
Because these are just the terms of the Riemann zeta function (RiemannZeta) with alternating signs, it is also called the alternating zeta function.
It can be related to the Riemann ζ function.
ArgumentOutOfRangeException | x is negative. |
Referenced by Test.AdvancedMathTest.DirichletEtaSpecialCaseTest(), Meta.Numerics.Statistics.Distributions.KolmogorovDistribution.Moment(), Meta.Numerics.Statistics.Distributions.LogisticDistribution.MomentAboutMean(), and Test.AdvancedMathTest.PolyLogSpecialCases().
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
|
staticprivate |
|
staticprivate |
|
static |
The golden ratio.
The golden ratio φ = 1.1618...
Referenced by Test.MultiExtremumTest.Ackley(), Test.AdvancedMathTest.DiLogSpecialCases(), Meta.Numerics.Functions.AdvancedIntegerMath.FibonacciNumber(), Meta.Numerics.Analysis.FunctionMath.FindMinimum(), FutureTest.FutureTest.FindMinimum(), Test.AdvancedMathTest.GoldenRatioTest(), Test.MultiExtremumTest.Schwefel(), and Test.AdvancedMathTest.TriLogSpecialCases().
const double Meta.Numerics.Functions.AdvancedMath.EulerGamma = 0.577215664901532860606512 |
The Euler constant.
The Euler constant γ = 0.5772...
Referenced by FutureTest.FutureTest.BesselY(), Test.AdvancedMathTest.BesselY0Integral(), FutureTest.FutureTest.BesselY_Series(), Test.AdvancedComplexMathTest.ComplexEinAgreement(), Meta.Numerics.Functions.AdvancedMath.Coulomb_Zero_Series(), Test.MultiIntegrateTest.DoubleIntegrals(), Meta.Numerics.Functions.AdvancedComplexMath.Ein(), Meta.Numerics.Functions.AdvancedIntegerMath.HarmonicNumber(), Test.AdvancedIntegerMathTest.HarmonicPsiAgreement(), and Test.AdvancedMathTest.PsiSpecialCases().
const double Meta.Numerics.Functions.AdvancedMath.Catalan = 0.915965594177219015054604 |
Catalan's constant.
Catalan's constant 0.9159...
Referenced by Test.AdvancedMathTest.CatalanIntegralTest(), Test.AdvancedMathTest.ClausenSpecialValues(), Test.AdvancedComplexMathTest.ComplexDiLogUnitCircle(), Test.MultiIntegrateTest.DoubleIntegrals(), Test.AdvancedMathTest.EllipticKCatalanIntegral(), and Test.AdvancedMathTest.TriGammaSpecialCases().
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |
|
staticprivate |
|
staticprivate |
|
private |
|
staticprivate |