21 lines
699 B
Plaintext
21 lines
699 B
Plaintext
# apt-get install libfftw3-dev
|
|
|
|
(scl 4)
|
|
|
|
(de FFTW_FORWARD . -1)
|
|
(de FFTW_ESTIMATE . 64)
|
|
|
|
(de fft (Lst)
|
|
(let
|
|
(Len (length Lst)
|
|
In (native "libfftw3.so" "fftw_malloc" 'N (* Len 16))
|
|
Out (native "libfftw3.so" "fftw_malloc" 'N (* Len 16))
|
|
P (native "libfftw3.so" "fftw_plan_dft_1d" 'N
|
|
Len In Out FFTW_FORWARD FFTW_ESTIMATE ) )
|
|
(struct In NIL (cons 1.0 (apply append Lst)))
|
|
(native "libfftw3.so" "fftw_execute" NIL P)
|
|
(prog1 (struct Out (make (do Len (link (1.0 . 2)))))
|
|
(native "libfftw3.so" "fftw_destroy_plan" NIL P)
|
|
(native "libfftw3.so" "fftw_free" NIL Out)
|
|
(native "libfftw3.so" "fftw_free" NIL In) ) ) )
|