# Math Libraries and Interactive Tools

Users often ask which mathematics libraries and interactive mathematical tools are "available" on which LC systems. The answer depends on what you regard as availability and on how much customization you need (or are willing to perform). Some mathematics libraries, mostly from commercial vendors, are preinstalled as compiled (object) code. The libraries sometimes overlap. Some routines are optimized and some are not; some are threaded and some are not; some support MPI and some do not; some are portable and some are not; some are single or double precision. Only your own computational needs can determine which of these competing libraries are most appropriate for your work.

Mathematics or numerical libraries are designed to be incorporated into user applications. They contain high-quality implementations of common tasks such as linear algebra solvers or fast Fourier transforms.

In addition to the relatively small set of preinstalled math libraries, there is a much larger set of downloadable source-code math software routines and packages (around 1400 in all) on both OCF (CZ and RZ) and SCF, at the LINMath Web site. This semi-interactive site offers four different collections (SLATEC, PMATH, MSSL, and mssl3) of non-proprietary software, organized by problem type. The software addresses a wide range of mathematical and statistical problem types, from simple (e.g., vector operations) to complex (e.g., differential equation solvers), and represents the result of efforts in the numerical math research community since the 1970s. LINMath also provides links to many other popular math software packages that are available elsewhere. The LINMath routines and packages also overlap somewhat with the commercial libraries (BLAS is an example), so in those cases you must decide which alternative best meets your specific needs.

Interactive mathematical tools are stand-alone applications that can be used for numerical analysis, data analysis, and display. These tools have both a GUI and a command-line interface.

The table below shows at a glance which major libraries and interactive mathematical tools reside on which LC machines. Each library or tool name is a link to more information about that library or tool.

Math Library | Description | Availability |
## Documentation |
---|---|---|---|

ATLAS | Automatically Tuned Linear Algebra Software | Linux | See the ATLAS Web site |

BLAS | Basic Linear Algebra Subroutines | Linux CORAL |
See ATLAS, MKL, or ACML (Linux); ESSL (CORAL) See the BLAS Web site |

ESSL | IBM Engineering and Scientific Subroutine Library | CORAL | /usr/tcetmp/packages/essl/essl-<version>/READMES/*.README See the IBM's ESSL Guide and Reference |

FFTW | Fast Fourier Library | Linux CORAL |
See the FFTW Web site |

GSL | GNU Scientific Library | Linux | See the GNU GSL Web site |

LAPACK | Dense linear algebra | Linux CORAL |
See ATLAS, MKL, or ACML Linux; ESSL (CORAL) See the LAPACK Web site |

LIBM | Standard C math library | Linux | See the LIBM man page |

MKL | Intel Math Kernel Library | Linux | See the documentation directory in /usr/tce/packages/mkl/mkl-<version> See the Intel MKL Web site |

MSSL/mssl3 | Mathematics and Statistics Software Library is a collection of (mostly Fortran) routines in source code form | MSSL/mssl3 is available from the LINMath Web site as source code, which you can then move to any machine and compile. | |

ODEPACK | ODEPACK is a collection of Fortran solvers for the initial value problem for ordinary differential equation systems. | See the ODEPACK Web site | |

PETSc | Collection of routines for solving linear systems | Linux CORAL |
See the PETSc Web site |

PMATH | Machine-independent portable math subroutine library | PMATH is available from the LINMath Web site as source code, which you can then move to any machine and compile. | |

ScaLAPACK | Library of high-performance linear algebra routines for distributed-memory message-passing MIMD computers | Linux CORAL |
See the Scalable Linear Algebra PACKage Web site |

SLATEC | Comprehensive software library with over 1400 general purpose mathematical and statistical routines written in Fortran 77 | SLATEC is available from the LINMath Web site as source code, which you can then move to any machine and compile. | |

Interactive Math Tool | Description | Availability |
## Documentation |

Mathematica | Symbolic mathematics tool | Linux | Within Mathematica; see also the Mathematica vendor Web site |

MATLAB | A high-level language and interactive environment for numerical computation, visualization, and programming | Linux | Within MATLAB; see also the MATLAB vendor Web site |

Octave | High-level language primarily intended for numerical computations | Linux | Within Octave; see also the GNU Octave Web site |