Deleted Added
full compact
smisc.c (187808) smisc.c (219557)
1/****************************************************************
2
3The author of this software is David M. Gay.
4
5Copyright (C) 1998, 1999 by Lucent Technologies
6All Rights Reserved
7
8Permission to use, copy, modify, and distribute this software and

--- 63 unchanged lines hidden (view full) ---

72 double
73ratio
74#ifdef KR_headers
75 (a, b) Bigint *a, *b;
76#else
77 (Bigint *a, Bigint *b)
78#endif
79{
1/****************************************************************
2
3The author of this software is David M. Gay.
4
5Copyright (C) 1998, 1999 by Lucent Technologies
6All Rights Reserved
7
8Permission to use, copy, modify, and distribute this software and

--- 63 unchanged lines hidden (view full) ---

72 double
73ratio
74#ifdef KR_headers
75 (a, b) Bigint *a, *b;
76#else
77 (Bigint *a, Bigint *b)
78#endif
79{
80 double da, db;
80 U da, db;
81 int k, ka, kb;
82
81 int k, ka, kb;
82
83 dval(da) = b2d(a, &ka);
84 dval(db) = b2d(b, &kb);
83 dval(&da) = b2d(a, &ka);
84 dval(&db) = b2d(b, &kb);
85 k = ka - kb + ULbits*(a->wds - b->wds);
86#ifdef IBM
87 if (k > 0) {
85 k = ka - kb + ULbits*(a->wds - b->wds);
86#ifdef IBM
87 if (k > 0) {
88 word0(da) += (k >> 2)*Exp_msk1;
88 word0(&da) += (k >> 2)*Exp_msk1;
89 if (k &= 3)
89 if (k &= 3)
90 dval(da) *= 1 << k;
90 dval(&da) *= 1 << k;
91 }
92 else {
93 k = -k;
91 }
92 else {
93 k = -k;
94 word0(db) += (k >> 2)*Exp_msk1;
94 word0(&db) += (k >> 2)*Exp_msk1;
95 if (k &= 3)
95 if (k &= 3)
96 dval(db) *= 1 << k;
96 dval(&db) *= 1 << k;
97 }
98#else
99 if (k > 0)
97 }
98#else
99 if (k > 0)
100 word0(da) += k*Exp_msk1;
100 word0(&da) += k*Exp_msk1;
101 else {
102 k = -k;
101 else {
102 k = -k;
103 word0(db) += k*Exp_msk1;
103 word0(&db) += k*Exp_msk1;
104 }
105#endif
104 }
105#endif
106 return dval(da) / dval(db);
106 return dval(&da) / dval(&db);
107 }
108
109#ifdef INFNAN_CHECK
110
111 int
112match
113#ifdef KR_headers
114 (sp, t) char **sp, *t;

--- 77 unchanged lines hidden ---
107 }
108
109#ifdef INFNAN_CHECK
110
111 int
112match
113#ifdef KR_headers
114 (sp, t) char **sp, *t;

--- 77 unchanged lines hidden ---