22 lines
736 B
Text
22 lines
736 B
Text
#!/usr/local/bin/a68g --script #
|
|
# -*- coding: utf-8 -*- #
|
|
|
|
MODE SCALAR = COMPL;
|
|
PROC (COMPL)COMPL scalar exp = complex exp;
|
|
PR READ "Template.Fast_Fourier_transform.a68" PR
|
|
|
|
FORMAT real fmt := $g(0,3)$;
|
|
FORMAT real array fmt := $f(real fmt)", "$;
|
|
FORMAT compl fmt := $f(real fmt)"⊥"f(real fmt)$;
|
|
FORMAT compl array fmt := $f(compl fmt)", "$;
|
|
|
|
test:(
|
|
[]COMPL
|
|
tooth wave ft = fft((1, 1, 1, 1, 0, 0, 0, 0)),
|
|
one and a quarter wave ft = fft((0, 0.924, 0.707,-0.383,-1,-0.383, 0.707, 0.924,
|
|
0,-0.924,-0.707, 0.383, 1, 0.383,-0.707,-0.924));
|
|
printf((
|
|
$"Tooth wave: "$,compl array fmt, tooth wave ft, $l$,
|
|
$"1¼ cycle wave: "$, compl array fmt, one and a quarter wave ft, $l$
|
|
))
|
|
)
|