[BACK]Return to cmo-basic1.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / OpenXM-specs

Diff for /OpenXM/doc/OpenXM-specs/cmo-basic1.tex between version 1.3 and 1.11

version 1.3, 2000/01/23 05:28:33 version 1.11, 2001/08/27 05:39:15
Line 1 
Line 1 
 %% $OpenXM: OpenXM/doc/OpenXM-specs/cmo-basic1.tex,v 1.1.1.1 2000/01/20 08:52:46 noro Exp $  %% $OpenXM: OpenXM/doc/OpenXM-specs/cmo-basic1.tex,v 1.10 2001/04/10 11:56:29 takayama Exp $
 //&jp \section{ 数, 多項式 の  CMO 表現 }  //&jp \section{ 数, 多項式 の  CMO 表現 }
 //&eg \section{ CMOexpressions for numbers and polynomials }  //&eg \section{ CMOexpressions for numbers and polynomials }
   \label{sec:basic1}
 /*&C  /*&C
 @../SSkan/plugin/cmotag.h  @../SSkan/plugin/cmotag.h
 \begin{verbatim}  \begin{verbatim}
Line 24 
Line 24 
 */  */
   
 /*&jp  /*&jp
 以下, グループ CMObject/Basic1, CMObject/Tree  以下, グループ CMObject/Basic, CMObject/Tree
 および CMObject/DistributedPolynomial  および CMObject/DistributedPolynomial
 に属する CMObject の形式を説明する.  に属する CMObject の形式を説明する.
 \noroa{ tagged list を導入すべきか?  cf. SSkan/plugin/cmo.txt }  
   
   \noindent
   {\tt OpenXM/src/ox\_toolkit} にある {\tt bconv} をもちいると
   CMO expression を binary format に変換できるので,
   これを参考にするといい.
 */  */
 /*&eg  /*&eg
 In the sequel, we will explain on the groups  In the sequel, we will explain on the groups
 CMObject/Basic1, CMObject/Tree  CMObject/Basic, CMObject/Tree
 and CMObject/DistributedPolynomial.  and CMObject/DistributedPolynomial.
   
   \noindent
   The program {\tt bconv} at {\tt OpenXM/src/ox\_toolkit}
   translates
   CMO expressions into binary formats.
   It is convinient to understand the binary formats explained in
   this section.
 */  */
   
   /*&C
   \noindent Example:
   \begin{verbatim}
   bash$ ./bconv
   > (CMO_ZZ,123123);
   00 00 00 14 00 00 00 01 00 01 e0 f3
   \end{verbatim}
   */
 /*&jp  /*&jp
   
 \bigbreak  \bigbreak
 \noindent  \noindent
 Group CMObject/Basic1 requires CMObject/Basic0. \\  Group CMObject/Basic requires CMObject/Primitive. \\
 ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/Basic1. \\  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/Basic. \\
 \begin{eqnarray*}  \begin{eqnarray*}
 \mbox{Zero} &:& ({\tt CMO\_ZERO}) \\  \mbox{Zero} &:& ({\tt CMO\_ZERO}) \\
 & & \mbox{ --- ユニバーサルな ゼロを表す. } \\  & & \mbox{ --- ユニバーサルな ゼロを表す. } \\
 \mbox{ZZ}         &:& ({\tt CMO\_ZZ},{\sl int32}\, {\rm f}, {\sl byte}\, \mbox{a[1]}, \ldots  \mbox{ZZ}         &:& ({\tt CMO\_ZZ},{\sl int32}\, {\rm f}, {\sl byte}\, \mbox{a[1]}, \ldots
 {\sl byte}\, \mbox{a[m]} ) \\  {\sl byte}\, \mbox{a[$|$f$|$]} ) \\
 &:& \mbox{ --- bignum をあらわす. a[i] についてはあとで説明}\\  &:& \mbox{ --- bignum をあらわす. a[i] についてはあとで説明}\\
 \mbox{QQ}        &:& ({\tt CMO\_QQ}, {\sl ZZ}\, {\rm a}, {\sl ZZ}\, {\rm b}) \\  \mbox{QQ}        &:& ({\tt CMO\_QQ},
                         {\sl int32}\, {\rm m}, {\sl byte}\, \mbox{a[1]}, \ldots, {\sl byte}\, \mbox{a[$|$m$|$]},
                         {\sl int32}\, {\rm n}, {\sl byte}\, \mbox{b[1]}, \ldots, {\sl byte}\, \mbox{b[$|$n$|$]})\\
 & & \mbox{ --- 有理数 $a/b$ を表す. } \\  & & \mbox{ --- 有理数 $a/b$ を表す. } \\
 \mbox{Rational}        &:& ({\tt CMO\_RATIONAL}, {\sl CMObject}\, {\rm a}, {\sl CMObject}\, {\rm b}) \\  \mbox{Rational}        &:& ({\tt CMO\_RATIONAL}, {\sl CMObject}\, {\rm a}, {\sl CMObject}\, {\rm b}) \\
 & & \mbox{ ---  $a/b$ を表す. } \\  & & \mbox{ ---  $a/b$ を表す. } \\
Line 60  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B
Line 80  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B
   
 \bigbreak  \bigbreak
 \noindent  \noindent
 Group CMObject/Basic1 requires CMObject/Basic0. \\  Group CMObject/Basic requires CMObject/Primitive. \\
 ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/Basic1. \\  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/Basic. \\
 \begin{eqnarray*}  \begin{eqnarray*}
 \mbox{Zero} &:& ({\tt CMO\_ZERO}) \\  \mbox{Zero} &:& ({\tt CMO\_ZERO}) \\
 & & \mbox{ --- Universal zero } \\  & & \mbox{ --- Universal zero } \\
 \mbox{ZZ}         &:& ({\tt CMO\_ZZ},{\sl int32}\, {\rm f}, {\sl byte}\, \mbox{a[1]}, \ldots  \mbox{ZZ}         &:& ({\tt CMO\_ZZ},{\sl int32}\, {\rm f}, {\sl byte}\, \mbox{a[1]}, \ldots
 {\sl byte}\, \mbox{a[m]} ) \\  {\sl byte}\, \mbox{a[$|$m$|$]} ) \\
 &:& \mbox{ --- bignum. The meaning of a[i] will be explained later.}\\  &:& \mbox{ --- bignum. The meaning of a[i] will be explained later.}\\
 \mbox{QQ}        &:& ({\tt CMO\_QQ}, {\sl ZZ}\, {\rm a}, {\sl ZZ}\, {\rm b}) \\  \mbox{QQ}        &:& ({\tt CMO\_QQ},
                         {\sl int32}\, {\rm m}, {\sl byte}\, \mbox{a[1]}, \ldots, {\sl byte}\, \mbox{a[$|$m$|$]},
                         {\sl int32}\, {\rm n}, {\sl byte}\, \mbox{b[1]}, \ldots, {\sl byte}\, \mbox{b[$|$n$|$]})\\
 & & \mbox{ --- Rational number $a/b$. } \\  & & \mbox{ --- Rational number $a/b$. } \\
 \mbox{Rational}        &:& ({\tt CMO\_RATIONAL}, {\sl CMObject}\, {\rm a}, {\sl CMObject}\, {\rm b}) \\  \mbox{Rational}        &:& ({\tt CMO\_RATIONAL}, {\sl CMObject}\, {\rm a}, {\sl CMObject}\, {\rm b}) \\
 & & \mbox{ ---  Rational expression $a/b$. } \\  & & \mbox{ ---  Rational expression $a/b$. } \\
Line 81  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B
Line 103  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B
 */  */
   
 /*&jp  /*&jp
   \subsection{Indeterminate および Tree}
 Indeterminate は変数名をあらわす.  Indeterminate は変数名をあらわす.
 v はバイト列であればなにを用いてもよいが,  v はバイト列であればなにを用いてもよいが,
 システム毎に変数名として用いられるバイト列は制限がある.  システム毎に変数名として用いられるバイト列は制限がある.
Line 92  escape sequence を用いて実現するのは, 無理があるようで
Line 115  escape sequence を用いて実現するのは, 無理があるようで
 テーブルを作成する必要があるであろう.)  テーブルを作成する必要があるであろう.)
 */  */
 /*&eg  /*&eg
   \subsection{Indetermnate and Tree}
 Indeterminate is a name of a variable.  Indeterminate is a name of a variable.
 v may be any sequence of bytes, but each system has its own  v may be any sequence of bytes, but each system has its own
 restrictions on the names of variables.  restrictions on the names of variables.
Line 102  in one to one correspondence.
Line 126  in one to one correspondence.
 /*&jp  /*&jp
   
 \noindent  \noindent
 Group CMObject/Tree requires CMObject/Basic1. \\  Group CMObject/Tree requires CMObject/Basic. \\
 Tree, Lambda $\in$ CMObject/Basic1. \\  Tree, Lambda $\in$ CMObject/Basic. \\
 \begin{eqnarray*}  \begin{eqnarray*}
 \mbox{Tree}        &:& ({\tt CMO\_TREE}, {\sl Cstring}\, {\rm name},  \mbox{Tree}        &:& ({\tt CMO\_TREE}, {\sl Cstring}\, {\rm name},
  {\sl Cstring}\, {\rm cdname}, {\sl List}\, {\rm leaves}) \\   {\sl List}\, {\rm attributes}, {\sl List}\, {\rm leaves}) \\
 & & \mbox{ --- 名前 name の定数または関数. 関数の評価はおこなわない. } \\  & & \mbox{ --- 名前 name の定数または関数. 関数の評価はおこなわない. } \\
 & & \mbox{ --- cdname は空文字列でなければ name の意味が説明されている }\\  & & \mbox{ --- attributes は空リストでなければ name の属性を保持している. }\\
 & & \mbox{ --- OpenMath CD (content dictionary) の名前. } \\  & & \mbox{ --- 属性リストは, key と 値のペアである. }\\
 \mbox{Lambda}        &:& ({\tt CMO\_LAMBDA}, {\sl List}\, {\rm args},  \mbox{Lambda}        &:& ({\tt CMO\_LAMBDA}, {\sl List}\, {\rm args},
                           {\sl Tree} {\rm body}) \\                            {\sl Tree} {\rm body}) \\
 & & \mbox{ --- body を args を引数とする関数とする. } \\  & & \mbox{ --- body を args を引数とする関数とする. } \\
Line 119  Tree, Lambda $\in$ CMObject/Basic1. \\
Line 143  Tree, Lambda $\in$ CMObject/Basic1. \\
 /*&eg  /*&eg
   
 \noindent  \noindent
 Group CMObject/Tree requires CMObject/Basic1. \\  Group CMObject/Tree requires CMObject/Basic. \\
 Tree, Lambda $\in$ CMObject/Basic1. \\  Tree, Lambda $\in$ CMObject/Basic. \\
 \begin{eqnarray*}  \begin{eqnarray*}
 \mbox{Tree}        &:& ({\tt CMO\_TREE}, {\sl Cstring}\, {\rm name},  \mbox{Tree}        &:& ({\tt CMO\_TREE}, {\sl Cstring}\, {\rm name},
  {\sl Cstring}\, {\rm cdname}, {\sl List}\, {\rm leaves}) \\   {\sl List}\, {\rm attributes}, {\sl List}\, {\rm leaves}) \\
 & & \mbox{ --- A function or a constant of name. Functions are not evaluated. } \\  & & \mbox{ --- A function or a constant of name. Functions are not evaluated. } \\
 & & \mbox{ --- cdname may be a null. If it is not null, it is the name of}\\  & & \mbox{ --- attributes may be a null list. If it is not null, it is a list of}\\
 & & \mbox{ --- the OpenMath CD (content dictionary). } \\  & & \mbox{ --- key and value pairs. } \\
 \mbox{Lambda}        &:& ({\tt CMO\_LAMBDA}, {\sl List}\, {\rm args},  \mbox{Lambda}        &:& ({\tt CMO\_LAMBDA}, {\sl List}\, {\rm args},
                           {\sl Tree} {\rm body}) \\                            {\sl Tree} {\rm body}) \\
 & & \mbox{ --- a function with the arguments body. } \\  & & \mbox{ --- a function with the arguments body. } \\
Line 160  For example,
Line 184  For example,
 $\sin(x+e)$ is expressed as  $\sin(x+e)$ is expressed as
 {\tt (sin, (plus, x, e))}  {\tt (sin, (plus, x, e))}
 as a tree.  as a tree.
 Tree may be expressed by putting itself between  Tree may be expressed by putting the expression between
 {\tt SM\_beginBlock} and {\tt SM\_endBlock}, which are  {\tt SM\_beginBlock} and {\tt SM\_endBlock}, which are
 stack machine commands for delayed evaluation.  stack machine commands for delayed evaluation.
 (cf. {\tt \{ }, {\tt \} } in PostScript).  (cf. {\tt \{ }, {\tt \} } in PostScript).
 However it makes the implementation of stack machines complicated.  However it makes the implementation of stack machines complicated.
 It is desirable that CMObject is independent of OX stack machine.  It is desirable that CMObject is independent of OX stack machine.
 Therefore we introduce an OpenMath like tree representation for CMO  Therefore we introduce an OpenMath like tree representation for CMO
 tree object.  Tree object.
 This method allows us to implement tree structure easily  This method allows us to implement tree structure easily
 on individual OpenXM systems.  on individual OpenXM systems.
 Note that CMO Tree corresponds to Symbol and Application in OpenMath.  Note that CMO Tree corresponds to Symbol and Application in OpenMath.
Line 190  It is the same as the Lambda expression in Lisp.
Line 214  It is the same as the Lambda expression in Lisp.
 //&jp 例: $sin(x+e)$ の表現.  //&jp 例: $sin(x+e)$ の表現.
 //&eg Example: the expression of $sin(x+e)$.  //&eg Example: the expression of $sin(x+e)$.
 \begin{verbatim}  \begin{verbatim}
 (CMO_TREE, (CMO_STRING, "sin"), (CMO_STRING, "basic"),  (CMO_TREE, (CMO_STRING, "sin"),
       (CMO_LIST,[size=]1,(CMO_LIST,[size=]2,(CMO_STRING, "cdname"),
                                             (CMO_STRING,"basic")))
     (CMO_LIST,[size=]1,      (CMO_LIST,[size=]1,
         (CMO_TREE, (CMO_STRING, "plus"), (CMO_STRING, "basic"),          (CMO_TREE, (CMO_STRING, "plus"), (CMO_STRING, "basic"),
             (CMO_LIST,[size=]2, (CMO_INDETERMINATE,"x"),              (CMO_LIST,[size=]2, (CMO_INDETERMINATE,"x"),
 //&jp                                (CMO_TREE,(CMO_STRING, "e"),  自然対数の底  //&jp                  (CMO_TREE,(CMO_STRING, "e"),  自然対数の底
 //&eg                                (CMO_TREE,(CMO_STRING, "e"),  Napier's number  //&eg                  (CMO_TREE,(CMO_STRING, "e"),  the base of natural logarithms
                                           (CMO_STRING, "basic"))                              (CMO_STRING, "basic"))
         ))          ))
     )      )
 )  )
 \end{verbatim}  \end{verbatim}
   //&jp  Leave の成分には, 多項式を含む任意のオブジェクトがきてよい.
   //&eg  Elements of the leave may be any objects including polynomials.
   
 \noindent  \noindent
 Example:  Example:
 \begin{verbatim}  \begin{verbatim}
 sm1> [(plus) (Basic) [(123).. (345)..]] [(class) (tree)] dc ::  sm1> [(plus) (Basic) [(123).. (345)..]] [(class) (tree)] dc ::
 Class.tree [    $plus$ , $Basic$ , [    123 , 345 ]  ]  Class.tree [    $plus$ , $basic$ , [    123 , 345 ]  ]
 \end{verbatim}  \end{verbatim}
   
   
   
 \bigbreak  \bigbreak
 //&jp 次に, 分散表現多項式に関係するグループを定義しよう.  //&jp 次に, 分散表現多項式に関係するグループを定義しよう.
 //&eg Let us define a group for distributed polynomials.  /*&eg
   Let us define a group for distributed polynomials. In the following
   DMS stands for Distributed Monomial System.
   */
   
 \medbreak  \medbreak
 \noindent  \noindent
 Group CMObject/DistributedPolynomials requires CMObject/Basic0,  Group CMObject/DistributedPolynomials requires CMObject/Primitive,
 CMObject/Basic1. \\  CMObject/Basic. \\
 Monomial, Monomial32, Coefficient, Dpolynomial, DringDefinition,  Monomial, Monomial32, Coefficient, Dpolynomial, DringDefinition,
 Generic DMS ring, RingByName, DMS of N variables $\in$  Generic DMS ring, RingByName, DMS of N variables $\in$
 CMObject/DistributedPolynomials. \\  CMObject/DistributedPolynomials. \\
