- complex number
- scientific notatoin
- arbitrary precision support
- interval arithmetics
- a Math table data structure to store table values
- Ordinary Least Square solver
- sequence
- Fibonacci sequence

- uniroot finding algorithm:
- Brent
- Halley
- Newton

- common physical constants

## Optimization

- univariate optimization:
- Brent
- Fibonacci
- Golden-ratio

- unconstrained optimization:
- conjugate gradient
- Fletcher-Reeves
- Powell
- Zangwill
- Quasi-Newton
- BFGS
- DFP
- steepest-descent
- Netwon-Raphson
- Gauss-Newton

- constrained optimization:
- penalty method

- Nelder-Mead optimization
- least P-th minmax optimization

## Pseudo Random Number Generators

- linear random number generators
- Mersenne Twister
- Multivariate random vector generators
- Multinormal
- Multinomial

## SDE

- Stochastic Differentiation Equations (SDE)
- modeling
- simulation/random walk

- SDE integration
- Euler scheme
- Milstein scheme

- Brownian motion
- Bessel process

## Statistics

- descriptive statistics (all support incremental computation):
- mean
- variance
- covariance
- skewness
- kurtosis
- higher moments

- ranking statistics:
- min
- max
- rank
- quantile

- empirical distribution
- distributions:
- Beta
- Chi-square
- Durbin-Watson
- Exponential
- F
- Gamma
- Kolmogorov
- Normal
- Rayleigh
- T
- Weibull

## OPTIM

This is a collection of the advanced optimization algorithms.

- linear programming (LP)
- quadratic programming (QP)
- second order conic programming (SOCP)
- semi-definite programming (SDP)
- sequential quadratic programming (SQP)
- mixed linear integer programming (MIP)
- genetic algorithms (GA)
- differential evolution optimization (DE)

## NM Dev

**NM Dev** is a math library of numerical algorithms. It allows engineers to develop very high quality solutions for mathematical problems very rapidly. You will take less time to produce more elegant, object-oriented code that is better tuned, has fewer bugs and runs faster. NM Dev is an object-oriented, high performance, extensively tested, and professionally documented library of numerical methods. It is a large collection of numerical algorithms so coded such that they are solidly object-oriented, unified and testable. We have been writing numerical code for more than a decade since year 2010. Learning from our a decade of experience coding SuanShu (then popular math library now deprecated), we write NM Dev from scratch to make it even better in all ways.

NM Dev has for each mathematical concept a class, instead of a procedure like our competitors’ products. More importantly, these classes are designed so that they are very easy-to-use and easy-to-integrate. They can be assembled and connected in many ways to construct more complicated concepts, hence new classes. The built-in and user-defined, old and new, simple and complex classes all conform to the same design standard to ensure that they are compatible. NM Dev is to engineering solution as Lego is to toy model. NM Dev’s core technology is the design standard and this collection of classes. The goal is that the user, who has little programming experience or understanding in mathematics, can quickly put together these classes to create a solution for his complex problem. For him to assemble our classes to construct an application is as easy as a child assembles Lego pieces to construct a toy robot. Lego has simple pieces like bricks and gears and complex ones like mini-figures. NM Dev has simple classes like matrix and vector, complex ones like regression, and very sophisticated ones like PDE solvers. Using NM Dev, the user will find solving PDE not more difficult or too different from solving zero for equation.

# References

There are a number of ways to use NM Dev.

# Tutorials

## Programming

NM Dev can be used as a programming library component in a software project. For details please read NM Dev tutorials.

## SuanShu.net

SuanShu can be used in the .NET environment such as in a C# project or Excel. For details, please read SuanShu.net

## Scripting

SuanShu can be used in a similar manner to Matlab/Octave/R/Scilab for research, data analysis and prototyping. For details please read SuanShu Scripting.

## STATS

This is a collection of advanced statistics algorithms.

- cointegration
- covariance selection
- factor analysis
- hidden Markov model (Rabiner)
- hidden Markov model (mixture models: Beta, Binomial, Exponential, Gamma, Log-Normal, Normal, Poisson)
- hypothesis testing
- Kalman filter
- LASSO (Least Absolute Shrinkage and Selection Operator)
- linear regression
- principal component analysis
- stochastic process simulation
- time series analysis

## Hypothesis Testing

- Kolmogorov-Smirnov
- D’Agostino
- Jarque-Bera
- Lilliefors
- Shapiro-Wilk
- One-way ANOVA
- T
- Kruskal-Wallis
- Siegel-Tukey
- Van der Waerden
- Wilcoxon rank sum
- Wilcoxon signed rank
- Breusch-Pagan
- Glejser
- Harvey-Godfrey
- White
- ADF
- Bartlett
- Brown-Forsythe
- F
- Levene

## Linear Regression

- OLS regression
- logistic regression
- GLM regression
- family: Binomial, Gamma, Gaussian, Inverse Gaussian, Poisson
- quasi-family: Binomial, Gamma, Gaussian, Inverse Gaussian, Poisson

- GLM model selection