@ -9,19 +9,19 @@ In addition to the core .NET package (which is written entirely in C#), Numerics
Math.NET Numerics is covered under the terms of the [MIT/X11](LICENSE.md) license. You may therefore link to it and use it in both opensource and proprietary software projects. We accept contributions!
 Data Extensions
Installation Instructions
@ -55,12 +55,12 @@ Supported Platforms:
- PCL Portable Profiles 7, 47, 78, 259 and 328: Windows 8, Silverlight 5, Windows Phone/SL 8, Windows Phone 8.1.
- Xamarin: Android, iOS
For full details, dependencies and platform discrepancies see [Platform Compatibility](http://numerics.mathdotnet.com/Compatibility.html).
For full details, dependencies and platform discrepancies see [Platform Compatibility](https://numerics.mathdotnet.com/Compatibility.html).
Building Math.NET Numerics
--------------------------
Windows (.Net): [](https://ci.appveyor.com/project/cdrnet/mathnet-numerics)
Windows (.Net): [](https://ci.appveyor.com/project/cdrnet/mathnet-numerics)
Linux (Mono): [](https://travis-ci.org/mathnet/mathnet-numerics)
You can build Math.NET Numerics with an IDE like VisualStudio or Xamarin,
@ -77,5 +77,5 @@ FAKE:
./build.sh Build # build from Bash, with Mono on Linux/Mac or .Net on Windows
./build.sh Test # build and run unit tests
See [Build & Tools](http://numerics.mathdotnet.com/Build.html) for full details
See [Build & Tools](https://numerics.mathdotnet.com/Build.html) for full details
on how to build, generate documentation or even create a full release.
* Update Vagrant setup to official Ubuntu 14.04 LTS box and proper apt-style Mono+F# provisioning.
### 3.0.0-beta01 - 2014-04-01
* See also: [Roadmap](http://sdrv.ms/17wPFlW) and [Towards Math.NET Numerics Version 3](http://christoph.ruegg.name/blog/towards-mathnet-numerics-v3.html).
* See also: [Roadmap](https://sdrv.ms/17wPFlW) and [Towards Math.NET Numerics Version 3](http://christoph.ruegg.name/blog/towards-mathnet-numerics-v3.html).
* **Major release with breaking changes**
* All obsolete code has been removed
* Reworked redundancies, inconsistencies and unfortunate past design choices.
@ -22,16 +22,16 @@ is to be used can be specified by an additional _options_ parameter.
Fourier Space: Discrete Fourier Transform and FFT
-------------------------------------------------
Wikipedia has an extensive [article on the discrete Fourier transform (DFT)](http://en.wikipedia.org/wiki/Discrete_Fourier_transform).
Wikipedia has an extensive [article on the discrete Fourier transform (DFT)](https://en.wikipedia.org/wiki/Discrete_Fourier_transform).
We provide implementations of the following algorithms:
* *Naive Discrete Fourier Transform (DFT):* Out-place transform for arbitrary vector lengths. Mainly intended for verifying faster algorithms: _[NaiveForward](http://api.mathdotnet.com/Numerics/MathNet.Numerics.IntegralTransforms.Algorithms/DiscreteFourierTransform.htm#NaiveForward)_, _[NaiveInverse](http://api.mathdotnet.com/Numerics/MathNet.Numerics.IntegralTransforms.Algorithms/DiscreteFourierTransform.htm#NaiveInverse)_
* *Naive Discrete Fourier Transform (DFT):* Out-place transform for arbitrary vector lengths. Mainly intended for verifying faster algorithms: _[NaiveForward](https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Fourier.htm#NaiveForward)_, _[NaiveInverse](https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Fourier.htm#NaiveInverse)_
* *Radix-2 Fast Fourier Transform (FFT):* In-place fast Fourier transform for vectors with a power-of-two length (Radix-2): _[Radix2Forward](http://api.mathdotnet.com/Numerics/MathNet.Numerics.IntegralTransforms.Algorithms/DiscreteFourierTransform.htm#Radix2Forward)_, _[url:Radix2Inverse](http://api.mathdotnet.com/Numerics/MathNet.Numerics.IntegralTransforms.Algorithms/DiscreteFourierTransform.htm#Radix2Inverse)_
* *Radix-2 Fast Fourier Transform (FFT):* In-place fast Fourier transform for vectors with a power-of-two length (Radix-2): _[Radix2Forward](https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Fourier.htm#Radix2Forward)_, _[url:Radix2Inverse](https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Fourier.htm#Radix2Inverse)_
* *Bluestein Fast Fourier Transform (FFT):* In-place fast Fourier transform for arbitrary vector lengths: _[BluesteinForward](http://api.mathdotnet.com/Numerics/MathNet.Numerics.IntegralTransforms.Algorithms/DiscreteFourierTransform.htm#BluesteinForward)_, _[url:BluesteinInverse](http://api.mathdotnet.com/Numerics/MathNet.Numerics.IntegralTransforms.Algorithms/DiscreteFourierTransform.htm#BluesteinInverse)_
* *Bluestein Fast Fourier Transform (FFT):* In-place fast Fourier transform for arbitrary vector lengths: _[BluesteinForward](https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Fourier.htm#BluesteinForward)_, _[url:BluesteinInverse](https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Fourier.htm#BluesteinInverse)_
Furthermore, the _[Transform](http://api.mathdotnet.com/Numerics/MathNet.Numerics.IntegralTransforms/Transform.htm)_ class provides a shortcut for the Bluestein FFT using static methods which are even easier to use: _[FourierForward](http://api.mathdotnet.com/Numerics/MathNet.Numerics.IntegralTransforms/Transform.htm#FourierForward)_, _[FourierInverse](http://api.mathdotnet.com/Numerics/MathNet.Numerics.IntegralTransforms/Transform.htm#FourierInverse)_.
Furthermore, the _[Transform](https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Fourier.htm)_ class provides a shortcut for the Bluestein FFT using static methods which are even easier to use: _[FourierForward](https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Transform.htm#FourierForward)_, _[FourierInverse](https://numerics.mathdotnet.com/api/MathNet.Numerics.IntegralTransforms/Transform.htm#FourierInverse)_.
Code Sample using the Transform class:
@ -47,10 +47,10 @@ Code Sample using the Transform class:
Fourier Options:
* *Default:* Uses a negative exponent sign in forward transformations, and symmetric scaling (that is, sqrt(1/N) for both forward and inverse transformation). This is the convention used in Maple and is widely accepted in the educational sector (due to the symmetry).
* *AsymmetricScaling:* Set this flag to suppress scaling on the forward transformation but scale the inverse transform with 1/N.
* *AsymmetricScaling:* Set this flag to suppress scaling on the forward transformation but scale the inverse transform with 1/N.
* *NoScaling:* Set this flag to suppress scaling for both forward and inverse transformation. Note that in this case if you apply first the forward and then inverse transformation you won't get back the original signal (by factor N/2).
* *InverseExponent:* Uses the positive instead of the negative sign in the forward exponent, and the negative (instead of positive) exponent in the inverse transformation.
* *Matlab:* Use this flag if you need MATLAB compatibility. Equals to setting the _AsymmetricScaling_ flag. This matches the definition used in the [url:wikipedia article|http://en.wikipedia.org/wiki/Discrete_Fourier_transform].
* *Matlab:* Use this flag if you need MATLAB compatibility. Equals to setting the _AsymmetricScaling_ flag. This matches the definition used in the [url:wikipedia article|https://en.wikipedia.org/wiki/Discrete_Fourier_transform].
* *NumericalRecipes:* Use this flag if you need Numerical Recipes compatibility. Equal to setting both the _InverseExponent_ and the _NoScaling_ flags.
Math.NET Numerics is designed such that performance-sensitive algorithms
can be swapped with alternative implementations by the concept of providers.
There is currently only a provider for [linear algebra related routines](http://numerics.mathdotnet.com/api/MathNet.Numerics.Providers.LinearAlgebra.Mkl/MklLinearAlgebraProvider.htm), but there
There is currently only a provider for [linear algebra related routines](https://numerics.mathdotnet.com/api/MathNet.Numerics.Providers.LinearAlgebra.Mkl/MklLinearAlgebraProvider.htm), but there
are plans to add additional more e.g. related to nonlinear optimization problems or signal processing.
Providers become interesting when they can leverage a platform-native high performance library
@ -47,7 +47,7 @@ We use P/Invoke to talk to the binaries, but for this to work they must
have already been loaded or the platform service needs to be able to find and
load them on its own.
In order to make providers easier to use, since v3.6.0 Math.NET Numerics
In order to make providers easier to use, since v3.6.0 Math.NET Numerics
first tries to load native providers from a set of known directories before
falling back to the platform's default behavior. In each of these directories
it first looks for a processor-architecture specific folder within the directory,
The recommended way to get Math.NET Numerics is NuGet. The following packages are
provided and maintained in the public [NuGet Gallery](https://nuget.org/profiles/mathnet/).
The complete set of Zip and NuGet packages including symbol packages is also available in the
[release archive](http://1drv.ms/1NlUeDT).
[release archive](https://1drv.ms/1NlUeDT).
*We're currently planning what platforms we should support in the future.
Consider to [vote for the platforms you need to be supported](https://discuss.mathdotnet.com/t/poll-what-platforms-should-math-net-numerics-support/60),
// Binaries that have XML documentation (in a corresponding generated XML file)
let referenceBinaries = [ "MathNet.Numerics.dll"; "MathNet.Numerics.FSharp.dll" ]
// Web site location for the generated documentation
let website = "http://numerics.mathdotnet.com"
let githubLink = "http://github.com/mathnet/mathnet-numerics"
let website = "https://numerics.mathdotnet.com"
let githubLink = "https://github.com/mathnet/mathnet-numerics"
// Specify more information about your project
let info =
@ -15,7 +15,7 @@ let info =
"project-author", "Christoph Ruegg, Marcus Cuda, Jurgen Van Gael"
"project-summary", "Math.NET Numerics, providing methods and algorithms for numerical computations in science, engineering and every day use. .Net 4, .Net 3.5, SL5, Win8, WP8, PCL 47 and 136, Mono, Xamarin Android/iOS."