[BACK]Return to oxshell.oxw CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Doc

File: [local] / OpenXM / src / kan96xx / Doc / oxshell.oxw (download)

Revision 1.2, Mon Dec 8 05:35:32 2003 UTC (20 years, 5 months ago) by takayama
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, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.1: +132 -11 lines

taka_ahg.b(A,Idx,V) computes M.Saito's b-function of the A-hypergeometric
system with respect to the direction Idx.
( This function calls polymake server. )
See oxshell.oxw for details.

%%$OpenXM: OpenXM/src/kan96xx/Doc/oxshell.oxw,v 1.2 2003/12/08 05:35:32 takayama Exp $
%% "make oxshell-ja.tex" to get the platex source.
//&ja \documentclass{jarticle}
//&en \documentclass{article}

//&ja \title{Oxshell $B$N@_7W$H<BAu(B}
//&en \title{The design and implementation of oxshell}
//&C \author{Nobuki Takayama}
//&C \date{December 8, 2003}
//&C \newtheorem{example}{Example}
\usepackage{html}

\begin{document}
\maketitle

/*&ja
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.
$B?7$7$$(B OX RFC 100 $B=`5r$N%5!<%P$r:n$k>l9g$K$O(B
$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
$B$r2C$($k:n6H$r$7$J$$$H$$$1$J$$(B.
$B$3$N:n6H$O%=!<%9%3!<%I$NM}2r$H$+$J$j$N<j4V$rMW$9$k(B.
$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
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.
$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.

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 
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
$BDs6!$9$k(B sm1 $B$X$NAH$_9~$_4X?t$G$"$k(B.
*/

//&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.
/*&ja
\begin{enumerate}
\item $B%P%C%A=hM}BP1~%"%W%j%1!<%7%g%s$G$"$k(B.
\item $B%=!<%9%3!<%I$NJQ99$,$G$-$J$$$+:$Fq(B.
\item $B%5!<%P$H$NDL?.$,IQHK$K$*$-$J$$(B.
\item $B%5!<%P$N7W;;$rCfCG$7$F(B, $B:FEY3+;O$9$k$J$I$NI,MW$,$J$$(B.
\item Windows $B$G$b(B unix $B$G$bF0$+$7$?$$(B.
\end{enumerate}
*/
//&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
//&C (\htmladdnormallink{{\tt http://www.math.tu-berlin.de/polymake}}{http://www.math.tu-berlin.de/polymake}).
/*&ja
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.
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
$BMxMQ$7$F$*$j%3%s%Q%$%k$,MF0W$G$J$$(B.
$B%5!<%P$H$NDL?.$NIQEY$OLdBj$K$h$k$,$"$kDxEYBg$-$$7W;;$N>l9g$ODL?.;~4V$OL5;k$G$-$k(B.
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.
$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.
*/

//&ja \section{ox polymake $B%5!<%PF~Lg(B}
//&en \section{Introduction to ox polymake server}

/*&ja
oxshell $B$N@_7W$H<BAu$r=R$Y$k$^$($K(B, {\tt polymake} $B$,$I$N$h$&$J%=%U%H%&%(%"$+(B,
ox polymake $B$,$I$N$h$&$KF0:n$9$k$+<BNc$r$"$2$F@bL@$7$h$&(B.
*/

//&C \begin{example} \rm
/*&ja
$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. \\
{\tt polymake} $B$G$O$D$.$h$&$JF~NO%U%!%$%k(B {\tt square.poly} $B$r$^$::n@.$9$k(B.
*/
/*&C
{\footnotesize \begin{verbatim}
POINTS
1 0 0
1 1 0
1 0 1
1 1 1
 
\end{verbatim} }
*/
//&ja \noindent $B$=$7$F<!$N%3%^%s%I$r(B shell $B$+$i<B9T$9$k(B.
//&C  \ \\ \verb@ polymake square.poly FACETS @ \\
//&ja {\tt Polymake} $B$O<!$N$h$&$K7k2L$rLa$9(B.
/*&C
{\footnotesize \begin{verbatim}
FACETS
0 0 1
0 1 0
1 0 -1
1 -1 0
\end{verbatim} }
*/
//&C \end{example}


//&C \begin{example} \rm
/*&ja
$BF1$8Nc$r(B {\tt sm1/oxshell} $B$rMQ$$$F2r$/$H<!$N$h$&$K$J$k(B.
*/
//&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.
/*&C
{\footnotesize \begin{verbatim}
 [(FACETS) (polymake.data(polymake.POINTS([[1,0,0],[1,1,0],[1,0,1],[1,1,1]])))]
         doPolymake /rr set ;
\end{verbatim} }
*/
//&ja {\tt rr} $B$K$O$D$.$h$&$JCM$,$O$$$C$F$$$k(B.
/*&C
{\footnotesize \begin{verbatim}
[ $polymake.data(polymake.POINTS([[1,0,0],[1,1,0],[1,0,1],[1,1,1]]),
   polymake.FACETS([[0,0,1],[0,1,0],[1,0,-1],[1,-1,0]]),
   polymake.AFFINE_HULL())$
  CMO tree expression of the data above
  Outputs to stdout and stderr ]
\end{verbatim} }
*/
//&C \end{example}


