arnaucube
arnaucube/circomPublic Self-hosted repository
circom/circuits/barry.jaz
circuits/barry.jazRaw
 1
 2
 3
 4template AND() {
 5    signal input a;
 6    signal input b;
 7    signal output c;
 8
 9    c <== a*b;
10}
11
12template AND3() {
13    signal input in1;
14    signal input in2;
15    signal input in3;
16    signal output out;
17
18    component and1 = AND();
19    component and2 = AND();
20
21    in1 ==> and1.a;
22    in2 ==> and1.b;
23    in3 ==> and2.a;
24    and1.c ==> and2.b;
25    and2.c ==> out;
26}
27
28template ToBin() {
29    signal input in;
30    signal output out[32];
31
32    var lc = 0;
33
34    for (var i=0; i<32; i++) {
35        out[i] <-- (in >> i) & 1;
36        lc = lc + out[i] * 2**i;
37        out[i]*(out[i]-1) === 0;
38    }
39
40    lc === in;
41}
42
43component main = ToBin();