Hi Maarten,
I had played with big number math a few years back some of it might be useful. I have no idea where it is as far efficiency is concerned. http://uoregon.edu/~tomc/b24b.r basicly parts for a base 24bit math lib, I only took it far enough to do some basic proof of concepts and is glaringly missing decimal <-> b24 translations but I expect in your case as well the actual decimal values are irrelavent. On Thu, 1 Apr 2004, Maarten Koopmans wrote: > > Neat idea, but with 2^161 module 2^160 I have a problem. I'll see if I > can do something with series. > > --Maarten > > Anton Rolls wrote: > > > I was helping Oldes with the problem of computing > > a long checksum a while back. The code I came up with > > is at the bottom. It can give you some ideas maybe. > > > > Anton. > > > > > >>Hi, > >> > >>As anybody (efficiently) tackled suntracting two binary! values. I want > >>to compute the difference between two 160 bit SHA1 keys, with the > >>outcome a new binary. And I also need addition which sould be circular > >>in 160bit space. E.g 2^160 + 1 = 1 > >> > >>Before re-inventing yet another wheel I'd thought I'd ask to see if > >>anybody has already written this. > >> > >>--Maarten > > > > > > ; can use pairs to store integers better and wrap around automatically > > ; without math overflow error! :) (Romano's tip) > > > > sum: 2147483647 > > add-val: func [val][ > > sum: either error? try [sum + val][ > > ; which way did it overflow? (positive/negative) > > either positive? sum [ > > print "positive" > > ; overflowed in positive direction > > ; to-integer required because -2147483648 is by default a > > decimal > > ;print ["(sum + to-integer -2147483648):" (sum + to-integer > > -2147483648) > > type? (sum + to-integer -2147483648)] > > ;print ["(val + to-integer -2147483648):" (val + to-integer > > -2147483648) > > type? (val + to-integer -2147483648)] > > (sum + to-integer -2147483648) + (val + to-integer -2147483648) > > ][ > > print "negative" > > ; overflowed in negative direction > > (2147483647 + sum) + (2147483647 + val) + 2 > > ] > > ][sum + val] ; no error, just add it up > > probe type? sum > > sum > > ] > > > > -- > To unsubscribe from this list, just send an email to > [EMAIL PROTECTED] with unsubscribe as the subject. > -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.