Skip to main content    

An official website of the United States government

Here’s how you know

**Official websites use .gov**              A **.gov** website belongs to an official government organization in the United States.            

**Secure .gov websites use HTTPS**              A **lock** (  LockA locked padlock) or **https://** means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.            

https://www.nist.gov/itl/math/software

            -  Topics  -  All Topics 
-  Advanced communications 
-  Artificial intelligence 
-  Bioscience 
-  Buildings and construction 
-  Chemistry 
-  Climate 
-  Cybersecurity 
-  Electronics 
-  Energy 
-  Environment 
-  Fire 
-  Forensic science 
-  Health 
-  Information technology 
-  Infrastructure 
-  Manufacturing 
-  Materials 
-  Mathematics and statistics 
-  Metrology 
-  Nanotechnology 
-  Neutron research 
-  Performance excellence 
-  Physics 
-  Public safety 
-  Resilience 
-  Standards 
-  Transportation 
 
            -  Publications 
            -  Labs & Major Programs  -  Laboratories    -  Communications Technology Laboratory 
  -  Engineering Laboratory 
  -  Information Technology Laboratory 
  -  Material Measurement Laboratory 
  -  Physical Measurement Laboratory 
-  User Facilities    -  NIST Center for Neutron Research 
  -  CNST NanoFab 
-  Research Test Beds 
-  Research Projects 
-  Tools & Instruments 
-  Major Programs    -  Baldrige Performance Excellence Program 
  -  CHIPS for America Initiative 
  -  Manufacturing Extension Partnership (MEP) 
  -  Office of Advanced Manufacturing 
  -  Special Programs Office 
  -  Technology Partnerships Office 
 
            -  Services & Resources  -  Standards and Measurements    -  Calibration Services 
  -  Laboratory Accreditation (NVLAP) 
  -  Quality System 
  -  Standard Reference Materials (SRMs) 
  -  Standards.gov 
  -  Time Services 
  -  Office of Weights and Measures 
-  Software 
-  Data    -  Chemistry WebBook 
  -  National Vulnerability Database 
  -  Physical Reference Data 
  -  Standard Reference Data (SRD) 
-  Storefront 
-  License & Patents 
-  Computer Security Resource Center (CSRC) 
-  NIST Research Library 
 
            -  News & Events  -  News 
-  Events 
-  Blogs 
-  Feature Stories 
-  Awards 
-  Video Gallery 
-  Image Gallery 
-  Media Contacts 
 
            -  About NIST  -  About Us    -  Leadership 
  -  Organization Structure 
  -  Budget & Planning 
-  Contact Us 
-  Visit 
-  Careers    -  Student programs 
-  Work with NIST 
-  History    -  NIST Digital Archives 
  -  NIST Museum 
  -  NIST and the Nobel 
-  Educational Resources 
 

Information Technology Laboratory

## Applied and Computational Mathematics Division

-  Projects/Programs 
-  How to Work With Us 
-  NIST Publications Searchable Database 
-  Staff Directory 
-  News & Updates 
-  Resources/Services 

# ACMD Software Products

## Share

Facebook

Linkedin

Twitter

Email

Division staff have been involved in the development of a wide variety of software packages, many of which are in widespread use. Examples of these follow. **Note:** except where noted below, each of these software packages is subject to our software disclaimer.

----

## CMLIB

> 
*The NIST Core Math Library*

A collection of high-quality, easily transportable Fortran subroutine sublibraries solving standard problems in many areas of mathematics and statistics compiled and maintained for use on NIST systems from supercomputers to workstations.

*Status*: Not Maintained

*Links*: Readme / Download full library (zip archive) / Download full library (gzipped tar file)

*Contact*: R. F. Boisvert

## cnofm

> 
*Juror Selection Program*

In choosing a jury panel, one wishes to randomly and fairly select N jurors out of a pool of M names, where M is usually much larger than N. "Fairly" means that all combinations of N jurors should be equally likely to be chosen. Sample software for this problem was developed in June of 1994 at the request of the Administrative Office of the U.S. Courts. The software was included in a Request for Proposals for a turnkey system for jury selection. Except for very minor changes, these are the same as the 1994 versions. The algorithms are suitable for juror pools of any reasonable size (the upper limit is over two billion jurors).

*Status*: Not Maintained

*Links*: cnofm.c, cnofmx.c (for older compilers) and cnofm.f (F77)

*Contact*: J. L. Blue

## colloc++

> 
A prototype C++ class library for implementing the method of Matrix Decomposition using Orthogonal Spline Collocation for elliptic boundary value problems.

*Status*: Not Maintained

*Links*: Source

*Contact*: K. A. Remington

## Delaunay

> 
Software for computing 2-D and 3-D Delaunay, Voronoi, Power, Regular constructs, etc.

