Changes in / [454b4e0:a986807]
- Location:
- libcfa/src
- Files:
-
- 4 edited
-
concurrency/thread.cfa (modified) (2 diffs)
-
concurrency/thread.hfa (modified) (2 diffs)
-
stdlib.cfa (modified) (2 diffs)
-
stdlib.hfa (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/thread.cfa
r454b4e0 ra986807 10 10 // Created On : Tue Jan 17 12:27:26 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jan 15 14:34:58202213 // Update Count : 4 512 // Last Modified On : Thu Jan 13 20:11:55 2022 13 // Update Count : 42 14 14 // 15 15 … … 179 179 GENERATOR( active_thread()->random_state ); 180 180 } // set_seed 181 182 uint32_t prng( void ) { // [0,UINT_MAX] 183 uint32_t & state = active_thread()->random_state; 184 return GENERATOR( state ); 185 } // prng 181 uint32_t prng( void ) { return GENERATOR( active_thread()->random_state ); } // [0,UINT_MAX] 186 182 187 183 // Local Variables: // -
libcfa/src/concurrency/thread.hfa
r454b4e0 ra986807 10 10 // Created On : Tue Jan 17 12:27:26 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Feb 9 22:10:14202213 // Update Count : 1412 // Last Modified On : Thu Jan 6 16:40:16 2022 13 // Update Count : 7 14 14 // 15 15 … … 130 130 T & join( T & this ); 131 131 132 //----------133 static inline {134 uint32_t prng( thread$ & th ) __attribute__(( warn_unused_result )) { return LCG( th.random_state ); } // [0,UINT_MAX]135 uint32_t prng( thread$ & th, uint32_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)136 uint32_t prng( thread$ & th, uint32_t l, uint32_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]137 } // prng138 139 132 // Local Variables: // 140 133 // mode: c // -
libcfa/src/stdlib.cfa
r454b4e0 ra986807 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jan 15 14:33:21202213 // Update Count : 59 512 // Last Modified On : Thu Jan 13 21:38:30 2022 13 // Update Count : 593 14 14 // 15 15 … … 226 226 227 227 uint32_t __global_random_seed; // sequential/concurrent 228 uint32_t __global_random_state; // sequential only228 uint32_t __global_random_state; // sequential only 229 229 230 230 void set_seed( PRNG & prng, uint32_t seed_ ) with( prng ) { state = seed = seed_; GENERATOR( state ); } // set seed 231 uint32_t prng( PRNG & prng ) with( prng ) { callcnt += 1; return GENERATOR( state ); } 231 232 232 233 void set_seed( uint32_t seed ) { __global_random_seed = seed; GENERATOR( __global_random_state ); } -
libcfa/src/stdlib.hfa
r454b4e0 ra986807 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jan 15 09:57:28202213 // Update Count : 6 4012 // Last Modified On : Thu Jan 13 21:34:46 2022 13 // Update Count : 636 14 14 // 15 15 … … 18 18 #include "bits/defs.hfa" // OPTIONAL_THREAD 19 19 #include "bits/align.hfa" // libAlign 20 #include "bits/random.hfa" // prng21 20 22 21 #include <stdlib.h> // *alloc, strto*, ato* … … 411 410 412 411 void set_seed( PRNG & prng, uint32_t seed_ ); 412 uint32_t prng( PRNG & prng ) __attribute__(( warn_unused_result )); // [0,UINT_MAX] 413 413 static inline { 414 uint32_t prng( PRNG & prng ) __attribute__(( warn_unused_result )) with( prng ) { callcnt += 1; return LCG( state ); } // [0,UINT_MAX]415 414 void ?{}( PRNG & prng ) { set_seed( prng, rdtscl() ); } // random seed 416 415 void ?{}( PRNG & prng, uint32_t seed ) { set_seed( prng, seed ); } // fixed seed
Note:
See TracChangeset
for help on using the changeset viewer.