| 146 | |
| 147 | #define DiB_rotl32(x,r) ((x << r) | (x >> (32 - r))) |
| 148 | static U32 DiB_rand(U32* src) |
| 149 | { |
| 150 | static const U32 prime1 = 2654435761U; |
| 151 | static const U32 prime2 = 2246822519U; |
| 152 | U32 rand32 = *src; |
| 153 | rand32 *= prime1; |
| 154 | rand32 ^= prime2; |
| 155 | rand32 = DiB_rotl32(rand32, 13); |
| 156 | *src = rand32; |
| 157 | return rand32 >> 5; |
| 158 | } |
| 159 | |
| 160 | /* DiB_shuffle() : |
| 161 | * shuffle a table of file names in a semi-random way |