An object-oriented modernization of NCAR's FFTPACK5.1.
use, intrinsic :: ISO_C_binding, only: &
wp => C_DOUBLE
use fftpack_library, only: &
FFTpack
! Explicit typing only
implicit none
type (FFTpack) :: foo
complex (wp), allocatable :: my_data(:)
!.... generate some data
! Forward transform
foo%fft(my_data)
! Backward transform
foo%ifft(my_data)
Type the following command line arguments
git clone https://github.com/jlokimlin/modern_fftpack.git
cd modern_fftpack; make all
This project is still a work in progress and anyone is free to contribute under the proviso that they abstain from using the dreaded go to.
For bug reports or feature requests please open an issue on github.
[1] Swarztrauber, Paul N. "Symmetric FFTs." Mathematics of Computation 47.175 (1986): 323-346.
[2] Swarztrauber, Paul N. "FFT algorithms for vector computers." Parallel Computing 1.1 (1984): 45-63.
```
program tcfft1 and related messages:
cfft1 backward-forward max error = 0.794798730345622E-015
program tcfft1 and related messages:
cfft1 forward-backward max error = 0.867111901826273E-015
end program tcfft1 and related messages
program trfft1 and related messages:
rfft1 forward-backward max error = 0.555111512312578E-015
rfft1 backward-forward max error = 0.777156117237610E-015
end program trfft1 and related messages
program tcosq1 and related messages:
cosq1 forward-backward max error = 0.777156117237610E-015
cosq1 backward-forward max error = 0.666133814775094E-015
end program tcosq1 and related messages
program tcost1 and related messages:
cost1 forward-backward max error = 0.233146835171283E-013
cost1 backward-forward max error = 0.224265050974282E-013
end program tcost1 and related messages
program tsinq1 and related messages:
sinq1 forward-backward max error = 0.777156117237610E-015
sinq1 backward-forward max error = 0.777156117237610E-015
end program tsinq1 and related messages
program tsint1 and related messages:
sint1 forward-backward max error = 0.455191440096314E-013
sint1 backward-forward max error = 0.395239396766556E-013
end program tsint1 and related messages
program tcfft2 and related messages:
cfft2 forward-backward max error = 0.948574968053509E-015
cfft2 backward-forward max error = 0.915513359704447E-015
end program tcfft2 and related messages
program trfft2 and related messages:
rfft2 forward-backward max error = 0.777156117237610E-015
rfft2 backward-forward max error = 0.832667268468867E-015
end program trfft2 and related messages
This result was compiled by GCC version 5.3.1 20160409 using the options -I ../lib -mtune=generic -march=x86-64 -O3 -Wall -J ../lib
```