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.