#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 CMObject/Basic.
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.