#define CMO_MONOMIAL32 19 #define CMO_ZZ 20 #define CMO_QQ 21 #define CMO_ZERO 22 #define CMO_DMS_GENERIC 24 #define CMO_DMS_OF_N_VARIABLES 25 #define CMO_RING_BY_NAME 26 #define CMO_DISTRIBUTED_POLYNOMIAL 31 #define CMO_RATIONAL 34 #define CMO_INDETERMINATE 60 #define CMO_TREE 61 #define CMO_LAMBDA 62 /* for function definition */
以下, グループ CMObject/Basic, CMObject/Tree および CMObject/DistributedPolynomial に属する CMObject の形式を説明する.
OpenXM/src/ox_toolkit にある bconv をもちいると CMO expression を binary format に変換できるので, これを参考にするといい.
Example:
bash$ ./bconv > (CMO_ZZ,123123); 00 00 00 14 00 00 00 01 00 01 e0 f3
Group CMObject/Basic requires CMObject/Primitive.
ZZ, QQ, Zero, Rational, Indeterminate
CMObject/Basic.
Indeterminate は変数名をあらわす. v はバイト列であればなにを用いてもよいが, システム毎に変数名として用いられるバイト列は制限がある. 各システム xxx は任意の文字列を各システム固有の変数名へ1対1に変換できるように 実装しないといけない. (これを Dx は #dx と変換するなどの escape sequence を用いて実現するのは, 無理があるようである. テーブルを作成する必要があるであろう.)