mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-04-18 17:43:14 +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::extension_field::{Extendable, FieldExtension};
|
||||||
use plonky2_field::field_types::Field;
|
use plonky2_field::field_types::Field;
|
||||||
|
|
||||||
|
use crate::fri::structure::{FriOpenings, FriOpeningsTarget};
|
||||||
use crate::fri::witness_util::set_fri_proof_target;
|
use crate::fri::witness_util::set_fri_proof_target;
|
||||||
use crate::gadgets::arithmetic_u32::U32Target;
|
use crate::gadgets::arithmetic_u32::U32Target;
|
||||||
use crate::gadgets::biguint::BigUintTarget;
|
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);
|
self.set_cap_target(&proof_target.quotient_polys_cap, &proof.quotient_polys_cap);
|
||||||
|
|
||||||
let openings = proof.openings.to_fri_openings();
|
self.set_fri_openings(
|
||||||
let openings_target = proof_target.openings.to_fri_openings();
|
&proof_target.openings.to_fri_openings(),
|
||||||
for (batch, batch_target) in openings.batches.iter().zip_eq(&openings_target.batches) {
|
&proof.openings.to_fri_openings(),
|
||||||
self.set_extension_targets(&batch_target.values, &batch.values);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
set_fri_proof_target(self, &proof_target.opening_proof, &proof.opening_proof);
|
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) {
|
fn set_wire(&mut self, wire: Wire, value: F) {
|
||||||
self.set_target(Target::Wire(wire), value)
|
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.trace_cap, &proof.trace_cap);
|
||||||
witness.set_cap_target(&proof_target.quotient_polys_cap, &proof.quotient_polys_cap);
|
witness.set_cap_target(&proof_target.quotient_polys_cap, &proof.quotient_polys_cap);
|
||||||
|
|
||||||
let openings = proof.openings.to_fri_openings();
|
witness.set_fri_openings(
|
||||||
let openings_target = proof_target.openings.to_fri_openings();
|
&proof_target.openings.to_fri_openings(),
|
||||||
for (batch, batch_target) in openings.batches.iter().zip_eq(&openings_target.batches) {
|
&proof.openings.to_fri_openings(),
|
||||||
witness.set_extension_targets(&batch_target.values, &batch.values);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
set_fri_proof_target(witness, &proof_target.opening_proof, &proof.opening_proof);
|
set_fri_proof_target(witness, &proof_target.opening_proof, &proof.opening_proof);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user