DigitalRune Mathematics is a mathematics library for the Microsoft .NET Framework and the XNA Framework. The library is designed and optimized for use in 3D applications and games.
Supported Platforms
- Microsoft .NET Framework 3.5 or higher
- Microsoft XNA Framework 3.1 (Windows, Xbox 360)
The XNA Framework is supported, but not required to use DigitalRune Mathematics. Support for the upcoming XNA Framework 4 (Windows, Xbox 360 and Windows Phone 7) will be available on release.
Please contact us if you need support for any other platform (for example: Mono, .NET Compact Framework, Silverlight, or XNA 4 CTP).
Features
General
- Fully managed C# class library
- Intended and optimized for use in 3D real-time applications
- Robust floating-point comparisons
- Optional support for the Microsoft XNA Framework (Windows, Xbox 360)
Algebra
- General n-dimensional vectors and matrices (single and double precision)
- Specialized vectors and matrices for: 2D, 3D, 4D (single and double precision)
- Quaternion algebra
- Matrix decompositions: Cholesky decomposition, Eigenvalue decomposition, LU decomposition, QR decomposition, Singular Value Decomposition (SVD)
- Iterative solver for systems of linear equations: Jacobi method, Gauss-Seidel method, SOR method
Analysis
- Numerical integration: Trapezoidal integrator, Simpson integrator, Romberg integrator
- Numerical integration of ordinary differential equations: Explicit Euler integrator, Midpoint integrator, Runge-Kutta integrator
- Root finding algorithms: Bisection method, Regula falsi method, Newton-Raphson method, Improved Newton-Raphson method
Interpolation
- General interpolation:
- Step interpolation
- N-dimensional linear interpolation
- Cosine interpolation
- Polynomial interpolation
- Quaternion interpolation: linear (LERP), spherical linear (SLERP), spherical quadrangle (SQUAD)
- Scattered interpolation: Shepard's method, interpolation using Radial Basis Functions (RBF)
- Interpolation curves (splines):
- Basic spline curves: step, linear, Bézier, B-spline, Cardinal, Catmull-Rom, Hermite
- Piecewise curves: 2D paths, 3D paths, animation curves
- Length-parameterization of curves
Statistics
- Various probability distributions
- Prinicipal component analysis (PCA)