Hardware Floating-point Numbers and Their Constructors
|
Calling Sequence
|
|
HFloat(M, E)
HFloat(M, E, base)
|
|
Parameters
|
|
M
|
-
|
expression
|
E
|
-
|
(optional) expression
|
base
|
-
|
(optional) 2 or default 10
|
|
|
|
|
Description
|
|
•
|
A hardware floating-point number (an object of type hfloat) is represented internally in Maple as a 64-bit IEEE binary floating-point value.
|
•
|
The HFloat(M, E) command can be used to construct the hardware floating-point number M * base^E.
|
|
If the mantissa parameter M is of type imaginary, HFloat(M, E) returns I * HFloat(Im(M), E).
|
|
If the mantissa is of type nonreal, HFloat(M, E) returns HFloat(Re(M), E) + I * HFloat(Im(M), E).
|
|
Maple also has arbitrary-precision software floating-point numbers, of type sfloat (see type[sfloat]), which can be constructed using the SFloat or Float constructor.
|
•
|
The maximum number of digits in the mantissa of a hardware float, and the maximum and minimum allowable exponents, can be obtained from evalhf (see evalhf[constant]).
|
•
|
A hardware float, H, can be converted to a software float using SFloat(H). Similarly, a software float, S, can be converted to a hardware float using HFloat(S).
|
•
|
The presence of a hardware floating-point number in an expression generally implies that the computation will use hardware floating-point evaluation, unless the settings of Digits and UseHardwareFloats specify otherwise (see UseHardwareFloats).
|
•
|
An expression can be forced to evaluate entirely using hardware floating-point by enclosing it in a call to evalhf. However, some expressions, notably those involving data structures, cannot be evaluated by evalhf.
|
•
|
Entire procedures can be written to work using hardware floats without the restrictions imposed by evalhf by adding option hfloat to the procedure (see option_hfloat).
|
•
|
The number of digits carried in the mantissa for hardware floating-point arithmetic is approximately 15. More digits are displayed to ensure a base 10 representation from which the underlying binary hardware floating-point value can be reliably reconstructed.
|
•
|
Maple includes a variety of numeric functions to use with both hardware and software floating-point numbers.
|
•
|
The behaviors of hardware floating-point infinities, undefined values (so called "Not a Number", or "NaN", in IEEE nomenclature), and zero, are analogous to the corresponding software floating-point concepts. Please refer to Float for details.
|
|
|
Examples
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
>
|
|
| (5) |
>
|
|
| (6) |
|
|
See Also
|
|
constant, convert, Default0, Digits, evalf, integer, op, option_hfloat, SFloat, type, type/cx_infinity, type[float], type[hfloat], type[numeric], type[sfloat], UseHardwareFloats
|
|