sign(int a) returns -1, 0 or 1, depending on if a is negative, zero or positive, resp.
sign(float a) returns -1.0, 0.0 or 1.0, depending on if a is negative, 0.0 or positive, resp.
abs