# Special Class

Contains methods for calculating the values of hypergeometric functions.

## Definition

Namespace: Extreme.Mathematics
Assembly: Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.23
C#
``public static class Special``
Inheritance
Object  →  Special

## Remarks

Hypergeometric functions are a very general class of functions that can be used to represent many special functions as well as integrals and solutions of differential equations.

This class contains static methods for evaluating the hypergeometric functions.

## Methods

 AiryAi Evaluates the Airy function Ai(x). AiryAiPrime Evaluates the derivative of the Airy function Ai(x). AiryAiZero Returns a zero of the Airy function Ai. AiryBi Evaluates the Airy function Bi(x). AiryBiPrime Evaluates the derivative of the Airy function Bi(x). AiryBiZero Returns a zero of the Airy function Bi. BernoulliB Returns the specified Bernoulli number. BesselI Evaluates the modified Bessel function of the first kind of real order. BesselI0 Evaluates the modified Bessel function of the first kind of order 0. BesselI0Scaled Evaluates the modified Bessel function of the first kind of order 0 scaled by Exp(-x). BesselI1 Evaluates the modified Bessel function of the first kind of order 1. BesselI1Scaled Evaluates the modified Bessel function of the first kind of order 1 scaled by Exp(-|x|). BesselIScaled Evaluates the modified Bessel function of the first kind of real order scaled by a factor exp(-x). BesselJ(Double) Returns the Bessel function of the first kind of the specified real order. BesselJ(Int32) Returns the Bessel function of the first kind of the specified integer order. BesselJ(Double, Double) Evaluates the Bessel function of the first kind of real order. BesselJ(Int32, Double) Evaluates the Bessel function of the first kind of integer order. BesselJ0 Evaluates the regular Bessel function of the first kind of order 0. BesselJ1 Evaluates the regular Bessel function of the first kind of order 1. BesselJZero Returns a zero of the Bessel function of the first kind. BesselK(Double, Double) Evaluates the modified Bessel function of the second kind. BesselK(Int32, Double) Evaluates the modified Bessel function of the second kind of integer order. BesselK0 Evaluates the modified Bessel function of the second kind of order 0. BesselK0Scaled Evaluates the modified Bessel function of the second kind of order 0 scaled by a factor exp(x). BesselK1 Evaluates the modified Bessel function of the second kind of order 1. BesselK1Scaled Evaluates the modified Bessel function of the second kind of order 1 scaled by a factor of exp(x). BesselKScaled Evaluates the modified Bessel function of the second kind of real order scaled by a factor exp(-x). BesselY(Double) Returns the Bessel function of the second kind of the specified real order. BesselY(Int32) Returns the Bessel function of the second kind of the specified integer order. BesselY(Double, Double) Evaluates the Bessel function of the second kind of real order. BesselY(Int32, Double) Evaluates the Bessel function of the second kind of integer order. BesselY0 Evaluates the regular Bessel function of the second kind of order 0. BesselY1 Evaluates the regular Bessel function of the second kind of order 1. BesselYZero Returns a zero of the Bessel function of the second kind. Beta Evaluates the Beta function. BinomialCoefficients Enumerates over the binomial coefficients of a specified degree. ChebyshevT(Int32) Returns a function that evaluates the Chebyshev polynomial of the first kind of the specified degree. ChebyshevT(Int32, Double) Evaluates the Chebyshev polynomial of the first kind of the specified degree. ChebyshevTSequence(Int32, Double) Evaluates a sequence of Chebyshev polynomials of the first kind of increasing degree. ChebyshevTSequence(Int32, Double, Vector) Evaluates a sequence of Chebyshev polynomials of the first kind of increasing degree and returns the result in the specified vector. ChebyshevTSequence(Int32, Int32, Double) Evaluates a sequence of Chebyshev polynomials of the first kind of increasing degree starting at the specified degree. ChebyshevTSequence(Int32, Int32, Double, Vector) Evaluates a sequence of Chebyshev polynomials of the first kind of increasing degree starting at the specified degree and returns the result in the specified vector. ChebyshevTSeries(Vector, Double) Evaluates a series of Chebyshev polynomials of the first kind. ChebyshevTSeries(Vector, Double, Int32) Evaluates a series of Chebyshev polynomials of the first kind up to the specified degree. ChebyshevU Evaluates the Chebyshev polynomial of the second kind of the specified degree. ChebyshevUSequence(Int32, Double) Evaluates a sequence of Chebyshev polynomials of the second kind of increasing degree. ChebyshevUSequence(Int32, Double, Vector) Evaluates a sequence of Chebyshev polynomials of the second kind of increasing degree and returns the result in the specified vector. ChebyshevUSequence(Int32, Int32, Double) Evaluates a sequence of Chebyshev polynomials of the second kind of increasing degree. ChebyshevUSequence(Int32, Int32, Double, Vector) Evaluates a sequence of Chebyshev polynomials of the second kind of increasing degree starting at the specified degree and returns the result in the specified vector. ChebyshevUSeries(Vector, Double) Evaluates a series of Chebyshev polynomials of the second kind. ChebyshevUSeries(Vector, Double, Int32) Evaluates a series of Chebyshev polynomials of the second kind up to the specified degree. Combinations Gets the number of ways of picking k unordered outcomes from n possibilities. CosineIntegral Evaluates the cosine integral function. Dawson(Complex) Returns the value of Dawson's integral. Dawson(Double) Returns the value of Dawson's integral. Digamma(Double) Evaluates the Digamma function. Digamma(Int32) Evaluates the Digamma function for an integer argument. E1 Evaluates the exponential integral function E1(x). EllipticE(Complex) Returns the value of the complete elliptic integral of the second kind. EllipticE(Double) Returns the value of the complete elliptic integral of the second kind. EllipticE(Complex, Complex) Returns the value of the incomplete elliptic integral of the second kind. EllipticE(Double, Double) Returns the value of the incomplete elliptic integral of the second kind. EllipticF(Complex, Complex) Returns the value of the incomplete elliptic integral of the first kind. EllipticF(Double, Double) Returns the value of the incomplete elliptic integral of the first kind. EllipticK(Complex) Returns the value of the complete elliptic integral of the first kind. EllipticK(Double) Returns the value of the complete elliptic integral of the first kind. EllipticPi(Complex, Complex) Returns the value of the complete elliptic integral of the third kind. EllipticPi(Double, Double) Returns the value of the complete elliptic integral of the third kind. EllipticPi(Complex, Complex, Complex) Returns the value of the incomplete elliptic integral of the third kind. EllipticPi(Double, Double, Double) Returns the value of the incomplete elliptic integral of the third kind. Erf(Complex) Evaluates the error function. Erf(Double) Evaluates the error function. Erf(Double, Double) Evaluates the two-argument error function. Erfc(Complex) Evaluates the complementary error function. Erfc(Double) Evaluates the complementary error function. Erfcx(Complex) Evaluates the scaled complementary error function. Erfcx(Double) Evaluates the scaled complementary error function. Erfi(Complex) Evaluates the imaginary error function. Erfi(Double) Evaluates the imaginary error function. ExponentialIntegral Evaluates the exponential integral function. Factorial Returns the factorial of a positive integer. Faddeeva Evaluates the Faddeeva function for a complex argument. Fibonacci Returns the nth Fibonacci number. Fresnel Returns the value of the complex fresnel integral for the specified number. FresnelC Returns the value of the Fresnel cosine integral for the specified number. FresnelS Returns the value of the Fresnel sine integral for the specified number. Gamma(Complex) Returns the value of the Gamma function for the specified number. Gamma(Double) Returns the value of the Gamma function for the specified number. GegenbauerC Evaluates the Gegenbauer polynomial of the specified degree. GegenbauerCSequence(Int32, Double, Double) Evaluates a sequence of Gegenbauer polynomials of increasing degree. GegenbauerCSequence(Int32, Double, Double, Vector) Evaluates a sequence of Gegenbauer polynomials of increasing degree starting at the specified degree and returns the result in the specified vector. GegenbauerCSequence(Int32, Int32, Double, Double) Evaluates a sequence of Gegenbauer polynomials of increasing degree starting at the specified degree. GegenbauerCSequence(Int32, Int32, Double, Double, Vector) Evaluates a sequence of Gegenbauer polynomials of increasing degree starting at the specified degree and returns the result in the specified vector. GegenbauerCSeries(Vector, Double, Double) Evaluates a series of Gegenbauer polynomials. GegenbauerCSeries(Vector, Double, Double, Int32) Evaluates a series of Gegenbauer polynomials up to the specified degree. GetSymbolicDerivative Returns a lambda expression that represents the derivative of a method with respect to the specified argument. HarmonicNumber Returns the nth Harmonic Number. HermiteH Evaluates the Hermite polynomial of the specified degree. HermiteHSequence(Int32, Double) Evaluates a sequence of Hermite polynomials of increasing degree. HermiteHSequence(Int32, Double, Vector) Evaluates a sequence of Hermite polynomials of increasing degree and returns the result in the specified vector. HermiteHSequence(Int32, Int32, Double) Evaluates a sequence of Hermite polynomials of increasing degree starting at the specified degree. HermiteHSequence(Int32, Int32, Double, Vector) Evaluates a sequence of Hermite polynomials of increasing degree starting at the specified degree and returns the result in the specified vector. HermiteHSeries(Vector, Double) Evaluates a series of Hermite polynomials. HermiteHSeries(Vector, Double, Int32) Evaluates a series of Hermite polynomials up to the specified degree. Hypergeometric0F1 Returns the value of the confluent hypergeometric limit function 0F1. Hypergeometric1F1 Returns the value of the confluent hypergeometric function 1F1. Hypergeometric2F1 Returns the value of Gauss' hypergeometric function 2F1. HypergeometricU(Double, Double, Double) Returns the value of the confluent hypergeometric function of the second kind U. HypergeometricU(Int32, Int32, Double) Returns the value of the confluent hypergeometric function of the second kind U for integer values of the parameters. IncompleteBeta(Double, Double) Returns a function that Evaluates the Incomplete Beta function for fixed shape parameters. IncompleteBeta(Double, Double, Double) Evaluates the Incomplete Beta function. IncompleteGamma(Double) Returns a function that evaluates the Incomplete Gamma function. IncompleteGamma(Double, Double) Evaluates the Incomplete Gamma function. IncompleteGamma(Double, Double, Double) Evaluates the incomplete Gamma function between two arguments. InverseErf Evaluates the inverse of the error function. InverseErfc Evaluates the inverse of the complementary error function. InverseRegularizedBeta Evaluates the iinverse of the Regularized Beta function. InverseRegularizedGammaP Returns the inverse of the regularized Gamma function P(a, x). InverseRegularizedGammaQ Returns the inverse of the regularized Gamma function Q(a, x). Jacobi Evaluates the Jacobi elliptic functions sn, cn, and dn. JacobiCD Evaluates the Jacobi elliptic functions cd. JacobiCN Evaluates the Jacobi elliptic functions cn. JacobiCS Evaluates the Jacobi elliptic functions cs. JacobiDC Evaluates the Jacobi elliptic functions dc. JacobiDN Evaluates the Jacobi elliptic functions dn. JacobiDS Evaluates the Jacobi elliptic functions ds. JacobiNC Evaluates the Jacobi elliptic functions nc. JacobiND Evaluates the Jacobi elliptic functions nd. JacobiNS Evaluates the Jacobi elliptic functions ns. JacobiSC Evaluates the Jacobi elliptic functions sc. JacobiSD Evaluates the Jacobi elliptic functions sd. JacobiSN Evaluates the Jacobi elliptic functions sn. LaguerreL(Int32, Double) Evaluates the Laguerre polynomial of the specified degree. LaguerreL(Int32, Double, Double) Evaluates the generalized Laguerre polynomial of the specified degree. LaguerreLSequence(Int32, Double) Evaluates a sequence of Laguerre polynomials of increasing degree. LaguerreLSequence(Int32, Double, Vector) Evaluates a sequence of Laguerre polynomials of increasing degree and returns the result in the specified vector. LaguerreLSequence(Int32, Double, Double) Evaluates a sequence of generalized Laguerre polynomials of increasing degree LaguerreLSequence(Int32, Int32, Double) Evaluates a sequence of Laguerre polynomials of increasing degree starting at the specified degree. LaguerreLSequence(Int32, Double, Double, Vector) Evaluates a sequence of generalized Laguerre polynomials of increasing degree and returns the result in the specified vector. LaguerreLSequence(Int32, Int32, Double, Vector) Evaluates a sequence of Laguerre polynomials of increasing degree starting at the specified degree and returns the result in the specified vector. LaguerreLSequence(Int32, Int32, Double, Double) Evaluates a sequence of generalized Laguerre polynomials of increasing degree starting at the specified degree. LaguerreLSequence(Int32, Int32, Double, Double, Vector) Evaluates a sequence of generalized Laguerre polynomials of increasing degree starting at the specified degree and returns the result in the specified vector. LaguerreLSeries(Vector, Double) Evaluates a series of Laguerre polynomials. LaguerreLSeries(Vector, Double, Double) Evaluates a series of generalized Laguerre polynomials. LaguerreLSeries(Vector, Double, Int32) Evaluates a series of Laguerre polynomials up to the specified degree. LaguerreLSeries(Vector, Double, Double, Int32) Evaluates a series of generalized Laguerre polynomials up to the specified degree. LegendreP Evaluates the Legendre polynomial of the specified degree. LegendrePSequence(Int32, Double) Evaluates a sequence of Legendre polynomials of increasing degree starting at the specified degree. LegendrePSequence(Int32, Double, Vector) Evaluates a sequence of Legendre polynomials of increasing degree starting at the specified degree and returns the result in the specified vector. LegendrePSequence(Int32, Int32, Double) Evaluates a sequence of Legendre polynomials of increasing degree starting at the specified degree. LegendrePSequence(Int32, Int32, Double, Vector) Evaluates a sequence of Legendre polynomials of increasing degree starting at the specified degree and returns the result in the specified vector. LegendrePSeries(Vector, Double) Evaluates a series of Legendre polynomials. LegendrePSeries(Vector, Double, Int32) Evaluates a series of Legendre polynomials up to the specified degree. LogarithmicIntegral Evaluates the exponential integral function. LogBeta Evaluates the logarithm of the Beta function. LogCombinations Gets the natural logarithm of Combinations(Int32, Int32). LogFactorial Returns the natural logarithm of the factorial of a positive integer. LogGamma(Complex) Returns the natural logarithm of the Gamma function for the specified complex number number. LogGamma(Double) Returns the natural logarithm of the Gamma function for the specified number. LogGamma(Double, Int32) Evaluates the natural logarithm of the Gamma function and returns the sign as an out parameter. MultinomialCoefficient Returns the number of ways to partition a set into subsets of the specified size. Pochhammer Returns the Pochhammer symbol. PolyGamma Returns the polygamma function of the specified order. RegularizedBeta(Double, Double) Returns a function that evaluates the Regularized Beta function for fixed shape parameters. RegularizedBeta(Double, Double, Double) Evaluates the Regularized Beta function. RegularizedGammaP Evaluates the normalized incomplete Gamma function P(a,x). RegularizedGammaQ Evaluates the normalized incomplete Gamma function Q(a,x). SineIntegral Evaluates the sine integral function. SphericalBesselJ Evaluates the spherical Bessel function of the first kind. SphericalBesselY Evaluates the spherical Bessel function of the second kind. StruveH0 Evaluates the Struve function of order 0. StruveH1 Evaluates the Struve function of order 1. StruveL0 Evaluates the modified Struve function of order 0. StruveL1 Evaluates the modified Struve function of order 1. TaylorCoefficient Evaluates the Taylor coefficient of the specified degree. Variations Gets the number of ways of picking k ordered outcomes from n possibilities. Voigt Evaluates the Voigt profile function. ZernikeNormalization Evaluates the standard normalization constant for Zernike polynomials of the specified degree. ZernikeR Evaluates the radial Zernike polynomial of the specified degree. ZernikeRPartialSequence Evaluates a sequence of Zernike polynomials of increasing radial degree and azimuthal frequency. ZernikeRSequence(Func, Int32, Double) Evaluates a sequence of Zernike polynomials. ZernikeRSequence(Func, Int32, Double, Vector) Evaluates a sequence of Zernike polynomials of increasing degree starting at the specified degree and returns the result in the specified vector. ZernikeZ Evaluates the Zernike polynomial of the specified radial degree and azimuthal frequency. ZernikeZExpansion(Func, Vector, Boolean, Double, Double) Evaluates an expansion of Zernike polynomials. ZernikeZExpansion(Func, Vector, Boolean, Double, Double, Int32) Evaluates an expansion of Zernike polynomials up to the specified radial degree. ZernikeZPartialSequence(Func, Int32, Boolean, Double, Double) Evaluates a sequence of Zernike polynomials of increasing radial degree and azimuthal frequency. ZernikeZPartialSequence(Func, Int32, Boolean, Double, Double, Vector) Evaluates a sequence of Zernike polynomials of increasing radial degree of the specified length and returns the result in the specified vector. ZernikeZSequence(Func, Int32, Boolean, Double, Double) Evaluates a sequence of Zernike polynomials of increasing radial degree and azimuthal frequency. ZernikeZSequence(Func, Int32, Boolean, Double, Double, Vector) Evaluates a sequence of Zernike polynomials and returns the result in the specified vector. Zeta Returns the Riemann zeta function.

## Fields

 MaxGammaArgument A double value indicating the largest argument for the Gamma(Double) function that will not result in an overflow. ZernikeAnsiIndex Gets the linearized index of a Zernike polynomial according to the ANSI scheme. ZernikeNollIndex Gets the linearized index of a Zernike polynomial according to the Noll scheme. ZernikeWyantIndex Gets the linearized index of a Zernike polynomial according to the Wyant scheme.