wrap-around interface

bodrato at mail.dm.unipi.it bodrato at mail.dm.unipi.it
Wed Oct 24 16:50:13 CEST 2012


Ciao,

Il Dom, 21 Ottobre 2012 9:44 am, Zimmermann Paul ha scritto:
>> Date: Sat, 20 Oct 2012 17:31:33 +0200 (CEST)
>> Il Gio, 18 Ottobre 2012 11:06 am, Zimmermann Paul ha scritto:
>>
>> >> > void mpn_mulmod_bnm1 (mp_ptr rp, mp_size_t rn, mp_srcptr ap,
...
>> >> > Multiplies {ap, an} by {bp, bn} mod B^rn-1 where

>> Moreover, if an + bn < rn, the result is stored in {rp, an+bn} (the

> this is fine. We won't use the wrap-around trick for an+bn < rn.

It is fine for your code, but is it for a public interface?

>>  * The result is expected to be ZERO if and only if one of the operand
>>  * already is. Otherwise the class [0] Mod(B^rn-1) is represented by
>>  * B^rn-1.

> no, I thought about the classical non-redundant representation 0 <= r <
> B^rn-1.

On the other side... this redundancy shouldn't hurt your wrap-around
trick, does it?

Best regards,
Marco

-- 
http://bodrato.it/software/strassen.html



More information about the gmp-devel mailing list