| 1693 | // for significant digits already multiplied by 10 ** q. |
| 1694 | template <typename binary> |
| 1695 | fastfloat_really_inline FASTFLOAT_CONSTEXPR14 |
| 1696 | adjusted_mantissa compute_error_scaled(int64_t q, uint64_t w, int lz) noexcept { |
| 1697 | int hilz = int(w >> 63) ^ 1; |
| 1698 | adjusted_mantissa answer; |
| 1699 | answer.mantissa = w << hilz; |
| 1700 | int bias = binary::mantissa_explicit_bits() - binary::minimum_exponent(); |
| 1701 | answer.power2 = int32_t(detail::power(int32_t(q)) + bias - hilz - lz - 62 + invalid_am_bias); |
| 1702 | return answer; |
| 1703 | } |
| 1704 | |
| 1705 | // w * 10 ** q, without rounding the representation up. |
| 1706 | // the power2 in the exponent will be adjusted by invalid_am_bias. |