[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.4 and 1.9

version 1.4, 2000/01/24 02:48:24 version 1.9, 2000/09/12 23:09:18
Line 1 
Line 1 
 %% $OpenXM: OpenXM/doc/OpenXM-specs/cmo-basic1.tex,v 1.3 2000/01/23 05:28:33 noro Exp $  %% $OpenXM: OpenXM/doc/OpenXM-specs/cmo-basic1.tex,v 1.8 2000/02/28 14:10:27 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}  \label{sec:basic1}
Line 27 
Line 27 
 以下, グループ CMObject/Basic, 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/Basic, 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
Line 46  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B
Line 64  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B
 \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 66  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B
Line 86  ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B
 \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 167  stack machine commands for delayed evaluation.
Line 189  stack machine commands for delayed evaluation.
 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 194  It is the same as the Lambda expression in Lisp.
Line 216  It is the same as the Lambda expression in Lisp.
     (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"))
         ))          ))
     )      )
 )  )
Line 206  It is the same as the Lambda expression in Lisp.
Line 228  It is the same as the Lambda expression in Lisp.
 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}
   
   
Line 677  $\in$ CMObject/MachineDouble \\
Line 699  $\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 710  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

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.9

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