-
Notifications
You must be signed in to change notification settings - Fork 97
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This PR introduces a more "direct" way to perform a lookup during witness generation. It removes the concept of `EvalValue`, which is a list of "updates", and instead requests the called machine to directly fill in mutable pointers to field elements. The goal is to use this (hopefully) faster interface if - the lookup can be fully solved in a single call - no cell-based range constraints are needed If the LHS of the lookup consists of direct polynomial references (or next references), the caller can pass a pointer to the final table and does not need to move data around any further. Some numbers: For the "keccak test", and only looking at the PC lookup, we get: Inside `process_plookup_internal`: 40 ns: preparing the `data` and `values` arrays 290 ns: call to process_lookup_direct 1300 ns: computing the result EvalValue.
- Loading branch information
Showing
3 changed files
with
133 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters