# Math Library Features

The ** Extreme Optimization Numerical Libraries for .NET** includes
classes for the following subject areas. Also see the detailed vector and matrix, data analysis
and statistics feature lists.

Download the trial version today!

### General

- Machine floating-point constants.
- Common mathematical constants.
- Extended elementary functions.
- Algorithm support functions: iteration, tolerance, convergence tests.

### Complex numbers

- Double-precision complex number value type.
- Overloaded operators for all arithmetic operations.
- Static operator functions for languages that don’t support operator overloading.
- Extension of functions in System.Math to complex argument.
- Support for complex infinity and complex Not-a-Number (NaN).
- Complex vector and matrix classes.

### Numerical integration and differentiation

- Numerical differentiation.
- Numerical integration using Simpson’s rule and Romberg’s method.
- Non-adaptive Gauss-Kronrod numerical integrator.
- Adaptive Gauss-Kronrod numerical integrator.
- Integration over infinite intervals.
- Optimizations for functions with singularities and/or discontinuities.
- Six integration rules to choose from, or provide your own.
- Integration in 2 or more dimensions. Updated!

### Curve fitting and interpolation

- Interpolation using polynomials, cubic splines, piecewise constant and linear curves.
- Barycentric rational interpolation.
- Linear least squares fit using polynomials or arbitrary functions.
- Nonlinear least squares using predefined functions or your own.
- Predefined nonlinear curves: exponential, rational, Gaussian, Lorentz, 4 and 5 parameter logistic.
- Weighted least squares, with 4 predefined weight functions.
- Scaling of curve parameters.
- Constraints on curve parameters.

### Curves

- Object-oriented approach to working with mathematical curves.
- Methods for: evaluation, derivative, definite integral, tangent, roots.
- Many basic types of curves: constants, lines, quadratics, polynomials, cubic splines, Chebyshev approximations, linear combinations of arbitrary functions.

### Solving equations

- Real and complex roots of polynomials.
- Roots of arbitrary functions: bisection, false positive, Dekker-Brent and Newton-Raphson methods.
- Systems of simultaneous linear equations.
- Systems of nonlinear equations: Powell’s hybrid ‘dogleg’ method, Newton’s method.
- Least squares solutions.

### Optimization

- Optimization in 1 dimension: Brent’s algorithm, Golden Section search.
- Quasi-Newton method in N dimensions: BFGS and DFP variants. Updated!
- Conjugate gradient method in N dimensions: Fletcher-Reeves and Polak-Ribière variants.
- Powell’s conjugate gradient method.
- Downhill Simplex method of Nelder and Mead. Updated!
- Levenberg-Marquardt method for nonlinear least squares. New!
- Line search algorithms: Moré-Thuente, quadratic, unit.
- Linear program solver: Based on the Revised Simplex method.
- Linear program solver: Import from MPS files.

### Signal processing

- Real 1D and 2D Fast Fourier Transform
- Complex 2D Fast Fourier Transform
- Special code for factors 2, 3, 4, 5
- Real and complex convolution
- Managed, 32bit and 64bit native implementations

### Special functions

- Over 40 special functions not included in the standard .NET Framework class library.
- Functions from combinatorics: factorial, combinations, variations, more.
- Functions from number theory: greatest common divisor, least common multiple, decomposition into prime factors, primality testing.
- Gamma and related functions, including incomplete and regularized gamma function, digamma function, beta function, harmonic numbers.
- Hyperbolic and inverse hyperbolic functions for real and complex numbers.
- Ordinary and Modified Bessel functions of the first and second kind.
- Airy functions and their derivatives.
- Exponential integral, sine and cosine integral, logarithmic integral.