Is Math.NET Open Source and How Can Developers Get It?
Updated
Math.NET is an open-source initiative that builds and maintains toolkits for fundamental mathematics, aimed at the advanced and everyday needs of .NET developers. You can get it through GitHub (source code) and NuGet (packages), and it targets .NET and Mono. The project also offers Discussions and the @MathDotNet social account for community contact.
What "open source" means here
Math.NET describes itself as an "opensource initiative." Its libraries are distributed as open-source projects, with source code hosted on GitHub and packages published via NuGet. That combination is what lets you both read/modify the code and consume it as a normal dependency.
How to get Math.NET
The site points to two primary distribution channels:
- GitHub — source code and project repositories.
- NuGet — package installation for use in your projects.
For most developers, NuGet is the practical entry point: you add the relevant package to your .NET or Mono project and reference it in code. GitHub is where you go if you want to inspect, build, or contribute to the source.
The libraries and what each does
| Library | Purpose |
|---|---|
| Math.NET Numerics | Numerical computation: special functions, linear algebra, probability models, random numbers, interpolation, integral transforms, and more. |
| Math.NET Symbolics | A basic open-source computer algebra library for .NET and Mono, written entirely in F#. |
| Math.NET Filtering (previously Neodym) | Digital signal processing: digital filter design, applying filters to data streams via data converters, and digital signal generators. |
| Math.NET Spatial | A geometry library for .NET and Mono. |
Archived projects
The following are listed as archived and are not part of the current active set:
- Math.NET Iridium
- Math.NET Classic
- Math.NET Linq Algebra
- Math.NET Yttrium
If you encounter references to these, treat them as historical rather than current options.
Where to ask questions and follow updates
- GitHub Discussions — the discussion channel linked from the project.
- @MathDotNet — the project's social account.
Choosing what to install
- Need general numerical work (linear algebra, statistics, random numbers)? Start with Math.NET Numerics.
- Need symbolic manipulation? Use Math.NET Symbolics.
- Need digital filters or signal generation? Use Math.NET Filtering.
- Need geometry types and operations? Use Math.NET Spatial.
Because these are separate libraries, install only the ones your project actually uses rather than assuming a single monolithic package.