## NMath Premium 7.2.0.25

**NMath Premium 7.2.0.25**

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

The foundational .NET math and statistics library, NMath, includes complex number classes, general vector and matrix classes, structured sparse matrix classes and factorizations, general sparse matrix classes and factorizations, general matrix decompositions, least squares solutions, random number generators, Fast Fourier Transforms (FFTs), numerical integration and differentiation methods, function minimization, curve fitting, root-finding, linear and nonlinear programming.

Additionally, hundreds of statistical routines are supported including dozens of probability density functions (PDF), descriptive statistics, linear regression, hypothesis tests, analysis of variance (ANOVA), principle component analysis, non-negative matrix factorization (NMF), partial least squares (PLS), data filtering, Savitzy-Golay fitting and smoothing along with many other routines.

All NMath routines are callable from any .NET language, including C#, Visual Basic.NET, and F#.

For many computations, NMath uses the Intel® Math Kernel Library (MKL), 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 (Linear Algebra PACKage). This gives NMath routines accuracy you can trust, and performance levels comparable to C or Fortran. Our state of the art, object-oriented interfaces are easy to use and leverage the full power of the .NET platform.

Summary of NMath Features

Basic Math

Single- and double-precision complex number classes.

Random number generators for various probability distributions, independent streams of random numbers using skip-ahead and leapfrog methods, and quasirandom sequences using Niederreiter and Sobol methods.

Fast Fourier Transforms (FFTs), Wavelets, and linear convolution and correlation.

Special functions, such factorial, binomial, the gamma function and related functions, Bessel functions, elliptic integrals, and many more.

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.

Functions

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.

Linear Programming (LP), Non-Linear Programming (NLP), and Quadratic Programming (QP) using the Microsoft Solver Foundation.

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.

Summary of NMath Statistics Features

A data frame class for holding data of various types (numeric, string, boolean, datetime, and generic), with methods for appending, inserting, removing, sorting, and permuting rows and columns.

Functions for computing descriptive statistics, such as mean, variance, standard deviation, percentile, median, quartiles, geometric mean, harmonic mean, RMS, kurtosis, skewness, and many more.

Special functions, such as factorial, log factorial, binomial coefficient, log binomial, log gamma, incomplete gamma, beta, and incomplete beta.

Probability density function (PDF), cumulative distribution function (CDF), inverse CDF, and random variable moments for a variety of probability distributions, including beta, binomial, chi-square, exponential, F, gamma, geometric, logistic, log-normal, negative binomial, normal (Gaussian), Poisson, Student’s t, triangular, and Weibull distributions.

Multiple linear regression.

Basic hypothesis tests, such as z test, t-test, and F-test, with calculation of p-values, critical values, and confidence intervals.

One-way and two-way analysis of variance (ANOVA) and analysis of variance with repeated measures (RANOVA).

Non-parametric tests, such as the Kolmogorov-Smirnov test and Kruskal-Wallis rank sum test.

Multivariate statistical analyses, including principal component analysis, factor analysis, hierarchical cluster analysis, and k-means cluster analysis.

Nonnegative matrix factorization (NMF), and data clustering using NMF.

Partial least squares (PLS), including cross validation and the SIMPLS and NIPALS algorithms.

Data filtering, including a moving average filter and a Savitzky-Golay smoothing filter.

------------------------------------------------------------------------------

Version 7.0.0 Major library modernization updates, please read.

------------------------------------------------------------------------------

- 32-bit support has been dropped. Demand for this has been waning for years. Dropping

it has made library usage simpler and easier.

- GPU support has been dropped. As developers, we liked the automatic GPU offloading.

However, the technical advantages have dissipated as multi-core processors have improved.

We believe that this is no longer compelling for a general math library.

- NMath Stats has been merged into NMath. This is for ease of use for our users as nearly

all customers bought both libraries.

- In summer of 2019, our pricing will be streamlined to reflect these changes.

There will be one price for a perpetual NMath license and there will be one price for

annual NMath maintenance which includes technical support and all upgrades available on NuGet.

NMath Stats will no longer be sold separately.

- To simplify development, we have merged the four NMath namespaces into one,

CenterSpace.NMath.Core. Originally, CenterSpace had four NMath products and four namespaces, these

namespaces CenterSpace.NMath.Core, CenterSpace.NMath.Matrix, CenterSpace.NMath.Stats,

CenterSpace.NMath.Analysis reflect that history. We have left namespace stubs so users

won't experience any breaking changes during library upgrades.

- We have dropped charting. The ecosystem is full of powerful visualization packages.

We have only three main data structures in NMath: vectors, matrices and data frames;

all of which can be easily visualized with different charting packages.

- Some of our optimizations use Microsoft Solver Foundation. If you use these, you'll need

be on the .NET Framework track and not on the .NET Core track.

- We have dropped the installers. The ubiquity and compelling ease of NuGet for our

users has made these obsolete.

Version 7.0.0 Major library modernization updates, please read.

------------------------------------------------------------------------------

- 32-bit support has been dropped. Demand for this has been waning for years. Dropping

it has made library usage simpler and easier.

- GPU support has been dropped. As developers, we liked the automatic GPU offloading.

However, the technical advantages have dissipated as multi-core processors have improved.

We believe that this is no longer compelling for a general math library.

- NMath Stats has been merged into NMath. This is for ease of use for our users as nearly

all customers bought both libraries.

- In summer of 2019, our pricing will be streamlined to reflect these changes.

There will be one price for a perpetual NMath license and there will be one price for

annual NMath maintenance which includes technical support and all upgrades available on NuGet.

NMath Stats will no longer be sold separately.

- To simplify development, we have merged the four NMath namespaces into one,

CenterSpace.NMath.Core. Originally, CenterSpace had four NMath products and four namespaces, these

namespaces CenterSpace.NMath.Core, CenterSpace.NMath.Matrix, CenterSpace.NMath.Stats,

CenterSpace.NMath.Analysis reflect that history. We have left namespace stubs so users

won't experience any breaking changes during library upgrades.

- We have dropped charting. The ecosystem is full of powerful visualization packages.

We have only three main data structures in NMath: vectors, matrices and data frames;

all of which can be easily visualized with different charting packages.

- Some of our optimizations use Microsoft Solver Foundation. If you use these, you'll need

be on the .NET Framework track and not on the .NET Core track.

- We have dropped the installers. The ubiquity and compelling ease of NuGet for our

users has made these obsolete.