On Thursday 03 February 2005 11:21, Lourens Veen wrote:
> On Wednesday 02 February 2005 15:10, Timothy Miller wrote:
> > That sounds like a really neat idea.  Mind you, if we can avoid using
> > multipliers, that would be even better.  As it is, I'm not sure we'll
> > have enough.
>
> What if we limit the values for the derivative to 4, 2, 1, 0.5, 0.25, etc.?
> Then we just store a shift count, and you only need a barrel shifter (or a
> shift register, but that would make it multiple cycle which is not good),
> and no multiplier at all.
>
> I've looked at the model for a bit, we are talking about the divide at line
> 720 of render.cpp right? And the input will be a normalised float with 1
> bit sign, 8 bits exponent, and 16 bits mantissa?

Replying to self, I've been coding and measuring for a bit, and I've found out 
that a 10-bit LUT with 16-bit values will give us 15 bits of precision with 
linear interpolation, and 9 bits without.

Of course, that requires two RAM reads per reciprocal, and we only have two 
ports, so for two pixels we need something else. I haven't tried yet, but I 
think that I can get 13 bits by using a 14/4 bit value/difference table, 
while using only one read per reciprocal. It would still require a 
multiplier.

What kind of precision is acceptable for this?

Lourens
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to