//&ja \section{doPolymake $B$N=hM}$NN.$l(B}

/*&ja
\begin{enumerate}
\item  (CMO tree $B$r(B tfb/2 $B7A<0$X(B.)
\item  tfb/2 $BI=8=$N%G!<%?$r(B polymake $B$NF~NO7A<0$X(B.
     ({\tt OpenXM/src/k097/k0} $B$N(B {\tt QuoteMode} $B$rMxMQ$7$F(B CMO tree $B7A<0$X(B.
      $B$=$l$+$i(B sm1 $B$N(B treeToPolymake extension $B$rMQ$$$k(B.
      $B%=!<%9$O(B, {\tt OpenXM/src/kan96xx/trans/tree2polymake.c})
\item  polymake $B$r(B {\tt oxshell} $B$G8F$S=P$9(B.
   ({\tt OpenXM/src/kan96xx/trans/polymake.sm1}).
\item  $B$&$1$H$C$?(B polymake $B7A<0$N%G!<%?$r(B tfb/2 $B7A<0$X(B 
   ({\tt OpenXM/src/kan96xx/trans} $B$N(B {\tt yy\_polymake.y} $B$G%Q!<%9(B.
    polymake2tfb $B$,JQ49MQ$N%P%$%J%j(B.)
\item  (tfb/2 $B7A<0$r(B CMO tree $B$X(B.)
\end{enumerate}

{\tt doPolymake} $B$N%=!<%9$O(B \\ {\tt kan96xx/trans/polymake.sm1} $B$K$"$k(B.
*/

//&ja \section{{\tt Oxshell} $B$NFCD'(B}

/*&ja
\noindent OX RFC 100 $B$K$O%U%!%$%k$N35G0$,$J$$(B. $B$7$?$,$C$F(B, \\
\verb@ polymake $B%U%!%$%kL>(B $BF0:n(B @ \\
$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
$B<B9T$7$F(B, $B$=$l$+$i$^$?%9%?%C%/%^%7%s$N>e$N%G!<%?$KJQ49$7$J$$$H$$$1$J$$(B.
$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,
/bin/sh $B$NB8:_$r2>Dj$G$-$k(B unix $B$H(B /bin/sh $B$NB8:_$r2>Dj$G$-$J$$(B windows
$B$H$+$$$m$s$JMWAG$,$"$j(B, $B%W%m%0%i%`$,BgJQFI$_$K$/$/J]<i$b$7$K$/$$(B
( phc $B$G$N7P83(B).  ZPG $B$N6KCW$G$"$k(B.

{\tt oxshell} $B$G$O$3$N;E;v$O<!$N(B 1 $B9T$G=q$/(B. \\
\verb@[(polymake) (stringInOut://$B%9%?%C%/%^%7%sJQ?tL>(B.poly) $BF0:n(B] oxshell@\\
$B%9%?%C%/%^%7%s$NJQ?t$r%U%!%$%k$r$_$J$7$F$$$k(B.

$B$3$N$h$&$J9M$(J}$O(B, $B$J$K$b?7$7$$$b$N$G$O$J$$(B.
$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 
io.StringReader ( io.InputStreamReader $B$NBe$o$j(B) $BEy$G;H$o$l$F$$$k(B.
$B$^$?%3%^%s%I$N<B9T7k2L$rJ8;zNs$H$7$FJQ?t$KBeF~$9$kF0:n$O(B,
$B$?$H$($P%9%/%j%W%H8@8l$G$"$k(B Python $B$G$O(B \verb@ x=os.popen("abc","r").read(); @
$B$H$7$F4JC1$K<B9T$G$-$k(B.
$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.
$B$3$l$,(B oxshell $B%3%^%s%I$NF3F~$K$h$C$F2r7h$5$l$kE@$N0l$D$G$"$k(B.
$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,
$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
OX $B%5!<%P2=$,3Z$K$J$C$?(B.


{\tt oxshell} $B$N$=$NB>$N%3%^%s%I$K$D$$$F$O(B, sm1 $B$G(B {\tt (oxshell) usage}
$B$N2r@b$r8+$h(B.
{\tt oxshell} $B$N%=!<%9%3!<%I$O(B {\tt OpenXM/src/kan96xx/Kan/shell.c}.
$B>-MhE*$K$O(B /bin/sh $B$N3HD%8@8l$H$9$kM=Dj(B.

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.
*/

