macro_rules! test_fiat_monty_field_arithmetic {
(
name: $fe:tt,
params: $params:ty,
uint: $uint:ty,
non_mont: $non_mont_type:expr,
mont: $mont_type:expr,
to_mont: $to_mont:ident,
msat: $msat:ident
) => { ... };
}Expand description
Test that the wrapper generated for a word-by-word-montgomery fiat-crypto implementation
matches the internal representation used by MontyField*, e.g. do they have the same saturated
modulus representation and agree on the value of R.
If these tests do not pass, the fiat-crypto synthesized implementation is incompatible with
MontyField*.
See also: mit-plv/fiat-crypto#2166