Annotation of OpenXM/src/kan96xx/Doc/oxshell.oxw, Revision 1.2
1.2 ! takayama 1: %%$OpenXM: OpenXM/src/kan96xx/Doc/oxshell.oxw,v 1.1 2003/12/05 07:53:10 takayama Exp $
1.1 takayama 2: %% "make oxshell-ja.tex" to get the platex source.
3: //&ja \documentclass{jarticle}
4: //&en \documentclass{article}
5:
6: //&ja \title{Oxshell $B$N@_7W$H<BAu(B}
7: //&en \title{The design and implementation of oxshell}
8: //&C \author{Nobuki Takayama}
1.2 ! takayama 9: //&C \date{December 8, 2003}
1.1 takayama 10: //&C \newtheorem{example}{Example}
11: \usepackage{html}
12:
13: \begin{document}
14: \maketitle
15:
16: /*&ja
17: OpenXM $B%W%m%8%'%/%H$G$O(B OX RFC 100 $B$rMQ$$$F<o!9$N?t3X%=%U%H%&%(%"%7%9%F%`$NE}9g2=$r;n$_$F$$$k(B.
18: $B?7$7$$(B OX RFC 100 $B=`5r$N%5!<%P$r:n$k>l9g$K$O(B
19: $B%?!<%2%C%H$H$9$k?t3X%=%U%H%&%(%"%7%9%F%`$N%=!<%9%3!<%I$K(B OX RFC 100 $BBP1~ItJ,(B
20: $B$r2C$($k:n6H$r$7$J$$$H$$$1$J$$(B.
21: $B$3$N:n6H$O%=!<%9%3!<%I$NM}2r$H$+$J$j$N<j4V$rMW$9$k(B.
22: $B0lJ}(B, $BB?$/$N?t3X%=%U%H%&%(%"%7%9%F%`$O$"$i$+$8$a%U%!%$%k$K%3%^%s%I$d%G!<%?$r=q$-=P$7$F$*$/$3$H$K$h$j(B
23: unix $B$N(B shell $B$d(B Windows $B$N%3%^%s%I%W%m%s%W%H$+$iMxMQ2DG=$J$h$&$K:n$i$l$F$$$k(B.
24: $B$3$N$h$&$J?t3X%=%U%H%&%(%"$r%P%C%A=hM}BP1~%"%W%j%1!<%7%g%s$H$3$NJ8=q$G$O$h$V(B.
25:
26: Oxshell $B$O>e5-$N$h$&$J%P%C%A=hM}BP1~%"%W%j%1!<%7%g%s$r%=!<%9%3!<%I$N2~JQ$J$/(B
27: OX RFC 100 $B=`5r$K$9$k$?$a$N$$$o$f$k%i%C%Q!<7?$N(B OX $B%5!<%P$r=q$/$?$a$NJd=u5!G=$r(B
28: $BDs6!$9$k(B sm1 $B$X$NAH$_9~$_4X?t$G$"$k(B.
29: */
30:
31: //&ja Oxshell $B$rMQ$$$F(B OX $B%5!<%P$r<B8=$9$k$N$,E,@Z$J?t3X%=%U%H%&%(%"$O0J2<$N$h$&$JFCD'$r$b$D$b$N$G$"$m$&(B.
32: /*&ja
33: \begin{enumerate}
34: \item $B%P%C%A=hM}BP1~%"%W%j%1!<%7%g%s$G$"$k(B.
35: \item $B%=!<%9%3!<%I$NJQ99$,$G$-$J$$$+:$Fq(B.
36: \item $B%5!<%P$H$NDL?.$,IQHK$K$*$-$J$$(B.
37: \item $B%5!<%P$N7W;;$rCfCG$7$F(B, $B:FEY3+;O$9$k$J$I$NI,MW$,$J$$(B.
38: \item Windows $B$G$b(B unix $B$G$bF0$+$7$?$$(B.
39: \end{enumerate}
40: */
41: //&ja $B$3$N$h$&$JFCD'$r4v$D$+$b$D%=%U%H%&%(%"%7%9%F%`$H$7$F$?$H$($P(B, {\tt polymake} $B$,$"$k(B
42: //&C (\htmladdnormallink{{\tt http://www.math.tu-berlin.de/polymake}}{http://www.math.tu-berlin.de/polymake}).
43: /*&ja
44: Polymake $B$OB?LLBN$N(B facet $B$N?t$(5s$2$J$IB?LLBN$N<o!9$N9=@.$H7W;;$r$*$3$J$&$?$a$N%=%U%H%&%(%"$G$"$k(B.
45: Polymake $B$O%P%C%A=hM}BP1~%"%W%j%1!<%7%g%s$G$"$j(B, $B$^$?(B C++ $B$G=q$+$l$?%=!<%9$O@hC<E*$J(B C++ $B$N5!G=$r(B
46: $BMxMQ$7$F$*$j%3%s%Q%$%k$,MF0W$G$J$$(B.
47: $B%5!<%P$H$NDL?.$NIQEY$OLdBj$K$h$k$,$"$kDxEYBg$-$$7W;;$N>l9g$ODL?.;~4V$OL5;k$G$-$k(B.
48: Polymake $B$OBPOCE*MxMQ$OA[Dj$7$F$*$i$:%5!<%P$N7W;;$rCfCG$7$F(B, $B:FEY3+;O$9$k$J$I$NI,MW$,$J$$(B.
49: $B$3$NJ8>O$G$O$3$N(B {\tt polymake} $B$rNc$K$H$C$F(B, oxshell $B$N@_7W$H<BAu$r=R$Y$k(B.
50: */
51:
52: //&ja \section{ox polymake $B%5!<%PF~Lg(B}
53: //&en \section{Introduction to ox polymake server}
54:
55: /*&ja
56: oxshell $B$N@_7W$H<BAu$r=R$Y$k$^$($K(B, {\tt polymake} $B$,$I$N$h$&$J%=%U%H%&%(%"$+(B,
57: ox polymake $B$,$I$N$h$&$KF0:n$9$k$+<BNc$r$"$2$F@bL@$7$h$&(B.
58: */
59:
60: //&C \begin{example} \rm
61: /*&ja
62: $BE@(B $(1,0,0)$, $(1,1,0)$, $(1,0,1)$, $(1,1,1)$ $B>e$N(B cone $B$N(B facet $B$r5a$a$h(B. \\
63: {\tt polymake} $B$G$O$D$.$h$&$JF~NO%U%!%$%k(B {\tt square.poly} $B$r$^$::n@.$9$k(B.
64: */
65: /*&C
66: {\footnotesize \begin{verbatim}
67: POINTS
68: 1 0 0
69: 1 1 0
70: 1 0 1
71: 1 1 1
72:
73: \end{verbatim} }
74: */
75: //&ja \noindent $B$=$7$F<!$N%3%^%s%I$r(B shell $B$+$i<B9T$9$k(B.
76: //&C \ \\ \verb@ polymake square.poly FACETS @ \\
77: //&ja {\tt Polymake} $B$O<!$N$h$&$K7k2L$rLa$9(B.
78: /*&C
79: {\footnotesize \begin{verbatim}
80: FACETS
81: 0 0 1
82: 0 1 0
83: 1 0 -1
84: 1 -1 0
85: \end{verbatim} }
86: */
87: //&C \end{example}
88:
89:
90: //&C \begin{example} \rm
91: /*&ja
92: $BF1$8Nc$r(B {\tt sm1/oxshell} $B$rMQ$$$F2r$/$H<!$N$h$&$K$J$k(B.
93: */
94: //&ja $B<!$N%3%^%s%I$r(B {\tt ox\_sm1} $B$K<B9T$5$;$k(B. $B$3$?$($O%9%?%C%/%^%7%s$NJQ?t(B {\tt rr} $B$KF~$k(B.
95: /*&C
96: {\footnotesize \begin{verbatim}
97: [(FACETS) (polymake.data(polymake.POINTS([[1,0,0],[1,1,0],[1,0,1],[1,1,1]])))]
98: doPolymake /rr set ;
99: \end{verbatim} }
100: */
101: //&ja {\tt rr} $B$K$O$D$.$h$&$JCM$,$O$$$C$F$$$k(B.
102: /*&C
103: {\footnotesize \begin{verbatim}
104: [ $polymake.data(polymake.POINTS([[1,0,0],[1,1,0],[1,0,1],[1,1,1]]),
105: polymake.FACETS([[0,0,1],[0,1,0],[1,0,-1],[1,-1,0]]),
106: polymake.AFFINE_HULL())$
107: CMO tree expression of the data above
108: Outputs to stdout and stderr ]
109: \end{verbatim} }
110: */
111: //&C \end{example}
112:
113:
114: //&ja \section{doPolymake $B$N=hM}$NN.$l(B}
115:
116: /*&ja
117: \begin{enumerate}
118: \item (CMO tree $B$r(B tfb/2 $B7A<0$X(B.)
119: \item tfb/2 $BI=8=$N%G!<%?$r(B polymake $B$NF~NO7A<0$X(B.
1.2 ! takayama 120: ({\tt OpenXM/src/k097/k0} $B$N(B {\tt QuoteMode} $B$rMxMQ$7$F(B CMO tree $B7A<0$X(B.
! 121: $B$=$l$+$i(B sm1 $B$N(B treeToPolymake extension $B$rMQ$$$k(B.
! 122: $B%=!<%9$O(B, {\tt OpenXM/src/kan96xx/trans/tree2polymake.c})
1.1 takayama 123: \item polymake $B$r(B {\tt oxshell} $B$G8F$S=P$9(B.
1.2 ! takayama 124: ({\tt OpenXM/src/kan96xx/trans/polymake.sm1}).
! 125: \item $B$&$1$H$C$?(B polymake $B7A<0$N%G!<%?$r(B tfb/2 $B7A<0$X(B
! 126: ({\tt OpenXM/src/kan96xx/trans} $B$N(B {\tt yy\_polymake.y} $B$G%Q!<%9(B.
! 127: polymake2tfb $B$,JQ49MQ$N%P%$%J%j(B.)
1.1 takayama 128: \item (tfb/2 $B7A<0$r(B CMO tree $B$X(B.)
129: \end{enumerate}
130:
1.2 ! takayama 131: {\tt doPolymake} $B$N%=!<%9$O(B \\ {\tt kan96xx/trans/polymake.sm1} $B$K$"$k(B.
1.1 takayama 132: */
133:
134: //&ja \section{{\tt Oxshell} $B$NFCD'(B}
135:
136: /*&ja
137: \noindent OX RFC 100 $B$K$O%U%!%$%k$N35G0$,$J$$(B. $B$7$?$,$C$F(B, \\
138: \verb@ polymake $B%U%!%$%kL>(B $BF0:n(B @ \\
139: $B$_$?$$$J%W%m%0%i%`$O(B OX $B%9%?%C%/%^%7%s$N>e$N%G!<%?$r%U%!%$%k$K=q$-=P$7$F$+$i(B
140: $B<B9T$7$F(B, $B$=$l$+$i$^$?%9%?%C%/%^%7%s$N>e$N%G!<%?$KJQ49$7$J$$$H$$$1$J$$(B.
141: $B$3$NJQ49$OC1=c;E;v$G$"$k$,(B, $B<B:]$N%W%m%0%i%`$O(B unix $B$H(B windows $B$N%Q%9L>$N0c$$$H$+(B,
142: /bin/sh $B$NB8:_$r2>Dj$G$-$k(B unix $B$H(B /bin/sh $B$NB8:_$r2>Dj$G$-$J$$(B windows
143: $B$H$+$$$m$s$JMWAG$,$"$j(B, $B%W%m%0%i%`$,BgJQFI$_$K$/$/J]<i$b$7$K$/$$(B
144: ( phc $B$G$N7P83(B). ZPG $B$N6KCW$G$"$k(B.
1.2 ! takayama 145:
1.1 takayama 146: {\tt oxshell} $B$G$O$3$N;E;v$O<!$N(B 1 $B9T$G=q$/(B. \\
1.2 ! takayama 147: \verb@[(polymake) (stringInOut://$B%9%?%C%/%^%7%sJQ?tL>(B.poly) $BF0:n(B] oxshell@\\
1.1 takayama 148: $B%9%?%C%/%^%7%s$NJQ?t$r%U%!%$%k$r$_$J$7$F$$$k(B.
1.2 ! takayama 149:
! 150: $B$3$N$h$&$J9M$(J}$O(B, $B$J$K$b?7$7$$$b$N$G$O$J$$(B.
! 151: $BJ8;zNsJQ?t$r%U%!%$%k$N$h$&$K(B input output stream $B$H$_$J$9$H$$$&$N$O(B Java $B$N(B
! 152: io.StringReader ( io.InputStreamReader $B$NBe$o$j(B) $BEy$G;H$o$l$F$$$k(B.
! 153: $B$^$?%3%^%s%I$N<B9T7k2L$rJ8;zNs$H$7$FJQ?t$KBeF~$9$kF0:n$O(B,
! 154: $B$?$H$($P%9%/%j%W%H8@8l$G$"$k(B Python $B$G$O(B \verb@ x=os.popen("abc","r").read(); @
! 155: $B$H$7$F4JC1$K<B9T$G$-$k(B.
! 156: $B$7$+$7$J$,$i$3$l$i$N9M$($r?t3X%=%U%H%&%(%"$NE}9g2=$N$?$a$K;H$&$?$a$N<BAu$OB8:_$7$F$$$J$+$C$?(B.
! 157: $B$3$l$,(B oxshell $B%3%^%s%I$NF3F~$K$h$C$F2r7h$5$l$kE@$N0l$D$G$"$k(B.
! 158: $B$3$l$i$O$h$/CN$i$l$F$$$k9)IW$@$,$3$l$r?t3X%=%U%H%&%(%"E}9g:n6H$K:N$jF~$l$k$3$H$K$h$j(B,
1.1 takayama 159: $B9M$(J}$,@0M}$5$l%W%m%0%i%`$NJ]<i@-$,BgJQ$h$/$J$j(B, $B$^$??7$7$$%P%C%A7?%"%W%j%1!<%7%g%s$N(B
160: OX $B%5!<%P2=$,3Z$K$J$C$?(B.
161:
162:
163: {\tt oxshell} $B$N$=$NB>$N%3%^%s%I$K$D$$$F$O(B, sm1 $B$G(B {\tt (oxshell) usage}
164: $B$N2r@b$r8+$h(B.
1.2 ! takayama 165: {\tt oxshell} $B$N%=!<%9%3!<%I$O(B {\tt OpenXM/src/kan96xx/Kan/shell.c}.
1.1 takayama 166: $B>-MhE*$K$O(B /bin/sh $B$N3HD%8@8l$H$9$kM=Dj(B.
167:
168: OX RFC 100 $B$K%U%!%$%k$N35G0$r2C$($k:n6H$O(B OX RFC 103 (100, 101 $B$NJd$$(B) $B$G$d$kM=Dj(B.
1.2 ! takayama 169: */
! 170:
! 171: //&ja \section{Asir $B$h$j;H$&(B oxshell }
! 172: //&en \section{Oxshell on asir}
! 173:
! 174: /*&ja
! 175: Asir $B$+$i(B sm1/oxshell $B$rMxMQ$9$k$?$a$N4X?t$O(B \\
! 176: {\tt OpenXM/src/asir-contrib/packages/src/oxshell.rr}
! 177: $B$K$^$H$a$i$l$F$$$k(B. $B<!$N%3%^%s%I$G%m!<%I$9$k(B.
! 178: */
! 179: /*&C
! 180: \begin{verbatim}
! 181: [1163]:= load("oxshell.rr");
! 182: \end{verbatim}
! 183: */
! 184:
! 185: //&ja $B4v$D$+Nc$r$_$F$_$h$&(B.
! 186: //&en Let us see some examples.
! 187:
! 188: /*&ja unix $B>e$G<!$N%3%^%s%I$N<B9T$K$h$j(B {\tt ls} $B$N(B stdout $B$X$N=PNO$,J8;zNs$H$7$F(B {\tt S} $B$N(B
! 189: $BBh0lMWAG$H$7$F(B, stderr $B$X$N=PNO$,J8;zNs$H$7$F(B {\tt S} $B$NBh(B2$BMWAG$H$7$F3JG<$5$l$k(B.
! 190: */
! 191: /*&C
! 192: \begin{verbatim}
! 193: [1164]:= S = oxshell.oxshell(["ls"]);
! 194: \end{verbatim}
! 195: */
! 196:
! 197: /*&ja
! 198: $BJ8;zNs(B {\tt S} $B$K3JG<$5$l$?C18l(B dog, cat, lion $B$r(B unix $B$N%D!<%k(B sort $B$G(B
! 199: $BJB$YJQ$($k$K$O<!$N$h$&$K=q$/(B.
! 200: $BF~NO$O(B oxshell $B$r<B9T$7$F$$$k%9%?%C%/%^%7%s$NJQ?t(B {\tt S} $B$K3JG<$5$l$F$$$k(B.
! 201: */
! 202: /*&C
! 203: \begin{verbatim}
! 204: [1163]:= S="dog\ncat\nlion\n";
! 205: [1164]:= oxshell.set_value("S",S);
! 206: [1165]:= T=oxshell.oxshell(["sort","stringIn://S"]);
! 207: [cat
! 208: dog
! 209: lion
! 210: ,]
! 211: \end{verbatim}
! 212: */
! 213:
! 214: /*&ja
! 215: {\tt OpenXM/src/asir-contrib/packages/src/taka\_ahg.rr} $B$N(B
! 216: $B4X?t(B {\tt taka\_ahg.b(A,Idx)} $B$O(B oxshell $B$K$h$k(B polymake $B8F$S=P$75!G=$r(B
! 217: $BMQ$$$??t3X4X?t$N<BAuNc$G$"$k(B.
! 218: $B$3$N4X?t$O(B $B9TNs(B {\tt A} $B$KIU?o$7$?(B $BJ}8~(B {\tt Idx} $B$N$"$k(B $b$ $B4X?t$r7W;;$9$k(B.
! 219: $B$3$l$O(B {\tt A} $B$NDj5A$9$k(B cone $B$N%U%!%;%C%H$r$"$i$o$90l<!<0$N@Q$GI=8=$5$l$k$3$H$,(B,
! 220: $BCN$i$l$F$$$k(B
! 221: (Saito, Mutsumi; Sturmfels, Bernd; Takayama, Nobuki; Hypergeometric polynomials and integer programming. Compositio Math. 115 (1999), no. 2, 185--204
! 222: $B$*$h$S(B
! 223: Saito, Mutsumi; Parameter shift in normal generalized hypergeometric systems. Tohoku Math. J. (2) 44 (1992), no. 4, 523--534
! 224: $B$r$_$h(B.)
! 225: */
! 226:
! 227: /*&C
! 228: \begin{verbatim}
! 229: [1163]:= load("oxshell.rr");
! 230: [1164]:= load("taka_ahg.rr");
! 231: [1165]:= A=[[1,0,0],[1,1,0],[1,0,1],[1,1,1],[1,2,0]];
! 232: [1166]:= fctr(taka_ahg.b(A,4,[s1,s2,s3]));
! 233: [[1,1],[s1+2*s2,2],[s1+2*s2-1,1]]
! 234: \end{verbatim}
! 235: */
! 236:
! 237: /*&C
! 238: \begin{verbatim}
! 239: def b(A,Idx,V) {
! 240: F = oxshell.facets(A); /* Computing all the facets by polymake server.*/
! 241: F = F[1]; /* F is the set of the facets */
! 242: P = A[Idx];
! 243: Nfacets = length(F);
! 244: F = toPrimitive(A,F); /* Translate into primitive supporting function */
! 245: Bf = 1;
! 246: for (I=0; I<Nfacets; I++) {
! 247: H = matrix_inner_product(P,F[I]);
! 248: if (H != 0) {
! 249: B = matrix_inner_product(P,V);
! 250: for (J=0; J<H; J++) {
! 251: Bf = Bf*(B-J); /* See the papers above. */
! 252: }
! 253: }
! 254: }
! 255: return(Bf);
! 256: }
! 257: \end{verbatim}
! 258: */
! 259:
! 260: //&ja \section{$B$^$H$a(B}
! 261: //&en \section{Conclusion}
! 262: /*&ja
! 263: OX RFC 100 $B$K$O%U%!%$%k$N35G0$,$J$$(B.
! 264: $B$7$?$,$C$F(B, $B%P%C%A7?%"%W%j%1!<%7%g%s$r(B OX $B%5!<%P$H$7$F8F$V$?$a$K$O(B,
! 265: OX $B%9%?%C%/%^%7%s$N>e$N%G!<%?$r%U%!%$%k$K=q$-=P$7$F$+$i(B
! 266: $B<B9T$7$F(B, $B$=$l$+$i$^$?%9%?%C%/%^%7%s$N>e$N%G!<%?$KJQ49$7$J$$$H$$$1$J$$(B.
! 267: $B$3$NA`:n$rC;$/8+DL$7$h$/=q$1$k$h$&$K(B sh $B$NI=8=J}K!$r3HD%$7$?(B.
! 268: $B$3$N$h$&$J9M$(J}$O(B, $B$J$K$b?7$7$$$b$N$G$O$J$/(B,
! 269: $B$?$H$($P%9%/%j%W%H8@8l$G$"$k(B Python $B$G$O;w$?I=8=$,$G$-$k(B.
! 270: $B$7$+$7$J$,$i$3$l$i$N9M$($r?t3X%=%U%H%&%(%"$NE}9g2=$N$?$a$K;H$&$?$a$N<BAu$OB8:_$7$F$$$J$+$C$?(B.
! 271: $B$3$l$,(B oxshell $B%3%^%s%I$NF3F~$K$h$C$F2r7h$5$l$kE@$N0l$D$G$"$k(B.
! 272: $B$3$l$i$O$h$/CN$i$l$F$$$k9)IW$@$,$3$l$r?t3X%=%U%H%&%(%"E}9g:n6H$K:N$jF~$l$k$3$H$K$h$j(B,
! 273: $B9M$(J}$,@0M}$5$l%W%m%0%i%`$NJ]<i@-$,BgJQ$h$/$J$j(B, $B$^$??7$7$$%P%C%A7?%"%W%j%1!<%7%g%s$N(B
! 274: OX $B%5!<%P2=$,3Z$K$J$C$?(B.
! 275:
! 276: OpenXM $B$O8@8l:.:_7?4D6-$G$"$j(B, $B$=$N%/%i%$%"%s%H$G$b$"$k(B asir $B$d(B kan/sm1 $B$O$3$N$h$&$K(B
! 277: $B%9%/%j%W%H8@8lIw$N5!G=$,DI2C$5$lB3$1$F$$$k$,(B, $B$3$N;n$_$O$=$N0l4D$G$"$k(B.
1.1 takayama 278: */
279:
280: \end{document}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>