SGN
#define SGN(x) ((x < 0) ? -1 : ((x > 0) ? 1 : 0))
#define SGN(X) ((X) < 0 ? -1 : 1)
#define SGN(x) ((x) < 0 ? (-1) : (x) > 0 ? (1) : (0))