Changeset 600478d for libcfa/src
- Timestamp:
- Jun 17, 2023, 6:46:20 PM (16 months ago)
- Branches:
- master
- Children:
- b38f6da
- Parents:
- 6527150
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/math.hfa
r6527150 r600478d 10 10 // Created On : Mon Apr 18 23:37:04 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 8 08:40:42 202213 // Update Count : 1 3612 // Last Modified On : Sat Jun 17 18:42:45 2023 13 // Update Count : 198 14 14 // 15 15 … … 236 236 237 237 return (i << 32) + (sum); 238 } 238 } // log2_u32_32 239 239 240 240 //---------------------- Trigonometric ---------------------- … … 396 396 unsigned long long int ceiling_div( unsigned long long int n, unsigned long long int align ) { return (n + (align - 1)) / align; } 397 397 398 // forall( T | { T ?+?( T, T ); T ?-?( T, T ); T ?%?( T, T ); } ) 399 // T ceiling_div( T n, T align ) { verify( is_pow2( align ) );return (n + (align - 1)) / align; } 400 401 // gcc notices the div/mod pair and saves both so only one div. 402 signed char ceiling( signed char n, signed char align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 403 unsigned char ceiling( unsigned char n, unsigned char align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 404 short int ceiling( short int n, short int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 405 unsigned short int ceiling( unsigned short int n, unsigned short int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 406 int ceiling( int n, int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 407 unsigned int ceiling( unsigned int n, unsigned int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 408 long int ceiling( long int n, long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 409 unsigned long int ceiling( unsigned long int n, unsigned long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0) , align); } 410 long long int ceiling( long long int n, long long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 411 unsigned long long int ceiling( unsigned long long int n, unsigned long long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 412 413 // forall( T | { void ?{}( T &, one_t ); T ?+?( T, T ); T ?-?( T, T ); T ?/?( T, T ); } ) 414 // T ceiling( T n, T align ) { return return floor( n + (n % align != 0 ? align - 1 : 0), align ); *} 398 signed char ceiling( signed char n, char align ) { 399 align = align < 0 ? -align : align; // align must be signed 400 typeof(n) trunc = floor( n, align ); 401 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 402 } 403 unsigned char ceiling( unsigned char n, unsigned char align ) { 404 typeof(n) trunc = floor( n, align ); 405 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 406 } 407 short int ceiling( short int n, short int align ) { 408 align = align < 0 ? -align : align; // align must be signed 409 typeof(n) trunc = floor( n, align ); 410 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 411 } 412 unsigned short int ceiling( unsigned short int n, unsigned short int align ) { 413 typeof(n) trunc = floor( n, align ); 414 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 415 } 416 int ceiling( int n, int align ) { 417 align = align < 0 ? -align : align; // align must be signed 418 typeof(n) trunc = floor( n, align ); 419 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 420 } 421 unsigned int ceiling( unsigned int n, unsigned int align ) { 422 typeof(n) trunc = floor( n, align ); 423 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 424 } 425 long int ceiling( long int n, long int align ) { 426 align = align < 0 ? -align : align; // align must be signed 427 typeof(n) trunc = floor( n, align ); 428 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 429 } 430 unsigned long int ceiling( unsigned long int n, unsigned long int align ) { 431 typeof(n) trunc = floor( n, align ); 432 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 433 } 434 long long int ceiling( long long int n, signed long long int align ) { 435 align = align < 0 ? -align : align; // align must be signed 436 typeof(n) trunc = floor( n, align ); 437 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 438 } 439 unsigned long long int ceiling( unsigned long long int n, unsigned long long int align ) { 440 typeof(n) trunc = floor( n, align ); 441 return n >= 0 ? trunc + (trunc != n ? align : 0) : trunc; 442 } 415 443 416 444 float floor( float x ) { return floorf( x ); }
Note: See TracChangeset
for help on using the changeset viewer.