[BACK]Return to math2ox.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_math / documents

Diff for /OpenXM/src/ox_math/documents/math2ox.texi between version 1.4 and 1.7

version 1.4, 2000/03/14 05:46:09 version 1.7, 2000/03/15 08:22:20
Line 1 
Line 1 
 %% $OpenXM: OpenXM/src/ox_math/documents/math2ox.texi,v 1.3 2000/03/14 02:21:40 ohara Exp $  %% $OpenXM: OpenXM/src/ox_math/documents/math2ox.texi,v 1.6 2000/03/14 14:59:39 ohara Exp $
   
 \input texinfo  \input texinfo
 @iftex  @iftex
Line 34 
Line 34 
 @node Top,, (dir), (dir)  @node Top,, (dir), (dir)
   
 @menu  @menu
   * Starting OX servers::
 * Mathematica Client Functions::  * Mathematica Client Functions::
 * Sample Programs::  * Sample Programs::
   * Example::
   * References::
 @end menu  @end menu
   
 @node Starting OX servers,,, Top  @node Starting OX servers,,, Top
   
 @chapter Starting OX servers  @chapter Starting OX servers
   
   @node Loading an OX Client on Mathematica,,, Starting OX servers
   @section Loading an OX Client on Mathematica
   
   The program @code{math2ox} is an external module for Mathematica
   to call OpenXM servers.
   The @code{math2ox} communicates with OpenXM servers by the OpenXM protocol
   and communicates with Mathematica by MathLink.
   
   In order to execute @code{math2ox}, you need to type as follows:
   @example
   In[1]:= Install["math2ox"]
   @end example
   
   We recommend loading a Mathematica program @code{oxclient.m} instead of
   calling @code{Install[]} directly:
   @example
   In[1] := <<oxclient.m
   @end example
   
 @node Starting OX servers on the localhost,,, Starting OX servers  @node Starting OX servers on the localhost,,, Starting OX servers
 @section Starting OX servers on the localhost  @section Starting OX servers on the localhost
   
Line 70  String
Line 91  String
 @end itemize  @end itemize
   
 @example  @example
 In[1]:= Install["math2ox"]  In[1]:= pid = OxStart["ox_sm1"]
 In[2]:= pid = OxStart["ox_sm1"]  
 @end example  @end example
   
 In this example, @code{ox_sm1} is started on the local machine.  In this example, @code{ox_sm1} is started on the local machine.
   
   
   
   
 @node Starting OX servers on a remote machine,,, Top  @node Starting OX servers on a remote machine,,, Top
 @section Starting OX servers on a remote machine  @section Starting OX servers on a remote machine
   
Line 94  that is, you need to be using @code{ssh-agent} before 
Line 111  that is, you need to be using @code{ssh-agent} before 
 @code{OxStartRemoteSSH[]}.  @code{OxStartRemoteSSH[]}.
 Then there will be no check of password.  Then there will be no check of password.
   
   @node Starting the X Window System with ssh-agent,,, Starting OX servers on a remote machine
   @subsection Starting the X Window System with ssh-agent
   
   If you use the @code{startx} command to boot the X Window System, then
   we recommend you replace the command by @code{ssh-agent startx}.
   @example
   bash$ ssh-agent startx
   @end example
   If you use @code{xdm} program to login your machine,
   then your @code{.xsession} script needs to contain the followings:
   @example
   exec ssh-agent .xinitrc
   @end example
   @noindent
   where @code{.xinitrc} is executable.
   
   After booting the X Window System, you need to type on suitable terminal
   emulator as follows:
   @example
   bash$ ssh-add
   @end example
   @noindent
   and input your passphrase.
   
   See ssh(1), ssh-agent(1), ssh-add(1), and ssh-keygen(1) for detail.
   
 @c  Description of OxStartRemoteSSH  @c  Description of OxStartRemoteSSH
 @menu  @menu
 * OxStartRemoteSSH::  * OxStartRemoteSSH::
Line 123  We note that the @code{OxStartRemoteSSH[]} is an exper
Line 166  We note that the @code{OxStartRemoteSSH[]} is an exper
 @end itemize  @end itemize
   
 @example  @example
 In[2]:= pid = OxStartRemoteSSH["ox_sm1", "remotehost"]  In[1]:= pid = OxStartRemoteSSH["ox_sm1", "remotehost"]
 @end example  @end example
   
 In this example, @code{ox_sm1} is started on the remote machine @code{remotehost}.  In this example, @code{ox_sm1} is started on the remote machine @code{remotehost}.
   
 @node Mathematica Client Functions,,, Top  @node Mathematica Client Functions,,, Top
   
 @chapter Mathematica Client Functions  @chapter Mathematica Client Functions
   
 The program @code{math2ox} is an external module for Mathematica  
 to call OpenXM servers.  
 The @code{math2ox} communicates with OpenXM servers by the OpenXM protocol  
 and communicates with Mathematica by MathLink.  
   
 @c  Description of OxStart  @c  Description of OxStart
 @menu  @menu
 * OxStart::  * OxStart::
Line 162  String
Line 199  String
 @end itemize  @end itemize
   
 @example  @example
 In[1]:= Install["math2ox"]  In[1]:= pid = OxStart["ox_sm1"]
 In[2]:= pid = OxStart["ox_sm1"]  
 @end example  @end example
   
 In this example, @code{ox_sm1} is started on the local machine.  In this example, @code{ox_sm1} is started on the local machine.
