diff --git a/src/Managed/IntegralTransforms/Transform.cs b/src/Managed/IntegralTransforms/Transform.cs new file mode 100644 index 00000000..2248f2f1 --- /dev/null +++ b/src/Managed/IntegralTransforms/Transform.cs @@ -0,0 +1,81 @@ +// +// Math.NET Numerics, part of the Math.NET Project +// http://mathnet.opensourcedotnet.info +// +// Copyright (c) 2009 Math.NET +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// + +namespace MathNet.Numerics.IntegralTransforms +{ + using Algorithms; + + /// + /// Integral Transforms (including FFT). + /// + public static class Transform + { + /// + /// Shared internal DET algorithm. + /// + private static readonly DiscreteFourierTransform _dft = new DiscreteFourierTransform(); + + /// + /// Applies the forward Fast Fourier Transform (FFT) to arbitrary-length sample vectors. + /// + /// Sample vector, where the FFT is evaluated in place. + public static void FourierForward(Complex[] samples) + { + _dft.BluesteinForward(samples, FourierOptions.Default); + } + + /// + /// Applies the forward Fast Fourier Transform (FFT) to arbitrary-length sample vectors. + /// + /// Sample vector, where the FFT is evaluated in place. + /// Fourier Transform Convention Options. + public static void FourierForward(Complex[] samples, FourierOptions options) + { + _dft.BluesteinForward(samples, options); + } + + /// + /// Applies the inverse Fast Fourier Transform (iFFT) to arbitrary-length sample vectors. + /// + /// Sample vector, where the FFT is evaluated in place. + public static void FourierInverse(Complex[] samples) + { + _dft.BluesteinInverse(samples, FourierOptions.Default); + } + + /// + /// Applies the inverse Fast Fourier Transform (iFFT) to arbitrary-length sample vectors. + /// + /// Sample vector, where the FFT is evaluated in place. + /// Fourier Transform Convention Options. + public static void FourierInverse(Complex[] samples, FourierOptions options) + { + _dft.BluesteinInverse(samples, options); + } + } +} diff --git a/src/Managed/Managed.csproj b/src/Managed/Managed.csproj index 2f88b753..e7f69772 100644 --- a/src/Managed/Managed.csproj +++ b/src/Managed/Managed.csproj @@ -59,6 +59,7 @@ + diff --git a/src/Native/Native.csproj b/src/Native/Native.csproj index 07e467e3..941b2ce6 100644 --- a/src/Native/Native.csproj +++ b/src/Native/Native.csproj @@ -86,6 +86,9 @@ IntegralTransforms\FourierOptions.cs + + IntegralTransforms\Transform.cs + Integration\Algorithms\DoubleExponentialTransformation.cs