11 #undef max |
11 #undef max |
12 #endif |
12 #endif |
13 |
13 |
14 static INLINE int min(int a, int b) { if (a <= b) return a; return b; } |
14 static INLINE int min(int a, int b) { if (a <= b) return a; return b; } |
15 static INLINE int max(int a, int b) { if (a >= b) return a; return b; } |
15 static INLINE int max(int a, int b) { if (a >= b) return a; return b; } |
|
16 static INLINE int64 max64(int64 a, int64 b) { if (a >= b) return a; return b; } |
16 |
17 |
17 static INLINE uint minu(uint a, uint b) { if (a <= b) return a; return b; } |
18 static INLINE uint minu(uint a, uint b) { if (a <= b) return a; return b; } |
18 static INLINE uint maxu(uint a, uint b) { if (a >= b) return a; return b; } |
19 static INLINE uint maxu(uint a, uint b) { if (a >= b) return a; return b; } |
19 |
20 |
20 |
21 |
45 } |
46 } |
46 |
47 |
47 |
48 |
48 static INLINE int32 BIGMULSS(int32 a, int32 b, int shift) { |
49 static INLINE int32 BIGMULSS(int32 a, int32 b, int shift) { |
49 return (int32)(((int64)(a) * (int64)(b)) >> (shift)); |
50 return (int32)(((int64)(a) * (int64)(b)) >> (shift)); |
|
51 } |
|
52 |
|
53 static INLINE int64 BIGMULSS64(int64 a, int64 b, int shift) { |
|
54 return ((a) * (b)) >> (shift); |
50 } |
55 } |
51 |
56 |
52 static INLINE uint32 BIGMULUS(uint32 a, uint32 b, int shift) { |
57 static INLINE uint32 BIGMULUS(uint32 a, uint32 b, int shift) { |
53 return (uint32)(((uint64)(a) * (uint64)(b)) >> (shift)); |
58 return (uint32)(((uint64)(a) * (uint64)(b)) >> (shift)); |
54 } |
59 } |
192 static INLINE int intxchg_(int *a, int b) { int t = *a; *a = b; return t; } |
197 static INLINE int intxchg_(int *a, int b) { int t = *a; *a = b; return t; } |
193 #define intxchg(a,b) intxchg_(&(a), (b)) |
198 #define intxchg(a,b) intxchg_(&(a), (b)) |
194 #define intswap(a,b) ((b) = intxchg_(&(a), (b))) |
199 #define intswap(a,b) ((b) = intxchg_(&(a), (b))) |
195 |
200 |
196 static INLINE int myabs(int a) { if (a<0) a = -a; return a; } |
201 static INLINE int myabs(int a) { if (a<0) a = -a; return a; } |
|
202 static INLINE int64 myabs64(int64 a) { if (a<0) a = -a; return a; } |
197 |
203 |
198 static INLINE void swap_byte(byte *a, byte *b) { byte t = *a; *a = *b; *b = t; } |
204 static INLINE void swap_byte(byte *a, byte *b) { byte t = *a; *a = *b; *b = t; } |
199 static INLINE void swap_uint16(uint16 *a, uint16 *b) { uint16 t = *a; *a = *b; *b = t; } |
205 static INLINE void swap_uint16(uint16 *a, uint16 *b) { uint16 t = *a; *a = *b; *b = t; } |
200 static INLINE void swap_int16(int16 *a, int16 *b) { int16 t = *a; *a = *b; *b = t; } |
206 static INLINE void swap_int16(int16 *a, int16 *b) { int16 t = *a; *a = *b; *b = t; } |
201 static INLINE void swap_tile(TileIndex *a, TileIndex *b) { TileIndex t = *a; *a = *b; *b = t; } |
207 static INLINE void swap_tile(TileIndex *a, TileIndex *b) { TileIndex t = *a; *a = *b; *b = t; } |