mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-05 07:13:08 +00:00
Open wires at single point if D=1
This commit is contained in:
parent
59dfe5db2f
commit
2794cb9a95
@ -156,22 +156,35 @@ fn fri_combine_initial<F: Field + Extendable<D>, const D: usize>(
|
||||
let mut poly_count = 0;
|
||||
let mut e = F::Extension::ZERO;
|
||||
|
||||
let ev = [0, 1, 4]
|
||||
.iter()
|
||||
.flat_map(|&i| {
|
||||
let v = &proof.evals_proofs[i].0;
|
||||
&v[..v.len() - if config.blinding[i] { SALT_SIZE } else { 0 }]
|
||||
})
|
||||
.rev()
|
||||
.fold(F::Extension::ZERO, |acc, &e| {
|
||||
poly_count += 1;
|
||||
alpha * acc + e.into()
|
||||
});
|
||||
let composition_eval = [&os.constants, &os.plonk_sigmas, &os.quotient_polys]
|
||||
.iter()
|
||||
.flat_map(|v| v.iter())
|
||||
.rev()
|
||||
.fold(F::Extension::ZERO, |acc, &e| acc * alpha + e);
|
||||
let ev = if D == 1 {
|
||||
vec![0, 1, 2, 4]
|
||||
} else {
|
||||
vec![0, 1, 4]
|
||||
}
|
||||
.iter()
|
||||
.flat_map(|&i| {
|
||||
let v = &proof.evals_proofs[i].0;
|
||||
&v[..v.len() - if config.blinding[i] { SALT_SIZE } else { 0 }]
|
||||
})
|
||||
.rev()
|
||||
.fold(F::Extension::ZERO, |acc, &e| {
|
||||
poly_count += 1;
|
||||
alpha * acc + e.into()
|
||||
});
|
||||
let composition_eval = if D == 1 {
|
||||
vec![
|
||||
&os.constants,
|
||||
&os.plonk_sigmas,
|
||||
&os.wires,
|
||||
&os.quotient_polys,
|
||||
]
|
||||
} else {
|
||||
vec![&os.constants, &os.plonk_sigmas, &os.quotient_polys]
|
||||
}
|
||||
.iter()
|
||||
.flat_map(|v| v.iter())
|
||||
.rev()
|
||||
.fold(F::Extension::ZERO, |acc, &e| acc * alpha + e);
|
||||
let numerator = ev - composition_eval;
|
||||
let denominator = F::Extension::from_basefield(subgroup_x) - zeta;
|
||||
e += cur_alpha * numerator / denominator;
|
||||
|
||||
@ -114,19 +114,32 @@ impl<F: Field> ListPolynomialCommitment<F> {
|
||||
// Count the total number of polynomials accumulated into `final_poly`.
|
||||
let mut poly_count = 0;
|
||||
|
||||
let composition_poly = [0, 1, 4]
|
||||
.iter()
|
||||
.flat_map(|&i| &commitments[i].polynomials)
|
||||
.rev()
|
||||
.fold(PolynomialCoeffs::empty(), |acc, p| {
|
||||
poly_count += 1;
|
||||
&(&acc * alpha) + &p.to_extension()
|
||||
});
|
||||
let composition_eval = [&os.constants, &os.plonk_sigmas, &os.quotient_polys]
|
||||
.iter()
|
||||
.flat_map(|v| v.iter())
|
||||
.rev()
|
||||
.fold(F::Extension::ZERO, |acc, &e| acc * alpha + e);
|
||||
let composition_poly = if D == 1 {
|
||||
vec![0, 1, 2, 4]
|
||||
} else {
|
||||
vec![0, 1, 4]
|
||||
}
|
||||
.iter()
|
||||
.flat_map(|&i| &commitments[i].polynomials)
|
||||
.rev()
|
||||
.fold(PolynomialCoeffs::empty(), |acc, p| {
|
||||
poly_count += 1;
|
||||
&(&acc * alpha) + &p.to_extension()
|
||||
});
|
||||
let composition_eval = if D == 1 {
|
||||
vec![
|
||||
&os.constants,
|
||||
&os.plonk_sigmas,
|
||||
&os.wires,
|
||||
&os.quotient_polys,
|
||||
]
|
||||
} else {
|
||||
vec![&os.constants, &os.plonk_sigmas, &os.quotient_polys]
|
||||
|
||||
.iter()
|
||||
.flat_map(|v| v.iter())
|
||||
.rev()
|
||||
.fold(F::Extension::ZERO, |acc, &e| acc * alpha + e);
|
||||
|
||||
let quotient = Self::compute_quotient(&[zeta], &[composition_eval], &composition_poly);
|
||||
final_poly = &final_poly + &("ient * cur_alpha);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user