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.
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.
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.
Now for the fun stuff. The table below summarized the new features in NMath 4.1 and NMath Stats 3.2.
|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.
Update: In the final release, NMath still has a dependency on the Visual C++ 2008 runtime (msvcr90.dll)