mulint( a, b, c )
mp a, b, c;
/*** multiply two integers. a*b-->c ***/
{int i, j, la, lb;
/*** b and c may coincide ***/
la = length(a); lb = length(b);
for (i=0; i0; i--) {
for (j=2; j
MAXD-(BASE-1)*(BASE-1)-MAXD/BASE ) {
c[i+j-1] -= (MAXD/BASE)*BASE;
c[i+j] += MAXD/BASE;
}
c[i] = b[i]*a[1];
}
storelength( c, la+lb-2 );
storesign( c, sign(a)==sign(b) ? POS : NEG );
normalize( c );
};
|