circom/test/circuits/inout.circom
test/circuits/inout.circomRaw
1template Internal() {
2 signal input in1;
3 signal input in2[2];
4 signal input in3[3][2];
5
6 signal output out1;
7 signal output out2[2];
8 signal output out3[3][2];
9
10 out1 <== in1;
11 out2[0] <== in2[0];
12 out2[1] <== in2[1];
13
14 out3[0][0] <== in3[0][0];
15 out3[0][1] <== in3[0][1];
16 out3[1][0] <== in3[1][0];
17 out3[1][1] <== in3[1][1];
18 out3[2][0] <== in3[2][0];
19 out3[2][1] <== in3[2][1];
20}
21
22template InOut() {
23 signal input in1;
24 signal input in2[2];
25 signal input in3[3][2];
26
27 signal output out1;
28 signal output out2[2];
29 signal output out3[3][2];
30
31 component internal = Internal();
32
33 internal.in1 <== in1;
34 internal.in2[0] <== in2[0];
35 internal.in2[1] <== in2[1];
36 internal.in3[0][0] <== in3[0][0];
37 internal.in3[0][1] <== in3[0][1];
38 internal.in3[1][0] <== in3[1][0];
39 internal.in3[1][1] <== in3[1][1];
40 internal.in3[2][0] <== in3[2][0];
41 internal.in3[2][1] <== in3[2][1];
42
43 internal.out1 ==> out1;
44 internal.out2[0] ==> out2[0];
45 internal.out2[1] ==> out2[1];
46 internal.out3[0][0] ==> out3[0][0];
47 internal.out3[0][1] ==> out3[0][1];
48 internal.out3[1][0] ==> out3[1][0];
49 internal.out3[1][1] ==> out3[1][1];
50 internal.out3[2][0] ==> out3[2][0];
51 internal.out3[2][1] ==> out3[2][1];
52}
53
54component main = InOut();