Big Math
Geoff Canyon
gcanyon at gmail.com
Sat Nov 14 16:31:59 EST 2015
I have not tested these thoroughly enough, but they worked for what I
needed them for, so I'm putting them out there. Bugs/improvements welcome.
To add two arbitrarily large numbers -- must both be positive:
function bAdd x,y
put 0 into c
repeat with i = 14 to max(length(x),length(y)) step 14
add char -i to 13 - i of x + char -i to 13 - i of y to c
put char -14 to -1 of ("00000000000000" & c) before r
delete char -14 to -1 of c
end repeat
return c & r
end bAdd
To div (not divide) an arbitrarily large number by any LC-capable number
(up to about 14 digits) -- could be that both must be positive:
function bigDiv X,D
repeat with i = 1 to length(X) div 14 step 14
put char i to i + 13 of X div D after Q
put char i to i + 13 of X mod D into char i to i + 13 of X
end repeat
return Q
end bigDiv
More information about the use-livecode
mailing list