@@ -284,15 +284,15 @@ static inline void next_state( stdlib_base_random_tinymt32_state_t *random ) {
284284 * @return 32-bit unsigned pseudorandom number
285285 */
286286static inline uint32_t tinymt32_temper (stdlib_base_random_tinymt32_state_t * random ) {
287- uint32_t t0 , t1 ;
288- t0 = random -> state [3 ];
289- t1 = random -> state [0 ]
290- + (random -> state [2 ] >> TINYMT32_SH8 );
291- t0 ^= t1 ;
292- if ((t1 & 1 ) != 0 ) {
293- t0 ^= random -> tmat ;
294- }
295- return t0 ;
287+ uint32_t t0 , t1 ;
288+ t0 = random -> state [3 ];
289+ t1 = random -> state [0 ]
290+ + (random -> state [2 ] >> TINYMT32_SH8 );
291+ t0 ^= t1 ;
292+ if ((t1 & 1 ) != 0 ) {
293+ t0 ^= random -> tmat ;
294+ }
295+ return t0 ;
296296}
297297
298298/**
@@ -302,7 +302,7 @@ static inline uint32_t tinymt32_temper(stdlib_base_random_tinymt32_state_t * ran
302302 * @return 32-bit integer
303303 */
304304static uint32_t ini_func1 (uint32_t x ) {
305- return (x ^ (x >> 27 )) * UINT32_C (1664525 );
305+ return (x ^ (x >> 27 )) * UINT32_C (1664525 );
306306}
307307
308308/**
@@ -312,7 +312,7 @@ static uint32_t ini_func1(uint32_t x) {
312312 * @return 32-bit integer
313313 */
314314static uint32_t ini_func2 (uint32_t x ) {
315- return (x ^ (x >> 27 )) * UINT32_C (1566083941 );
315+ return (x ^ (x >> 27 )) * UINT32_C (1566083941 );
316316}
317317
318318/**
@@ -325,20 +325,20 @@ static inline void create_state(stdlib_base_random_tinymt32_state_t * random, co
325325 random -> seed = malloc (sizeof (uint32_t ));
326326 random -> seed [0 ] = seed ;
327327 random -> seed_length = 1 ;
328- random -> state [0 ] = seed ;
329- random -> state [1 ] = random -> mat1 ;
330- random -> state [2 ] = random -> mat2 ;
331- random -> state [3 ] = random -> tmat ;
332-
333- for (unsigned int i = 1 ; i < MIN_LOOP ; i ++ ) {
334- random -> state [i & 3 ] ^= i + KNUTH_MULTIPLIER
335- * (random -> state [(i - 1 ) & 3 ]
336- ^ (random -> state [(i - 1 ) & 3 ] >> 30 ));
337- }
338-
339- for (unsigned int i = 0 ; i < PRE_LOOP ; i ++ ) {
340- next_state (random );
341- }
328+ random -> state [0 ] = seed ;
329+ random -> state [1 ] = random -> mat1 ;
330+ random -> state [2 ] = random -> mat2 ;
331+ random -> state [3 ] = random -> tmat ;
332+
333+ for (unsigned int i = 1 ; i < MIN_LOOP ; i ++ ) {
334+ random -> state [i & 3 ] ^= i + KNUTH_MULTIPLIER
335+ * (random -> state [(i - 1 ) & 3 ]
336+ ^ (random -> state [(i - 1 ) & 3 ] >> 30 ));
337+ }
338+
339+ for (unsigned int i = 0 ; i < PRE_LOOP ; i ++ ) {
340+ next_state (random );
341+ }
342342}
343343
344344/**
@@ -350,66 +350,66 @@ static inline void create_state(stdlib_base_random_tinymt32_state_t * random, co
350350*/
351351static inline void init_state ( stdlib_base_random_tinymt32_state_t * random , const uint32_t * seed , const int64_t len ) {
352352 const unsigned int lag = 1 ;
353- const unsigned int mid = 1 ;
354- const unsigned int size = 4 ;
355- unsigned int i , j ;
356- unsigned int count ;
357- uint32_t r ;
358- uint32_t * st = & random -> state [0 ];
353+ const unsigned int mid = 1 ;
354+ const unsigned int size = 4 ;
355+ unsigned int i , j ;
356+ unsigned int count ;
357+ uint32_t r ;
358+ uint32_t * st = & random -> state [0 ];
359359
360360 random -> seed = malloc (sizeof (uint32_t ));
361361 memcpy (random -> seed , seed , sizeof (uint32_t )* len );
362362 random -> seed_length = len ;
363363
364- st [0 ] = 0 ;
365- st [1 ] = random -> mat1 ;
366- st [2 ] = random -> mat2 ;
367- st [3 ] = random -> tmat ;
368- if (len + 1 > MIN_LOOP ) {
369- count = (unsigned int )len + 1 ;
370- } else {
371- count = MIN_LOOP ;
372- }
373- r = ini_func1 (st [0 ] ^ st [mid % size ]
374- ^ st [(size - 1 ) % size ]);
375- st [mid % size ] += r ;
376- r += (unsigned int )len ;
377- st [(mid + lag ) % size ] += r ;
378- st [0 ] = r ;
379- count -- ;
380- for (i = 1 , j = 0 ; (j < count ) && (j < (unsigned int )len ); j ++ ) {
381- r = ini_func1 (st [i % size ]
382- ^ st [(i + mid ) % size ]
383- ^ st [(i + size - 1 ) % size ]);
384- st [(i + mid ) % size ] += r ;
385- r += seed [j ] + i ;
386- st [(i + mid + lag ) % size ] += r ;
387- st [i % size ] = r ;
388- i = (i + 1 ) % size ;
389- }
390- for (; j < count ; j ++ ) {
391- r = ini_func1 (st [i % size ]
392- ^ st [(i + mid ) % size ]
393- ^ st [(i + size - 1 ) % size ]);
394- st [(i + mid ) % size ] += r ;
395- r += i ;
396- st [(i + mid + lag ) % size ] += r ;
397- st [i % size ] = r ;
398- i = (i + 1 ) % size ;
399- }
400- for (j = 0 ; j < size ; j ++ ) {
401- r = ini_func2 (st [i % size ]
402- + st [(i + mid ) % size ]
403- + st [(i + size - 1 ) % size ]);
404- st [(i + mid ) % size ] ^= r ;
405- r -= i ;
406- st [(i + mid + lag ) % size ] ^= r ;
407- st [i % size ] = r ;
408- i = (i + 1 ) % size ;
409- }
410- for (i = 0 ; i < PRE_LOOP ; i ++ ) {
411- next_state (random );
412- }
364+ st [0 ] = 0 ;
365+ st [1 ] = random -> mat1 ;
366+ st [2 ] = random -> mat2 ;
367+ st [3 ] = random -> tmat ;
368+ if (len + 1 > MIN_LOOP ) {
369+ count = (unsigned int )len + 1 ;
370+ } else {
371+ count = MIN_LOOP ;
372+ }
373+ r = ini_func1 (st [0 ] ^ st [mid % size ]
374+ ^ st [(size - 1 ) % size ]);
375+ st [mid % size ] += r ;
376+ r += (unsigned int )len ;
377+ st [(mid + lag ) % size ] += r ;
378+ st [0 ] = r ;
379+ count -- ;
380+ for (i = 1 , j = 0 ; (j < count ) && (j < (unsigned int )len ); j ++ ) {
381+ r = ini_func1 (st [i % size ]
382+ ^ st [(i + mid ) % size ]
383+ ^ st [(i + size - 1 ) % size ]);
384+ st [(i + mid ) % size ] += r ;
385+ r += seed [j ] + i ;
386+ st [(i + mid + lag ) % size ] += r ;
387+ st [i % size ] = r ;
388+ i = (i + 1 ) % size ;
389+ }
390+ for (; j < count ; j ++ ) {
391+ r = ini_func1 (st [i % size ]
392+ ^ st [(i + mid ) % size ]
393+ ^ st [(i + size - 1 ) % size ]);
394+ st [(i + mid ) % size ] += r ;
395+ r += i ;
396+ st [(i + mid + lag ) % size ] += r ;
397+ st [i % size ] = r ;
398+ i = (i + 1 ) % size ;
399+ }
400+ for (j = 0 ; j < size ; j ++ ) {
401+ r = ini_func2 (st [i % size ]
402+ + st [(i + mid ) % size ]
403+ + st [(i + size - 1 ) % size ]);
404+ st [(i + mid ) % size ] ^= r ;
405+ r -= i ;
406+ st [(i + mid + lag ) % size ] ^= r ;
407+ st [i % size ] = r ;
408+ i = (i + 1 ) % size ;
409+ }
410+ for (i = 0 ; i < PRE_LOOP ; i ++ ) {
411+ next_state (random );
412+ }
413413}
414414
415415
0 commit comments