This commit is contained in:
Nicholas Ward 2021-10-15 12:54:01 -07:00
parent 956b34c2e9
commit 72aea53d13

View File

@ -118,21 +118,32 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
let num_limbs = a.limbs.len();
debug_assert!(b.limbs.len() == num_limbs);
/*let mut combined_limbs = self.add_virtual_u32_targets(2 * num_limbs - 1);
let mut combined_limbs = self.add_virtual_u32_targets(2 * num_limbs - 1);
let mut to_add = vec![vec![]; 2 * num_limbs];
for i in 0..num_limbs {
for j in 0..num_limbs {
let sum = self.add_u32(a.limbs[i], b.limbs[j]);
combined_limbs[i + j] = self.add_u32(combined_limbs[i + j], sum);
let (product, carry) = self.mul_u32(a.limbs[i], b.limbs[j]);
to_add[i + j].push(product);
to_add[i + j + 1].push(carry);
}
}
let mut combined_limbs = vec![];
let mut carry = self.zero_u32();
for i in 0..2 * num_limbs {
to_add[i].push(carry);
let (new_result, new_carry) = self.add_many_u32(to_add[i]);
combined_limbs.push(new_result);
carry = new_carry;
}
combined_limbs.push(carry);
let reduced_limbs = self.reduce_mul_result::<FF>(combined_limbs);
ForeignFieldTarget {
limbs: reduced_limbs,
_phantom: PhantomData,
}*/
todo!()
}
}
pub fn reduce_mul_result<FF: Field>(&mut self, limbs: Vec<U32Target>) -> Vec<U32Target> {