Browse Source

expose function which enforces a <= (p-1)/2

master
Georgios Konstantopoulos 4 years ago
committed by Pratyush Mishra
parent
commit
ecf863f541
1 changed files with 5 additions and 5 deletions
  1. +5
    -5
      r1cs-std/src/fields/fp/cmp.rs

+ 5
- 5
r1cs-std/src/fields/fp/cmp.rs

@ -130,7 +130,7 @@ impl FpGadget {
}
// Helper function to enforce `a <= (p-1)/2`.
fn check_smaller_than_mod_minus_one_div_two<CS: ConstraintSystem<F>>(
pub fn enforce_smaller_or_equal_than_mod_minus_one_div_two<CS: ConstraintSystem<F>>(
mut cs: CS,
a: &FpGadget<F>,
) -> Result<(), SynthesisError> {
@ -151,8 +151,8 @@ impl FpGadget {
a: &FpGadget<F>,
b: &FpGadget<F>,
) -> Result<Boolean, SynthesisError> {
Self::check_smaller_than_mod_minus_one_div_two(cs.ns(|| "check a in range"), a)?;
Self::check_smaller_than_mod_minus_one_div_two(cs.ns(|| "check b in range"), b)?;
Self::enforce_smaller_or_equal_than_mod_minus_one_div_two(cs.ns(|| "check a in range"), a)?;
Self::enforce_smaller_or_equal_than_mod_minus_one_div_two(cs.ns(|| "check b in range"), b)?;
Self::is_smaller_than_unchecked(cs.ns(|| "enforce smaller than"), a, b)
}
@ -179,8 +179,8 @@ impl FpGadget {
a: &FpGadget<F>,
b: &FpGadget<F>,
) -> Result<(), SynthesisError> {
Self::check_smaller_than_mod_minus_one_div_two(cs.ns(|| "check a in range"), a)?;
Self::check_smaller_than_mod_minus_one_div_two(cs.ns(|| "check b in range"), b)?;
Self::enforce_smaller_or_equal_than_mod_minus_one_div_two(cs.ns(|| "check a in range"), a)?;
Self::enforce_smaller_or_equal_than_mod_minus_one_div_two(cs.ns(|| "check b in range"), b)?;
Self::enforce_smaller_than_unchecked(cs.ns(|| "enforce smaller than"), a, b)
}

Loading…
Cancel
Save