| 2325 | /// Numeric limits for half-precision floats. |
| 2326 | /// **See also:** Documentation for [std::numeric_limits](https://en.cppreference.com/w/cpp/types/numeric_limits) |
| 2327 | template<> class numeric_limits<half_float::half> |
| 2328 | { |
| 2329 | public: |
| 2330 | /// Is template specialization. |
| 2331 | static HALF_CONSTEXPR_CONST bool is_specialized = true; |
| 2332 | |
| 2333 | /// Supports signed values. |
| 2334 | static HALF_CONSTEXPR_CONST bool is_signed = true; |
| 2335 | |
| 2336 | /// Is not an integer type. |
| 2337 | static HALF_CONSTEXPR_CONST bool is_integer = false; |
| 2338 | |
| 2339 | /// Is not exact. |
| 2340 | static HALF_CONSTEXPR_CONST bool is_exact = false; |
| 2341 | |
| 2342 | /// Doesn't provide modulo arithmetic. |
| 2343 | static HALF_CONSTEXPR_CONST bool is_modulo = false; |
| 2344 | |
| 2345 | /// Has a finite set of values. |
| 2346 | static HALF_CONSTEXPR_CONST bool is_bounded = true; |
| 2347 | |
| 2348 | /// IEEE conformant. |
| 2349 | static HALF_CONSTEXPR_CONST bool is_iec559 = true; |
| 2350 | |
| 2351 | /// Supports infinity. |
| 2352 | static HALF_CONSTEXPR_CONST bool has_infinity = true; |
| 2353 | |
| 2354 | /// Supports quiet NaNs. |
| 2355 | static HALF_CONSTEXPR_CONST bool has_quiet_NaN = true; |
| 2356 | |
| 2357 | /// Supports signaling NaNs. |
| 2358 | static HALF_CONSTEXPR_CONST bool has_signaling_NaN = true; |
| 2359 | |
| 2360 | /// Supports subnormal values. |
| 2361 | static HALF_CONSTEXPR_CONST float_denorm_style has_denorm = denorm_present; |
| 2362 | |
| 2363 | /// Supports no denormalization detection. |
| 2364 | static HALF_CONSTEXPR_CONST bool has_denorm_loss = false; |
| 2365 | |
| 2366 | #if HALF_ERRHANDLING_THROWS |
| 2367 | static HALF_CONSTEXPR_CONST bool traps = true; |
| 2368 | #else |
| 2369 | /// Traps only if [HALF_ERRHANDLING_THROW_...](\ref HALF_ERRHANDLING_THROW_INVALID) is acitvated. |
| 2370 | static HALF_CONSTEXPR_CONST bool traps = false; |
| 2371 | #endif |
| 2372 | |
| 2373 | /// Does not support no pre-rounding underflow detection. |
| 2374 | static HALF_CONSTEXPR_CONST bool tinyness_before = false; |
| 2375 | |
| 2376 | /// Rounding mode. |
| 2377 | static HALF_CONSTEXPR_CONST float_round_style round_style = half_float::half::round_style; |
| 2378 | |
| 2379 | /// Significant digits. |
| 2380 | static HALF_CONSTEXPR_CONST int digits = 11; |
| 2381 | |
| 2382 | /// Significant decimal digits. |
| 2383 | static HALF_CONSTEXPR_CONST int digits10 = 3; |
| 2384 | |