Function classify
Returns whether x is a NaN, zero, infinity, subnormal or normalized number.
This function doesn't distinguish between negative and positive infinity, negative and positive NaN or negative and positive zero.
Parameters
Name | Description |
---|---|
F | Type of the floating point number. |
x | Floating point number. |
Returns
Classification of x.
Example
assert(classify(0.0) == FloatingPointClass .zero);
assert(classify(double .nan) == FloatingPointClass .nan);
assert(classify(double .infinity) == FloatingPointClass .infinite);
assert(classify(-double .infinity) == FloatingPointClass .infinite);
assert(classify(1.4) == FloatingPointClass .normal);
assert(classify(1.11254e-307 / 10) == FloatingPointClass .subnormal);
assert(classify(0.0f) == FloatingPointClass .zero);
assert(classify(float .nan) == FloatingPointClass .nan);
assert(classify(float .infinity) == FloatingPointClass .infinite);
assert(classify(-float .infinity) == FloatingPointClass .infinite);
assert(classify(0.3) == FloatingPointClass .normal);
assert(classify(5.87747e-38f / 10) == FloatingPointClass .subnormal);
assert(classify(0.0L) == FloatingPointClass .zero);
assert(classify(real .nan) == FloatingPointClass .nan);
assert(classify(real .infinity) == FloatingPointClass .infinite);
assert(classify(-real .infinity) == FloatingPointClass .infinite);