Update ir.md
This commit is contained in:
parent
00659fc60a
commit
e0316c39e2
1 changed files with 4 additions and 2 deletions
|
@ -5,9 +5,11 @@ ZIR is the intermediate representation ZoKrates uses to represent programs. It i
|
||||||
**Note that ZIR is still in development and can change without notice.**
|
**Note that ZIR is still in development and can change without notice.**
|
||||||
|
|
||||||
When generating R1CS constraints, very large numbers are often used, which can make reading ZIR hard for humans.
|
When generating R1CS constraints, very large numbers are often used, which can make reading ZIR hard for humans.
|
||||||
To mitigate this, ZIR applies an isomorphism when displaying field elements: they are shown as members of the interval `[-(p-1)/2, (p-1)/2]`.
|
To mitigate this, ZIR applies an isomorphism when displaying field elements: they are shown as members of the interval `[- (p - 1)/2, (p - 1)/2]`. In other words, the following mapping is used:
|
||||||
|
- elements in `[0, (p - 1)/2]` map to themselves
|
||||||
|
- elements in `[(p + 1)/2, p - 1]` map to themselves minus `p`
|
||||||
|
|
||||||
Therefore, instead of writing p - 1 as:
|
Therefore, instead of writing `p - 1` as:
|
||||||
```
|
```
|
||||||
21888242871839275222246405745257275088548364400416034343698204186575808495616
|
21888242871839275222246405745257275088548364400416034343698204186575808495616
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in a new issue