NMath 5.1 | CenterSpace Software

By: Centerspace  06-Dec-2011
Keywords: Numerics, Linear Algebra

The NMath .NET math library contains foundational classes for object-oriented numerics on the .NET platform. Product features include:

Basic Math

  • Single- and double-precision complex number classes.

Linear Algebra

  • Full-featured vector and matrix classes for four datatypes: single- and double-precision floating point numbers, and single- and double-precision complex numbers.
  • Flexible indexing using slices and ranges.
  • Overloaded arithmetic operators with their conventional meanings for those .NET languages that support them, and equivalent named methods (Add(), Subtract(), and so on) for those that do not.
  • Full-featured structured sparse matrix classes, including triangular, symmetric, Hermitian, banded, tridiagonal, symmetric banded, and Hermitian banded.
  • Functions for converting between general matrices and structured sparse matrix types.
  • Functions for transposing structured sparse matrices, computing inner products, and calculating matrix norms.
  • Classes for factoring structured sparse matrices, including LU factorization for banded and tridiagonal matrices, Bunch-Kaufman factorization for symmetric and Hermitian matrices, and Cholesky decomposition for symmetric and Hermitian positive definite matrices. Once constructed, matrix factorizations can be used to solve linear systems and compute determinants, inverses, and condition numbers.
  • General sparse vector and matrix classes, and matrix factorizations.
  • Orthogonal decomposition classes for general matrices, including QR decomposition and singular value decomposition (SVD).
  • Advanced least squares factorization classes for general matrices, including Cholesky, QR, and SVD.
  • LU factorization for general matrices, as well as functions for solving linear systems, computing determinants, inverses, and condition numbers.
  • Classes for solving symmetric, Hermitian, and nonsymmetric eigenvalue problems.
  • Extension of standard mathematical functions, such as Cos(), Sqrt(), and Exp(), to work with vectors, matrices, and complex number classes.


  • Classes for encapsulating functions of one variable, with support for numerical integration (Romberg and Gauss-Kronrod methods), differentiation (Ridders' method), and algebraic manipulation of functions.
  • Polynomial encapsulation, interpolation, and exact differentiation and integration.
  • Classes for minimizing univariate functions using golden section search and Brent's method.
  • Classes for minimizing multivariate functions using the downhill simplex method, Powell's direction set method, the conjugate gradient method, and the variable metric (or quasi-Newton) method.
  • Simulated annealing.
  • Least squares polynomial fitting.
  • Nonlinear least squares minimization, curve fitting, and surface fitting.
  • Classes for finding roots of univariate functions using the secant method, Ridders' method, and the Newton-Raphson method.
  • Numerical methods for double integration of functions of two variables.
  • Nonlinear least squares minimization using the Trust-Region method, a variant of the Levenberg-Marquardt method.
  • Curve and surface fitting by nonlinear least squares.
  • Classes for solving first order initial value differential equations by the Runge-Kutta method.

Integration with .NET Standard Libraries

  • Fully persistable data classes using standard .NET mechanisms.
  • Integration with ADO.NET.
  • Plotting using the Microsoft Chart Controls for .NET.

Keywords: Linear Algebra, Numerics

Other products and services from Centerspace


License Agreement | CenterSpace Software

APPLICABLE LAWS: Any claim arising under or relating to this Agreement shall be governed by the internal substantive laws of the State of Oregon or federal courts located in Oregon, without regard to principles of conflict of laws. Do not copy, install, or use the "Materials" provided under this license agreement, until you have carefully read the following terms and conditions.


NMath Stats 3.4 | CenterSpace Software

Special functions, such as factorial, log factorial, binomial coefficient, log binomial, log gamma, incomplete gamma, beta, and incomplete beta. NMath Stats is a .NET statistics library containing classes for data manipulation, statistical computation, and biostatistics. Data filtering, including a moving average filter and a Savitzky-Golay smoothing filter.


Benchmarks | CenterSpace Software | C# and .NET Math Libraries

For many computations, NMath uses the Intel® Math Kernel Library , which contains highly-optimized, extensively-threaded versions of the C and FORTRAN public domain computing packages known as the BLAS (Basic Linear Algebra Subroutines) and LAPACK. The data also show the negligible overhead relative to straight C or C++ involved in invoking MKL from managed .NET code. Each test was run 10 times and the average time was computed.


Professional Services | CenterSpace Software

We will work with you to design a customized training course that shortens your learning curve, teaches best practices, and provides immediate returns in increased productivity and application performance. Consulting Our developers can assist you in all phases of your numerical development projects, providing expertise and hands-on support in design, development, optimization, and deployment.


Products | CenterSpace Software | C# and .NET Math Libraries

The NMathTM .NET math and statistics libraries from CenterSpace Software provides numerical components for financial, engineering, and scientific applications on the .NET platform.


Design Philosophy | CenterSpace Software

Our goal at CenterSpace is to employ all the tools of object-oriented design to balance these sometimes opposing goals into a consistent, stepwise-discoverable framework. New users can explore the NMath framework and quickly become productive, and NMath functionality can easily be incorporated into existing projects.