18 |
18 |
19 #ifdef max |
19 #ifdef max |
20 #undef max |
20 #undef max |
21 #endif |
21 #endif |
22 |
22 |
|
23 static inline int max(int a, int b) { if (a >= b) return a; return b; } |
|
24 static inline double dmax(double a, double b) { if (a >= b) return a; return b; } |
|
25 static inline uint64 max64(uint64 a, uint64 b) { if (a >= b) return a; return b; } |
23 static inline int min(int a, int b) { if (a <= b) return a; return b; } |
26 static inline int min(int a, int b) { if (a <= b) return a; return b; } |
24 static inline int max(int a, int b) { if (a >= b) return a; return b; } |
|
25 static inline int64 max64(int64 a, int64 b) { if (a >= b) return a; return b; } |
|
26 |
27 |
27 static inline uint minu(uint a, uint b) { if (a <= b) return a; return b; } |
28 static inline uint minu(uint a, uint b) { if (a <= b) return a; return b; } |
28 static inline uint maxu(uint a, uint b) { if (a >= b) return a; return b; } |
29 static inline uint maxu(uint a, uint b) { if (a >= b) return a; return b; } |
29 |
30 |
30 |
31 |
134 for (_i = 0; _b != 0; _i++, _b >>= 1) \ |
135 for (_i = 0; _b != 0; _i++, _b >>= 1) \ |
135 if (_b & 1) |
136 if (_b & 1) |
136 |
137 |
137 #define abs myabs |
138 #define abs myabs |
138 |
139 |
139 |
|
140 static inline int intxchg_(int *a, int b) { int t = *a; *a = b; return t; } |
140 static inline int intxchg_(int *a, int b) { int t = *a; *a = b; return t; } |
141 #define intswap(a,b) ((b) = intxchg_(&(a), (b))) |
141 #define intswap(a,b) ((b) = intxchg_(&(a), (b))) |
142 static inline int uintxchg_(uint *a, uint b) { uint t = *a; *a = b; return t; } |
142 static inline int uintxchg_(uint *a, uint b) { uint t = *a; *a = b; return t; } |
143 #define uintswap(a,b) ((b) = uintxchg_(&(a), (b))) |
143 #define uintswap(a,b) ((b) = uintxchg_(&(a), (b))) |
144 |
|
145 static inline int myabs(int a) { if (a<0) a = -a; return a; } |
|
146 static inline int64 myabs64(int64 a) { if (a<0) a = -a; return a; } |
|
147 |
144 |
148 static inline void swap_byte(byte *a, byte *b) { byte t = *a; *a = *b; *b = t; } |
145 static inline void swap_byte(byte *a, byte *b) { byte t = *a; *a = *b; *b = t; } |
149 static inline void swap_uint16(uint16 *a, uint16 *b) { uint16 t = *a; *a = *b; *b = t; } |
146 static inline void swap_uint16(uint16 *a, uint16 *b) { uint16 t = *a; *a = *b; *b = t; } |
150 static inline void swap_int16(int16 *a, int16 *b) { int16 t = *a; *a = *b; *b = t; } |
147 static inline void swap_int16(int16 *a, int16 *b) { int16 t = *a; *a = *b; *b = t; } |
151 static inline void swap_uint32(uint32 *a, uint32 *b) { uint32 t = *a; *a = *b; *b = t; } |
148 static inline void swap_uint32(uint32 *a, uint32 *b) { uint32 t = *a; *a = *b; *b = t; } |