|
evalhf - evaluate an expression using hardware floating-point
|
|
Calling Sequence
|
|
evalhf(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 or , 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) or to user-defined functions in Maple (see evalhf/procedure). Also see evalhf/procedure for all the restrictions on user functions to be properly evaluated within evalhf.
|
|
•
|
The evalhf function converts all its arguments to hardware floats, computes the answer and converts the answer to a Maple float result. 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.
|
|
•
|
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.
|
|
|
|
Thread Safety
|
|
|
•
|
The evalhf command is thread safe as of Maple 15, provided that evaluating the given expression is itself thread safe.
|
|
|
|
Examples
|
|
|
>
|
|
|
| (1) |
|
>
|
|
|
| (2) |
|
>
|
|
|
| (3) |
|
>
|
f := proc(n) if n<2 then n else (n+1)*f(n-1)/n end if end proc:
|
|
>
|
|
|
| (4) |
|
>
|
g := proc(x) x^5*ln(x)/(1+x^2) end proc:
|
|
>
|
|
|
| (5) |
|
>
|
|
|
| (6) |
|
>
|
|
|
![[-1.44224957030740830, .721124785153704151-1.24902476648340643*I, .721124785153704151+1.24902476648340643*I]](/support/help/helpview.aspx?si=1264/file00264/math196.png)
| (7) |
|
>
|
|
|
| (8) |
|
>
|
|
|
| (9) |
|
|
Download Help Document
Was this information helpful?