juFFTe¶
juFFTe is a modern Fast Fourier Transform library written in Fortran 2003, inspired by the FFTE library.
Features¶
- 1D, 2D, and 3D FFTs - Complex-to-complex, real-to-complex, and complex-to-real transforms
- FFTW compatibility - Drop-in replacement for FFTW with familiar API
- OpenMP parallelization - Multi-core performance out of the box
- Multiple backends - Standard, Spiral (optimized kernels), SVE, and RVV support
- Modern Fortran - Clean, maintainable codebase using Fortran 2003+
Quick Start¶
Installation¶
# Using Make
cd src
make
make install PREFIX=/your/installation/folder
# Using CMake
cd src && mkdir build && cd build
cmake ..
make install
First FFT¶
program example
use juffte
use iso_fortran_env
implicit none
complex(real64), allocatable :: data(:)
integer :: n
n = 1024
allocate(data(n))
! Initialize FFT tables
call zfft1d(data, n, juffte_init)
! Forward transform
call zfft1d(data, n, juffte_fw)
! Backward transform
call zfft1d(data, n, juffte_bw)
deallocate(data)
end program example
Build with juFFTe¶
Link against the library:
For C/C++ programs:
License¶
juFFTe is licensed under the Apache License 2.0. See the LICENSE file for details.
Contributing¶
Contributions are welcome! Please see CONTRIBUTING for guidelines.
Credits¶
juFFTe is developed at Jülich Supercomputing Centre (JSC) and other juFFTe developers.