Efficiency Improvements in Maple 9.5
A number of efficiency improvements have been applied to Maple. Maple 9.5 is faster and uses less memory.
Quotients of Polynomials
Indefinite Rational Summation
Operations on Matrix Sub-blocks
Rtable Type Checks
Conversions Between diff and D
Numerical Linear Algebra
Maple 9.5 is more efficient when computing the quotient of sparse polynomials.
Example
p1 := 25000000000000000000*x^24*(234374765625000000*(x^(1/5000000000*a))^609256031*y^9256031 + 7946285261481299*x^12*y^27768093 - 56259267500000000*(x^(1/10000000000*a))^609256031*x^6*z^9256031)^4;
p1≔25000000000000000000⁢x24⁢234374765625000000⁢xa5000000000609256031⁢y9256031+7946285261481299⁢x12⁢y27768093−56259267500000000⁢xa10000000000609256031⁢x6⁢z92560314
p2 := y^100000000-x;
p2≔y100000000−x
t0 := time():
res := quo(p1, p2, y);
res≔99677380232696642539570742968540066928124035645820992834105370025000000000000000000⁢x72⁢y11072372
time_consumed = time()-t0;
time_consumed=0.004
The algorithm of Gerhard, Giesbrecht, Storjohann, and Zima for indefinite rational summation has been incorporated into SumTools[Hypergeometric][SumDecomposition]. It is faster than the previous algorithm when the dispersion of the input is large.
ee := (x^2+2000*x+1001000)/((x+1001)*(x+1000)*x);
ee≔x2+2000⁢x+1001000x+1001⁢x+1000⁢x
Sum(ee,x) = sum(ee,x);
∑x⁡x2+2000⁢x+1001000x+1001⁢x+1000⁢x=1x+1000+Ψ⁡x
time_consumed = time() - t0;
time_consumed=0.045
The new rtable_scanblock command performs efficient block-operations on regions of a Matrix, Vector, or Array.
Type checks of the form type(M,'Matrix'(algebraic)), which usually need to scan the entries of the given Matrix, Vector, or Array are much faster in Maple 9.5.
M := LinearAlgebra:-RandomMatrix(500);
time_consumed = time( type(M, 'Matrix'(algebraic)) );
time_consumed=0.005
Maple 9.5 includes faster conversions between the diff and D notations for derivatives.
diff( f(x,y,z,t), x$74, y$143, z$236 );
∂453∂x74∂y143∂z236f⁡x,y,z,t
time_consumed = time( convert( (10), D ) ); # before it was 1/2 minute in typical machines
time_consumed=0.010
Windows
Maple 9.5 for Windows uses version 6.1 of the Intel Math Kernel Library (MKL) resulting in faster computation for large-sized hardware floating-point linear algebra operations.
The following example takes approximately 6.7 seconds in Maple 9 and 4.0 seconds in Maple 9.5 on a 1.7GHz P4 machine running Windows 2000.
M := LinearAlgebra:-RandomMatrix( 1600, outputoptions = [datatype = float[8]] ):
time( M.M ); # see text above for timings
Linux and Macintosh OS X
Maple 9.5 for Linux and Macintosh OS X uses tuned versions, from ATLAS, of a select group of CLAPACK functions related to hardware floating-point linear algebra computations, such as LUDecomposition and LinearSolve.
The following example takes approximately 0.66 seconds in Maple 9 and 0.40 seconds in Maple 9.5 on a 2.4GHz P4 machine running Linux. On a G5 machine running OS X 10.3, this example takes approximately 0.43 seconds in Maple 9 and 0.25 seconds in Maple 9.5.
M := LinearAlgebra:-RandomMatrix( 1000, outputoptions = [datatype = float[8]] ):
V := LinearAlgebra:-RandomVector( 1000, outputoptions = [datatype = float[8]] ):
time( LinearAlgebra:-LinearSolve( M, V ) ); # see text above for timings
See Also
copyright
Index of New Maple 9.5 Features
Download Help Document