//
//  This version of MIN should not be used with expressions with side effects.
//  Don't try:   min=MIN(x++,y++);
//
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
//
//  Extra parentheses avoid possible precedence problems with things like
//  MIN(r>s?5:1,t>u?6:t)
//  Don't write ugly code like that.
//  In general it is far safer to write a function.
//