version 1.1, 1999/12/08 05:47:44 |
version 1.2, 1999/12/21 02:47:34 |
|
|
|
@comment $OpenXM$ |
|
\BJP |
@node $B7?$r5a$a$kH!?t(B,,, $BAH$_9~$_H!?t(B |
@node $B7?$r5a$a$kH!?t(B,,, $BAH$_9~$_H!?t(B |
@section $B7?$r5a$a$kH!?t(B |
@section $B7?$r5a$a$kH!?t(B |
|
\E |
|
\BEG |
|
@node Types,,, Built-in Function |
|
@section Types |
|
\E |
|
|
@menu |
@menu |
* type:: |
* type:: |
|
|
* vtype:: |
* vtype:: |
@end menu |
@end menu |
|
|
@node type,,, $B7?$r5a$a$kH!?t(B |
\JP @node type,,, $B7?$r5a$a$kH!?t(B |
|
\EG @node type,,, Types |
@subsection @code{type} |
@subsection @code{type} |
@findex type |
@findex type |
|
|
@table @t |
@table @t |
@item type(@var{obj}) |
@item type(@var{obj}) |
:: @var{obj} $B$N(B $B7?(B ($B@0?t(B) $B$rJV$9(B. |
\JP :: @var{obj} $B$N(B $B7?(B ($B@0?t(B) $B$rJV$9(B. |
|
\EG :: Returns an integer which identifies the type of the object @var{obj} in question. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B<+A3?t(B |
\JP $B@0?t(B |
|
\EG integer |
@item obj |
@item obj |
$BG$0U(B |
\JP $BG$0U(B |
|
\EG arbitrary |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
@var{obj} $B$N(B $B7?$NCM$O<!$NDL$j(B. |
@var{obj} $B$N(B $B7?$NCM$O<!$NDL$j(B. |
@table @t |
@table @t |
|
|
$B9=B$BN(B |
$B9=B$BN(B |
@item 9 |
@item 9 |
$BJ,;6I=8=B?9`<0(B |
$BJ,;6I=8=B?9`<0(B |
|
@item 10 |
|
32bit $BId9f$J$7@0?t(B |
|
@item 11 |
|
$B%(%i!<%*%V%8%'%/%H(B |
|
@item 12 |
|
GF(2) $B>e$N9TNs(B |
|
@item 13 |
|
MATHCAP $B%*%V%8%'%/%H(B |
|
@item 14 |
|
$B0l3,=R8lO@M}<0(B |
|
@item -1 |
|
VOID $B%*%V%8%'%/%H(B |
@end table |
@end table |
@item |
@item |
$B?t$N7?$r5a$a$k$K$O(B, @code{ntype} $B$rMQ$$$k(B. |
$B?t$N7?$r5a$a$k$K$O(B, @code{ntype} $B$rMQ$$$k(B. |
$BITDj85$N7?$r5a$a$k$K$O(B, @code{vtype} $B$rMQ$$$k(B. |
$BITDj85$N7?$r5a$a$k$K$O(B, @code{vtype} $B$rMQ$$$k(B. |
|
\E |
|
\BEG |
|
@item |
|
Current assignment of integers for object types is listed below. |
|
@table @t |
|
@item 0 |
|
0 |
|
@item 1 |
|
number |
|
@item 2 |
|
polynomial (not number) |
|
@item 3 |
|
rational expression (not polynomial) |
|
@item 4 |
|
list |
|
@item 5 |
|
vector |
|
@item 6 |
|
matrix |
|
@item 7 |
|
string |
|
@item 8 |
|
structure |
|
@item 9 |
|
distributed polynomial |
|
@item 10 |
|
32bit unsigned integer |
|
@item 11 |
|
error object |
|
@item 12 |
|
matrix over GF(2) |
|
@item 13 |
|
MATHCAP object |
|
@item 14 |
|
first order formula |
|
@item -1 |
|
VOID object |
|
@end table |
|
@item |
|
For further classification of @var{number}, use @code{ntype()}. |
|
For further classification of @var{variable}, use @code{vtype()}. |
|
\E |
@end itemize |
@end itemize |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{ntype}, @fref{vtype}. |
@fref{ntype}, @fref{vtype}. |
@end table |
@end table |
|
|
@node ntype,,, $B7?$r5a$a$kH!?t(B |
\JP @node ntype,,, $B7?$r5a$a$kH!?t(B |
|
\EG @node ntype,,, Types |
@subsection @code{ntype} |
@subsection @code{ntype} |
@findex ntype |
@findex ntype |
|
|
@table @t |
@table @t |
@item ntype(@var{num}) |
@item ntype(@var{num}) |
:: @var{num} ($B?t(B) $B$N(B $B7?(B ($B@0?t(B) $B$rJV$9(B. |
\JP :: @var{num} ($B?t(B) $B$N(B $B7?(B ($B@0?t(B) $B$rJV$9(B. |
|
\EG :: Classifier of type @var{num}. Returns a sub-type number, an integer, for @var{obj}. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B<+A3?t(B |
\JP $B<+A3?t(B |
|
\EG integer |
@item obj |
@item obj |
$B?t(B |
\JP $B?t(B |
|
\EG number |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
$B?t$N7?$NCM$O<!$NDL$j(B. |
$B?t$N7?$NCM$O<!$NDL$j(B. |
@table @t |
@table @t |
|
|
$BJ#AG?t(B |
$BJ#AG?t(B |
@item 5 |
@item 5 |
$BM-8BBN$N85(B |
$BM-8BBN$N85(B |
|
@item 6 |
|
$BBgI8?tAGBN$N85(B |
|
@item 7 |
|
$BI8?t(B 2 $B$NM-8BBN$N85(B |
@end table |
@end table |
@item |
@item |
@code{newalg(x^2+1)} $B$G@8@.$7$??t$H(B, $B5u?tC10L(B @code{@@i} $B$O(B, |
@code{newalg(x^2+1)} $B$G@8@.$7$??t$H(B, $B5u?tC10L(B @code{@@i} $B$O(B, |
$B0[$J$k$b$N$H$7$F07$o$l$k(B. |
$B0[$J$k$b$N$H$7$F07$o$l$k(B. |
@item |
@item |
$BBe?tE*?t$K4X$7$F$O(B, @xref{$BBe?tE*?t$K4X$9$k1i;;(B}. |
$BBe?tE*?t$K4X$7$F$O(B, @xref{$BBe?tE*?t$K4X$9$k1i;;(B}. |
|
\E |
|
\BEG |
|
@item |
|
Sub-types for type number are listed below. |
|
@table @t |
|
@item 0 |
|
rational number |
|
@item 1 |
|
floating double (double precision floating point number) |
|
@item 2 |
|
algebraic number over rational number field |
|
@item 3 |
|
arbitrary precision floating point number (@b{bigfloat}) |
|
@item 4 |
|
complex number |
|
@item 5 |
|
element of a finite field |
|
@item 6 |
|
element of a large finite prime field |
|
@item 7 |
|
element of a finite field of characteristic 2 |
|
@end table |
|
@item |
|
When arithmetic operations for numbers are performed, |
|
type coercion will be taken if their number sub-types are different |
|
so that the object having smaller sub-type number will be transformed |
|
to match the other object, except for algebraic numbers. |
|
@item |
|
A number object created by @code{newalg(x^2+1)} and the unit of |
|
imaginary number @code{@@i} have different number sub-types, and |
|
it is treated independently. |
|
@item |
|
@xref{Algebraic numbers} for algebraic numbers. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
|
|
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{type}. |
@fref{type}. |
@end table |
@end table |
|
|
@node vtype,,, $B7?$r5a$a$kH!?t(B |
\JP @node vtype,,, $B7?$r5a$a$kH!?t(B |
|
\EG @node vtype,,, Types |
@subsection @code{vtype} |
@subsection @code{vtype} |
@findex vtype |
@findex vtype |
|
|
@table @t |
@table @t |
@item vtype(@var{var}) |
@item vtype(@var{var}) |
:: @var{var} ($BITDj85(B) $B$N(B $B7?(B ($B@0?t(B) $B$rJV$9(B. |
\JP :: @var{var} ($BITDj85(B) $B$N(B $B7?(B ($B@0?t(B) $B$rJV$9(B. |
|
\EG :: Type of indetarminates @var{var}. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B<+A3?t(B |
\JP $B@0?t(B |
|
\EG integer |
@item var |
@item var |
$BITDj85(B |
\JP $BITDj85(B |
|
\EG indeterminate |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
@var{var} ($BITDj85(B) $B$N7?$NCM$O<!$NDL$j(B. $B>\:Y$O(B @xref{$BITDj85$N7?(B}. |
@var{var} ($BITDj85(B) $B$N7?$NCM$O<!$NDL$j(B. $B>\:Y$O(B @xref{$BITDj85$N7?(B}. |
@table @t |
@table @t |
|
|
@item |
@item |
@code{@@pi}, @code{@@e} $B$OITDj85$H$7$F07$o$l$k$,(B, @code{eval()}, @code{pari()} |
@code{@@pi}, @code{@@e} $B$OITDj85$H$7$F07$o$l$k$,(B, @code{eval()}, @code{pari()} |
$B$K$*$$$F$O?t$H$7$F07$o$l$k(B. |
$B$K$*$$$F$O?t$H$7$F07$o$l$k(B. |
|
\E |
|
\BEG |
|
@item |
|
Classify indeterminates into sub-types by giving an integer value as follows. |
|
For details @xref{Types of indeterminates}. |
|
@table @t |
|
@item 0 |
|
ordinary indeterminate, which can be directly typed in on a keyboard |
|
(a,b,x,afo,bfo,...,etc.) |
|
@item 1 |
|
Special indeterminate, created by @code{uc()} |
|
(@code{_0}, @code{_1}, @code{_2}, ... etc.) |
|
@item 2 |
|
function form (@code{sin(x)}, @code{log(a+1)}, @code{acosh(1)}, @code{@@pi}, @code{@@e}, ... etc.) |
|
@item 3 |
|
functor (built-in functor name, user defined functor, functor for |
|
the elementary functions) |
|
: @code{sin}, @code{log}, ... etc) |
|
@end table |
|
@item |
|
Note: An input `@code{a();}' will cause an error, but it changes |
|
the system database for identifiers. After this error, you will find |
|
`@code{vtype(a)}' will result 3. (Identifier @code{a} is registered as |
|
a user defined functor). |
|
@item |
|
Usually @code{@@pi} and @code{@@e} are treated as indeterminates, |
|
whereas they are treated as numbers within functions @code{eval()} and |
|
@code{pari()}. |
|
\E |
@end itemize |
@end itemize |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{type}, @fref{ntype}, @fref{uc}. |
@fref{type}, @fref{ntype}, @fref{uc}. |
@end table |
@end table |
|
|