//&ja \section{Asir $B$h$j;H$&(B oxshell }
//&en \section{Oxshell on asir}

/*&ja
Asir $B$+$i(B sm1/oxshell $B$rMxMQ$9$k$?$a$N4X?t$O(B  \\
{\tt OpenXM/src/asir-contrib/packages/src/oxshell.rr}
$B$K$^$H$a$i$l$F$$$k(B. $B<!$N%3%^%s%I$G%m!<%I$9$k(B.
*/
/*&C
\begin{verbatim}
[1163]:= load("oxshell.rr");
\end{verbatim}
*/

//&ja $B4v$D$+Nc$r$_$F$_$h$&(B.
//&en Let us see some examples.

/*&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
$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.
*/
/*&C
\begin{verbatim}
[1164]:= S = oxshell.oxshell(["ls"]);
\end{verbatim}
*/

/*&ja 
$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
$BJB$YJQ$($k$K$O<!$N$h$&$K=q$/(B.
$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.
*/
/*&C
\begin{verbatim}
[1163]:= S="dog\ncat\nlion\n";
[1164]:= oxshell.set_value("S",S);
[1165]:= T=oxshell.oxshell(["sort","stringIn://S"]);
[cat
dog
lion
,]
\end{verbatim}
*/

/*&ja
{\tt OpenXM/src/asir-contrib/packages/src/taka\_ahg.rr} $B$N(B
$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
$BMQ$$$??t3X4X?t$N<BAuNc$G$"$k(B.
$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.
$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,
$BCN$i$l$F$$$k(B
(Saito, Mutsumi; Sturmfels, Bernd; Takayama, Nobuki; Hypergeometric polynomials and integer programming. Compositio Math. 115 (1999), no. 2, 185--204
$B$*$h$S(B
Saito, Mutsumi; Parameter shift in normal generalized hypergeometric systems. Tohoku Math. J. (2) 44 (1992), no. 4, 523--534
$B$r$_$h(B.)
*/

/*&C
\begin{verbatim}
[1163]:= load("oxshell.rr");
[1164]:= load("taka_ahg.rr");
[1165]:=  A=[[1,0,0],[1,1,0],[1,0,1],[1,1,1],[1,2,0]];
[1166]:= fctr(taka_ahg.b(A,4,[s1,s2,s3]));
[[1,1],[s1+2*s2,2],[s1+2*s2-1,1]]
\end{verbatim}
*/

/*&C
\begin{verbatim}
def b(A,Idx,V) {
  F = oxshell.facets(A);    /* Computing all the facets by polymake server.*/
  F = F[1];                 /* F is the set of the facets */
  P = A[Idx];
  Nfacets = length(F);
  F = toPrimitive(A,F);     /* Translate into primitive supporting function */
  Bf = 1;
  for (I=0; I<Nfacets; I++) {
    H = matrix_inner_product(P,F[I]);
    if (H != 0) {
      B = matrix_inner_product(P,V);
      for (J=0; J<H; J++) {
        Bf = Bf*(B-J);  /* See the papers above. */
      }
    }
  } 
  return(Bf);
}
\end{verbatim}
*/

//&ja \section{$B$^$H$a(B}
//&en \section{Conclusion}
/*&ja
OX RFC 100 $B$K$O%U%!%$%k$N35G0$,$J$$(B. 
$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,
 OX $B%9%?%C%/%^%7%s$N>e$N%G!<%?$r%U%!%$%k$K=q$-=P$7$F$+$i(B
$B<B9T$7$F(B, $B$=$l$+$i$^$?%9%?%C%/%^%7%s$N>e$N%G!<%?$KJQ49$7$J$$$H$$$1$J$$(B.
$B$3$NA`:n$rC;$/8+DL$7$h$/=q$1$k$h$&$K(B sh $B$NI=8=J}K!$r3HD%$7$?(B.
$B$3$N$h$&$J9M$(J}$O(B, $B$J$K$b?7$7$$$b$N$G$O$J$/(B, 
$B$?$H$($P%9%/%j%W%H8@8l$G$"$k(B Python $B$G$O;w$?I=8=$,$G$-$k(B.
$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.
$B$3$l$,(B oxshell $B%3%^%s%I$NF3F~$K$h$C$F2r7h$5$l$kE@$N0l$D$G$"$k(B.
$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,
$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
OX $B%5!<%P2=$,3Z$K$J$C$?(B.

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
$B%9%/%j%W%H8@8lIw$N5!G=$,DI2C$5$lB3$1$F$$$k$,(B, $B$3$N;n$_$O$=$N0l4D$G$"$k(B.
*/

\end{document}