*Status*: Active Maintenance

*Contact*: J. Bernal

## ENVELOPE

> 
 A program for calculating envelope curves for oscillatory data.

*Status*: Not Maintained

*Contact*: M. A. McClain

## f90gl

> 
A fortran interface for Mesa, a freely distributable 3D graphics library with an API which is very similar to that of OpenGL, and GLUT, a window system independent API toolkit for writing OpenGL programs. It provides both fortran 77 and fortran 90 interfaces, and can also be used with native OpenGL implementations.

*Status*: Not Maintained

*Contact*: W. F. Mitchell

## FCNPAK

> 
Fortran subroutines for the associated Legendre (Ferrers) functions.

*Status*: Not Maintained

*Links*: Source

*Contact*: D. W. Lozier

## FERD

> 
Fortran program package for unfolding radiation spectra.

*Status*: Not Maintained

*Links*: Source

*Contact*: B. W. Rust

## FERDO

> 
Fortran program packages for unfolding radiation spectra.

*Status*: Not Maintained

*Links*: FERDO

*Contact*: B. W. Rust

## Format

> 
Macsyma utilities for user-directed hierarchical structuring of expressions, as well as for directing simplifications to selected subexpressions. Emphasizes semantic rather than syntactic description of desired forms. Includes utilities for obtaining efficiently the coefficients of polynomials, trigonometric sums and power series.

*Status*: Not Maintained

*Links*: Source

*Contact*: B. R. Miller

## Harwell-Boeing I/O

> 
A collection of C procedures for reading and writing Harwell-Boeing matrix files. Harwell-Boeing is the principal ASCII exchange format for sparse matrices.

*Status*: Minimal Maintenance

*Contacts*: K. A. Remington or R. Pozo

## HFFT3

> 
High-order fast-direct solution of the Helmholtz equation on rectangular two- and three-dimensional domains.

*Status*: Not Maintained

*Contact*: R. F. Boisvert

## IML++

> 
A C++ templated library of modern iterative methods for solving both symmetric and nonsymmetric linear systems of equations. The algorithms are fully templated in that the same source code works for dense, sparse, and distributed matrices.

*Status*: Minimal Maintenance

*Contacts*: R. Pozo or K. A. Remington

## IMPI

> 
The IMPI (Interoperable MPI) tester is an on-line service for testing compliance of an MPI library with the IMPI specification. IMPI is a set of protocols, implemented within an MPI library, that allow two or more MPI libraries to operate as a single MPI library that spans two or more separately administered parallel computers. Any developer of an MPI library that will include IMPI support can use this tester during development to verify that their library will interoperate with other IMPI enabled MPI libraries. This tester is accessed over the Internet, using a simple Java applet for the user interface, and is implemented in Java to mimic one or more remote clusters running IMPI/MPI. The IMPI tester includes a set of tests that exercise each of the IMPI protocols, communicating with the user's cluster over TCP/IP sockets, and returns pass/fail results to the user.

*Status*: Not Maintained

*Contact*: W. L. George

## INVAR

> 
An interactive nonlinear least squares program especially suited for separable problems.

*Status*: Not Maintained

*Links*: Source

*Contact*: B. W. Rust

## JAMA

> 
A linear algebra package for Java. Includes LU, QR, and singular value decompositions, solution of linear systems, least squares, and eigenvalue problems.

*Status*: Minimal Maintenance

*Contacts*: R. F. Boisvert, K. A. Remington, B. R. Miller or R. Pozo

## Jampack

> 
An extensible collection of cooperating classes designed to perform matrix computations in Java applications..

*Status*: Minimal Maintenance

*Contact*: G. W. Stewart

## Java Classes

> 
User interface classes which extend java.awt developed in conjunction with HotGAMS.

*Status*: Not Maintained

*Contact*: B. R. Miller

## LAPACK++

> 
LAPACK extensions for high performance linear algebra computations. This version includes support for solving linear systems using LU, Cholesky, and QR matrix factorizations.

*Status*: Not Maintained

*Contact*: R. Pozo

## MGGHAT

> 
MultiGrid Galerkin Hierarchical Adaptive Triangles: a Fortran program for the solution of general second order linear self-adjoint elliptic partial differential equations with Dirichlet, natural, or mixed boundary conditions on 2D polygonal domains (possibly with holes). MGGHAT uses a finite element method with linear, quadratic, or cubic elements (user selectable) over triangles. Adaptive refinement via newest vertex bisection and multigrid iteration are both based on a hierarchical basis formulation.

*Status*: Not Maintained

*Links*: User's Guide and Alternate source

*Contact*: W. F. Mitchell

## MPI Data Type Tools (AutoMap and AutoLink)

> 
AutoMap is a tool designed to simplify the creation of MPI data-types. It works as a source-to-source compiler reading directly from the user typea definitions AutoLink is a tool designed to transfer dynamic data-types (like graphs) using MPI. It works as a library, giving the user access to high level functions to transfer dynamic data-types

*Status*: Not Maintained

*Links*: Source

*Contact*: J. E. Terrill

## Newman

> 
Newman is a software package for the exact solution of systems of linear equations with integer coefficients on parallel clusters.

*Status*:Not Maintained

*Contact*: A. J. Kearsley

## ODRPACK

> 
Subprograms for fitting a linear or nonlinear model to data. Designed primarily for fitting when the independent as well as the dependent variables have significant errors, ODRPACK implements a highly efficient algorithm for solving the weighted orthogonal distance regression problem. It can also be used to solve the ordinary least squares problem where all of the errors are attributed to the observations of the dependent variable.

*Status*: Not Maintained 

*Contact*: J. Rogers

## OOMMF

> 
The OOMMF (Object Oriented Micromagnetic Modeling Framework) project is aimed at developing portable, extensible public domain programs and tools for micromagnetics. The end product will be a completely functional, user-friendly micromagnetic code, with a well documented, flexible programmer's interface to allow developers outside the OOMMF project to swap their own code in and out as desired. The guts of the code are being written in C++ with a Tcl/Tk (and in the future, possibly OpenGL) interface. Target systems include a wide range of Unix platforms, Windows NT, and Windows 95/98.

*Status*: Active Development

*Contacts*: M. J. Donahue or D. G. Porter

## OOF

> 
OOF (Object Oriented Finite elements) is a tool for reading images of material microstructures, assigning properties to features of the image, and analyzing macroscopic properties via finite element analysis.

*Status*: Active Development

*Contact*: S. Langer

## package

> 
Provides a new [package] command for managing Tcl packages. The [package] it provides is meant to be a 100% compatible replacement for the built-in command [package] provided by the Tcl library. It extends the interface of the built-in [package] to provide more control over managing package dependencies, and to provide a more robust package indexing scheme.

*Status*: Active Maintenance

*Contact*: D. G. Porter

## PADE

> 
PADE is a flexible, customizable environment for developing parallel applications that use the Parallel Virtual Machine (PVM) message-passing library. It provides an integrated framework for all phases of development of a message-passing parallel application: editing, compilation, execution, and performance monitoring and enhancement. The PADE package consists of an intuitive graphical user interface, a suite of PVM utilities, and extensive documentation in PostScript, ASCII, and HTML formats. PADE is most useful with a heterogeneous virtual machine consisting of multiple architectures and/or multiple file systems where it aids the parallel developer by helping to keep track of which source files must be sent and compiled on which hosts, sending the files, issuing the compilation commands, and displaying the results of the compilation on the developer's terminal.

*Status*: Not Maintained

*Links*: Source

*Contact*: J. E. Terrill

## PHAML

> 
PHAML (Parallel Hierarchical Adaptive MultiLevel) is a parallel implementation (SPMD message passing) of the techniques used by MGGHAT. This program is written in Fortran 90 and uses either PVM or MPI for message passing.

*Status*: Not Maintained

*Contact*: W. F. Mitchell

## QUADPACK

> 
Fortran subprograms for evaluating definite integrals of functions of one variable, including singular integrands and infinite intervals.

*Status*: Not Maintained

*Contact*: D. Kahaner

## Regen

> 
REGEN3.2 is a Fortran program that models helium flow and heat transfer in regenerators of the type used in cryocoolers. It was developed at NIST by Dr. John Gary. It has been widely used by designers and researches in industry and academia.

Regen3.3 is a newer version of REGEN3.2 that is fully implicit and may be more accurate. It also allows the use of Helium 3 in addition to Helium 4.

*Status*: Not Maintained

*Links*: REGEN3.2 and REGEN3.3 Packages

*Contact*: A. O'Gallagher

## SLATEC

> 
Common Mathematical LibraryA collection of Fortran subprograms for a wide variety of mathematical problems. A primary impetus for the library development was to provide portable, non-proprietary, mathematical software for supercomputers at a consortium of government-sponsored research laboratories.

*Status*: Not Maintained

*Contact*: D. W. Lozier

## spblas

> 
*NIST Sparse BLAS Library*

A collection of C procedures implementing basic linear algebra operations for sparse matrix computations. Part of the ongoing BLAS Forum standardization efforts.

*Status*: Minimal Maintenance

*Contacts*: K. A. Remington or R. Pozo

## SparseLib++

> 
A C++ class library for efficient sparse matrix computations across various computational platforms.

*Status*: Minimal Maintenance

*Contacts*: R. Pozo or K. A. Remington

## STARPAC

