[BACK]Return to ohp-ja.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / ascm2001p

Annotation of OpenXM/doc/ascm2001p/ohp-ja.tex, Revision 1.1

1.1     ! takayama    1: %% $OpenXM$
        !             2: \documentclass{slides}
        !             3: %%\documentclass[12pt]{article}
        !             4: \usepackage{color}
        !             5: \usepackage{epsfig}
        !             6: \newcommand{\htmladdnormallink}[2]{#1}
        !             7: \begin{document}
        !             8: \noindent
        !             9: {\color{green} OpenXM-RFC 100 and 101 $B$N@_7W$H<BAu(B}
        !            10:
        !            11: \noindent
        !            12: M.Maekawa ($BA0(B $B@n(B $B!!(B $B>-(B $B=((B), \\ M.Noro ($BLn(B $BO$(B $B!!(B $B@5(B $B9T(B), \\
        !            13: K.Ohara ($B>.(B $B86(B $B!!(B $B8y(B $BG$(B), \\ N.Takayama ($B9b(B $B;3(B $B!!(B $B?.(B $B5#(B), \\
        !            14: Y.Tamura ($BED(B $BB<(B $B!!(B $B63(B $B;N(B)\\
        !            15: \htmladdnormallink{{\color{red}http://www.openxm.org}}{{\color{red}http://www.openxm.org}}
        !            16:
        !            17:
        !            18: \newpage
        !            19: \noindent
        !            20: {\color{red} 1. Architecture} \\
        !            21: ($B8=:_$"$k(B)$B?t3X%=%U%H%&%(%"%7%9%F%`$NE}9g2=(B.
        !            22:
        !            23: $B$3$N%W%m%8%'%/%H$NFs$D$N<g$?$k1~MQ(B \\
        !            24: \begin{enumerate}
        !            25: \item $BBPOCE*$KMxMQ2DG=$JJ,;6JBNs7W;;4D6-$N9=C[(B
        !            26: {\color{blue} Risa/Asir}
        !            27: (computer algebra system for general purpose,
        !            28:  open source (c) Fujitsu, \\
        !            29:  http://www.openxm.org, \\
        !            30:  http://risa.cs.ehime-u.ac.jp, \\
        !            31:  http://www.math.kobe-u.ac.jp/Asir/asir.html)
        !            32: \item e-Bateman $B7W2h(B
        !            33: (21 $B@$5*$NEE;RG^BN$K$h$kD61[4X?tO@=8(B)\\
        !            34: $BBh0lCJ3,(B: $BD64v2?4X?t$N8x<0$N@8@.$H8!>Z(B.
        !            35: \end{enumerate}
        !            36: \newpage
        !            37:
        !            38: \noindent
        !            39: OpenXM-RFC 100 \\
        !            40: {\color{green} Control}: \\
        !            41: \begin{enumerate}
        !            42: \item $B%/%i%$%"%s%H%5!<%P%b%G%k(B.  $BLZ9=B$$N%W%m%;%9(B.
        !            43: \item $B8=:_$"$k?t3X%=%U%H%&%(%"$r(B OpenXM {\color{red} $B%9%?%C%/%^%7%s(B}
        !            44: $B$GJq$`(B.
        !            45: \item execute\_string
        !            46: \begin{verbatim}
        !            47:   Pid = ox_launch(0,"ox_asir");
        !            48:   ox_execute_string(Pid," poly_factor(x^10-1);");
        !            49: \end{verbatim}
        !            50: \end{enumerate}
        !            51: \newpage
        !            52:
        !            53: \noindent
        !            54: {\color{green} Data}: \\
        !            55: \begin{tabular}{|c|c|}
        !            56: \hline
        !            57: {\color{red} TAG}& {\color{blue} BODY} \\
        !            58: \hline
        !            59: \end{tabular} \\
        !            60: $BFs$D$NAX(B: {\color{green} OX message} $BAX(B.
        !            61: $B%3%^%s%I(B, CMO, $B$=$NB>$N7A<0$K$h$k%G!<%?$NAX(B.
        !            62:
        !            63: \noindent
        !            64: {\color{blue} $BNc(B 1}: \\
        !            65: \begin{verbatim}
        !            66: P = ox_launch(0,"ox_sm1");
        !            67: ox_push_cmo(P,1);
        !            68: ox_push_cmo(P,1);
        !            69: ox_execute_string(P,"add");
        !            70: ox_pop_cmo(P);
        !            71: \end{verbatim}
        !            72:
        !            73: {\color{green} CMO} $B$O(B OpenMath $B$H$*$J$8$h$&$K(B XML $B$rMQ$$$?(B
        !            74: $B?t3X%G!<%?$N%(%s%3!<%G%#%s%0K!(B.
        !            75:
        !            76: \begin{tabular}{|c|c|c|}
        !            77: \hline
        !            78: {\tt OX\_DATA} & {\it CMO\_ZZ} & 1 \\
        !            79: \hline
        !            80: \end{tabular} \\
        !            81: \begin{tabular}{|c|c|c|}
        !            82: \hline
        !            83: {\tt OX\_DATA} & {\it CMO\_ZZ} & 1 \\
        !            84: \hline
        !            85: \end{tabular} \\
        !            86: \begin{tabular}{|c|c|c|}
        !            87: \hline
        !            88: {\tt OX\_DATA} & {\it CMO\_STRING} & add \\
        !            89: \hline
        !            90: \end{tabular} \\
        !            91: \begin{tabular}{|c|c|}
        !            92: \hline
        !            93: {\tt OX\_COMMAND} & {\it SM\_executeString} \\
        !            94: \hline
        !            95: \end{tabular} \\
        !            96: \begin{tabular}{|c|c|}
        !            97: \hline
        !            98: {\tt OX\_COMMAND} & {\it SM\_popCMO} \\
        !            99: \hline
        !           100: \end{tabular} \\
        !           101: \htmladdnormallink{http://www.openxm.org}{http://www.openxm.org}
        !           102: \newpage
        !           103:
        !           104: \noindent
        !           105: {\color{red} 2. $B%(%i!<$N07$$$H7W;;$NCfCG(B} \\
        !           106: \begin{verbatim}
        !           107: P = ox_launch(0,"ox_asir");
        !           108: ox_rpc(P,"fctr",1.2*x^2-1.21);
        !           109: ox_dup_errors(P);
        !           110: ox_pop_cmo(P);
        !           111: \end{verbatim}
        !           112: {\color{green}
        !           113: \verb# [error([8,fctr: invalid argument])] #
        !           114: }\\
        !           115: {\color{blue}
        !           116: $B%5!<%P$OJ9$+$l$J$$$+$.$j2?$b8@$o$J$$(B.
        !           117: }
        !           118: \newpage
        !           119:
        !           120: \begin{verbatim}
        !           121: P=ox_launch(0,"ox_asir");
        !           122: ox_rpc(P,"fctr",x^1000-y^1000);
        !           123: ox_reset(P);
        !           124: \end{verbatim}
        !           125:
        !           126: \setlength{\unitlength}{1cm}
        !           127: \begin{picture}(20,7)(0,0)
        !           128: \thicklines
        !           129: \put(5,1.7){\line(1,0){7}}
        !           130: \put(5,4.7){\line(3,-1){7}}
        !           131: \put(12,1){\framebox(5,2.5){client}}
        !           132: \put(1,4){\framebox(4,1.5){\color{blue} controller}}
        !           133: \put(1,1){\framebox(4,1.5){\color{red} engine}}
        !           134: \thinlines
        !           135: \put(0,0.3){\framebox(6,6){}}
        !           136: \put(1.5,-0.7){server}
        !           137: \end{picture}
        !           138: \newpage
        !           139:
        !           140: \noindent
        !           141: {\color{red} 4. e-Bateman $B7W2h(B} ($BEE;RE*$J?t3X8x<0=8(B)\\
        !           142: $BBh0lCJ3,(B: \\
        !           143: $B%,%&%9$ND64v2?5i?t(B
        !           144: $$ {\color{blue} F(a,b,c;x)} = \sum_{n=1}^\infty
        !           145:   \frac{(a)_n (b)_n}{(1)_n (c)_n} x^n
        !           146: $$
        !           147: $B$3$3$G(B
        !           148: $$ (a)_n = a(a+1) \cdots (a+n-1). $$
        !           149: {\color{green}
        !           150: $$ \log (1+x) = x F(1,1,2;-x) $$
        !           151: $$ \arcsin x = x F(1/2,1/2,3/2;x^2) $$
        !           152: }
        !           153:
        !           154: \noindent
        !           155: Appell's $F_1$:
        !           156: $$ {\color{blue} F_1(a,b,b',c;x,y)} = \sum_{m,n=1}^\infty
        !           157:   \frac{(a)_{m+n} (b)_m (b')_n}{(c)_{m+n}(1)_m (1)_n} x^m y^n.
        !           158: $$
        !           159: \newpage
        !           160: $B?t3X8x<0=8(B, $B$?$H$($P(B
        !           161: Erdelyi: {\color{green} Higher Transcendental Functions} \\
        !           162: {\color{blue} $B8x<0(B (type A)}\\
        !           163: $B<!$N>oHyJ,J}Dx<0$N2r6u4V$O(B
        !           164: $$ x(1-x) \frac{d^2f}{dx^2} -\left( c-(a+b+1)x \right) \frac{df}{dx} - a b f = 0$$
        !           165: $B<!$N4X?t$GD%$i$l$k(B
        !           166: $$ F(a,b,c;x) = {\color{red}1} + O(x), \
        !           167:    x^{1-c} F(a,b,c;x) = {\color{red}x^{1-c}}+O(x^{2-c}))$$
        !           168:
        !           169: $B$3$3$G(B $c \not\in {\bf Z}$. \\
        !           170: {\color{blue} $B8x<0(B (type B)}\\
        !           171: \begin{eqnarray*}
        !           172: &\ & F(a_1, a_2, b_2;z) \, F(-a_1,-a_2,2-b_2;z)  \\
        !           173: &+& \frac{z}{e_2}\, F'(a_1, a_2, b_2;z) \, F(-a_1,-a_2,2-b_2;z)  \\
        !           174: &-& \frac{z}{e_2}\, F(a_1, a_2, b_2;z) \, F'(-a_1,-a_2,2-b_2;z)  \\
        !           175: &-& \frac{a_1+a_2-e_2}{a_1 a_2 e_2}z^2\,
        !           176:   F'(a_1, a_2, b_2;z)\,F'(-a_1,-a_2,2-b_2;z) \\
        !           177: &=& 1
        !           178: \end{eqnarray*}
        !           179: $B$3$3$G(B $e_2 = b_2-1$,  $a_1, a_2, e_2, e_2-a_2 \not\in {\bf Z}$.  \\
        !           180: ($B$3$N8x<0$O(B $\sin^2 x + \cos^2 x =1$ $B$N0lHL2=(B.)
        !           181:
        !           182: \noindent
        !           183: $B8=:_$d$C$F$k%W%m%8%'%/%H(B: \\
        !           184: type A $B$*$h$S(B type B $B$N8x<0$r(B
        !           185: {\color{blue} GKZ hypergeometric systems}
        !           186: $B$KBP$7$F@8@.(B, $B8!>Z$7$h$&$H$7$F$$$k(B.
        !           187:
        !           188: \begin{tabular}{|c|c|c|}
        !           189: \hline
        !           190:   & type A & type B \\ \hline
        !           191: $B%"%k%4%j%:%`(B &  {\color{red} OK} (SST book) &  $B$d$C$F$k(B \\ \hline
        !           192: $B<BAu(B & $BItJ,E*$K$G$-$?(B & $B$^$@(B \\ \hline
        !           193: \end{tabular}
        !           194:
        !           195: \noindent
        !           196: $B8=:_$"$k(B ox $B%5!<%P(B
        !           197: {\tt ox\_asir}, {\tt ox\_sm1}, {\tt ox\_tigers}, {\tt ox\_gnuplot},
        !           198: {\tt ox\_mathematica}, {\tt OpenMathproxy} (JavaClasses), {\tt ox\_m2}
        !           199: $B$O(B, GKZ $BD64v2?7O$KBP$7$F(B type A $B$N8x<0$r@8@.(B, $B8!>Z(B, $B%W%l%<%s$9$k$?$a$K(B
        !           200: $B=8$a$F$"$k(B.
        !           201:
        !           202: \newpage
        !           203:
        !           204: \noindent{\color{red} 5. $BJ,;6%"%k%4%j%:%`$r4JC1$K$?$a$7$?$jI>2A$7$?$j$9$k(B.} \\
        !           205:
        !           206: \noindent
        !           207: {\color{green} $BNc(B 1} \\
        !           208: $BDjM}(B (Cantor-Zassenhaus) \\
        !           209: $f_1$ $B$H(B $f_2$ $B$r<!?t$,(B $d$ $B$G$"$k$h$&$J(B $F_q[x]$ $B$N4{LsB?9`<0$H$9$k(B.
        !           210: $B<!?t(B $2d-1$ $B$N%i%s%@%`$J78?t$r$b$DB?9`<0(B $g \in F_q[x]$
        !           211: $B$KBP$7$F(B
        !           212: $$ GCD(g^{(q^d-1)/2}-1,f_1 f_2) = f_1 \,\mbox{or}\, f_2 $$
        !           213: $B$H$J$k3NN($O(B
        !           214: $$ \frac{1}{2}-\frac{1}{(2q)^d}. $$
        !           215:
        !           216: \begin{picture}(20,14)(0,0)
        !           217: \put(7,12){\framebox(4,1.5){client}}
        !           218: \put(2,6){\framebox(4,1.5){server}}
        !           219: %%\put(7,6){\framebox(4,1.5){server}}
        !           220: \put(12,6){\framebox(4,1.5){server}}
        !           221: \put(0,0){\framebox(4,1.5){server}}
        !           222: \put(5,0){\framebox(4,1.5){server}}
        !           223: \put(13.5,0){\framebox(4,1.5){server}}
        !           224:
        !           225: \put(9,12){\vector(-1,-1){4.3}}
        !           226: %%\put(9,12){\vector(0,-1){4.3}}
        !           227: \put(9,12){\vector(1,-1){4.3}}
        !           228: \put(4,6){\vector(-1,-2){2.2}}
        !           229: \put(4,6){\vector(1,-2){2.2}}
        !           230: \put(14,6){\vector(1,-3){1.4}}
        !           231: \end{picture}
        !           232:
        !           233: \begin{verbatim}
        !           234: /* F $B$N0x?tJ,2r$r$9$k(B. */
        !           235: /* E =  F $B$N4{Ls0x;R$N<!?t(B */
        !           236: def c_z(F,E,Level)
        !           237: {
        !           238:   V = var(F); N = deg(F,V);
        !           239:   if ( N == E ) return [F];
        !           240:   M = field_order_ff(); K = idiv(N,E); L = [F];
        !           241:   while ( 1 ) {
        !           242:     /* $B%i%s%@%`$J78?t$NB?9`<0$r:n$k(B */
        !           243:     W = monic_randpoly_ff(2*E,V);
        !           244:     /* $B%i%s%@%`$J78?t$NB?9`<0$N6R$r7W;;(B */
        !           245:     T = generic_pwrmod_ff(W,F,idiv(M^E-1,2));
        !           246:     if ( !(W = T-1) ) continue;
        !           247:     /* G = GCD(F,W^((M^E-1)/2)) mod F) */
        !           248:     G = ugcd(F,W);
        !           249:     if ( deg(G,V) && deg(G,V) < N ) {
        !           250:       /* G $B$O(B F $B$N0x;R(B */
        !           251:       if ( Level >= LevelMax ) {
        !           252:         /* $B$3$3$GA4$F$d$k>l9g(B */
        !           253:         L1 = c_z(G,E,Level+1);
        !           254:         L2 = c_z(sdiv(F,G),E,Level+1);
        !           255:       } else {
        !           256:         /* $B$^$@N)$A>e$2$$$J$+$C$?$i%5!<%P$rN)$A>e$2$k(B. */
        !           257:         if ( Proc1 < 0 ) Proc1 = ox_launch();
        !           258:         /* $B%5!<%P$KMj$`(B. Level = Level+1 */
        !           259:         /* ox_c_z is a wrapper of c_z on the server */
        !           260:         ox_cmo_rpc(Proc1,"ox_c_z",lmptop(G),E,
        !           261:             setmod_ff(),Level+1);
        !           262:         /* $B$N$3$j$N;E;v$O<+J,$G$d$k(B. */
        !           263:         L2 = c_z(sdiv(F,G),E,Level+1);
        !           264:         /* $B%5!<%P$+$i$N7k2L$r$b$i$&(B. */
        !           265:         L1 = map(simp_ff,ox_pop_cmo(Proc1));
        !           266:       }
        !           267:       return append(L1,L2);
        !           268:     }
        !           269:   }
        !           270: }
        !           271: \end{verbatim}
        !           272: \newpage
        !           273:
        !           274: \epsfxsize=17cm
        !           275: \epsffile{cz.ps}
        !           276:
        !           277: \noindent
        !           278: {\color{blue} $BJBNs(B CZ $B%"%k%4%j%:%`$NI>2A(B} \\
        !           279: $d=1$, $k=200$ : $200$ $B8D$N(B 1 $B<!<0$N@Q(B. \\
        !           280: $d=2$, $k=50$ : $50$ $B8D$N4{Ls$J(B $2$ $B<!<0$N@Q(B. \\
        !           281:
        !           282: \newpage
        !           283: {\color{green} $BNc(B 2} \\
        !           284: $BB?9`<0$r3]$1$k$?$a$N(B Shoup $B$N%"%k%4%j%:%`(B.  \\
        !           285: {\color{green} $BNc(B 3} \\
        !           286: $B6%AhE*4D6-$K$*$1$k%0%l%V%J4pDl7W;;(B. \\
        !           287: \newpage
        !           288:
        !           289: \noindent
        !           290: {\color{green} $BNc(B 3. $B6%AhE*4D6-$K$*$1$k%0%l%V%J4pDl7W;;(B}
        !           291: \begin{verbatim}
        !           292: extern Proc1,Proc2$
        !           293: Proc1 = -1$ Proc2 = -1$
        !           294: /* G:set of polys; V:list of variables */
        !           295: /* Mod: the Ground field GF(Mod); O:type of order */
        !           296: def dgr(G,V,Mod,O)
        !           297: {
        !           298:   /* invoke servers if necessary */
        !           299:   if ( Proc1 == -1 ) Proc1 = ox_launch();
        !           300:   if ( Proc2 == -1 ) Proc2 = ox_launch();
        !           301:   P = [Proc1,Proc2];
        !           302:   map(ox_reset,P); /* reset servers */
        !           303:   /* P0 $B$O(B Buchberger algorithm over GF(Mod) $B$G7W;;(B. */
        !           304:   ox_cmo_rpc(P[0],"dp_gr_mod_main",G,V,0,Mod,O);
        !           305:   /* P1 $B$O(B F4 algorithm over GF(Mod) $B$G7W;;(B */
        !           306:   ox_cmo_rpc(P[1],"dp_f4_mod_main",G,V,Mod,O);
        !           307:   map(ox_push_cmd,P,262); /* 262 = OX_popCMO */
        !           308:   F = ox_select(P); /* wait for data */
        !           309:   /* F[0] is a server's id which is ready */
        !           310:   R = ox_get(F[0]);
        !           311:   if ( F[0] == P[0] ) { Win = "Buchberger"; Lose = P[1]; }
        !           312:   else { Win = "F4"; Lose = P[0]; }
        !           313:   ox_reset(Lose); /* $BCY$$J}$N%5!<%P$O;_$a$k(B. */
        !           314:   return [Win,R];
        !           315: }
        !           316: \end{verbatim}
        !           317: \newpage
        !           318:
        !           319: \end{document}

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