| 3333 | |
| 3334 | template <unsigned Digits10, class ExponentType, class Allocator> |
| 3335 | inline ExponentType eval_ilogb(const cpp_dec_float<Digits10, ExponentType, Allocator>& val) |
| 3336 | { |
| 3337 | if (val.iszero()) |
| 3338 | return (std::numeric_limits<typename cpp_dec_float<Digits10, ExponentType, Allocator>::exponent_type>::min)(); |
| 3339 | if ((val.isinf)()) |
| 3340 | return INT_MAX; |
| 3341 | if ((val.isnan)()) |
| 3342 | #ifdef FP_ILOGBNAN |
| 3343 | return FP_ILOGBNAN; |
| 3344 | #else |
| 3345 | return INT_MAX; |
| 3346 | #endif |
| 3347 | // Set result, to the exponent of val: |
| 3348 | return val.order(); |
| 3349 | } |
| 3350 | template <unsigned Digits10, class ExponentType, class Allocator, class ArgType> |
| 3351 | inline void eval_scalbn(cpp_dec_float<Digits10, ExponentType, Allocator>& result, const cpp_dec_float<Digits10, ExponentType, Allocator>& val, ArgType e_) |
| 3352 | { |