Changes in / [a09552d:5e6fb07]
- File:
-
- 1 edited
-
libcfa/src/common.hfa (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/common.hfa
ra09552d r5e6fb07 66 66 67 67 static inline __attribute__((always_inline)) { 68 forall( T | { int ?<?( T, T ); } ) 68 char min( char v1, char v2 ) { return v1 < v2 ? v1 : v2; } // optimization 69 int min( int v1, int v2 ) { return v1 < v2 ? v1 : v2; } 70 unsigned int min( unsigned int v1, unsigned int v2 ) { return v1 < v2 ? v1 : v2; } 71 long int min( long int v1, long int v2 ) { return v1 < v2 ? v1 : v2; } 72 unsigned long int min( unsigned long int v1, unsigned long int v2 ) { return v1 < v2 ? v1 : v2; } 73 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 long long int v2 ) { return v1 < v2 ? v1 : v2; } 75 forall( T | { int ?<?( T, T ); } ) // generic 69 76 T min( T v1, T v2 ) { return v1 < v2 ? v1 : v2; } 70 77 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 ); } ) 78 char max( char v1, char v2 ) { return v1 > v2 ? v1 : v2; } // optimization 79 int max( int v1, int v2 ) { return v1 > v2 ? v1 : v2; } 80 unsigned int max( unsigned int v1, unsigned int v2 ) { return v1 > v2 ? v1 : v2; } 81 long int max( long int v1, long int v2 ) { return v1 > v2 ? v1 : v2; } 82 unsigned long int max( unsigned long int v1, unsigned long int v2 ) { return v1 > v2 ? v1 : v2; } 83 long long int max( long long int v1, long long int v2 ) { return v1 > v2 ? v1 : v2; } 84 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 ); } ) // generic 75 86 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 87 80 88 forall( T | { T min( T, T ); T max( T, T ); } ) … … 83 91 forall( T ) 84 92 void swap( T & v1, T & v2 ) { T temp = v1; v1 = v2; v2 = temp; } 85 86 // Specializations87 char min( char v1, char v2 ) { return v1 < v2 ? v1 : v2; }88 int min( int v1, int v2 ) { return v1 < v2 ? v1 : v2; }89 unsigned int min( unsigned int v1, unsigned int v2 ) { return v1 < v2 ? v1 : v2; }90 long int min( long int v1, long 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; }92 long long int min( long long int v1, long long int 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; }94 95 char max( char v1, char v2 ) { return v1 > v2 ? v1 : v2; }96 int max( int v1, int v2 ) { return v1 > v2 ? v1 : v2; }97 unsigned int max( unsigned int v1, unsigned int v2 ) { return v1 > v2 ? v1 : v2; }98 long int max( long int v1, long int v2 ) { return v1 > v2 ? v1 : v2; }99 unsigned long int max( unsigned long int v1, unsigned long int v2 ) { return v1 > v2 ? v1 : v2; }100 long long int max( long long int v1, long long int v2 ) { return v1 > v2 ? v1 : v2; }101 unsigned long long int max( unsigned long long int v1, unsigned long long int v2 ) { return v1 > v2 ? v1 : v2; }102 93 } // distribution 103 94
Note:
See TracChangeset
for help on using the changeset viewer.