On Jan 8, 2010, at 1:29 PM, KHMan wrote:
Norbert Kiesel wrote:
On Sat, 2010-01-09 at 02:04 +0800, KHMan wrote:
Norbert Kiesel wrote:
[snipped all]
Yeah, tabs went missing. I include an untabbed version below (otherwise
unchanged). Regarding the "real slow": it is guaranteed to decrease the
length of the decimal every round (due to the div:match() at the
bottom), so it's O(n^2). Can you come up with something better?
The algorithm still works if you calculate for multiple hex digits at a time, e.g. using 65536 will get you 4 hex digits at a time. I think it works with 24 bits at a time too (53/2 > 24, still safe). You can grab more source digits at a time too. Curious... going to find some of those arbitrary prec code to learn something new...
Using KHMan's ideas, this version takes about 1/3 the time of Norbert's (both in LuaJIT2) for 19 digit numbers, and about 1/15 the time for 96 decimal digit numbers...
[snip]
function tohex_e (decimal)
...