sclass LSFR { // params int n, tap, start = 1; // calculated int cycleLength // changing variables step, value; int get() { if (++step > stepLength) step = 0; ret value |= countBits(value & tap) & 1; } }