Overview - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.

Online Help

All Products    Maple    MapleSim


evalhf

evaluate an expression using hardware floating-point

 

Calling Sequence

Parameters

Description

Thread Safety

Examples

Compatibility

Calling Sequence

evalhf(expr)

evalhf[hfloat](expr)

Parameters

expr

-

expression to be evaluated numerically

Description

• 

A call to evalhf evaluates an expression to a numerical value using the floating-point hardware of the underlying system. The evaluation is done in double precision.

• 

In some cases evalhf may call evalf for evaluation of some special functions with complex arguments, or with real arguments leading to complex results.

• 

The argument of evalhf must be an expression that evaluates to a single value; an hfarray or rtable with datatype=float8, double, or complex8; or a procedure. As opposed to evalf, no other symbolic answers are permitted.

• 

The argument evaluated by evalhf can include function calls, either to standard functions (such as sin and arctan; see evalhf/fcnlist) or to user-defined functions in Maple.  There are restrictions on user-defined functions to be properly evaluated within the evalhf environment. For details, see evalhf/procedure.

• 

The evalhf function converts all its arguments to hardware floats, computes the answer and converts the result to a Maple software float value. Hence the user never deals with hardware floating-point numbers; these are confined to evalhf.

• 

It is advantageous to do as much computation as possible within a single call to evalhf, to avoid the conversion overhead.

• 

When evalhf returns an hfarray or rtable with datatype=float8, datatype=double, or datatype=complex8, no conversion to Maple floats takes place. Using hfarrays or rtables with datatype=float8, double, or complex8, it is possible to pass data between invocations of evalhf at almost no cost.

• 

Maple includes evalhf for the purpose of gaining speed in numerical computations or for users who wish to use the hardware floating-point system.

• 

If Digits is set equal to (the integer part of) the special value evalhf(Digits) (approximately 15 on many 32-bit architectures) then evalf and evalhf (when both succeed) should produce similar results.

• 

In the evalhf environment, non-default numeric event handling settings are not guaranteed to be respected.

• 

The evalhf[hfloat] function is identical to evalhf, except that the returned result is not converted to a software floating-point value. Such a returned value can be used in further expressions, where, depending on the setting of UseHardwareFloats, computation will be carried out using the hardware floating-point environment.

Thread Safety

• 

The evalhf command is thread safe as of Maple 15, provided that evaluating the given expression is itself thread safe.

• 

For more information on thread safety, see index/threadsafe.

Examples

> 

evalhf⁡sin⁡exp⁡γ+2+ln⁡cos⁡Catalan

0.0980197901238379354

(1)
> 

A≔Matrix⁡3,2,i,j↦i+I⋅j,datatype=complex8

A≔1.+I1.+2.⁢I2.+I2.+2.⁢I3.+I3.+2.⁢I

(2)
> 

evalhf⁡map⁡sin,A

1.29845758141598+0.634963914784736⁢I3.16577851321617+1.95960104142161⁢I1.40311925062204−0.489056259041294⁢I3.42095486111701−1.50930648532362⁢I0.217759551622152−1.16344036370325⁢I0.530921086248520−3.59056458998578⁢I

(3)
> 

f := proc(n) if n<2 then n else (n+1)*f(n-1)/n end if end proc:

> 

evalhf⁡f⁡100+f⁡10+f⁡1

57.

(4)
> 

g := proc(x) x^5*ln(x)/(1+x^2) end proc:

> 

evalhf⁡g⁡2

4.43614195558364965

(5)
> 

solutions≔solve⁡x3=−3

solutions≔−313,3132−I⁢3562,3132+I⁢3562

(6)
> 

map⁡evalhf&comma;solutions

−1.44224957030740830&comma;0.721124785153704151−1.24902476648340643⁢I&comma;0.721124785153704151+1.24902476648340643⁢I

(7)
> 

Digits≔trunc⁡evalhf⁡Digits

Digits≔15

(8)
> 

evalf⁡g⁡2

4.43614195558365

(9)
> 

s1≔evalhf⁡sin⁡1

s1≔0.841470984807896505

(10)
> 

type⁡s1&comma;hfloat

false

(11)
> 

type⁡s1⋅2&comma;hfloat

false

(12)
> 

s2≔evalhfhfloat⁡sin⁡2

s2≔0.909297426825682

(13)
> 

type⁡s2&comma;hfloat

true

(14)
> 

type⁡s2⋅2&comma;hfloat

true

(15)

Compatibility

• 

The hfloat option was introduced in Maple 2021.

• 

For more information on Maple 2021 changes, see Updates in Maple 2021.

See Also

evalhf/array

evalhf/boolean

evalhf/constant

evalhf/fcnlist

evalhf/fortran

evalhf/hfarray

evalhf/var

Numerical Programming in Maple

option_hfloat

rtable