Lines Matching refs:DiyFp
130 // Reads a DiyFp from the buffer.
131 // The returned DiyFp is not necessarily normalized.
132 // If remaining_decimals is zero then the returned DiyFp is accurate.
135 DiyFp* result,
140 *result = DiyFp(significand, 0);
149 *result = DiyFp(significand, exponent);
212 // Returns 10^exponent as an exact DiyFp.
214 static DiyFp AdjustmentPowerOfTen(int exponent) {
222 return DiyFp(V8_2PART_UINT64_C(0xA0000000, 00000000), -60);
224 return DiyFp(V8_2PART_UINT64_C(0xC8000000, 00000000), -57);
226 return DiyFp(V8_2PART_UINT64_C(0xFA000000, 00000000), -54);
228 return DiyFp(V8_2PART_UINT64_C(0x9C400000, 00000000), -50);
230 return DiyFp(V8_2PART_UINT64_C(0xC3500000, 00000000), -47);
232 return DiyFp(V8_2PART_UINT64_C(0xF4240000, 00000000), -44);
234 return DiyFp(V8_2PART_UINT64_C(0x98968000, 00000000), -40);
247 DiyFp input;
270 DiyFp cached_power;
278 DiyFp adjustment_power = AdjustmentPowerOfTen(adjustment_exponent);
283 DCHECK_EQ(DiyFp::kSignificandSize, 64);
306 int order_of_magnitude = DiyFp::kSignificandSize + input.e();
310 DiyFp::kSignificandSize - effective_significand_size;
311 if (precision_digits_count + kDenominatorLog >= DiyFp::kSignificandSize) {
316 DiyFp::kSignificandSize + 1;
324 // We use uint64_ts now. This only works if the DiyFp uses uint64_ts too.
325 DCHECK_EQ(DiyFp::kSignificandSize, 64);
333 DiyFp rounded_input(input.f() >> precision_digits_count,
368 DiyFp upper_boundary = Double(guess).UpperBoundary();