For signed types The call is_negative(x) returns true if and only if the bit of sign (most significant bit) is set. Of course the result on a NaN input is generally out of control.
this function coincides with is_ltz on integral real values, but for floating valuesT, is_negative(mzero<T>) is true and if n is a Nan the result depends of the bit of sign of n which can be out of control although not undefined.