next up previous contents
Next: Indeterminate and Tree Up: Design and Implementation of Previous: 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_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 ...
...g}\, {\rm v}) \\
& & \mbox{ --- Variable name $v$\space . } \\
\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 平成14年1月21日