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

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 params lists 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, and InverseCdf) 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

Version 9.1.0

March 2025

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

Older versions

Want to go further back? See what was new in version 8.0.