Automated Generation of Numerical Evaluation Routines for Bivariate Functions via Tensor Product Series
In this thesis, we present a method for the automated generation of numerical evaluation routines for bivariate functions via tensor product series and develop a toolkit to assist with the generation of the approximations. The final approximations can be evaluated in user-defined precision or in hardware floating point precision by default. The evaluation routines can also be compiled into a C library (or a library in some other language) for more efficient evaluations. The toolkit can be used for various mathematical functions of two variables, such as Bessel functions or user-defined functions, at any given precision. The method of tensor product series expansion reduces the bivariate approximation problem to a sequence of univariate approximation problems. In order to control the degrees of the approximating functions so that evaluation will be accurate and efficient, we recursively divide the bivariate intervals into subintervals until both the number of terms in the tensor product series and the degrees of the univariate approximations are less than specified bounds. We then generate in each subinterval rational approximations using Chebyshev-Padé approximants or polynomial approximations using Chebyshev series according to the user's specification. Finally we show the experimental results for a variety of bivariate functions, which achieve a significant speedup over the original Maple functions for evaluation in hardware floating point precision. We also compare the results of choosing polynomial approximations versus rational approximations for the univariate subproblems.