mirror of
https://github.com/powdr-labs/powdr.git
synced 2026-04-20 03:03:25 -04:00
Generates multiplicity columns for global range constraints, by doing a
pass over the data at the very and of witness generation.
```
$ RUST_LOG=debug cargo run pil test_data/std/lookup_via_challenges_range_constraint.asm -o output -f --prove-with plonky3
...
Determined the following global range constraints:
main::x_low: [0, 7] & 0x7
main::x_high: [0, 7] & 0x7
Determined the following identities to be purely bit/range constraints:
Constr::PhantomLookup((Option::None, Option::None), [(main::x_low, main::BIT3)], main::multiplicities);
Constr::PhantomLookup((Option::None, Option::None), [(main::x_high, main::BIT3)], main::multiplicities_1);
Recorded the following range constraint multiplicity columns:
main::x_low -> main::multiplicities
main::x_high -> main::multiplicities_1
Running main machine for 8 rows
[00:00:00 (ETA: 00:00:00)] ████████████████████ 100% - Starting... Finalizing VM: Main Machine
Transposing 8 rows with 12 columns...
Finalizing remaining rows...
Needed to finalize 8 / 8 rows.
Done transposing.
== Witgen profile (6 events)
65.2% ( 2.0ms): witgen (outer code)
33.2% ( 1.0ms): Main Machine
1.6% ( 48.1µs): range constraint multiplicity witgen
---------------------------
==> Total: 3.011167ms
...
```
---------
Co-authored-by: Thibaut Schaeffer <schaeffer.thibaut@gmail.com>