Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef struct {
- uint16_t a;
- uint16_t b;
- } ukaelEntropy;
- ukaelEntropy UKAEL_STATE = {.a = 13381U, .b = 42533U};
- //white noise generator
- //2.5 times faster than rand()
- //Doesn't pass some dieharder tests, but no audible patterns
- //frequency analysis: <1db variance over 327680 samples
- inline static void ukaelReseed(ukaelEntropy *s){
- //asm ("rorw $11, %[a] \n\t" : [a] "+r" (s->a) ); //about as fast
- s->a = (s->a>>11)|(s->a<<5); //bit rotate rorw
- s->a+= (s->b<<1)+13; //adding is way better than xor
- s->b+= (s->a<<2)+11;
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement