arnaucube
arnaucube/circomPublic Self-hosted repository
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);