Change `from_repr` to output `Option<Self>`
Pratyush Mishra pratyushmishra@berkeley.edu
Thu, 28 May 2020 13:58:30 -0700
2 files changed,
1 insertions(+),
30 deletions(-)
M
r1cs-std/src/bits/boolean.rs
→
r1cs-std/src/bits/boolean.rs
@@ -1985,35 +1985,6 @@ Boolean::enforce_in_field::<_, _, Fr>(&mut cs, &bits).unwrap();
assert!(cs.is_satisfied()); } - - // for _ in 0..1000 { - // // Sample a random element not in the field - // let r = loop { - // let mut a = Fr::rand(&mut rng).into_repr(); - // let b = Fr::rand(&mut rng).into_repr(); - - // a.add_nocarry(&b); - // // we're shaving off the high bit_gadget later - // a.as_mut()[3] &= 0x7fffffffffffffff; - // if Fr::from_repr(a).is_err() { - // break a; - // } - // }; - - // let mut cs = TestConstraintSystem::<Fr>::new(); - - // let mut bits = vec![]; - // for (i, b) in BitIterator::new(r).skip(1).enumerate() { - // bits.push(Boolean::from( - // AllocatedBit::alloc(cs.ns(|| format!("bit_gadget {}", - // i)), Some(b)) .unwrap(), - // )); - // } - - // Boolean::enforce_in_field::<_, _, Fr>(&mut cs, &bits).unwrap(); - - // assert!(!cs.is_satisfied()); - // } } #[test]
M
r1cs-std/src/fields/fp/cmp.rs
→
r1cs-std/src/fields/fp/cmp.rs
@@ -222,7 +222,7 @@ 0x5d, 0xbe, 0x62, 0x59, 0x8d, 0x31, 0x3d, 0x76, 0x32, 0x37, 0xdb, 0x17, 0xe5, 0xbc,
0x06, 0x54, ]); fn rand_in_range<R: Rng>(rng: &mut R) -> Fr { - let pminusonedivtwo = Fr::from_repr(Fr::modulus_minus_one_div_two()); + let pminusonedivtwo: Fr = Fr::modulus_minus_one_div_two().into(); let mut r; loop { r = Fr::rand(rng);