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