Time for an 2014 update…

This commit is contained in:
Ingy döt Net 2014-01-17 05:32:22 +00:00
parent 372c577f83
commit 09687c4926
2520 changed files with 34227 additions and 7318 deletions

View file

@ -0,0 +1 @@
fft([1,1,1,1,0,0,0,0])

View file

@ -0,0 +1,9 @@
8-element Array{Complex{Float64},1}:
4.0+0.0im
1.0-2.41421im
0.0+0.0im
1.0-0.414214im
0.0+0.0im
1.0+0.414214im
0.0+0.0im
1.0+2.41421im

View file

@ -1,5 +1,5 @@
/*REXX pgm does a fast Fourier transform (FFT) on a set of complex nums.*/
numeric digits 85
numeric digits length( pi() ) - 1 /*limited by PI function result. */
arg data; if data='' then data='1 1 1 1 0' /*no data? Then use default*/
data=translate(data, 'J', "I") /*allow use of i as well as j */
size=words(data); pad=left('',6) /*PAD: for indenting/padding SAYs*/

View file

@ -0,0 +1,10 @@
def fft(vec)
return vec if vec.size <= 1
evens_odds = vec.partition.with_index{|_,i| i.even?}
evens, odds = evens_odds.map{|even_odd| fft(even_odd)*2}
evens.zip(odds).map.with_index do |(even, odd),i|
even + odd * Math::E ** Complex(0, 2 * Math::PI * (-i)/ vec.size)
end
end
fft([1,1,1,1,0,0,0,0]).each{|c| p c}

View file

@ -0,0 +1 @@
fft([1,1,1,1,0,0,0,0]')