MCSD Software
MCSD 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.
- 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: Minimal Maintenance Links: Download full library and Alternate Contact: R. F. Boisvert
- cnofm
-
Juror Selection Programs
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
-
Triangulations and Tetrahedralizations
Software for constrained Delauney triagularizations (2D) and
tetrahedralizations (3D).
Status: Active Maintenance Contact: J. Bernal
- DIVERSE
-
DIVERSE is a cross-platform, open source,
API for developing virtual reality applications. We have
developed two sets of software to enhance its capabilities.
There is a set of DIVERSE applications, including TIM
(Things In Motion) to visualize time-series positional data, and
XWand, to transmit data from shared memory into X windows mouse
events. There is also a set of DIVERSE DSOs (Dynamic Shared Objects),
separately compiled functionality that can be linked into a
visualization program. These include functionality for
isolating and moving individual objects within a visualization,
and for interaction between applications and visualization
programs.
Status: Active Development Contact: A. Peskin
- ENVELOPE
-
A program for calculating envelope curves for oscillatory data.
Status: Minimal Maintenance 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: Active Maintenance 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: Active Development Contact: W. L. George
- INVAR
-
An interactive nonlinear least squares program especially suited for
separable problems.
Status: Minimal Maintenance 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: Active Maintenance Contact: G. W. Stewart
- Java Classes
-
User interface classes which extend java.awt developed in conjunction
with HotGAMS.
Status: Minimal Maintenance 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
- Matran
-
Fortran 95 wrapper that implements matrix operations and
computes matrix decompositions using Lapack and the Blas.
Provides the flavor and convenience of coding in matrix-oriented
systems like Matlab, Octave, etc.
Status: Active Development Contact: G. W. Stewart
- 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: Active Maintenance 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: Minimal Maintenance 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: Active Development 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 models helium flow and heat transfer in a regenerator
of the type used in cryocoolers.
Status: Minimal Maintenance Contact: A. O'Gallagher
- SLATEC
-
Common Mathematical Library
A 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: Active 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: Minimal Maintenance 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: Minimal Maintenance 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. MCSD staff have contributed
to the development of Zoltan, which was developed at Sandia National
Laboratories.
Status: Active Development Contact: W. F. Mitchell
|