Annotation of OpenXM/doc/ascm2001p/ohp.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} Design and Implementation of OpenXM-RFC 100 and 101}
! 10:
! 11: \noindent
! 12: M.Maekawa, M.Noro, K.Ohara, N.Takayama, Y.Tamura \\
! 13: \htmladdnormallink{http://www.openxm.org}{http://www.openxm.org}
! 14:
! 15: \newpage
! 16: \noindent
! 17: {\color{red} 1. Architecture} \\
! 18: Integrating (existing) mathematical software systems.
! 19:
! 20: Two main applications of the project \\
! 21: \begin{enumerate}
! 22: \item Providing an environment for interactive distributed computation.
! 23: {\color{blue} Risa/Asir}
! 24: \item e-Bateman project
! 25: (Electronic version of higher transcendental functions of the 21st century)\\
! 26: 1st step: Generate and verify hypergeometric function identities.
! 27: \end{enumerate}
! 28: \newpage
! 29:
! 30: \noindent
! 31: OpenXM-RFC 100 \\
! 32: {\color{green} Control}: \\
! 33: \begin{enumerate}
! 34: \item Client-server model. Tree structure of processes.
! 35: \item Wrap (existing) mathematical software systems by the
! 36: OpenXM {\color{red} stackmachine}.
! 37: \item execute\_string
! 38: \begin{verbatim}
! 39: P = ox_launch(0,"ox_asir");
! 40: ox_execute_string(Pid," poly_factor(x^10-1);");
! 41: \end{verbatim}
! 42: \end{enumerate}
! 43: \newpage
! 44:
! 45: \noindent
! 46: {\color{green} Data}: \\
! 47: \begin{tabular}{|c|c|}
! 48: \hline
! 49: {\color{red} TAG}& {\color{blue} BODY} \\
! 50: \hline
! 51: \end{tabular} \\
! 52: Two layers: {\color{green} OX message} layer.
! 53: Layer of Command, CMO, and other data encodings.
! 54:
! 55: \noindent
! 56: {\color{blue} Example 1}: \\
! 57: \begin{verbatim}
! 58: P = ox_launch(0,"ox_sm1");
! 59: ox_push_cmo(P,1);
! 60: ox_push_cmo(P,1);
! 61: ox_execute_string(P,"add");
! 62: ox_pop_cmo(P);
! 63: \end{verbatim}
! 64:
! 65: {\color{green} CMO} is an encoding method based on XML like OpenMath.
! 66:
! 67: \begin{tabular}{|c|c|c|}
! 68: \hline
! 69: {\tt OX\_DATA} & {\it CMO\_ZZ} & 1 \\
! 70: \hline
! 71: \end{tabular} \\
! 72: \begin{tabular}{|c|c|c|}
! 73: \hline
! 74: {\tt OX\_DATA} & {\it CMO\_ZZ} & 1 \\
! 75: \hline
! 76: \end{tabular} \\
! 77: \begin{tabular}{|c|c|c|}
! 78: \hline
! 79: {\tt OX\_DATA} & {\it CMO\_STRING} & add \\
! 80: \hline
! 81: \end{tabular} \\
! 82: \begin{tabular}{|c|c|}
! 83: \hline
! 84: {\tt OX\_COMMAND} & {\it SM\_executeString} \\
! 85: \hline
! 86: \end{tabular} \\
! 87: \begin{tabular}{|c|c|}
! 88: \hline
! 89: {\tt OX\_COMMAND} & {\it SM\_popCMO} \\
! 90: \hline
! 91: \end{tabular} \\
! 92: \htmladdnormallink{http://www.openxm.org}{http://www.openxm.org}
! 93: \newpage
! 94:
! 95: \noindent
! 96: {\color{red} 2. Error Handling and Resetting} \\
! 97: \begin{verbatim}
! 98: P = ox_launch(0,"ox_asir");
! 99: ox_rpc(P,"fctr",1.2*x^2-1.21);
! 100: ox_dup_errors(P);
! 101: ox_pop_cmo(P);
! 102: \end{verbatim}
! 103: {\color{green}
! 104: \verb# [error([8,fctr: invalid argument])] #
! 105: }\\
! 106: {\color{blue}
! 107: Servers say nothing unless is is asked.
! 108: }
! 109: \newpage
! 110:
! 111: \begin{verbatim}
! 112: P=ox_launch(0,"ox_asir");
! 113: ox_rpc(P,"fctr",x^1000-y^1000);
! 114: ox_reset(P);
! 115: \end{verbatim}
! 116:
! 117: \setlength{\unitlength}{1cm}
! 118: \begin{picture}(20,7)(0,0)
! 119: \thicklines
! 120: \put(5,1.7){\line(1,0){7}}
! 121: \put(5,4.7){\line(3,-1){7}}
! 122: \put(12,1){\framebox(5,2.5){client}}
! 123: \put(1,4){\framebox(4,1.5){\color{blue} controller}}
! 124: \put(1,1){\framebox(4,1.5){\color{red} engine}}
! 125: \thinlines
! 126: \put(0,0.3){\framebox(6,6){}}
! 127: \put(1.5,-0.7){server}
! 128: \end{picture}
! 129: \newpage
! 130:
! 131: \noindent{\color{red} 4. Easy to try and evaluate distributed algorithms} \\
! 132:
! 133: \noindent
! 134: Theorem (Cantor-Zassenhaus) \\
! 135: Let $f_1$ and $f_2$ be degree $d$ polynomials in $F_q[x]$.
! 136: For a random degree $2d-1$ polynomial $g \in F_q[x]$,
! 137: the chance of
! 138: $$ GCD(g^{(q^d-1)/2}-1,f_1 f_2) = f_1 \,\mbox{or}\, f_2 $$
! 139: is
! 140: $$ \frac{1}{2}-\frac{1}{(2q)^d}. $$
! 141:
! 142: \begin{picture}(20,14)(0,0)
! 143: \put(7,12){\framebox(4,1.5){client}}
! 144: \put(2,6){\framebox(4,1.5){server}}
! 145: \put(7,6){\framebox(4,1.5){server}}
! 146: \put(12,6){\framebox(4,1.5){server}}
! 147: \put(0,0){\framebox(4,1.5){server}}
! 148: \put(5,0){\framebox(4,1.5){server}}
! 149: \put(13.5,0){\framebox(4,1.5){server}}
! 150:
! 151: \put(9,12){\vector(-1,-1){4.3}}
! 152: \put(9,12){\vector(0,-1){4.3}}
! 153: \put(9,12){\vector(1,-1){4.3}}
! 154: \put(4,6){\vector(-1,-2){2.2}}
! 155: \put(4,6){\vector(1,-2){2.2}}
! 156: \put(14,6){\vector(1,-3){1.4}}
! 157: \end{picture}
! 158:
! 159: \begin{verbatim}
! 160: /* factorization of F */
! 161: /* E = degree of irreducible factors in F */
! 162: def c_z(F,E,Level)
! 163: {
! 164: V = var(F); N = deg(F,V);
! 165: if ( N == E ) return [F];
! 166: M = field_order_ff(); K = idiv(N,E); L = [F];
! 167: while ( 1 ) {
! 168: /* gererate a random polynomial */
! 169: W = monic_randpoly_ff(2*E,V);
! 170: /* compute a power of the random polynomial */
! 171: T = generic_pwrmod_ff(W,F,idiv(M^E-1,2));
! 172: if ( !(W = T-1) ) continue;
! 173: /* G = GCD(F,W^((M^E-1)/2)) mod F) */
! 174: G = ugcd(F,W);
! 175: if ( deg(G,V) && deg(G,V) < N ) {
! 176: /* G is a non-trivial factor of F */
! 177: if ( Level >= LevelMax ) {
! 178: /* everything is done on this server */
! 179: L1 = c_z(G,E,Level+1);
! 180: L2 = c_z(sdiv(F,G),E,Level+1);
! 181: } else {
! 182: /* launch a server if necessary */
! 183: if ( Proc1 < 0 ) Proc1 = ox_launch();
! 184: /* send a request with Level = Level+1 */
! 185: /* ox_c_z is a wrapper of c_z on the server */
! 186: ox_cmo_rpc(Proc1,"ox_c_z",lmptop(G),E,
! 187: setmod_ff(),Level+1);
! 188: /* the rest is done on this server */
! 189: L2 = c_z(sdiv(F,G),E,Level+1);
! 190: L1 = map(simp_ff,ox_pop_cmo(Proc1));
! 191: }
! 192: return append(L1,L2);
! 193: }
! 194: }
! 195: }
! 196: \end{verbatim}
! 197: \newpage
! 198: \noindent
! 199: {\color{red} 5. e-Bateman project} \\
! 200: First Step: \\
! 201: Gauss Hypergeometric function:
! 202: $$ {\color{blue} F(a,b,c;x)} = \sum_{n=1}^\infty
! 203: \frac{(a)_n (b)_n}{(1)_n}{(c)_n} x^n
! 204: $$
! 205: where
! 206: $$ (a)_n = a(a+1) \cdots (a+n-1). $$
! 207: $$ F(?,?,?;x) = \log (1+x). $$
! 208:
! 209: \noindent
! 210: Appell's $F_1$:
! 211: $$ {\color{blue} F_1(a,b,b',c;x,y)} = \sum_{m,n=1}^\infty
! 212: \frac{(a)_{m+n} (b)_m (b')_n}{(c)_{m+n}(1)_m (1)_n} x^m y^n.
! 213: $$
! 214: \newpage
! 215: Mathematical formula book, e.g.,
! 216: Erdelyi: {\color{green} Higher Transcendental Functions} \\
! 217: {\color{blue} Formula (type A)}\\
! 218: The solution space of the ordinary differential equation
! 219: $$ x(1-x) \frac{d^2f}{dx^2} -\left( c-(a+b+1)x \right) \frac{df}{dx} - a b f = 0$$
! 220: is spanned by
! 221: $$ F(a,b,c;x) , \ x^{1-c} F(a,b,c;x) $$
! 222: when $c \not\in {\bf Z}$. \\
! 223: {\color{blue} Formula (type B)}\\
! 224: \begin{eqnarray*}
! 225: &\ & F(a_1, a_2, b_2;z) \, F(-a_1,-a_2,2-b_2;z) \\
! 226: &+& \frac{z}{e_2}\, F'(a_1, a_2, b_2;z) \, F(-a_1,-a_2,2-b_2;z) \\
! 227: &-& \frac{z}{e_2}\, F(a_1, a_2, b_2;z) \, F'(-a_1,-a_2,2-b_2;z) \\
! 228: &-& \frac{a_1+a_2-e_2}{a_1 a_2 e_2}z^2\,
! 229: F'(a_1, a_2, b_2;z)\,F'(-a_1,-a_2,2-b_2;z) \\
! 230: &=& 1
! 231: \end{eqnarray*}
! 232: where $e_2 = b_2-1$ and $a_1, a_2, e_2, e_2-a_2 \not\in {\bf Z}$. \\
! 233: (generalization of $\sin^2 x + \cos^2 x =1$.)
! 234:
! 235: \noindent
! 236: Project in progress: \\
! 237: We are trying to generate or verify type A formulas and type B formulas
! 238: for {\color{blue} GKZ hypergeometric systems}.
! 239:
! 240: \begin{tabular}{|c|c|c|}
! 241: \hline
! 242: & type A & type B \\ \hline
! 243: Algorithm & {\color{red} OK} (SST book) & in progress \\ \hline
! 244: Implementation & partially done & NO \\ \hline
! 245: \end{tabular}
! 246:
! 247: \noindent
! 248: Our ox servers
! 249: {\tt ox\_asir}, {\tt ox\_sm1}, {\tt ox\_tigers}, {\tt ox\_gnuplot},
! 250: {\tt ox\_mathematica}, {\tt OMproxy} {\tt ox\_m2}
! 251: are used to generate, verify and present formulas of type A
! 252: for GKZ hypergeometric systems.
! 253:
! 254: \end{document}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>