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 3.5. It combines a math library, a vector and matrix library, and a statistics library in one convenient package. A .NET 2.0 version is also available.
Mathematics
- 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.
- 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).
- 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.
Vector and Matrix Library
- Real and complex vectors and matrices.
- Single and double 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.
Statistics
- Data manipulation: Sort and filter data, process missing values, remove outliers, etc. Supports .NET data binding.
- Statistical Models: Simple, multiple, nonlinear, logistic, Poisson regression. Generalized Linear Models. One and two-way ANOVA.
- Hypothesis Tests: 12 14 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.
- Multivariate Statistics: K-means cluster analysis, hierarchical cluster analysis, principal component analysis (PCA), multivariate probability distributions.
- Statistical Distributions: 25 31 continuous and discrete statistical distributions, including uniform, Poisson, normal, lognormal, Weibull and Gumbel (extreme value) distributions.
- Random numbers: Random variates from any distribution, 4 high-quality random number generators, low discrepancy sequences, shufflers.
General features
- Multi-core ready. Take advantage of all the CPU power in your machine. Full support for Task Parallel Library features including cancellation.
- 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 4.1 (July, 2011)
- 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.
New in version 4.0 (November, 2010)
- Support for .NET Framework Version 4.0 and Visual Studio 2010
- Parallellized. Speed up your calculations by taking advantage of multiple cores. (.NET 4.0 only)
- New sparse linear program solver can solve problems with more than 1 million variables.
- Mixed integer linear programming using a branch and bound algorithm.
- New special functions: hypergeometric, Riemann zeta, elliptic integrals, Fresnel functions, Dawson's integral.
- Full set of window functions for FFT's.
- Performance improvements of up to 6x in linear algebra and arbitrary precision types.
- Over 50 new QuickStart samples in F#.