Extreme Optimization Numerical Libraries for .NET


.NET Core and .NET Standard support

  • Support for .NET Core 1.1 and 2.1.
  • Support for .NET Standard 1.3 and 2.0.
  • Support for .NET Framework 3.5, 4.0, 4.72 and later.
  • All packages are available on the Nuget Gallery.

Linear algebra

Major enhancements
  • Broadcasting vectors in matrix operations.
  • Enable Conditional Numerical Reproducibility option for native libraries.
  • Upgraded native libraries to Intel® Math Kernel Library version 2019 Update 0.
  • Upgraded managed linear algebra library to LAPACK 3.7.0.
  • Improved range and accuracy of matrix exponential.
  • Vector Map methods that include index as delegate argument.
New matrix decompositions
  • Generalized Eigenvalue Decomposition.
  • Generalized Singular Value Decomposition (GSVD).
  • Sparse singular value decomposition.
  • RQ decomposition, QL decomposition, and LQ decomposition.
  • Access to 'thin' version of the orthogonal factor Q in a QR decomposition.
  • Compute factors of symmetric and Hermitian indefinite decomposition.
Performance improvements
  • Improve performance for level 2 managed sparse BLAS.
  • Improve performance for various vector operations.
  • The threshold for parallel execution of vector maps can now be configured.


General improvements
  • The generic Operations<T> class has been optimized to eliminate nearly all overhead for the most frequently used operations on the most common argument types.
  • ParallelOptions is now exposed for all algorithms to enable cancellation and other scenarios.
  • Combinatorial iterators to enumerate all combinations, permutations, and Cartesian products of sets of items.
  • New overloads for numerical integration methods that take Interval objects to specify bounds.
  • Inverse hyperbolic functions for decimal and quad precision numbers.
  • The NonlinearProgram class has a new constructor that accepts variable names.
  • Symbolic constraints that are linear in the variables are now recognized as such.
  • The Nonlinear Program solver can now recover when it encounters an infeasible subproblem.
  • Up to 30% improvement in the performance of the Linear Program solver
  • Limited Memory BFGS Optimizer.
  • LeastSquaresOptimizer base class for nonlinear least squares algorithms.
  • Trust Region Reflexive algorithm for nonlinear least squares.
  • Trust Region Reflexive algorithm option in nonlinear curve fitting.
  • Improved documentation for nonlinear least squares algorithms.
Special functions
  • Jacobi elliptic functions.
  • Zeros of Bessel and Airy functions.
  • The performance and accuracy of Bessel functions of the first and second kind has been improved.
  • Polygamma function.
  • Modified Bessel functions of real order.
  • "Partial application" functions for incomplete and regularized Gamma and Beta functions.
  • Zernike polynomials.

Statistics and data analysis

Data access library
  • Data Access Library providing a unified API for reading and writing data frames, matrices, and vectors.
  • Reading and writing R's .rda/.rdata and .rds files.
  • JSON serialization.
  • Other supported formats include: delimited text (CSV, TSV...), fixed-width text, Matrix Market, Matlab®, stata®
Statistical models
  • Use R-style model formulas to specify statistical models.
  • Partial Least Squares (PLS) models.
  • Linear Discriminant Analysis.
  • Kernel Density Estimation.
  • Binomial Generalized Linear Model can now be used with count data.
  • Two-way ANOVA: support for Type I, Type II, and Type III sums of squares.
  • New ConditionalVariances property on GARCH models.
  • The performance of ARIMA model fitting has been improved.
  • Nicer Summarize for statistical models.
Hypothesis tests
  • Augmented Dickey-Fuller test.
  • Cramer-von Mises Goodness-of-fit test.
  • Tests for outliers: Grubbs' test, Generalized ESD test.
Data analysis
  • New aggregators: Range, Mode, CountUnique.
  • Improved support for custom aggregators based on accumulators.
  • R-style variations of quantiles.
  • LOESS and LOWESS smoothing.
  • More categorical encodings: Backward difference, Forward difference, Helmert, reverse Helmert, orthogonal polynomial encoding.
  • Non-central chi-square, non-central F, non-central beta, and non-central t distributions.
  • Anderson Darling distribution is now public.

Universal improvements

  • There now is one setup for both 32 and 64 bit operating systems.
  • The documentation has been fully updated to the latest API.
  • New and updated QuickStart samples illustrate the new API.

