• 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
Adı
Son kayıt (commit)
Son güncelleme
..
_ctypes Loading commit data...
_io Loading commit data...
_multiprocessing Loading commit data...
_sqlite Loading commit data...
cjkcodecs Loading commit data...
expat Loading commit data...
zlib Loading commit data...
Setup.config.in Loading commit data...
Setup.dist Loading commit data...
_bisectmodule.c Loading commit data...
_codecsmodule.c Loading commit data...
_collectionsmodule.c Loading commit data...
_csv.c Loading commit data...
_curses_panel.c Loading commit data...
_cursesmodule.c Loading commit data...
_dbmmodule.c Loading commit data...
_elementtree.c Loading commit data...
_functoolsmodule.c Loading commit data...
_gdbmmodule.c Loading commit data...
_gestalt.c Loading commit data...
_hashopenssl.c Loading commit data...
_heapqmodule.c Loading commit data...
_json.c Loading commit data...
_localemodule.c Loading commit data...
_lsprof.c Loading commit data...
_math.c Loading commit data...
_math.h Loading commit data...
_pickle.c Loading commit data...
_posixsubprocess.c Loading commit data...
_randommodule.c Loading commit data...
_scproxy.c Loading commit data...
_sre.c Loading commit data...
_ssl.c Loading commit data...
_struct.c Loading commit data...
_testcapimodule.c Loading commit data...
_threadmodule.c Loading commit data...
_tkinter.c Loading commit data...
_weakref.c Loading commit data...
addrinfo.h Loading commit data...
ar_beos Loading commit data...
arraymodule.c Loading commit data...
atexitmodule.c Loading commit data...
audioop.c Loading commit data...
binascii.c Loading commit data...
bz2module.c Loading commit data...
cmathmodule.c Loading commit data...
config.c.in Loading commit data...
cryptmodule.c Loading commit data...
datetimemodule.c Loading commit data...
errnomodule.c Loading commit data...
fcntlmodule.c Loading commit data...
fpectlmodule.c Loading commit data...
fpetestmodule.c Loading commit data...
gc_weakref.txt Loading commit data...
gcmodule.c Loading commit data...
getaddrinfo.c Loading commit data...
getbuildinfo.c Loading commit data...
getnameinfo.c Loading commit data...
getpath.c Loading commit data...
grpmodule.c Loading commit data...
hashlib.h Loading commit data...
itertoolsmodule.c Loading commit data...
ld_so_aix Loading commit data...
ld_so_beos Loading commit data...
main.c Loading commit data...
makesetup Loading commit data...
makexp_aix Loading commit data...
mathmodule.c Loading commit data...
md5module.c Loading commit data...
mmapmodule.c Loading commit data...
nismodule.c Loading commit data...
operator.c Loading commit data...
ossaudiodev.c Loading commit data...
parsermodule.c Loading commit data...
posixmodule.c Loading commit data...
pwdmodule.c Loading commit data...
pyexpat.c Loading commit data...
python.c Loading commit data...
readline.c Loading commit data...
resource.c Loading commit data...
rotatingtree.c Loading commit data...
rotatingtree.h Loading commit data...
selectmodule.c Loading commit data...
sha1module.c Loading commit data...
sha256module.c Loading commit data...
sha512module.c Loading commit data...
signalmodule.c Loading commit data...
socketmodule.c Loading commit data...
socketmodule.h Loading commit data...
spwdmodule.c Loading commit data...
sre.h Loading commit data...
sre_constants.h Loading commit data...
symtablemodule.c Loading commit data...
syslogmodule.c Loading commit data...
termios.c Loading commit data...
testcapi_long.h Loading commit data...
timemodule.c Loading commit data...
tkappinit.c Loading commit data...
tkinter.h Loading commit data...
unicodedata.c Loading commit data...
unicodedata_db.h Loading commit data...
unicodename_db.h Loading commit data...
xxmodule.c Loading commit data...
xxsubtype.c Loading commit data...
zipimport.c Loading commit data...
zlibmodule.c Loading commit data...