What's New in Version 9.0
This page lists what is new in Version 9.0 of Numerics.NET in point form. For a more in-depth discussion of some of these features, see our blog post about version 9.
.NET Core and .NET Standard support
- Support for .NET Core 3.1.
- Support for .NET Standard 2.0.
- Support for .NET Framework 4.6.2.
- Support for .NET 6.0 and 8.0.
- All packages are available on the Nuget Gallery.
Linear algebra
Tensor library
- A rich multi-dimensional array (tensor) type.
- Powerful features like broadcasting and advanced indexing.
- A comprehensive set of mathematical functions, linear algebra, and more.
- Easy interop with both managed arrays and external or native arrays.
- Excellent performance with the infrastructure in place to grow even faster.
Learn more about the tensor library in our
Other improvements
- New: Schur decomposition and generalized Schur (QZ) decomposition.
- New: Vectors and matrices can use native memory for element storage.
- New: Span-based API for core linear algebra and signal processing operations.
- Improved: Upgraded native linear algebra libraries to Intel OneAPI version 2024.1.
Mathematics
General improvements
- Optimized complex arithmetic using hardware intrinsics.
- Performance improvements in arbitrary precision numbers.
- New random number generators: Permuted Linear Congruential (PLC) generator.
- New random generator methods provide parity with recent improvements in .NET.
Generic arithmetic
- All numerical types (
Quad,BigInteger,BigRational,BigFloat,Complex<T>) support the generic arithmetic interfaces introduced in .NET 7.0. Operations<T>now supports additional methods, including:ExpM1,Log2,Log1p,MaxNumber…Operations<T>has been optimized for nullable value types and complex numbers.- Generic versions of 1D equation solvers, numerical integrators, linear curve fitting.
More math
- New: Quadratic program solver based on the method of Goldfarb and Idnani.
- New: Barycentric interpolation.
- New window functions: Blackman-Nuttall and Lanczos
Special functions
- New: Bessel and Airy functions with complex arguments.
- New: Spherical Bessel functions of real order.
- New: Kelvin functions.
- New: Jacobi Epsilon and Zeta functions, Gudermannian.
- New: Hurwitz Zeta function, generalized harmonic numbers.
- New: Chebyshev-Hermite and Jacobi orthogonal polynomials.
- New: Bernoulli numbers and Bernoulli polynomials.
Statistics and data analysis
Aggregators
- Improved performance for aggregators.
- New: Aggregators support arbitrary intermediate and result types.
- New: Select values to include in an aggregation using predicates.
- New: Accumulator types for incremental evaluation of aggregations.
Probability distributions
- New: Arcsine distribution
- New: Hyperbolic distribution
- New: Inverse chi square distribution
- New: Inverse gamma distribution
- New: Inverse Gaussian distribution
- New: Inverse Weibull distribution
- New: Johnson family of distributions
- New: Maxwell distribution
- New: Normal inverse Gaussian distribution
Statistical models
- New: PRESS and Predicted R Squared for linear regression.
- New: Track steps in a stepwise regression.
Version 9.0.1
September 2024
- The performance of BigInteger has been improved across the board. The difference is particularly noticeable for small numbers. By extension, BigRational and BigFloat benefit as well.
- The scaling and standardization of features for Pricipal Component Analysis has been enhanced. Centering of variables can be disabled, and a new scaling option has bee added that ensures that the maximum absolute value of a variable is 1.
- Improvements in the calculation of the nearest correlation matrix. The method is more reliable and now has the option to specify a minimum value for the eigenvalues of the resulting matrix.
Version 9.0.2
October 2024
- New VandermondeMatrix<T> class to represent Vandermonde matrices and solve Vandermode systems of equations efficiently.
- New FiniteDifferenceMethod class to represent finite difference methods for approximating derivatives of functions.
- Improvements to the Derivative method to support higher-order derivatives, higher order methods, and more.
- Fixed an issue where the PartialLeastSquares class would not compute the predicted values correctly under some conditions.
- Fixed a regression in the Pricipal Component Analysis class.
- Several performance improvements and minor bug fixes.
Version 9.0.3
November 2024
- Support for .NET 9.0 and C# 13 features, including Span-based
paramslists and collection expressions for vectors and matrices. - New accumulator and aggregator for the Sum of Absolute Differences (SAD) of two sequences.
- Many new tensor operators, taking advantage of new .NET 9.0 functionality.
- Performance optimizations in the tensor library for ternary operators.
Version 9.0.4
November 2024
- New ChiDistribution class to represent the chi distribution and compute probabilities and quantiles.
- New HalleySolver class to solve equations using Halley’s method, a third-order root-finding algorithm.
- New Span based API’s: polynomial interpolation; mean, standard deviation, skewness and kurtosis estimates.
- New extension methods for sampling without replacement.
- New left and right tail probabilities for Parameter objects.
- Fixed a problem with scaling the rows of sparse matrices.
- Fixed a problem when aligning vectors with different indexes with identical values.
Version 9.0.5
January 2025
- New IntegrationRules class to create stand-alone integration rules for a variety of weight functions.
- Considerably improved the performance of the adaptive numerical integrator.
- Methods to compute the Discrete Cosine Transform and its inverse.
- Optimized the calculation of the eigenvalues and eigenvectors of a symmetric tridiagonal matrix.
- Improvements to the GumbelDistribution class to make a clearer distinction between the variants that model the smallest or the largest extreme value.
- New abbreviated aliases (
Pdf,Cdf, andInverseCdf) for some static methods of probability distributions. - Various minor bug fixes and performance improvements.
Version 9.0.6
February 2025
- Added the static Compare class to compare numbers and sequences within a specified tolerance.
- Added new special functions: Scaled versions of Airy functions and some Bessel functions, difference between modified Bessel and Struve functions, exponential integral of arbitrary order, inverse of the Digamma function.
- Performance improvements, including optimizing the handling of static arrays to minimize allocations and overhead.
- Improved consistency in the names of some special functions, including Hankel functions and exponential integrals. The methods with old names have been marked obsolete and will eventually be removed.
Version 9.0.7
February 2025
- New QuadraticDiscriminantAnalysis (QDA) class to classify data using a quadratic decision boundary.
- Fligner-Killeen test for equality of variances.
- New probability distributions: Folded normal distribution and hyperbolic secant distribution.
- New LinearAlgebraPool<T> to provide memory-efficient storage for short-lived vectors and matrices.
- Performance improvements enabled by
LinearAlgebraPool<T>in many algorithms. - Improved and expanded the documentation of probability distributions and statistical tests, including contingency tables.
Version 9.1.0
March 2025
- New algorithms for global optimization: Particle Swarm Optimization, Differential Evolution, Covariance Matrix Adaptation - Evolution Strategy (CMA-ES), Simulated Annealing.
- Improved the performance of the pure .NET Fourier transforms, especially for sizes that are not the product of small primes.
- Added methods to compute an orthogonal/unitary basis for the image (column space, row space) and kernel (null space) of a matrix.
- Improved the diagnostics and inference performance of the Linear Discriminant Analysis (LDA) class.
- The minor version number was bumped to 1 to indicate minor changes in the inheritance hierarchy for optimizers and the LDA classes.
Version 9.1.2
April 2025
- New probability distributions: the Zipf distribution, also known as the zeta distribution, and the Zipfian distribution which is a truncated version with finite support.
- New effect size measures (Cohen’s d and Hedges’ g) for one and two sample T tests.
- New MultipleTesting class to apply various correction methods (Bonferroni, Holm, etc.) when running multiple tests.
- Support for generalized harmonic numbers and related functions like PowerSum (Faulhaber’s function).
- New methods for cumulative minimum and maximum of vectors.
- New methods for normalizing vectors and rows and columns of matrices.
- Improved the reliability of logistic regression.
Version 9.1.3
May 2025
- New methods for automatic bin selection when creating histograms.
- New effect size measures (\eta^2) (eta squared) and (\omega^2) (omega squared)) for Analysis of Variance models.
- Fixed an indexing issue with vectors that use
Memory<T>to store their data. - Improved F# support.
Version 9.1.4
August 2025
- New algorithms and other improvements for finding the zeros of a function:
- Ridders’ method (RiddersSolver)
- Regula Falsi variants with improved convergence (RegulaFalsiSolver): standard, Illinois, Pegasus and Anderson-Bjork methods.
- Allocation-free implementation of many of these methods.
- New probability distribution: Type XII Burr.
Version 9.1.5
October 2025
- Independent Component Analysis (ICA):
New FastIca class
that implements the
FastICAalgorithm for separating multivariate signals into statistically independent components. - New methods for computing the value and derivative of orthogonal polynomials.
Older versions
Want to go further back? See what was new in version 8.0.