We treat polynomial rings and their elements as follows.
Generic DMS ring is an -variate polynomial ring
,
where
is a coefficient set.
is unknown in advance
and it is determined when coefficients of an element are received.
When a server has received an element in Generic DMS ring,
the server has to translate it into the corresponding local object
on the server. Each server has its own translation scheme.
In Asir such an element are translated into a distributed polynomial.
In kan/sm1 things are complicated.
kan/sm1 does not have any class corresponding to Generic DMS ring.
kan/sm1 translates a DMS of N variables into an element of
the CurrentRing.
If the CurrentRing is
-variate and
, then
an
-variate polynomial ring is newly created.
If RingByName (CMO_RING_BY_NAME, yyy) is specified as the second field of DMS, it requests a sever to use a ring object whose name is yyy as the destination ring for the translation.
Example: (all numbers are represented in hexadecimal notation)
Z/11Z [6 variables] (kxx/cmotest.sm1) run [(x,y) ring_of_polynomials ( ) elimination_order 11 ] define_ring ; (3x^2 y). cmo /ff set ; [(cmoLispLike) 1] extension ; ff :: Class.CMO CMO StandardEncoding: size = 52, size/sizeof(int) = 13, tag=CMO_DISTRIBUTED_POLYNOMIAL 0 0 0 1f 0 0 0 1 0 0 0 18 0 0 0 13 0 0 0 6 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 3 ff omc :: (CMO_DISTRIBUTED_POLYNOMIAL[1f],[size=]1,(CMO_DMS_GENERIC[18],), (CMO_MONOMIAL32[13],3*x^2*y),),
is regarded as an element of a six-variate polynomial ring.