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