#define max( x, y ) ((x) >= (y) ? (x) : (y)) #define min( x, y ) ((x) <= (y) ? (x) : (y)) #define swap( T, x, y ) { \ T temporary = (x); \ \ (x) = (y); \ (y) = temporary; \ }