Line 289  $x^e = x_1^{e_1} \cdots x_n^{e_n}$ の各指数 $e_i$
Line 320  $x^e = x_1^{e_1} \cdots x_n^{e_n}$ の各指数 $e_i$
 \mbox{Generic DMS ring}  \mbox{Generic DMS ring}
                  &:& ({\tt CMO\_DMS\_GENERIC}) \\                   &:& ({\tt CMO\_DMS\_GENERIC}) \\
 \mbox{RingByName}&:& ({\tt CMO\_RING\_BY\_NAME}, {\sl Cstring} s) \\  \mbox{RingByName}&:& ({\tt CMO\_RING\_BY\_NAME}, {\sl Cstring} s) \\
                  & & \mbox{ --- The ring definition refered by the name ``s''.} \\                   & & \mbox{ --- The ring definition referred by the name ``s''.} \\
 \mbox{DMS of N variables}  \mbox{DMS of N variables}
                  &:& ({\tt CMO\_DMS\_OF\_N\_VARIABLES}, \\                   &:& ({\tt CMO\_DMS\_OF\_N\_VARIABLES}, \\
                  & & \ ({\tt CMO\_LIST}, {\sl int32}\, \mbox{m},                   & & \ ({\tt CMO\_LIST}, {\sl int32}\, \mbox{m},
Line 394  a CMO\_ZZ $14$ is expressed by
Line 425  a CMO\_ZZ $14$ is expressed by
 \mbox{(CMO\_ZZ, 1, 0, 0, 0, e)},  \mbox{(CMO\_ZZ, 1, 0, 0, 0, e)},
 \]  \]
 //&jp と表わす. これはバイト列では  //&jp と表わす. これはバイト列では
 //&egThe corresponding byte sequence is  //&eg The corresponding byte sequence is
 \[  \[
 \mbox{\tt 00 00 00 14 00 00 00 01 00 00 00 0e}  \mbox{\tt 00 00 00 14 00 00 00 01 00 00 00 0e}
 \]  \]
Line 442  Ring by Name を用いた場合, 現在の名前空間で変数 yyy に
Line 473  Ring by Name を用いた場合, 現在の名前空間で変数 yyy に
 /*&eg  /*&eg
 We treat polynomial rings and their elements as follows.  We treat polynomial rings and their elements as follows.
   
 An element of a generic DMS ring is an element of  Generic DMS ring is an $n$-variate polynomial ring $K[x_1, \ldots, x_n]$,
 an $n$-variate polynomial ring $K[x_1, \ldots, x_n]$,  
 where $K$ is some coefficient set. $K$ is unknown in advance  where $K$ is some coefficient set. $K$ is unknown in advance
 and it is determined when coefficients are received.  and it is determined when coefficients of an element are received.
 When a server has received an element in a generic DMS ring,  When a server has received an element in Generic DMS ring,
 the server has to translate it into the corresponding local object  the server has to translate it into the corresponding local object
 on the server. Each server has its own translation scheme.  on the server. Each server has its own translation scheme.
   
 In Asir such an element are translated into a distributed polynomial.  In Asir such an element are translated into a distributed polynomial.
   
 In {\tt kan/sm1} things are complicated.  In {\tt kan/sm1} things are complicated.
 {\tt kan/sm1} does not have any class corresponding to a generic DMS ring.  {\tt kan/sm1} does not have any class corresponding to Generic DMS ring.
 {\tt kan/sm1} translates a DMS of N variables into an element of  {\tt kan/sm1} translates a DMS of N variables into an element of
 the CurrentRing.  the CurrentRing.
 If the CurrentRing is $n'$-variate and $n' < n$, then  If the CurrentRing is $n'$-variate and $n' < n$, then
 a polynomial ring is newly created. Optional informations such as  an $n$-variate polynomial ring is newly created. Optional informations such as
 the term order are all ignored.  the term order are all ignored.
   
 If RingbyName ({\tt CMO\_RING\_BY\_NAME}, yyy)  If RingByName ({\tt CMO\_RING\_BY\_NAME}, yyy)
 is specified as the second field of DMS,  is specified as the second field of DMS,
 it requests a sever to use a ring object whose name is yyy  it requests a sever to use a ring object whose name is yyy
 as the destination ring for the translation.  as the destination ring for the translation.
Line 504  $3 x^2 y$ is regarded as an element of a six-variate p
Line 532  $3 x^2 y$ is regarded as an element of a six-variate p
 #define CMO_POLYNOMIAL_IN_ONE_VARIABLE  33  #define CMO_POLYNOMIAL_IN_ONE_VARIABLE  33
 \end{verbatim}  \end{verbatim}
   
 Group CMObject/RecursivePolynomial requires CMObject/Basic0, CMObject/Basic1.\\  Group CMObject/RecursivePolynomial requires CMObject/Primitive, CMObject/Basic.\\
 Polynomial in 1 variable, Coefficient, Name of the main variable,  Polynomial in 1 variable, Coefficient, Name of the main variable,
 Recursive Polynomial, Ring definition for recursive polynomials  Recursive Polynomial, Ring definition for recursive polynomials
 $\in$ CMObject/RecursivePolynomial \\  $\in$ CMObject/RecursivePolynomial \\
Line 533  $\in$ CMObject/RecursivePolynomial \\
Line 561  $\in$ CMObject/RecursivePolynomial \\
 \mbox{ Polynomial in 1 variable}\, | \, \mbox{Coefficient}   \\  \mbox{ Polynomial in 1 variable}\, | \, \mbox{Coefficient}   \\
 \mbox{RringDefinition}  \mbox{RringDefinition}
 & : &  \mbox{ {\sl List} v } \\  & : &  \mbox{ {\sl List} v } \\
 & & \quad \mbox{ --- v は, 変数名(indeterminate) のリスト. } \\  & & \quad \mbox{ --- v は, 変数名(indeterminate) または Tree のリスト. } \\
 & & \quad \mbox{ --- 順序の高い順. } \\  & & \quad \mbox{ --- 順序の高い順. } \\
 \end{eqnarray*}  \end{eqnarray*}
 */  */
Line 543  $\in$ CMObject/RecursivePolynomial \\
Line 571  $\in$ CMObject/RecursivePolynomial \\
 \mbox{({\tt CMO\_POLYNOMIAL\_IN\_ONE\_VARIABLE},\, {\sl int32}\, m, } \\  \mbox{({\tt CMO\_POLYNOMIAL\_IN\_ONE\_VARIABLE},\, {\sl int32}\, m, } \\
 & & \quad \mbox{ Name of the main variable }, \\  & & \quad \mbox{ Name of the main variable }, \\
 & & \quad \mbox{ \{ {\sl int32} e, Coefficient \}} \\  & & \quad \mbox{ \{ {\sl int32} e, Coefficient \}} \\
 & & \mbox{ --- m is the number of monimials. } \\  & & \mbox{ --- m is the number of monomials. } \\
 & & \mbox{ --- A pair of e and Coefficieint represents a monomial. } \\  & & \mbox{ --- A pair of e and Coefficient represents a monomial. } \\
 & & \mbox{ --- The pairs of e and Coefficient are sorted in the } \\  & & \mbox{ --- The pairs of e and Coefficient are sorted in the } \\
 & & \mbox{ \quad decreasing order, usually with respect to e.} \\  & & \mbox{ \quad decreasing order, usually with respect to e.} \\
 & & \mbox{ ---  e denotes an exponent of a monomial with respect to } \\  & & \mbox{ ---  e denotes an exponent of a monomial with respect to } \\
Line 563  $\in$ CMObject/RecursivePolynomial \\
Line 591  $\in$ CMObject/RecursivePolynomial \\
 \mbox{ Polynomial in 1 variable}\, | \, \mbox{Coefficient}   \\  \mbox{ Polynomial in 1 variable}\, | \, \mbox{Coefficient}   \\
 \mbox{RringDefinition}  \mbox{RringDefinition}
 & : &  \mbox{ {\sl List} v } \\  & : &  \mbox{ {\sl List} v } \\
 & & \quad \mbox{ --- v is a list of names of indeterminates. } \\  & & \quad \mbox{ --- v is a list of names of indeterminates or trees. } \\
 & & \quad \mbox{ --- It is sorted in the decreasing order. } \\  & & \quad \mbox{ --- It is sorted in the decreasing order. } \\
 \end{eqnarray*}  \end{eqnarray*}
 */  */
Line 591  $$   x^3 (1234 y^5 + 17 ) +  x^1 (y^{10} + 31 y^5)  $$
Line 619  $$   x^3 (1234 y^5 + 17 ) +  x^1 (y^{10} + 31 y^5)  $$
 /*&eg  /*&eg
 We intend to represent non-commutative polynomials with the  We intend to represent non-commutative polynomials with the
 same form. In such a case, the order of products are defined  same form. In such a case, the order of products are defined
 as above, that is a power of the mail variable $\times$ a coeffcient.  as above, that is a power of the main variable $\times$ a coeffcient.
 */  */
   
 \noindent  \noindent
Line 613  Class.recursivePolynomial h * ((-1)) + (x^2  * (1))
Line 641  Class.recursivePolynomial h * ((-1)) + (x^2  * (1))
 \end{verbatim}  \end{verbatim}
   
 \noindent  \noindent
 Group CMObject/MachineDouble requires CMObject/Basic0.\\  Group CMObject/MachineDouble requires CMObject/Primitive.\\
 64bit machine double, Array of 64bit machine double  64bit machine double, Array of 64bit machine double
 128bit machine double, Array of 128bit machine double  128bit machine double, Array of 128bit machine double
 $\in$ CMObject/MachineDouble \\  $\in$ CMObject/MachineDouble \\
Line 677  $\in$ CMObject/MachineDouble \\
Line 705  $\in$ CMObject/MachineDouble \\
   
 \bigbreak  \bigbreak
 //&jp 次に IEEE 準拠の float および Big float を定義しよう.  //&jp 次に IEEE 準拠の float および Big float を定義しよう.
 //&eg We define IEEE conformant float and big float.  //&eg We define float and big float conforming to the IEEE standard.
 \begin{verbatim}  \begin{verbatim}
 #define CMO_BIGFLOAT   50  #define CMO_BIGFLOAT   50
 #define CMO_IEEE_DOUBLE_FLOAT 51  #define CMO_IEEE_DOUBLE_FLOAT 51
Line 688  IEEE 準拠の float については, IEEE 754 double precisio
Line 716  IEEE 準拠の float については, IEEE 754 double precisio
 format (64 bit) の定義を見よ.  format (64 bit) の定義を見よ.
 */  */
 /*&eg  /*&eg
 See IEEE 754 double precision floating-point (64 bit) for the details of IEEE  See IEEE 754 double precision floating-point (64 bit) for the details of
 conformant float.  float conforming to the IEEE standard.
 */  */
   
 \noindent  \noindent
 Group CMObject/Bigfloat requires CMObject/Basic0, CMObject/Basic1.\\  Group CMObject/Bigfloat requires CMObject/Primitive, CMObject/Basic.\\
 Bigfloat  Bigfloat
 $\in$ CMObject/Bigfloat \\  $\in$ CMObject/Bigfloat \\
   

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.11

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>