Description
You recommended me (see fortran-lang/fpm-registry#40 (comment)) to check whether the code in this repository(certik/fftpack
) is consistent with netlib/dfftpack1.0 (fftpack4.0)
. I confirm that they are consistent.
And I want to learn from brocolis/fftpack to make dfftpack1.0(fftpack4.0)
also support fpm. I will do this immediately.
Later, We update dfftpack1.0(fftpack4.0)
to fftpack5.1
:
netlib/dfftpack1.0(fftpack4.0) with a easy-to-use interface
(-> ncar/fftpack5.1 with a easy-to-use interface
-> john/fftpack5.1 with a easy-to-use interface
) -> fftpack5.1 with a easy-to-use interface
.
I got inspiration from stdlib
, I think we can use fypp
as a preprocessor to deal with the multi-precision problem of fftpack
package.
Do we need to use fypp
to refactor netlib/dffpack1.0(fftpack4.0)
and nacr/fftpack5.1
?
Tasks
- Let's collect the original sources from netlib. Commit. This might be similar to https://github.com/certik/fftpack, but we should check we got everything.
- we should add tests, the only test I see there is in https://github.com/certik/fftpack/blob/030cbf4fd35c35ef19387b4835bde3ac73019b64/test.f
- We should add Fortran 90 interface to the package (add
fpm
support, keepmake
support) - Add 2D and 3D transforms
- Check any other functionality from the repositories you mentioned and see if there is anything else that we should include
Such asfftshift
,czt
,hilbert
,filter
. - Add benchmarks
- Some documentation how to use
- Multiple precision
- Use Fortran
SAVE
feature to savewsave(:)
Links
- netlib/dfftpack1.0(fftpack4.0) (License : public domain)
Fortran77 - nacr/fftpack5.1 (License: look like MIT and BSD-3, see comment)
Fortran77 - John Burkardt/fftpack5.1 (License: LGPL/GPL)
Fortran90 from nacr/fftpack5.1 - QcmPlab/SciFortran (License: shall be GPL)
From John Burkardt fortran90, fftpack5.1 with interface. - keurfonluu/FFTPack (License: shall be GPL)
From John Burkardt fortran90, fftpack5.1 with interface. - jlokimlin/modern_fftpack (License: FFTPACK license look like MIT and BSD-3 ?)
Fortran90, look like from nacr/fftpack5.1 ?