Funcons-beta : Floats.cbs | PRETTY | PDF
Floats
[
Datatype float-formats
Funcon binary32
Funcon binary64
Funcon binary128
Funcon decimal64
Funcon decimal128
Type floats
Funcon float
Funcon quiet-not-a-number Alias qNaN
Funcon signaling-not-a-number Alias sNaN
Funcon positive-infinity Alias pos-inf
Funcon negative-infinity Alias neg-inf
Funcon float-convert
Funcon decimal-float
Funcon float-equal
Funcon float-is-less
Funcon float-is-less-or-equal
Funcon float-is-greater
Funcon float-is-greater-or-equal
Funcon float-negate
Funcon float-absolute-value
Funcon float-add
Funcon float-subtract
Funcon float-multiply
Funcon float-multiply-add
Funcon float-divide
Funcon float-remainder
Funcon float-sqrt
Funcon float-integer-power
Funcon float-float-power
Funcon float-round-ties-to-even
Funcon float-round-ties-to-infinity
Funcon float-floor
Funcon float-ceiling
Funcon float-truncate
Funcon float-pi
Funcon float-e
Funcon float-log
Funcon float-log10
Funcon float-exp
Funcon float-sin
Funcon float-cos
Funcon float-tan
Funcon float-asin
Funcon float-acos
Funcon float-atan
Funcon float-sinh
Funcon float-cosh
Funcon float-tanh
Funcon float-asinh
Funcon float-acosh
Funcon float-atanh
Funcon float-atan2
]
Floating-point numbers according to the IEEE 754 Standard (2008).
See:
Datatype
float-formats ::= binary32 | binary64 | binary128 | decimal64 | decimal128
Built-in Type
floats(_:float-formats)
Note that for distinct formats FF1
, FF2
, the types floats(FF1)
and
floats(FF2)
are not necessarily disjoint.
Built-in Funcon
float(FF:float-formats,
_:bounded-integers(0, 1), _:natural-numbers, _:integers) : =>floats(FF)
Each finite number is described by three integers:
- s = a sign (zero or one),
- c = a significand (or ‘coefficient’),
- q = an exponent. The numerical value of a finite number is (-1)^s * c * b^q where b is the base (2 or 10), also called radix.
The possible finite values that can be represented in a format are determined by the base b, the number of digits in the significand (precision p), and the exponent parameter emax:
- c must be an integer in the range zero through (b^p)-1 (e.g., if b=10 and p=7 then c is 0 through 9999999);
- q must be an integer such that 1-emax <= q+p-1 <= emax (e.g., if p=7 and emax=96 then q is -101 through 90).
Note that float(FF, S, C, Q)
is not a 1-1 operation.
Built-in Funcon
quiet-not-a-number(FF:float-formats) : floats(FF)
Alias
qNaN = quiet-not-a-number
Built-in Funcon
signaling-not-a-number(FF:float-formats) : floats(FF)
Alias
sNaN = signaling-not-a-number
Built-in Funcon
positive-infinity(FF:float-formats) : floats(FF)
Alias
pos-inf = positive-infinity
Built-in Funcon
negative-infinity(FF:float-formats) : floats(FF)
Alias
neg-inf = negative-infinity
Conversions
Built-in Funcon
float-convert(FF1:float-formats,
FF2:float-formats, F:floats(FF1)) : =>floats(FF2)
Built-in Funcon
decimal-float(FF:float-formats,
_:strings, _:strings, _:strings) : =>floats(FF)
decimal-float(F, "M", "N", "E")
is an approximation in floats(FF)
to the
value of ‘M.N’ times 10 to the power ‘E’, where “M.N” is decimal notation
(optionally-signed) for a fixed-point number and “E” is decimal notation
(optionally signed) for an integer. When any argument string is invalid,
the result is quiet-not-a-number(F)
.
Comparison
Built-in Funcon
float-equal(FF:float-formats,
_:floats(FF), _:floats(FF)) : =>booleans
Built-in Funcon
float-is-less(FF:float-formats,
_:floats(FF), _:floats(FF)) : =>booleans
Built-in Funcon
float-is-less-or-equal(FF:float-formats,
_:floats(FF), _:floats(FF)) : =>booleans
Built-in Funcon
float-is-greater(FF:float-formats,
_:floats(FF), _:floats(FF)) : =>booleans
Built-in Funcon
float-is-greater-or-equal(FF:float-formats,
_:floats(FF), _:floats(FF)) : =>booleans
Arithmetic
Built-in Funcon
float-negate(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-absolute-value(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-add(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-subtract(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-multiply(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-multiply-add(FF:float-formats,
_:floats(FF), _:floats(FF), _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-divide(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-remainder(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-sqrt(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-integer-power(FF:float-formats, _:floats(FF), _:integers) : =>floats(FF)
Built-in Funcon
float-float-power(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)
Rounding
Built-in Funcon
float-round-ties-to-even(FF:float-formats, _:floats(FF)) : =>integers
Built-in Funcon
float-round-ties-to-infinity(FF:float-formats, _:floats(FF)) : =>integers
Built-in Funcon
float-floor(FF:float-formats, _:floats(FF)) : =>integers
Built-in Funcon
float-ceiling(FF:float-formats, _:floats(FF)) : =>integers
Built-in Funcon
float-truncate(FF:float-formats, _:floats(FF)) : =>integers
Miscellaneous
Built-in Funcon
float-pi(FF:float-formats) : =>floats(FF)
Built-in Funcon
float-e(FF:float-formats) : =>floats(FF)
Built-in Funcon
float-log(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-log10(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-exp(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-sin(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-cos(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-tan(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-asin(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-acos(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-atan(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-sinh(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-cosh(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-tanh(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-asinh(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-acosh(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-atanh(FF:float-formats, _:floats(FF)) : =>floats(FF)
Built-in Funcon
float-atan2(FF:float-formats, _:floats(FF), _:floats(FF)) : =>floats(FF)