1#ifndef MPP_MINIMAX_H 2#define MPP_MINIMAX_H 3 4#if defined __GNUC__ && defined __cplusplus 5 6# define maxi(A,B) ( (A) >? (B) ) 7# define mini(A,B) ( (A) <? (B) ) 8# define maxd(A,B) ( (A) >? (B) ) 9# define mind(A,B) ( (A) <? (B) ) 10# define maxf(A,B) ( (A) >? (B) ) 11# define minf(A,B) ( (A) <? (B) ) 12 13# define absi(A) abs (A) 14# define absf(A) fabsf (A) 15# define absd(A) fabs (A) 16 17#elif defined __GNUC__ 18 19# define maxi(A,B) ( (A) > (B) ? (A) : (B) ) 20# define mini(A,B) ( (A) < (B) ? (A) : (B) ) 21# define maxd(A,B) ( (A) > (B) ? (A) : (B) ) 22# define mind(A,B) ( (A) < (B) ? (A) : (B) ) 23# define maxf(A,B) ( (A) > (B) ? (A) : (B) ) 24# define minf(A,B) ( (A) < (B) ? (A) : (B) ) 25 26# define absi(A) abs (A) 27# define absf(A) fabsf (A) 28# define absd(A) fabs (A) 29 30#else 31 32# define maxi(A,B) ( (A) > (B) ? (A) : (B) ) 33# define mini(A,B) ( (A) < (B) ? (A) : (B) ) 34# define maxd(A,B) ( (A) > (B) ? (A) : (B) ) 35# define mind(A,B) ( (A) < (B) ? (A) : (B) ) 36# define maxf(A,B) ( (A) > (B) ? (A) : (B) ) 37# define minf(A,B) ( (A) < (B) ? (A) : (B) ) 38 39# define absi(A) ( (A) >= 0 ? (A) : -(A) ) 40# define absf(A) ( (A) >= 0.f ? (A) : -(A) ) 41# define absd(A) ( (A) >= 0. ? (A) : -(A) ) 42 43#endif /* GNUC && C++ */ 44 45#endif /* MPP_MINIMAX_H */ 46