Computation of special functions: Application to Airy functions

Bruce Fabijonas
Mathematical and Computational Sciences Division Building 820, Room 365
National Institute of Standards and Technology Gaithersburg, MD 20899
 

Special functions are solutions to ideal differential equations that model physical processes. They are used by scientists and engineers as starting points for more complicated models. Until recently, these special functions were painstakingly calculated by hand and tabulated in handbooks. Scientists were forced to refer to such tables and determine the function value using interpolation techniques. Modern computer technology allows us to calculate special functions to a high degree of accuracy in a relatively short period of time. Though there appears to be many such computer codes written today, there exists a large number of special functions for which no codes exist, and more for which the codes are outdated.

Technology today allows for high performance computation on parallel and vector machines. The programs that do exist for special functions presently do not take advantage of these new architectures. We present a Fortran90 code that will compute the solutions to Airy's equation in the complex plane to a high degree of precision either by evaluating asymptotic expansions or by integrating the differential equation. This code exploits many of the new dynamic features of Fortran90: it is portable between machines and compilers; it offers one code to be utilized for either single or double precision, and for use with both real and complex variables; and it dynamically allocates arrays in such a way as to streamline the subroutines for vector machines. Furthermore, our package can be adapted to multiple precision with relative ease and computes the zeros of the Airy functions by either referring to tabulated values or by evaluating well known (thought not easily derived) asymptotic expansions.