> 
A Fortran subprogram library for statistical data analysis. Its primary applications are time series and nonlinear least squares analysis, but it also includes subprograms for normal random number generation, line printer plots, basic statistical analysis, and linear least squares regression. STARPAC emphasizes the statistical interpretation of computed results.

*Status*: Not Maintained

*Contact*: J. Rogers

## StopWatch

> 
A Fortran 90 module for measuring execution time of program segments. It is designed to be a portable, easy-to-use means of measuring execution time. It supports the wall clock, CPU clock, a breakdown of the CPU clock into user and system times, and returns all times in seconds. It provides a simple means of determining which clocks are available, and the precision of those clocks.

*Status*: Not Maintained

*Links*: User's Guide

*Contact*: W. F. Mitchell

## TNT

> 
*Template Numerical Toolkit*

A numerical toolkit for linear algebra based on the C++ Standard Template Library, together with specialization of generic algorithms for maximum efficiency.

*Status*: Active Development

*Contact*: R. Pozo

## THREEDMD

> 
A fast 3D elliptic solver for distributed memory machines. Based on a Fourier method for Hermite bicubic collocation. PVM implementation.

*Status*: Not Maintained

*Links*: Source

*Contact*: K. A. Remington

## VFFTPACK

> 
Fortran subprograms for the fast Fourier transform of multiple real sequences which have been optimized for vector processors. The package includes a variety of trigonometric transforms.

*Status*: Not Maintained

*Contact*: R. F. Boisvert

## VFNLIB

> 
A suite of portable Fortran subprograms for the vectorized evaluation of Bessel functions and modified Bessel functions of orders zero and one for a vector of real arguments.

*Status*: Not Maintained

*Contacts*: R. F. Boisvert or B. V. Saunders

## VOLKSGRAPHER

> 
A small and easy to use library for generating the most common types of two dimensional graphs used by scientists.

*Status*: Not Maintained

*Links*: Source

*Contact*: D. Kahaner

## WebSubmit

> 
WebSubmit is a Web-based utility providing access to applications on a collection of heterogeneous computing resources. Its goal is to make it easy to use computing resources via the Web without requiring knowledge of the specifics of unfamiliar operating systems and dynamic application environments. Users can effectively log into distinct computing environments and perform tasks without needing a detailed knowledge of their operating environment. A collection of machines, referred to as the cluster and determined by the site administrators, can be accessed through WebSubmit. Strong authentication using the Secure Sockets Layer protocol lets registered users connect to the system, and when validated by a WebSubmit authority, gives them access to a group of application modules. Each application module is presented as an HTML form; this form is filled out and submitted to the server, which then processes the request and executes the desired tasks on the specified remote system using another secure protocol. The system is flexible and extensible, and its modularity promotes ease of use, maintainability, and interface development.

*Status*: Not Maintained

*Links*: Source

*Contact*: J. E. Terrill

## Zoltan

> 
A dynamic parallel load-balancing library for partitioning problems over sets of processors. Such capability is critical to applications where work loads and/or geometric locality change as computations proceed. In addition, Zoltan can be used as a parallel static partitioner for non-dynamic applications, such as traditional finite element methods. Division staff have contributed to the development of Zoltan, which was developed at Sandia National Laboratories. **Note:***Zoltan is distributed by Sandia National Laboratories and is subject to SNL usage policies.*

*Status*: Active Development

*Contact*: W. F. Mitchell

----

### Software Disclaimer

The research software provided on this web site ("software") is provided by NIST as a public service. You may use, copy and distribute copies of the software in any medium, provided that you keep intact this entire notice. You may improve, modify and create derivative works of the software or any portion of the software, and you may copy and distribute such modifications or works. Modified works should carry a notice stating that you changed the software and should note the date and nature of any such change. Please explicitly acknowledge the National Institute of Standards and Technology as the source of the software.

The software is expressly provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, RELIABILITY, OR USEFULNESS OF THE SOFTWARE. 

You are solely responsible for determining the appropriateness of using and distributing the software and you assume all risks associated with its use, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and the unavailability or interruption of operation. This software is not intended to be used in any situation where a failure could cause risk of injury or damage to property.  The software was developed by NIST employees. NIST employee contributions are not subject to copyright protection within the United States. 

Mathematics and statisticsNumerical methods and software

### HEADQUARTERS

301-975-2000

Webmaster | Contact Us | Our Other Offices

TwitterFacebookLinkedInInstagramYouTubeGiphyRSS FeedMailing List

Feedback

            -  Site Privacy 
            -  Accessibility 
            -  Privacy Program 
            -  Copyrights 
            -  Vulnerability Disclosure 
            -  No Fear Act Policy 
            -  FOIA 
            -  Environmental Policy 
            -  Scientific Integrity 
            -  Information Quality Standards 
            -  Commerce.gov 
            -  Science.gov 
            -  USA.gov 
            -  Vote.gov