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

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Numerical Computations : Maple Numerics : Constructors : HFloat

Hardware Floating-point Numbers and Their Constructors

 

Calling Sequence

Parameters

Description

Examples

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.

CopySign

Default0

DefaultOverflow

DefaultUnderflow

denom

frem

ilog10

ilog2

Im

NextAfter

numer

NumericClass

OrderedNE

Re

Scale10

Scale2

SFloatExponent

SFloatMantissa

Unordered

 

• 

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. For details, see Float.

Examples

HFloat2.3

2.30000000000000

(1)

HFloat2.

2.

(2)

HFloat0.3

−0.300000000000000

(3)

HFloat23000.

−23000.

(4)

1.2105

−2.760000000109

(5)

type,hfloat

true

(6)

See Also

convert

Default0

Digits

evalhf

evalhf/constant

integer

op

option_hfloat

SFloat

type

type/cx_infinity

type/float

type/hfloat

type/numeric

type/sfloat

UseHardwareFloats