grapevine-sonobe/circom/node_modules/circomlib/test/circuits/mux4_1.circom
circom/node_modules/circomlib/test/circuits/mux4_1.circomRaw
1pragma circom 2.0.0;
2
3include "../../circuits/mux4.circom";
4include "../../circuits/bitify.circom";
5
6
7template Constants() {
8 var i;
9 signal output out[16];
10
11 out[0] <== 123;
12 out[1] <== 456;
13 out[2] <== 789;
14 out[3] <== 012;
15 out[4] <== 111;
16 out[5] <== 222;
17 out[6] <== 333;
18 out[7] <== 4546;
19 out[8] <== 134523;
20 out[9] <== 44356;
21 out[10] <== 15623;
22 out[11] <== 4566;
23 out[12] <== 1223;
24 out[13] <== 4546;
25 out[14] <== 4256;
26 out[15] <== 4456;
27
28/*
29 for (i=0;i<16; i++) {
30 out[i] <== i*2+100;
31 }
32*/
33
34}
35
36template Main() {
37 var i;
38 signal input selector;//private
39 signal output out;
40
41 component mux = Mux4();
42 component n2b = Num2Bits(4);
43 component cst = Constants();
44
45 selector ==> n2b.in;
46 for (i=0; i<4; i++) {
47 n2b.out[i] ==> mux.s[i];
48 }
49 for (i=0; i<16; i++) {
50 cst.out[i] ==> mux.c[i];
51 }
52
53 mux.out ==> out;
54}
55
56component main = Main();