Lines Matching refs:DiyFp

344 // w is a floating-point number (DiyFp), consisting of a significand and an
385 static bool DigitGen(DiyFp low,
386 DiyFp w,
387 DiyFp high,
406 DiyFp too_low = DiyFp(low.f() - unit, low.e());
407 DiyFp too_high = DiyFp(high.f() + unit, high.e());
410 DiyFp unsafe_interval = DiyFp::Minus(too_high, too_low);
418 DiyFp one = DiyFp(static_cast<uint64_t>(1) << -w.e(), w.e());
425 BiggestPowerTen(integrals, DiyFp::kSignificandSize - (-one.e()),
443 // Invariant: too_high = buffer * 10^kappa + DiyFp(rest, one.e())
448 return RoundWeed(buffer, *length, DiyFp::Minus(too_high, w).f(),
475 return RoundWeed(buffer, *length, DiyFp::Minus(too_high, w).f() * unit,
484 // w is a floating-point number (DiyFp), consisting of a significand and an
511 static bool DigitGenCounted(DiyFp w,
526 DiyFp one = DiyFp(static_cast<uint64_t>(1) << -w.e(), w.e());
533 BiggestPowerTen(integrals, DiyFp::kSignificandSize - (-one.e()),
604 DiyFp w = Double(v).AsNormalizedDiyFp();
609 DiyFp boundary_minus, boundary_plus;
612 DiyFp ten_mk; // Cached power of ten: 10^-k
615 kMinimalTargetExponent - (w.e() + DiyFp::kSignificandSize);
617 kMaximalTargetExponent - (w.e() + DiyFp::kSignificandSize);
623 DiyFp::kSignificandSize) &&
625 DiyFp::kSignificandSize));
626 // Note that ten_mk is only an approximation of 10^-k. A DiyFp only contains a
629 // The DiyFp::Times procedure rounds its result, and ten_mk is approximated
635 DiyFp scaled_w = DiyFp::Times(w, ten_mk);
637 boundary_plus.e() + ten_mk.e() + DiyFp::kSignificandSize);
643 DiyFp scaled_boundary_minus = DiyFp::Times(boundary_minus, ten_mk);
644 DiyFp scaled_boundary_plus = DiyFp::Times(boundary_plus, ten_mk);
670 DiyFp w = Double(v).AsNormalizedDiyFp();
671 DiyFp ten_mk; // Cached power of ten: 10^-k
674 kMinimalTargetExponent - (w.e() + DiyFp::kSignificandSize);
676 kMaximalTargetExponent - (w.e() + DiyFp::kSignificandSize);
682 DiyFp::kSignificandSize) &&
684 DiyFp::kSignificandSize));
685 // Note that ten_mk is only an approximation of 10^-k. A DiyFp only contains a
688 // The DiyFp::Times procedure rounds its result, and ten_mk is approximated
694 DiyFp scaled_w = DiyFp::Times(w, ten_mk);