Fast Fourier Transforms¶
SnFFT supports three types of fast Fourier transforms. The dense fast Fourier transform can use any type of function over Sn . The bandlimited fast Fourier transform can use only bandlimited functions over Sn , but benefits greatly from the restriction. The sparse fast Fourier transform can run on any type of function over Sn , but becomes faster as the function becomes increasingly sparse.
Dense Fast Fourier Transform¶
-
sn_fft
(N, SNF, YOR, PT)¶
# Parameters:
# N::Int
# - the problem size
# SNF::Array{Foat64, 1}
# - SNF[i] is the value associated with the Permutation that permutation_index() maps to i
# YOR::Array{Array{Array{SparseMatrixCSC, 1}, 1}, 1}
# - output1 from yor()
# PT::Array{Array{Array{Int, 1}, 1}, 1}
# - output2 from yor()
# Return Values:
# FFT::Array{Float64, 2}
# - FFT is the Fast Fourier Transform of SNF
- See snf() for a detailed explanation of the SNF parameter
- YOR and PT are the outputs of yor(N)
- See the code for example4() for an example of the complete process to compute a dense fast Fourier transform
Bandlimited Fast Fourier Transform¶
-
sn_fft_bl
(N, K, SNF, YOR, PT, ZFI)¶
# Parameters:
# N::Int
# - the problem size N
# K::Int
# - the problem is homogenous at N-K
# SNF::Array{Foat64, 1}
# - SNF[i] is the value assigned to the ith homogenous subgroup of size N-K
# YOR::Array{Array{Array{SparseMatrixCSC, 1}, 1}, 1}
# - output1 from yor_bl()
# PT::Array{Array{Array{Int, 1}, 1}, 1}
# - output2 from yor_bl()
# ZFI::Array{Int, 1}
# - output3 from yor_bl()
# Return Values:
# FFT::Array{Float64, 2}
# - FFT is the Fast Fourier Transform of SNF
- See snf_bl() for a detailed explanation of the SNF parameter
- YOR, PT, and ZFI are the outputs of yor_bl(N, K)
- See the code for example7() for an example of the complete process to compute a bandlimited fast Fourier transform
Sparse Fast Fourier Transform¶
-
sn_fft_sp
(N, SNF, NZL, YOR, PT)¶
# Parameters:
# N::Int
# - the problem size is N
# SNF::Array{Foat64, 1}
# - SNF[i] is the value associated with the Permutation that permutation_index() maps to NZL[i]
# NZL::Array{Int, 1}
# - NZL[i] the set of NonZeroLocations for the sparse function over Sn
# - NZL must be in increasing order
# YOR::Array{Array{Array{SparseMatrixCSC, 1}, 1}, 1}
# - output1 from yor()
# PT::Array{Array{Array{Int, 1}, 1}, 1}
# - output2 from yor()
# Return Values:
# FFT::Array{Float64, 2}
# - FFT is the Fast Fourier Transform of SNF
- See snf_sp() for a detailed explanation of the SNF and NZL parameters
- YOR and PT are the outputs of yor(N)
- See the code for example5() for an example of the complete process to compute a dense fast Fourier transform