Hardware Floating-point Numbers and Their Constructors - Maple Programming Help

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]).
 • To obtain the mantissa and exponent fields of a hardware float, use SFloatMantissa and SFloatExponent, respectively.
 • 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

 > $\mathrm{HFloat}\left(2.3\right)$
 ${2.30000000000000}$ (1)
 > $\mathrm{HFloat}\left(2.\right)$
 ${2.}$ (2)
 > $\mathrm{HFloat}\left(-0.3\right)$
 ${-}{0.300000000000000}$ (3)
 > $\mathrm{HFloat}\left(-23000.\right)$
 ${-}{23000.}$ (4)
 > $\cdot 1.2{10}^{5}$
 ${-}{2.760000000}{}{{10}}^{{9}}$ (5)
 > $\mathrm{type}\left(,\mathrm{hfloat}\right)$
 ${\mathrm{true}}$ (6)