Listing 5 Overloading of operator*

void multiply(const int *u, const int *v, int *w,
     int n, int m); // multiply prototype

/* multiplication : lint3 = lint1 * lint2;
   --------------------------------------- */
LargeInt LargeInt::operator*(const LargeInt& lint)
     const {
  if (sign == 0 || lint.sign == 0)
     return zero;
  LargeInt result(len + lint.len, 0);
  if (sign == lint.sign)
     result.sign = 1;
  else
     result.sign = -1;
  multiply(adr, lint.adr, result.adr, len, lint.len);
  if (*result.adr == 0)
     result.normalize();
  return result;
}
/* End of File */