On Apr 13, 1:39 am, Arnaud Delobelle <arno...@googlemail.com> wrote:
> Duncan Booth <duncan.bo...@invalid.invalid> writes:
> > Duncan Booth <duncan.bo...@invalid.invalid> wrote:
>
> >> John Posner <jjpos...@snet.net> wrote:
>
> >>> Do know what in the itertools implementation causes adding a 'if p <=
> >>> sqrt(n)' clause to *decrease* performance, while adding a
> >>> 'takewhile()' clause *increases* performance?
>
> >> I haven't timed it, but I would guess that the takewhile was faster
> >> only because the sqrt(n) had been factored out of the loop. Try the
> >> original loop again precalculating the sqrt(n) and see how that compares.
>
> > Which of course is rubbish, extracting the sdqrt will have an effect but
> > the main factor is that takewhile exits the loop as soon as the condition
> > is false whereas a conditional in a generator comprehension doesn't stop
> > the loop continuing to the end.
>
> Absolutely!  Since you hadn't quoted the original code, I'd forgotten
> that it wasn't stopping after n**0.5.
>
> --
> Arnaud

-1 entertaining, list.  Come on, people, the show must go on.  Take
five.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to