ningshuxia
2022-12-12 4f1314cb69a47c22e52f1efdc4b4be6c1d55143d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
using Complex = System.Numerics.Complex;
 
namespace IStation.Numerics
{
    /// <summary>
    /// This partial implementation of the SpecialFunctions class contains all methods related to the Airy functions.
    /// </summary>
    public static partial class SpecialFunctions
    {
        /// <summary>
        /// Returns the Airy function Ai.
        /// <para>AiryAi(z) is a solution to the Airy equation, y'' - y * z = 0.</para>
        /// </summary>
        /// <param name="z">The value to compute the Airy function of.</param>
        /// <returns>The Airy function Ai.</returns>
        public static Complex AiryAi(Complex z)
        {
            return Amos.Cairy(z);
        }
 
        /// <summary>
        /// Returns the exponentially scaled Airy function Ai.
        /// <para>ScaledAiryAi(z) is given by Exp(zta) * AiryAi(z), where zta = (2/3) * z * Sqrt(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the Airy function of.</param>
        /// <returns>The exponentially scaled Airy function Ai.</returns>
        public static Complex AiryAiScaled(Complex z)
        {
            return Amos.ScaledCairy(z);
        }
 
        /// <summary>
        /// Returns the Airy function Ai.
        /// <para>AiryAi(z) is a solution to the Airy equation, y'' - y * z = 0.</para>
        /// </summary>
        /// <param name="z">The value to compute the Airy function of.</param>
        /// <returns>The Airy function Ai.</returns>
        public static double AiryAi(double z)
        {
            return AiryAi(new Complex(z, 0)).Real;
        }
 
        /// <summary>
        /// Returns the exponentially scaled Airy function Ai.
        /// <para>ScaledAiryAi(z) is given by Exp(zta) * AiryAi(z), where zta = (2/3) * z * Sqrt(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the Airy function of.</param>
        /// <returns>The exponentially scaled Airy function Ai.</returns>
        public static double AiryAiScaled(double z)
        {
            return Amos.ScaledCairy(z);
        }
 
        /// <summary>
        /// Returns the derivative of the Airy function Ai.
        /// <para>AiryAiPrime(z) is defined as d/dz AiryAi(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the derivative of the Airy function of.</param>
        /// <returns>The derivative of the Airy function Ai.</returns>
        public static Complex AiryAiPrime(Complex z)
        {
            return Amos.CairyPrime(z);
        }
 
        /// <summary>
        /// Returns the exponentially scaled derivative of Airy function Ai
        /// <para>ScaledAiryAiPrime(z) is given by Exp(zta) * AiryAiPrime(z), where zta = (2/3) * z * Sqrt(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the derivative of the Airy function of.</param>
        /// <returns>The exponentially scaled derivative of Airy function Ai.</returns>
        public static Complex AiryAiPrimeScaled(Complex z)
        {
            return Amos.ScaledCairyPrime(z);
        }
 
        /// <summary>
        /// Returns the derivative of the Airy function Ai.
        /// <para>AiryAiPrime(z) is defined as d/dz AiryAi(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the derivative of the Airy function of.</param>
        /// <returns>The derivative of the Airy function Ai.</returns>
        public static double AiryAiPrime(double z)
        {
            return AiryAiPrime(new Complex(z, 0)).Real;
        }
 
        /// <summary>
        /// Returns the exponentially scaled derivative of the Airy function Ai.
        /// <para>ScaledAiryAiPrime(z) is given by Exp(zta) * AiryAiPrime(z), where zta = (2/3) * z * Sqrt(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the derivative of the Airy function of.</param>
        /// <returns>The exponentially scaled derivative of the Airy function Ai.</returns>
        public static double AiryAiPrimeScaled(double z)
        {
            return Amos.ScaledCairyPrime(z);
        }
 
        /// <summary>
        /// Returns the Airy function Bi.
        /// <para>AiryBi(z) is a solution to the Airy equation, y'' - y * z = 0.</para>
        /// </summary>
        /// <param name="z">The value to compute the Airy function of.</param>
        /// <returns>The Airy function Bi.</returns>
        public static Complex AiryBi(Complex z)
        {
            return Amos.Cbiry(z);
        }
 
        /// <summary>
        /// Returns the exponentially scaled Airy function Bi.
        /// <para>ScaledAiryBi(z) is given by Exp(-Abs(zta.Real)) * AiryBi(z) where zta = (2 / 3) * z * Sqrt(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the Airy function of.</param>
        /// <returns>The exponentially scaled Airy function Bi(z).</returns>
        public static Complex AiryBiScaled(Complex z)
        {
            return Amos.ScaledCbiry(z);
        }
 
        /// <summary>
        /// Returns the Airy function Bi.
        /// <para>AiryBi(z) is a solution to the Airy equation, y'' - y * z = 0.</para>
        /// </summary>
        /// <param name="z">The value to compute the Airy function of.</param>
        /// <returns>The Airy function Bi.</returns>
        public static double AiryBi(double z)
        {
            return AiryBi(new Complex(z, 0)).Real;
        }
 
        /// <summary>
        /// Returns the exponentially scaled Airy function Bi.
        /// <para>ScaledAiryBi(z) is given by Exp(-Abs(zta.Real)) * AiryBi(z) where zta = (2 / 3) * z * Sqrt(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the Airy function of.</param>
        /// <returns>The exponentially scaled Airy function Bi.</returns>
        public static double AiryBiScaled(double z)
        {
            return AiryBiScaled(new Complex(z, 0)).Real;
        }
 
        /// <summary>
        /// Returns the derivative of the Airy function Bi.
        /// <para>AiryBiPrime(z) is defined as d/dz AiryBi(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the derivative of the Airy function of.</param>
        /// <returns>The derivative of the Airy function Bi.</returns>
        public static Complex AiryBiPrime(Complex z)
        {
            return Amos.CbiryPrime(z);
        }
 
        /// <summary>
        /// Returns the exponentially scaled derivative of the Airy function Bi.
        /// <para>ScaledAiryBiPrime(z) is given by Exp(-Abs(zta.Real)) * AiryBiPrime(z) where zta = (2 / 3) * z * Sqrt(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the derivative of the Airy function of.</param>
        /// <returns>The exponentially scaled derivative of the Airy function Bi.</returns>
        public static Complex AiryBiPrimeScaled(Complex z)
        {
            return Amos.ScaledCbiryPrime(z);
        }
 
        /// <summary>
        /// Returns the derivative of the Airy function Bi.
        /// <para>AiryBiPrime(z) is defined as d/dz AiryBi(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the derivative of the Airy function of.</param>
        /// <returns>The derivative of the Airy function Bi.</returns>
        public static double AiryBiPrime(double z)
        {
            return AiryBiPrime(new Complex(z, 0)).Real;
        }
 
        /// <summary>
        /// Returns the exponentially scaled derivative of the Airy function Bi.
        /// <para>ScaledAiryBiPrime(z) is given by Exp(-Abs(zta.Real)) * AiryBiPrime(z) where zta = (2 / 3) * z * Sqrt(z).</para>
        /// </summary>
        /// <param name="z">The value to compute the derivative of the Airy function of.</param>
        /// <returns>The exponentially scaled derivative of the Airy function Bi.</returns>
        public static double AiryBiPrimeScaled(double z)
        {
            return AiryBiPrimeScaled(new Complex(z, 0)).Real;
        }
    }
}