real_emin an integer value indicating the smallest binary exponent. real_emax an integer value indicating the largest binary exponent. real_precision an integer value indicating the number of binary digits of precision available \tex{in} reals.The following values describe the range of values and the granularity.
real_max a real value indicating the maximum value of a real. real_min a real value indicating the minimum value of a normalized real number. real_epsilon a real value indicating the value of a bit in the least significant position \tex{in} the fraction \tex{when} the exponent is zero. real_round_style an enumerated value indicating the rounding style: real_round_toward_zero real_round_toward_minus_infinity real_round_otherNote that
real_max = \tex{$(1 - 2^{-\mbox{\small real\_precision}}) * 2^{\mbox{\small real\_emax}}$} real_min = \tex{$2^{(\mbox{\small real\_emin}-1)}$} real_epsilon = \tex{$2^{(1-\mbox{\small real\_precision})}$}"Real" literals can have any one of the following forms:
<real_literal> -> [ <digits> ] "." <digits> [ <exponent> ] | <digits> <exponent> <exponent> -> "e" [ "+" | "-" ] <digits> | "E" [ "+" | "-" ] <digits>where digits is a non-empty sequence of digits in the range 0-9. No spaces are allowed in the middle of a real_literal. Here are some examples of legal real_literals:
2.6 25.0 .05 5.2e-3 5.2e+3 2e10 .02E2 .0E5
Note that a decimal point must be followed by one or more digits, so the following are _not_ legal real literals:
1. 45.e6
negate ( ) returns (real) % effects returns -self. add (x: real) returns (real) signals (overflow, underflow) % effects returns self + x. Signals overflow if result is too big to be represented. % Signals underflow if result it too close to zero to be represented. subtract (x: real) returns (real) signals (overflow, underflow) % effects returns self - x. Signals overflow if result is too big to be represented. % Signals underflow if result it too close to zero to be represented. multiply (x: real) returns (real) signals (overflow, underflow) % effects returns self * x. Signals overflow if result is too big to be represented. % Signals underflow if result it too close to zero to be represented. divide (x: real) returns (real) signals (overflow, underflow, zero_divide) % effects returns self / x. Signals overflow if result is too big to be represented. % Signals underflow if result it too close to zero to be represented. % Signals zero_divide if x = 0. power (x: real) returns (real) signals (overflow, underflow, complex_result, zero_divide) % effects returns self raised to the x power. % Signals overflow if result is too big to be represented. % Signals underflow if result it too close to zero to be represented. % Signals zero_divide if self = 0 and x < 0. % Signals complex_result if self < 0 and x has a fractional component. abs ( ) returns (real) % effects returns the absolute value of self. exponent ( ) returns (int) signals (undefined) % effects returns n such that \tex{$2^{n-1} \le \mbox{self} < 2^{n}$} % Signals undefined if self = 0. mantissa ( ) returns (real) % effects returns \tex{\(x\)} such that \tex{\( x \times 2^{{\thet self.exponent()}} \; = \; {\thet self}\)} max (x: real) returns (real) % effects returns the larger of self and x min (x: real) returns (real) % effects returns the smaller of self and x to_int ( ) returns (int) signals (overflow) % effects returns self rounded to the nearest integer (towards zero, in the case of a tie). % Signals overflow if the rounded number can not be represented as an integer. floor ( ) returns (real) % effects returns self rounded toward negative infinity. ceiling ( ) returns (real) % effects returns self rounded toward positive infinity. lt (x: real) returns (bool) % effects returns (self < x) le (x: real) returns (bool) % effects returns (self \tex{$\le$} x) gt (x: real) returns (bool) % effects returns (self > x) ge (x: real) returns (bool) % effects returns (self \tex{$\ge$} x) equal (x: real) returns (bool) % effects returns (self = x) similar (x: real) returns (bool) % effects returns (self = x) copy ( ) returns (real) % effects returns self unparse ( ) returns (string) % effects returns the string representation of a literal corresponding to self. % The general form is [-]intpart.fractpart[e+/-exp].