std::numeric_limits::has_denorm_loss
static const bool has_denorm_loss |
(until C++11) | |
static constexpr bool has_denorm_loss |
(since C++11) | |
The value of std::numeric_limits<T>::has_denorm_loss is true for all floating-point types T capable of distinguishing loss of precision due to denormalization from other causes of inexact result.
Contents |
[edit] Standard specializations
T | value of std::numeric_limits<T>::has_denorm_loss |
/* non-specialized */ | false |
bool | false |
char | false |
signed char | false |
unsigned char | false |
wchar_t | false |
char16_t | false |
char32_t | false |
short | false |
unsigned short | false |
int | false |
unsigned int | false |
long | false |
unsigned long | false |
long long | false |
unsigned long long | false |
float | implementation-defined |
double | implementation-defined |
long double | implementation-defined |
[edit] Notes
Standard-compliant IEE 754 floating-point implementations may detect the floating-point underflow at three predefined moments:
1) after computation of a result with absolute value smaller than std::numeric_limits<T>::min(), such implementation detects tinyness before rounding.
2) after rounding of the result to std::numeric_limits<T>::digits bits, if the result is tiny, such implementation detects tinyness after rounding.
3) if the conversion of the rounded tiny result to subnormal form resulted in the loss of precision, such implementation detects denorm loss.
[edit] Example
This section is incomplete Reason: no example |
[edit] See also
[static] |
identifies floating-point types that detect tinyness before rounding (public static member constant) |
[static] |
identifies the denormalization style used by the floating-point type (public static member constant) |