Line 340  In[5] := cmo = OxGet[pid]
Line 376  In[5] := cmo = OxGet[pid]
 @node Sample Programs,,, Top  @node Sample Programs,,, Top
 @chapter Sample Programs  @chapter Sample Programs
   
 @tex  @enumerate
 \noindent  @item
 1.  @code{OpenXM/lib/math/oxclient.m} is a Mathematica program
 {\tt OpenXM/lib/math/primadec.m} is a Mathematica program  to load the @code{math2ox} and to define some Mathematica
   functions for @code{primadec.m} and @code{beta.m}.
   
   @item
   @code{OpenXM/lib/math/primadec.m} is a Mathematica program
 to make primary ideal decompositions by calling  to make primary ideal decompositions by calling
 {\tt ox\_asir}.  @code{ox_asir}.
 As to usages, see comments in this file.  As to usages, see comments in this file.
   
 \noindent 2.  @item
 {\tt OpenXM/lib/math/beta.m} is a Mathematica program  @code{OpenXM/lib/math/beta.m} is a Mathematica program
 to get beta-nbc bases by calling {\tt ox\_asir}.  to get beta-nbc bases by calling @code{ox_asir}.
 @end tex  @end enumerate
   
   @node Example,,, Top
   @chapter Example
   
   The @code{math2ox} has the following commands:
   
   @code{OxStart[],
   OxStartInsecure[],
   OxStartRemoteSSH[],
   OxExecuteString[],
   OxSendMessage[],
   OxGet[],
   OxPopCMO[],
   OxPopString[],
   OxClose[],
   OxReset[]}.
   
   First, let us load the math2ox.
   @example
   In[1]:= <<oxclient.m
   @end example
   
   Second, let us open a connection with an OX server.
   For example, if we want to call the @code{ox_sm1} (the kan/sm1 server), then
   @example
   In[2] := pid = OxStart["ox_sm1"]
   @end example
   @noindent
   where we have the connection of reverse mode.  The @code{OxStart}
   function automatically invoke @code{ox_sm1} on the localhost.
   If you need to connect remote OX servers, then you can use reverse mode.
   @example
   In[2] := pid = OxStartRemoteSSH["ox_sm1", "orange.math.kobe-u.ac.jp"]
   @end example
   
   @c  Remarks: old version.
   @c  @example
   @c  In[2] := pid = OxStartInsecure["water.s.kanazawa-u.ac.jp", 1300, 1400]
   @c  @end example
   @c  The mode is not secured but you can crypt data stream by using ssh
   @c  (Secure SHell).
   @c  @example
   @c  In[3] := Run["ssh -f water ox -insecure -ox ox_sm1 -host water"]
   @c  @end example
   
   Third, let us send an OX message to the OX server.
   We can send an OX message written in OX/CMO expressions.
   @example
   In[4] := OxSendMessage[pid, "(CMO_LIST, (CMO_STRING, "hello world"), (CMO_ZERO))"]
   @end example
   @noindent
   If the expression contains syntax errors, then nothing is sent.
   
   If you need to get the object on the top of the stack of an OX server
   @code{pid}, then you can call the following function:
   @example
   In[5] := cmo = OxPopCMO[pid]
   @end example
   
   The function @code{OxPopCMO} above is equivalent to
   the following two command:
   @example
   In[5] := OxSendMessage[pid, "(OX_COMMAND, (SM_popCMO))"]
   In[6] := cmo = OxGet[pid]
   @end example
   
   Remarks:
   if @code{SM_popCMO} is sent by the @code{OxSendMessage[]} function, then
   the OX stack machine returns the top of the stack to the @code{math2ox}.
   Then, in order to receive the message, we need to call the
   @code{OxGet[]} function always after executing @code{OxSendMessage[]}.
   That is @code{OxGet} flushes the communication route to @code{pid}.  If
   we never use the @code{OxSendMessage} function, then we do not need to
   call the @code{OxGet[]}.
   
   Fourth, if we send a command expressed in the local language of the OX
   server, then we need to call the @code{OxExecuteString[]} function.
   
   Last, let us close the connection.
   @example
   In[7] := OxClose[pid]
   @end example
   
   @c @node Bibliography,,, Top
   @c @unnumbered Bibliography
   @node References,,, Top
   @unnumbered References
   
   @enumerate
   @item
   M. Noro, N. Takayama:
   Design and Implementation of OpenXM, 1996, 1997, 1998, 1999, 2000.
   
   @item
   @code{http://www.math.kobe-u.ac.jp/OpenXM/}
   
   @item
   M. Noro, K. Ohara, N. Takayama:
   {Introduction to Open Asir}, 1999, Suusiki Shori, Vol 7, No 2,
   2--17. (ISBN4-87243-086-7, SEG Publishing, Tokyo). (in Japanese)
   
   @item
   Stephen Wolfram:
   {The Mathematica Book}, Third edition,
   Wolfram Media/Cambridge University Press, 1996.
   
   @item
   T. Miyachi:
   {Mathematica Network Programming},
   Iwanami Shoten Publishers, 1998. (in Japanese)
   @end enumerate
   
 @node Index,,, Top  @node Index,,, Top
 @unnumbered Index  @unnumbered Index

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.7

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