I'm a bit of a novice when it comes to implementing FFTs in general, but I have most of the basic ideas down I think. In this specific case, I've an implementation of the number theoretic transform on the 257 finite field. It's basically your typical Radix-2 Cooley-Tukey FFT. What Id like to know is either: is there a good alternative to the Cooley-Tukey Radix-2 that's better suited to doing this particular NTT efficiently (if the answer is an unqualified yes or a yes conditional on something not entirely within the scope of this question, I'm interested in hearing about either), or are there things specific to a Mersenne NTT that allow for a more efficient implementation than a more general case?
Is there a best-known implementation for a Number Theoretic Transform on the 257 (2^8 + 1) finite field?
1.3k Views Asked by MNagy At
1
There are 1 best solutions below
Related Questions in FFT
- 3D FFT with data larger than cache
- FFT Filtering of signal
- Changing the amount of points changes the result of the fft
- Finding peak frequency in a complex signal using Matlab
- fftw of 16bit Audio :: peak appearing wrong at 2f
- Detect repetition in text string / copied text
- FFT in Arrayfire is slower than in MATLAB
- FFT Fundamental frequency calculation from LomontFFT
- Polynomial multiplication in M2(R)?
- fftw slight peak inaccuracy/drifting
- Zoom in on np.fft2 result
- Giving large no of samples to KissFFT
- cross correlation using fft producing inaccurate results
- Weird but close fft and ifft of image in c++
- How to get complex64 output from numpy.fft?
Related Questions in NTT
- Modular arithmetics and NTT (finite field DFT) optimizations
- Circular convolution of binary vectors (mod 2) using NTT
- Calculating W for NTT (Integer Fast Fourier Transform)
- Trying to parallelize NTT with cpp threads
- Translation from Complex-FFT to Finite-Field-FFT
- Is there a best-known implementation for a Number Theoretic Transform on the 257 (2^8 + 1) finite field?
- Implementing FFT over finite fields
- Number theoretic transform multiplication is shifted
- Multiple where condition in ntt framework mvc
- Is this template<int ...> idea in C++ possible?
- pattern of recursively splitting an array to odd and even elements
- Number Theoretic Transform
- Encountered this error while implementing NTT cpp code: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I'd say that for dyadic length FFT there is nothing better than Cooley-Tukey.
This has nothing directly to to with Mersenne numbers, any number field with modulus
2^(m*2^n)+1qualifies.I=2^(m*2^(n-1))is the complex unit,I^2=2^(m*2^n)=-1 mod (2^(m*2^n)+1), andq=2^(2*m)is a primitive2^n-th root of unity.For inspiration for the second point see Section 1 of Schönhage: Asymtotically fast algorithms for the numerical multiplication ..., with overall summary of fast multiplications