evalhf
evaluate an expression using hardware floating-point
Calling Sequence
Parameters
Description
Thread Safety
Examples
Compatibility
evalhf(expr)
evalhf[hfloat](expr)
expr
-
expression to be evaluated numerically
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.
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.
evalhf⁡sin⁡exp⁡γ+2+ln⁡cos⁡Catalan
0.0980197901238379354
A≔Matrix⁡3,2,i,j↦i+I⋅j,datatype=complex8
A≔1.+I1.+2.⁢I2.+I2.+2.⁢I3.+I3.+2.⁢I
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
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.
g := proc(x) x^5*ln(x)/(1+x^2) end proc:
evalhf⁡g⁡2
4.43614195558364965
solutions≔solve⁡x3=−3
solutions≔−313,3132−I⁢3562,3132+I⁢3562
map⁡evalhf,solutions
−1.44224957030740830,0.721124785153704151−1.24902476648340643⁢I,0.721124785153704151+1.24902476648340643⁢I
Digits≔trunc⁡evalhf⁡Digits
Digits≔15
evalf⁡g⁡2
4.43614195558365
s1≔evalhf⁡sin⁡1
s1≔0.841470984807896505
type⁡s1,hfloat
false
type⁡s1⋅2,hfloat
s2≔evalhfhfloat⁡sin⁡2
s2≔0.909297426825682
type⁡s2,hfloat
true
type⁡s2⋅2,hfloat
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
Download Help Document