Ignore:
Timestamp:
Nov 22, 2022, 11:03:19 PM (2 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, ast-experimental, master
Children:
78de1e5
Parents:
29702ad
Message:

changes to PRNG types to eliminate casts

Location:
libcfa/src/concurrency
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/thread.cfa

    r29702ad r20cf96d  
    1010// Created On       : Tue Jan 17 12:27:26 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Nov 20 17:17:50 2022
    13 // Update Count     : 80
     12// Last Modified On : Tue Nov 22 22:18:37 2022
     13// Update Count     : 81
    1414//
    1515
     
    227227//-----------------------------------------------------------------------------
    228228
    229 void set_seed( uint64_t seed ) {
     229void set_seed( size_t seed ) {
    230230        PRNG_ARG_T & state = active_thread()->random_state;
    231231        state = __global_random_seed = seed;
     
    235235} // set_seed
    236236
    237 uint64_t prng( void ) {                                                                 // [0,UINT_MAX]
     237size_t prng( void ) {                                                                   // [0,UINT_MAX]
    238238        PRNG_ARG_T & state = active_thread()->random_state;
    239239        return PRNG_NAME( state );
  • libcfa/src/concurrency/thread.hfa

    r29702ad r20cf96d  
    1010// Created On       : Tue Jan 17 12:27:26 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Nov 19 16:41:27 2022
    13 // Update Count     : 30
     12// Last Modified On : Tue Nov 22 22:18:34 2022
     13// Update Count     : 35
    1414//
    1515
     
    142142//----------
    143143// prng
     144void set_seed( size_t seed );
    144145static inline {
    145         uint64_t prng( thread$ & th ) __attribute__(( warn_unused_result )) { return PRNG_NAME( th.random_state ); } // [0,UINT_MAX]
    146         uint64_t prng( thread$ & th, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
    147         uint64_t prng( thread$ & th, uint64_t l, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
     146        size_t prng( thread$ & th ) __attribute__(( warn_unused_result )) { return PRNG_NAME( th.random_state ); } // [0,UINT_MAX]
     147        size_t prng( thread$ & th, size_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
     148        size_t prng( thread$ & th, size_t l, size_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
    148149        forall( T & | is_thread(T) ) {
    149                 uint64_t prng( T & th ) __attribute__(( warn_unused_result )) { return prng( (thread &)th ); } // [0,UINT_MAX]
    150                 uint64_t prng( T & th, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
    151                 uint64_t prng( T & th, uint64_t l, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
     150                size_t prng( T & th ) __attribute__(( warn_unused_result )) { return prng( (thread &)th ); } // [0,UINT_MAX]
     151                size_t prng( T & th, size_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
     152                size_t prng( T & th, size_t l, size_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
    152153        } // distribution
    153154} // distribution
Note: See TracChangeset for help on using the changeset viewer.