error.[ch]: fix keyword usage
[0verkill.git] / math.h
blob45136daac2239ab33f9e74484002c4fbe5d9410d
1 #ifndef __MY_MATH_H
2 #define __MY_MATH_H
4 #include "cfg.h"
6 #define PREC 10 /* fixpoint arithmetics precision */
9 #define PREC2 (1<<PREC)
10 #define LOW_BITS (PREC2-1)
12 #define float2double(a) ((int)((a)*PREC2))
13 #define int2double(a) ((a)<<PREC)
14 #define double2int(a) ((a)>>PREC)
15 /* int and (int a,int b) */
16 #define my_and(a,b) ((a)&((b<<PREC)+LOW_BITS))
17 #define mul(a,b) ((int)(((long_long)(a)*(b))>>PREC))
18 /* int add_int (int a,int b) */
19 #define add_int(a,b) ((a)+((b)<<PREC))
20 /* int mul_int (int a,int b) */
21 #define mul_int(a,b) ((int)(((long_long)(a)*((b)<<PREC))>>PREC))
22 /* int sub_int (int a,int b) */
23 #define sub_int(a,b) ((a)-((b)<<PREC))
24 /* int sub_int (int a,int b) */
25 #define sub_from_int(a,b) (((a)<<PREC)-(b))
26 #define my_abs(a) ((a)>0?(a):-(a))
27 #define my_sgn(a) ((a)>0?1:((a)<0?-1:0))
28 /* int round_up(int a) */
29 #define round_up(a) (((a)+LOW_BITS)>>PREC)
31 /* "min" and "max" might already been defined on Win32 */
32 #ifndef WIN32
33 #define max(a,b) ((a)>=(b)?(a):(b))
34 #define min(a,b) ((a)<=(b)?(a):(b))
35 #else
36 #define M_PI 3.1415926535897932384626433832795L
37 #endif
39 #endif