Changes in libcfa/src/common.hfa [4b75ae9:a738c68]
- File:
-
- 1 edited
-
libcfa/src/common.hfa (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/common.hfa
r4b75ae9 ra738c68 10 10 // Created On : Wed Jul 11 17:54:36 2018 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Aug 24 08:01:36 202413 // Update Count : 4312 // Last Modified On : Mon Aug 14 17:01:47 2023 13 // Update Count : 38 14 14 // 15 15 … … 66 66 67 67 static inline __attribute__((always_inline)) { 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, T, Ts ); } ) 72 T min( T v1, T v2, T v3, Ts vs ) { return min( min( v1, v2 ), v3, 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, T, Ts ); } ) 78 T max( T v1, T v2, T v3, Ts vs ) { return max( max( v1, v2 ), v3, 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 68 86 // Specializations 69 87 char min( char v1, char v2 ) { return v1 < v2 ? v1 : v2; } … … 82 100 long long int max( long long int v1, long long int v2 ) { return v1 > v2 ? v1 : v2; } 83 101 unsigned long long int max( unsigned long long int v1, unsigned long long int v2 ) { return v1 > v2 ? v1 : v2; } 84 85 // Polymorphic86 forall( T | { int ?<?( T, T ); } )87 T min( T v1, T v2 ) { return v1 < v2 ? v1 : v2; }88 89 forall( T, Ts ... | { T min( T, T ); T min( Ts ); } )90 T min( T arg, Ts args ) { return min( arg, min( args ) ); }91 92 forall( T | { int ?>?( T, T ); } )93 T max( T v1, T v2 ) { return v1 > v2 ? v1 : v2; }94 95 forall( T, Ts ... | { T max( T, T ); T max( Ts ); } )96 T max( T arg, Ts args ) { return max( arg, max( args ) ); }97 98 forall( T | { T min( T, T ); T max( T, T ); } )99 T clamp( T value, T min_val, T max_val ) { return max( min_val, min( value, max_val ) ); }100 101 forall( T )102 void swap( T & v1, T & v2 ) { T temp = v1; v1 = v2; v2 = temp; }103 102 } // distribution 104 103
Note:
See TracChangeset
for help on using the changeset viewer.