number_properties — determine floating-point parameters
pr = number_properties(prop)
This function may be used to get the characteristic
numbers/properties of the floating point set denoted here by
F(b,p,emin,emax)
(usually the 64 bits float numbers set prescribe
by IEEE 754). Numbers of F
are of the form:
sign * m * b^e
e
is the exponent and m
the mantissa:
m = d_1 b^(-1) + d_2 b^(-2) + .... + d_p b^(-p)
d_i
the digits are in [0, b-1]
and e
in
[emin, emax]
, the number
is said "normalised" if d_1 ~= 0
. The following may be gotten:
then pr
is the radix b
of the set F
then pr
is the number of digits p
then pr
is the max positive float of F
then pr
is the min positive normalised float of F
then pr
is a boolean (%t if denormalised numbers are used)
then if denorm = %t, pr
is the min positive denormalised number else pr
= tiny
then pr
is the epsilon machine ( generally (b^(1-p))/2
) which is the
relative max error between a real x
(such than |x|
in
[tiny, huge]
) and fl(x)
, its floating point
approximation in F
then pr
is emin
then pr
is emax
This function uses the lapack routine dlamch to get the machine parameters (the names
(radix, digit, huge, etc...) are those recommended by the LIA 1 standard and are different
from the corresponding lapack's ones) ; CAUTION: sometimes you can see the following
definition for the epsilon machine : eps = b^(1-p)
but in this function we
use the traditionnal one (see prop = "eps" before) and so
eps = (b^(1-p))/2
if normal rounding occurs and eps = b^(1-p)
if not.