[BACK]Return to ratnum.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / int-parts / datatype

Annotation of OpenXM/src/asir-doc/int-parts/datatype/ratnum.texi, Revision 1.1

1.1     ! noro        1: @comment $OpenXM$
        !             2: @section $BM-M}?t(B
        !             3:
        !             4: @example
        !             5: struct oN @{       $B<+A3?t(B
        !             6:     int p;        $B7e?t(B
        !             7:     int b[1];     BASE-$B?JI=<($N3F7e(B
        !             8: @};
        !             9:
        !            10: typedef struct oN *N;
        !            11:
        !            12: struct oQ @{         $BM-M}?t(B
        !            13:     short id;       $B<1JL;R(B (= O_N)
        !            14:     char nid;       $B?t<1JL;R(B (= N_Q)
        !            15:     char sgn;       $BId9f(B   (= 1 or -1)
        !            16:     N nm;           $BJ,;R(B
        !            17:     N dn;           $BJ,Jl(B   ($B@0?t$rI=$9;~(B 0)
        !            18: @};
        !            19:
        !            20: typedef struct oQ *Q;
        !            21: @end example
        !            22: @noindent
        !            23: $BM-M}?t$O<+A3?t$rMQ$$$FDj5A$5$l$k$,(B, $B<+A3?t<+BN$O(B Risa object $B$G$O$J(B
        !            24: $B$$(B. $B<+A3?t$O(B, @samp{include/base.h}$B$GDj5A$5$l$k?t(B @code{BASE} $B$K$h$j(B
        !            25: @code{BASE}-$B?JI=<($5$l(B, $B$=$N7e?t$,(B @code{p}, $B3F7e$O(B, $B:G$b2<$N7e$+$i(B
        !            26: @code{b[0]}, @code{b[1]}, @dots{} $B$KF~$k(B. $B8=:_(B BASE $B$O(B @code{2^32} $B$G$"(B
        !            27: $B$k(B. $BDj5A$G$O(B, @code{b[]} $B$,0l7eJ,$7$+@k8@$5$l$F$$$J$$$,(B, $B<B:]$K$O7e?tJ,(B
        !            28: $B$NO"B3NN0h$rMQ0U$9$k$3$H$K$J$k(B. $B<B:]$N1i;;$K$*$$$F$O(B, @code{oN} $B$G$O$J$/(B
        !            29: @code{N}($BB($A%]%$%s%?(B)$B$NJ}$rJQ?t$"$k$$$O0z?t$H$7$FMQ$$$k(B. $B8=:_!"<+A3?t$O(B
        !            30: parser $B$K$*$$$F0lC6(B @code{10^8} $B?J?t$H$7$F(B @code{oN}$B7?$KJQ49$5$l(B, $B<!$N(B
        !            31: @code{bnton()} $B4X?t$K$h$j(B @code{2^32} $B?J?t$KJQ49$5$l$F$$$k(B.
        !            32:
        !            33: $BM-M}?t$O<+A3?t$rJ,JlJ,;R$H$7(B, $BId9f$r;}$D(B. $BM-M}?t$O>o$K4{LsJ,?t$G$"$k(B. $BJ,(B
        !            34: $BJl$r(B 0 $B$H$9$k$3$H$K$h$j@0?t$rI=8=$9$k(B.
        !            35:
        !            36: @subsection $B<+A3?t$N@8@.(B
        !            37: @example
        !            38: #include "ca.h"
        !            39:
        !            40: bnton(int Base,N a,N *rp)
        !            41: Base-$B?JI=<($5$l$?(B a $B$r(B BASE-$B?JI=<($KJQ49$9$k(B.
        !            42: @end example
        !            43: @noindent
        !            44: $BJ8;zNs$GI=$5$l$?(B($BNc$($P(B 10$B?J$N(B)$BB?G\D9?t$rFbIt7A<0$KJQ49$9$k>l9g(B,
        !            45: @code{Base} $B$H$7$F(B 10 $B$N$Y$-$r$H$l$PMF0W$K(B @code{Base} $BI=<($,$G$-$k(B. $B$3(B
        !            46: $B$l$+$i(B @code{ntobn()} $B$K$h$j(B @code{BASE} $BI=<($N<+A3?t$,F@$i$l$k(B.
        !            47:
        !            48: @subsection $B<+A3?t$N;MB'(B
        !            49: @example
        !            50: #include "ca.h"
        !            51:
        !            52: addn(N a,N b,N *rp)
        !            53: *rp = a + b
        !            54:
        !            55: int subn(N a,N b,N *rp)
        !            56: *rp = |a - b| return sgn(a-b)
        !            57:
        !            58: muln(N a,N b,N *rp)
        !            59: *rp = a * b
        !            60:
        !            61: divn(N a,N b,N *qp,N *rp)
        !            62: *qp = a / b ($B>&(B) *rp = a mod b ($B>jM>(B)
        !            63:
        !            64: pwrn(N a,int e,N *rp)
        !            65: *rp = a ^ e
        !            66:
        !            67: gcdn(N a,N b,N *rp)
        !            68: *rp = gcd(a,b)
        !            69:
        !            70: int cmpn(N a,N b)
        !            71: sgn(a-b)
        !            72: @end example
        !            73: @noindent
        !            74: @code{sgn(a)} $B$O(B, @code{a} $B$N@5(B, @code{0}, $BIi$K1~$8$F(B @code{1},
        !            75: @code{0}, @code{-1} $B$rI=$9(B. $B8F$S=P$7J}$O<!$N$h$&$K$J$k(B.
        !            76: @example
        !            77: @dots{}
        !            78: N n1,n2,n3;
        !            79: @dots{}
        !            80: addn(n1,n2,&n3);
        !            81: @dots{}
        !            82: @end example
        !            83:
        !            84: @subsection $BM-M}?t$N@8@.(B
        !            85: @example
        !            86: #include "ca.h"
        !            87:
        !            88: NTOQ(n,s,q)    (macro; N n; int s; Q q)
        !            89: sgn = s, nm = n, dn = 0 $B$J$kM-M}?t(B($B@0?t(B) q $B$r@8@.$9$k(B.
        !            90:
        !            91: NDTOQ(n,d,s,q) (macro; N n,d; int s; Q q)
        !            92: sgn = s, nm = n, dn = d $B$J$kM-M}?t(B q $B$r@8@.$9$k(B.
        !            93:
        !            94: STOQ(n,q)      (macro; int n; Q q)
        !            95: $BC1@0?t(B n $B$r(B $BM-M}?t(B ($B@0?t(B) $B$KJQ49$9$k(B.
        !            96: @end example
        !            97: @noindent
        !            98: $B$$$:$l$N%^%/%m$bI,MW$JNN0h$O%^%/%mFb$G3NJ]$5$l$k(B.
        !            99:
        !           100: @subsection $BM-M}?t$N;MB'(B
        !           101: @example
        !           102: #include "ca.h"
        !           103:
        !           104: addq(Q a,Q b,Q *rp)
        !           105: *rp = a + b
        !           106:
        !           107: subq(Q a,Q b,Q *rp)
        !           108: *rp = a - b
        !           109:
        !           110: mulq(Q a,Q b,Q *rp)
        !           111: *rp = a * b
        !           112:
        !           113: divq(Q a,Q b,Q *qp)
        !           114: *qp = a / b
        !           115:
        !           116: invq(Q a,Q *rp)
        !           117: *qp = 1 / a
        !           118:
        !           119: pwrq(Q a,Q e,Q *rp)
        !           120: *rp = a ^ e
        !           121:
        !           122: int cmpq(Q a,Q b)
        !           123: sgn(a-b)
        !           124: @end example
        !           125:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>