<div dir="ltr">Interesting, my code has the same bug then.  I called it modulo/real, used for things like displaying the space ship's rotation to the user or wrapping x coordinates to stay in the world.  Apparently it's going to fail at some point with vector ref out of range.  What was your fix?  I was thinking to just clamp explicitly like mod/real = (max 0 (min the-mod-minus-1 (old-modulo/real x)))</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, May 12, 2014 at 11:12 PM, Robby Findler <span dir="ltr"><<a href="mailto:robby@eecs.northwestern.edu" target="_blank">robby@eecs.northwestern.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Right. Probably there is a better fix, but the essential problem, as I<br>
understand it, is that there are more floating points between 0 and 1<br>
than between any two other integers and the code made the assumption<br>
that that didn't happen....<br>
<br>
The basic desire is to turn a real number into a number in [0,360)<br>
such that the result represents the same number in degrees but is<br>
normalized somehow.<br>
<span class="HOEnZb"><font color="#888888"><br>
Robby<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Mon, May 12, 2014 at 10:06 PM, Danny Yoo <<a href="mailto:dyoo@hashcollision.org">dyoo@hashcollision.org</a>> wrote:<br>
> Wow.  Floating point really is nasty.  I see how it might have happened now.<br>
><br>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
>> -0.0000000000000001<br>
> -1e-16<br>
>> (+ 360 -1e-16)<br>
> 360.0<br>
>><br>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
</div></div></blockquote></div><br></div>