2 (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
3 See the copyright notice in the ACK home directory, in the file "Copyright".
9 SUBTRACT 2 EXTENDED FORMAT NUMBERS
18 if ((e2
->m1
| e2
->m2
) == 0L) {
21 if ((e1
->m1
| e1
->m2
) == 0L) {
23 e1
->sign
= e2
->sign
? 0 : 1;
27 if (e1
->sign
!= e2
->sign
) {
28 /* e1 - e2 = e1 + (-e2) */
29 if (b64_add(&e1
->mantissa
,&e2
->mantissa
)) { /* addition carry */
30 b64_rsft(&e1
->mantissa
); /* shift mantissa one bit RIGHT */
31 e1
->m1
|= 0x80000000L
; /* set max bit */
32 e1
->exp
++; /* increase the exponent */
35 else if (e2
->m1
> e1
->m1
||
36 (e2
->m1
== e1
->m1
&& e2
->m2
> e1
->m2
)) {
37 /* abs(e2) > abs(e1) */
38 if (e1
->m2
> e2
->m2
) {
39 e2
->m1
-= 1; /* carry in */
44 e1
->sign
= e2
->sign
? 0 : 1;
48 e1
->m1
-= 1; /* carry in */