Overload List
| # | Signature | Description |
|---|---|---|
| 1 | double Airy(double A); | Airy function of the first kind, real argument: $Ai(x)$. |
| 2 | float Airy(float A); | |
| 3 | TCplx Airy(TCplx Z); | Airy function of the first kind, complex argument: $Ai(z)$. |
| 4 | TSCplx Airy(TSCplx Z); | |
| 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)$. |
| 6 | float Airy(float A, bool Derive, bool Scale, int &Error); | |
| 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)$. |
| 8 | TSCplx Airy(TSCplx Z, bool Derive, bool Scale, int &Error); |
Overload 1: double Airy(double A);
Airy function of the first kind, real argument: .
| # | Name | Type | Description |
|---|---|---|---|
| 1 | A | double | Defines 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.
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).
Overload 2: float Airy(float A);
| # | Name | Type | Description |
|---|---|---|---|
| 1 | A | float |
Overload 3: TCplx Airy(TCplx Z);
Airy function of the first kind, complex argument: .
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Z | TCplx | Defines complex value where AI should be evaluated. |
Returns: $Ai(z)$, the Airy function of the first kind, evaluated for the complex argument Z.
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.
Overload 4: TSCplx Airy(TSCplx Z);
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Z | TSCplx |
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: .
| # | Name | Type | Description |
|---|---|---|---|
| 1 | A | double | Defines real value where AI or its derivative should be evaluated. |
| 2 | Derive | bool | If true, returns the derivative Ai' of the Airy function of the first kind. |
| 3 | Scale | bool | If true, the result is additionally multiplied by e^(zeta), where zeta=2/3 x^(3/2). |
| 4 | Error | int & | 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.
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.
Overload 6: float Airy(float A, bool Derive, bool Scale, int &Error);
| # | Name | Type | Description |
|---|---|---|---|
| 1 | A | float | |
| 2 | Derive | bool | |
| 3 | Scale | bool | |
| 4 | Error | int & |
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: .
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Z | TCplx | Function independant variable, complex value. |
| 2 | Derive | bool | If true, function will return Airy derivative instead of the actual Airy (AI) function. |
| 3 | Scale | bool | If true, result function or it's derivative is scaled by e^(zeta), where zeta=2/3 z^(3/2). |
| 4 | Error | int & | 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)$.
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).
Overload 8: TSCplx Airy(TSCplx Z, bool Derive, bool Scale, int &Error);
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Z | TSCplx | |
| 2 | Derive | bool | |
| 3 | Scale | bool | |
| 4 | Error | int & |