Annotation of OpenXM/src/asir-doc/int-parts/datatype/dpoly.texi, Revision 1.1
1.1 ! noro 1: @comment $OpenXM$
! 2: @section $BJ,;6I=8=B?9`<0(B
! 3:
! 4: @example
! 5: typedef struct oDL @{ $B;X?t%Y%/%H%k(B
! 6: int td; $BA4<!?t(B
! 7: int d[1]; $B;X?t%Y%/%H%kK\BN(B
! 8: @} *DL;
! 9:
! 10: typedef struct oMP @{ $BC19`<0%j%9%H(B
! 11: struct oDL *dl; $B;X?t%Y%/%H%k$X$N%]%$%s%?(B
! 12: P c; $B78?t(B
! 13: struct oMP *next; $B<!$NC19`<0$X$N%]%$%s%?(B
! 14: @} *MP;
! 15:
! 16: typedef struct oDP @{ $BJ,;6I=8=B?9`<0(B
! 17: short id; $B<1JL;R(B (=O_DP)
! 18: short nv; $BJQ?t$N8D?t(B
! 19: int sugar; sugar $B$NCM(B
! 20: struct oMP *body; $BC19`<0%j%9%H$X$N%]%$%s%?(B
! 21: @} *DP;
! 22:
! 23: struct order_pair @{ $B%V%m%C%/$KBP$9$k9`=g=x7?;XDj(B
! 24: int order; $B9`=g=x7?(B
! 25: int length; $B%V%m%C%/$ND9$5(B
! 26: @};
! 27:
! 28: struct order_spec @{ $B9`=g=x7?;XDj9=B$BN(B
! 29: int id; $B9`=g=x7?;XDj<1JL;R(B
! 30: (0: primitive $B9`=g=x(B; 1:$B%V%m%C%/9`=g=x(B; 2:$B9TNs$K$h$k9`=g=x(B)
! 31: Obj obj; Risa object $B$H$7$FM?$($i$l$?9`=g=x7?(B
! 32: int nv; $BJQ?t$N8D?t(B
! 33: union @{ $B9`=g=x7?;XDj(B
! 34: int simple; primitive $B9`=g=x<1JL;R(B
! 35: struct @{ $B%V%m%C%/9`=g=x7?;XDj(B
! 36: int length; $B%V%m%C%/?t(B
! 37: struct order_pair *order_pair; $B3F%V%m%C%/$N9`=g=x7?G[Ns$X$N%]%$%s%?(B
! 38: @} block;
! 39: struct @{ $B9TNs$K$h$k9`=g=x7?;XDj(B
! 40: int row; $BNs?t(B
! 41: int **matrix; $B9TNsK\BN(B
! 42: @} matrix;
! 43: @} ord;
! 44: @};
! 45: @end example
! 46: @noindent
! 47:
! 48: $BJ,;6I=8=B?9`<0$O(B, $BB?9`<0$r(B, $B$"$kBe?t7O$r78?t$H$9$kC19`<0$NOB$H$7$FI=8=$9$k(B.
! 49: $BC19`<0$O(B, $B78?t$*$h$S9`(B (term) $B$N@Q$G$"$k(B. $B9`$OJQ?t$NQQ@Q$G$"$k(B. $BJQ?t$r8GDj(B
! 50: $B$9$k$H$-(B, $B9`$O(B, $B;X?t$N$_$r<h$j=P$7$?;X?t%Y%/%H%k$GI=$;$k(B. $B>e5-9=B$BNDj5A$K(B
! 51: $B$*$$$F(B, @code{DP} $B$OJ,;6I=8=B?9`<0$N(B wrapper, @code{MP} $B$O3FC19`<0$N78?t(B
! 52: $B$*$h$S;X?t%Y%/%H%k$rI=$9(B. $B$^$?(B @code{DL} $B$O;X?t%Y%/%H%k$rI=$9(B.
! 53:
! 54: @code{MP}$B$K$h$jC19`<0%j%9%H$r9=@.$9$k:](B, $B9`$N=g=x$r;XDj$9$kI,MW$,$"$k(B.
! 55: $B$3$l$O(B, $BJQ?t$,8GDj$5$l$?>l9g$K(B, $B9`$N=89g$N4V$K$"$k>r7o$rK~$?$9A4=g=x$r(B
! 56: $B@_Dj$9$k$3$H$K$h$j9T$&(B. Risa $B$K$*$$$F$O(B, $B9`=g=x$N;XDj$r(B,
! 57:
! 58: @enumerate
! 59: @item $B3FJQ?t$H(B, $B;X?t%Y%/%H%k$N@.J,$N0LCV$NBP1~(B ($BJQ?t=g=x(B)
! 60: @item $B;X?t%Y%/%H%k$KBP$9$k=g=x$N;XDj(B ($B9`=g=x7?(B)
! 61: @end enumerate
! 62:
! 63: $B$K$h$j9T$&(B. 1. $B$OC1$KJQ?t$r%j%9%H$H$7$F;XDj$9$k$3$H$K$h$j9T$&(B. 2. $B$O(B
! 64: 3 $B$D$N%+%F%4%j$KJ,$+$l$k(B.
! 65:
! 66: @enumerate
! 67: @item primitive $B9`=g=x7?(B
! 68:
! 69: $B$3$l$O(B, $B<!$N$h$&$J<1JL;R$K$h$j;XDj$5$l$k7?$G$"$k(B.
! 70:
! 71: $BA4<!?t$D$-=g=x$O(B, $B$^$:A4<!?t$K$h$kHf3S$r9T$&(B.
! 72:
! 73: $B<-=q<0=g=x$O(B, $B;X?t%Y%/%H%k$N@hF,$+$iHf3S$r9T$$(B, $BCM$,Bg$-$$J}$N=g=x$r>e$H(B
! 74: $B$9$k(B.
! 75:
! 76: $B5U<-=q<0=g=x$O(B, $B;X?t%Y%/%H%k$NKvHx$+$iHf3S$r9T$$(B, $BCM$,>.$5$$J}$N=g=x$r>e(B
! 77: $B$H$9$k(B.
! 78:
! 79: @example
! 80: ORD_REVGRADLEX = 0 $BA4<!?t5U<-=q<0=g=x(B
! 81: ORD_GRADLEX = 1 $BA4<!?t<-=q<0=g=x(B
! 82: ORD_DLEX = 2 $B<-=q<0=g=x(B
! 83: @end example
! 84:
! 85: @item $B%V%m%C%/9`=g=x7?(B
! 86:
! 87: $B$3$l$O(B, $BJQ?t%j%9%H$r4v$D$+$N%V%m%C%/$K$o$1(B, $B3F%V%m%C%/$K(B primitive $B9`=g=x(B
! 88: $B7?$r;XDj$7$F(B, $B@hF,$N%V%m%C%/$+$iHf3S$r9T$C$F$$$/7?$G$"$k(B. $B$3$N7?$O(B,
! 89:
! 90: [[N1,O1],[N2,O2],...]
! 91:
! 92: $B$J$k%j%9%H$K$h$j;XDj$G$-$k(B. $B$3$3$G(B, Ni $B$O%V%m%C%/Fb$NJQ?t$N8D?t(B, Oi $B$O(B
! 93: $B$=$N%V%m%C%/$K$*$1$k(B primitive $B9`=g=x7?$G$"$k(B.
! 94:
! 95: @item $B9TNs9`=g=x7?(B
! 96:
! 97: $B;X?t%Y%/%H%k(B a, b $B$KBP$7(B, $B$"$k>r7o$rK~$?$99TNs(B M $B$K$h$j(B, M(a-b) $B$N:G=i$N(B
! 98: 0 $B$G$J$$@.J,$,@5$N>l9g$K(B a $B$N=g=x$,>e(B, $B$H$7$FA4=g=x$,Dj5A$G$-$k(B. $B$3$N(B
! 99: $B=g=x7?$r(B, M $B$K$h$jDj5A$5$l$k9TNs9`=g=x7?$H$h$V(B
! 100: @end enumerate
! 101:
! 102: @code{DP} $B$O(B sugar $B$J$k%a%s%P$r;}$D(B. $B$3$l$O(B, $B0J2<$N5,B'$K$h$j7W;;$5$l$k(B.
! 103:
! 104: @itemize
! 105:
! 106: @item $B0J2<$G@bL@$9$k(B @code{ptod()} $B$K$h$j@8@.$5$l$?J,;6I=8=B?9`<0$N>l9g$K$OA4(B
! 107: $B<!?t$K0lCW$9$k(B.
! 108:
! 109: @item $BJ,;6B?9`<0$KC19`<0$r$+$1$?>l9g$K$O(B, sugar $B$NCM$OB?9`(B
! 110: $B<0$N(B sugar $B$KC19`<0$NA4<!?t$r2C$($?$b$N$K$J$k(B.
! 111:
! 112: @item $BJ,;6B?9`<0$N2C8:;;$K$*$$$F$O(B, $B7k2L$N(B sugar $B$NCM$OBg$-$$J}$NCM(B
! 113: $B$H$J$k(B.
! 114: @end itemize
! 115:
! 116: $B$3$NCM$ODL>o$O8F$S=P$7$?1i;;4X?t$K$h$j%a%s%F%J%s%9$5$l$k$,(B, $BFH<+$K(B
! 117: $BJ,;6B?9`<0$r@8@.$7$?>l9g$K$O(B, $B>e$N5,B'$K$h$j(B sugar $B$NCM$r7W;;$7(B
! 118: $B@_Dj$9$kI,MW$,$"$k(B.
! 119:
! 120: @subsection $BJ,;6I=8=B?9`<0$N@8@.(B
! 121: @example
! 122: #include "ca.h"
! 123:
! 124: MKDP(n,m,d) (macro; int n; MP m; DP d)
! 125: $BJQ?t$N8D?t$,(B n $B$G$"$kC19`<0%j%9%H(B m $B$+$iJ,;6I=8=B?9`<0$r@8@.$9$k(B.
! 126: sugar $B$NCM$O@_Dj$5$l$:(B, $B$3$N(B macro $B$r<B9T$7$?$"$H$K@_Dj$9$kI,MW$,$"$k(B.
! 127:
! 128: NEWDL(d,n) (macro; int n; DL d)
! 129: $BD9$5(B n $B$N;X?t%Y%/%H%k(B d $B$r@8@.$9$k(B. d $B$NA4<!?t$O(B 0, $B3F@.J,$O(B 0 $B$K=i4|2=(B
! 130: $B$5$l$k(B.
! 131:
! 132: NEWMP(m) (macro; MP m)
! 133: $BC19`<0%j%9%H9=B$BN(B m $B$r@8@.$9$k(B.
! 134:
! 135: NEXTMP(r,c) (macro; MP r,c)
! 136: r $B$rC19`<0%j%9%H$N@hF,$H$7(B, c $B$rKvHx$H$9$k$H$-(B, $BKvHx$KC19`<0%j%9%H$r(B
! 137: $BDI2C$7(B, c $B$r$=$NC19`<0%j%9%H$r;X$9$h$&$K$9$k(B. r $B$,(B 0 $B$N$H$-(B,
! 138: $BC19`<0%j%9%H$,@8@.$5$l(B, r $B$*$h$S(B c $B$O$=$NC19`<0%j%9%H$r;X$9(B.
! 139:
! 140: void initd(struct order_spec *spec)
! 141: $B9`=g=x9=B$BN(B spec $B$r8=:_$N9`=g=x$H$7$F;XDj$9$k(B.
! 142:
! 143: void ptod(VL vl, VL dvl, P p, DP *pr)
! 144: $BJQ?t=g=x(B vl $B$N85$G9=@.$5$l$?(B($B:F5"I=8=(B)$BB?9`<0(B p $B$r(B, $BJQ?t=g=x(B dvl $B$N$b$H$G(B,
! 145: $B8=:_@_Dj$5$l$F$$$k9`=g=x7?$K=>$C$FJ,;6I=8=B?9`<0$KJQ49$7(B *pr $B$H$9$k(B.
! 146: @end example
! 147:
! 148: @code{NEXTMP()} $B$OC19`<0%j%9%H$NKvHx$KC19`<0$rDI2C$7$F$$$/>l9g$KMQ$$$k(B.
! 149: @subsection $B;MB'(B
! 150: @example
! 151: #include "ca.h"
! 152:
! 153: void addd(VL vl,DP a,DP b,DP *rp)
! 154: *rp = a + b
! 155:
! 156: void subd(VL vl,DP a,DP b,DP *rp)
! 157: *rp = a - b
! 158:
! 159: void muld(VL vl,DP a,DP b,DP *rp)
! 160: *rp = a * b
! 161:
! 162: compd(VL vl,DP a,DP b)
! 163: $B0J2<$N=g=x$GHf3S(B
! 164: @end example
! 165: @noindent
! 166: @code{compd(vl,a,b)} $B$O<!$N$h$&$J=g=x$E$1$K$h$k(B.
! 167:
! 168: @enumerate
! 169: @item $B@hF,$NC19`<0$N;X?t%Y%/%H%k$r(B, $B8=:_@_Dj$5$l$k=g=x$GHf3S(B.
! 170: @item $B;X?t%Y%/%H%k$,Ey$7$$>l9g(B, $B78?t$rB?9`<0$N=g=x$GHf3S(B.
! 171: @item $B@hF,$NC19`<0$,Ey$7$$>l9g(B, 1., 2. $B$NHf3S$r<!$N9`0J9_$KBP$7$FB3$1$k(B.
! 172: @end enumerate
! 173:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>