mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-07 00:03:10 +00:00
Add set_fri_openings
This commit is contained in:
parent
80e3c928bb
commit
3db9c775b4
@ -5,6 +5,7 @@ use num::{BigUint, FromPrimitive, Zero};
|
||||
use plonky2_field::extension_field::{Extendable, FieldExtension};
|
||||
use plonky2_field::field_types::Field;
|
||||
|
||||
use crate::fri::structure::{FriOpenings, FriOpeningsTarget};
|
||||
use crate::fri::witness_util::set_fri_proof_target;
|
||||
use crate::gadgets::arithmetic_u32::U32Target;
|
||||
use crate::gadgets::biguint::BigUintTarget;
|
||||
@ -201,15 +202,30 @@ pub trait Witness<F: Field> {
|
||||
);
|
||||
self.set_cap_target(&proof_target.quotient_polys_cap, &proof.quotient_polys_cap);
|
||||
|
||||
let openings = proof.openings.to_fri_openings();
|
||||
let openings_target = proof_target.openings.to_fri_openings();
|
||||
for (batch, batch_target) in openings.batches.iter().zip_eq(&openings_target.batches) {
|
||||
self.set_extension_targets(&batch_target.values, &batch.values);
|
||||
}
|
||||
self.set_fri_openings(
|
||||
&proof_target.openings.to_fri_openings(),
|
||||
&proof.openings.to_fri_openings(),
|
||||
);
|
||||
|
||||
set_fri_proof_target(self, &proof_target.opening_proof, &proof.opening_proof);
|
||||
}
|
||||
|
||||
fn set_fri_openings<const D: usize>(
|
||||
&mut self,
|
||||
fri_openings_target: &FriOpeningsTarget<D>,
|
||||
fri_openings: &FriOpenings<F, D>,
|
||||
) where
|
||||
F: RichField + Extendable<D>,
|
||||
{
|
||||
for (batch_target, batch) in fri_openings_target
|
||||
.batches
|
||||
.iter()
|
||||
.zip_eq(&fri_openings.batches)
|
||||
{
|
||||
self.set_extension_targets(&batch_target.values, &batch.values);
|
||||
}
|
||||
}
|
||||
|
||||
fn set_wire(&mut self, wire: Wire, value: F) {
|
||||
self.set_target(Target::Wire(wire), value)
|
||||
}
|
||||
|
||||
@ -252,11 +252,10 @@ pub fn set_stark_proof_target<F, C: GenericConfig<D, F = F>, W, const D: usize>(
|
||||
witness.set_cap_target(&proof_target.trace_cap, &proof.trace_cap);
|
||||
witness.set_cap_target(&proof_target.quotient_polys_cap, &proof.quotient_polys_cap);
|
||||
|
||||
let openings = proof.openings.to_fri_openings();
|
||||
let openings_target = proof_target.openings.to_fri_openings();
|
||||
for (batch, batch_target) in openings.batches.iter().zip_eq(&openings_target.batches) {
|
||||
witness.set_extension_targets(&batch_target.values, &batch.values);
|
||||
}
|
||||
witness.set_fri_openings(
|
||||
&proof_target.openings.to_fri_openings(),
|
||||
&proof.openings.to_fri_openings(),
|
||||
);
|
||||
|
||||
set_fri_proof_target(witness, &proof_target.opening_proof, &proof.opening_proof);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user