5.2 3d calculation from v5 takes 60times more on v7 (15.10.01)

5.2.1 Martyn Caron (23.10.01)
5.2.2 Frank Gerdes (15.10.01)
5.2.3 Robert Israel (16.10.01)
5.2.4 Thomas Richard (26.10.01)
5.2.5 Frank Gerdes (25.10.01)

5.2.1 Martyn Caron (23.10.01)

We had buy a v7 version of Maple. All my calculation that was working good on v5 take up to 60 times more on v7. My PC is an PIII/866, on Windows 98 SE. Ex. Takes 3 second on v5 takes 180 seconds on v7. Here is an exemple of the calculation:

restart;with(plots):with(plottools): 
`De forme avec des cylindres`; 
 volume:=cuboid([0,0,0],[4,4,4],color=green): 
 f1:=cylinder([2,2,3.9],0.5,0.15,color=pink): 
 f3:=seq(rotate(cylinder([3.9,i,i],0.4,0.15,color=pink),Pi/2,[[3.9,0,i], 
         [3.9,4,i]]),i=1..3): 
 f6:=seq(seq(cylinder([i,j,-0.05],0.4,0.15,color=pink),i=1..3),j=[1,3]): 
 display(volume,f1,f3,f6,scaling=constrained,axes=none,orientation=[-40,70]); 
 c1:=cylinder([0,0,0],1,1,color=red): 
 rotate(c1,Pi/2,[[1,1,1],[2,2,2]]);
 

5.2.2 Frank Gerdes (15.10.01)

Because I am thinking about upgrading from Maple 6 to Maple 7, I did the test with Martyn’s code.

My system is a PC with WIN 98 SE, 366MHz, 128MB.

Maple V Release 5.1: 85 seconds

Maple 6.02: 193 seconds

The perfomance difference is not as dramatic as the one reported by Martyn, but certainly significant.

I made sure to quit Maple V version before I started Maple 6 and vise versa. I also repeated the test after rebooting, etc.

Now, I am wondering whether Martyn’s result with Maple 7 tell me that I should stay away from Maple 7.

5.2.3 Robert Israel (16.10.01)

Examination of the code of plottools[rotate] shows an obvious inefficiency: the transformation involves a function that is hellishly complicated, but should be very simple. One possible patch is to make a1, a2, a3 local variables and change line 41:

f := proc (a1, a2, a3) ...etc... end proc
 

to

f:= unapply(...etc..., a1,a2,a3)
 

5.2.4 Thomas Richard (26.10.01)

Frank Gerdes wrote:

| I made sure to quit Maple V version before I started Maple 6 ...

This should be unnecessary for such comparisons (except in cases with extreme memory consumption).

| Now, I am wondering whether Martyn's result with Maple 7 tell me ...

Wrapping the last rotate statement in display() (probably intended so), I obtain these timings (P-III 700MHz, NT4 SP6, Matrox G200 AGP):

Maple 7 : 53.326s 
 
Maple 6.02a: 51.363s 
 
Release 5.1: 32.305s
 

In Release 5.1, the graphics are not as accurate as in newer versions: the dice marks are not completely filled, and the grid lines are less regularly distributed on the cylinder. Maybe a matter of taste...

5.2.5 Frank Gerdes (25.10.01)

Meanwhile I got Maple 7 and found that it is as slow as Maple 6 when executing Martyn’s code. I mean slow compared to Maple V R5.1 (see previous postings below).

I had a look at the code of plottools[rotate] and I agree that is is very complicated and that it might be inefficient. But I am fairly sure that Maple V R5.1, Maple 6 and Maple 7 use the same code. I did a visual inspection and could not find any signficant differences.

So, that leaves me still puzzled why Maple 6 and Maple 7 are so much slower when executing plottools/rotate'-code than Maple V R5.1.

P.S.: I suppose most of the time one doesn’t notice these things, because PCs seem to get faster at a slightly larger rate than software gets slower.

I got the following timings: (U. Klein)

MapleV.5.1: 42.899s 
 
Maple6.01: 77.361s 
 
Maple7: 85.040s 
 
Maple8: 4.210s