SpecialFuncs::Airy Function

Overload List

#SignatureDescription
1double Airy(double A);Airy function of the first kind, real argument: $Ai(x)$.
2float Airy(float A);
3TCplx Airy(TCplx Z);Airy function of the first kind, complex argument: $Ai(z)$.
4TSCplx Airy(TSCplx Z);
5double Airy(double A, bool Derive, bool Scale, int &Error);Airy function of the first kind or its derivative, real argument, optional scaling: $Ai(x)orAi'(x)$.
6float Airy(float A, bool Derive, bool Scale, int &Error);
7TCplx Airy(TCplx Z, bool Derive, bool Scale, int &Error);Airy function of the first kind or its derivative, complex argument, optional scaling: $Ai(z)orAi'(z)$.
8TSCplx Airy(TSCplx Z, bool Derive, bool Scale, int &Error);

Overload 1: double Airy(double A);

Airy function of the first kind, real argument: Ai(x)Ai(x).

#NameTypeDescription
1AdoubleDefines real value where AI should be evaluated.

Returns: $Ai(x)$, the Airy function of the first kind, evaluated for the real argument A. The result is real.

Remarks:

Ai is the solution of the Airy equation w'' = z w that decays as z -> +inf:

Ai(x) = 1/piintegral _0^(inf) cos(t^3/3 + x t) dt

Domain. Any finite real A.
Behavior. Returns a finite real value across the whole real line; this overload performs
no scaling and no derivative. For very large arguments the underlying AMOS evaluation may raise an exception on complete loss of precision (see the SpecialFuncs::Airy overload with the Error out-parameter to obtain the diagnostic code instead).

Declared in Dew::Math::Units::SpecialFuncs · Dew.Math/Units.SpecialFuncs.h · Cross-compiler

Overload 2: float Airy(float A);

#NameTypeDescription
1Afloat
Declared in Dew::Math::Units::SpecialFuncs · Dew.Math/Units.SpecialFuncs.h · Cross-compiler

Overload 3: TCplx Airy(TCplx Z);

Airy function of the first kind, complex argument: Ai(z)Ai(z).

#NameTypeDescription
1ZTCplxDefines complex value where AI should be evaluated.

Returns: $Ai(z)$, the Airy function of the first kind, evaluated for the complex argument Z.

Remarks:

Ai is the recessive solution of the Airy equation w'' = z w, expressible through the modified Bessel function K_(1/3):

Ai(z) = 1/pisqrt(z/3) K_(1/3)(2/3 z^(3/2))

Domain. Any finite complex Z; the principal branch of z^(3/2) is used.
Behavior. Unscaled, non-derivative form. On argument reduction failure for very large
|z| the underlying routine raises an exception.

Declared in Dew::Math::Units::SpecialFuncs · Dew.Math/Units.SpecialFuncs.h · Cross-compiler

Overload 4: TSCplx Airy(TSCplx Z);

#NameTypeDescription
1ZTSCplx
Declared in Dew::Math::Units::SpecialFuncs · Dew.Math/Units.SpecialFuncs.h · Cross-compiler

Overload 5: double Airy(double A, bool Derive, bool Scale, int &Error);

Airy function of the first kind or its derivative, real argument, optional scaling: Ai(x)orAi(x)Ai(x)orAi'(x).

#NameTypeDescription
1AdoubleDefines real value where AI or its derivative should be evaluated.
2DeriveboolIf true, returns the derivative Ai' of the Airy function of the first kind.
3ScaleboolIf true, the result is additionally multiplied by e^(zeta), where zeta=2/3 x^(3/2).
4Errorint &Returns error code after the calculation. Return values are: * 0, Normal return - Computation completed. * 1, input error - no computation. * 2, overflow - no computation; dreal(zta)- too large with Scaling=false. * 3, zabs(z) large - computation completed. Losses of signifcance by argument reduction produce less than half of machine accuracy. * 4, zabs(z) too large - no computation; complete loss of accuracy by argument reduction. * 5, error - no computation; algorithm termination condition not met.

Returns: If is false, returns $Ai(x)$; if true, returns the derivative Ai'(x)=(d Ai)/dx. When is true the result is additionally multiplied by e^(zeta), with zeta=2/3 x^(3/2) (see below). The result is real.

Remarks:

Ai and Ai' solve w'' = x w. The scaling option returns e^(zeta) Ai(x) or e^(zeta) Ai'(x), zeta=2/3 x^(3/2), which keeps the magnitude bounded for large positive x.

Domain. Any finite real A.
Behavior. The Error out-parameter reports the AMOS diagnostic code and is 0 on a
normal return; this overload does NOT raise on the soft codes 2..5, it reports them through Error instead, so callers must inspect Error.

Declared in Dew::Math::Units::SpecialFuncs · Dew.Math/Units.SpecialFuncs.h · Cross-compiler

Overload 6: float Airy(float A, bool Derive, bool Scale, int &Error);

#NameTypeDescription
1Afloat
2Derivebool
3Scalebool
4Errorint &
Declared in Dew::Math::Units::SpecialFuncs · Dew.Math/Units.SpecialFuncs.h · Cross-compiler

Overload 7: TCplx Airy(TCplx Z, bool Derive, bool Scale, int &Error);

Airy function of the first kind or its derivative, complex argument, optional scaling: Ai(z)orAi(z)Ai(z)orAi'(z).

#NameTypeDescription
1ZTCplxFunction independant variable, complex value.
2DeriveboolIf true, function will return Airy derivative instead of the actual Airy (AI) function.
3ScaleboolIf true, result function or it's derivative is scaled by e^(zeta), where zeta=2/3 z^(3/2).
4Errorint &Returns error code after the calculation. Return values are: * 0, Normal return - Computation completed. * 1, input error - no computation. * 2, overflow - no computation; dreal(zta)- too large with Scaling=false. * 3, zabs(z) large - computation completed. Losses of signifcance by argument reduction produce less than half of machine accuracy. * 4, zabs(z) too large - no computation; complete loss of accuracy by argument reduction. * 5, error - no computation; algorithm termination condition not met.

Returns: If is false, returns $Ai(z)$; otherwise the derivative $Ai'(z)$.

Remarks:

If Derive is true, the derivative of the Airy function of the first kind is returned. If Scale is true, the result is additionally multiplied by the factor e^(zeta) with zeta=2/3 z^(3/2):

e^(zeta) Ai(z) or e^(zeta) Ai'(z), zeta=2/3 z^(3/2).

Domain. Any finite complex Z; principal branch of z^(3/2).
Behavior. The Error out-parameter is 0 on normal return and carries the AMOS
diagnostic code otherwise (this overload reports codes through Error rather than raising).

See Also: SpecialFuncs::Biry, SpecialFuncs::Besh, SpecialFuncs::Besj, SpecialFuncs::Besk, SpecialFuncs::Besy, SpecialFuncs::EllipComplete, SpecialFuncs::EllipJacoby
Declared in Dew::Math::Units::SpecialFuncs · Dew.Math/Units.SpecialFuncs.h · Cross-compiler

Overload 8: TSCplx Airy(TSCplx Z, bool Derive, bool Scale, int &Error);

#NameTypeDescription
1ZTSCplx
2Derivebool
3Scalebool
4Errorint &
Declared in Dew::Math::Units::SpecialFuncs · Dew.Math/Units.SpecialFuncs.h · Cross-compiler