Changes in libcfa/src/common.hfa [95bda0a:3543e99]
- File:
-
- 1 edited
-
libcfa/src/common.hfa (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/common.hfa
r95bda0a r3543e99 10 10 // Created On : Wed Jul 11 17:54:36 2018 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 8 08:32:57 202213 // Update Count : 2312 // Last Modified On : Mon Aug 14 17:01:47 2023 13 // Update Count : 38 14 14 // 15 15 … … 32 32 } // extern "C" 33 33 static inline __attribute__((always_inline)) { 34 unsigned char abs( signed char v ) { return abs( (int)v ); }34 unsigned char abs( signed char v ) { return (int)abs( (int)v ); } 35 35 // use default C routine for int 36 36 unsigned long int abs( long int v ) { return labs( v ); } … … 66 66 67 67 static inline __attribute__((always_inline)) { 68 char min( char v1, char v2 ) { return v1 < v2 ? v1 : v2; } // optimization 68 forall( T | { int ?<?( T, T ); } ) 69 T min( T v1, T v2 ) { return v1 < v2 ? v1 : v2; } 70 71 forall( T, Ts... | { T min( T, T ); T min( T, Ts ); } ) 72 T min( T v1, T v2, Ts vs ) { return min( min( v1, v2 ), vs ); } 73 74 forall( T | { int ?>?( T, T ); } ) 75 T max( T v1, T v2 ) { return v1 > v2 ? v1 : v2; } 76 77 forall( T, Ts... | { T max( T, T ); T max( T, Ts ); } ) 78 T max( T v1, T v2, Ts vs ) { return max( max( v1, v2 ), vs ); } 79 80 forall( T | { T min( T, T ); T max( T, T ); } ) 81 T clamp( T value, T min_val, T max_val ) { return max( min_val, min( value, max_val ) ); } 82 83 forall( T ) 84 void swap( T & v1, T & v2 ) { T temp = v1; v1 = v2; v2 = temp; } 85 86 // Specializations 87 char min( char v1, char v2 ) { return v1 < v2 ? v1 : v2; } 69 88 int min( int v1, int v2 ) { return v1 < v2 ? v1 : v2; } 70 89 unsigned int min( unsigned int v1, unsigned int v2 ) { return v1 < v2 ? v1 : v2; } 71 90 long int min( long int v1, long int v2 ) { return v1 < v2 ? v1 : v2; } 72 unsigned long int min( unsigned long int v1, unsigned int v2 ) { return v1 < v2 ? v1 : v2; }91 unsigned long int min( unsigned long int v1, unsigned long int v2 ) { return v1 < v2 ? v1 : v2; } 73 92 long long int min( long long int v1, long long int v2 ) { return v1 < v2 ? v1 : v2; } 74 unsigned long long int min( unsigned long long int v1, unsigned int v2 ) { return v1 < v2 ? v1 : v2; } 75 forall( T | { int ?<?( T, T ); } ) // generic 76 T min( T v1, T v2 ) { return v1 < v2 ? v1 : v2; } 93 unsigned long long int min( unsigned long long int v1, unsigned long long int v2 ) { return v1 < v2 ? v1 : v2; } 77 94 78 char max( char v1, char v2 ) { return v1 > v2 ? v1 : v2; } // optimization95 char max( char v1, char v2 ) { return v1 > v2 ? v1 : v2; } 79 96 int max( int v1, int v2 ) { return v1 > v2 ? v1 : v2; } 80 97 unsigned int max( unsigned int v1, unsigned int v2 ) { return v1 > v2 ? v1 : v2; } … … 83 100 long long int max( long long int v1, long long int v2 ) { return v1 > v2 ? v1 : v2; } 84 101 unsigned long long int max( unsigned long long int v1, unsigned long long int v2 ) { return v1 > v2 ? v1 : v2; } 85 forall( T | { int ?>?( T, T ); } ) // generic86 T max( T v1, T v2 ) { return v1 > v2 ? v1 : v2; }87 88 forall( T | { T min( T, T ); T max( T, T ); } )89 T clamp( T value, T min_val, T max_val ) { return max( min_val, min( value, max_val ) ); }90 91 forall( T )92 void swap( T & v1, T & v2 ) { T temp = v1; v1 = v2; v2 = temp; }93 102 } // distribution 94 103
Note:
See TracChangeset
for help on using the changeset viewer.