Introduction
The Extreme Optimization Numerical Libraries for .NET are a solid foundation for your numerical computing needs on the .NET platform. It implements a broad set of algorithms, covering a wide range of numerical techniques, including: linear algebra, complex numbers, numerical integration and differentiation, solving equations, optimization, random numbers, regression, ANOVA, statistical distributions, hypothesis tests.
The classes in the Extreme Optimization Numerical Libraries for .NET and the relationships between them match our every-day concepts.
We implemented the best algorithms available today to provide you with a robust, fast toolset.
With the Extreme Optimization Numerical Libraries for .NET you can reduce development time and focus on the problem at hand.
Whether developing applications in C#, Visual Basic .NET, Managed C++, 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.
Features
General features of the Extreme Optimization Numerical Libraries for .NET:
• Easy to use even for the mathematically not-so-inclined
• Great performance through optimized implementation of the best algorithms.
• Powerful enough to satisfy the most demanding power user.
• Intuitive object model. The objects in the Extreme Optimization Numerical Libraries for .NET and the relationships between them match our every-day concepts.
• Cross-platform. Works out-of-the-box on 32 and 64 bit platforms, .NET versions 1.1, 2.0, 3.0, 3.5.
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.
- 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.
Statistics
- 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
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.