math.transforms.fft: small bit of speedup.
parent
9cc27f22f7
commit
7bc62f4c7c
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue