Programs in Physics & Physical Chemistry
|[Licence| Download | New Version Template] aeae_v1_0.tar.gz(60 Kbytes)|
|Manuscript Title: Fast computation of the Gauss hypergeometric function with all its parameters complex with application to the Pöschl-Teller-Ginocchio potential wave functions|
|Authors: N. Michel, M.V. Stoitsov|
|Program title: hyp_2F1, PTG_wf|
|Catalogue identifier: AEAE_v1_0|
Distribution format: tar.gz
|Journal reference: Comput. Phys. Commun. 178(2008)535|
|Programming language: C++, Fortran 90.|
|Computer: Intel i686.|
|Operating system: Linux, Windows.|
|Word size: 64 bits|
|Keywords: hypergeometric, complex analysis, special functions, analytical potentials.|
|PACS: 02.30.Fn, 02.30.Gp, 02.60.-x, 02.60.Gf.|
Nature of problem:
The Gauss hypergeometric function 2F1, with all its parameters complex, is uniquely calculated in the frame of transformation theory with power series summations, thus providing a very fast algorithm. The evaluation of the wave functions of the analytical Pöschl-Teller-Ginocchio potential is treated as a physical application.
The Gauss hypergeometric function 2F1 verifies linear transformation formulas allowing consideration of arguments of a small modulus which then can be handled by a power series. They, however, give rise to indeterminate or numerically unstable cases, when b-a and c-a-b are equal or close to integers. They are properly dealt with through analytical manipulations of the Lanczos expression providing the Gamma function. The remaining zones of the complex plane uncovered by transformation formulas are dealt with Taylor expansions of the 2F1 function around complex points where linear transformations can be employed. The Pöschl-Teller-Ginocchio potential wave functions are calculated directly with 2F1 evaluations.
The algorithm provides full numerical precision in almost all cases for |a|, |b|, and |c| of the order of one or smaller, but starts to be less precise or unstable when they increase, especially through a, b, and c imaginary parts. While it is possible to run the code for moderate or large |a|, |b|, and |c| and obtain satisfactory results for some specified values, the code is very likely to be unstable in this regime.
Two different codes, one for the hypergeometric function and one for the Pöschl-Teller-Ginocchio potential wave functions, are provided in C++ and Fortran 90 versions.
20,000 2F1 function evaluations take an average of one second.
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|