next up previous contents
: Indeterminate and Tree : Design and Implementation of : String expression of objects   ܼ


CMOexpressions for numbers and polynomials

@../SSkan/plugin/cmotag.h
#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_COMPLEX       35

#define     CMO_BIGFLOAT32    52

#define     CMO_INDETERMINATE  60
#define     CMO_TREE           61
#define     CMO_LAMBDA         62    /* for function definition */

In the sequel, we will explain on the groups CMObject/Basic, CMObject/Tree and CMObject/DistributedPolynomial.

The program bconv at OpenXM/src/ox_toolkit translates CMO expressions into binary formats. It is convinient to understand the binary formats explained in this section.

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 $\in$ CMObject/Basic.

\begin{eqnarray*}
\mbox{Zero} &:& ({\tt CMO\_ZERO}) \\
& & \mbox{ --- Universal...
...string}\, {\rm v}) \\
& & \mbox{ --- Variable name $v$\ . } \\
\end{eqnarray*}

The name of a variable should be expressed by using Indeterminate. v may be any sequence of bytes, but each system has its own restrictions on the names of variables. Indeterminates of CMO and internal variable names must be translated in one-to-one correspondence.





Nobuki Takayama Heisei 28.8.27.