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

File: [local] / OpenXM / src / asir-doc / int-parts / datatype / ratnum.texi (download)

Revision 1.1, Mon Apr 23 05:45:37 2001 UTC (23 years, 2 months ago) by noro
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9

Risa/Asir manual on the internal specifications.

@comment $OpenXM: OpenXM/src/asir-doc/int-parts/datatype/ratnum.texi,v 1.1 2001/04/23 05:45:37 noro Exp $
@section $BM-M}?t(B

@example
struct oN @{       $B<+A3?t(B
    int p;        $B7e?t(B
    int b[1];     BASE-$B?JI=<($N3F7e(B
@};

typedef struct oN *N;

struct oQ @{         $BM-M}?t(B
    short id;       $B<1JL;R(B (= O_N)
    char nid;       $B?t<1JL;R(B (= N_Q)
    char sgn;       $BId9f(B   (= 1 or -1)
    N nm;           $BJ,;R(B
    N dn;           $BJ,Jl(B   ($B@0?t$rI=$9;~(B 0)
@};

typedef struct oQ *Q;
@end example
@noindent
$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
$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 
@code{BASE}-$B?JI=<($5$l(B, $B$=$N7e?t$,(B @code{p}, $B3F7e$O(B, $B:G$b2<$N7e$+$i(B 
@code{b[0]}, @code{b[1]}, @dots{} $B$KF~$k(B. $B8=:_(B BASE $B$O(B @code{2^32} $B$G$"(B
$B$k(B. $BDj5A$G$O(B, @code{b[]} $B$,0l7eJ,$7$+@k8@$5$l$F$$$J$$$,(B, $B<B:]$K$O7e?tJ,(B
$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 
@code{N}($BB($A%]%$%s%?(B)$B$NJ}$rJQ?t$"$k$$$O0z?t$H$7$FMQ$$$k(B. $B8=:_!"<+A3?t$O(B 
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 
@code{bnton()} $B4X?t$K$h$j(B @code{2^32} $B?J?t$KJQ49$5$l$F$$$k(B.

$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
$BJl$r(B 0 $B$H$9$k$3$H$K$h$j@0?t$rI=8=$9$k(B.

@subsection $B<+A3?t$N@8@.(B
@example
#include "ca.h"

bnton(int Base,N a,N *rp)
Base-$B?JI=<($5$l$?(B a $B$r(B BASE-$B?JI=<($KJQ49$9$k(B. 
@end example
@noindent
$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, 
@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
$B$l$+$i(B @code{ntobn()} $B$K$h$j(B @code{BASE} $BI=<($N<+A3?t$,F@$i$l$k(B. 

@subsection $B<+A3?t$N;MB'(B
@example
#include "ca.h"

addn(N a,N b,N *rp)
*rp = a + b

int subn(N a,N b,N *rp)
*rp = |a - b| return sgn(a-b)

muln(N a,N b,N *rp)
*rp = a * b

divn(N a,N b,N *qp,N *rp)
*qp = a / b ($B>&(B) *rp = a mod b ($B>jM>(B)

pwrn(N a,int e,N *rp)
*rp = a ^ e

gcdn(N a,N b,N *rp)
*rp = gcd(a,b)

int cmpn(N a,N b)
sgn(a-b)
@end example
@noindent
@code{sgn(a)} $B$O(B, @code{a} $B$N@5(B, @code{0}, $BIi$K1~$8$F(B @code{1}, 
@code{0}, @code{-1} $B$rI=$9(B. $B8F$S=P$7J}$O<!$N$h$&$K$J$k(B. 
@example
@dots{}
N n1,n2,n3;
@dots{}
addn(n1,n2,&n3);
@dots{}
@end example

@subsection $BM-M}?t$N@8@.(B
@example
#include "ca.h"

NTOQ(n,s,q)    (macro; N n; int s; Q q)
sgn = s, nm = n, dn = 0 $B$J$kM-M}?t(B($B@0?t(B) q $B$r@8@.$9$k(B. 

NDTOQ(n,d,s,q) (macro; N n,d; int s; Q q)
sgn = s, nm = n, dn = d $B$J$kM-M}?t(B q $B$r@8@.$9$k(B.

STOQ(n,q)      (macro; int n; Q q)
$BC1@0?t(B n $B$r(B $BM-M}?t(B ($B@0?t(B) $B$KJQ49$9$k(B. 
@end example
@noindent
$B$$$:$l$N%^%/%m$bI,MW$JNN0h$O%^%/%mFb$G3NJ]$5$l$k(B. 

@subsection $BM-M}?t$N;MB'(B
@example
#include "ca.h"

addq(Q a,Q b,Q *rp)
*rp = a + b

subq(Q a,Q b,Q *rp)
*rp = a - b

mulq(Q a,Q b,Q *rp)
*rp = a * b

divq(Q a,Q b,Q *qp)
*qp = a / b

invq(Q a,Q *rp)
*qp = 1 / a

pwrq(Q a,Q e,Q *rp)
*rp = a ^ e

int cmpq(Q a,Q b)
sgn(a-b)
@end example