New math features

  • Complex numbers are now generic over the type of the real and imaginary parts.
  • Flexible genetic optimization framework.
  • Akima splines and cubic Hermite splines.
  • New special functions, including complex error function and orthogonal polynomials.
  • Smoothing signals: Savitsky-Golay and Moving Average smoothing.
  • Vector functions for complex single and double precision arguments.

New Data Frame Library features

  • Support for LINQ queries on data frames, vectors and matrices.
  • New groupings: fixed and expanding windows, partitions, groupings on value and quantiles, 2D pivot tables, and resampling.
  • Many new aggregators; improved efficiency of many aggregations.
  • New generic Descriptives class for collecting descriptive statistics of vectors.
  • Lookup nearest and join on nearest for ordered indexes.
  • New Recurrence type lets you specify date/time patterns for use in resampling time based data.

New vector and matrix library features

  • All vector and matrix classes are now generic, including sparse matrices and complex versions.
  • New static Vector and Matrix classes remove the need to specify the element type as a generic type parameter.
  • Specify mutability: including read-only snapshot, read-only view, and writable with copy-on-write semantics.
  • Many new methods for in-place and out-of-place calculations on vectors and matrices.
  • The native libraries have been upgraded to Intel MKL version 11.3 Update 2.
  • The native libraries now support Conditional Numerical Reproducibility.
  • The CUDA libraries for 64 bit have been upgraded to CUDA version 7.5.
  • New fully managed implementation of the linear algebra library for single-precision.

New statistics features

  • Verbose output when working in an interactive environment.
  • Full integration with the DataFrame library.
  • Categorical variables are expanded into indicator variables as needed.
  • Models can be persisted in a form suitable for deployment in predictive modeling applications.
  • Several new probability distributions have been added.

  • Data frame class supporting advanced data manipulation.
  • Support for GPU computing
  • Offload computations to the GPU.
  • Support for quadruple precision numbers with up to 34 digits, including our full vector and matrix library. Real and complex numbers are supported.
  • Smoothing cubic splines, monotonicity preserving splines.
  • GARCH models (Generalized AutoRegressive Conditional Heteroskedasticity).
  • Regularized linear regression models: Ridge regression, LASSO and elastic net.


  • Much improved support for F# development.
  • Akima and cubic Hermite splines.
  • Orthogonal polynomials: Chebyshev, Legendre, Laguerre...
  • Symmetric indefinite decomposition
  • Generic and complex sparse vectors and matrices
  • Factor analysis
  • Improved setup experience.


  • Automatic differentiation: symbolic computation of derivatives, gradients and Jacobians.
  • Extensible with built-in support for derivatives of methods in System.Math and most elementary and special functions in the library.
  • Backward differentiation with common sub-expression elimination generates optimal evaluation.
  • New SymbolicMath class that lets you optimize functions and solve equations specified as lambda expressions using automatic differentation.
  • Evaluation of (sequences of) classic orthogonal polynomials: Chebyshev (1st and 2nd kind), Hermite, Laguerre, Legendre and Gegenbauer.
  • Stepwise linear regression.
  • Regression fits of linearized curves: logarithmic, power, exponential, reciprocal...
  • 2x2 and RxC Contingency tables.


  • Optimization framework. Provides a generic model for defining and solving optimization problems.
  • Quadratic Programming. Solve quadratic optimization models with linear constraints.
  • Nonlinear Programming. Optimize nonlinear functions with linear or nonlinear constraints.
  • New Decimal functions extend all the functions in System.Math to the decimal type, including sin, cos, exp.
  • Improved elementary functions. Evaluate sine, cosine and tangent accurately for huge arguments.
  • Iterative sparse solvers Efficiently solve systems with many thousands of variables, optionally using preconditioners.
  • New probability distributions LogSeries and Maxwell.


  • .NET Framework Version 4.0 とVisual Studio 2010の並列処理サポート
  • 複数コア利用による計算スピードの向上 (.NET 4.0のみ)
  • 新しい疎線形プログラムソルバーは、100万変数の以上の問題を解くことが可能
  • ブランチとバウンドアルゴリズムを使った混合整数線形計画法
  • 新しい特殊関数: ハイパー幾何, Riemann zeta, 楕円積分, Fresnel関数, Dawsonの積分
  • FFTのウィンドウ関数の完全セット
  • 線形代数および任意精度のタイプでの6xまでのパフォーマンスの向上
  • F#での新しい50個のクィックスタートサンプル