% $OpenXM: OpenXM/doc/issac2000/heterotic-network.tex,v 1.13 2000/01/17 08:50:56 noro Exp $ \section{Applications} \subsection{Heterogeneous Servers} \def\pd#1{ \partial_{#1} } By using OpenXM, we can treat OpenXM servers essentially like a subroutine. Since OpenXM provides a universal stack machine which does not depend each servers, it is relatively easy to install new servers. We can build a new computer math system by assembling different OpenXM servers. It is similar to building a toy house by LEGO blocks. We will see two examples of custom-made systems built by OpenXM servers. \subsubsection{Computation of annihilating ideals by kan/sm1 and ox\_asir} Let $D = {\bf Q} \langle x_1, \ldots, x_n , \pd{1}, \ldots, \pd{n} \rangle$ be the ring of differential operators. For a given polynomial $ f \in {\bf Q}[x_1, \ldots, x_n] $, the annihilating ideal of $f^{-1}$ is defined as $$ {\rm Ann}\, f^{-1} = \{ \ell \in D \,|\, \ell \bullet f^{-1} = 0 \}. $$ Here, $\bullet$ denotes the action of $D$ to functions. The annihilating ideal can be regarded as the maximal differential equations for the function $f^{-1}$. An algorithm to determine generators of the annihilating ideal was given by Oaku (see, e.g., \cite[5.3]{sst-book}). His algorithm reduces the problem to computations of Gr\"obner bases in $D$ and to find the minimal integral root of a polynomial. This algorithm (the function {\tt annfs}) is implemented by kan/sm1 \cite{kan}, for Gr\"obner basis computation in $D$, and {\tt ox\_asir}, to factorize polynomials to find the integral roots. These two OpenXM compliant systems are integrated by the OpenXM protocol. For example, the following is a sm1 session to find the annihilating ideal for $f = x^3 - y^2 z^2$. \begin{verbatim} sm1>[(x^3-y^2 z^2) (x,y,z)] annfs :: Starting ox_asir server. Byte order for control process is network byte order. Byte order for engine process is network byte order. [[-y*Dy+z*Dz, 2*x*Dx+3*y*Dy+6, -2*y*z^2*Dx-3*x^2*Dy, -2*y^2*z*Dx-3*x^2*Dz, -2*z^3*Dx*Dz-3*x^2*Dy^2-2*z^2*Dx], [-1,-139968*s^7-1119744*s^6-3802464*s^5-7107264*s^4 -7898796*s^3-5220720*s^2-1900500*s-294000]] \end{verbatim} The last polynomial is factored as $-12(s+1)(3s+5)(3s+4)(6s+5)(6s+7)$ and the minimal integral root is $-1$ as shown in the output. Similarly, an algorithm to stratify singularity \cite{oaku-advance} is implemented by kan/sm1 \cite{kan}, for Gr\"obner basis computation in $D$, and {\tt ox\_asir}, for primary ideal decompositions. \subsubsection{A Course on Solving Algebraic Equations} Risa/Asir \cite{asir} is a general computer algebra system which can be used for Gr\"obner basis computations for zero dimensional ideal with ${\bf Q}$ coefficients. However, it is not good at graphical presentations and numerical methods. We integrated Risa/Asir, ox\_phc (based on PHC pack by Verschelde \cite{phc} for the polyhedral homotopy method) and ox\_gnuplot (GNUPLOT) servers to teach a course on solving algebraic equations. This course was presented with the text book \cite{CLO}, which discusses on the Gr\"obner basis method and the polyhedral homotopy method to solve systems of algebraic equations. We taught the course with a unified environment controlled by the Asir user language, which is similar to C. The following is an Asir session to solve algebraic equations by calling the PHC pack (Figure \ref{katsura} is the output of {\tt [292]}): \begin{verbatim} [287] phc(katsura(7)); The detailed output is in the file tmp.output.* The answer is in the variable Phc. 0 [290] B=map(first,Phc)$ [291] gnuplot_plotDots([],0)$ [292] gnuplot_plotDots(B,0)$ \end{verbatim} \begin{figure}[htbp] \epsfxsize=8.5cm \epsffile{katsura7.ps} \caption{The first components of the solutions to the system of algebraic equations Katsura 7.} \label{katsura} \end{figure}