WDS>To FWL: "Unidirectional" info flow implies that the low-signif bits of x, have tiny periods, namely the (<=K)th bits have period <=2^(K-1). This behavior is just like the boring repeated-increment counter. If you want to avoid that boredom, you need bidirectionality. Incidentally, another counter for word length W=16 is x=0; do{ x = (x+1)*75 mod (2^16+1) - 1; }until(x=0); The sorts of "bidirectional bit flow" counters I described before are quite fast, but unfortunately rather expensive to find. (They are fast once found.) In fact the only ways I know to find them take about 4^W operations (heuristically). <WDS For n0ught else but DFT, can't modern CPUs reverse bits? The AILab PDP6 could. (And more: CIRC instruction.) Rich used it to count the 5x5 magic squares. And Knuth's proposed 64bit matrix instructions reverse bits. So the xor of a unidirectional and the bit-reverse of another one should do nicely. But probably just mixing a CIRC in with the counting instructions will produce some serious noise. --rwg