Commit Graph

17 Commits

Author SHA1 Message Date
Jack Grigg 7da5605f51 Remove redundant Error suffix from Error cases 2021-11-10 16:19:36 +00:00
Jack Grigg eb2b020d8c Migrate benches and examples to `impl Neg for Expression` 2021-07-26 01:59:06 +01:00
Sean Bowe ef01b9310a
Fix examples broken by verifier API changes. 2021-07-14 09:47:53 -06:00
Sean Bowe 0766983686
Fix examples to account for public input API changes. 2021-07-08 15:32:56 -06:00
Sean Bowe fe215d153d
Update tests with API changes for public inputs and permutation argument. 2021-07-08 15:32:51 -06:00
Jack Grigg 32edf65efa dev: Refactor VerifyFailure to extract metadata structs 2021-06-23 13:16:20 +01:00
Jack Grigg 6d0017f47c Introduce a FloorPlanner trait and integrate it into the Circuit trait
This is the beginning of the process to enable full floor planning
capabilities in `halo2`. For now, all that a floor planner can do is
synthesize a circuit, which makes it no more powerful than a layouter,
but easier to use (as moving to a multi-pass layouter no longer requires
changes to `Circuit::synthesize`).
2021-06-22 23:47:17 +01:00
str4d d8e4f24df4
Merge pull request #287 from zcash/remove-selector-rotations
Remove rotations from Selectors
2021-06-05 23:36:37 +01:00
Jack Grigg 0d8b3bab38 Remove rotations from Selectors
Enabling selectors to be used in gates at non-zero rotations leads to
confusing gates, and inhibits our ability to create visualizations of
circuits. In most cases, a gate can be rearranged so that the selectors
have no rotation; in cases where cross-gate selector optimisations are
required, these can still be implemented using fixed columns.
2021-06-04 16:18:51 +01:00
Jack Grigg 6cf73391e8 Enable annotating individual constraints within gates
The closure passed to `ConstraintSystem::create_gate` can now return:

- Tuples of `(&'static str, Expression<F>)`
- Anything implementing `IntoIterator` (e.g. `Some(Expression<F>)`)
2021-06-04 03:49:21 +01:00
Jack Grigg 47061ade3d dev: Report indices of unsatisfied constraints
Now that gates may contain multiple constraints, we need to inform
developers about which specific constraints are failing within gates.
2021-06-04 03:46:08 +01:00
Jack Grigg 0f0dd8a26c Allow multiple polynomial constraints per gate
This enables a gate such as ECC complete addition to define its
constraints in terms of a common set of queried columns.
2021-05-27 15:01:46 +01:00
Jack Grigg 266badf25c MockProver: Return all constraint failures, not just first 2021-05-18 16:32:15 +01:00
therealyingtong 21aaab20f6 Remove empty() methods from Config and Loaded traits
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2021-04-28 10:47:26 +08:00
therealyingtong 7524c95547 Clippy fixes 2021-04-26 08:53:43 +08:00
therealyingtong 3ad1c43fb8 Only keep config() and loaded() generic on Chip trait
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2021-04-23 17:40:43 +08:00
therealyingtong 40e7bec352 Move config responsiblities from Layouter to Chip trait 2021-04-23 17:40:43 +08:00