The PMATH mathematical subroutine library (libpmath.a) is a collection of 66 routines that was constructed as a portable subset of the former (machine-dependent) MATHLIB library with a few other routines added. PMATH supplements but does not duplicate the SLATEC library.

LC's former MSS group (and its predecessor groups) developed MATHLIB, much of which was coded in the machine language, CAL. To meet the need for a machine-independent portable mathematics subroutine library, PMATH ("P" for portable) was developed.

The user-callable routine names in PMATH, with brief descriptions, are listed below. All are Fortran callable, except for those from the random number generator family, which includes some C routines. Where two or more names are shown together, these correspond to the double and single precision versions (and possibly an integer version) of the routines. For details, see the source files, available from LINMath. In particular, the usage documentation of each routine is given in the source file of each routine.

Routine Name Description
AAAAAA Version Information
DMAXAF,SMAXAF,IMAXAF Maximum element of array
DMINAF,SMINAF,IMINAF Minimum element of array
DMINMX,SMINMX,IMINMX Minimum and maximum elements of array
LDFD,LDFS Table look-down function
LUFD,LUFS Table look-up function
LUGD,LUGS Table look-up function with guess
DMEANF,SMEANF Mean of 1D real array
DMEANV,SMEANV Mean vector of 2D real array
DMEDF,SMEDF Median of 1D real array
DRANKS,SRANKS Ranks of 1D real array
DCORRV,SCORRV Correlation matrix of 2D real array
DCOVAR,SCOVAR Variance-covariance matrix of 2D real array
DSTDEV,SSTDEV Standard deviation of 1D real array
DZERO,SZERO Zero of a nonlinear function
DFITPO,SFITPO Polynomial fit to data
DREFIT,SREFIT Repeated fitting after DFITPO,SFITPO
DLSODE,SLSODE Ordinary differential equation IVP solver
DINTDY,SINTDY Auxiliary interpolator routine for DLSODE,SLSODE
DSRCOM,SSRCOM Save and restore Common for DLSODE,SLSODE
DCONST,SCONST Common mathematical constants
DUMACH,RUMACH Unit roundoff
IUMACH Standard output unit number
XERRWD,XERRWV Print error message with values
XSETF Set error message control flag
XSETUN Set error message unit number
Random Number Generator Family
Fortran-callable
DRANF,SRANF Uniform random number generator
DRANFV,SRANFV Uniform random number generator (vectorized)
DRLGF,SRLGF Exponential random number generator
C-callable
ranf8 Uniform random number generator
ranfv8 Uniform random number generator (vectorized)
rnfcnt Count calls to RANF
rnsget Get RANF seed
rnsset Set RANF seed
rnmset Set RANF multiplier
rlgf8 Exponential random number generator
rlfcnt Count calls to RLGF
rlsget Get RLGF seed
rlsset Set RLGF seed
rlmset Set RLGF multiplier