Message105653
After experimenting with changing the order of the multiplications and not having much luck, I went back and looked for other differences in Alexander's Python functions that might cause the speed difference. I believe partial_product2 is fast because it performs all of its operations in-place using a single list, whereas partial_product3 creates a new list during each iteration. Here's a version of partial_product3 that operates in-place and is just as fast as partial_product2:
def partial_product3(j, i):
a = [l << 1 | 1 for l in range(j, i + 1)]
n = len(a)
while 1:
if n == 1:
return a[0]
half = n//2
for k in range(0,half):
a[k] = a[k*2] * a[k*2+1]
if n & 1:
a[half] = a[n-1]
n = half |
|
Date |
User |
Action |
Args |
2010-05-13 19:35:29 | stutzbach | set | recipients:
+ stutzbach, rhettinger, mark.dickinson, belopolsky, draghuram |
2010-05-13 19:35:29 | stutzbach | set | messageid: <1273779329.13.0.0285901169814.issue8692@psf.upfronthosting.co.za> |
2010-05-13 19:35:28 | stutzbach | link | issue8692 messages |
2010-05-13 19:35:27 | stutzbach | create | |
|