This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Carl.Friedrich.Bolz
Recipients Carl.Friedrich.Bolz, Dennis Sweeney, tim.peters
Date 2022-01-30.20:01:02
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1643572862.88.0.292682188565.issue46558@roundup.psfhosted.org>
In-reply-to
Content
Somebody pointed me to V8's implementation of str(bigint) today:

https://github.com/v8/v8/blob/main/src/bigint/tostring.cc

They say that they can compute str(factorial(1_000_000)) (which is 5.5 million decimal digits) in 1.5s:

https://twitter.com/JakobKummerow/status/1487872478076620800

As far as I understand the code (I suck at C++) they recursively split the bigint into halves using % 10^n at each recursion step, but pre-compute and cache the divisors' inverses.
History
Date User Action Args
2022-01-30 20:01:02Carl.Friedrich.Bolzsetrecipients: + Carl.Friedrich.Bolz, tim.peters, Dennis Sweeney
2022-01-30 20:01:02Carl.Friedrich.Bolzsetmessageid: <1643572862.88.0.292682188565.issue46558@roundup.psfhosted.org>
2022-01-30 20:01:02Carl.Friedrich.Bolzlinkissue46558 messages
2022-01-30 20:01:02Carl.Friedrich.Bolzcreate