Deleted Added
full compact
78,79c78,79
< (d, mode, ndigits, decpt, sign, rve)
< double d; int mode, ndigits, *decpt, *sign; char **rve;
---
> (d0, mode, ndigits, decpt, sign, rve)
> double d0; int mode, ndigits, *decpt, *sign; char **rve;
81c81
< (double d, int mode, int ndigits, int *decpt, int *sign, char **rve)
---
> (double d0, int mode, int ndigits, int *decpt, int *sign, char **rve)
127c127,128
< double d2, ds, eps;
---
> U d, d2, eps;
> double ds;
152,153c153,154
<
< if (word0(d) & Sign_bit) {
---
> d.d = d0;
> if (word0(&d) & Sign_bit) {
156c157
< word0(d) &= ~Sign_bit; /* clear sign bit */
---
> word0(&d) &= ~Sign_bit; /* clear sign bit */
163c164
< if ((word0(d) & Exp_mask) == Exp_mask)
---
> if ((word0(&d) & Exp_mask) == Exp_mask)
165c166
< if (word0(d) == 0x8000)
---
> if (word0(&d) == 0x8000)
171c172
< if (!word1(d) && !(word0(d) & 0xfffff))
---
> if (!word1(&d) && !(word0(&d) & 0xfffff))
178c179
< dval(d) += 0; /* normalize */
---
> dval(&d) += 0; /* normalize */
180c181
< if (!dval(d)) {
---
> if (!dval(&d)) {
199c200
< b = d2b(dval(d), &be, &bbits);
---
> b = d2b(dval(&d), &be, &bbits);
201c202
< i = (int)(word0(d) >> Exp_shift1 & (Exp_mask>>Exp_shift1));
---
> i = (int)(word0(&d) >> Exp_shift1 & (Exp_mask>>Exp_shift1));
203c204
< if (( i = (int)(word0(d) >> Exp_shift1 & (Exp_mask>>Exp_shift1)) )!=0) {
---
> if (( i = (int)(word0(&d) >> Exp_shift1 & (Exp_mask>>Exp_shift1)) )!=0) {
205,207c206,208
< dval(d2) = dval(d);
< word0(d2) &= Frac_mask1;
< word0(d2) |= Exp_11;
---
> dval(&d2) = dval(&d);
> word0(&d2) &= Frac_mask1;
> word0(&d2) |= Exp_11;
209,210c210,211
< if (( j = 11 - hi0bits(word0(d2) & Frac_mask) )!=0)
< dval(d2) /= 1 << j;
---
> if (( j = 11 - hi0bits(word0(&d2) & Frac_mask) )!=0)
> dval(&d2) /= 1 << j;
216c217
< * log10(d) = (i-Bias)*log(2)/log(10) + log10(d2)
---
> * log10(&d) = (i-Bias)*log(2)/log(10) + log10(&d2)
218c219
< * This suggests computing an approximation k to log10(d) by
---
> * This suggests computing an approximation k to log10(&d) by
247,250c248,251
< x = i > 32 ? word0(d) << 64 - i | word1(d) >> i - 32
< : word1(d) << 32 - i;
< dval(d2) = x;
< word0(d2) -= 31*Exp_msk1; /* adjust exponent */
---
> x = i > 32 ? word0(&d) << (64 - i) | word1(&d) >> (i - 32)
> : word1(&d) << (32 - i);
> dval(&d2) = x;
> word0(&d2) -= 31*Exp_msk1; /* adjust exponent */
255c256
< ds = (dval(d2)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981;
---
> ds = (dval(&d2)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981;
261c262
< if (dval(d) < tens[k])
---
> if (dval(&d) < tens[k])
299a301,302
> ilim = ilim1 = -1; /* Values for cases 0 and 1; done here to */
> /* silence erroneous "gcc -Wall" warning. */
303d305
< ilim = ilim1 = -1;
337c339
< dval(d2) = dval(d);
---
> dval(&d2) = dval(&d);
347c349
< dval(d) /= bigtens[n_bigtens-1];
---
> dval(&d) /= bigtens[n_bigtens-1];
355c357
< dval(d) /= ds;
---
> dval(&d) /= ds;
358c360
< dval(d) *= tens[j1 & 0xf];
---
> dval(&d) *= tens[j1 & 0xf];
362c364
< dval(d) *= bigtens[i];
---
> dval(&d) *= bigtens[i];
365c367
< if (k_check && dval(d) < 1. && ilim > 0) {
---
> if (k_check && dval(&d) < 1. && ilim > 0) {
370c372
< dval(d) *= 10.;
---
> dval(&d) *= 10.;
373,374c375,376
< dval(eps) = ieps*dval(d) + 7.;
< word0(eps) -= (P-1)*Exp_msk1;
---
> dval(&eps) = ieps*dval(&d) + 7.;
> word0(&eps) -= (P-1)*Exp_msk1;
377,378c379,380
< dval(d) -= 5.;
< if (dval(d) > dval(eps))
---
> dval(&d) -= 5.;
> if (dval(&d) > dval(&eps))
380c382
< if (dval(d) < -dval(eps))
---
> if (dval(&d) < -dval(&eps))
389c391
< dval(eps) = 0.5/tens[ilim-1] - dval(eps);
---
> dval(&eps) = 0.5/tens[ilim-1] - dval(&eps);
391,392c393,394
< L = dval(d);
< dval(d) -= L;
---
> L = dval(&d);
> dval(&d) -= L;
394c396
< if (dval(d) < dval(eps))
---
> if (dval(&d) < dval(&eps))
396c398
< if (1. - dval(d) < dval(eps))
---
> if (1. - dval(&d) < dval(&eps))
400,401c402,403
< dval(eps) *= 10.;
< dval(d) *= 10.;
---
> dval(&eps) *= 10.;
> dval(&d) *= 10.;
407,410c409,412
< dval(eps) *= tens[ilim-1];
< for(i = 1;; i++, dval(d) *= 10.) {
< L = (Long)(dval(d));
< if (!(dval(d) -= L))
---
> dval(&eps) *= tens[ilim-1];
> for(i = 1;; i++, dval(&d) *= 10.) {
> L = (Long)(dval(&d));
> if (!(dval(&d) -= L))
414c416
< if (dval(d) > 0.5 + dval(eps))
---
> if (dval(&d) > 0.5 + dval(&eps))
416c418
< else if (dval(d) < 0.5 - dval(eps)) {
---
> else if (dval(&d) < 0.5 - dval(&eps)) {
429c431
< dval(d) = dval(d2);
---
> dval(&d) = dval(&d2);
441c443
< if (ilim < 0 || dval(d) <= 5*ds)
---
> if (ilim < 0 || dval(&d) <= 5*ds)
445,447c447,449
< for(i = 1;; i++, dval(d) *= 10.) {
< L = (Long)(dval(d) / ds);
< dval(d) -= L*ds;
---
> for(i = 1;; i++, dval(&d) *= 10.) {
> L = (Long)(dval(&d) / ds);
> dval(&d) -= L*ds;
450c452
< if (dval(d) < 0) {
---
> if (dval(&d) < 0) {
452c454
< dval(d) += ds;
---
> dval(&d) += ds;
456c458
< if (!dval(d)) {
---
> if (!dval(&d)) {
470,471c472,478
< dval(d) += dval(d);
< if (dval(d) > ds || dval(d) == ds && L & 1) {
---
> dval(&d) += dval(&d);
> #ifdef ROUND_BIASED
> if (dval(&d) >= ds)
> #else
> if (dval(&d) > ds || (dval(&d) == ds && L & 1))
> #endif
> {
536c543
< if (!word1(d) && !(word0(d) & Bndry_mask)
---
> if (!word1(&d) && !(word0(&d) & Bndry_mask)
538c545
< && word0(d) & (Exp_mask & ~Exp_msk1)
---
> && word0(&d) & (Exp_mask & ~Exp_msk1)
624c631
< if (j1 == 0 && mode != 1 && !(word1(d) & 1)
---
> if (j1 == 0 && mode != 1 && !(word1(&d) & 1)
641c648
< if (j < 0 || j == 0 && mode != 1
---
> if (j < 0 || (j == 0 && mode != 1
643c650
< && !(word1(d) & 1)
---
> && !(word1(&d) & 1)
645c652
< ) {
---
> )) {
662c669,673
< if ((j1 > 0 || j1 == 0 && dig & 1)
---
> #ifdef ROUND_BIASED
> if (j1 >= 0 /*)*/
> #else
> if ((j1 > 0 || (j1 == 0 && dig & 1))
> #endif
722c733,738
< if (j > 0 || j == 0 && dig & 1) {
---
> #ifdef ROUND_BIASED
> if (j >= 0)
> #else
> if (j > 0 || (j == 0 && dig & 1))
> #endif
> {
732a749
> #ifdef Honor_FLT_ROUNDS
733a751
> #endif
748,750c766,768
< word0(d) = Exp_1 + (70 << Exp_shift);
< word1(d) = 0;
< dval(d) += 1.;
---
> word0(&d) = Exp_1 + (70 << Exp_shift);
> word1(&d) = 0;
> dval(&d) += 1.;