• Stars
    star
    258
  • Rank 153,069 (Top 4 %)
  • Language
    Julia
  • License
    MIT License
  • Created almost 7 years ago
  • Updated 13 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Julia bindings to the FFTW library for fast Fourier transforms

FFTW.jl

CI Coveralls

This package provides Julia bindings to the FFTW library for fast Fourier transforms (FFTs), as well as functionality useful for signal processing. These functions were formerly a part of Base Julia.

Usage and documentation

]add FFTW
using FFTW
fft([0; 1; 2; 1])

returns

4-element Array{Complex{Float64},1}:
  4.0 + 0.0im
 -2.0 + 0.0im
  0.0 + 0.0im
 -2.0 + 0.0im

The documentation of generic FFT functionality can be found in the AbstractFFTs.jl package. Additional functionalities supported by the FFTW library are documented in the present package.

MKL

Alternatively, the FFTs in Intel's Math Kernel Library (MKL) can be used by running FFTW.set_provider!("mkl"). MKL will be provided through MKL_jll. This change of provider is persistent and has to be done only once, i.e., the package will use MKL when building and updating. Note however that MKL provides only a subset of the functionality provided by FFTW. See Intel's documentation for more information about potential differences or gaps in functionality. In case MKL does not fit the needs (anymore), FFTW.set_provider!("fftw") allows to revert the change of provider.

License

The FFTW library will be downloaded on versions of Julia where it is no longer distributed as part of Julia. Note that FFTW is licensed under GPLv2 or higher (see its license file), but the bindings to the library in this package, FFTW.jl, are licensed under MIT. This means that code using the FFTW library via the FFTW.jl bindings is subject to FFTW's licensing terms. Code using alternative implementations of the FFTW API, such as MKL's FFTW3 interface are instead subject to the alternative's license. If you distribute a derived or combined work, i.e. a program that links to and is distributed with the FFTW library, then that distribution falls under the terms of the GPL. If you just distribute source code that links to FFTW.jl, and users have to download FFTW or MKL to provide the backend, then the GPL probably doesn't have much effect on you.

More Repositories

1

Interpolations.jl

Fast, continuous interpolation of discrete datasets in Julia
Julia
475
star
2

openlibm

High quality system independent, portable, open source libm implementation
C
468
star
3

MeasureTheory.jl

"Distributions" that might not add to one.
Julia
382
star
4

SpecialFunctions.jl

Special mathematical functions in Julia
Julia
317
star
5

Roots.jl

Root finding functions for Julia
Julia
299
star
6

Polynomials.jl

Polynomial manipulations in Julia
Julia
291
star
7

Calculus.jl

Calculus functions in Julia
Julia
269
star
8

QuadGK.jl

adaptive 1d numerical Gauss–Kronrod integration in Julia
Julia
246
star
9

Combinatorics.jl

A combinatorics library for Julia
Julia
205
star
10

HCubature.jl

pure-Julia multidimensional h-adaptive integration
Julia
143
star
11

NFFT.jl

Julia implementation of the Non-equidistant Fast Fourier Transform (NFFT)
Julia
136
star
12

DoubleFloats.jl

math with more good bits
Julia
130
star
13

Cubature.jl

One- and multi-dimensional adaptive integration routines for the Julia language
Julia
117
star
14

AbstractFFTs.jl

A Julia framework for implementing FFTs
Julia
116
star
15

GSL.jl

Julia interface to the GNU Scientific Library (GSL)
Julia
98
star
16

IntervalSets.jl

Interval Sets for Julia
Julia
93
star
17

Primes.jl

Prime numbers in Julia
Julia
87
star
18

RandomMatrices.jl

Random matrices package for Julia
Julia
77
star
19

Bessels.jl

Bessel functions for real arguments and orders
Julia
76
star
20

Sobol.jl

generation of Sobol low-discrepancy sequence (LDS) for the Julia language
Julia
74
star
21

FixedPointNumbers.jl

fixed point types for julia
Julia
73
star
22

