NMath Changelog ------------------------------------------------------------------------------ Version 4.1.0 ------------------------------------------------------------------------------ - Upgraded to Intel MKL 10.2 Update 5 with resulting performance increases. - Replaced CLI C++ kernel with a pure C# kernel that invokes MKL using PInvoke() to improve .NET 4.0 experience. - Added class FirstOrderInitialValueProblem to encapsulate a first order initial value differential equation. - Added class RungeKuttaSolver for solving first order initial value differential equations by the Runge-Kutta method. - Added SavitzkyGolay class to generate filtering coefficients for data smoothing or for computing smooth Nth-derivatives in noisy data. - Added a SavitzkyGolayFilter class to both smooth data or compute the smoothed n-derivative of the the data. New boundary handling options for smooth transitions to the data boundaries. - Added INonlinearLeastSqMinimizer and IBoundedNonlinearLeastSqMinimizer interfaces. Class TrustRegionMinimizer now implements IBoundedNonlinearLeastSqMinimizer. Class LevenburgMarquardtMinimizer now implements INonlinearLeastSqMinimizer. - Added classes BoundedOneVariableFunctionFitter and BoundedMultiVariableFunctionFitter which derive from OneVariableFunctionFitter and MultiVariableFunctionFitter, respectively, and accept linear bounds on the solution. - Class OneVariableFunctionFitter is now templatized on INonlinearLeastSqMinimizer, and BoundedOneVariableFunctionFitter is templatized on IBoundedNonlinearLeastSqMinimizer. - Class MultiVariableFunctionFitter is now templatized on INonlinearLeastSqMinimizer, and class BoundedMultiVariableFunction is templatized on IBoundedNonlinearLeastSqMinimizer. - Added GSVDecomp and GSVDecompServer classes to compute the generalized singular value decomposition (GSVD) of a pair of general rectangular matrices. - Added class BoxCoxTransformation which performs a Box-Cox power transformation to make non-normal data resemble normally-distributed data. - Added accessor for the Hessian in class VariableMetricMinimizer. - Added "force through origin" option to class PolynomialLeastSquares. - Fixed several minor issues with CLS compliance. ------------------------------------------------------------------------------ Version 4.0.0 ------------------------------------------------------------------------------ - Upgraded to Intel MKL 10.2 Update 1. - Repackaged CenterSpace.NMath.Core, CenterSpace.NMath.Matrix, and CenterSpace.NMath.Analysis namespaces into a single product to simplify product dependencies. - Reconfigured the NMath CLI C++ kernel to load the appropriate native kernel (32-bit or 64-bit) at runtime. You can now build your NMath application using the "Any CPU" build configuration, and deploy to either 32-bit or 64-bit environments. - Added classes FloatForward1DFFT, DoubleForward1DFFT, FloatComplexForward1DFFT, and DoubleComplexForward1DFFT to the CenterSpace.NMath.Core namespace for calculating the 1D discrete fourier transform (DFT). - Added classes FloatComplexBackward1DFFT and DoubleComplexBackward1DFFT to the CenterSpace.NMath.Core namespace for calculating the inverse 1D DFT. - Added classes FloatForward2DFFT, DoubleForward2DFFT, FloatComplexForward2DFFT, and DoubleComplexForward2DFFT to the CenterSpace.NMath.Core namespace for calculating the 2D discrete fourier transform (DFT). - Added classes FloatComplexBackward2DFFT and and DoubleComplexBackward2DFFT to the CenterSpace.NMath.Core namespace for calculating the inverse 2D DFT. - Added classes FloatSymmetricBackward1DFFT and DoubleSymmetricBackward1DFFT to the CenterSpace.NMath.Core namespace for exploiting the complex conjugate symmetry of forward FFT results computed on real data when inverting this data back to the real domain. - Added classes FloatSymmetricSignalReader, FloatSymmetric2DSignalReader, DoubleSymmetricSignalReader, and DoubleSymmetric2DSignalReader to the CenterSpace.NMath.Core namespace for unpacking symmetric complex conjugate signals. - Added advanced, highly configurable classes FFTConfiguration, FloatGeneral1DFFT, and DoubleGeneral1DFFT to the CenterSpace.NMath.Core namespace for computing FFTs with strided signal data. - Added classes Float1DConvolution, Double1DConvolution, FloatComplex1DConvolution, and DoubleComplex1DConvolution to the CenterSpace.NMath.Core namespace for performing linear convolutions on real and complex 1D data. - Added classes Float1DCorrelation, Double1DCorrelation, FloatComplex1DCorrelation, and DoubleComplex1DCorrelation to the CenterSpace.NMath.Core namespace for performing linear correlation on real and complex 1D data. - Added FrobeniusNorm() methods to NMath general matrix classes for computing the Frobenius norm. - Added class LevenburgMarquardtMinimizer to the CenterSpace.NMath.Analysis namespace for solving nonlinear least squares problems using the Levenberg-Marquardt method. ****************************************************************************** * NMath was previously distributed as three separate products: * NMath Core, NMath Matrix, and NMath Analysis. ****************************************************************************** ------------------------------------------------------------------------------ NMath Core Version 2.6.0 ------------------------------------------------------------------------------ - Upgraded to Intel MKL 10.1 Update 2. - Added custom visualizers for matrix and vector classes. - Added overload to DoubleVector.Add() method for adding a vector to another vector in place. - Improved efficiency of NMathFunctions.SumOfSquares(). - Added MNMathFunctions.Pseudoinverse() method using transpose and inverse. - Organized classes into solution folders inside Visual Studio. - Added VS 2008 solutions for all examples and source editions. - Added Add(System.Object) method to all types which implement IEnumerable. ------------------------------------------------------------------------------ NMath Matrix Version 3.0.0 ------------------------------------------------------------------------------ - Upgraded to Intel MKL 10.1 Update 1. - Added class DoubleCOWeightedLeastSq for solving weighted least squares (WLS) problems using a complete orthogonal (CO) decomposition technique. - Added class DoubleIterativelyReweightedLeastSq for solving iteratively reweighted least squares (IRLS) problems. - Added classes DoubleLeastSqWeightingFunction, DoubleBisquareWeightingFunction, and DoubleFairWeightingFunction for least squares weighting functions. - Added classes DoubleSparseVector, DoubleComplexSparseVector, and SparseVectorData for storing sparse vectors. - Added classes DoubleCsrSparseMatrix, DoubleSymCsrSparseMatrix, DoubleComplexCsrSparseMatrix, DoubleHermCsrSparseMatrix, SparseMatrixData, ISparseMatrixStorage, and CompressedSparseRow for storing general sparse matrices in compressed sparse row (CSR) format. - Added classes SparseMatrixFact, DoubleSparseFact, DoubleSparseSymFact, DoubleSparseSymPDFact, DoubleComplexSparseFact, DoubleSparseHermFact, and DoubleSparseHermPDFact for factoring general sparse matrices. - Added MatrixFunctions.Pseudoinverse() method using SVD. - Organized classes into solution folders inside Visual Studio. - Added VS 2008 solutions for all examples and source editions. - Added Add(System.Object) method to all types which implement IEnumerable. ------------------------------------------------------------------------------ NMath Analysis Version 2.0.0 ------------------------------------------------------------------------------ - Upgraded to Intel MKL 10.1 Update 1. - Added class TrustRegionMinimizer for solving both constrained and unconstrained nonlinear least squares problems using the Trust Region method, a variant of the Levenberg-Marquardt method. - Added class OneVariableFunctionFitter for fitting generalized one variable functions to data. - Added class MultiVariableFunctionFitter for fitting generalized multivariable functions to data. - Organized classes into solution folders inside Visual Studio. - Added VS 2008 solutions for all examples and source editions. - Added Add(System.Object) method to all types which implement IEnumerable.