On Fri, 4 Feb 2005 15:14:07 +0100, Lourens Veen
<[EMAIL PROTECTED]> wrote:
> 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?


Note that if your're multiplying by something that isn't very many
bits (like four bits), it won't take THAT much logic and I can ensure
that it doesn't take one of the dedicated ones.
_______________________________________________
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