Yury Selivanov added the comment: > mod = left % right if size_a == size_b else right - 1 - (left - 1) % right
This works, Mark! Again, the difference in performance is very subtle, but the code is more compact. -m timeit -s "x=22331" "x//2;x//-3;x//4;x//5;x//-6;x//7;x//8;x//-99;x//100;" with patch: 0.321 without patch: 0.633 -m timeit -s "x=22331" "x%2;x%3;x%-4;x%5;x%6;x%-7;x%8;x%99;x%-100;" with patch: 0.224 without patch: 0.66 -m timeit "divmod(100,20);divmod(7,3);divmod(121,99);divmod(123121,123);divmod(-1000,7);divmod(23423,-111)" with patch: 0.839 without patch: 1.07 I'm in favour of fast_divmod_2.patch for solving both this issue and issue #26315. Serhiy, what do you think? ---------- Added file: http://bugs.python.org/file41875/fast_divmod_2.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue26289> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com