LINMath (Livermore Interactive Numerical Mathematics software access utility) is a customized Web site that delivers advice on, and descriptions of, mathematical library routines and (most importantly) delivers source files for the routines themselves. LINMath uses a topic-based menu tree to provide advice, sub-menu lists, and downloadable source files for a set of mathematical software collections. The largest such collection is the SLATEC library, which resulted from a collaboration with seven other laboratories. The MSSL and mssl3 collections are primarily the result of internal development efforts. The PMATH collection arose as a small portable subset of the MATHLIB object code library.


The LINMath Web site uses the standard GAMS (Guide to Available Mathematical Software) hierarchical system for organizing math routines in the structure of its menu tree. Underlying the GAMS structure, the software itself comes from four different collections: SLATEC, MSSL, mssl3, and PMATH. As a related service, LINMath (OCF version) provides links to a large number of external mathematical software packages of possible interest. LINMath also provides the most recent, debugged versions of SLATEC and PMATH routines, potentially more recent than the versions installed on some LC machines as compiled object code.

The vast majority of the software in LINMath is in Fortran (primarily for historical reasons) although there is some software written in C. In the case of the Fortran collections, a major task of LINMath is to deliver the proper set of subordinate routines along with the requested user-callable routine. Subordinate routines are generally shared by multiple top-level routines and thus stored separately. For each given requested routine, LINMath appends to it the correct set of subordinate routines to construct the file delivered to the user.


The LINMath Web site is accessible at The LINMath server automatically restricts access to those clients running on machines within the LLNL domain(s). A nearly identical LINMath site is available within the LLNL secure network on the SCF at


No separate documentation for using LINMath is available, nor is it necessary. At the home page, simply select a major topic category, then follow a menu tree until reaching the particular subtopic of interest. This leads to a list of those libraries that contain routines for that subtopic. After selecting any one of those, clicking on any entry initiates a download of the software routine named. An example of such a path might be:

I (Differential and Integral Equations)
I1 (Ordinary differential equations)
I1a (Initial value problems)
I1a1 (General, nonstiff or mildly stiff)
MSSL: 7 routines

To aid in the menu navigation process, many of the pages display blocks of information and/or recommendations about the subtopic category and the software available in it.


In addition to supplying mathematical software sources directly, the OCF version of LINMath also provides links to a number (around 130) of math software packages that are available externally. These are listed, with brief descriptions, within the top-level GAMS categories and also in a single alphabetical list linked to from the LINMath home page. Links in the latter list lead back to the package lists for the relevant GAMS categories.

Some packages, such as LINPACK and BLAS, exist in object code libraries available on some LC machines. If your target machine has such a library, using its version of these routines is likely to be more efficient than using the source code form from LINMath. Some experimentation with the two versions may be warranted.

The alphabetical list of mathematical software packages listed by LINMath is provided below. All are externally located, but some (marked *) are also available from within LINMath.