Hello:
  A colleague was working in code for a certain projecteuler problem,
and found that using "len" of a list has a severe penalty on the sage
notebook, which doesn't happen on either the sage or the python console.
The two versions of the code below differ only in a call to the function
len. In console, the penalty in performance is around 10%, but in the
Sage notebook, it takes 3 times longer: the call to "len" costs doble
time as the rest of the loop. Anyway, we've been getting weird results
from time and its family lately (like CPU time longer than Wall time: is
that ok?). This is tested on versions 4.6 and 4.4, on different
architectures.

Regards

Version 1

tri=pen=hex=dt=dp=dh=1
results=[]
cota = 3
while len(results)<cota:
    if tri==pen==hex:
        results.append(tri)
    if tri<=pen and tri<=hex:
        dt+=1
        tri+=dt
    elif pen<=hex:
        dp+=3;
        pen+=dp
    else:
        dh+=4;
        hex+=dh
print results


Version 2

cota = 3
tri=pen=hex=dt=dp=dh=1
results=[]
n=0
while n<cota:
    if tri==pen==hex:
        results.append(tri)
        n+=1
    if tri<=pen and tri<=hex:
        dt+=1
        tri+=dt
    elif pen<=hex:
        dp+=3;
        pen+=dp
    else:
        dh+=4;
        hex+=dh
print results

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to