=================================================================== RCS file: /home/cvs/OpenXM/src/ox_math/documents/ox_math.tex,v retrieving revision 1.4 retrieving revision 1.8 diff -u -p -r1.4 -r1.8 --- OpenXM/src/ox_math/documents/ox_math.tex 1999/11/29 12:05:15 1.4 +++ OpenXM/src/ox_math/documents/ox_math.tex 2005/07/19 15:58:37 1.8 @@ -1,5 +1,5 @@ %#!platex -%% $OpenXM: OpenXM/src/ox_math/documents/ox_math.tex,v 1.3 1999/11/23 03:08:26 ohara Exp $ +%% $OpenXM: OpenXM/src/ox_math/documents/ox_math.tex,v 1.7 2002/04/17 01:09:23 takayama Exp $ \documentclass{jarticle} \title{Mathematica ¤Î Open XM ²½¤Ë¤Ä¤¤¤Æ @@ -7,26 +7,59 @@ } %\date{January 19, 1999} %\date{July 12, 1999} -\date{November 25, 1999} +\date{November 25, 1999\\ +(Revised July 20, 2005) +} \author{¾®¸¶¸ùǤ} +\def\oxmath{{\tt ox\_math}} + \begin{document} \maketitle -\section{Open Mathematica¤Î¹½À®} +\noindent +{\bf +Ãí°Õ (2002.04.17): +¤³¤Îʸ½ñ¤Ï, ¸Å¤¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¤â¤È¤Ëµ­½Ò¤·¤Æ¤¢¤ë¤Î¤Ç, +Îã¤Ï¤³¤Î¤Þ¤Þ¤Ç¤ÏÆ°ºî¤·¤Ê¤¤¤Î¤ÇÃí°Õ. +math2ox.texi ¤¬ºÇ¿·¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤¢¤ë. +°ìÈÖ¤ÎÊѹ¹ÅÀ¤Ï, {\tt OxStart} ¤¬ pid (ox process id) ¤òÌ᤹¤è¤¦¤Ë¤Ê¤ê, +{\tt OxParse} ¤Ê¤É¿¤¯¤Î´Ø¿ô¤¬, pid ¤ò°ú¿ô¤È¤·¤Æµá¤á¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤³¤È¤Ç +¤¢¤ë. +¤¿¤È¤¨¤Ð, ¤³¤Îʸ½ñ¤Î {\tt OxParse} ¤òÍѤ¤¤ëÎã¤Ï, ¼¡¤Î¤è¤¦¤ËÊѹ¹¤·¤Ê¤¤¤È +¤¤¤±¤Ê¤¤.} +\begin{verbatim} +Install["math2ox"] +pid = OxStart["ox_sm1"] +OxParse[pid,"(CMO_ZERO)"] +OxPopCMO[pid] +\end{verbatim} -Open Mathmatica ¥µ¡¼¥Ð¤ÏOpen XM ¥¯¥é¥¤¥¢¥ó¥È¤ª¤è¤Ómathematica ¥«¡¼¥Í¥ë¤È -ÄÌ¿®¤¹¤ë¡£Open Mathmatica ¥µ¡¼¥Ð¤Ïµ¯Æ°Ä¾¸å¤Ëmathematica ¥«¡¼¥Í¥ë¤òµ¯Æ°¤·¡¢ -mathematica ¥«¡¼¥Í¥ë¤È¶¨Ä´¤·¤ÆÆ°ºî¤¹¤ë¡£mathematica ¥«¡¼¥Í¥ë¤È¤Ï -MathLink ¥é¥¤¥Ö¥é¥ê¤òÍøÍѤ·¤ÆÄÌ¿®¤¹¤ë¡£Open Mathmatica ¥µ¡¼¥Ð¤ÏMathLink + +\section{²æ¡¹¤¬Ä󶡤¹¤ë¤â¤Î} + +²æ¡¹¤¬Ä󶡤¹¤ë¤Î¤ÏÆó¤Ä¤Î¥×¥í¥°¥é¥à¤È¤½¤Î¥½¡¼¥¹¤Ç¤¢¤ë¡£°ì¤ÄÌÜ¤Ï +\oxmath ¥×¥í¥°¥é¥à¤Ç¤¢¤ê¡¢¤³¤ì¤Ï OpenXM ¥µ¡¼¥Ð¤Î°ì¼ï¤Ç¤¢¤ë¡£Æó¤Ä +ÌÜ¤Ï {\tt math2ox} ¤Ç¤¢¤ê¡¢OpenXM ¥¯¥é¥¤¥¢¥ó¥È¤Ç¤¢¤ë¡£ + +Æ°ºî´Ä¶­¤Ï Solaris, Linux ¤ª¤è¤Ó Windows¡¢ÂоݤȤ·¤Æ¤¤¤ë Mathematica ¤Î +¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢3.0 ¡Á 4.2 ¤Þ¤Ç¤Ç¤¢¤ë¡£¥Ð¡¼¥¸¥ç¥ó 5.x ¤Ë¤Ä¤¤¤Æ¤Ï¡¢²æ¡¹¤¬½ê +Í­¤·¤Æ¤¤¤Ê¤¤¤¿¤áÄ´ºº¤·¤Æ¤¤¤Ê¤¤¡£ + +Windows ¾å¤Ç¤Ï \oxmath ¤Ï¡¢cygwin ¤Î¤â¤È¤ÇÆ°ºî¤¹¤ë¡£\oxmath ¤Î Windows +Âбþ¤ÏÆ£Ëܤµ¤ó¤Ë¤è¤ë(2002ǯ4·î)¡£¤¢¤ê¤¬¤È¤¦¡£ + +\section{Open Mathematica ¥µ¡¼¥Ð¤Î¹½À®} + +Open Mathmatica ¥µ¡¼¥Ð(\oxmath)¤ÏOpen XM ¥¯¥é¥¤¥¢¥ó¥È¤ª¤è¤Ó Mathematica +Kernel ¤ÈÄÌ¿®¤¹¤ë¡£\oxmath ¤Ïµ¯Æ°Ä¾¸å¤Ë Mathematica Kernel ¤òµ¯Æ°¤·¡¢ +Mathematica Kernel ¤È¶¨Ä´¤·¤ÆÆ°ºî¤¹¤ë¡£Mathematica Kernel ¤È¤Ï MathLink +¥é¥¤¥Ö¥é¥ê¤òÍøÍѤ·¤ÆÄÌ¿®¤¹¤ë¡£¤Ä¤Þ¤ê \oxmath ¤Ï MathLink ¤Î¥é¥Ã¥Ñ¤À¤È»×¤Ã¤Æ¤è¤¤¡£Open XM ¥¯¥é¥¤¥¢¥ó¥È¤È¤Î´Ö¤Ï¥½¥±¥Ã¥È¤òÍøÍѤ·¤ÆÄÌ -¿®¤¹¤ë¡£Open Mathmatica ¥µ¡¼¥Ð¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 3,4 ¤¬´û¤Ë¥ª¡¼¥× +¿®¤¹¤ë¡£\oxmath ¤Ï¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ 3,4 ¤¬´û¤Ë¥ª¡¼¥× ¥ó¤µ¤ì¤Æ¤¤¤ë¤È»×¤Ã¤Æ, 3 ¤«¤éÆɤ߹þ¤ß¡¢4 ¤Ë½ñ¤­½Ð¤¹¡£ -¤µ¤é¤Ë¡¢Open Mathmatica ¥µ¡¼¥Ð¤Ï¥³¥ó¥È¥í¡¼¥ë¥×¥í¥»¥¹¤«¤é¥·¥°¥Ê¥ë¤ò¼õ¤±¼è -¤ë¾ì¹ç¤¬¤¢¤ë¡£¥·¥°¥Ê¥ë¤ò¼õ¤±¼è¤Ã¤¿¾ì¹ç¤Ë¤Ï,Áê±þ¤ÎÆ°ºî¤¬É¬ÍפǤ¢¤ë¤¬¡¢¸½ -ºß¤Ï¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤. SIGUSR1 (SM\_control\_reset\_connection) ¤Ï·×»»¤¬Á´ -¤Æ½ª¤ï¤Ã¤Æ¤«¤éOX\_SYNC\_BALL ¤òÅꤲ¤ë¤Î¤Ç¡¢¼ÂºÝ¤Ë¤Ï°ÕÌ£¤¬¤Ê¤¤¡£ +¤µ¤é¤Ë \oxmath ¤Ë¤Ï·×»»ÃæÃǵ¡Ç½¤¬É¬ÍפǤ¢¤ë¤¬¡¢¤³¤Îµ¡Ç½¤Ï 2003ǯ¤Î¤Ï¤¸¤á¤Ë¼ÂÁõ¤µ¤ì¤¿¡£ \section{OX ¥¹¥¿¥Ã¥¯¥Þ¥·¥ó} ¥¹¥¿¥Ã¥¯¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï cmo ·¿¤ÎÊÑ¿ô¡¢¤¢¤ë¤¤¤Ï¤½¤ÎÇÉÀ¸¥¯¥é¥¹¤Ç¤¢¤ë. @@ -41,6 +74,76 @@ MathLink ¥é¥¤¥Ö¥é¥ê¤òÍøÍѤ·¤ÆÄÌ¿®¤¹¤ë¡£Open Mathmatica ¥µ¡¼¥Ð¤Î³Æ´Ø¿ô¤Ï cmo* ¤ò¼õ¤±¼è¤ê¡¢¥¿¥°¤ò¤ß¤Æ¼ÂºÝ¤Î¥¯¥é¥¹¤¬²¿¤Ç¤¢¤ë¤«¤ò ÃΤꡢưºî¤ò·èÄꤹ¤ë. +\section{MathLink ¥×¥í¥°¥é¥ß¥ó¥°¤Î´ðÁÃÃμ±} + +¤³¤³¤Ç¤Ï¡¢MathLink ¤Ë¤Ä¤¤¤Æ¤Î´ðÁÃŪ»ö¹à¤òÀâÌÀ¤¹¤ë¡£³µ¤Í¡¢Mathematica +Book~\cite{Wolfram-1996} ¤äµÜÃÏ~\cite{miyachi-1998} ¤Ê¤É¤ò»²¾È¤¹¤ì¤Ð¤è¤¤ +¤¬¡¢É¬¤º¤·¤â¤³¤ì¤é¤Î½ñÀÒ¤ËÌÀ³Î¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤(õ¤»¤Ð¸«¤Ä¤«¤ë +¤¬)¡£ + +¤Þ¤º MathLink ¤È¤Ï¡¢Wolfram ¤¬Ä󶡤¹¤ë¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ê¡¢Mathematica ¤Î¥Í¥Ã +¥È¥ï¡¼¥¯ÂбþÉôʬ¤ËÁêÅö¤¹¤ë¡£Mathematica Kernel ¤ÈÄÌ¿®¤¹¤ë¥×¥í¥°¥é¥à¤ò½ñ +¤³¤¦¤È¤¹¤ë¤Ê¤é¤Ð¡¢MathLink ¤òÍøÍѤ¹¤ëɬÍפ¬¤¢¤ë¡£MathLink ¤ÎÆâÉô¹½À®¤ÏÌÀ +¤é¤«¤Ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢{\bf ÂçÉôʬ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯Æ©²áŪ}¤Ç¤¢¤ë(Îã³°¤Ï¤¢¤ë)¡£ + +¤Þ¤º¡¢MathLink ¤ÎÄÌ¿®Ï©¤Ç¸ò´¹¤µ¤ì¤ë¥Ç¡¼¥¿¤¬²¿¤Ê¤Î¤«¡¢¤È¤¤¤¦¤³¤È¤òÍý²ò¤¹ +¤ëɬÍפ¬¤¢¤ë¡£Åú¤Ï{\bf Mathematica¤Î¼°}¤Ç¤¢¤ë¡£¤³¤ì¤Ï¼«ÌÀ¤Ç¤Ï¤Ê¤¤¡£ +¼¡¤Î¤è¤¦¤Ê¼°¤¬¤½¤ÎÎã¤Ç¤¢¤ë¡£ +\begin{verbatim} + EvaluatePacket[Sin[\$VersionNumber]] + ReturnPacket[Sin[x]] + InputNamePacket["In[1]:= "] + MenuPacket[1,"Interrupt> "] +\end{verbatim} +¤³¤Î¤è¤¦¤Ê *Packet[] ¤ò \cite{Wolfram-1996}¤Ç¤Ï¥Ñ¥±¥Ã¥È¤È¸Æ¤ó¤Ç¤¤¤ë. +MathLink ¤òÍѤ¤¤Æ¡¢³Î¼Â¤Ê¥×¥í¥°¥é¥ß¥ó¥°¤ò¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤ì¤é¤Î¥Ñ¥±¥Ã¥È +¤òÀµ¤·¤¯°·¤¦É¬Íפ¬¤¢¤ë¡£ + +¤µ¤Æ¡¢Mathematica Kernel ¤Îµ¯Æ°¤ª¤è¤ÓÄÌ¿®Ï©¤Î³ÎΩ¤Ë¤Ä¤¤¤Æ¤Ï¾Êά¤¹¤ë¡£ +¤¤¤Ã¤¿¤ó¡¢ÄÌ¿®Ï©¤¬³ÎΩ¤µ¤ì¤¿¤é¡¢ +\begin{enumerate} +\item Mathematica Kernel ¤Ë¼°¤òÁ÷¤ë¡£ +\item Mathematica Kernel ¤«¤é¼°¤ò¼õ¤±¼è¤ë¡£ +\end{enumerate} +¤ò·«¤êÊÖ¤¹¤Î¤¬ MathLink ¤Ç¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤¢¤ë¡£ + +\oxmath ¤Ï Mathematica ¤È°Ê²¼¤Î¤è¤¦¤Ê°ÕÌ£¤Ç{\bf ʸ»úÎó¥Ù¡¼¥¹}¤ÇÄÌ¿®¤·¤Æ +¤¤¤ë¡£¤Þ¤º Mathematica Kernel ¤Ëɾ²Á¤µ¤»¤¿¤¤¼°¤¬¡¢C ¸À¸ì¤Îʸ»úÎó¤ÇÍ¿¤¨¤é +¤ì¤Æ¤¤¤ë¤È¤·¤Æ¡¢link ¤Ç»Ø¤·¼¨¤¹Mathematica Kernel ¤Ë +\begin{verbatim} +int ml_evaluateStringByLocalParser(char *str) +{ + MLPutFunction(link, "EvaluatePacket", 1); + MLPutFunction(link, "ToExpression", 1); + MLPutString(link, str); + MLEndPacket(link); +} +\end{verbatim} +¤È¤·¤ÆÁ÷¿®¤¹¤ë¡£¥Ñ¥±¥Ã¥È¤Ï¡¢ +EvaluatePacket[ToExpression[{\it str}]] ¤Ç¤¢¤ë¡£ + +ɾ²Á¤µ¤ì¤¿·ë²Ì¤òÇÛÎó str ¤Ë³ÊǼ¤¹¤ë¤Ë¤Ï¡¢Ã±½ã¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +\begin{verbatim} +int receive_sample(char str[]) +{ + while (MLNextPacket(link) != RETURNPKT) + MLNewPacket(link); + switch(MLGetNext(link)) { + MLTKSTR: + MLGetString(link, &str); + ... + MLTKINT: + ... + } + MLNewPacket(link); +} +\end{verbatim} +¤³¤ÎÎã¤Ç¤Ï ReturnPacket[] °Ê³°¤ò̵»ë¤·¤Æ¤¤¤ë¤¬¡¢¼ÂºÝ¤Ë¤Ï¤³¤ó¤Ê¤Ëñ½ã¤Ë¤Ï +½ñ¤±¤Ê¤¤¡£\oxmath ¤Î¼ÂÁõ¤Ç¤Ï¡¢mlo.c ¤Î +ml\_next\_packet(), ml\_new\_packet(), ml\_read\_packet(), +ml\_read\_returnpacket(), ml\_read\_menupacket(), ml\_read\_textpacket() +¤Ê¤É¤ò¸«¤Æ¤Û¤·¤¤¡£ + \section{Mathematica ¤È¤ÎÄÌ¿®(MathLink) ¤Ë¤Ä¤¤¤Æ} CMO ¤Ï ¼¡¤Î¤è¤¦¤ËÊÑ´¹¤µ¤ì¤Æ¤«¤é, MathLink ¤òÄ̤·¤ÆÁ÷¤é¤ì¤ë. @@ -126,27 +229,69 @@ Mathematica ¤«¤é¼õ¤±¼è¤Ã¤¿¥Ç¡¼¥¿¤Ï´ðËÜŪ¤Ë CMO\_STRING ¤Þ¤À¡¢¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¤¬¡¢Â¿¹à¼°(CMO\_???\_PORINOMIAL)¤Î°·¤¤¤¬Æñ¤·¤¤¡£ \section{¸Ä¡¹¤Î¥¹¥¿¥Ã¥¯¥Þ¥·¥óÌ¿Îá¤Î¼ÂÁõ} -¸½ºß¡¢¼ÂÁõ¤·¤Æ¤¤¤ë¤Î¤Ï + +¸½ºß¡¢¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï SM\_popCMO, SM\_popString, SM\_pops, SM\_executeFunction, SM\_executeStringByLocalParser, SM\_mathcap, SM\_setMathcap(¼õ¤±¼è¤ë¤À¤± ¤Ç²¿¤â¤·¤Ê¤¤)¤Ç¤¢¤ë¡£ +\section{\oxmath ¤Ø¤Î·×»»ÃæÃǵ¡Ç½¤Î¼ÂÁõ} + +\noindent +{\bf Ãí°Õ: {\tt ox\_math\_interruption.tex} +¤Ë Risa/Asir Conference (2003) ¤Ç¤Î¹Ö±é¸¶¹Æ¤¬¤¢¤ë.} + +OpenXM ¥×¥í¥È¥³¥ë¤Ï¡¢¥¨¥ó¥¸¥ó¤ËÂФ·¤Æ¡¢·×»»ÃæÃǵ¡Ç½¤òÍ׵᤹¤ë¡£\oxmath +¤Î¤è¤¦¤Ê wrapper ¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤½¤Î¤è¤¦¤Êµ¡Ç½¤ò¼ÂÁõ¤¹¤ë¤Î¤Ï°ìÈ̤ˤÏÆñ +¤·¤¤¤¬¡¢MathLink ¤Ë¤Ï Mathematica Book~\cite{Wolfram-1996} ¤Ë½ñ¤«¤ì¤Æ¤¤ +¤Ê¤¤µ¡Ç½¤¬¤¢¤ê(\cite{MathSource-Google1}, \cite{MathSource-Google2}, +\cite{Math-Output1})¡¢¤½¤Î¤Ò¤È¤Ä¤òÍѤ¤¤Æ¡¢\oxmath ¤Ë·×»»ÃæÃǵ¡Ç½¤ò¼ÂÁõ¤· +¤¿¡£¤³¤ÎÀá¤Ç¤Ï¡¢¤½¤Î¼ÂÁõ¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£ + +Mathematica Kernel ¤ËÂФ¹¤ë³ä¤ê¹þ¤ß¤Ï¡¢ +\begin{enumerate} +\item MLPutMessage ¤Ç Mathematica Kernel ¤Ë MLInterruptMessage ¤òÁ÷¤ë¡£ +\item ÄÌ¿®Ï©¤Î¸å»ÏËö¤ò¹Ô¤¤¡¢ºÇ½ªÅª¤Ë ReturnPacket[\$Aborted] ¤ò¼õ¤±¼è¤ë¡£ +\end{enumerate} +¤³¤È¤Ç¤Ê¤µ¤ì¤ë¡£ +MLPutMessage ¤Ï MathLink ¤ÎÈó¸ø³«´Ø¿ô¤Ç¥Í¥Ã¥È¥ï¡¼¥¯Æ©²áÀ­¤Ï¤Ê¤¤¡£ +Unix ¤È Windows ¤Ç¤Ï°Û¤Ê¤ë¤¬¡¢Unix ¤Î¾ì¹ç¡¢MLInterruptMessage ¤Î¼ÂÂÎ¤Ï +SIGINT ¤Ç¤¢¤ë¡£ +ÄÌ¿®Ï©¤Î¸å»ÏËö¤Ë¤Ï¡¢{\bf Mathematica Kernel ¤Î¥Ð¡¼¥¸¥ç¥ó°Í¸À­¤¬¤¢¤ë}¤Î¤Ç¡¢ +¤½¤ì¤ò²óÈò¤¹¤ë¤È¡¢·ë¶É¡¢¼¡¤Î¼ê½ç¤Ë¤Ê¤ë¡£ +\begin{enumerate} +\item MLPutMessage(link, MLInterruptMessage) +\item MenuPacket[1,"Interrupt> "] ¤ò¼õ¤±¼è¤ì¤Ð·×»»¤¬ÃæÃǤµ¤ì¤Æ¤¤¤ë +\item MLPutString(link, "$\backslash$n") +\item MenuPacket[0,"Interrupt> "] ¤ò¼õ¤±¼è¤ë +\item MLPutString(link, "a") +\item TextPacket["..."] ¤ò¼õ¤±¼è¤ë +\item EvaluatePacket[0] ¤òÁ÷¤Ã¤Æ¡¢ReturnPacket[...] ¤ò¤Õ¤¿¤Ä¼õ¤±¼è¤ë¡£ +ºÇ½é¤Î¤â¤Î¤¬ ReturnPacket[\$Aborted] ¤Ç¤¢¤ë¡£ +\end{enumerate} + +ºÇ¸å¤Î¼ê½ç¤òÀâÌÀ¤¹¤ë¡£ +¤³¤³¤Ç¡¢ReturnPacket[\$Aborted] ¤¬ÁÇľ¤ËÊ֤äƤ¯¤ì¤Ð¤¤¤¤¤Î¤Ç¤¢¤ë¤¬¡¢ +¥Ð¡¼¥¸¥ç¥ó 3.x ¤Ç¤ÏÊ֤äƤ¯¤ë¤Î¤Ë¡¢¥Ð¡¼¥¸¥ç¥ó4.x¤Ç¤Ï¡¢²¿¸Î¤«¡¢ +Ê֤äƤ³¤º¡¢¼¡¤Î·×»»¤ò¹Ô¤¦¤È¤­¡¢¤Õ¤¿¤Ä¤Þ¤È¤á¤ÆÊ֤äƤ¯¤ë¡£ +¤è¤Ã¤Æ¡¢¥À¥ß¡¼¤ËEvaluatePacket[0] ¤òÁ÷¤ë¤Î¤Ç¤¢¤ë¡£ + \section{Mathematica ¤ò OX ¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ë} -OpenXM ¥¯¥é¥¤¥¢¥ó¥È¤Ï Mathematica ¤Î³°Éô¥×¥í¥°¥é¥à(math2ox)¤Î·Á¤Ç -¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£ -¤¹¤Ê¤ï¤Á¡¢Mathematica -- math2ox ¤Î´Ö¤Ï MathLink ¥×¥í¥È¥³¥ë¤Ç¡¢ -math2ox -- OpenXM ¥µ¡¼¥Ð¤Î´Ö¤Ï OpenXM ¥×¥í¥È¥³¥ë¤ÇÄÌ¿®¤·¡¢ -math2ox ¤¬Å¬Àڤ˾ðÊó¤òÊÑ´¹¤·¤Ê¤¬¤é¤ä¤ê¤È¤ê¤¹¤ë¡£ -¤½¤Î°ÕÌ£¤Ç wrapper ¤Î°ì¼ï¤Ç¤¢¤ë¤È¤â¸À¤¨¤ë¡£ +OpenXM ¥¯¥é¥¤¥¢¥ó¥È¤Ï Mathematica ¤Î³°Éô¥×¥í¥°¥é¥à({\tt math2ox}) ¤Î·Á¤Ç +¼Â¸½¤µ¤ì¤Æ¤¤¤ë¡£¤¹¤Ê¤ï¤Á¡¢Mathematica ¤È math2ox ¤Î´Ö¤Ï MathLink ¥×¥í¥È +¥³¥ë¤Ç¡¢math2ox ¤È OpenXM ¥µ¡¼¥Ð¤Î´Ö¤Ï OpenXM ¥×¥í¥È¥³¥ë¤ÇÄÌ¿®¤·¡¢ +math2ox ¤¬Å¬Àڤ˾ðÊó¤òÊÑ´¹¤·¤Ê¤¬¤é¤ä¤ê¤È¤ê¤¹¤ë¡£¤½¤Î°ÕÌ£¤Ç wrapper ¤Î°ì +¼ï¤Ç¤¢¤ë¤È¤â¸À¤¨¤ë¡£ + ÍøÍѤ¹¤ë¤Ë¤Ï¡¢ºÇ½é¤Ë \begin{verbatim} In[1]:= Install["math2ox"] \end{verbatim} ¤È¤·¤Æ¡¢math2ox ¤ò¥í¡¼¥É¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ Mathematica ¤Ë¿·¤¿¤ËÄêµÁ¤µ¤ì¤ë¥³¥Þ¥ó¥É¤Ï¡¢ -{\tt OxStart[s\_String], OxStartInsecure[s\_String], -OxExecute[s\_String], OxParse[s\_String], OxReceive[], +{\tt OxStart[s\_String], OxStartInsecure[s\_String, p\_Integer, q\_Integer], +OxExecuteString[s\_String], OxParse[s\_String], OxGet[], OxPopCMO[], OxPopString[], OxClose[], OxReset[]} ¤Î9¤Ä¤Ç¤¢¤ë¡£ @@ -179,13 +324,13 @@ OX ¥á¥Ã¥»¡¼¥¸¤¬Á÷¤é¤ì¤Æ¤¯¤ë¾ì¹ç¤¬¤¢¤ë¤¬¡¢OxParse[] ¤òÍ ¤³¤Î¥á¥Ã¥»¡¼¥¸¤Ï¼«Æ°Åª¤Ë¤Ï¼õ¿®¤·¤Ê¤¤(¸½ºß¤Î»ÅÍͤǤÏ)¡£¤·¤¿¤¬¤Ã¤ÆÌÀ¼¨Åª¤Ë ¼õ¿®¤¹¤ëɬÍפ¬¤¢¤ë¡£¤½¤Î¤¿¤á¤Ë¤Ï \begin{verbatim} -In[5] := OxReceive[] +In[5] := OxGet[] \end{verbatim} ¤È¤¹¤ë¤À¤±¤Ç¤è¤¤¡£Ê֤äƤ¯¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï CMO ¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£ \begin{verbatim} In[6] := OxPopCMO[] \end{verbatim} -¤òÍѤ¤¤ë¾ì¹ç¤Ë¤Ï¤â¤Á¤í¤ó {\tt OxReceive[]} ¤ò¸Æ¤Ó½Ð¤¹É¬ÍפϤʤ¤¡£ +¤òÍѤ¤¤ë¾ì¹ç¤Ë¤Ï¤â¤Á¤í¤ó {\tt OxGet[]} ¤ò¸Æ¤Ó½Ð¤¹É¬ÍפϤʤ¤¡£ ·×»»¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï {\tt OxExecute[]} (SM\_executeStringByLocalParser) ¤«¡¢Å¬ÀÚ¤Ê OX ¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë¤³¤È¡£ @@ -223,7 +368,7 @@ typedef unsigned long int mp_limb_t; \bibitem{Openxxx-1998} ÌîϤÀµ¹Ô, ¹â»³¿®µ£. {Open XM ¤ÎÀ߷פȼÂÁõ --- Open message eXchange protocol for Mathematics}, -1999/11/22 +November 22, 1999, Revised March 4, 2005. \bibitem{Ohara-Takayama-Noro-1999} ¾®¸¶¸ùǤ, ¹â»³¿®µ£, ÌîϤÀµ¹Ô. {Open asir ÆþÌç}, 1999, ¿ô¼°½èÍý, Vol 7, No 2, 2--17. (ISBN4-87243-086-7, SEG ½ÐÈÇ, Tokyo). @@ -235,12 +380,20 @@ typedef unsigned long int mp_limb_t; Stephen Wolfram. {The Mathematica Book}, Third edition, Wolfram Media/Cambridge University Press, 1996. - \bibitem{miyachi-1998} µÜÃÏÎÏ. {Mathematica ¤Ë¤è¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°}, ´äÇÈ¥³¥ó¥Ô¥å¡¼¥¿¥µ¥¤¥¨¥ó¥¹, ´äÇȽñŹ, 1998. +\bibitem{MathSource-Google1} +Todd Gayley. +[mg17015] in MathArchive, +1999 April. +\bibitem{MathSource-Google2} +ÀΤΠMathLink ¤Ë¤¢¤Ã¤¿ MLSignal ¤Î²òÀâ. +(°ÊÁ°¡¢Google ¤Î¥­¥ã¥Ã¥·¥å¤Ë¤¢¤Ã¤¿¤¬¡¢¤â¤¦¤Ê¤¤) +\bibitem{Math-Output1} +mathlink.h, libMLa ¤Î¥·¥ó¥Ü¥ëɽ, mprep ¤ÎÀ¸À®¤¹¤ë¥½¡¼¥¹. \end{thebibliography} \end{document}