• Mark Dickinson's avatar
    Issue #8692: Improve performance of math.factorial: · 4c8a9a2d
    Mark Dickinson yazdı
    (1) use a different algorithm that roughly halves the total number of
        multiplications required and results in more balanced multiplications
    (2) use a lookup table for small arguments
    (3) fast accumulation of products in C integer arithmetic rather than
        PyLong arithmetic when possible.
    
    Typical speedup, from unscientific testing on a 64-bit laptop, is 4.5x
    to 6.5x for arguments in the range 100 - 10000.
    
    Patch by Daniel Stutzbach; extensive reviews by Alexander Belopolsky.
    4c8a9a2d
test_math.py 44.6 KB