[A83] Re: Pythagorean's theorem
[Prev][Next][Index][Thread]
[A83] Re: Pythagorean's theorem
Thanks! However, right now speed is my utmost priority. I need to find the
length of a line several hundred times per second. I currently have the
code working great for 8-bit numbers, but I am still debugging the 16-bit
stuff. I think that it will have to wait until tomorrow, unfortunately. I
am not used to staying up this late. (10 o'clock is my normal bedtime... it
is past eleven and I still have to shower.) Maybe I will post the code
tomorrow and see what everyone thinks about it.
MWM
----- Original Message -----
From: Wei Lin and Norbert Juffa <juffa@earthlink.net>
To: <assembly-83@lists.ticalc.org>
Sent: Saturday, August 09, 2003 11:00 PM
Subject: [A83] Re: Pythagorean's theorem
> ----- Original Message -----
> From: "Matthew Marshall" <mmarshall@myrealbox.com>
> To: <assembly-83@lists.ticalc.org>
> Sent: Saturday, August 09, 2003 8:04 PM
> Subject: [A83] Re: Pythagorean's theorem
>
>
> > Good point... However, I do not only need to see which distance is
greater,
> > but I also need the difference between the two. (I am writing a
real-time
> > physics simulation implementing springs, by the way.) I think that I
have
> > found a good way of going at it using a 514 byte LUT. I am too tired to
> > explain it tonight... maybe tomorrow.
> > MWM
>
> Here is some simplistic and slow but working integer square root
> code that uses the "squares are sums of odd numbers" approach. If
> I have some time I will code up a faster algorithm.
>
> -- Norbert
>
>
> ;; in: HL = x, 0 <= x < 65536
> ;; out: HL = isqrt(x) = trunc(sqrt(x))
>
> isqrt:
> LD A, H ;
> OR A, L ; x == 0 ?
> JR Z, sqrtDone ; yup, result is 0
> LD A, 0 ; count = 0
> LD DE, 1 ; odd = 1
> JR sqrtStart
> sqrtLoop:
> INC DE
> INC DE ; odd += 2
> ADD A, 1 ; count++
> sqrtStart:
> SBC HL, DE ; x = x - odd (i.e. original x - square)
> JR NC, sqrtLoop ; while x >= square
> sqrtLoopExit:
> LD H, 0
> LD L, A
> sqrtDone:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> >
> > ----- Original Message -----
> > From: Olof Hedman <alh@home.se>
> > To: <assembly-83@lists.ticalc.org>
> > Sent: Saturday, August 09, 2003 8:16 PM
> > Subject: [A83] Re: Pythagorean's theorem
> >
> >
> > > Wei Lin and Norbert Juffa and a bunch of others wrote:
> > > [about calculating distances]
> > >
> > > Also remember that its not always necessary to do the root when you
work
> > > with distances.
> > > If you only need to compare distances with eachother, you don't have
to
> > > do the root, just compare the squared distances with eachother. It
will
> > > give the same result.
> > > Just wanted to point that out :)
> > > --Olle
> > >
> > >
> > >
> > >
> >
> >
>
>
>
Follow-Ups:
References: