What libraries are included in Math.NET and what does each one do?
Updated
Math.NET is an open-source initiative that builds and maintains toolkits covering fundamental mathematics for .NET developers, targeting both advanced and everyday needs. It is organized into several separate libraries, each addressing a different area of mathematics. The currently active libraries are Math.NET Numerics, Math.NET Symbolics, Math.NET Filtering, and Math.NET Spatial. Several older projects — Iridium, Classic, Linq Algebra, and Yttrium — are archived.
Active libraries
Math.NET Numerics
The numerical computing library. It aims to provide methods and algorithms for numerical computations in science, engineering, and everyday use. Covered topics include:
- Special functions
- Linear algebra
- Probability models
- Random numbers
- Interpolation
- Integral transforms
- And more
This is the library to reach for when you need general-purpose numerical work: solving linear systems, sampling from distributions, generating random numbers, or interpolating data.
Math.NET Symbolics
A basic open-source computer algebra library for .NET and Mono, written entirely in F#. Use it when you need symbolic manipulation rather than floating-point numerics — for example, working with expressions algebraically instead of evaluating them numerically.
Math.NET Filtering
The digital signal processing toolkit, previously known as Neodym. It aims to provide:
- An infrastructure for digital filter design
- Applying those filters to data streams using data converters
- Digital signal generators
Choose this when your task involves designing filters or processing signal data streams.
Math.NET Spatial
A geometry library for .NET and Mono. It is intended for spatial and geometric computation.
Archived projects
The following projects are no longer active:
- Math.NET Iridium
- Math.NET Classic
- Math.NET Linq Algebra
- Math.NET Yttrium
If you encounter references to these in older code or documentation, treat them as historical rather than current options.
Choosing between them
| Library | Domain | Typical use |
|---|---|---|
| Numerics | Numerical computing | Linear algebra, probability, random numbers, interpolation, integral transforms |
| Symbolics | Computer algebra | Symbolic expression manipulation (F#) |
| Filtering | Digital signal processing | Filter design, filtering data streams, signal generation |
| Spatial | Geometry | Geometric and spatial computation |
The libraries are distributed via GitHub and NuGet, with discussions hosted at @MathDotNet. If your need is general numerical computation, start with Numerics; pick Symbolics, Filtering, or Spatial only when your problem falls specifically within symbolic algebra, signal processing, or geometry.