Latest news

New this week: Trust region reflective algorithm for nonlinear least squares. more...

29 Aug

New this week: a mix of improvements to categorical variables, data frames, inverse hyperbolic functions, more more...

14 Jul

New this week: Limited Memory BFGS optimizer more...

5 Jul

New this week: Data Access Library: read & write data frames & matrices; formats include #R, #Matlab, CSV, #JSON more...

21 Jun

New this week: range, mode, unique count aggregators; All and Any methods for Boolean vectors; thin QR decomposition more...

02 May

Our customers

This is a partial list of companies who are using our libraries:

ABB Robotics
Astra Schedule
Babson College
Canadian Council on Learning
Canyon Associates
Caxton Associates
Constellation Energy
Duke University
Engelhard Corporation
Equipoise Software
Galileo International
Global Matrix
The Hartford
Infinera Corporation
JDS Uniphase
LaBranche & Co.
Learning & Skills Council
Jacobs Consultancy
Litman Gregory
Lucas Systems
Malvern Instruments
Merck & Co.
Monitor Software
NanoString Technologies
Paletta Invent
Parametric Portfolio Associates
RATA Associates
Standard & Poor's
Strategic Analysis Corporation
Univ. of Alicante
Univ. of South Carolina
US Army

New Version 6.0!

Try it for free with our fully functional 60-day trial version.

Download now!


"The de facto-standard library for linear algebra on the .NET platform is the Extreme Optimization Library."
  - Jon Harrop, author, F# for Scientists

"I have yet to see another package that offers the depth of statistical analysis that Extreme Optimization does, and I must say that I'm impressed with the level of service I've experienced."
  - Henry Oh, RBC Capital Markets

"I have made it my mission to institutionalize the value of good API design.  I strongly believe that this is key to making developers more productive and happy on our platform. It is clear that you value good API design in your work, and take to heart developer productivity and synergy with the .NET framework."
- Brad Abrams,
Lead Program Manager, Microsoft.

More testimonials

Extreme Optimization Numerical Libraries for .NET

Build financial, engineering and scientific applications faster

Nonlinear curve fit with confidence and prediction bands

The Extreme Optimization Numerical Libraries for .NET are a collection of general-purpose mathematical and statistical classes built for the Microsoft .NET framework.

The Extreme Optimization Numerical Libraries for .NET provide the first complete platform for technical and statistical computing built on and for the Microsoft .NET platform version 4.0 and above. It combines a math library, a vector and matrix library, and a statistics library in one convenient package.

New version 6.0! (March 2016) We add new algorithms and features all the time. See what's in the latest updates and download the trial today.

At a glance:


  • Seamless parallelism using .NET 4.0's Task Parallel Library.
  • Basic math: Complex numbers, Decimal math, 'special functions' like Gamma and Bessel functions, numerical differentiation.
  • Automatic differentiation: eliminate tedious and error-prone manual derivative calculations.
  • Solving equations: Solve equations in one variable, or solve systems of linear or nonlinear equations.
  • Curve fitting: Linear and nonlinear curve fitting, cubic splines, polynomials, orthogonal polynomials.
  • Optimization: State of the art algorithms for finding the minimum or maximum of a function in one or more variables, linear programming (LP), mixed integer programming (MIP), quadratic programming (QP) and nonlinear programming (NLP).
  • Genetic Optimization: Flexible framework for finding good solutions to hard problems.
  • Numerical integration: Compute integrals over finite or infinite intervals. Integrate over 2D and higher dimensional regions. Integrate systems of ordinary differential equations (ODE's).
  • Fast Fourier Transforms: 1D and 2D FFT's using 100% managed or fast native code (32 and 64 bit)
  • BigInteger, BigRational, and BigFloat: Perform operations with arbitrary precision.
  • Generic arithmetic framework: Write the code once and use it with any numerical type.
  • Random numbers: Random variates from any distribution, 4 high-quality random number generators, low discrepancy sequences, shufflers.

Vector and Matrix Library

  • Real and complex vectors and matrices.
  • Single, double and quadruple precision for elements.
  • Structured matrix types: including triangular, symmetrical and band matrices.
  • Sparse matrices.
  • Iterative sparse solvers and preconditioners.
  • Matrix factorizations: LU decomposition, QR decomposition, singular value decomposition, Cholesky decomposition, eigenvalue decomposition.
  • Portability and performance: Calculations can be done in 100% managed code, or in hand-optimized processor-specific native code (32 and 64 bit).
  • Generic library: Use built-in .NET types or any of the new arbitrary precision types to do matrix calculations.
  • Row and column labels: Add labels to your data and take advantage of automatic alignment on labels.

Data Analysis

  • Data frame: Advanced data analysis, manipulation and transformation.
  • Data munging: Sort and filter data, process missing values, remove outliers, etc. Supports .NET data binding.
  • Data manipulation: Reshape data frames, database-like joins, join to nearest, stacking and unstacking.
  • Grouping and Aggregation: Efficient aggregation over groupings by value or quantile, moving and expanding windows, partitions.


  • Statistical Models: Simple, multiple, nonlinear, logistic, Poisson regression. Generalized Linear Models. One and two-way ANOVA.
  • Time Series Models: ARIMA and GARCH.
  • Multivariate Statistics: K-means cluster analysis, hierarchical cluster analysis, principal component analysis (PCA), factor analysis.
  • Statistical Distributions: 39 continuous and discrete statistical distributions, including uniform, Poisson, normal, lognormal, Weibull and Gumbel (extreme value) distributions and various multivariate distributions.
  • Hypothesis Tests: 15 hypothesis tests, including the z-test, t-test, F-test, runs test, and more advanced tests, such as the Anderson-Darling test for normality, one and two-sample Kolmogorov-Smirnov test, and Levene's test for homogeneity of variances, Ljung-Box test for auto-correlation, Kruskal-Wallis test.

General features

  • Parallel computing. Take advantage of all the CPU and GPU power in your machine. Full support for Task Parallel Library features including cancellation. Support for CUDA based GPU calculations.
  • Great performance. We implemented the best algorithms available today to provide you with a robust, fast toolset.
  • Intuitive object model. The classes in the Extreme Optimization Numerical Libraries for .NET and the relationships between them match our every-day concepts.
  • Ground-breaking usability for numerical software development. The math itself is hard enough.
  • Broad base of algorithms covering a wide range of numerical techniques, including: linear algebra (BLAS and LAPACK routines), numerical integration and differentiation, solving equations, complex numbers, and more.

Whether you develop applications in C#, Visual Basic .NET, F#, C++/CLI, IronPython or any of the other .NET Framework languages, the Extreme Optimization Numerical Libraries for .NET provide the reliable foundation and the building blocks developers need.

New in Version 6.0 (March 2016)

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.

You can see a list of what was new in earlier versions: 5.1, 5.0, 4.2, 4.1, 4.0.

A fully functional 60 day trial version is now available. Download it here, or order today.