math.transforms.fft: small bit of speedup.

db4
John Benediktsson 2013-09-23 15:56:18 -07:00
parent 9cc27f22f7
commit 7bc62f4c7c
1 changed files with 4 additions and 4 deletions

View File

@ -9,9 +9,9 @@ IN: math.transforms.fft
! Discrete Fourier Transform
:: (slow-fft) ( seq inverse? -- seq' )
seq length :> N
inverse? 1 -1 ? 2pi * i* N / N iota n*v :> omega
inverse? 1 -1 ? 2pi * N / N iota n*v :> omega
N iota [| k |
0 seq omega [ k * e^ * + ] 2each
0 seq omega [ k * cis * + ] 2each
inverse? [ N / ] when
] map ; inline
@ -21,8 +21,8 @@ IN: math.transforms.fft
N 1 = [ seq ] [
seq even-indices inverse? (fft)
seq odd-indices inverse? (fft)
inverse? 1 -1 ? 2pi * i* N /
[ * e^ * ] curry map-index!
inverse? 1 -1 ? 2pi * N /
[ * cis * ] curry map-index!
[ [ + inverse? [ 2 / ] when ] 2map ]
[ [ - inverse? [ 2 / ] when ] 2map ]
2bi append