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.

Reply via email to