• Mark Dickinson's avatar
    Issue #5512: speed up the long division algorithm for Python longs. · 0b666bfd
    Mark Dickinson yazdı
    The basic algorithm remains the same; the most significant speedups
    come from the following three changes:
    
      (1) normalize by shifting instead of multiplying and dividing
      (2) the old algorithm usually did an unnecessary extra iteration of
          the outer loop; remove this.  As a special case, this means that
          long divisions with a single-digit result run twice as fast as
          before.
      (3) make inner loop much tighter.
    
    Various benchmarks show speedups of between 50% and 150% for long
    integer divisions and modulo operations.
    0b666bfd
longobject.c 93.7 KB