Changes in libcfa/src/stdlib.hfa [8a97248:b5e725a]
- File:
-
- 1 edited
-
libcfa/src/stdlib.hfa (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/stdlib.hfa
r8a97248 rb5e725a 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 2 11:30:04202313 // Update Count : 7 6612 // Last Modified On : Mon Aug 14 18:19:12 2023 13 // Update Count : 777 14 14 // 15 15 … … 19 19 #include "bits/align.hfa" // libAlign 20 20 #include "bits/random.hfa" // prng 21 #include <Exception.hfa> 22 #include <heap.hfa> 21 23 22 24 #include <stdlib.h> // *alloc, strto*, ato* 23 #include <heap.hfa> 24 25 #include <errno.h> 25 26 26 27 // Reduce includes by explicitly defining these routines. … … 294 295 295 296 static inline { 296 int strto( const char sptr[], char ** eptr, int base ) { return (int)strtol( sptr, eptr, base ); } 297 unsigned int strto( const char sptr[], char ** eptr, int base ) { return (unsigned int)strtoul( sptr, eptr, base ); } 298 long int strto( const char sptr[], char ** eptr, int base ) { return strtol( sptr, eptr, base ); } 299 unsigned long int strto( const char sptr[], char ** eptr, int base ) { return strtoul( sptr, eptr, base ); } 300 long long int strto( const char sptr[], char ** eptr, int base ) { return strtoll( sptr, eptr, base ); } 301 unsigned long long int strto( const char sptr[], char ** eptr, int base ) { return strtoull( sptr, eptr, base ); } 302 303 float strto( const char sptr[], char ** eptr ) { return strtof( sptr, eptr ); } 304 double strto( const char sptr[], char ** eptr ) { return strtod( sptr, eptr ); } 305 long double strto( const char sptr[], char ** eptr ) { return strtold( sptr, eptr ); } 306 } // distribution 307 308 float _Complex strto( const char sptr[], char ** eptr ); 309 double _Complex strto( const char sptr[], char ** eptr ); 310 long double _Complex strto( const char sptr[], char ** eptr ); 297 int strto( const char sptr[], char * eptr[], int base ) { return (int)strtol( sptr, eptr, base ); } 298 unsigned int strto( const char sptr[], char * eptr[], int base ) { return (unsigned int)strtoul( sptr, eptr, base ); } 299 long int strto( const char sptr[], char * eptr[], int base ) { return strtol( sptr, eptr, base ); } 300 unsigned long int strto( const char sptr[], char * eptr[], int base ) { return strtoul( sptr, eptr, base ); } 301 long long int strto( const char sptr[], char * eptr[], int base ) { return strtoll( sptr, eptr, base ); } 302 unsigned long long int strto( const char sptr[], char * eptr[], int base ) { return strtoull( sptr, eptr, base ); } 303 304 float strto( const char sptr[], char * eptr[] ) { return strtof( sptr, eptr ); } 305 double strto( const char sptr[], char * eptr[] ) { return strtod( sptr, eptr ); } 306 long double strto( const char sptr[], char * eptr[] ) { return strtold( sptr, eptr ); } 307 } // distribution 308 309 float _Complex strto( const char sptr[], char * eptr[] ); 310 double _Complex strto( const char sptr[], char * eptr[] ); 311 long double _Complex strto( const char sptr[], char * eptr[] ); 312 313 ExceptionDecl( out_of_range ); 314 ExceptionDecl( invalid_argument ); 315 316 forall( T | { T strto( const char sptr[], char * eptr[], int ); } ) 317 T convert( const char sptr[] ); 311 318 312 319 static inline { … … 367 374 368 375 char random( void ) { return (unsigned long int)random(); } 369 char random( char u ) { return random( (unsigned long int)u ); } // [0,u)376 char random( char u ) { return (unsigned long int)random( (unsigned long int)u ); } // [0,u) 370 377 char random( char l, char u ) { return random( (unsigned long int)l, (unsigned long int)u ); } // [l,u) 371 378 int random( void ) { return (long int)random(); } 372 int random( int u ) { return random( (long int)u ); } // [0,u]379 int random( int u ) { return (long int)random( (long int)u ); } // [0,u] 373 380 int random( int l, int u ) { return random( (long int)l, (long int)u ); } // [l,u) 374 381 unsigned int random( void ) { return (unsigned long int)random(); } 375 unsigned int random( unsigned int u ) { return random( (unsigned long int)u ); } // [0,u]382 unsigned int random( unsigned int u ) { return (unsigned long int)random( (unsigned long int)u ); } // [0,u] 376 383 unsigned int random( unsigned int l, unsigned int u ) { return random( (unsigned long int)l, (unsigned long int)u ); } // [l,u) 377 384 } // distribution … … 454 461 } // distribution 455 462 463 // Set default random-generator size. 464 #if defined( __x86_64__ ) || defined( __aarch64__ ) // 64-bit architecture 465 #define PRNG PRNG64 466 #else // 32-bit architecture 467 #define PRNG PRNG32 468 #endif // __x86_64__ 469 456 470 // Concurrent Pseudo Random-Number Generator : generate repeatable sequence of values that appear random. 457 471 //
Note:
See TracChangeset
for help on using the changeset viewer.