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 --- |