Essential Math Module User’s Guide : Chapter 1 Introduction : Product Features
Product Features
Here’s a partial list of the features of the Essential Math Module:
Vectors, matrices, and n-dimensional arrays, templatized on datatype to promote flexibility and code reuse.
Compatibility of the vector, matrix, and array classes to allow multiple different views of the same data. You can manipulate a plane of data sliced out of a 3-dimensional array in any direction.
Reference-counting semantics that enable a data block to keep track of how many array objects reference it. When you work with code that has access to multiple matrices sharing a common data block, you need not worry that deleting one matrix will delete the others.
Extension of all the standard C arithmetic operators, such as + and +=, as well as the standard C functions like cos() and abs(), to work with vectors, matrices, and arrays.
Templatized Basic Linear Algebra Subroutines (BLAS) that you can use with any numeric datatype. These BLAS are optimized to give the Essential Math Module an efficiency comparable to FORTRAN.
Fast Fourier Transform (FFT) server classes that allow you to take the 1-dimensional or 2-dimensional FFT or inverse FFT of any real or complex series of any length quickly and easily.
LU factorization classes for fast, accurate solutions of linear simultaneous equations and related matrix algebra.
Random number generator classes for a variety of distributions, including Poisson, normal, and uniform.
Classes and functions for statistics, including least squares fits and correlations.
Support for DLLs on PC platforms, and shared libraries on UNIX.
Symmetric design. Each class has similar member functions, and the member functions behave in the same predictable ways. The Essential Math Module is designed to be easy for you to learn and to use productively.