|
|
1.1 ! root 1: /* ! 2: * Mitom sets the mint pointed to by "mp" to have a value equal ! 3: * to the int "n". ! 4: */ ! 5: #include "mprec.h" ! 6: void ! 7: mitom(n, mp) ! 8: int n; ! 9: mint *mp; ! 10: { ! 11: register char *rp, *limit, *value; ! 12: unsigned an; ! 13: char mifl; /* minus flag */ ! 14: char tev[NORSIZ]; /* temporary for converted value */ ! 15: ! 16: mpfree(mp->val); ! 17: an = ((mifl = n<0) ? -n : n); ! 18: rp = tev; ! 19: while (an != 0) { ! 20: *rp++ = an % BASE; ! 21: an >>= L2BASE; ! 22: } ! 23: *rp++ = 0; ! 24: limit = rp; ! 25: if (mifl) { ! 26: rp = tev - 1; ! 27: while (++rp < limit) ! 28: *rp = NEFL - *rp; ! 29: ++*tev; ! 30: } ! 31: value = (char *)mpalc(limit - tev); ! 32: mp->val = value; ! 33: mp->len = limit - tev; ! 34: rp = tev; ! 35: while (rp < limit) ! 36: *value++ = *rp++; ! 37: norm(mp); ! 38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.