BRC.FFTW.NET
1.0.5
dotnet add package BRC.FFTW.NET --version 1.0.5
NuGet\Install-Package BRC.FFTW.NET -Version 1.0.5
<PackageReference Include="BRC.FFTW.NET" Version="1.0.5" />
<PackageVersion Include="BRC.FFTW.NET" Version="1.0.5" />
<PackageReference Include="BRC.FFTW.NET" />
paket add BRC.FFTW.NET --version 1.0.5
#r "nuget: BRC.FFTW.NET, 1.0.5"
#:package BRC.FFTW.NET@1.0.5
#addin nuget:?package=BRC.FFTW.NET&version=1.0.5
#tool nuget:?package=BRC.FFTW.NET&version=1.0.5
FFTW.NET
C#/.NET wrapper for FFTW (http://www.fftw.org/)
Installation
Install NuGet package: https://www.nuget.org/packages/FFTW.NET or Download the FFTW binaries ("libfftw3-3.dll") from http://www.fftw.org/download.html, rename them to "libfftw3-3-x86.dll" and "libfftw3-3-x64.dll" and put them in your application directory. FFTW.NET will automatically load the right one. This is currently only tested for Windows, but it also should work on other platforms using Mono. (Of course you would need the appropriate platform specific FFTW binaries.)
Help
See TestApp/Program.cs for examples on how to use it. Altough you should be able to use it from looking at the examples, for a better understanding on how to use it efficiently, it is highly recommended that you gain a little insight on how FFTW works: http://www.fftw.org/doc/index.html
Array classes
There are three array classes which you can use to perform transformations:
- AlignedArray<T>: This class guarantees a certain memory alignment. This should be the default class to use.
- PinnedArray<T>: Use this class if you want to use an existing .NET array and want to avoid copying memory. The drawback is, that the .NET array might not be aligned on a 16 bytes boundary and thus FFTW cannot use SIMD.
- FftwArray<T>: This class allocates unmanaged memory using fftw_malloc. This class was somewhat rendered obsolete by the introduction of AlignedArray<T>.
If none of these fit your needs, you can always create your own by implementing the IPinnedArray<T> interface.
License
FFTW is licensed under the GNU GPL, therefore FFTW.NET as a whole adapts this license. However, if for some reason you want to use classes/code from this project without using FFTW, you are free to do so under the Microsoft Reciprocal License (MS-RL).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- Changed to .NETStandard library (1.3)
- Added FftwInterop.Version property which returns the version of the used FFTW libs