bx                 88 src/bignum.c   static ScmBignum *bignum_rshift(ScmBignum *br, ScmBignum *bx, int amount);
bx                 89 src/bignum.c   static ScmBignum *bignum_lshift(ScmBignum *br, ScmBignum *bx, int amount);
bx                 91 src/bignum.c   static ScmBignum *bignum_add_int(ScmBignum *br, ScmBignum *bx, ScmBignum *by);
bx                437 src/bignum.c   int Scm_BignumCmp(ScmBignum *bx, ScmBignum *by)
bx                441 src/bignum.c       if (bx->sign < by->sign) return -1;
bx                442 src/bignum.c       if (bx->sign > by->sign) return 1;
bx                443 src/bignum.c       if (bx->size < by->size) return (bx->sign > 0) ? -1 : 1;
bx                444 src/bignum.c       if (bx->size > by->size) return (bx->sign > 0) ? 1 : -1;
bx                446 src/bignum.c       for (i=bx->size-1; i>=0; i--) {
bx                447 src/bignum.c           if (bx->values[i] < by->values[i]) return (bx->sign > 0) ? -1 : 1;
bx                448 src/bignum.c           if (bx->values[i] > by->values[i]) return (bx->sign > 0) ? 1 : -1;
bx                454 src/bignum.c   int Scm_BignumAbsCmp(ScmBignum *bx, ScmBignum *by)
bx                458 src/bignum.c       if (bx->size < by->size) return -1;
bx                459 src/bignum.c       if (bx->size > by->size) return 1;
bx                460 src/bignum.c       for (i=bx->size-1; i>=0; i--) {
bx                461 src/bignum.c           if (bx->values[i] < by->values[i]) return -1;
bx                462 src/bignum.c           if (bx->values[i] > by->values[i]) return 1;
bx                474 src/bignum.c   int Scm_BignumCmp3U(ScmBignum *bx, ScmBignum *off, ScmBignum *by)
bx                476 src/bignum.c       int xsize = SCM_BIGNUM_SIZE(bx), ysize = SCM_BIGNUM_SIZE(by);
bx                494 src/bignum.c           if (bx->values[xsize-1] > by->values[ysize-1]) return 1;
bx                496 src/bignum.c               if (bx->values[xsize-1] < by->values[ysize-1]-1) return -1;
bx                499 src/bignum.c               u_long xx = bx->values[xsize-1], oo = off->values[osize-1];
bx                506 src/bignum.c       tsize = bignum_safe_size_for_add(bx, off);
bx                508 src/bignum.c       bignum_add_int(br, bx, off);
bx                552 src/bignum.c   ScmObj Scm_BignumComplement(ScmBignum *bx)
bx                554 src/bignum.c       ScmBignum *r = SCM_BIGNUM(Scm_BignumCopy(bx));
bx                560 src/bignum.c   static ScmBignum *bignum_add_int(ScmBignum *br, ScmBignum *bx, ScmBignum *by)
bx                563 src/bignum.c       int xsize = SCM_BIGNUM_SIZE(bx);
bx                579 src/bignum.c               x = bx->values[i];
bx                583 src/bignum.c           x = bx->values[i];
bx                592 src/bignum.c   static ScmBignum *bignum_sub_int(ScmBignum *br, ScmBignum *bx, ScmBignum *by)
bx                595 src/bignum.c       int xsize = SCM_BIGNUM_SIZE(bx);
bx                611 src/bignum.c               x = bx->values[i];
bx                615 src/bignum.c           x = bx->values[i];
bx                627 src/bignum.c   static ScmBignum *bignum_add(ScmBignum *bx, ScmBignum *by)
bx                629 src/bignum.c       int rsize = bignum_safe_size_for_add(bx, by);
bx                631 src/bignum.c       br->sign = SCM_BIGNUM_SIGN(bx);
bx                632 src/bignum.c       if (SCM_BIGNUM_SIGN(bx) == SCM_BIGNUM_SIGN(by)) {
bx                633 src/bignum.c           bignum_add_int(br, bx, by);
bx                635 src/bignum.c           bignum_sub_int(br, bx, by);
bx                641 src/bignum.c   static ScmBignum *bignum_sub(ScmBignum *bx, ScmBignum *by)
bx                643 src/bignum.c       int rsize = bignum_safe_size_for_add(bx, by);
bx                645 src/bignum.c       br->sign = SCM_BIGNUM_SIGN(bx);
bx                646 src/bignum.c       if (SCM_BIGNUM_SIGN(bx) == SCM_BIGNUM_SIGN(by)) {
bx                647 src/bignum.c           bignum_sub_int(br, bx, by);
bx                649 src/bignum.c           bignum_add_int(br, bx, by);
bx                655 src/bignum.c   static ScmBignum *bignum_add_si(ScmBignum *bx, long y)
bx                658 src/bignum.c       int i, rsize = bx->size+1;
bx                663 src/bignum.c       if (y == 0) return bx;
bx                666 src/bignum.c       br->sign = bx->sign;
bx                667 src/bignum.c       if (SCM_BIGNUM_SIGN(bx) == ysign) {
bx                668 src/bignum.c           for (c=0, i=0; i<bx->size; i++) {
bx                669 src/bignum.c               UADD(br->values[i], c, bx->values[i], yabs);
bx                673 src/bignum.c           for (c=0, i=0; i<bx->size; i++) {
bx                674 src/bignum.c               USUB(br->values[i], c, bx->values[i], yabs);
bx                682 src/bignum.c   ScmObj Scm_BignumAdd(ScmBignum *bx, ScmBignum *by)
bx                684 src/bignum.c       return Scm_NormalizeBignum(bignum_add(bx, by));
bx                687 src/bignum.c   ScmObj Scm_BignumSub(ScmBignum *bx, ScmBignum *by)
bx                689 src/bignum.c       return Scm_NormalizeBignum(bignum_sub(bx, by));
bx                692 src/bignum.c   ScmObj Scm_BignumAddSI(ScmBignum *bx, long y)
bx                694 src/bignum.c       return Scm_NormalizeBignum(bignum_add_si(bx, y));
bx                697 src/bignum.c   ScmObj Scm_BignumSubSI(ScmBignum *bx, long y)
bx                699 src/bignum.c       return Scm_NormalizeBignum(bignum_add_si(bx, -y));
bx                702 src/bignum.c   ScmObj Scm_BignumAddN(ScmBignum *bx, ScmObj args)
bx                704 src/bignum.c       ScmBignum *r = bx;
bx                725 src/bignum.c   ScmObj Scm_BignumSubN(ScmBignum *bx, ScmObj args)
bx                727 src/bignum.c       ScmBignum *r = bx;
bx                753 src/bignum.c   static ScmBignum *bignum_rshift(ScmBignum *br, ScmBignum *bx, int amount)
bx                759 src/bignum.c       if (bx->size <= nwords) {
bx                762 src/bignum.c           for (i = nwords; i < bx->size; i++) {
bx                763 src/bignum.c               br->values[i-nwords] = bx->values[i];
bx                765 src/bignum.c           br->size = bx->size - nwords;
bx                766 src/bignum.c           br->sign = bx->sign;
bx                769 src/bignum.c           for (i = nwords; i < bx->size-1; i++) {
bx                770 src/bignum.c               x = (bx->values[i+1]<<(WORD_BITS-nbits))|(bx->values[i]>>nbits);
bx                773 src/bignum.c           br->values[i-nwords] = bx->values[i]>>nbits;
bx                774 src/bignum.c           br->size = bx->size - nwords;
bx                775 src/bignum.c           br->sign = bx->sign;
bx                782 src/bignum.c   static ScmBignum *bignum_lshift(ScmBignum *br, ScmBignum *bx, int amount)
bx                791 src/bignum.c           for (i = bx->size-1; i>=0; i--) {
bx                792 src/bignum.c               if (br->size > i+nwords) br->values[i+nwords] = bx->values[i];
bx                796 src/bignum.c           if (br->size > bx->size + nwords) {
bx                797 src/bignum.c               br->values[bx->size+nwords] =
bx                798 src/bignum.c                   bx->values[bx->size-1]>>(WORD_BITS-nbits);
bx                800 src/bignum.c           for (i = bx->size-1; i > 0; i--) {
bx                801 src/bignum.c               x = (bx->values[i]<<nbits)|(bx->values[i-1]>>(WORD_BITS-nbits));
bx                804 src/bignum.c           br->values[nwords] = bx->values[0]<<nbits;
bx                807 src/bignum.c       if (br != bx) {
bx                808 src/bignum.c           br->sign = bx->sign;
bx                818 src/bignum.c   static ScmBignum *bignum_mul_word(ScmBignum *br, ScmBignum *bx,
bx                824 src/bignum.c       for (i=0; i<bx->size; i++) {
bx                825 src/bignum.c           x = bx->values[i];
bx                847 src/bignum.c   static ScmBignum *bignum_mul(ScmBignum *bx, ScmBignum *by)
bx                850 src/bignum.c       ScmBignum *br = make_bignum(bx->size + by->size);
bx                852 src/bignum.c           bignum_mul_word(br, bx, by->values[i], i);
bx                854 src/bignum.c       br->sign = bx->sign * by->sign;
bx                858 src/bignum.c   static ScmBignum *bignum_mul_si(ScmBignum *bx, long y)
bx                863 src/bignum.c       if (y == 1) return bx;
bx                871 src/bignum.c           br = SCM_BIGNUM(Scm_BignumCopy(bx));
bx                876 src/bignum.c       br = make_bignum(bx->size + 1); /* TODO: more accurate estimation */
bx                878 src/bignum.c       br->sign = bx->sign;
bx                879 src/bignum.c       bignum_mul_word(br, bx, yabs, 0);
bx                884 src/bignum.c   ScmObj Scm_BignumMul(ScmBignum *bx, ScmBignum *by)
bx                886 src/bignum.c       ScmBignum *br = bignum_mul(bx, by);
bx                890 src/bignum.c   ScmObj Scm_BignumMulSI(ScmBignum *bx, long y)
bx                892 src/bignum.c       ScmBignum *br = bignum_mul_si(bx, y);
bx                896 src/bignum.c   ScmObj Scm_BignumMulN(ScmBignum *bx, ScmObj args)
bx                898 src/bignum.c       ScmBignum *r = bx;
bx               2058 src/gauche.h   SCM_EXTERN int    Scm_BignumCmp(ScmBignum *bx, ScmBignum *by);
bx               2059 src/gauche.h   SCM_EXTERN int    Scm_BignumAbsCmp(ScmBignum *bx, ScmBignum *by);
bx               2060 src/gauche.h   SCM_EXTERN int    Scm_BignumCmp3U(ScmBignum *bx, ScmBignum *off, ScmBignum *by);
bx               2061 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumComplement(ScmBignum *bx);
bx               2063 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumAdd(ScmBignum *bx, ScmBignum *by);
bx               2064 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumAddSI(ScmBignum *bx, long y);
bx               2065 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumAddN(ScmBignum *bx, ScmObj args);
bx               2066 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumSub(ScmBignum *bx, ScmBignum *by);
bx               2067 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumSubSI(ScmBignum *bx, long y);
bx               2068 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumSubN(ScmBignum *bx, ScmObj args);
bx               2069 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumMul(ScmBignum *bx, ScmBignum *by);
bx               2070 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumMulSI(ScmBignum *bx, long y);
bx               2071 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumMulN(ScmBignum *bx, ScmObj args);
bx               2072 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumDivSI(ScmBignum *bx, long y, long *r);
bx               2073 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumDivRem(ScmBignum *bx, ScmBignum *by);
bx               2075 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumLogAndSI(ScmBignum *bx, long y);
bx               2076 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumLogAnd(ScmBignum *bx, ScmBignum *by);
bx               2077 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumLogIor(ScmBignum *bx, ScmBignum *by);
bx               2078 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumLogXor(ScmBignum *bx, ScmBignum *by);
bx               2079 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumLogNot(ScmBignum *bx);
bx               2080 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumLogBit(ScmBignum *bx, int bit);
bx               2081 src/gauche.h   SCM_EXTERN ScmObj Scm_BignumAsh(ScmBignum *bx, int cnt);
bx               1921 src/number.c       ScmObj bx = SCM_BIGNUMP(x)? x : Scm_MakeBignumFromSI(SCM_INT_VALUE(x));
bx               1924 src/number.c       return Scm_BignumCmp3U(SCM_BIGNUM(bx), SCM_BIGNUM(bd), SCM_BIGNUM(by));