None
frac32buffer.bipolar out
int32_t r1a = 137; // todo:init with actually random numbers
int32_t r2a = 137;
int32_t c1a = 0;
int32_t c2a = 0;
int32_t r1b = 149;
int32_t r2b = 149;
int32_t c1b = 0;
int32_t c2b = 0;
int32_t r1c = 159;
int32_t r2c = 159;
int32_t c1c = 0;
int32_t c2c = 0;
// triple wobbulated random gen
r1a = r1a * 69069 + 1;
c1a--;
if (c1a <= 0) {
c2a--;
if (c2a <= 0) {
c2a = GenerateRandomNumber() & 63;
r2a = GenerateRandomNumber();
}
r2a = r2a * 69069 + 1;
c1a = c2a;
r1a = r2a; // reset main rand gen seed
outlet_out = r1a >> 6;
} else {
outlet_out = r1a >> 6;
}
// _ _ _
r1b = r1b * 69069 + 1;
c1b--;
if (c1b <= 0) {
c2b--;
if (c2b <= 0) {
c2b = GenerateRandomNumber() & 63;
r2b = GenerateRandomNumber();
}
r2b = r2b * 69069 + 1;
c1b = c2b;
r1b = r2b; // reset main rand gen seed
outlet_out += r1b >> 6;
} else {
outlet_out += r1b >> 6;
}
// _ _ _
r1c = r1c * 69069 + 1;
c1c--;
if (c1c <= 0) {
c2c--;
if (c2c <= 0) {
c2c = GenerateRandomNumber();
c2c = ___SMMUL(c2c, c2c) >> (30 - 6);
r2c = GenerateRandomNumber();
}
r2c = r2c * 69069 + 1;
c1c = c2c;
r1c = r2c; // reset main rand gen seed
outlet_out += r1c >> 5;
} else {
outlet_out += r1c >> 5;
}