Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =======================
- if ( x < (1<<32) )
- {
- x <<= 32;
- x |= *dword_in_ptr++;
- }
- uint64 xm = x & 4095;
- if ( xm < p0 )
- {
- x = p0 * (x >> 12) + xm;
- p0 += (4096 - p0) >> 5;
- return 0;
- }
- else
- {
- x = (4096 - p0) * (x>>12) + xm - p0;
- p0 -= p0 >> 5;
- return 1;
- }
- =======================
- if ( range < (1<<32) )
- {
- code <<= 32; range <<= 32;
- code |= *dword_in_ptr++;
- }
- uint64 p0range = p0 * (range >> 12);
- if ( code < p0range )
- {
- range = p0range;
- p0 += (4096 - p0) >> 5;
- return 0;
- }
- else
- {
- code -= p0range;
- range -= p0range;
- p0 -= p0 >> 5;
- return 1;
- }
- =======================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement