Next: Integers
Up: Basic data types and
Previous: Equality, ordering, and hashing
Index
In number.cecil:
abstract object num isa ordered_hashable[num];
signature as_int(num):integer;
method as_float(n@:num):float;
signature as_single_float(num):single_float;
signature as_double_float(num):double_float;
method =(l@:num,r@:num):bool;
method <(l@:num,r@:num):bool;
signature +(`T <= num, T):T; - standard arithmetic
signature -(`T <= num, T):T;
signature *(`T <= num, T):T;
signature /(`T <= num, T):T;
signature /_float(`T <= num, T):T & float;
implementation +(l@:num,r@:num):float;
implementation -(l@:num,r@:num):float;
implementation *(l@:num,r@:num):float;
implementation /(l@:num,r@:num):float;
implementation /_float(l@:num,r@:num):float;
signature +(integer, float):float;
signature +(float, integer):float;
signature -(integer, float):float;
signature -(float, integer):float;
signature *(integer, float):float;
signature *(float, integer):float;
signature /(integer, float):float;
signature /(float, integer):float;
signature /_float(integer, float):float;
signature /_float(float, integer):float;
method negate(n:`T <= num):T;
method -(n:`T <= num):T;
method +(n:`T <= num):T;
method -_ov(l@:num):num;
method +_ov(l@:num,r@:num):num;
method -_ov(l@:num,r@:num):num;
method *_ov(l@:num,r@:num):num;
method /_ov(l@:num,r@:num):num;
method /_float_ov(l@:num,r@:num):num;
method pred(i@:`T <= num):T;
method succ(i@:`T <= num):T;
method square(n:`T <= num):T;
method cube(n:`T <= num):T;
method abs(n:`T <= num):T; - absolute value
method sign(x:num):int; - return -1, 0, or 1 depending on sign of argument
method average(n1:`T <= num, n2:`T):T|int; - arithmetic average: (n1+n2)/2
method power(x@:`T <= num, power:integer):S
where signature *_ov(T,T):`S <= T; - exponentiation
method **(x@:`T <= num, power:integer):S
where signature *_ov(T,T):`S <= T; - same as power
method sqrt(x@:`T <= num):T;
Numbers support the standard arithmetic operations, plus the
protocol of totally-ordered objects (=, <, min, etc.). This
contract implies that all subclasses of number are freely mixable
at run-time.
Subsections
Next: Integers
Up: Basic data types and
Previous: Equality, ordering, and hashing
Index
Cecil/Vortex Project