On Thu, Oct 29, 2009 at 4:14 PM, Petter Urkedal <[email protected]> wrote:
> On 2009-10-29, Timothy Normand Miller wrote:
>> The same multipliers will be used for float, which means we need 24x24
>> -> 48 (unsigned) at least.  That's still three.  But if we're going to
>> use the multipliers for shifts, we need the full 32x32 multiplier.
>>
>> That is unless you can come up with a clever way to do a right shift
>> with a multiplier.  If we think of the multiplier as a ring (in this
>> case, it doesn't qualify as a galois field), we may be able to find a
>> multiplier for any multiplicand that will give us any 32-bit product
>> we want.  The trouble is that what that multiplier needs to be could
>> be so complicated to compute that it's not worth using the multiplier.
>>
>> I did some tinkering with 16-bit numbers, and I can find no single
>> multiplier that works with all multiplicands that will result in the
>> correct value for shifting the multiplicand right by 4 bits.
>
> Without reordering the bits, I'm pretty sure it can't be done.  Note
> that for a fixed multiplier, bit number i of the multiplicand is
> independent of all bits j > i of the other multiplier.
>
> But if we reorder the bits, it's embarrassingly obvious:  Reverse the
> bits of the base-argument and the result.  That should take 64 MUXes.

Man.  I'm really being shamed by this discussion.  Why didn't I think
of that!  :)

Now, we still don't have an answer for rotate, which brings me back to
using the 64-bit product.


-- 
Timothy Normand Miller
http://www.cse.ohio-state.edu/~millerti
Open Graphics Project
_______________________________________________
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