IntelVectorMath.jl

Julia bindings for the Intel Vector Math Library
Julia
68
star
23

HypergeometricFunctions.jl

A Julia package for calculating hypergeometric functions
Julia
66
star
24

AccurateArithmetic.jl

Calculate with error-free, faithful, and compensated transforms and extended significands.
Julia
64
star
25

Richardson.jl

Richardson extrapolation in Julia
Julia
59
star
26

DecFP.jl

Julia IEEE decimal floating-point via the Intel decimal-float library
Julia
55
star
27

Yeppp.jl

Yeppp! bindings
Julia
54
star
28

FastChebInterp.jl

fast multidimensional Chebyshev interpolation and regression in Julia
Julia
53
star
29

NaNMath.jl

Julia math built-ins which return NaN and accumulator functions which ignore NaN
Julia
52
star
30

Decimals.jl

Pure Julia decimal arithmetic library.
Julia
52
star
31

BFloat16s.jl

Nobody needed all those bits anyway
Julia
41
star
32

FastPow.jl

optimal addition-chain exponentiation for Julia
Julia
41
star
33

Tau.jl

A Julia module providing the definition of the circle constant Tau (2Ï€)
Julia
36
star
34

Quadmath.jl

Float128 and libquadmath for the Julia language
Julia
35
star
35

Hadamard.jl

Fast Walsh-Hadamard transforms for the Julia language
Julia
35
star
36

openspecfun

A collection of special mathematical functions
Fortran
33
star
37

ChangePrecision.jl

macro to change the default floating-point precision in Julia code
Julia
33
star
38

FixedPointDecimals.jl

Julia fixed-point decimals built from integers
Julia
30
star
39

InverseLaplace.jl

Inverse Laplace transform
Julia
30
star
40

InverseFunctions.jl

Interface for function inversion in Julia
Julia
25
star
41

MeasureBase.jl

Julia
25
star
42

DoubleDouble.jl

Extended precision arithmetic for Julia (deprecated)
Julia
24
star
43

Libm.jl

A pure Julia math library
Julia
23
star
44

TensorCore.jl

Lightweight package for sharing tensor-algebra definitions
Julia
23
star
45

LambertW.jl

Lambert W mathematical function
Julia
21
star
46

KahanSummation.jl

Sum and cumulative sum using the Kahan-Babuska-Neumaier algorithm
Julia
19
star
47

Float8s.jl

A number format that you can count with your fingers.
Julia
17
star
48

Infinities.jl

A Julia package for representing infinity in all its forms
Julia
17
star
49

Xsum.jl

exactly rounded double-precision summation for Julia
Julia
15
star
50

IrrationalConstants.jl

defines additional irrationals
Julia
15
star
51

FunctionAccuracyTests.jl

ULP testing for Floating Point special functions.
Julia
13
star
52

DensityInterface.jl

Interface for mathematical/statistical densities in Julia
Julia
11
star
53

CheckedArithmetic.jl

Utilities for handling arithmetic overflow
Julia
10
star
54

RoundingIntegers.jl

Integer types that automatically round assigned values
Julia
10
star
55

ChangesOfVariables.jl

Interface for transformation functions in Julia
Julia
10
star
56

IntegerMathUtils.jl

Julia
6
star
57

MittagLeffler.jl

Mittag-Leffler function
Julia
6
star
58

ILog2.jl

integer valued base 2 logarithm
Julia
5
star
59

FunctionZeros.jl

Zeros of Bessel J and Y functions
Julia
4
star
60

RealDot.jl

Compute `real(dot(x, y))` efficiently.
Julia
4
star
61

FFTWBuilder

binary builder for FFTW.jl package
Julia
2
star
62

OpenlibmBuilder

Julia
2
star
63

Roadmap.jl

1
star
64

OpenspecfunBuilder

Julia
1
star
65

DSFMTBuilder

Julia
1
star
66

MPFRBuilder

Julia
1
star
67

GMPBuilder

Julia
1
star