Numerics Updates in Maple 11
Hardware Floating Point
Call-Out from evalhf
Numeric Summation
Iterative Root Search
Strongly Connected Blocks
With the new option hfloat for Maple procedures, Maple uses hardware floating-point arithmetic wherever possible during the execution of the procedure. This increases performance dramatically in numeric intensive procedures, especially those operating on Arrays, Matrices, or Vectors of hardware floating-point values.
Hardware floating-point values can also be used directly, via the HFloat constructor. 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. For details, see UseHardwareFloats.
When writing procedures intended for execution in the evalhf environment, it is now possible to include calls to Maple functions that are not directly supported within $\mathrm{evalhf}$ by enclosing such calls with $\mathrm{eval}\left(\right)$. The argument to $\mathrm{eval}$ are evaluated outside of the $\mathrm{evalhf}$ environment, and the result converted back to a hardware float or array of hardware floats.
Floating point summation capability and efficiency have been considerably enhanced. Maple is able to compute floating-point approximations to a broader class of sums than before, and computes many sums much faster than before. Examples:
evalf(Sum(numtheory[mobius](n)*Li(10^(1/n))/n, n = 1 .. infinity));
${4.561000574}$
st := time():
r := evalf(Sum(1/sqrt(i), i = 81 .. 10^6)):
time()-st;
${0.026}$
r;
${1982.056113}$
The first example above was beyond Maple's abilities until now, while the second one took Maple over 750 times longer to compute.
Floating point summation now respects the $\mathrm{\_EnvFormal}$ environment variable, which was introduced in an earlier release of Maple to control the behavior of the symbolic sum command on divergent or otherwise non-convergent sums. If _EnvFormal = false, the numeric summation routine will attempt to determine convergence before computing a result.
For details, see evalf/Sum.
You can use the new RootFinding[NextZero] command to iterate through the zeros of a function in the positive real direction.
with(RootFinding,NextZero):
NextZero(x->BesselJ(1/3,x),0);
${2.902586248}$
NextZero(x->BesselJ(1/3,x),(4));
${6.032747057}$
The LinearAlgebra package has the new command StronglyConnectedBlocks for computing a block decomposition of a square Matrix for computation of the determinant or characteristic polynomial of the Matrix.
See Also
Enhancements to Symbolic Capabilities in Maple 11
Index of New Maple 11 Features
Download Help Document