version 1.1, 1996/02/13 11:12:16
|
version 1.2, 1996/02/26 16:52:45
|
Line 64 UDCell ummul (UCell a, UCell b) /* unsig
|
Line 64 UDCell ummul (UCell a, UCell b) /* unsig
|
DCell mmul (Cell a, Cell b) /* signed multiply, mixed precision */ |
DCell mmul (Cell a, Cell b) /* signed multiply, mixed precision */ |
{ |
{ |
DCell res; |
DCell res; |
Cell sign = a^b; |
|
|
|
|
res = UD2D(ummul (a, b)); |
if (a < 0) |
if (a < 0) |
a = -a; |
res.hi -= b; |
if (b < 0) |
if (b < 0) |
b = -b; |
res.hi -= a; |
res = UD2D(ummul (a, b)); |
return res; |
if (sign < 0) |
|
return dnegate (res); |
|
else |
|
return res; |
|
} |
} |
|
|
UDCell umdiv (UDCell u, UCell v) |
UDCell umdiv (UDCell u, UCell v) |