|
|
@@ -51,8 +51,9 @@ int av_lfg_init_from_data(AVLFG *c, const uint8_t *data, unsigned int length); |
|
|
|
* it may be good enough and faster for your specific use case. |
|
|
|
*/ |
|
|
|
static inline unsigned int av_lfg_get(AVLFG *c){ |
|
|
|
c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63]; |
|
|
|
return c->state[c->index++ & 63]; |
|
|
|
unsigned a = c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63]; |
|
|
|
c->index += 1U; |
|
|
|
return a; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -63,7 +64,9 @@ static inline unsigned int av_lfg_get(AVLFG *c){ |
|
|
|
static inline unsigned int av_mlfg_get(AVLFG *c){ |
|
|
|
unsigned int a= c->state[(c->index-55) & 63]; |
|
|
|
unsigned int b= c->state[(c->index-24) & 63]; |
|
|
|
return c->state[c->index++ & 63] = 2*a*b+a+b; |
|
|
|
a = c->state[c->index & 63] = 2*a*b+a+b; |
|
|
|
c->index += 1U; |
|
|
|
return a; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|