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();