br                 88 src/bignum.c   static ScmBignum *bignum_rshift(ScmBignum *br, ScmBignum *bx, int amount);
br                 89 src/bignum.c   static ScmBignum *bignum_lshift(ScmBignum *br, ScmBignum *bx, int amount);
br                 91 src/bignum.c   static ScmBignum *bignum_add_int(ScmBignum *br, ScmBignum *bx, ScmBignum *by);
br                 92 src/bignum.c   static ScmBignum *bignum_2scmpl(ScmBignum *br);
br                479 src/bignum.c       ScmBignum *br;
br                507 src/bignum.c       ALLOC_TEMP_BIGNUM(br, tsize);
br                508 src/bignum.c       bignum_add_int(br, bx, off);
br                510 src/bignum.c       if (br->size < by->size) return -1;
br                511 src/bignum.c       for (i=br->size-1; i>=0; i--) {
br                513 src/bignum.c               if (br->values[i]) return 1;
br                516 src/bignum.c           if (br->values[i] < by->values[i]) return -1;
br                517 src/bignum.c           if (br->values[i] > by->values[i]) return 1;
br                541 src/bignum.c   static ScmBignum *bignum_2scmpl(ScmBignum *br)
br                543 src/bignum.c       int rsize = SCM_BIGNUM_SIZE(br);
br                546 src/bignum.c           unsigned long x = ~br->values[i];
br                547 src/bignum.c           UADD(br->values[i], c, x, 0);
br                549 src/bignum.c       return br;
br                560 src/bignum.c   static ScmBignum *bignum_add_int(ScmBignum *br, ScmBignum *bx, ScmBignum *by)
br                562 src/bignum.c       int rsize = SCM_BIGNUM_SIZE(br);
br                571 src/bignum.c                   UADD(br->values[i], c, 0, 0);
br                575 src/bignum.c               UADD(br->values[i], c, 0, y);
br                580 src/bignum.c               UADD(br->values[i], c, x, 0);
br                585 src/bignum.c           UADD(br->values[i], c, x, y);
br                587 src/bignum.c       return br;
br                592 src/bignum.c   static ScmBignum *bignum_sub_int(ScmBignum *br, ScmBignum *bx, ScmBignum *by)
br                594 src/bignum.c       int rsize = SCM_BIGNUM_SIZE(br);
br                603 src/bignum.c                   USUB(br->values[i], c, 0, 0);
br                607 src/bignum.c               USUB(br->values[i], c, 0, y);
br                612 src/bignum.c               USUB(br->values[i], c, x, 0);
br                617 src/bignum.c           USUB(br->values[i], c, x, y);
br                620 src/bignum.c           bignum_2scmpl(br);
br                621 src/bignum.c           br->sign = 0 - br->sign; /* flip sign */
br                623 src/bignum.c       return br;
br                630 src/bignum.c       ScmBignum *br = make_bignum(rsize);
br                631 src/bignum.c       br->sign = SCM_BIGNUM_SIGN(bx);
br                633 src/bignum.c           bignum_add_int(br, bx, by);
br                635 src/bignum.c           bignum_sub_int(br, bx, by);
br                637 src/bignum.c       return br;
br                644 src/bignum.c       ScmBignum *br = make_bignum(rsize);
br                645 src/bignum.c       br->sign = SCM_BIGNUM_SIGN(bx);
br                647 src/bignum.c           bignum_sub_int(br, bx, by);
br                649 src/bignum.c           bignum_add_int(br, bx, by);
br                651 src/bignum.c       return br;
br                661 src/bignum.c       ScmBignum *br;
br                665 src/bignum.c       br = make_bignum(rsize);
br                666 src/bignum.c       br->sign = bx->sign;
br                669 src/bignum.c               UADD(br->values[i], c, bx->values[i], yabs);
br                674 src/bignum.c               USUB(br->values[i], c, bx->values[i], yabs);
br                678 src/bignum.c       br->values[rsize-1] = c;
br                679 src/bignum.c       return br;
br                753 src/bignum.c   static ScmBignum *bignum_rshift(ScmBignum *br, ScmBignum *bx, int amount)
br                760 src/bignum.c           br->size = 0; br->values[0] = 0;
br                763 src/bignum.c               br->values[i-nwords] = bx->values[i];
br                765 src/bignum.c           br->size = bx->size - nwords;
br                766 src/bignum.c           br->sign = bx->sign;
br                771 src/bignum.c               br->values[i-nwords] = x;
br                773 src/bignum.c           br->values[i-nwords] = bx->values[i]>>nbits;
br                774 src/bignum.c           br->size = bx->size - nwords;
br                775 src/bignum.c           br->sign = bx->sign;
br                777 src/bignum.c       return br;
br                782 src/bignum.c   static ScmBignum *bignum_lshift(ScmBignum *br, ScmBignum *bx, int amount)
br                792 src/bignum.c               if (br->size > i+nwords) br->values[i+nwords] = bx->values[i];
br                794 src/bignum.c           for (i = nwords-1; i>=0; i--) br->values[i] = 0;
br                796 src/bignum.c           if (br->size > bx->size + nwords) {
br                797 src/bignum.c               br->values[bx->size+nwords] =
br                802 src/bignum.c               if (br->size > i+nwords) br->values[i+nwords] = x;
br                804 src/bignum.c           br->values[nwords] = bx->values[0]<<nbits;
br                805 src/bignum.c           for (i = nwords-1; i>=0; i--) br->values[i] = 0;
br                807 src/bignum.c       if (br != bx) {
br                808 src/bignum.c           br->sign = bx->sign;
br                810 src/bignum.c       return br;
br                818 src/bignum.c   static ScmBignum *bignum_mul_word(ScmBignum *br, ScmBignum *bx,
br                829 src/bignum.c           r0 = br->values[i+off];
br                831 src/bignum.c           br->values[i+off] = r1;
br                833 src/bignum.c           r0 = br->values[i+off+1];
br                835 src/bignum.c           br->values[i+off+1] = r1;
br                837 src/bignum.c           for (j=i+off+2; c && j<br->size; j++) {
br                838 src/bignum.c               r0 = br->values[j];
br                840 src/bignum.c               br->values[j] = r1;
br                843 src/bignum.c       return br;
br                850 src/bignum.c       ScmBignum *br = make_bignum(bx->size + by->size);
br                852 src/bignum.c           bignum_mul_word(br, bx, by->values[i], i);
br                854 src/bignum.c       br->sign = bx->sign * by->sign;
br                855 src/bignum.c       return br;
br                860 src/bignum.c       ScmBignum *br;
br                865 src/bignum.c           br = make_bignum(1);
br                866 src/bignum.c           br->sign = 1;
br                867 src/bignum.c           br->values[0] = 0;
br                868 src/bignum.c           return br;
br                871 src/bignum.c           br = SCM_BIGNUM(Scm_BignumCopy(bx));
br                872 src/bignum.c           br->sign = -br->sign;
br                873 src/bignum.c           return br;
br                876 src/bignum.c       br = make_bignum(bx->size + 1); /* TODO: more accurate estimation */
br                878 src/bignum.c       br->sign = bx->sign;
br                879 src/bignum.c       bignum_mul_word(br, bx, yabs, 0);
br                880 src/bignum.c       if (y<0) br->sign = -br->sign;
br                881 src/bignum.c       return br;
br                886 src/bignum.c       ScmBignum *br = bignum_mul(bx, by);
br                887 src/bignum.c       return Scm_NormalizeBignum(br);
br                892 src/bignum.c       ScmBignum *br = bignum_mul_si(bx, y);
br                893 src/bignum.c       return Scm_NormalizeBignum(br);
br               1071 src/bignum.c           ScmBignum *br;
br               1073 src/bignum.c           br = bignum_gdiv(dividend, bv, q);
br               1074 src/bignum.c           rr = br->values[0];