Numerics - Maple Help

Hardware Floating Point

 • 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.

Call-Out from evalhf

 • 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.

Numeric Summation

 • 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}$ (1)
 > st := time():
 > r := evalf(Sum(1/sqrt(i), i = 81 .. 10^6)):
 > time()-st;
 ${0.030}$ (2)
 > r;
 ${1982.056113}$ (3)
 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.

Iterative Root Search

 • 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}$ (4)
 > NextZero(x->BesselJ(1/3,x),(4));
 ${6.032747057}$ (5)

Strongly Connected Blocks

 • 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.