Next: 3.4 Interactive Systems
Up: 3 Packages, Libraries and
Previous: 3.2 Intermediate Libraries
Subsections
When new algorithms are developed they tend to
appear first as subroutines in software packages (§3.1 above).
Later they may be assimilated into more complete software products such
as intermediate libraries (§3.2 above).
Even more useful are comprehensive libraries that integrate
evaluation of special functions with other essential elements of numerical
computing and offer additional advantages such as
uniform documentation, style of usage, and handling of error conditions.
Corrections and improvements, particularly in orienting the programming
toward particular computer architectures, are often made.
The European Laboratory for Particle Physics maintains a comprehensive
software library [CER93], mostly in Fortran but with a few routines
in assembly language, in support of high-energy physics research.
The coverage of special functions includes the error function of real
and complex argument; the Dawson and Fresnel integrals; exponential,
sine, cosine and arctangent integrals; the gamma and digamma functions
of real and complex argument; incomplete gamma function;
real dilogarithm and complex generalized polylogarithms; Bessel
functions of real argument and orders 0,
,
,
,
,
and 1; Bessel functions
of real order and real or complex argument; Bessel functions of complex
order and argument; zeros of the Bessel functions and and of their
derivatives; Coulomb wave functions of complex order, argument
and parameter; complete and incomplete elliptic integrals; Jacobi's
elliptic functions (real and complex); Jacobi's theta functions (real);
Bose-Einstein and Fermi-Dirac integrals ; Legendre
and associated Legendre functions; conical functions of the first kind;
Struve functions.
The library is distributed, with some restrictions, to
organizations outside CERN.
International Mathematical and Statistical Libraries was incorporated
in 1970 ``with the intent of providing high-quality, supported Fortran
subroutine libraries in mathematics and statistics'' [Air84].
In its first ten years it produced libraries tailored to twelve different
computer lines, providing an alternative to manufacturer-supplied
libraries.
Currently the company offers a wide range of products for large-scale
scientific computing.
At the center of its product line is the IMSL numerical subroutine library
for mathematics and statistics, which includes an extensive
coverage of real and complex special functions [IMS91] ; this
reference includes a GAMS index [BHK91] and a KWIC (keyword
in context) index.
The library is optimized, vectorized and parallelized
where appropriate, depending on the target computer architecture,
but it contains no vector or parallel support for special functions.
A subset of the IMSL library is offered also as a C library.
This is an essential
component of a powerful interactive system (§3.4 below) which
has the capability of providing graphical
and numerical computing with very large data sets.
Optionally, Maple (§3.4.3 below) can be incorporated to provide for
symbolic computing.
This book describes a library for scientific computing that was developed
originally more than 30 years ago in Japan. It has become a standard
component of computer centers in Japanese universities and remains
important because its developers have continually provided modifications
to keep abreast of advances in computers and numerical analysis. Its
coverage of special functions includes Bessel, gamma, incomplete gamma
and error functions; exponential, Fresnel and complete elliptic integrals;
and classical orthogonal polynomials. The Bessel and gamma functions are
supported for complex as well as real arguments. The library routines
are provided on a diskette that comes with the book.
An overview of the development, structure and contents of the NAG
Fortran library [NAG99] is given in [FP84].
After originating as a cooperative project among several British
computing centers in 1970 with the purpose of providing ``a balanced,
general-purpose numerical algorithms library," the Numerical Algorithms
Group formed a not-for-profit company in 1976 to provide for the wider
distribution of the library.
The library is organized around the ACM modification of the SHARE
classification system (see §3.1.1 above) and is available for
a wide cross-section of computing systems.
A KWIC (keyword in context) index and an index in the GAMS classification
scheme [BHK91] are provided in the library documentation.
Subsets of the full library are available in Ada, Algol 68, C,
Fortran 90 and Pascal.
NAG is actively developing and marketing an
interactive system (§3.4 below) that integrates
most of the numerical power of the
full NAG library with online symbolic and graphical capabilities.
In 1976 the Naval Surface Warfare Center, Dahlgren, Virginia, began development
of ``a [Fortran] library of general purpose subroutines that
would provide a basic computational ability in a variety of
mathematical activities'' [Mor93].
The design goals stressed reliability, transportability, efficiency,
ease of use, and generality.
In 1993 the library contained 576 user-level subroutines, including
ones in real arithmetic for the error function and its inverse;
Dawson's integral and Fresnel integrals; exponential, sine and
cosine integrals; gamma, psi and polygamma functions; dilogarithm;
incomplete gamma function and its inverse; incomplete beta function;
complete and incomplete elliptic integrals; Jacobi's and Weierstrass'
elliptic functions; Bessel functions of real argument and order.
It also contained Airy functions and complete elliptic integrals
of complex argument, and Bessel functions of complex argument and
integer or complex order.
In 1973 the Mathematisch Centrum, Amsterdam, introduced this library of
numerical procedures in Algol-60 with `` the aim
...to provide Algol-60 programmers with a high-level numerical library
which contains a set of validated numerical procedures together with
supporting documentation'' [Hem81].
In 1979 it contained approximately 430 subroutines, including ones
for the exponential, sine and cosine integrals; gamma function;
incomplete gamma and beta functions; error and inverse error functions;
Fresnel integrals; modified and unmodified Bessel functions of integer,
half-integer or real order; Airy functions.
All subroutines are for real variables.
This partly pedagogical series of books offers
``for each topic considered, a certain amount of general discussion,
a certain amount of analytical mathematics, a certain amount of
discussion of algorithmics, and (most important) actual implementations
of these ideas in the form of working computer routines" [PTVF92].
Besides being listed fully in the text, the computer routines are
available for purchase under a variety of licensing
arrangements, one of which is tailored to the needs of classroom
instructors.
Example books with test programs and diskettes are available also.
Standard fields of numerical computation are covered, with approximation
of functions and evaluation of special functions included.
Except for the hypergeometric function, the software applies to real
variables only.
The book is published in four versions with the software coded in Basic, C,
Fortran or Pascal; another volume for Basic is [Spr91].
The Nagoya University Mathematical Package is used widely in Japan.
It is a comprehensive Fortran library oriented toward Japanese computers,
including vector supercomputers.
Coverage includes Airy functions; error and inverse error
functions; Dawson and Fresnel integrals; exponential, sine and cosine
integrals; complex gamma function; digamma function; dilogarithm; Riemann's
zeta function; Bessel functions of integer or real order and real or complex
argument; zeros and integrals
of Bessel functions; complete and
incomplete elliptic integrals; Jacobi's elliptic functions; incomplete
beta and gamma functions; Legendre polynomials and associated Legendre
functions; classical orthogonal polynomials; Struve functions; Abramowitz,
Debye and elliptic theta functions; solutions of the Blasius and
Thomas-Fermi equations.
Information can be obtained in Japanese and partially in English at
http://numpac.fuis.fukui-u.ac.jp/.
This library [FHS78b,Fox84] is mentioned here because it provides a
framework [FHS78a] for constructing portable Fortran libraries
that has proven its utility.
The framework supplies computer arithmetic parameters via Fortran
function calls.
Algorithms are coded so as to be valid for a range of values of
the arithmetic parameters; actual values are substituted at run
time.
The PORT framework is used, for example, in the SLATEC library
(§3.3.10 below).
It is particularly valuable in the special function
routines because of their sensitivity to precision, underflow and overflow.
The PORT framework is available as ACM Algorithm 528 (§3.1.1 above).
C. Abaci offers the following products:
(i) the Scientific Desk Library, a Fortran-based collection
of numerical software;
(ii) the Scientific Desk Analysis System, an interactive system
(§3.4 below);
(iii) software produced by others, including the ACM algorithms
(§3.1.1 above).
The library is available in
object code for personal computers under a variety of
Fortran compilers and in Fortran source code for other computers.
The Analysis System, which is strongly oriented toward statistics,
simplifies the programming burden and provides for simple graphical
output.
C. Abaci distributes the SPECFUN collection [Cod93b] of Fortran programs
for special functions and
the ELEFUNT, INTFUNT and CELEFUNT tests [Cod93a,CW80] for
elementary functions.
Inquire at C. Abaci, Inc., P. O. Box 2626, Raleigh, NC 27602.
The acronym stands for Sandia, Los Alamos, Air Force Weapons
Laboratory Technical Exchange Committee11, formed in 1974 to ``foster
the exchange of technical information among the three computing departments''.
In 1977 a subcommittee undertook the development of a complete,
noncommercial Fortran library for numerical supercomputing [Buz84].
The primary motivation was that the suppliers of commercial libraries
regarded the supercomputing market as too small.
The library subcommittee admitted subsequently five additional U. S.
Government agencies (the Lawrence Livermore, Oak Ridge and Sandia
Livermore National Laboratories, the National Energy Supercomputer Center
at Lawrence Livermore, and the National Institute of Standards and
Technology).
SLATEC Version 1.0 appeared in 1981.
Version 4.0, the third major revision and expansion, was released in
December 1992.
The initial coverage of special functions coincided with FNLIB [Ful77],
FUNPACK [Cod75,Cod84a] and AMOSLIB [AD79].
Subroutines from
[ADW77a,ADW77b,Amo80a,Amo83a,Amo83b,Amo86,CN81,LS81,OS83]
were added later.
Available from Energy Science and Technology Center, P. O. Box 1020,
Oak Ridge, TN 37831 and from http://gams.nist.gov/.
Next: 3.4 Interactive Systems
Up: 3 Packages, Libraries and
Previous: 3.2 Intermediate Libraries
Thursday, Jan 11, 2001