Changeset dd46fd3 for libcfa/src/stdlib.hfa
- Timestamp:
- Nov 30, 2022, 10:36:25 PM (23 months ago)
- Branches:
- ADT, ast-experimental, master
- Children:
- 5657de9, c8238c0
- Parents:
- be1d00c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/stdlib.hfa
rbe1d00c rdd46fd3 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Nov 22 22:48:59202213 // Update Count : 7 3612 // Last Modified On : Wed Nov 30 18:18:26 2022 13 // Update Count : 760 14 14 // 15 15 … … 422 422 uint32_t callcnt; // call count 423 423 uint32_t seed; // current seed 424 PRNG_ ARG_T state;// random state424 PRNG_STATE_32_T state; // random state 425 425 }; // PRNG 426 426 427 427 static inline { 428 void set_seed( PRNG32 & prng, uint32_t seed_ ) with( prng ) { s tate = seed = seed_; PRNG_NAME( state ); } // set seed428 void set_seed( PRNG32 & prng, uint32_t seed_ ) with( prng ) { seed = seed_; PRNG_SET_SEED_32( state, seed ); PRNG_NAME_32( state ); } // set seed 429 429 uint32_t get_seed( PRNG32 & prng ) __attribute__(( warn_unused_result )) with( prng ) { return seed; } // get seed 430 uint32_t prng( PRNG32 & prng ) __attribute__(( warn_unused_result )) with( prng ) { callcnt += 1; return PRNG_NAME ( state ); } // [0,UINT_MAX]430 uint32_t prng( PRNG32 & prng ) __attribute__(( warn_unused_result )) with( prng ) { callcnt += 1; return PRNG_NAME_32( state ); } // [0,UINT_MAX] 431 431 uint32_t prng( PRNG32 & prng, size_t u ) __attribute__(( warn_unused_result )) { return prng( prng ) % u; } // [0,u) 432 432 uint32_t prng( PRNG32 & prng, size_t l, size_t u ) __attribute__(( warn_unused_result )) { return prng( prng, u - l + 1 ) + l; } // [l,u] … … 439 439 uint64_t callcnt; // call count 440 440 uint64_t seed; // current seed 441 PRNG_ ARG_T state;// random state441 PRNG_STATE_64_T state; // random state 442 442 }; // PRNG 443 443 444 444 static inline { 445 void set_seed( PRNG64 & prng, uint64_t seed_ ) with( prng ) { s tate = seed = seed_; PRNG_NAME( state ); } // set seed445 void set_seed( PRNG64 & prng, uint64_t seed_ ) with( prng ) { seed = seed_; PRNG_SET_SEED_64( state, seed ); PRNG_NAME_64( state ); } // set seed 446 446 uint64_t get_seed( PRNG64 & prng ) __attribute__(( warn_unused_result )) with( prng ) { return seed; } // get seed 447 uint64_t prng( PRNG64 & prng ) __attribute__(( warn_unused_result )) with( prng ) { callcnt += 1; return PRNG_NAME ( state ); } // [0,UINT_MAX]447 uint64_t prng( PRNG64 & prng ) __attribute__(( warn_unused_result )) with( prng ) { callcnt += 1; return PRNG_NAME_64( state ); } // [0,UINT_MAX] 448 448 uint64_t prng( PRNG64 & prng, size_t u ) __attribute__(( warn_unused_result )) { return prng( prng ) % u; } // [0,u) 449 449 uint64_t prng( PRNG64 & prng, size_t l, size_t u ) __attribute__(( warn_unused_result )) { return prng( prng, u - l + 1 ) + l; } // [l,u]
Note: See TracChangeset
for help on using the changeset viewer.