Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] adiv_v1_0.gz(14 Kbytes)
Manuscript Title: Parabolic cylinder functions of integer and half-integer orders for non-negative arguments.
Authors: J. Segura, A. Gil
Program title: DINPCF, DHAPCF
Catalogue identifier: ADIV_v1_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 115(1998)69
Programming language: Fortran.
Computer: HP, Model 715/100.
Operating system: UNIX.
Keywords: General purpose, Parabolic cylinder, Functions, Three term recurrence, Relations, Continued fraction.
Classification: 4.7.

Nature of problem:
We include two codes in order to evaluate Parabolic Cylinder functions of integral orders (subroutine DINPCF) and half-integral orders (subroutine DHAPCF).
The codes evaluate the Parabolic Cylinder functions V(a,x) and U(a,x) (a integer or half-integer) from the lowest (non negative) order to a maximum (positive) order in the same run and store such values.
Half-integral order PCF's find their application in problems with parabolic cylinder geometries. Integral order PCF's appear, for instance, in statistical thermodynamics, crystallography and lattice field theory.

Solution method:
The subroutine DINPCF (DHAPCF) evaluates the Parabolic Cylinder functions {V(n,x)} ({V(n+1/2,x)}) through forward recurrence over n starting from the calculation of the lowest orders (n=0, n=1) Vs. Then, after using a continued fraction (CF) for the Parabolic Cylinder functions {U(n,x)} ({U(n+1/2,x)}) and the Wronskian relation between Vs and Us, the subroutine applies backward recurrence for the Us. Series expansions for the Us are used, instead of the CF whenever they become faster and give a precision better than 10**-12 (see text, LONG WRITE-UP, sects. 3, 4).
We include two modes of evaluation. For MODE=0 the codes evaluate plain U(a,x)s and V(a,x)s (a = n or a = n+1/2) while for MODE=1 the solutions are exponentially scaled and the codes evaluate e**(-x^2/4)V(a,x) and e**(x^2/4)U(a,x).

The maximum order that can be reached with our method for a fixed real positive value of x, is provided by the maximum real number defined in our machine. Typically, the maximum order is ~250 for x < 10 and decreases with increasing x. See text, sections 6 and 7.
The code is to be used for real x >= 0. In MODE=0 the highest evaluable x is x = 50.78 for an overflow number of 10**280; in MODE=1 such restriction disappears.

Running time:
In the worst cases (1 <= x <= 2), 3 x 10**-4 s for x ~ 2 when the functions up to order 10 are stored and 2 x 10**-3 s for x ~ 1 for stored orders up to the maximum available one (Nmax = 270).