circom/test/circuits/componentarray2.circom
test/circuits/componentarray2.circomRaw
1template Square() {
2 signal input in;
3 signal output out;
4
5 out <== in**2;
6}
7
8template Main(n, nrounds) {
9 signal input in[n];
10 signal output out[n];
11
12 component squares[n][nrounds];
13
14 for (var i=0; i<n; i++) {
15 for (var r=0; r<nrounds; r++) {
16 squares[i][r] = Square();
17 if (r==0) {
18 squares[i][r].in <== in[i];
19 } else {
20 squares[i][r].in <== squares[i][r-1].out;
21 }
22 }
23 squares[i][nrounds-1].out ==> out[i];
24 }
25}
26
27component main = Main(2, 3);