mirror of https://github.com/zcash/halo2.git
Compute permutation_evals in prover
This commit is contained in:
parent
1bc90c4fec
commit
441dcf0ecc
|
@ -222,6 +222,18 @@ impl<C: CurveAffine> Proof<C> {
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
let mut permutation_evals: Vec<Vec<C::Scalar>> =
|
||||||
|
Vec::with_capacity(meta.permutation_queries.len());
|
||||||
|
for (permutation_idx, queries) in meta.permutation_queries.iter().enumerate() {
|
||||||
|
let query_evals: Vec<C::Scalar> = queries
|
||||||
|
.iter()
|
||||||
|
.map(|&query_index| {
|
||||||
|
eval_polynomial(&srs.permutation_polys[permutation_idx][query_index], x_3)
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
permutation_evals.push(query_evals);
|
||||||
|
}
|
||||||
|
|
||||||
let h_evals: Vec<_> = h_pieces
|
let h_evals: Vec<_> = h_pieces
|
||||||
.iter()
|
.iter()
|
||||||
.map(|poly| eval_polynomial(poly, x_3))
|
.map(|poly| eval_polynomial(poly, x_3))
|
||||||
|
@ -241,6 +253,13 @@ impl<C: CurveAffine> Proof<C> {
|
||||||
transcript_scalar.absorb(*eval);
|
transcript_scalar.absorb(*eval);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hash each permutation evaluation
|
||||||
|
for permutation in permutation_evals.iter() {
|
||||||
|
for eval in permutation.iter() {
|
||||||
|
transcript_scalar.absorb(*eval);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Hash each h(x) piece evaluation
|
// Hash each h(x) piece evaluation
|
||||||
for eval in h_evals.iter() {
|
for eval in h_evals.iter() {
|
||||||
transcript_scalar.absorb(*eval);
|
transcript_scalar.absorb(*eval);
|
||||||
|
@ -388,7 +407,7 @@ impl<C: CurveAffine> Proof<C> {
|
||||||
permutation_product_commitments: vec![C::default(); params.n as usize],
|
permutation_product_commitments: vec![C::default(); params.n as usize],
|
||||||
permutation_product_evals: vec![C::Scalar::one(); params.n as usize],
|
permutation_product_evals: vec![C::Scalar::one(); params.n as usize],
|
||||||
permutation_product_inv_evals: vec![C::Scalar::one(); params.n as usize],
|
permutation_product_inv_evals: vec![C::Scalar::one(); params.n as usize],
|
||||||
permutation_evals: vec![vec![C::Scalar::one(); params.n as usize]],
|
permutation_evals,
|
||||||
advice_evals,
|
advice_evals,
|
||||||
fixed_evals,
|
fixed_evals,
|
||||||
h_evals,
|
h_evals,
|
||||||
|
|
Loading…
Reference in New Issue