Lines Matching full:exp

72 	exp := int(bits>>flt.mantbits) & (1<<flt.expbits - 1)
75 switch exp {
91 exp++
97 exp += flt.bias
101 return fmtB(dst, neg, mant, exp, flt)
104 return fmtX(dst, prec, fmt, neg, mant, exp, flt)
108 return bigFtoa(dst, prec, fmt, neg, mant, exp, flt)
119 ryuFtoaShortest(&digs, mant, exp-int(flt.mantbits), flt)
148 ryuFtoaFixed32(&digs, uint32(mant), exp-int(flt.mantbits), digits)
152 ryuFtoaFixed64(&digs, mant, exp-int(flt.mantbits), digits)
157 return bigFtoa(dst, prec, fmt, neg, mant, exp, flt)
163 func bigFtoa(dst []byte, prec int, fmt byte, neg bool, mant uint64, exp int, flt *floatInfo) []byte…
166 d.Shift(exp - int(flt.mantbits))
170 roundShortest(d, mant, exp, flt)
217 exp := digs.dp - 1
218 if exp < -4 || exp >= eprec {
234 // roundShortest rounds d (= mant * 2^exp) to the shortest number of digits
236 func roundShortest(d *decimal, mant uint64, exp int, flt *floatInfo) {
249 // Suppose d is not denormal, so that 2^exp <= d < 10^dp.
252 // at most 2^(exp-mantbits).
254 // So the number is already shortest if 10^(dp-nd) > 2^(exp-mantbits),
255 // or equivalently log2(10)*(dp-nd) > exp-mantbits.
256 // It is true if 332/100*(dp-nd) >= exp-mantbits (log2(10) > 3.32).
258 if exp > minexp && 332*(d.dp-d.nd) >= 100*(exp-int(flt.mantbits)) {
263 // d = mant << (exp - mantbits)
264 // Next highest floating point number is mant+1 << exp-mantbits.
265 // Our upper bound is halfway between, mant*2+1 << exp-mantbits-1.
268 upper.Shift(exp - int(flt.mantbits) - 1)
270 // d = mant << (exp - mantbits)
271 // Next lowest floating point number is mant-1 << exp-mantbits,
272 // unless mant-1 drops the significant bit and exp is not the minimum exp,
273 // in which case the next lowest is mant*2-1 << exp-mantbits-1.
278 if mant > 1<<flt.mantbits || exp == minexp {
280 explo = exp
283 explo = exp - 1
408 exp := d.dp - 1
410 exp = 0
412 if exp < 0 {
414 exp = -exp
422 case exp < 10:
423 dst = append(dst, '0', byte(exp)+'0')
424 case exp < 100:
425 dst = append(dst, byte(exp/10)+'0', byte(exp%10)+'0')
427 dst = append(dst, byte(exp/100)+'0', byte(exp/10)%10+'0', byte(exp%10)+'0')
467 func fmtB(dst []byte, neg bool, mant uint64, exp int, flt *floatInfo) []byte {
480 exp -= int(flt.mantbits)
481 if exp >= 0 {
484 dst, _ = formatBits(dst, uint64(exp), 10, exp < 0, true)
490 func fmtX(dst []byte, prec int, fmt byte, neg bool, mant uint64, exp int, flt *floatInfo) []byte {
492 exp = 0
499 exp--
514 exp++
551 if exp < 0 {
553 exp = -exp
561 case exp < 100:
562 dst = append(dst, byte(exp/10)+'0', byte(exp%10)+'0')
563 case exp < 1000:
564 dst = append(dst, byte(exp/100)+'0', byte((exp/10)%10)+'0', byte(exp%10)+'0')
566 …dst = append(dst, byte(exp/1000)+'0', byte(exp/100)%10+'0', byte((exp/10)%10)+'0', byte(exp%10)+'0…