version 1.3, 1999/11/23 03:08:26 |
version 1.4, 1999/11/29 12:05:15 |
|
|
%#!platex |
%#!platex |
%% $OpenXM: OpenXM/src/ox_math/documents/ox_math.tex,v 1.2 1999/11/02 06:12:00 ohara Exp $ |
%% $OpenXM: OpenXM/src/ox_math/documents/ox_math.tex,v 1.3 1999/11/23 03:08:26 ohara Exp $ |
|
|
\documentclass{jarticle} |
\documentclass{jarticle} |
\title{Mathematica の Open XM 化について |
\title{Mathematica の Open XM 化について |
% \\ {\small --- Open Mathematica サーバの内部構成 ---} |
% \\ {\small --- Open Mathematica サーバの内部構成 ---} |
} |
} |
%\date{January 19, 1999} |
%\date{January 19, 1999} |
\date{July 12, 1999} |
%\date{July 12, 1999} |
|
\date{November 25, 1999} |
\author{小原功任} |
\author{小原功任} |
|
|
\begin{document} |
\begin{document} |
Line 47 CMO は 次のように変換されてから, MathLink を通して送ら |
|
Line 48 CMO は 次のように変換されてから, MathLink を通して送ら |
|
\begin{enumerate} |
\begin{enumerate} |
\item CMO\_INT32 は MLTKINT (多倍長整数型). |
\item CMO\_INT32 は MLTKINT (多倍長整数型). |
\item CMO\_STRING は MLTKSTR (文字列型). |
\item CMO\_STRING は MLTKSTR (文字列型). |
|
\item CMO\_LIST は MLTKFUNC (関数型). |
\item その他のタイプの CMO は ToExpression[文字列] として送る. |
\item その他のタイプの CMO は ToExpression[文字列] として送る. |
\end{enumerate} |
\end{enumerate} |
|
|
|
|
\] |
\] |
という評価が行われ, 文字列データから整数が復元される. |
という評価が行われ, 文字列データから整数が復元される. |
|
|
逆に, Mathematica から送られた整数データは, |
逆に, Mathematica から送られた整数データは, マシン整数の範囲内であれば, |
マシン整数の範囲内であれば, int として |
int として取得可能(MLGetInteger を使う)であるが, 受け取る前に int に収ま |
取得可能(MLGetInteger を使う)であるが, |
るか否かを知ることはできない. int に収まらない場合、データが切り捨てられ |
受け取る前に int に収まるか否かを知ることはできない. |
てしまうので注意が必要である. また, 直接 CMO\_ZZ として取得することも不 |
また, 直接 CMO\_ZZ として取得することも不可能である. |
可能である. (MathLink 上でどのような形式でデータ交換されているのかの情 |
(MathLink 上でどのような形式でデータ交換されているのかの |
報は手元にある資料からは得られなかった) |
情報は手元にある資料からは得られなかった) |
|
|
|
しかしながら, たとえ Mathematica 側から整数データが送られていたとしても, |
しかしながら, たとえ Mathematica 側から整数データが送られていたとしても, |
そのデータを文字列に変換して受け取ることは MathLink の機構上可能である. |
そのデータを文字列に変換して受け取ることは MathLink の機構上可能である. |
|
|
} |
} |
\end{verbatim} |
\end{verbatim} |
|
|
つまり、Mathematica から整数データを文字列として受け取り、 |
つまり、Mathematica から整数データを文字列として受け取り、その文字列を |
その文字列を OX サーバ側で CMO\_ZZ に直している。 |
OX サーバ側で CMO\_ZZ に直している。 |
|
|
基本的に MathLink では全てのデータを文字列で受け取るしか方法はない。どの |
基本的に MathLink では全てのデータを文字列で受け取るしか方法はない。どの |
ような種類のデータであるかは受け取る前に知ることはできる。データの型は、 |
ような種類のデータであるかは受け取る前に知ることはできる。データの型は、 |
Line 221 typedef unsigned long int mp_limb_t; |
|
Line 222 typedef unsigned long int mp_limb_t; |
|
\begin{thebibliography}{99} |
\begin{thebibliography}{99} |
\bibitem{Openxxx-1998} |
\bibitem{Openxxx-1998} |
野呂正行, 高山信毅. |
野呂正行, 高山信毅. |
{Open xxx の設計と実装, xxx = asir,kan}, 1998/10/11 |
{Open XM の設計と実装 --- Open message eXchange protocol for Mathematics}, |
|
1999/11/22 |
\bibitem{Ohara-Takayama-Noro-1999} |
\bibitem{Ohara-Takayama-Noro-1999} |
小原功任, 高山信毅, 野呂正行. |
小原功任, 高山信毅, 野呂正行. |
{Open asir 入門}. |
{Open asir 入門}, 1999, 数式処理, Vol 7, No 2, 2--17. (ISBN4-87243-086-7, SEG 出版, Tokyo). |
\bibitem{Wolfram-1992} |
\bibitem{Wolfram-1992} |
ウルフラム. |
ウルフラム. |
{Mathematica (日本語版)}, |
{Mathematica (日本語版)}, |