Merge pull request #261 from zcash/fix-mockprover-lookup

[MockProver] Handle query rotations in lookups
This commit is contained in:
str4d 2021-05-18 15:26:37 +01:00 committed by GitHub
commit 7f451a0c64
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 6 deletions

View File

@ -337,16 +337,25 @@ impl<F: FieldExt> MockProver<F> {
expression.evaluate(
&|scalar| scalar,
&|index| {
let column_index = self.cs.fixed_queries[index].0.index();
self.fixed[column_index][row as usize]
let query = self.cs.fixed_queries[index];
let column_index = query.0.index();
let rotation = query.1.0;
self.fixed[column_index]
[(row as i32 + n + rotation) as usize % n as usize]
},
&|index| {
let column_index = self.cs.advice_queries[index].0.index();
self.advice[column_index][row as usize]
let query = self.cs.advice_queries[index];
let column_index = query.0.index();
let rotation = query.1.0;
self.advice[column_index]
[(row as i32 + n + rotation) as usize % n as usize]
},
&|index| {
let column_index = self.cs.instance_queries[index].0.index();
self.instance[column_index][row as usize]
let query = self.cs.instance_queries[index];
let column_index = query.0.index();
let rotation = query.1.0;
self.instance[column_index]
[(row as i32 + n + rotation) as usize % n as usize]
},
&|a, b| a + b,
&|a, b| a * b,