Math.NET Numerics

Last updated
Math.NET Numerics
Developer(s) C. Rüegg, M. Cuda, et al.
Stable release
4.15.0 / 7 January 2021;2 years ago (2021-01-07)
Repository
Written in C#, F#, .NET CLR
Operating system Cross-platform
Type Numerical library
License MIT/X11
Website numerics.mathdotnet.com

Math.NET Numerics is an open-source numerical library for .NET and Mono, written in C# and F#. It features functionality similar to BLAS and LAPACK.

Contents

History

Math.NET Numerics started 2009 by merging code and teams of dnAnalytics with Math.NET Iridium. It is influenced by ALGLIB, JAMA and Boost, among others, and has accepted numerous code contributions. [1] [2] It is part of the Math.NET initiative to build and maintain open mathematical toolkits for the .NET platform since 2002.[ citation needed ]

Math.NET is used by several open source libraries and research projects, like MyMediaLite, [3] FermiSim [4] and LightField Retrieval, [5] and various theses [6] [7] [8] [9] and papers. [10] [11]

Features

The software library provides facilities for:

See also

Related Research Articles

In computing, D3DX is a high level API library which is written to supplement Microsoft's Direct3D graphics API. The D3DX library was introduced in Direct3D 7, and subsequently was improved in Direct3D 9. It provides classes for common calculations on vectors, matrices and colors, calculating look-at and projection matrices, spline interpolations, and several more complicated tasks, such as compiling or assembling shaders used for 3D graphic programming, compressed skeletal animation storage and matrix stacks. There are several functions that provide complex operations over 3D meshes like tangent-space computation, mesh simplification, precomputed radiance transfer, optimizing for vertex cache friendliness and strip reordering, and generators for 3D text meshes. 2D features include classes for drawing screen-space lines, text and sprite based particle systems. Spatial functions include various intersection routines, conversion from/to barycentric coordinates and bounding box and sphere generators.

<span class="mw-page-title-main">LAPACK</span> Software library for numerical linear algebra

LAPACK is a standard software library for numerical linear algebra. It provides routines for solving systems of linear equations and linear least squares, eigenvalue problems, and singular value decomposition. It also includes routines to implement the associated matrix factorizations such as LU, QR, Cholesky and Schur decomposition. LAPACK was originally written in FORTRAN 77, but moved to Fortran 90 in version 3.2 (2008). The routines handle both real and complex matrices in both single and double precision. LAPACK relies on an underlying BLAS implementation to provide efficient and portable computational building blocks for its routines.

Basic Linear Algebra Subprograms (BLAS) is a specification that prescribes a set of low-level routines for performing common linear algebra operations such as vector addition, scalar multiplication, dot products, linear combinations, and matrix multiplication. They are the de facto standard low-level routines for linear algebra libraries; the routines have bindings for both C and Fortran. Although the BLAS specification is general, BLAS implementations are often optimized for speed on a particular machine, so using them can bring substantial performance benefits. BLAS implementations will take advantage of special floating point hardware such as vector registers or SIMD instructions.

Harbour is a computer programming language, primarily used to create database/business programs. It is a modernized, open source and cross-platform version of the older Clipper system, which in turn developed from the dBase database market of the 1980s and 1990s.

dnAnalytics is an open-source numerical library for .NET written in C# and F#. It features functionality similar to BLAS and LAPACK.

Lloyd Nicholas Trefethen is an American mathematician, professor of numerical analysis and head of the Numerical Analysis Group at the Mathematical Institute, University of Oxford.

<span class="mw-page-title-main">Microsoft Small Basic</span> Programming language dialect and development environment

Microsoft Small Basic is a programming language, interpreter and associated IDE. Microsoft's simplified variant of BASIC, it is designed to help students who have learnt visual programming languages such as Scratch learn text-based programming. The associated IDE provides a simplified programming environment with functionality such as syntax highlighting, intelligent code completion, and in-editor documentation access. The language has only 14 keywords.

Intel oneAPI Math Kernel Library is a library of optimized math routines for science, engineering, and financial applications. Core math functions include BLAS, LAPACK, ScaLAPACK, sparse solvers, fast Fourier transforms, and vector math.

NMath is a numerical package for the Microsoft .NET Framework. It is developed by CenterSpace Software. Version 1.0 was released in March, 2003 as NMath Core. The current version is called NMath 7.1, released in December, 2019.

<span class="mw-page-title-main">ALGLIB</span> Open source numerical analysis library

ALGLIB is a cross-platform open source numerical analysis and data processing library. It can be used from several programming languages.

ILNumerics is a mathematical class library for Common Language Infrastructure (CLI) developers and a domain specific language (DSL) for the implementation of numerical algorithms on the .NET platform. While algebra systems with graphical user interfaces focus on prototyping of algorithms, implementation of such algorithms into distribution-ready applications is done using development environments and general purpose programming languages (GPL). ILNumerics is an extension to Visual Studio and aims at supporting the creation of technical applications based on .NET.

The following table compares notable software frameworks, libraries and computer programs for deep learning.

<span class="mw-page-title-main">Infer.NET</span> Microsoft open source library

Infer.NET is a free and open source .NET software library for machine learning. It supports running Bayesian inference in graphical models and can also be used for probabilistic programming.

<span class="mw-page-title-main">Qalculate!</span>

Qalculate! is an arbitrary precision cross-platform software calculator. It supports complex mathematical operations and concepts such as derivation, integration, data plotting, and unit conversion.

References

  1. "Math.NET Numerics ReadMe". GitHub.com. Retrieved 2013-05-08.
  2. "Math.NET Numerics Contributors". GitHub.com. Retrieved 2013-05-08.
  3. "MyMediaLite Recommender System Library". Archived from the original on 2013-06-01. Retrieved 2013-05-08.
  4. "FermiSim, studying potential solutions to the Fermi paradox via computational simulation of models for space colonisation".
  5. "Three-Dimensional Model Shape Description and Retrieval Based on LightField Descriptors".
  6. Schräder, Niklas (2011). Detecting falls and poses in image silhouettes (M.Sc). Chalmers University of Technology, Gothenburg, Sweden. ISSN   1652-8557.
  7. Schindlberger, Michael (2011). Elastic Properties of Growing 2D Foam (M.Sc). University of Zurich.
  8. Ferreira, André Filipe Mateus. SoundLog: Make More Noise (M.Sc). Universidade Técnica de Lisboa.
  9. Miller, Justin (2010). Design of a Wireless Acquisition System for a Digital Stethoscope (B.Sc). University of Southern Queensland.
  10. LÍŠKA, Ondrej; ŽIDEK, Kamil (2010). "Accelerometers usability for danger tilt off-highway vehicles and signal filtration with kalman filter". Journal of Applied Science in the Thermodynamics and Fluid Mechanics. 4 (2): 1–6. ISSN   1802-9388.
  11. Krejcar, Ondrej; Jirka, Jakub; Janckulik, Dalibor (2011). "Use of Mobile Phones as Intelligent Sensors for Sound Input Analysis and Sleep State Detection". Sensors. 11 (6): 6037–6055. Bibcode:2011Senso..11.6037K. doi: 10.3390/s110606037 . ISSN   1424-8220. PMC   3231421 . PMID   22163941.