using Complex = System.Numerics.Complex; namespace IStation.Numerics { /// /// This partial implementation of the SpecialFunctions class contains all methods related to the Airy functions. /// public static partial class SpecialFunctions { /// /// Returns the Airy function Ai. /// AiryAi(z) is a solution to the Airy equation, y'' - y * z = 0. /// /// The value to compute the Airy function of. /// The Airy function Ai. public static Complex AiryAi(Complex z) { return Amos.Cairy(z); } /// /// Returns the exponentially scaled Airy function Ai. /// ScaledAiryAi(z) is given by Exp(zta) * AiryAi(z), where zta = (2/3) * z * Sqrt(z). /// /// The value to compute the Airy function of. /// The exponentially scaled Airy function Ai. public static Complex AiryAiScaled(Complex z) { return Amos.ScaledCairy(z); } /// /// Returns the Airy function Ai. /// AiryAi(z) is a solution to the Airy equation, y'' - y * z = 0. /// /// The value to compute the Airy function of. /// The Airy function Ai. public static double AiryAi(double z) { return AiryAi(new Complex(z, 0)).Real; } /// /// Returns the exponentially scaled Airy function Ai. /// ScaledAiryAi(z) is given by Exp(zta) * AiryAi(z), where zta = (2/3) * z * Sqrt(z). /// /// The value to compute the Airy function of. /// The exponentially scaled Airy function Ai. public static double AiryAiScaled(double z) { return Amos.ScaledCairy(z); } /// /// Returns the derivative of the Airy function Ai. /// AiryAiPrime(z) is defined as d/dz AiryAi(z). /// /// The value to compute the derivative of the Airy function of. /// The derivative of the Airy function Ai. public static Complex AiryAiPrime(Complex z) { return Amos.CairyPrime(z); } /// /// Returns the exponentially scaled derivative of Airy function Ai /// ScaledAiryAiPrime(z) is given by Exp(zta) * AiryAiPrime(z), where zta = (2/3) * z * Sqrt(z). /// /// The value to compute the derivative of the Airy function of. /// The exponentially scaled derivative of Airy function Ai. public static Complex AiryAiPrimeScaled(Complex z) { return Amos.ScaledCairyPrime(z); } /// /// Returns the derivative of the Airy function Ai. /// AiryAiPrime(z) is defined as d/dz AiryAi(z). /// /// The value to compute the derivative of the Airy function of. /// The derivative of the Airy function Ai. public static double AiryAiPrime(double z) { return AiryAiPrime(new Complex(z, 0)).Real; } /// /// Returns the exponentially scaled derivative of the Airy function Ai. /// ScaledAiryAiPrime(z) is given by Exp(zta) * AiryAiPrime(z), where zta = (2/3) * z * Sqrt(z). /// /// The value to compute the derivative of the Airy function of. /// The exponentially scaled derivative of the Airy function Ai. public static double AiryAiPrimeScaled(double z) { return Amos.ScaledCairyPrime(z); } /// /// Returns the Airy function Bi. /// AiryBi(z) is a solution to the Airy equation, y'' - y * z = 0. /// /// The value to compute the Airy function of. /// The Airy function Bi. public static Complex AiryBi(Complex z) { return Amos.Cbiry(z); } /// /// Returns the exponentially scaled Airy function Bi. /// ScaledAiryBi(z) is given by Exp(-Abs(zta.Real)) * AiryBi(z) where zta = (2 / 3) * z * Sqrt(z). /// /// The value to compute the Airy function of. /// The exponentially scaled Airy function Bi(z). public static Complex AiryBiScaled(Complex z) { return Amos.ScaledCbiry(z); } /// /// Returns the Airy function Bi. /// AiryBi(z) is a solution to the Airy equation, y'' - y * z = 0. /// /// The value to compute the Airy function of. /// The Airy function Bi. public static double AiryBi(double z) { return AiryBi(new Complex(z, 0)).Real; } /// /// Returns the exponentially scaled Airy function Bi. /// ScaledAiryBi(z) is given by Exp(-Abs(zta.Real)) * AiryBi(z) where zta = (2 / 3) * z * Sqrt(z). /// /// The value to compute the Airy function of. /// The exponentially scaled Airy function Bi. public static double AiryBiScaled(double z) { return AiryBiScaled(new Complex(z, 0)).Real; } /// /// Returns the derivative of the Airy function Bi. /// AiryBiPrime(z) is defined as d/dz AiryBi(z). /// /// The value to compute the derivative of the Airy function of. /// The derivative of the Airy function Bi. public static Complex AiryBiPrime(Complex z) { return Amos.CbiryPrime(z); } /// /// Returns the exponentially scaled derivative of the Airy function Bi. /// ScaledAiryBiPrime(z) is given by Exp(-Abs(zta.Real)) * AiryBiPrime(z) where zta = (2 / 3) * z * Sqrt(z). /// /// The value to compute the derivative of the Airy function of. /// The exponentially scaled derivative of the Airy function Bi. public static Complex AiryBiPrimeScaled(Complex z) { return Amos.ScaledCbiryPrime(z); } /// /// Returns the derivative of the Airy function Bi. /// AiryBiPrime(z) is defined as d/dz AiryBi(z). /// /// The value to compute the derivative of the Airy function of. /// The derivative of the Airy function Bi. public static double AiryBiPrime(double z) { return AiryBiPrime(new Complex(z, 0)).Real; } /// /// Returns the exponentially scaled derivative of the Airy function Bi. /// ScaledAiryBiPrime(z) is given by Exp(-Abs(zta.Real)) * AiryBiPrime(z) where zta = (2 / 3) * z * Sqrt(z). /// /// The value to compute the derivative of the Airy function of. /// The exponentially scaled derivative of the Airy function Bi. public static double AiryBiPrimeScaled(double z) { return AiryBiPrimeScaled(new Complex(z, 0)).Real; } } }