givaro
givaro copied to clipboard
Remove RecInt::rmint
Rationale is that:
- Basically,
rmint<K>
is aModular<ruint<K>,ruint<K+1>>
, and should behave similarly (if they don't, we should specilized the Modular one); - There are two variants
rmint<K, MG_INACTIVE>
andrmint<K, MG_ACTIVE>
that have underlying montgomery variant active or not. The second one should be equal toMontgomery<ruint<K>>
, with specialization if needed for performances; -
rmint<K>
are storing modules as staticstatic ruint<K> p
which means that you cannot have two rmints with different modules at the same time (!); -
rmint
are breaking the current design of Givaro by having noField
class.
I think the last 2 points are strong enough to motivate this change. I kind of remember discussing this with @jgdumas who had a good argument for the existence of this design. Let's wait for his feedback.
rmint
could be replaced by StaticElement<Modular<ruint>>
, so seems good to go.