arnaucube
arnaucube/circomPublic Self-hosted repository
circom/test/circuits/constants1.circom
test/circuits/constants1.circomRaw
 1
 2
 3
 4template Add(n) {
 5    signal input in[n];
 6    signal output out;
 7
 8    var lc = 0;
 9    for (var i=0; i<n; i++) {
10        lc = lc + in[i];
11    }
12
13    out <== lc;
14}
15
16function FAdd(a,b) {
17    return a+b;
18}
19
20template Main() {
21    signal input in;
22    signal output out;
23
24    var o = FAdd(3,4);
25    o = o + FAdd(3,4);
26    o = o + FAdd(3,4);  // o = 21
27
28    component A1 = Add(2);
29    A1.in[0] <== in;
30    A1.in[1] <== o;
31
32    component A2 = Add(2);
33    A2.in[0] <== A1.out;
34    A2.in[1] <== o;
35
36    out <== A2.out; // in + 42
37}
38
39component main = Main();