Home | History | Annotate | Download | only in src

Lines Matching refs:DiyFp

150 // Reads a DiyFp from the buffer.
151 // The returned DiyFp is not necessarily normalized.
152 // If remaining_decimals is zero then the returned DiyFp is accurate.
155 DiyFp* result,
160 *result = DiyFp(significand, 0);
169 *result = DiyFp(significand, exponent);
227 // Returns 10^exponent as an exact DiyFp.
229 static DiyFp AdjustmentPowerOfTen(int exponent) {
236 case 1: return DiyFp(V8_2PART_UINT64_C(0xa0000000, 00000000), -60);
237 case 2: return DiyFp(V8_2PART_UINT64_C(0xc8000000, 00000000), -57);
238 case 3: return DiyFp(V8_2PART_UINT64_C(0xfa000000, 00000000), -54);
239 case 4: return DiyFp(V8_2PART_UINT64_C(0x9c400000, 00000000), -50);
240 case 5: return DiyFp(V8_2PART_UINT64_C(0xc3500000, 00000000), -47);
241 case 6: return DiyFp(V8_2PART_UINT64_C(0xf4240000, 00000000), -44);
242 case 7: return DiyFp(V8_2PART_UINT64_C(0x98968000, 00000000), -40);
245 return DiyFp(0, 0);
256 DiyFp input;
279 DiyFp cached_power;
287 DiyFp adjustment_power = AdjustmentPowerOfTen(adjustment_exponent);
292 ASSERT(DiyFp::kSignificandSize == 64);
315 int order_of_magnitude = DiyFp::kSignificandSize + input.e();
319 DiyFp::kSignificandSize - effective_significand_size;
320 if (precision_digits_count + kDenominatorLog >= DiyFp::kSignificandSize) {
325 DiyFp::kSignificandSize + 1;
333 // We use uint64_ts now. This only works if the DiyFp uses uint64_ts too.
334 ASSERT(DiyFp::kSignificandSize == 64);
342 DiyFp rounded_input(input.f() >> precision_digits_count,
377 DiyFp upper_boundary = Double(guess).UpperBoundary();