July Release of NMath and NMath Stats

We are currently working hard on our upcoming July release of our NMath and NMath Stats C# math libraries. This release will add many new features from Runge-Kutta to automatic Peak Finding algorithms as well as address our most frequent support requests. Developers using our math libraries currently will find the new release build-compatible with the prior release. Upgrades are provided free of charge to customers with current annual maintenance contracts.  Maintenance contracts are available through our webstore.

Pure C#

Both libraries are now supported by a new pure C# math kernel doing away with our old C++ kernel. Because we are now a pure .NET assembly, deployment of NMath based applications is simplified by eliminating the Microsoft C++ runtime library dependency. As with all releases we will be posting our updated performance benchmarks at the time of the release.

Full Control

Additionally, our libraries have been re-architected to dynamically link to both native numerical libraries and ( and perhaps more importantly for our customers ) the Intel OMP threading library (libiomp.dll) . This means that our customers will have complete control over the threading library. In the past, we statically linked in OMP. Now, we are picking up OMP dynamically and thereby avoid collisions between statically and dynamically linked OMP libraries. In a nutshell, NMath will now play more nicely with libraries from other vendors.

New Features

Now for the fun stuff. The table below summarized the new features in NMath 4.1 and NMath Stats 3.2.

Product Feature Summary
NMath 4.1 Savitzky-Golay derivatives Class generates correlation coefficients to compute the smoothed Savizky-Golay derivatives of sampled data.
Savitzky-Golay smoothing See blog article on SG smoothing
Peak Finding Class finds peaks in sampled data using Savitzky-Golay smoothed polynomials and their derivatives.
Runge-Kutta ODE solver Class for solving ODE’s
Bounded function fitting Class for fitting general nonlinear models with bounds on the parameters. Also see this blog article for code examples of bounded nonlinear curving fitting.
Correlated random number generators Class creates streams of induced correlated random numbers typically for simulation studies using Monte Carlo.
NMath Stats 3.2 Johnson System of distributions The Johnson system of distributions is based on three possible transformations of a normal distribution–exponential, logistic, and hyperbolic sine–plus the identity transformation:

X = xi + (lambda * T((z – gamma) / delta))

where z is a standard normal random variable, xi and lambda are shape parameters, delta is a scale parameter, gamma is a location parameter, and T is the transformation.

Kruskal-Wallis rank sum test The Kruskal-Wallis rank sum test is a non-parametric test for equality of population medians among groups. It is a non-parametric version of the classical one-way ANOVA.
Regression statistics for PolynomialLeastSquares [see below]
Regression statistics for OneVariableFunctionFitter Class provides a variety of regression statistics including the residual sum of squares, R squared, adjusted R squared, F statistic, and others.

I hope you find these new additions to the library useful in your application work. If you are looking for something specific that isn’t currently supported in our library, please contact us. We build custom numeric classes for existing and new customers on a regular basis.

Happy Computing,

Update: In the final release, NMath still has a dependency on the Visual C++ 2008 runtime (msvcr90.dll)

7 thoughts on “July Release of NMath and NMath Stats

  1. Exciting update!
    Is the Kruskal-Wallis rank sum test similar to the Mann-Whitey U/ Wilcoxon Rank Sum Test?

  2. Yes, the Kruskal-Wallis test is a generalization of the Mann-Whitney test that permits two or more groups.


  3. Thank you for update. We use a lot your library in our company. Unfortunately I can’t find classical Pearson’s Chi-squared Test for contingency table in NMath Stat 3.2.
    Do you plan to program it?


  4. Hi Alina,

    We’ve had several requests for this in the past, so we’ll try to get it into the next release. We’re planning the release right now, so if there are other features you’d like to see in NMath, please let us know!


  5. As commented on the release blog post, this version still has the C++ runtime requirement. Is this something that is likely to be fixed in the future, or is it a requirement of Intel MKL or something.


Leave a Reply

Your email address will not be published. Required fields are marked *