[BACK]Return to type.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / parts / builtin

Annotation of OpenXM/src/asir-doc/parts/builtin/type.texi, Revision 1.4

1.4     ! ohara       1: @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/type.texi,v 1.3 2002/09/03 01:51:00 noro Exp $
1.2       noro        2: \BJP
1.1       noro        3: @node $B7?$r5a$a$kH!?t(B,,, $BAH$_9~$_H!?t(B
                      4: @section $B7?$r5a$a$kH!?t(B
1.2       noro        5: \E
                      6: \BEG
                      7: @node Types,,, Built-in Function
                      8: @section Types
                      9: \E
1.1       noro       10:
                     11: @menu
                     12: * type::
                     13: * ntype::
                     14: * vtype::
                     15: @end menu
                     16:
1.2       noro       17: \JP @node type,,, $B7?$r5a$a$kH!?t(B
                     18: \EG @node type,,, Types
1.1       noro       19: @subsection @code{type}
                     20: @findex type
                     21:
                     22: @table @t
                     23: @item type(@var{obj})
1.2       noro       24: \JP :: @var{obj} $B$N(B $B7?(B ($B@0?t(B) $B$rJV$9(B.
                     25: \EG :: Returns an integer which identifies the type of the object @var{obj} in question.
1.1       noro       26: @end table
                     27:
                     28: @table @var
                     29: @item return
1.2       noro       30: \JP $B@0?t(B
                     31: \EG integer
1.1       noro       32: @item obj
1.2       noro       33: \JP $BG$0U(B
                     34: \EG arbitrary
1.1       noro       35: @end table
                     36:
                     37: @itemize @bullet
1.2       noro       38: \BJP
1.1       noro       39: @item
                     40: @var{obj} $B$N(B $B7?$NCM$O<!$NDL$j(B.
                     41: @table @t
                     42: @item 0
                     43: 0
                     44: @item 1
                     45: $B?t(B
                     46: @item 2
                     47: $BB?9`<0(B ($B?t$G$J$$(B)
                     48: @item 3
                     49: $BM-M}<0(B ($BB?9`<0$G$J$$(B)
                     50: @item 4
                     51: $B%j%9%H(B
                     52: @item 5
                     53: $B%Y%/%H%k(B
                     54: @item 6
                     55: $B9TNs(B
                     56: @item 7
                     57: $BJ8;zNs(B
                     58: @item 8
                     59: $B9=B$BN(B
                     60: @item 9
                     61: $BJ,;6I=8=B?9`<0(B
1.2       noro       62: @item 10
                     63: 32bit $BId9f$J$7@0?t(B
                     64: @item 11
                     65: $B%(%i!<%*%V%8%'%/%H(B
                     66: @item 12
                     67: GF(2) $B>e$N9TNs(B
                     68: @item 13
                     69: MATHCAP $B%*%V%8%'%/%H(B
                     70: @item 14
                     71: $B0l3,=R8lO@M}<0(B
                     72: @item -1
                     73: VOID $B%*%V%8%'%/%H(B
1.1       noro       74: @end table
                     75: @item
                     76: $B?t$N7?$r5a$a$k$K$O(B, @code{ntype} $B$rMQ$$$k(B.
                     77: $BITDj85$N7?$r5a$a$k$K$O(B, @code{vtype} $B$rMQ$$$k(B.
1.2       noro       78: \E
                     79: \BEG
                     80: @item
                     81: Current assignment of integers for object types is listed below.
                     82: @table @t
                     83: @item 0
                     84: 0
                     85: @item 1
                     86: number
                     87: @item 2
                     88: polynomial (not number)
                     89: @item 3
                     90: rational expression (not polynomial)
                     91: @item 4
                     92: list
                     93: @item 5
                     94: vector
                     95: @item 6
                     96: matrix
                     97: @item 7
                     98: string
                     99: @item 8
                    100: structure
                    101: @item 9
                    102: distributed polynomial
                    103: @item 10
                    104: 32bit unsigned integer
                    105: @item 11
                    106: error object
                    107: @item 12
                    108: matrix over GF(2)
                    109: @item 13
                    110: MATHCAP object
                    111: @item 14
                    112: first order formula
                    113: @item -1
                    114: VOID object
                    115: @end table
                    116: @item
                    117: For further classification of @var{number}, use @code{ntype()}.
                    118: For further classification of @var{variable}, use @code{vtype()}.
                    119: \E
1.1       noro      120: @end itemize
                    121:
                    122: @table @t
1.2       noro      123: \JP @item $B;2>H(B
                    124: \EG @item References
1.1       noro      125: @fref{ntype}, @fref{vtype}.
                    126: @end table
                    127:
1.2       noro      128: \JP @node ntype,,, $B7?$r5a$a$kH!?t(B
                    129: \EG @node ntype,,, Types
1.1       noro      130: @subsection @code{ntype}
                    131: @findex ntype
                    132:
                    133: @table @t
                    134: @item ntype(@var{num})
1.2       noro      135: \JP :: @var{num} ($B?t(B) $B$N(B $B7?(B ($B@0?t(B) $B$rJV$9(B.
                    136: \EG :: Classifier of type @var{num}.  Returns a sub-type number, an integer, for @var{obj}.
1.1       noro      137: @end table
                    138:
                    139: @table @var
                    140: @item return
1.2       noro      141: \JP $B<+A3?t(B
                    142: \EG integer
1.1       noro      143: @item obj
1.2       noro      144: \JP $B?t(B
                    145: \EG number
1.1       noro      146: @end table
                    147:
                    148: @itemize @bullet
1.2       noro      149: \BJP
1.1       noro      150: @item
                    151: $B?t$N7?$NCM$O<!$NDL$j(B.
                    152: @table @t
                    153: @item 0
                    154: $BM-M}?t(B
                    155: @item 1
                    156: $BG\@:EYIbF0>.?t(B
                    157: @item 2
                    158: $BBe?tE*?t(B
                    159: @item 3
                    160: $BG$0U@:EYIbF0>.?t(B (@b{bigfloat})
                    161: @item 4
                    162: $BJ#AG?t(B
                    163: @item 5
                    164: $BM-8BBN$N85(B
1.2       noro      165: @item 6
                    166: $BBgI8?tAGBN$N85(B
                    167: @item 7
                    168: $BI8?t(B 2 $B$NM-8BBN$N85(B
1.1       noro      169: @end table
                    170: @item
                    171: @code{newalg(x^2+1)} $B$G@8@.$7$??t$H(B, $B5u?tC10L(B @code{@@i} $B$O(B,
                    172: $B0[$J$k$b$N$H$7$F07$o$l$k(B.
                    173: @item
                    174: $BBe?tE*?t$K4X$7$F$O(B, @xref{$BBe?tE*?t$K4X$9$k1i;;(B}.
1.2       noro      175: \E
                    176: \BEG
                    177: @item
                    178: Sub-types for type number are listed below.
                    179: @table @t
                    180: @item 0
                    181: rational number
                    182: @item 1
                    183: floating double (double precision floating point number)
                    184: @item 2
                    185: algebraic number over rational number field
                    186: @item 3
                    187: arbitrary precision floating point number (@b{bigfloat})
                    188: @item 4
                    189: complex number
                    190: @item 5
                    191: element of a finite field
                    192: @item 6
                    193: element of a large finite prime field
                    194: @item 7
                    195: element of a finite field of characteristic 2
                    196: @end table
                    197: @item
                    198: When arithmetic operations for numbers are performed,
                    199: type coercion will be taken if their number sub-types are different
                    200: so that the object having smaller sub-type number will be transformed
                    201: to match the other object, except for algebraic numbers.
                    202: @item
                    203: A number object created by @code{newalg(x^2+1)} and the unit of
                    204: imaginary number @code{@@i} have different number sub-types, and
                    205: it is treated independently.
                    206: @item
1.3       noro      207: See @ref{Algebraic numbers} for algebraic numbers.
1.2       noro      208: \E
1.1       noro      209: @end itemize
                    210:
                    211: @example
                    212: [0] [10/37,ntype(10/37)];
                    213: [10/37,0]
                    214: [1] [10.0/37.0,ntype(10.0/37.0)];
                    215: [0.27027,1]
                    216: [2] [newalg(x^2+1)+1,ntype(newalg(x^2+1)+1)];
                    217: [(#0+1),2]
                    218: [3] [eval(sin(@@pi/6)),ntype(eval(sin(@@pi/6)))];
                    219: [0.49999999999999999991,3]
                    220: [4] [@@i+1,ntype(@@i+1)];
                    221: [(1+1*@@i),4]
                    222: @end example
                    223:
                    224: @table @t
1.2       noro      225: \JP @item $B;2>H(B
                    226: \EG @item References
1.1       noro      227: @fref{type}.
                    228: @end table
                    229:
1.2       noro      230: \JP @node vtype,,, $B7?$r5a$a$kH!?t(B
                    231: \EG @node vtype,,, Types
1.1       noro      232: @subsection @code{vtype}
                    233: @findex vtype
                    234:
                    235: @table @t
                    236: @item vtype(@var{var})
1.2       noro      237: \JP :: @var{var} ($BITDj85(B) $B$N(B $B7?(B ($B@0?t(B) $B$rJV$9(B.
                    238: \EG :: Type of indetarminates @var{var}.
1.1       noro      239: @end table
                    240:
                    241: @table @var
                    242: @item return
1.2       noro      243: \JP $B@0?t(B
                    244: \EG integer
1.1       noro      245: @item var
1.2       noro      246: \JP $BITDj85(B
                    247: \EG indeterminate
1.1       noro      248: @end table
                    249:
                    250: @itemize @bullet
1.2       noro      251: \BJP
1.1       noro      252: @item
                    253: @var{var} ($BITDj85(B) $B$N7?$NCM$O<!$NDL$j(B. $B>\:Y$O(B @xref{$BITDj85$N7?(B}.
                    254: @table @t
                    255: @item 0
                    256: $B0lHLITDj85(B  (a,b,x,afo,bfo,...,etc)
                    257: @item 1
                    258: @code{uc()} $B$G@8@.$5$l$?ITDj85(B (@code{_0}, @code{_1}, @code{_2}, ... etc)
                    259: @item 2
                    260: $BH!?t7A<0(B (@code{sin(x)}, @code{log(a+1)}, @code{acosh(1)}, @code{@@pi}, @code{@@e}, ... etc)
                    261: @item 3
                    262: $BH!?t;R(B ($BAH$_9~$_H!?t;R(B, $B%f!<%6Dj5AH!?t;R(B, $B=iEyH!?t;R(B : @code{sin}, @code{log}, ... etc)
                    263: @end table
                    264: @item
                    265: @code{a();} $B$r<B9T(B($BDL>o$G$O%(%i!<(B)$B$7$?$@$1$G$b(B @code{ntype(a)} $B$O(B 3 $B$H$J$k(B.
                    266: $B$9$J$o$A(B @code{a} $B$O%f!<%6Dj5AH!?t;R$H$_$J$5$l$k(B.
1.4     ! ohara     267: @item
        !           268: $B%f!<%6$,H!?t7A<0$rDj5A$9$k$?$a$K$O%-!<%o!<%I(B @code{function} $B$rMQ$$$k(B.
1.1       noro      269: @item
                    270: @code{@@pi}, @code{@@e} $B$OITDj85$H$7$F07$o$l$k$,(B, @code{eval()}, @code{pari()}
                    271: $B$K$*$$$F$O?t$H$7$F07$o$l$k(B.
1.2       noro      272: \E
                    273: \BEG
                    274: @item
                    275: Classify indeterminates into sub-types by giving an integer value as follows.
                    276: For details  @xref{Types of indeterminates}.
                    277: @table @t
                    278: @item 0
                    279: ordinary indeterminate, which can be directly typed in on a keyboard
                    280: (a,b,x,afo,bfo,...,etc.)
                    281: @item 1
                    282: Special indeterminate, created by @code{uc()}
                    283: (@code{_0}, @code{_1}, @code{_2}, ... etc.)
                    284: @item 2
                    285: function form (@code{sin(x)}, @code{log(a+1)}, @code{acosh(1)}, @code{@@pi}, @code{@@e}, ... etc.)
                    286: @item 3
                    287: functor (built-in functor name, user defined functor, functor for
                    288: the elementary functions)
                    289:  : @code{sin}, @code{log}, ... etc)
                    290: @end table
                    291: @item
                    292: Note: An input `@code{a();}' will cause an error, but it changes
                    293: the system database for identifiers.  After this error, you will find
                    294: `@code{vtype(a)}' will result 3. (Identifier @code{a} is registered as
                    295: a user defined functor).
                    296: @item
                    297: Usually @code{@@pi} and @code{@@e} are treated as indeterminates,
                    298: whereas they are treated as numbers within functions @code{eval()} and
                    299:  @code{pari()}.
                    300: \E
1.1       noro      301: @end itemize
                    302:
                    303: @table @t
1.2       noro      304: \JP @item $B;2>H(B
                    305: \EG @item References
1.1       noro      306: @fref{type}, @fref{ntype}, @fref{uc}.
                    307: @end table
                    308:

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