annotate yetilab/transform/test/test_fft.yeti @ 254:5eb57c649de0 sparse

Using hashes is simpler, but turns out to be mostly no faster and sometimes much slower. Not one to merge back.
author Chris Cannam
date Tue, 21 May 2013 17:40:33 +0100
parents 77c6a81c577f
children 197d23954a4e
rev   line source
Chris@41 1
Chris@93 2 module yetilab.transform.test.test_fft;
Chris@41 3
Chris@93 4 { realForward, realInverse } = load yetilab.transform.fft;
Chris@222 5 { list, fromList } = load yetilab.vector.vector;
Chris@222 6 { complex } = load yetilab.vector.complex;
Chris@46 7
Chris@93 8 { compare } = load yetilab.test.test;
Chris@41 9
Chris@48 10 testFFT orig reals imags =
Chris@48 11 (out = realForward (length orig) (fromList orig);
Chris@48 12 back = realInverse (length orig) out;
Chris@221 13 compare out (array (map2 complex reals imags)) and compare (list back) orig);
Chris@48 14
Chris@53 15 [
Chris@41 16
Chris@41 17 "dc": \(
Chris@48 18 testFFT [1,1,1,1] [4,0,0] [0,0,0];
Chris@41 19 ),
Chris@41 20
Chris@41 21 "sine": \(
Chris@48 22 testFFT [0,1,0,-1] [0,0,0] [0,-2,0];
Chris@41 23 ),
Chris@41 24
Chris@41 25 "cosine": \(
Chris@48 26 testFFT [1,0,-1,0] [0,2,0] [0,0,0];
Chris@41 27 ),
Chris@41 28
Chris@41 29 "sineCosine": \(
Chris@48 30 testFFT [0.5,1,-0.5,-1] [0,1,0] [0,-2,0];
Chris@41 31 ),
Chris@41 32
Chris@41 33 "nyquist": \(
Chris@48 34 testFFT [1,-1,1,-1] [0,0,4] [0,0,0];
Chris@41 35 ),
Chris@41 36
Chris@41 37 "dirac": \(
Chris@48 38 testFFT [1,0,0,0] [1,1,1] [0,0,0] and
Chris@48 39 testFFT [0,1,0,0] [1,0,-1] [0,-1,0] and
Chris@48 40 testFFT [0,0,1,0] [1,-1,1] [0,0,0] and
Chris@48 41 testFFT [0,0,0,1] [1,0,-1] [0,1,0];
Chris@41 42 ),
Chris@41 43
Chris@53 44 ] is hash<string, () -> boolean>;
Chris@41 45
Chris@41 46