Civilized Software Logo

Civilized Software Inc.
12109 Heritage Park Circle
Silver Spring, MD 20906

MLAB: An Advanced System for Mathematical and Statistical Modeling

MLAB, (for Modeling LABoratory), is a program for interactive mathematical and statistical modeling. MLAB was originally developed at the National Institutes of Health. It includes curve-fitting, differential equations, statistics and graphics as some of its major capabilities.

MLAB provides more than thirty command types and more than four hundred built-in functions from the areas of elementary mathematics, transcendental functions, probability and statistics, linear algebra, optimization, cluster analysis, combinatorics, numeric input/output, and graphics. The usual low-level functions, e.g., sine, cosine, log, etc., are present, as well as functions performing more complex analyses, such as singular value decomposition, discrete Fourier transforms, solution of differential equation systems, and constrained non-linear optimization, among many others. A substantial collection of statistically-oriented functions, such as most common distribution functions and their inverses, are included.

MLAB is an ideal tool for solving simulation and modeling problems such as chemical kinetics, pharmacological compartmental models, multiple site ligand binding, neurophysiological modeling, and ultracentrifuge models, to name just a few.

Using the built-in functions in MLAB, the user may construct user-defined functions, which may be algebraic, differential equation-defined, implicit, recursive, and/or defined piecewise. Functions may be used in many ways: direct evaluation, symbolic derivatives may be constructed, and roots of nonlinear equations may be found.

For example, the MLAB matrix sorting operator, sort(m,j), returns a copy of the matrix m with its rows sorted in ascending order. The sort is stable, so that rows with duplicate values in column j appear in the output in the same relative order as they appeared in the input. If j is negative, the sorting is done so that column ¦j¦ appears in descending order. If j is not given, column 1 is assumed, so sort(m) has a natural meaning. Finally if j is 0, the output will be a copy of m with its rows stably sorted in lexicographic order.

Another very important example of attention to detail in MLAB is that, whenever possible, MLAB correctly handles floating point overflows and underflows, supplying whichever of MAXPOS, the largest computational value, or MAXNEG, the algebraically least computational value, is indicated as the result of an overflow (with an optional warning). It supplies 0 as the result of a hard underflow. Often-appropriate values are supplied for zero-divides as well. Since overflows may well arise during curve-fitting, this corrective behavior is valuable to allowing the curve-fit to continue successfully.

MLAB runs on IBM PC's and compatibles (DOS, Windows, and Windows95). UNIX versions for Sun Sparc workstations, Motorola-NeXT, Intel-NeXT, and HP-NeXT machines, RS6000's, DEC Alpha's, and SGI workstations are available. A Macintosh version (Motorola and PowerPC) are also available.

MLAB may be purchased from:

Civilized Software, Inc.
12109 Heritage Park Circle
Silver Spring, MD 20906
1-301-962-3712 fax
Email: or

A fully-featured three month trial version is available for $99. For full pricing information click here.

[Back to CSI Home Page] [Next Document]
Send comments to: