CMOexpressions for numbers and polynomials

#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.

- Indeterminate and Tree
- Zero
- Integer ZZ
- Distributed polynomial Dpolynomial
- Recursive polynomials
- CPU dependent double
- Bigfloat32

Nobuki Takayama Heisei 28.8.27.