Daniel Stutzbach <dan...@stutzbachenterprises.com> added the comment:
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 ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue8692> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com