mcgrant@elaine3.stanford.edu (Michael Grant) (11/22/90)
UNCOMMENTED SET OF DFT PROGRAMS --- << DHT DUP ARRY-> SZ << 2 SZ LIST-> DROP 1 - FOR I I ROLL NEXT SZ ->ARRY >> DUP2 - (0,1) * - + IF DUP IM CNRM NOT THEN RE END .5 * >> 'DFT' STO << CONJ DFT CONJ DUP SIZE LIST-> DROP / >> 'IDFT' STO << DUP SIZE LIST-> DROP RCLF -> L N F << RAD PRCSN FIX L ~pi~ ~pi~ + -> S << 0 N 1 - FOR J J N / S * DUP SIN SWAP COS + J 1 + SWAP PUT NEXT >> -> C << L 0 N 1 - FOR J 0 0 N 1 - FOR K J * N MOD 1 + GET 'L' K 1 + GET * + NEXT RND J 1 + SWAP PUT NEXT >> F STOF >> >> 'DHT' STO << DHT DUP SIZE LIST-> DROP / >> 'IDHT' STO << -> F N << 0 N 1 - FOR J J F EVAL NEXT { N } ->ARRY >> >> 'SAMP' STO << -> L1 L2 PR << L1 SIZE LIST-> DROP L2 SIZE LIST-> DROP MIN -> N << L1 { N } RDM 1 N FOR J 'L1' J GET 'L2' J GET PR EVAL J SWAP PUT NEXT >> >> >> 'ARO2' STO << << * >> ARO2 >> 'PROD' STO << -> L PR << L SIZE LIST-> DROP -> N << L 1 N FOR J 'L' J GET PR EVAL J SWAP PUT NEXT >> >> >> 'AR01' STO << (1,0) * << R->P >> ARO1 >> 'C->MP' STO << (1,0) * << P->R >> ARO1 >> 'MP->C' STO << DUP SIZE LIST-> DROP -> L1 L2 N << IF N L1 SIZE LIST-> DROP <> THEN [ 1 ] TRN ELSE L1 1 N FOR J 0 1 N FOR K 'L1' K GET 'L2' J K - N MOD 1 + GET * + NEXT J SWAP PUT NEXT END >> >> 'CCNV' STO << PAD2 CCNV >> 'LCNV' STO << DUP2 SIZE LIST-> DROP SWAP SIZE LIST-> DROP + 1 - 1 ->LIST -> S << S RDM SWAP S RDM SWAP >> >> 'PAD2' STO << -> L N << L IF L SIZE LIST-> DROP N < THEN { N } RDM END >> >> 'ZPAD' STO << -> L N << L SIZE LIST-> DROP -> M << L IF M N < THEN { N } RDM M 1 + N FOR J 'L' J M MOD IF DUP NOT THEN DROP M END GET J SWAP PUT NEXT END >> >> >> 'RPAD' STO 10 'PRCSN' STO { DFT IDFT DHT IDHT CCNV LCNV PROD MP->C C->MP PAD2 RPAD ZPAD SAMP AR01 AR02 PRCSN } ORDER --- Michael C. Grant "God does not play dice." Einstein Information Systems Lab "Geez, He'd win a lot if he did, mcgrant@portia.stanford.edu though..." Mike