Commit cea1284d by chengshuyao

change from uint32_t to uint64_t

parent baea9103
...@@ -37,7 +37,6 @@ extern const int parameter_max_orders = 2; ...@@ -37,7 +37,6 @@ extern const int parameter_max_orders = 2;
//算法的parameter Algorithm_parameter //算法的parameter Algorithm_parameter
extern const int parameter_num_threads = 64; //线程数
extern const int parameter_multi_output_index = 0; //BSD从第几层开始化简,前面若干层展开序确定 extern const int parameter_multi_output_index = 0; //BSD从第几层开始化简,前面若干层展开序确定
extern const int parameter_max_BDD_width = 320000; //BSD每一层最多多少个节点 extern const int parameter_max_BDD_width = 320000; //BSD每一层最多多少个节点
int parameter_early_stop_depth = parameter_input_bit_width; //BSD到第几层终止,输出此时的不准确BSD int parameter_early_stop_depth = parameter_input_bit_width; //BSD到第几层终止,输出此时的不准确BSD
...@@ -58,6 +57,47 @@ int variable_order_number; ...@@ -58,6 +57,47 @@ int variable_order_number;
int BSD_execute(int variable_order_number,int** variable_order, int partition_depth, int partition_parts,int order_num, bool* output_partition_set); int BSD_execute(int variable_order_number,int** variable_order, int partition_depth, int partition_parts,int order_num, bool* output_partition_set);
//bool truth_table [1024*1024]; //bool truth_table [1024*1024];
int output_bit_index [PO_WIDTH] = {120};
bool* io_generator_function(bool* input_data, bool* output_data) {
int i,j;
bool* output_data_temp = new bool [PO_WIDTH];
io_generator_outer(input_data,output_data_temp);
for(i=0;i<parameter_output_bit_width;i++){
if(parameter_output_bit_width == PO_WIDTH)
output_data[i] = output_data_temp[i];
else
output_data[i] = output_data_temp[output_bit_index[i]];
}
delete [] output_data_temp;
return output_data;
}
#ifdef INPUT_AIG
uint64_t* io_generator_function_vec(uint64_t* input_data, uint64_t* output_data) {
int i,j;
uint64_t* output_data_temp = new uint64_t [PO_WIDTH];
io_generator_outer_vec(input_data,output_data_temp);
for(i=0;i<parameter_output_bit_width;i++){
if(parameter_output_bit_width == PO_WIDTH)
output_data[i] = output_data_temp[i];
else
output_data[i] = output_data_temp[output_bit_index[i]];
}
delete [] output_data_temp;
return output_data;
}
#endif
#include"BSD.h" #include"BSD.h"
#include"next_layer_bit.h" #include"next_layer_bit.h"
#include"tool_function.h" #include"tool_function.h"
...@@ -392,7 +432,7 @@ int search_order(int search_iterations,bool* output_partition_set,int start_orde ...@@ -392,7 +432,7 @@ int search_order(int search_iterations,bool* output_partition_set,int start_orde
cout<<"Current best variable order: "<<endl; cout<<"Current best variable order: "<<endl;
for(int vj=0;vj<parameter_max_orders;vj++){ for(int vj=0;vj<parameter_max_orders;vj++){
if(i==0){ if(i==0){
for(int vi=0;vi<parameter_input_bit_width;vi++){ for(int vi=0;vi<best_area_depth;vi++){
variable_order[vj][vi] = start_order[vi]; variable_order[vj][vi] = start_order[vi];
cout<<variable_order[vj][vi]<<" "; cout<<variable_order[vj][vi]<<" ";
} }
......
...@@ -85,9 +85,9 @@ public: ...@@ -85,9 +85,9 @@ public:
bool cal_infer_result(bool* input_data,int which_root_node,bool neg); bool cal_infer_result(bool* input_data,int which_root_node,bool neg);
bool* io_generator(bool* input_data,bool* output_data); bool* io_generator(bool* input_data,bool* output_data);
uint32_t* io_generator_vec(uint32_t* input_data,int* output_data); uint64_t* io_generator_vec(uint64_t* input_data,int* output_data);
bool io_generator_single(bool* input_data,int which_bit_output); bool io_generator_single(bool* input_data,int which_bit_output);
uint32_t io_generator_single_vec(uint32_t* input_data,int which_bit_output); uint64_t io_generator_single_vec(uint64_t* input_data,int which_bit_output);
int set_random_input_data(bool** mask_input_data); int set_random_input_data(bool** mask_input_data);
int mask_random_input_data(int depth,bool* mask,int amount,int* most_influence,bool** mask_input_data); int mask_random_input_data(int depth,bool* mask,int amount,int* most_influence,bool** mask_input_data);
int next_bit_layer(int depth,int order_num); int next_bit_layer(int depth,int order_num);
...@@ -245,30 +245,49 @@ int BDD_class::BSD_samples_sort_each_layer(){ ...@@ -245,30 +245,49 @@ int BDD_class::BSD_samples_sort_each_layer(){
bool BDD_class::io_generator_single(bool* input_data,int which_bit_output){ bool BDD_class::io_generator_single(bool* input_data,int which_bit_output){
bool output_bit; #ifdef SINGLE_BITS
bool* output_bits = new bool [parameter_output_bit_width]; if (output_partition_set[which_bit_output]==1){
output_bits = io_generator_function(input_data,output_bits); bool output_bit_s = io_generator_outer_single( input_data, which_bit_output) ;
if (output_partition_set[which_bit_output]==1) return output_bit_s;
output_bit = output_bits[which_bit_output] ; }else{
else return 0;
output_bit = 0; }
delete [] output_bits; #else
return output_bit; bool output_bit;
bool* output_bits = new bool [parameter_output_bit_width];
if (output_partition_set[which_bit_output]==1){
output_bits = io_generator_function(input_data,output_bits);
output_bit = output_bits[which_bit_output] ;
}
else
output_bit = 0;
delete [] output_bits;
return output_bit;
#endif
}; };
#ifdef INPUT_AIG #ifdef INPUT_AIG
uint32_t BDD_class::io_generator_single_vec(uint32_t* input_data,int which_bit_output){ uint64_t BDD_class::io_generator_single_vec(uint64_t* input_data,int which_bit_output){
uint32_t output_bit; #ifdef SINGLE_BITS
uint32_t* output_bits = new uint32_t [parameter_output_bit_width]; if (output_partition_set[which_bit_output]==1){
output_bits = io_generator_function_vec(input_data,output_bits); uint64_t output_bit_s = io_generator_outer_vec_single( input_data, which_bit_output) ;
if (output_partition_set[which_bit_output]==1) return output_bit_s;
output_bit = output_bits[which_bit_output] ; }else
else return 0;
output_bit = 0; #else
delete [] output_bits; uint64_t output_bit;
return output_bit; uint64_t* output_bits = new uint64_t [parameter_output_bit_width];
if (output_partition_set[which_bit_output]==1){
output_bits = io_generator_function_vec(input_data,output_bits);
output_bit = output_bits[which_bit_output] ;
}
else
output_bit = 0;
delete [] output_bits;
return output_bit;
#endif
}; };
#endif #endif
...@@ -492,26 +511,26 @@ int BDD_class::train_BDD(BDD_node** BDD,int* most_influence,int start_depth, int ...@@ -492,26 +511,26 @@ int BDD_class::train_BDD(BDD_node** BDD,int* most_influence,int start_depth, int
BSD_samples = BSD_samples_sort; BSD_samples = BSD_samples_sort;
most_influence[i] = next_bit_layer(i,order_num); most_influence[i] = next_bit_layer(i,order_num);
BSD_samples = int(BSD_samples_train/31)*31; BSD_samples = int(BSD_samples_train/63)*63; //一定要是vec_length的整数倍
cout<<BSD_samples<<endl; cout<<BSD_samples<<endl;
cout<<"The BSD is on layer: "<<i<<" "; cout<<"The BSD is on layer: "<<i<<" ";
cout<<"The input bit is: x"<<most_influence[i]<<endl; cout<<"The input bit is: x"<<most_influence[i]<<endl;
cout<<"BSD width at this layer: "<<BDD_width_each_layer[i]<<endl; cout<<"BSD width at this layer: "<<BDD_width_each_layer[i]<<endl;
set_random_input_data(mask_input_data); set_random_input_data(mask_input_data);
#ifdef INPUT_AIG #ifdef INPUT_AIG
int vec_length=31; int vec_length=63;
#pragma omp parallel for #pragma omp parallel for
for(long zk=0;zk<int(BDD_width_each_layer[i]*int(BSD_samples/vec_length));zk++){ for(long zk=0;zk<int(BDD_width_each_layer[i]*int(BSD_samples/vec_length));zk++){
bool** vec_input_left = new bool* [parameter_input_bit_width]; bool** vec_input_left = new bool* [parameter_input_bit_width];
bool** vec_input_right = new bool* [parameter_input_bit_width]; bool** vec_input_right = new bool* [parameter_input_bit_width];
for(int kk=0;kk<parameter_input_bit_width;kk++){ for(int kk=0;kk<parameter_input_bit_width;kk++){
vec_input_left[kk] = new bool [32]; vec_input_left[kk] = new bool [64];
vec_input_right[kk] = new bool [32]; vec_input_right[kk] = new bool [64];
} }
uint32_t* vec_input_left_int = new uint32_t [parameter_input_bit_width]; uint64_t* vec_input_left_int = new uint64_t [parameter_input_bit_width];
uint32_t* vec_input_right_int = new uint32_t [parameter_input_bit_width]; uint64_t* vec_input_right_int = new uint64_t [parameter_input_bit_width];
int j = int(vec_length*zk/BSD_samples); int j = int(vec_length*zk/BSD_samples);
for(int kk=0;kk<32;kk++){ for(int kk=0;kk<64;kk++){
if(kk<vec_length){ if(kk<vec_length){
long zj= vec_length*zk+kk; long zj= vec_length*zk+kk;
int zi = int(zj%BSD_samples); int zi = int(zj%BSD_samples);
...@@ -531,46 +550,44 @@ int BDD_class::train_BDD(BDD_node** BDD,int* most_influence,int start_depth, int ...@@ -531,46 +550,44 @@ int BDD_class::train_BDD(BDD_node** BDD,int* most_influence,int start_depth, int
vec_input_right[jj][kk] = 0; vec_input_right[jj][kk] = 0;
} }
} }
// cout<<vec_input_left[0][kk];
} }
// cout<<" ";
//cout<<"Debug 0"<<endl;
for(int kk=0;kk<parameter_input_bit_width;kk++){ for(int kk=0;kk<parameter_input_bit_width;kk++){
vec_input_left_int[kk] = cvt_bit_to_number_unsigned(vec_input_left[kk],32); vec_input_left_int[kk] = cvt_bit_to_number_unsigned(vec_input_left[kk],64);
vec_input_right_int[kk] = cvt_bit_to_number_unsigned(vec_input_right[kk],32); vec_input_right_int[kk] = cvt_bit_to_number_unsigned(vec_input_right[kk],64);
//cout<<hex<<vec_input_left_int[kk]<<endl;
//for(int zz=0;zz<64;zz++){
// if(zz%4==0){
// cout<<" ";
// }
// cout<<vec_input_left[kk][zz];
//}
//cout<<endl;
} }
// cout<<hex<<vec_input_left_int[0]<<" input"<<endl; uint64_t vec_output_left_int ;
//cout<<"Debug 1"<<endl; uint64_t vec_output_right_int ;
uint32_t vec_output_left_int ;
uint32_t vec_output_right_int ;
vec_output_left_int = io_generator_single_vec(vec_input_left_int ,BDD[i][j].which_bit_output); vec_output_left_int = io_generator_single_vec(vec_input_left_int ,BDD[i][j].which_bit_output);
vec_output_right_int = io_generator_single_vec(vec_input_right_int,BDD[i][j].which_bit_output); vec_output_right_int = io_generator_single_vec(vec_input_right_int,BDD[i][j].which_bit_output);
//cout<<"Debug 2"<<endl; bool* vec_output_left = new bool [64];
bool* vec_output_left = new bool [32]; bool* vec_output_right = new bool [64];
bool* vec_output_right = new bool [32]; cvt_number_to_bit_unsigned(vec_output_left,vec_output_left_int,64);
// cout<<"output "<<hex<<vec_output_left_int<<" "; cvt_number_to_bit_unsigned(vec_output_right,vec_output_right_int,64);
cvt_number_to_bit_unsigned(vec_output_left,vec_output_left_int,32); //cout<<hex<<vec_output_left_int<<endl;
cvt_number_to_bit_unsigned(vec_output_right,vec_output_right_int,32); //for(int zz=0;zz<63;zz++){
// for(int kk=0;kk<32;kk++){ // if(zz%4==0){
// cout<<vec_output_left[31-kk]; // cout<<" ";
// } // }
// cout<<endl; // cout<<vec_output_left[zz];
//cout<<"Debug 3"<<endl;
for(int kk=0;kk<vec_length;kk++){
long zj= vec_length*zk+kk;
int j = int(zj/BSD_samples);
int zi = int(zj%BSD_samples);
right_mask_output_data_all[zj] = vec_output_right[kk];
left_mask_output_data_all [zj] = vec_output_left [kk];
//bool* test_vec_input_right = new bool [parameter_input_bit_width];
//bool* test_vec_input_left = new bool [parameter_input_bit_width];
//for(int jj=0;jj<parameter_input_bit_width;jj++){
// test_vec_input_right[jj] = vec_input_right[jj][kk] ;
// test_vec_input_left[jj] = vec_input_left [jj][kk] ;
//} //}
//right_mask_output_data_all[zj] = io_generator_single(test_vec_input_right,BDD[i][j].which_bit_output); //cout<<endl;
//left_mask_output_data_all[zj] = io_generator_single(test_vec_input_left, BDD[i][j].which_bit_output);
int start_zj = vec_length*zk;
for(int zj=vec_length*zk;zj<vec_length*zk+vec_length;zj++){
right_mask_output_data_all[zj] = vec_output_right[(zj-start_zj)];
left_mask_output_data_all [zj] = vec_output_left [(zj-start_zj)];
} }
for(int kk=0;kk<parameter_input_bit_width;kk++){ for(int kk=0;kk<parameter_input_bit_width;kk++){
delete [] vec_input_left[kk] ; delete [] vec_input_left[kk] ;
...@@ -1039,7 +1056,7 @@ int BDD_class::BDD_infer(BDD_node** BDD,int* most_influence){ ...@@ -1039,7 +1056,7 @@ int BDD_class::BDD_infer(BDD_node** BDD,int* most_influence){
cout<<"test dataset size = "<<parameter_test_ios<<endl; cout<<"test dataset size = "<<parameter_test_ios<<endl;
error_amount_all = 0; error_amount_all = 0;
bool* error_all = new bool [how_many_start_nodes*parameter_test_ios]; bool* error_all = new bool [how_many_start_nodes*parameter_test_ios];
//#pragma omp parallel for #pragma omp parallel for
for(long zj=0;zj<how_many_start_nodes*parameter_test_ios;zj++){ for(long zj=0;zj<how_many_start_nodes*parameter_test_ios;zj++){
int test_bit = int(zj/parameter_test_ios); int test_bit = int(zj/parameter_test_ios);
bool* test_input_data = new bool [parameter_input_bit_width]; bool* test_input_data = new bool [parameter_input_bit_width];
...@@ -1050,7 +1067,6 @@ int BDD_class::BDD_infer(BDD_node** BDD,int* most_influence){ ...@@ -1050,7 +1067,6 @@ int BDD_class::BDD_infer(BDD_node** BDD,int* most_influence){
long randint; long randint;
zi = j%30; zi = j%30;
if(zi == 0){ if(zi == 0){
//randint = rand();
randint = gen(); randint = gen();
} }
test_input_data[j] = bool((int(randint >> (zi)))%2); test_input_data[j] = bool((int(randint >> (zi)))%2);
......
...@@ -107,12 +107,12 @@ def verilog_top(filename, num_lines=10): ...@@ -107,12 +107,12 @@ def verilog_top(filename, num_lines=10):
file.write(" -c \":wq!\" \n") file.write(" -c \":wq!\" \n")
file.write("vim -c \"open work/cpp_bits/${module_name}_o%d_vec.cpp\" \\\n"%bit_index) file.write("vim -c \"open work/cpp_bits/${module_name}_o%d_vec.cpp\" \\\n"%bit_index)
file.write(" -c \"1,$ s/vec_vec/vec\" \\\n") file.write(" -c \"1,$ s/vec_vec/vec\" \\\n")
file.write(" -c \"1,$ s/bool/uint32_t/g\" \\\n") file.write(" -c \"1,$ s/bool/uint64_t/g\" \\\n")
file.write(" -c \"1,$ s/!/\~/g\" \\\n") file.write(" -c \"1,$ s/!/\~/g\" \\\n")
file.write(" -c \"1,$ s/&&/and/g\" \\\n") file.write(" -c \"1,$ s/&&/and/g\" \\\n")
file.write(" -c \"1,$ s/and/\&/g\" \\\n") file.write(" -c \"1,$ s/and/\&/g\" \\\n")
file.write(" -c \"1,$ s/false/0/g\" \\\n") file.write(" -c \"1,$ s/false/uint64_t(0)/g\" \\\n")
file.write(" -c \"1,$ s/true/32'hffffffff/g\" \\\n") file.write(" -c \"1,$ s/true/64'hffffffffffffffff/g\" \\\n")
file.write(" -c \":wq!\" \n") file.write(" -c \":wq!\" \n")
print(f"成功写入write vec文件") print(f"成功写入write vec文件")
...@@ -197,20 +197,20 @@ def verilog_top(filename, num_lines=10): ...@@ -197,20 +197,20 @@ def verilog_top(filename, num_lines=10):
print(f"警告: 文件 {filename} 不存在,已跳过") print(f"警告: 文件 {filename} 不存在,已跳过")
except Exception as e: except Exception as e:
print(f"读取文件 {filename} 时出错: {e}") print(f"读取文件 {filename} 时出错: {e}")
out_file.write("uint32_t io_generator_outer_vec_single(uint32_t* pi, int bit_index) {\n") out_file.write("uint64_t io_generator_outer_vec_single(uint64_t* pi, int bit_index) {\n")
out_file.write("\n") out_file.write("\n")
out_file.write("uint32_t* po_tmp = new uint32_t [%d];\n"%output_bit_width) out_file.write("uint64_t* po_tmp = new uint64_t [%d];\n"%output_bit_width)
out_file.write("if (bit_index == 0)\n") out_file.write("if (bit_index == 0)\n")
out_file.write(" io_generator_outer_vec_o0(pi, po_tmp);\n") out_file.write(" io_generator_outer_vec_o0(pi, po_tmp);\n")
for i in range(1,output_bit_width): for i in range(1,output_bit_width):
out_file.write("else if (bit_index ==%d)\n"%i) out_file.write("else if (bit_index ==%d)\n"%i)
out_file.write(" io_generator_outer_vec_o%d(pi, po_tmp);\n"%i) out_file.write(" io_generator_outer_vec_o%d(pi, po_tmp);\n"%i)
out_file.write("uint32_t po = po_tmp[0];\n") out_file.write("uint64_t po = po_tmp[0];\n")
out_file.write("delete [] po_tmp;\n") out_file.write("delete [] po_tmp;\n")
out_file.write("return po;\n") out_file.write("return po;\n")
out_file.write("}\n\n") out_file.write("}\n\n")
out_file.write("void io_generator_outer_vec(uint32_t* pi, uint32_t* po) {\n") out_file.write("void io_generator_outer_vec(uint64_t* pi, uint64_t* po) {\n")
out_file.write("uint32_t po_tmp;\n") out_file.write("uint64_t po_tmp;\n")
for i in range(output_bit_width): for i in range(output_bit_width):
out_file.write("po_tmp = io_generator_outer_vec_single(pi,%d);\n"%(i)) out_file.write("po_tmp = io_generator_outer_vec_single(pi,%d);\n"%(i))
out_file.write("po[%d] = po_tmp;\n"%(i)) out_file.write("po[%d] = po_tmp;\n"%(i))
......
aag 53 36 0 1 17
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
107
74 4 3
76 12 9
78 77 75
80 20 17
82 81 78
84 28 25
86 85 82
88 36 33
90 89 86
92 44 41
94 93 90
96 52 49
98 97 94
100 60 57
102 101 98
104 68 65
106 105 102
i0 in[0]
i1 in[1]
i10 in[10]
i11 in[11]
i12 in[12]
i13 in[13]
i14 in[14]
i15 in[15]
i16 in[16]
i17 in[17]
i18 in[18]
i19 in[19]
i2 in[2]
i20 in[20]
i21 in[21]
i22 in[22]
i23 in[23]
i24 in[24]
i25 in[25]
i26 in[26]
i27 in[27]
i28 in[28]
i29 in[29]
i3 in[3]
i30 in[30]
i31 in[31]
i32 in[32]
i33 in[33]
i34 in[34]
i35 in[35]
i4 in[4]
i5 in[5]
i6 in[6]
i7 in[7]
i8 in[8]
i9 in[9]
o0 out
c
Generated by Yosys 0.59+0 (git sha1 26b51148a80ea546481cf4f0516be97e4ba251cc, g++ 14.3.0-7 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/yosys_1763076189558/work=/usr/local/src/conda/yosys-0.59.1 -fdebug-prefix-map=/lustre/S/chengshuyao/haoshiming/anaconda3/envs/yosys=/usr/local/src/conda-prefix -fPIC -O3)
aag 104 36 0 1 68
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
209
74 4 3
76 12 9
78 77 75
80 20 17
82 81 78
84 28 25
86 85 82
88 36 33
90 89 86
92 44 41
94 93 90
96 52 49
98 97 94
100 60 57
102 101 98
104 68 65
106 105 102
108 107 74
110 106 75
112 111 109
114 7 4
116 114 113
118 107 77
120 106 76
122 121 119
124 15 12
126 124 122
128 127 117
130 107 81
132 106 80
134 133 131
136 23 20
138 136 134
140 139 128
142 107 85
144 106 84
146 145 143
148 31 28
150 148 146
152 151 140
154 107 89
156 106 88
158 157 155
160 39 36
162 160 158
164 163 152
166 107 93
168 106 92
170 169 167
172 47 44
174 172 170
176 175 164
178 107 97
180 106 96
182 181 179
184 55 52
186 184 182
188 187 176
190 107 101
192 106 100
194 193 191
196 63 60
198 196 194
200 199 188
202 105 103
204 71 68
206 204 203
208 207 200
i0 in[0]
i1 in[1]
i10 in[10]
i11 in[11]
i12 in[12]
i13 in[13]
i14 in[14]
i15 in[15]
i16 in[16]
i17 in[17]
i18 in[18]
i19 in[19]
i2 in[2]
i20 in[20]
i21 in[21]
i22 in[22]
i23 in[23]
i24 in[24]
i25 in[25]
i26 in[26]
i27 in[27]
i28 in[28]
i29 in[29]
i3 in[3]
i30 in[30]
i31 in[31]
i32 in[32]
i33 in[33]
i34 in[34]
i35 in[35]
i4 in[4]
i5 in[5]
i6 in[6]
i7 in[7]
i8 in[8]
i9 in[9]
o0 out
c
Generated by Yosys 0.59+0 (git sha1 26b51148a80ea546481cf4f0516be97e4ba251cc, g++ 14.3.0-7 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/yosys_1763076189558/work=/usr/local/src/conda/yosys-0.59.1 -fdebug-prefix-map=/lustre/S/chengshuyao/haoshiming/anaconda3/envs/yosys=/usr/local/src/conda-prefix -fPIC -O3)
aag 164 36 0 1 128
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
329
74 4 3
76 12 9
78 77 75
80 20 17
82 81 78
84 28 25
86 85 82
88 36 33
90 89 86
92 44 41
94 93 90
96 52 49
98 97 94
100 60 57
102 101 98
104 68 65
106 105 102
108 107 74
110 106 75
112 111 109
114 7 4
116 114 113
118 107 77
120 106 76
122 121 119
124 15 12
126 124 122
128 127 117
130 107 81
132 106 80
134 133 131
136 23 20
138 136 134
140 139 128
142 107 85
144 106 84
146 145 143
148 31 28
150 148 146
152 151 140
154 107 89
156 106 88
158 157 155
160 39 36
162 160 158
164 163 152
166 107 93
168 106 92
170 169 167
172 47 44
174 172 170
176 175 164
178 55 52
180 107 97
182 106 96
184 183 181
186 184 178
188 187 176
190 63 60
192 107 101
194 106 100
196 195 193
198 196 190
200 199 188
202 71 68
204 105 103
206 205 202
208 207 200
210 209 116
212 208 117
214 213 211
216 11 4
218 216 113
220 218 215
222 209 127
224 208 126
226 225 223
228 19 12
230 228 122
232 230 226
234 233 221
236 209 139
238 208 138
240 239 237
242 27 20
244 242 134
246 244 240
248 247 234
250 209 151
252 208 150
254 253 251
256 35 28
258 256 146
260 258 254
262 261 248
264 209 163
266 208 162
268 267 265
270 43 36
272 270 158
274 272 268
276 275 262
278 209 175
280 208 174
282 281 279
284 51 44
286 284 170
288 286 282
290 289 276
292 209 187
294 208 186
296 295 293
298 59 52
300 298 184
302 300 296
304 303 290
306 209 199
308 208 198
310 309 307
312 67 60
314 312 196
316 314 310
318 317 304
320 207 201
322 73 68
324 322 205
326 324 321
328 327 318
i0 in[0]
i1 in[1]
i10 in[10]
i11 in[11]
i12 in[12]
i13 in[13]
i14 in[14]
i15 in[15]
i16 in[16]
i17 in[17]
i18 in[18]
i19 in[19]
i2 in[2]
i20 in[20]
i21 in[21]
i22 in[22]
i23 in[23]
i24 in[24]
i25 in[25]
i26 in[26]
i27 in[27]
i28 in[28]
i29 in[29]
i3 in[3]
i30 in[30]
i31 in[31]
i32 in[32]
i33 in[33]
i34 in[34]
i35 in[35]
i4 in[4]
i5 in[5]
i6 in[6]
i7 in[7]
i8 in[8]
i9 in[9]
o0 out
c
Generated by Yosys 0.59+0 (git sha1 26b51148a80ea546481cf4f0516be97e4ba251cc, g++ 14.3.0-7 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/yosys_1763076189558/work=/usr/local/src/conda/yosys-0.59.1 -fdebug-prefix-map=/lustre/S/chengshuyao/haoshiming/anaconda3/envs/yosys=/usr/local/src/conda-prefix -fPIC -O3)
aag 226 36 0 1 190
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
452
74 4 3
76 12 9
78 77 75
80 20 17
82 81 78
84 28 25
86 85 82
88 36 33
90 89 86
92 44 41
94 93 90
96 52 49
98 97 94
100 60 57
102 101 98
104 68 65
106 105 102
108 107 2
110 109 4
112 107 74
114 106 75
116 115 113
118 7 4
120 118 117
122 107 77
124 106 76
126 125 123
128 15 12
130 128 126
132 131 121
134 107 81
136 106 80
138 137 135
140 23 20
142 140 138
144 143 132
146 107 85
148 106 84
150 149 147
152 31 28
154 152 150
156 155 144
158 107 89
160 106 88
162 161 159
164 39 36
166 164 162
168 167 156
170 107 93
172 106 92
174 173 171
176 47 44
178 176 174
180 179 168
182 55 52
184 107 97
186 106 96
188 187 185
190 188 182
192 191 180
194 63 60
196 107 101
198 106 100
200 199 197
202 200 194
204 203 192
206 71 68
208 105 103
210 209 206
212 211 204
214 213 6
216 215 110
218 213 120
220 212 121
222 221 219
224 11 4
226 224 117
228 226 223
230 213 131
232 212 130
234 233 231
236 19 12
238 236 126
240 238 234
242 241 229
244 213 143
246 212 142
248 247 245
250 27 20
252 250 138
254 252 248
256 255 242
258 213 155
260 212 154
262 261 259
264 35 28
266 264 150
268 266 262
270 269 256
272 213 167
274 212 166
276 275 273
278 43 36
280 278 162
282 280 276
284 283 270
286 213 179
288 212 178
290 289 287
292 51 44
294 292 174
296 294 290
298 297 284
300 213 191
302 212 190
304 303 301
306 59 52
308 306 188
310 308 304
312 311 298
314 213 203
316 212 202
318 317 315
320 67 60
322 320 200
324 322 318
326 325 312
328 211 205
330 73 68
332 330 209
334 332 329
336 335 326
338 337 10
340 339 216
342 107 8
344 213 14
346 345 343
348 337 18
350 349 346
352 350 12
354 107 16
356 213 22
358 357 355
360 337 26
362 361 358
364 362 20
366 365 353
368 107 24
370 213 30
372 371 369
374 337 34
376 375 372
378 376 28
380 379 366
382 107 32
384 213 38
386 385 383
388 337 42
390 389 386
392 390 36
394 393 380
396 107 40
398 213 46
400 399 397
402 337 50
404 403 400
406 404 44
408 407 394
410 107 48
412 213 54
414 413 411
416 337 58
418 417 414
420 418 52
422 421 408
424 107 56
426 213 62
428 427 425
430 337 66
432 431 428
434 432 60
436 435 422
438 107 64
440 213 70
442 441 439
444 337 72
446 445 442
448 446 68
450 449 436
452 451 341
i0 in[0]
i1 in[1]
i10 in[10]
i11 in[11]
i12 in[12]
i13 in[13]
i14 in[14]
i15 in[15]
i16 in[16]
i17 in[17]
i18 in[18]
i19 in[19]
i2 in[2]
i20 in[20]
i21 in[21]
i22 in[22]
i23 in[23]
i24 in[24]
i25 in[25]
i26 in[26]
i27 in[27]
i28 in[28]
i29 in[29]
i3 in[3]
i30 in[30]
i31 in[31]
i32 in[32]
i33 in[33]
i34 in[34]
i35 in[35]
i4 in[4]
i5 in[5]
i6 in[6]
i7 in[7]
i8 in[8]
i9 in[9]
o0 out
c
Generated by Yosys 0.59+0 (git sha1 26b51148a80ea546481cf4f0516be97e4ba251cc, g++ 14.3.0-7 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/yosys_1763076189558/work=/usr/local/src/conda/yosys-0.59.1 -fdebug-prefix-map=/lustre/S/chengshuyao/haoshiming/anaconda3/envs/yosys=/usr/local/src/conda-prefix -fPIC -O3)
aag 192 36 0 1 156
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
385
74 4 3
76 12 9
78 77 75
80 20 17
82 81 78
84 28 25
86 85 82
88 36 33
90 89 86
92 44 41
94 93 90
96 52 49
98 97 94
100 60 57
102 101 98
104 68 65
106 105 102
108 107 16
110 107 74
112 106 75
114 113 111
116 7 4
118 116 115
120 107 77
122 106 76
124 123 121
126 15 12
128 126 124
130 129 119
132 107 81
134 106 80
136 135 133
138 23 20
140 138 136
142 141 130
144 107 85
146 106 84
148 147 145
150 31 28
152 150 148
154 153 142
156 107 89
158 106 88
160 159 157
162 39 36
164 162 160
166 165 154
168 107 93
170 106 92
172 171 169
174 47 44
176 174 172
178 177 166
180 55 52
182 107 97
184 106 96
186 185 183
188 186 180
190 189 178
192 63 60
194 107 101
196 106 100
198 197 195
200 198 192
202 201 190
204 71 68
206 105 103
208 207 204
210 209 202
212 211 22
214 213 109
216 211 118
218 210 119
220 219 217
222 11 4
224 222 115
226 224 221
228 211 129
230 210 128
232 231 229
234 19 12
236 234 124
238 236 232
240 239 227
242 211 141
244 210 140
246 245 243
248 27 20
250 248 136
252 250 246
254 253 240
256 211 153
258 210 152
260 259 257
262 35 28
264 262 148
266 264 260
268 267 254
270 211 165
272 210 164
274 273 271
276 43 36
278 276 160
280 278 274
282 281 268
284 211 177
286 210 176
288 287 285
290 51 44
292 290 172
294 292 288
296 295 282
298 211 189
300 210 188
302 301 299
304 59 52
306 304 186
308 306 302
310 309 296
312 211 201
314 210 200
316 315 313
318 67 60
320 318 198
322 320 316
324 323 310
326 209 203
328 73 68
330 328 207
332 330 327
334 333 324
336 335 26
338 337 214
340 338 20
342 107 8
344 211 14
346 345 343
348 335 18
350 349 346
352 350 12
354 353 341
356 107 24
358 211 30
360 359 357
362 335 34
364 363 360
366 364 28
368 366 341
370 369 354
372 107 32
374 211 38
376 375 373
378 335 42
380 379 376
382 380 36
384 383 370
i0 in[0]
i1 in[1]
i10 in[10]
i11 in[11]
i12 in[12]
i13 in[13]
i14 in[14]
i15 in[15]
i16 in[16]
i17 in[17]
i18 in[18]
i19 in[19]
i2 in[2]
i20 in[20]
i21 in[21]
i22 in[22]
i23 in[23]
i24 in[24]
i25 in[25]
i26 in[26]
i27 in[27]
i28 in[28]
i29 in[29]
i3 in[3]
i30 in[30]
i31 in[31]
i32 in[32]
i33 in[33]
i34 in[34]
i35 in[35]
i4 in[4]
i5 in[5]
i6 in[6]
i7 in[7]
i8 in[8]
i9 in[9]
o0 out
c
Generated by Yosys 0.59+0 (git sha1 26b51148a80ea546481cf4f0516be97e4ba251cc, g++ 14.3.0-7 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/yosys_1763076189558/work=/usr/local/src/conda/yosys-0.59.1 -fdebug-prefix-map=/lustre/S/chengshuyao/haoshiming/anaconda3/envs/yosys=/usr/local/src/conda-prefix -fPIC -O3)
aag 208 36 0 1 172
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
417
74 4 3
76 12 9
78 77 75
80 20 17
82 81 78
84 28 25
86 85 82
88 36 33
90 89 86
92 44 41
94 93 90
96 52 49
98 97 94
100 60 57
102 101 98
104 68 65
106 105 102
108 107 16
110 107 74
112 106 75
114 113 111
116 7 4
118 116 115
120 107 77
122 106 76
124 123 121
126 15 12
128 126 124
130 129 119
132 107 81
134 106 80
136 135 133
138 23 20
140 138 136
142 141 130
144 107 85
146 106 84
148 147 145
150 31 28
152 150 148
154 153 142
156 107 89
158 106 88
160 159 157
162 39 36
164 162 160
166 165 154
168 107 93
170 106 92
172 171 169
174 47 44
176 174 172
178 177 166
180 55 52
182 107 97
184 106 96
186 185 183
188 186 180
190 189 178
192 63 60
194 107 101
196 106 100
198 197 195
200 198 192
202 201 190
204 71 68
206 105 103
208 207 204
210 209 202
212 211 22
214 213 109
216 211 118
218 210 119
220 219 217
222 11 4
224 222 115
226 224 221
228 211 129
230 210 128
232 231 229
234 19 12
236 234 124
238 236 232
240 239 227
242 211 141
244 210 140
246 245 243
248 27 20
250 248 136
252 250 246
254 253 240
256 211 153
258 210 152
260 259 257
262 35 28
264 262 148
266 264 260
268 267 254
270 211 165
272 210 164
274 273 271
276 43 36
278 276 160
280 278 274
282 281 268
284 211 177
286 210 176
288 287 285
290 51 44
292 290 172
294 292 288
296 295 282
298 211 189
300 210 188
302 301 299
304 59 52
306 304 186
308 306 302
310 309 296
312 211 201
314 210 200
316 315 313
318 67 60
320 318 198
322 320 316
324 323 310
326 209 203
328 73 68
330 328 207
332 330 327
334 333 324
336 335 26
338 337 214
340 338 20
342 107 8
344 211 14
346 345 343
348 335 18
350 349 346
352 350 12
354 353 341
356 107 24
358 211 30
360 359 357
362 335 34
364 363 360
366 364 28
368 367 341
370 107 40
372 211 46
374 373 371
376 335 50
378 377 374
380 378 44
382 380 368
384 107 32
386 211 38
388 387 385
390 335 42
392 391 388
394 392 36
396 395 382
398 397 354
400 395 367
402 107 48
404 211 54
406 405 403
408 335 58
410 409 406
412 410 52
414 412 400
416 415 398
i0 in[0]
i1 in[1]
i10 in[10]
i11 in[11]
i12 in[12]
i13 in[13]
i14 in[14]
i15 in[15]
i16 in[16]
i17 in[17]
i18 in[18]
i19 in[19]
i2 in[2]
i20 in[20]
i21 in[21]
i22 in[22]
i23 in[23]
i24 in[24]
i25 in[25]
i26 in[26]
i27 in[27]
i28 in[28]
i29 in[29]
i3 in[3]
i30 in[30]
i31 in[31]
i32 in[32]
i33 in[33]
i34 in[34]
i35 in[35]
i4 in[4]
i5 in[5]
i6 in[6]
i7 in[7]
i8 in[8]
i9 in[9]
o0 out
c
Generated by Yosys 0.59+0 (git sha1 26b51148a80ea546481cf4f0516be97e4ba251cc, g++ 14.3.0-7 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/yosys_1763076189558/work=/usr/local/src/conda/yosys-0.59.1 -fdebug-prefix-map=/lustre/S/chengshuyao/haoshiming/anaconda3/envs/yosys=/usr/local/src/conda-prefix -fPIC -O3)
aag 215 36 0 1 179
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
431
74 4 3
76 12 9
78 77 75
80 20 17
82 81 78
84 28 25
86 85 82
88 36 33
90 89 86
92 44 41
94 93 90
96 52 49
98 97 94
100 60 57
102 101 98
104 68 65
106 105 102
108 107 8
110 107 74
112 106 75
114 113 111
116 7 4
118 116 115
120 107 77
122 106 76
124 123 121
126 15 12
128 126 124
130 129 119
132 107 81
134 106 80
136 135 133
138 23 20
140 138 136
142 141 130
144 107 85
146 106 84
148 147 145
150 31 28
152 150 148
154 153 142
156 107 89
158 106 88
160 159 157
162 39 36
164 162 160
166 165 154
168 107 93
170 106 92
172 171 169
174 47 44
176 174 172
178 177 166
180 55 52
182 107 97
184 106 96
186 185 183
188 186 180
190 189 178
192 63 60
194 107 101
196 106 100
198 197 195
200 198 192
202 201 190
204 71 68
206 105 103
208 207 204
210 209 202
212 211 14
214 213 109
216 211 118
218 210 119
220 219 217
222 11 4
224 222 115
226 224 221
228 211 129
230 210 128
232 231 229
234 19 12
236 234 124
238 236 232
240 239 227
242 211 141
244 210 140
246 245 243
248 27 20
250 248 136
252 250 246
254 253 240
256 211 153
258 210 152
260 259 257
262 35 28
264 262 148
266 264 260
268 267 254
270 211 165
272 210 164
274 273 271
276 43 36
278 276 160
280 278 274
282 281 268
284 211 177
286 210 176
288 287 285
290 51 44
292 290 172
294 292 288
296 295 282
298 211 189
300 210 188
302 301 299
304 59 52
306 304 186
308 306 302
310 309 296
312 211 201
314 210 200
316 315 313
318 67 60
320 318 198
322 320 316
324 323 310
326 209 203
328 73 68
330 328 207
332 330 327
334 333 324
336 335 18
338 337 214
340 338 12
342 107 24
344 211 30
346 345 343
348 335 34
350 349 346
352 350 28
354 107 16
356 211 22
358 357 355
360 335 26
362 361 358
364 362 20
366 365 352
368 367 341
370 365 353
372 107 40
374 211 46
376 375 373
378 335 50
380 379 376
382 380 44
384 382 370
386 107 32
388 211 38
390 389 387
392 335 42
394 393 390
396 394 36
398 397 384
400 399 368
402 107 48
404 211 54
406 405 403
408 335 58
410 409 406
412 410 52
414 413 370
416 107 56
418 211 62
420 419 417
422 335 66
424 423 420
426 424 60
428 426 414
430 429 400
i0 in[0]
i1 in[1]
i10 in[10]
i11 in[11]
i12 in[12]
i13 in[13]
i14 in[14]
i15 in[15]
i16 in[16]
i17 in[17]
i18 in[18]
i19 in[19]
i2 in[2]
i20 in[20]
i21 in[21]
i22 in[22]
i23 in[23]
i24 in[24]
i25 in[25]
i26 in[26]
i27 in[27]
i28 in[28]
i29 in[29]
i3 in[3]
i30 in[30]
i31 in[31]
i32 in[32]
i33 in[33]
i34 in[34]
i35 in[35]
i4 in[4]
i5 in[5]
i6 in[6]
i7 in[7]
i8 in[8]
i9 in[9]
o0 out
c
Generated by Yosys 0.59+0 (git sha1 26b51148a80ea546481cf4f0516be97e4ba251cc, g++ 14.3.0-7 -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/yosys_1763076189558/work=/usr/local/src/conda/yosys-0.59.1 -fdebug-prefix-map=/lustre/S/chengshuyao/haoshiming/anaconda3/envs/yosys=/usr/local/src/conda-prefix -fPIC -O3)
void io_generator_outer_o0(bool* pi, bool* po) {
bool n0 = false;
bool n1 = pi[0];
bool n2 = pi[1];
bool n3 = pi[2];
bool n4 = pi[3];
bool n5 = pi[4];
bool n6 = pi[5];
bool n7 = pi[6];
bool n8 = pi[7];
bool n9 = pi[8];
bool n10 = pi[9];
bool n11 = pi[10];
bool n12 = pi[11];
bool n13 = pi[12];
bool n14 = pi[13];
bool n15 = pi[14];
bool n16 = pi[15];
bool n17 = pi[16];
bool n18 = pi[17];
bool n19 = pi[18];
bool n20 = pi[19];
bool n21 = pi[20];
bool n22 = pi[21];
bool n23 = pi[22];
bool n24 = pi[23];
bool n25 = pi[24];
bool n26 = pi[25];
bool n27 = pi[26];
bool n28 = pi[27];
bool n29 = pi[28];
bool n30 = pi[29];
bool n31 = pi[30];
bool n32 = pi[31];
bool n33 = pi[32];
bool n34 = pi[33];
bool n35 = pi[34];
bool n36 = pi[35];
bool n37 = n2 && !n1;
bool n38 = n6 && !n4;
bool n39 = !n38 && !n37;
bool n40 = n10 && !n8;
bool n41 = !n40 && n39;
bool n42 = n14 && !n12;
bool n43 = !n42 && n41;
bool n44 = n18 && !n16;
bool n45 = !n44 && n43;
bool n46 = n22 && !n20;
bool n47 = !n46 && n45;
bool n48 = n26 && !n24;
bool n49 = !n48 && n47;
bool n50 = n30 && !n28;
bool n51 = !n50 && n49;
bool n52 = n34 && !n32;
bool n53 = !n52 && n51;
po[0] = !n53;
}
\ No newline at end of file
#ifndef IO_GENERATOR_OUTER_O0_H
#define IO_GENERATOR_OUTER_O0_H
extern const int PI_WIDTH = 36;
extern const int PO_WIDTH = 1;
void io_generator_outer_o0(bool* pi, bool* po);
#endif
\ No newline at end of file
void io_generator_outer_vec_o0(uint64_t* pi, uint64_t* po) {
uint64_t n0 = uint64_t(0);
uint64_t n1 = pi[0];
uint64_t n2 = pi[1];
uint64_t n3 = pi[2];
uint64_t n4 = pi[3];
uint64_t n5 = pi[4];
uint64_t n6 = pi[5];
uint64_t n7 = pi[6];
uint64_t n8 = pi[7];
uint64_t n9 = pi[8];
uint64_t n10 = pi[9];
uint64_t n11 = pi[10];
uint64_t n12 = pi[11];
uint64_t n13 = pi[12];
uint64_t n14 = pi[13];
uint64_t n15 = pi[14];
uint64_t n16 = pi[15];
uint64_t n17 = pi[16];
uint64_t n18 = pi[17];
uint64_t n19 = pi[18];
uint64_t n20 = pi[19];
uint64_t n21 = pi[20];
uint64_t n22 = pi[21];
uint64_t n23 = pi[22];
uint64_t n24 = pi[23];
uint64_t n25 = pi[24];
uint64_t n26 = pi[25];
uint64_t n27 = pi[26];
uint64_t n28 = pi[27];
uint64_t n29 = pi[28];
uint64_t n30 = pi[29];
uint64_t n31 = pi[30];
uint64_t n32 = pi[31];
uint64_t n33 = pi[32];
uint64_t n34 = pi[33];
uint64_t n35 = pi[34];
uint64_t n36 = pi[35];
uint64_t n37 = n2 & ~n1;
uint64_t n38 = n6 & ~n4;
uint64_t n39 = ~n38 & ~n37;
uint64_t n40 = n10 & ~n8;
uint64_t n41 = ~n40 & n39;
uint64_t n42 = n14 & ~n12;
uint64_t n43 = ~n42 & n41;
uint64_t n44 = n18 & ~n16;
uint64_t n45 = ~n44 & n43;
uint64_t n46 = n22 & ~n20;
uint64_t n47 = ~n46 & n45;
uint64_t n48 = n26 & ~n24;
uint64_t n49 = ~n48 & n47;
uint64_t n50 = n30 & ~n28;
uint64_t n51 = ~n50 & n49;
uint64_t n52 = n34 & ~n32;
uint64_t n53 = ~n52 & n51;
po[0] = ~n53;
}
void io_generator_outer_o1(bool* pi, bool* po) {
bool n0 = false;
bool n1 = pi[0];
bool n2 = pi[1];
bool n3 = pi[2];
bool n4 = pi[3];
bool n5 = pi[4];
bool n6 = pi[5];
bool n7 = pi[6];
bool n8 = pi[7];
bool n9 = pi[8];
bool n10 = pi[9];
bool n11 = pi[10];
bool n12 = pi[11];
bool n13 = pi[12];
bool n14 = pi[13];
bool n15 = pi[14];
bool n16 = pi[15];
bool n17 = pi[16];
bool n18 = pi[17];
bool n19 = pi[18];
bool n20 = pi[19];
bool n21 = pi[20];
bool n22 = pi[21];
bool n23 = pi[22];
bool n24 = pi[23];
bool n25 = pi[24];
bool n26 = pi[25];
bool n27 = pi[26];
bool n28 = pi[27];
bool n29 = pi[28];
bool n30 = pi[29];
bool n31 = pi[30];
bool n32 = pi[31];
bool n33 = pi[32];
bool n34 = pi[33];
bool n35 = pi[34];
bool n36 = pi[35];
bool n37 = n2 && !n1;
bool n38 = n6 && !n4;
bool n39 = !n38 && !n37;
bool n40 = n10 && !n8;
bool n41 = !n40 && n39;
bool n42 = n14 && !n12;
bool n43 = !n42 && n41;
bool n44 = n18 && !n16;
bool n45 = !n44 && n43;
bool n46 = n22 && !n20;
bool n47 = !n46 && n45;
bool n48 = n26 && !n24;
bool n49 = !n48 && n47;
bool n50 = n30 && !n28;
bool n51 = !n50 && n49;
bool n52 = n34 && !n32;
bool n53 = !n52 && n51;
bool n54 = !n53 && n37;
bool n55 = n53 && !n37;
bool n56 = !n55 && !n54;
bool n57 = !n3 && n2;
bool n58 = n57 && !n56;
bool n59 = !n53 && !n38;
bool n60 = n53 && n38;
bool n61 = !n60 && !n59;
bool n62 = !n7 && n6;
bool n63 = n62 && n61;
bool n64 = !n63 && !n58;
bool n65 = !n53 && !n40;
bool n66 = n53 && n40;
bool n67 = !n66 && !n65;
bool n68 = !n11 && n10;
bool n69 = n68 && n67;
bool n70 = !n69 && n64;
bool n71 = !n53 && !n42;
bool n72 = n53 && n42;
bool n73 = !n72 && !n71;
bool n74 = !n15 && n14;
bool n75 = n74 && n73;
bool n76 = !n75 && n70;
bool n77 = !n53 && !n44;
bool n78 = n53 && n44;
bool n79 = !n78 && !n77;
bool n80 = !n19 && n18;
bool n81 = n80 && n79;
bool n82 = !n81 && n76;
bool n83 = !n53 && !n46;
bool n84 = n53 && n46;
bool n85 = !n84 && !n83;
bool n86 = !n23 && n22;
bool n87 = n86 && n85;
bool n88 = !n87 && n82;
bool n89 = !n53 && !n48;
bool n90 = n53 && n48;
bool n91 = !n90 && !n89;
bool n92 = !n27 && n26;
bool n93 = n92 && n91;
bool n94 = !n93 && n88;
bool n95 = !n53 && !n50;
bool n96 = n53 && n50;
bool n97 = !n96 && !n95;
bool n98 = !n31 && n30;
bool n99 = n98 && n97;
bool n100 = !n99 && n94;
bool n101 = !n52 && !n51;
bool n102 = !n35 && n34;
bool n103 = n102 && !n101;
bool n104 = !n103 && n100;
po[0] = !n104;
}
\ No newline at end of file
#ifndef IO_GENERATOR_OUTER_O1_H
#define IO_GENERATOR_OUTER_O1_H
extern const int PI_WIDTH = 36;
extern const int PO_WIDTH = 1;
void io_generator_outer_o1(bool* pi, bool* po);
#endif
\ No newline at end of file
void io_generator_outer_vec_o1(uint64_t* pi, uint64_t* po) {
uint64_t n0 = uint64_t(0);
uint64_t n1 = pi[0];
uint64_t n2 = pi[1];
uint64_t n3 = pi[2];
uint64_t n4 = pi[3];
uint64_t n5 = pi[4];
uint64_t n6 = pi[5];
uint64_t n7 = pi[6];
uint64_t n8 = pi[7];
uint64_t n9 = pi[8];
uint64_t n10 = pi[9];
uint64_t n11 = pi[10];
uint64_t n12 = pi[11];
uint64_t n13 = pi[12];
uint64_t n14 = pi[13];
uint64_t n15 = pi[14];
uint64_t n16 = pi[15];
uint64_t n17 = pi[16];
uint64_t n18 = pi[17];
uint64_t n19 = pi[18];
uint64_t n20 = pi[19];
uint64_t n21 = pi[20];
uint64_t n22 = pi[21];
uint64_t n23 = pi[22];
uint64_t n24 = pi[23];
uint64_t n25 = pi[24];
uint64_t n26 = pi[25];
uint64_t n27 = pi[26];
uint64_t n28 = pi[27];
uint64_t n29 = pi[28];
uint64_t n30 = pi[29];
uint64_t n31 = pi[30];
uint64_t n32 = pi[31];
uint64_t n33 = pi[32];
uint64_t n34 = pi[33];
uint64_t n35 = pi[34];
uint64_t n36 = pi[35];
uint64_t n37 = n2 & ~n1;
uint64_t n38 = n6 & ~n4;
uint64_t n39 = ~n38 & ~n37;
uint64_t n40 = n10 & ~n8;
uint64_t n41 = ~n40 & n39;
uint64_t n42 = n14 & ~n12;
uint64_t n43 = ~n42 & n41;
uint64_t n44 = n18 & ~n16;
uint64_t n45 = ~n44 & n43;
uint64_t n46 = n22 & ~n20;
uint64_t n47 = ~n46 & n45;
uint64_t n48 = n26 & ~n24;
uint64_t n49 = ~n48 & n47;
uint64_t n50 = n30 & ~n28;
uint64_t n51 = ~n50 & n49;
uint64_t n52 = n34 & ~n32;
uint64_t n53 = ~n52 & n51;
uint64_t n54 = ~n53 & n37;
uint64_t n55 = n53 & ~n37;
uint64_t n56 = ~n55 & ~n54;
uint64_t n57 = ~n3 & n2;
uint64_t n58 = n57 & ~n56;
uint64_t n59 = ~n53 & ~n38;
uint64_t n60 = n53 & n38;
uint64_t n61 = ~n60 & ~n59;
uint64_t n62 = ~n7 & n6;
uint64_t n63 = n62 & n61;
uint64_t n64 = ~n63 & ~n58;
uint64_t n65 = ~n53 & ~n40;
uint64_t n66 = n53 & n40;
uint64_t n67 = ~n66 & ~n65;
uint64_t n68 = ~n11 & n10;
uint64_t n69 = n68 & n67;
uint64_t n70 = ~n69 & n64;
uint64_t n71 = ~n53 & ~n42;
uint64_t n72 = n53 & n42;
uint64_t n73 = ~n72 & ~n71;
uint64_t n74 = ~n15 & n14;
uint64_t n75 = n74 & n73;
uint64_t n76 = ~n75 & n70;
uint64_t n77 = ~n53 & ~n44;
uint64_t n78 = n53 & n44;
uint64_t n79 = ~n78 & ~n77;
uint64_t n80 = ~n19 & n18;
uint64_t n81 = n80 & n79;
uint64_t n82 = ~n81 & n76;
uint64_t n83 = ~n53 & ~n46;
uint64_t n84 = n53 & n46;
uint64_t n85 = ~n84 & ~n83;
uint64_t n86 = ~n23 & n22;
uint64_t n87 = n86 & n85;
uint64_t n88 = ~n87 & n82;
uint64_t n89 = ~n53 & ~n48;
uint64_t n90 = n53 & n48;
uint64_t n91 = ~n90 & ~n89;
uint64_t n92 = ~n27 & n26;
uint64_t n93 = n92 & n91;
uint64_t n94 = ~n93 & n88;
uint64_t n95 = ~n53 & ~n50;
uint64_t n96 = n53 & n50;
uint64_t n97 = ~n96 & ~n95;
uint64_t n98 = ~n31 & n30;
uint64_t n99 = n98 & n97;
uint64_t n100 = ~n99 & n94;
uint64_t n101 = ~n52 & ~n51;
uint64_t n102 = ~n35 & n34;
uint64_t n103 = n102 & ~n101;
uint64_t n104 = ~n103 & n100;
po[0] = ~n104;
}
void io_generator_outer_o2(bool* pi, bool* po) {
bool n0 = false;
bool n1 = pi[0];
bool n2 = pi[1];
bool n3 = pi[2];
bool n4 = pi[3];
bool n5 = pi[4];
bool n6 = pi[5];
bool n7 = pi[6];
bool n8 = pi[7];
bool n9 = pi[8];
bool n10 = pi[9];
bool n11 = pi[10];
bool n12 = pi[11];
bool n13 = pi[12];
bool n14 = pi[13];
bool n15 = pi[14];
bool n16 = pi[15];
bool n17 = pi[16];
bool n18 = pi[17];
bool n19 = pi[18];
bool n20 = pi[19];
bool n21 = pi[20];
bool n22 = pi[21];
bool n23 = pi[22];
bool n24 = pi[23];
bool n25 = pi[24];
bool n26 = pi[25];
bool n27 = pi[26];
bool n28 = pi[27];
bool n29 = pi[28];
bool n30 = pi[29];
bool n31 = pi[30];
bool n32 = pi[31];
bool n33 = pi[32];
bool n34 = pi[33];
bool n35 = pi[34];
bool n36 = pi[35];
bool n37 = n2 && !n1;
bool n38 = n6 && !n4;
bool n39 = !n38 && !n37;
bool n40 = n10 && !n8;
bool n41 = !n40 && n39;
bool n42 = n14 && !n12;
bool n43 = !n42 && n41;
bool n44 = n18 && !n16;
bool n45 = !n44 && n43;
bool n46 = n22 && !n20;
bool n47 = !n46 && n45;
bool n48 = n26 && !n24;
bool n49 = !n48 && n47;
bool n50 = n30 && !n28;
bool n51 = !n50 && n49;
bool n52 = n34 && !n32;
bool n53 = !n52 && n51;
bool n54 = !n53 && n37;
bool n55 = n53 && !n37;
bool n56 = !n55 && !n54;
bool n57 = !n3 && n2;
bool n58 = n57 && !n56;
bool n59 = !n53 && !n38;
bool n60 = n53 && n38;
bool n61 = !n60 && !n59;
bool n62 = !n7 && n6;
bool n63 = n62 && n61;
bool n64 = !n63 && !n58;
bool n65 = !n53 && !n40;
bool n66 = n53 && n40;
bool n67 = !n66 && !n65;
bool n68 = !n11 && n10;
bool n69 = n68 && n67;
bool n70 = !n69 && n64;
bool n71 = !n53 && !n42;
bool n72 = n53 && n42;
bool n73 = !n72 && !n71;
bool n74 = !n15 && n14;
bool n75 = n74 && n73;
bool n76 = !n75 && n70;
bool n77 = !n53 && !n44;
bool n78 = n53 && n44;
bool n79 = !n78 && !n77;
bool n80 = !n19 && n18;
bool n81 = n80 && n79;
bool n82 = !n81 && n76;
bool n83 = !n53 && !n46;
bool n84 = n53 && n46;
bool n85 = !n84 && !n83;
bool n86 = !n23 && n22;
bool n87 = n86 && n85;
bool n88 = !n87 && n82;
bool n89 = !n27 && n26;
bool n90 = !n53 && !n48;
bool n91 = n53 && n48;
bool n92 = !n91 && !n90;
bool n93 = n92 && n89;
bool n94 = !n93 && n88;
bool n95 = !n31 && n30;
bool n96 = !n53 && !n50;
bool n97 = n53 && n50;
bool n98 = !n97 && !n96;
bool n99 = n98 && n95;
bool n100 = !n99 && n94;
bool n101 = !n35 && n34;
bool n102 = !n52 && !n51;
bool n103 = !n102 && n101;
bool n104 = !n103 && n100;
bool n105 = !n104 && n58;
bool n106 = n104 && !n58;
bool n107 = !n106 && !n105;
bool n108 = !n5 && n2;
bool n109 = n108 && !n56;
bool n110 = n109 && !n107;
bool n111 = !n104 && !n63;
bool n112 = n104 && n63;
bool n113 = !n112 && !n111;
bool n114 = !n9 && n6;
bool n115 = n114 && n61;
bool n116 = n115 && n113;
bool n117 = !n116 && !n110;
bool n118 = !n104 && !n69;
bool n119 = n104 && n69;
bool n120 = !n119 && !n118;
bool n121 = !n13 && n10;
bool n122 = n121 && n67;
bool n123 = n122 && n120;
bool n124 = !n123 && n117;
bool n125 = !n104 && !n75;
bool n126 = n104 && n75;
bool n127 = !n126 && !n125;
bool n128 = !n17 && n14;
bool n129 = n128 && n73;
bool n130 = n129 && n127;
bool n131 = !n130 && n124;
bool n132 = !n104 && !n81;
bool n133 = n104 && n81;
bool n134 = !n133 && !n132;
bool n135 = !n21 && n18;
bool n136 = n135 && n79;
bool n137 = n136 && n134;
bool n138 = !n137 && n131;
bool n139 = !n104 && !n87;
bool n140 = n104 && n87;
bool n141 = !n140 && !n139;
bool n142 = !n25 && n22;
bool n143 = n142 && n85;
bool n144 = n143 && n141;
bool n145 = !n144 && n138;
bool n146 = !n104 && !n93;
bool n147 = n104 && n93;
bool n148 = !n147 && !n146;
bool n149 = !n29 && n26;
bool n150 = n149 && n92;
bool n151 = n150 && n148;
bool n152 = !n151 && n145;
bool n153 = !n104 && !n99;
bool n154 = n104 && n99;
bool n155 = !n154 && !n153;
bool n156 = !n33 && n30;
bool n157 = n156 && n98;
bool n158 = n157 && n155;
bool n159 = !n158 && n152;
bool n160 = !n103 && !n100;
bool n161 = !n36 && n34;
bool n162 = n161 && !n102;
bool n163 = n162 && !n160;
bool n164 = !n163 && n159;
po[0] = !n164;
}
\ No newline at end of file
#ifndef IO_GENERATOR_OUTER_O2_H
#define IO_GENERATOR_OUTER_O2_H
extern const int PI_WIDTH = 36;
extern const int PO_WIDTH = 1;
void io_generator_outer_o2(bool* pi, bool* po);
#endif
\ No newline at end of file
void io_generator_outer_vec_o2(uint64_t* pi, uint64_t* po) {
uint64_t n0 = uint64_t(0);
uint64_t n1 = pi[0];
uint64_t n2 = pi[1];
uint64_t n3 = pi[2];
uint64_t n4 = pi[3];
uint64_t n5 = pi[4];
uint64_t n6 = pi[5];
uint64_t n7 = pi[6];
uint64_t n8 = pi[7];
uint64_t n9 = pi[8];
uint64_t n10 = pi[9];
uint64_t n11 = pi[10];
uint64_t n12 = pi[11];
uint64_t n13 = pi[12];
uint64_t n14 = pi[13];
uint64_t n15 = pi[14];
uint64_t n16 = pi[15];
uint64_t n17 = pi[16];
uint64_t n18 = pi[17];
uint64_t n19 = pi[18];
uint64_t n20 = pi[19];
uint64_t n21 = pi[20];
uint64_t n22 = pi[21];
uint64_t n23 = pi[22];
uint64_t n24 = pi[23];
uint64_t n25 = pi[24];
uint64_t n26 = pi[25];
uint64_t n27 = pi[26];
uint64_t n28 = pi[27];
uint64_t n29 = pi[28];
uint64_t n30 = pi[29];
uint64_t n31 = pi[30];
uint64_t n32 = pi[31];
uint64_t n33 = pi[32];
uint64_t n34 = pi[33];
uint64_t n35 = pi[34];
uint64_t n36 = pi[35];
uint64_t n37 = n2 & ~n1;
uint64_t n38 = n6 & ~n4;
uint64_t n39 = ~n38 & ~n37;
uint64_t n40 = n10 & ~n8;
uint64_t n41 = ~n40 & n39;
uint64_t n42 = n14 & ~n12;
uint64_t n43 = ~n42 & n41;
uint64_t n44 = n18 & ~n16;
uint64_t n45 = ~n44 & n43;
uint64_t n46 = n22 & ~n20;
uint64_t n47 = ~n46 & n45;
uint64_t n48 = n26 & ~n24;
uint64_t n49 = ~n48 & n47;
uint64_t n50 = n30 & ~n28;
uint64_t n51 = ~n50 & n49;
uint64_t n52 = n34 & ~n32;
uint64_t n53 = ~n52 & n51;
uint64_t n54 = ~n53 & n37;
uint64_t n55 = n53 & ~n37;
uint64_t n56 = ~n55 & ~n54;
uint64_t n57 = ~n3 & n2;
uint64_t n58 = n57 & ~n56;
uint64_t n59 = ~n53 & ~n38;
uint64_t n60 = n53 & n38;
uint64_t n61 = ~n60 & ~n59;
uint64_t n62 = ~n7 & n6;
uint64_t n63 = n62 & n61;
uint64_t n64 = ~n63 & ~n58;
uint64_t n65 = ~n53 & ~n40;
uint64_t n66 = n53 & n40;
uint64_t n67 = ~n66 & ~n65;
uint64_t n68 = ~n11 & n10;
uint64_t n69 = n68 & n67;
uint64_t n70 = ~n69 & n64;
uint64_t n71 = ~n53 & ~n42;
uint64_t n72 = n53 & n42;
uint64_t n73 = ~n72 & ~n71;
uint64_t n74 = ~n15 & n14;
uint64_t n75 = n74 & n73;
uint64_t n76 = ~n75 & n70;
uint64_t n77 = ~n53 & ~n44;
uint64_t n78 = n53 & n44;
uint64_t n79 = ~n78 & ~n77;
uint64_t n80 = ~n19 & n18;
uint64_t n81 = n80 & n79;
uint64_t n82 = ~n81 & n76;
uint64_t n83 = ~n53 & ~n46;
uint64_t n84 = n53 & n46;
uint64_t n85 = ~n84 & ~n83;
uint64_t n86 = ~n23 & n22;
uint64_t n87 = n86 & n85;
uint64_t n88 = ~n87 & n82;
uint64_t n89 = ~n27 & n26;
uint64_t n90 = ~n53 & ~n48;
uint64_t n91 = n53 & n48;
uint64_t n92 = ~n91 & ~n90;
uint64_t n93 = n92 & n89;
uint64_t n94 = ~n93 & n88;
uint64_t n95 = ~n31 & n30;
uint64_t n96 = ~n53 & ~n50;
uint64_t n97 = n53 & n50;
uint64_t n98 = ~n97 & ~n96;
uint64_t n99 = n98 & n95;
uint64_t n100 = ~n99 & n94;
uint64_t n101 = ~n35 & n34;
uint64_t n102 = ~n52 & ~n51;
uint64_t n103 = ~n102 & n101;
uint64_t n104 = ~n103 & n100;
uint64_t n105 = ~n104 & n58;
uint64_t n106 = n104 & ~n58;
uint64_t n107 = ~n106 & ~n105;
uint64_t n108 = ~n5 & n2;
uint64_t n109 = n108 & ~n56;
uint64_t n110 = n109 & ~n107;
uint64_t n111 = ~n104 & ~n63;
uint64_t n112 = n104 & n63;
uint64_t n113 = ~n112 & ~n111;
uint64_t n114 = ~n9 & n6;
uint64_t n115 = n114 & n61;
uint64_t n116 = n115 & n113;
uint64_t n117 = ~n116 & ~n110;
uint64_t n118 = ~n104 & ~n69;
uint64_t n119 = n104 & n69;
uint64_t n120 = ~n119 & ~n118;
uint64_t n121 = ~n13 & n10;
uint64_t n122 = n121 & n67;
uint64_t n123 = n122 & n120;
uint64_t n124 = ~n123 & n117;
uint64_t n125 = ~n104 & ~n75;
uint64_t n126 = n104 & n75;
uint64_t n127 = ~n126 & ~n125;
uint64_t n128 = ~n17 & n14;
uint64_t n129 = n128 & n73;
uint64_t n130 = n129 & n127;
uint64_t n131 = ~n130 & n124;
uint64_t n132 = ~n104 & ~n81;
uint64_t n133 = n104 & n81;
uint64_t n134 = ~n133 & ~n132;
uint64_t n135 = ~n21 & n18;
uint64_t n136 = n135 & n79;
uint64_t n137 = n136 & n134;
uint64_t n138 = ~n137 & n131;
uint64_t n139 = ~n104 & ~n87;
uint64_t n140 = n104 & n87;
uint64_t n141 = ~n140 & ~n139;
uint64_t n142 = ~n25 & n22;
uint64_t n143 = n142 & n85;
uint64_t n144 = n143 & n141;
uint64_t n145 = ~n144 & n138;
uint64_t n146 = ~n104 & ~n93;
uint64_t n147 = n104 & n93;
uint64_t n148 = ~n147 & ~n146;
uint64_t n149 = ~n29 & n26;
uint64_t n150 = n149 & n92;
uint64_t n151 = n150 & n148;
uint64_t n152 = ~n151 & n145;
uint64_t n153 = ~n104 & ~n99;
uint64_t n154 = n104 & n99;
uint64_t n155 = ~n154 & ~n153;
uint64_t n156 = ~n33 & n30;
uint64_t n157 = n156 & n98;
uint64_t n158 = n157 & n155;
uint64_t n159 = ~n158 & n152;
uint64_t n160 = ~n103 & ~n100;
uint64_t n161 = ~n36 & n34;
uint64_t n162 = n161 & ~n102;
uint64_t n163 = n162 & ~n160;
uint64_t n164 = ~n163 & n159;
po[0] = ~n164;
}
void io_generator_outer_o3(bool* pi, bool* po) {
bool n0 = false;
bool n1 = pi[0];
bool n2 = pi[1];
bool n3 = pi[2];
bool n4 = pi[3];
bool n5 = pi[4];
bool n6 = pi[5];
bool n7 = pi[6];
bool n8 = pi[7];
bool n9 = pi[8];
bool n10 = pi[9];
bool n11 = pi[10];
bool n12 = pi[11];
bool n13 = pi[12];
bool n14 = pi[13];
bool n15 = pi[14];
bool n16 = pi[15];
bool n17 = pi[16];
bool n18 = pi[17];
bool n19 = pi[18];
bool n20 = pi[19];
bool n21 = pi[20];
bool n22 = pi[21];
bool n23 = pi[22];
bool n24 = pi[23];
bool n25 = pi[24];
bool n26 = pi[25];
bool n27 = pi[26];
bool n28 = pi[27];
bool n29 = pi[28];
bool n30 = pi[29];
bool n31 = pi[30];
bool n32 = pi[31];
bool n33 = pi[32];
bool n34 = pi[33];
bool n35 = pi[34];
bool n36 = pi[35];
bool n37 = n2 && !n1;
bool n38 = n6 && !n4;
bool n39 = !n38 && !n37;
bool n40 = n10 && !n8;
bool n41 = !n40 && n39;
bool n42 = n14 && !n12;
bool n43 = !n42 && n41;
bool n44 = n18 && !n16;
bool n45 = !n44 && n43;
bool n46 = n22 && !n20;
bool n47 = !n46 && n45;
bool n48 = n26 && !n24;
bool n49 = !n48 && n47;
bool n50 = n30 && !n28;
bool n51 = !n50 && n49;
bool n52 = n34 && !n32;
bool n53 = !n52 && n51;
bool n54 = !n53 && n1;
bool n55 = !n54 && n2;
bool n56 = !n53 && n37;
bool n57 = n53 && !n37;
bool n58 = !n57 && !n56;
bool n59 = !n3 && n2;
bool n60 = n59 && !n58;
bool n61 = !n53 && !n38;
bool n62 = n53 && n38;
bool n63 = !n62 && !n61;
bool n64 = !n7 && n6;
bool n65 = n64 && n63;
bool n66 = !n65 && !n60;
bool n67 = !n53 && !n40;
bool n68 = n53 && n40;
bool n69 = !n68 && !n67;
bool n70 = !n11 && n10;
bool n71 = n70 && n69;
bool n72 = !n71 && n66;
bool n73 = !n53 && !n42;
bool n74 = n53 && n42;
bool n75 = !n74 && !n73;
bool n76 = !n15 && n14;
bool n77 = n76 && n75;
bool n78 = !n77 && n72;
bool n79 = !n53 && !n44;
bool n80 = n53 && n44;
bool n81 = !n80 && !n79;
bool n82 = !n19 && n18;
bool n83 = n82 && n81;
bool n84 = !n83 && n78;
bool n85 = !n53 && !n46;
bool n86 = n53 && n46;
bool n87 = !n86 && !n85;
bool n88 = !n23 && n22;
bool n89 = n88 && n87;
bool n90 = !n89 && n84;
bool n91 = !n27 && n26;
bool n92 = !n53 && !n48;
bool n93 = n53 && n48;
bool n94 = !n93 && !n92;
bool n95 = n94 && n91;
bool n96 = !n95 && n90;
bool n97 = !n31 && n30;
bool n98 = !n53 && !n50;
bool n99 = n53 && n50;
bool n100 = !n99 && !n98;
bool n101 = n100 && n97;
bool n102 = !n101 && n96;
bool n103 = !n35 && n34;
bool n104 = !n52 && !n51;
bool n105 = !n104 && n103;
bool n106 = !n105 && n102;
bool n107 = !n106 && n3;
bool n108 = !n107 && n55;
bool n109 = !n106 && n60;
bool n110 = n106 && !n60;
bool n111 = !n110 && !n109;
bool n112 = !n5 && n2;
bool n113 = n112 && !n58;
bool n114 = n113 && !n111;
bool n115 = !n106 && !n65;
bool n116 = n106 && n65;
bool n117 = !n116 && !n115;
bool n118 = !n9 && n6;
bool n119 = n118 && n63;
bool n120 = n119 && n117;
bool n121 = !n120 && !n114;
bool n122 = !n106 && !n71;
bool n123 = n106 && n71;
bool n124 = !n123 && !n122;
bool n125 = !n13 && n10;
bool n126 = n125 && n69;
bool n127 = n126 && n124;
bool n128 = !n127 && n121;
bool n129 = !n106 && !n77;
bool n130 = n106 && n77;
bool n131 = !n130 && !n129;
bool n132 = !n17 && n14;
bool n133 = n132 && n75;
bool n134 = n133 && n131;
bool n135 = !n134 && n128;
bool n136 = !n106 && !n83;
bool n137 = n106 && n83;
bool n138 = !n137 && !n136;
bool n139 = !n21 && n18;
bool n140 = n139 && n81;
bool n141 = n140 && n138;
bool n142 = !n141 && n135;
bool n143 = !n106 && !n89;
bool n144 = n106 && n89;
bool n145 = !n144 && !n143;
bool n146 = !n25 && n22;
bool n147 = n146 && n87;
bool n148 = n147 && n145;
bool n149 = !n148 && n142;
bool n150 = !n106 && !n95;
bool n151 = n106 && n95;
bool n152 = !n151 && !n150;
bool n153 = !n29 && n26;
bool n154 = n153 && n94;
bool n155 = n154 && n152;
bool n156 = !n155 && n149;
bool n157 = !n106 && !n101;
bool n158 = n106 && n101;
bool n159 = !n158 && !n157;
bool n160 = !n33 && n30;
bool n161 = n160 && n100;
bool n162 = n161 && n159;
bool n163 = !n162 && n156;
bool n164 = !n105 && !n102;
bool n165 = !n36 && n34;
bool n166 = n165 && !n104;
bool n167 = n166 && !n164;
bool n168 = !n167 && n163;
bool n169 = !n168 && n5;
bool n170 = !n169 && n108;
bool n171 = !n53 && n4;
bool n172 = !n106 && n7;
bool n173 = !n172 && !n171;
bool n174 = !n168 && n9;
bool n175 = !n174 && n173;
bool n176 = n175 && n6;
bool n177 = !n53 && n8;
bool n178 = !n106 && n11;
bool n179 = !n178 && !n177;
bool n180 = !n168 && n13;
bool n181 = !n180 && n179;
bool n182 = n181 && n10;
bool n183 = !n182 && !n176;
bool n184 = !n53 && n12;
bool n185 = !n106 && n15;
bool n186 = !n185 && !n184;
bool n187 = !n168 && n17;
bool n188 = !n187 && n186;
bool n189 = n188 && n14;
bool n190 = !n189 && n183;
bool n191 = !n53 && n16;
bool n192 = !n106 && n19;
bool n193 = !n192 && !n191;
bool n194 = !n168 && n21;
bool n195 = !n194 && n193;
bool n196 = n195 && n18;
bool n197 = !n196 && n190;
bool n198 = !n53 && n20;
bool n199 = !n106 && n23;
bool n200 = !n199 && !n198;
bool n201 = !n168 && n25;
bool n202 = !n201 && n200;
bool n203 = n202 && n22;
bool n204 = !n203 && n197;
bool n205 = !n53 && n24;
bool n206 = !n106 && n27;
bool n207 = !n206 && !n205;
bool n208 = !n168 && n29;
bool n209 = !n208 && n207;
bool n210 = n209 && n26;
bool n211 = !n210 && n204;
bool n212 = !n53 && n28;
bool n213 = !n106 && n31;
bool n214 = !n213 && !n212;
bool n215 = !n168 && n33;
bool n216 = !n215 && n214;
bool n217 = n216 && n30;
bool n218 = !n217 && n211;
bool n219 = !n53 && n32;
bool n220 = !n106 && n35;
bool n221 = !n220 && !n219;
bool n222 = !n168 && n36;
bool n223 = !n222 && n221;
bool n224 = n223 && n34;
bool n225 = !n224 && n218;
bool n226 = !n225 && !n170;
po[0] = n226;
}
\ No newline at end of file
#ifndef IO_GENERATOR_OUTER_O3_H
#define IO_GENERATOR_OUTER_O3_H
extern const int PI_WIDTH = 36;
extern const int PO_WIDTH = 1;
void io_generator_outer_o3(bool* pi, bool* po);
#endif
\ No newline at end of file
void io_generator_outer_vec_o3(uint64_t* pi, uint64_t* po) {
uint64_t n0 = uint64_t(0);
uint64_t n1 = pi[0];
uint64_t n2 = pi[1];
uint64_t n3 = pi[2];
uint64_t n4 = pi[3];
uint64_t n5 = pi[4];
uint64_t n6 = pi[5];
uint64_t n7 = pi[6];
uint64_t n8 = pi[7];
uint64_t n9 = pi[8];
uint64_t n10 = pi[9];
uint64_t n11 = pi[10];
uint64_t n12 = pi[11];
uint64_t n13 = pi[12];
uint64_t n14 = pi[13];
uint64_t n15 = pi[14];
uint64_t n16 = pi[15];
uint64_t n17 = pi[16];
uint64_t n18 = pi[17];
uint64_t n19 = pi[18];
uint64_t n20 = pi[19];
uint64_t n21 = pi[20];
uint64_t n22 = pi[21];
uint64_t n23 = pi[22];
uint64_t n24 = pi[23];
uint64_t n25 = pi[24];
uint64_t n26 = pi[25];
uint64_t n27 = pi[26];
uint64_t n28 = pi[27];
uint64_t n29 = pi[28];
uint64_t n30 = pi[29];
uint64_t n31 = pi[30];
uint64_t n32 = pi[31];
uint64_t n33 = pi[32];
uint64_t n34 = pi[33];
uint64_t n35 = pi[34];
uint64_t n36 = pi[35];
uint64_t n37 = n2 & ~n1;
uint64_t n38 = n6 & ~n4;
uint64_t n39 = ~n38 & ~n37;
uint64_t n40 = n10 & ~n8;
uint64_t n41 = ~n40 & n39;
uint64_t n42 = n14 & ~n12;
uint64_t n43 = ~n42 & n41;
uint64_t n44 = n18 & ~n16;
uint64_t n45 = ~n44 & n43;
uint64_t n46 = n22 & ~n20;
uint64_t n47 = ~n46 & n45;
uint64_t n48 = n26 & ~n24;
uint64_t n49 = ~n48 & n47;
uint64_t n50 = n30 & ~n28;
uint64_t n51 = ~n50 & n49;
uint64_t n52 = n34 & ~n32;
uint64_t n53 = ~n52 & n51;
uint64_t n54 = ~n53 & n1;
uint64_t n55 = ~n54 & n2;
uint64_t n56 = ~n53 & n37;
uint64_t n57 = n53 & ~n37;
uint64_t n58 = ~n57 & ~n56;
uint64_t n59 = ~n3 & n2;
uint64_t n60 = n59 & ~n58;
uint64_t n61 = ~n53 & ~n38;
uint64_t n62 = n53 & n38;
uint64_t n63 = ~n62 & ~n61;
uint64_t n64 = ~n7 & n6;
uint64_t n65 = n64 & n63;
uint64_t n66 = ~n65 & ~n60;
uint64_t n67 = ~n53 & ~n40;
uint64_t n68 = n53 & n40;
uint64_t n69 = ~n68 & ~n67;
uint64_t n70 = ~n11 & n10;
uint64_t n71 = n70 & n69;
uint64_t n72 = ~n71 & n66;
uint64_t n73 = ~n53 & ~n42;
uint64_t n74 = n53 & n42;
uint64_t n75 = ~n74 & ~n73;
uint64_t n76 = ~n15 & n14;
uint64_t n77 = n76 & n75;
uint64_t n78 = ~n77 & n72;
uint64_t n79 = ~n53 & ~n44;
uint64_t n80 = n53 & n44;
uint64_t n81 = ~n80 & ~n79;
uint64_t n82 = ~n19 & n18;
uint64_t n83 = n82 & n81;
uint64_t n84 = ~n83 & n78;
uint64_t n85 = ~n53 & ~n46;
uint64_t n86 = n53 & n46;
uint64_t n87 = ~n86 & ~n85;
uint64_t n88 = ~n23 & n22;
uint64_t n89 = n88 & n87;
uint64_t n90 = ~n89 & n84;
uint64_t n91 = ~n27 & n26;
uint64_t n92 = ~n53 & ~n48;
uint64_t n93 = n53 & n48;
uint64_t n94 = ~n93 & ~n92;
uint64_t n95 = n94 & n91;
uint64_t n96 = ~n95 & n90;
uint64_t n97 = ~n31 & n30;
uint64_t n98 = ~n53 & ~n50;
uint64_t n99 = n53 & n50;
uint64_t n100 = ~n99 & ~n98;
uint64_t n101 = n100 & n97;
uint64_t n102 = ~n101 & n96;
uint64_t n103 = ~n35 & n34;
uint64_t n104 = ~n52 & ~n51;
uint64_t n105 = ~n104 & n103;
uint64_t n106 = ~n105 & n102;
uint64_t n107 = ~n106 & n3;
uint64_t n108 = ~n107 & n55;
uint64_t n109 = ~n106 & n60;
uint64_t n110 = n106 & ~n60;
uint64_t n111 = ~n110 & ~n109;
uint64_t n112 = ~n5 & n2;
uint64_t n113 = n112 & ~n58;
uint64_t n114 = n113 & ~n111;
uint64_t n115 = ~n106 & ~n65;
uint64_t n116 = n106 & n65;
uint64_t n117 = ~n116 & ~n115;
uint64_t n118 = ~n9 & n6;
uint64_t n119 = n118 & n63;
uint64_t n120 = n119 & n117;
uint64_t n121 = ~n120 & ~n114;
uint64_t n122 = ~n106 & ~n71;
uint64_t n123 = n106 & n71;
uint64_t n124 = ~n123 & ~n122;
uint64_t n125 = ~n13 & n10;
uint64_t n126 = n125 & n69;
uint64_t n127 = n126 & n124;
uint64_t n128 = ~n127 & n121;
uint64_t n129 = ~n106 & ~n77;
uint64_t n130 = n106 & n77;
uint64_t n131 = ~n130 & ~n129;
uint64_t n132 = ~n17 & n14;
uint64_t n133 = n132 & n75;
uint64_t n134 = n133 & n131;
uint64_t n135 = ~n134 & n128;
uint64_t n136 = ~n106 & ~n83;
uint64_t n137 = n106 & n83;
uint64_t n138 = ~n137 & ~n136;
uint64_t n139 = ~n21 & n18;
uint64_t n140 = n139 & n81;
uint64_t n141 = n140 & n138;
uint64_t n142 = ~n141 & n135;
uint64_t n143 = ~n106 & ~n89;
uint64_t n144 = n106 & n89;
uint64_t n145 = ~n144 & ~n143;
uint64_t n146 = ~n25 & n22;
uint64_t n147 = n146 & n87;
uint64_t n148 = n147 & n145;
uint64_t n149 = ~n148 & n142;
uint64_t n150 = ~n106 & ~n95;
uint64_t n151 = n106 & n95;
uint64_t n152 = ~n151 & ~n150;
uint64_t n153 = ~n29 & n26;
uint64_t n154 = n153 & n94;
uint64_t n155 = n154 & n152;
uint64_t n156 = ~n155 & n149;
uint64_t n157 = ~n106 & ~n101;
uint64_t n158 = n106 & n101;
uint64_t n159 = ~n158 & ~n157;
uint64_t n160 = ~n33 & n30;
uint64_t n161 = n160 & n100;
uint64_t n162 = n161 & n159;
uint64_t n163 = ~n162 & n156;
uint64_t n164 = ~n105 & ~n102;
uint64_t n165 = ~n36 & n34;
uint64_t n166 = n165 & ~n104;
uint64_t n167 = n166 & ~n164;
uint64_t n168 = ~n167 & n163;
uint64_t n169 = ~n168 & n5;
uint64_t n170 = ~n169 & n108;
uint64_t n171 = ~n53 & n4;
uint64_t n172 = ~n106 & n7;
uint64_t n173 = ~n172 & ~n171;
uint64_t n174 = ~n168 & n9;
uint64_t n175 = ~n174 & n173;
uint64_t n176 = n175 & n6;
uint64_t n177 = ~n53 & n8;
uint64_t n178 = ~n106 & n11;
uint64_t n179 = ~n178 & ~n177;
uint64_t n180 = ~n168 & n13;
uint64_t n181 = ~n180 & n179;
uint64_t n182 = n181 & n10;
uint64_t n183 = ~n182 & ~n176;
uint64_t n184 = ~n53 & n12;
uint64_t n185 = ~n106 & n15;
uint64_t n186 = ~n185 & ~n184;
uint64_t n187 = ~n168 & n17;
uint64_t n188 = ~n187 & n186;
uint64_t n189 = n188 & n14;
uint64_t n190 = ~n189 & n183;
uint64_t n191 = ~n53 & n16;
uint64_t n192 = ~n106 & n19;
uint64_t n193 = ~n192 & ~n191;
uint64_t n194 = ~n168 & n21;
uint64_t n195 = ~n194 & n193;
uint64_t n196 = n195 & n18;
uint64_t n197 = ~n196 & n190;
uint64_t n198 = ~n53 & n20;
uint64_t n199 = ~n106 & n23;
uint64_t n200 = ~n199 & ~n198;
uint64_t n201 = ~n168 & n25;
uint64_t n202 = ~n201 & n200;
uint64_t n203 = n202 & n22;
uint64_t n204 = ~n203 & n197;
uint64_t n205 = ~n53 & n24;
uint64_t n206 = ~n106 & n27;
uint64_t n207 = ~n206 & ~n205;
uint64_t n208 = ~n168 & n29;
uint64_t n209 = ~n208 & n207;
uint64_t n210 = n209 & n26;
uint64_t n211 = ~n210 & n204;
uint64_t n212 = ~n53 & n28;
uint64_t n213 = ~n106 & n31;
uint64_t n214 = ~n213 & ~n212;
uint64_t n215 = ~n168 & n33;
uint64_t n216 = ~n215 & n214;
uint64_t n217 = n216 & n30;
uint64_t n218 = ~n217 & n211;
uint64_t n219 = ~n53 & n32;
uint64_t n220 = ~n106 & n35;
uint64_t n221 = ~n220 & ~n219;
uint64_t n222 = ~n168 & n36;
uint64_t n223 = ~n222 & n221;
uint64_t n224 = n223 & n34;
uint64_t n225 = ~n224 & n218;
uint64_t n226 = ~n225 & ~n170;
po[0] = n226;
}
void io_generator_outer_o4(bool* pi, bool* po) {
bool n0 = false;
bool n1 = pi[0];
bool n2 = pi[1];
bool n3 = pi[2];
bool n4 = pi[3];
bool n5 = pi[4];
bool n6 = pi[5];
bool n7 = pi[6];
bool n8 = pi[7];
bool n9 = pi[8];
bool n10 = pi[9];
bool n11 = pi[10];
bool n12 = pi[11];
bool n13 = pi[12];
bool n14 = pi[13];
bool n15 = pi[14];
bool n16 = pi[15];
bool n17 = pi[16];
bool n18 = pi[17];
bool n19 = pi[18];
bool n20 = pi[19];
bool n21 = pi[20];
bool n22 = pi[21];
bool n23 = pi[22];
bool n24 = pi[23];
bool n25 = pi[24];
bool n26 = pi[25];
bool n27 = pi[26];
bool n28 = pi[27];
bool n29 = pi[28];
bool n30 = pi[29];
bool n31 = pi[30];
bool n32 = pi[31];
bool n33 = pi[32];
bool n34 = pi[33];
bool n35 = pi[34];
bool n36 = pi[35];
bool n37 = n2 && !n1;
bool n38 = n6 && !n4;
bool n39 = !n38 && !n37;
bool n40 = n10 && !n8;
bool n41 = !n40 && n39;
bool n42 = n14 && !n12;
bool n43 = !n42 && n41;
bool n44 = n18 && !n16;
bool n45 = !n44 && n43;
bool n46 = n22 && !n20;
bool n47 = !n46 && n45;
bool n48 = n26 && !n24;
bool n49 = !n48 && n47;
bool n50 = n30 && !n28;
bool n51 = !n50 && n49;
bool n52 = n34 && !n32;
bool n53 = !n52 && n51;
bool n54 = !n53 && n8;
bool n55 = !n53 && n37;
bool n56 = n53 && !n37;
bool n57 = !n56 && !n55;
bool n58 = !n3 && n2;
bool n59 = n58 && !n57;
bool n60 = !n53 && !n38;
bool n61 = n53 && n38;
bool n62 = !n61 && !n60;
bool n63 = !n7 && n6;
bool n64 = n63 && n62;
bool n65 = !n64 && !n59;
bool n66 = !n53 && !n40;
bool n67 = n53 && n40;
bool n68 = !n67 && !n66;
bool n69 = !n11 && n10;
bool n70 = n69 && n68;
bool n71 = !n70 && n65;
bool n72 = !n53 && !n42;
bool n73 = n53 && n42;
bool n74 = !n73 && !n72;
bool n75 = !n15 && n14;
bool n76 = n75 && n74;
bool n77 = !n76 && n71;
bool n78 = !n53 && !n44;
bool n79 = n53 && n44;
bool n80 = !n79 && !n78;
bool n81 = !n19 && n18;
bool n82 = n81 && n80;
bool n83 = !n82 && n77;
bool n84 = !n53 && !n46;
bool n85 = n53 && n46;
bool n86 = !n85 && !n84;
bool n87 = !n23 && n22;
bool n88 = n87 && n86;
bool n89 = !n88 && n83;
bool n90 = !n27 && n26;
bool n91 = !n53 && !n48;
bool n92 = n53 && n48;
bool n93 = !n92 && !n91;
bool n94 = n93 && n90;
bool n95 = !n94 && n89;
bool n96 = !n31 && n30;
bool n97 = !n53 && !n50;
bool n98 = n53 && n50;
bool n99 = !n98 && !n97;
bool n100 = n99 && n96;
bool n101 = !n100 && n95;
bool n102 = !n35 && n34;
bool n103 = !n52 && !n51;
bool n104 = !n103 && n102;
bool n105 = !n104 && n101;
bool n106 = !n105 && n11;
bool n107 = !n106 && !n54;
bool n108 = !n105 && n59;
bool n109 = n105 && !n59;
bool n110 = !n109 && !n108;
bool n111 = !n5 && n2;
bool n112 = n111 && !n57;
bool n113 = n112 && !n110;
bool n114 = !n105 && !n64;
bool n115 = n105 && n64;
bool n116 = !n115 && !n114;
bool n117 = !n9 && n6;
bool n118 = n117 && n62;
bool n119 = n118 && n116;
bool n120 = !n119 && !n113;
bool n121 = !n105 && !n70;
bool n122 = n105 && n70;
bool n123 = !n122 && !n121;
bool n124 = !n13 && n10;
bool n125 = n124 && n68;
bool n126 = n125 && n123;
bool n127 = !n126 && n120;
bool n128 = !n105 && !n76;
bool n129 = n105 && n76;
bool n130 = !n129 && !n128;
bool n131 = !n17 && n14;
bool n132 = n131 && n74;
bool n133 = n132 && n130;
bool n134 = !n133 && n127;
bool n135 = !n105 && !n82;
bool n136 = n105 && n82;
bool n137 = !n136 && !n135;
bool n138 = !n21 && n18;
bool n139 = n138 && n80;
bool n140 = n139 && n137;
bool n141 = !n140 && n134;
bool n142 = !n105 && !n88;
bool n143 = n105 && n88;
bool n144 = !n143 && !n142;
bool n145 = !n25 && n22;
bool n146 = n145 && n86;
bool n147 = n146 && n144;
bool n148 = !n147 && n141;
bool n149 = !n105 && !n94;
bool n150 = n105 && n94;
bool n151 = !n150 && !n149;
bool n152 = !n29 && n26;
bool n153 = n152 && n93;
bool n154 = n153 && n151;
bool n155 = !n154 && n148;
bool n156 = !n105 && !n100;
bool n157 = n105 && n100;
bool n158 = !n157 && !n156;
bool n159 = !n33 && n30;
bool n160 = n159 && n99;
bool n161 = n160 && n158;
bool n162 = !n161 && n155;
bool n163 = !n104 && !n101;
bool n164 = !n36 && n34;
bool n165 = n164 && !n103;
bool n166 = n165 && !n163;
bool n167 = !n166 && n162;
bool n168 = !n167 && n13;
bool n169 = !n168 && n107;
bool n170 = n169 && n10;
bool n171 = !n53 && n4;
bool n172 = !n105 && n7;
bool n173 = !n172 && !n171;
bool n174 = !n167 && n9;
bool n175 = !n174 && n173;
bool n176 = n175 && n6;
bool n177 = !n176 && !n170;
bool n178 = !n53 && n12;
bool n179 = !n105 && n15;
bool n180 = !n179 && !n178;
bool n181 = !n167 && n17;
bool n182 = !n181 && n180;
bool n183 = n182 && n14;
bool n184 = n183 && !n170;
bool n185 = !n184 && n177;
bool n186 = !n53 && n16;
bool n187 = !n105 && n19;
bool n188 = !n187 && !n186;
bool n189 = !n167 && n21;
bool n190 = !n189 && n188;
bool n191 = n190 && n18;
bool n192 = !n191 && n185;
po[0] = !n192;
}
\ No newline at end of file
#ifndef IO_GENERATOR_OUTER_O4_H
#define IO_GENERATOR_OUTER_O4_H
extern const int PI_WIDTH = 36;
extern const int PO_WIDTH = 1;
void io_generator_outer_o4(bool* pi, bool* po);
#endif
\ No newline at end of file
void io_generator_outer_vec_o4(uint64_t* pi, uint64_t* po) {
uint64_t n0 = uint64_t(0);
uint64_t n1 = pi[0];
uint64_t n2 = pi[1];
uint64_t n3 = pi[2];
uint64_t n4 = pi[3];
uint64_t n5 = pi[4];
uint64_t n6 = pi[5];
uint64_t n7 = pi[6];
uint64_t n8 = pi[7];
uint64_t n9 = pi[8];
uint64_t n10 = pi[9];
uint64_t n11 = pi[10];
uint64_t n12 = pi[11];
uint64_t n13 = pi[12];
uint64_t n14 = pi[13];
uint64_t n15 = pi[14];
uint64_t n16 = pi[15];
uint64_t n17 = pi[16];
uint64_t n18 = pi[17];
uint64_t n19 = pi[18];
uint64_t n20 = pi[19];
uint64_t n21 = pi[20];
uint64_t n22 = pi[21];
uint64_t n23 = pi[22];
uint64_t n24 = pi[23];
uint64_t n25 = pi[24];
uint64_t n26 = pi[25];
uint64_t n27 = pi[26];
uint64_t n28 = pi[27];
uint64_t n29 = pi[28];
uint64_t n30 = pi[29];
uint64_t n31 = pi[30];
uint64_t n32 = pi[31];
uint64_t n33 = pi[32];
uint64_t n34 = pi[33];
uint64_t n35 = pi[34];
uint64_t n36 = pi[35];
uint64_t n37 = n2 & ~n1;
uint64_t n38 = n6 & ~n4;
uint64_t n39 = ~n38 & ~n37;
uint64_t n40 = n10 & ~n8;
uint64_t n41 = ~n40 & n39;
uint64_t n42 = n14 & ~n12;
uint64_t n43 = ~n42 & n41;
uint64_t n44 = n18 & ~n16;
uint64_t n45 = ~n44 & n43;
uint64_t n46 = n22 & ~n20;
uint64_t n47 = ~n46 & n45;
uint64_t n48 = n26 & ~n24;
uint64_t n49 = ~n48 & n47;
uint64_t n50 = n30 & ~n28;
uint64_t n51 = ~n50 & n49;
uint64_t n52 = n34 & ~n32;
uint64_t n53 = ~n52 & n51;
uint64_t n54 = ~n53 & n8;
uint64_t n55 = ~n53 & n37;
uint64_t n56 = n53 & ~n37;
uint64_t n57 = ~n56 & ~n55;
uint64_t n58 = ~n3 & n2;
uint64_t n59 = n58 & ~n57;
uint64_t n60 = ~n53 & ~n38;
uint64_t n61 = n53 & n38;
uint64_t n62 = ~n61 & ~n60;
uint64_t n63 = ~n7 & n6;
uint64_t n64 = n63 & n62;
uint64_t n65 = ~n64 & ~n59;
uint64_t n66 = ~n53 & ~n40;
uint64_t n67 = n53 & n40;
uint64_t n68 = ~n67 & ~n66;
uint64_t n69 = ~n11 & n10;
uint64_t n70 = n69 & n68;
uint64_t n71 = ~n70 & n65;
uint64_t n72 = ~n53 & ~n42;
uint64_t n73 = n53 & n42;
uint64_t n74 = ~n73 & ~n72;
uint64_t n75 = ~n15 & n14;
uint64_t n76 = n75 & n74;
uint64_t n77 = ~n76 & n71;
uint64_t n78 = ~n53 & ~n44;
uint64_t n79 = n53 & n44;
uint64_t n80 = ~n79 & ~n78;
uint64_t n81 = ~n19 & n18;
uint64_t n82 = n81 & n80;
uint64_t n83 = ~n82 & n77;
uint64_t n84 = ~n53 & ~n46;
uint64_t n85 = n53 & n46;
uint64_t n86 = ~n85 & ~n84;
uint64_t n87 = ~n23 & n22;
uint64_t n88 = n87 & n86;
uint64_t n89 = ~n88 & n83;
uint64_t n90 = ~n27 & n26;
uint64_t n91 = ~n53 & ~n48;
uint64_t n92 = n53 & n48;
uint64_t n93 = ~n92 & ~n91;
uint64_t n94 = n93 & n90;
uint64_t n95 = ~n94 & n89;
uint64_t n96 = ~n31 & n30;
uint64_t n97 = ~n53 & ~n50;
uint64_t n98 = n53 & n50;
uint64_t n99 = ~n98 & ~n97;
uint64_t n100 = n99 & n96;
uint64_t n101 = ~n100 & n95;
uint64_t n102 = ~n35 & n34;
uint64_t n103 = ~n52 & ~n51;
uint64_t n104 = ~n103 & n102;
uint64_t n105 = ~n104 & n101;
uint64_t n106 = ~n105 & n11;
uint64_t n107 = ~n106 & ~n54;
uint64_t n108 = ~n105 & n59;
uint64_t n109 = n105 & ~n59;
uint64_t n110 = ~n109 & ~n108;
uint64_t n111 = ~n5 & n2;
uint64_t n112 = n111 & ~n57;
uint64_t n113 = n112 & ~n110;
uint64_t n114 = ~n105 & ~n64;
uint64_t n115 = n105 & n64;
uint64_t n116 = ~n115 & ~n114;
uint64_t n117 = ~n9 & n6;
uint64_t n118 = n117 & n62;
uint64_t n119 = n118 & n116;
uint64_t n120 = ~n119 & ~n113;
uint64_t n121 = ~n105 & ~n70;
uint64_t n122 = n105 & n70;
uint64_t n123 = ~n122 & ~n121;
uint64_t n124 = ~n13 & n10;
uint64_t n125 = n124 & n68;
uint64_t n126 = n125 & n123;
uint64_t n127 = ~n126 & n120;
uint64_t n128 = ~n105 & ~n76;
uint64_t n129 = n105 & n76;
uint64_t n130 = ~n129 & ~n128;
uint64_t n131 = ~n17 & n14;
uint64_t n132 = n131 & n74;
uint64_t n133 = n132 & n130;
uint64_t n134 = ~n133 & n127;
uint64_t n135 = ~n105 & ~n82;
uint64_t n136 = n105 & n82;
uint64_t n137 = ~n136 & ~n135;
uint64_t n138 = ~n21 & n18;
uint64_t n139 = n138 & n80;
uint64_t n140 = n139 & n137;
uint64_t n141 = ~n140 & n134;
uint64_t n142 = ~n105 & ~n88;
uint64_t n143 = n105 & n88;
uint64_t n144 = ~n143 & ~n142;
uint64_t n145 = ~n25 & n22;
uint64_t n146 = n145 & n86;
uint64_t n147 = n146 & n144;
uint64_t n148 = ~n147 & n141;
uint64_t n149 = ~n105 & ~n94;
uint64_t n150 = n105 & n94;
uint64_t n151 = ~n150 & ~n149;
uint64_t n152 = ~n29 & n26;
uint64_t n153 = n152 & n93;
uint64_t n154 = n153 & n151;
uint64_t n155 = ~n154 & n148;
uint64_t n156 = ~n105 & ~n100;
uint64_t n157 = n105 & n100;
uint64_t n158 = ~n157 & ~n156;
uint64_t n159 = ~n33 & n30;
uint64_t n160 = n159 & n99;
uint64_t n161 = n160 & n158;
uint64_t n162 = ~n161 & n155;
uint64_t n163 = ~n104 & ~n101;
uint64_t n164 = ~n36 & n34;
uint64_t n165 = n164 & ~n103;
uint64_t n166 = n165 & ~n163;
uint64_t n167 = ~n166 & n162;
uint64_t n168 = ~n167 & n13;
uint64_t n169 = ~n168 & n107;
uint64_t n170 = n169 & n10;
uint64_t n171 = ~n53 & n4;
uint64_t n172 = ~n105 & n7;
uint64_t n173 = ~n172 & ~n171;
uint64_t n174 = ~n167 & n9;
uint64_t n175 = ~n174 & n173;
uint64_t n176 = n175 & n6;
uint64_t n177 = ~n176 & ~n170;
uint64_t n178 = ~n53 & n12;
uint64_t n179 = ~n105 & n15;
uint64_t n180 = ~n179 & ~n178;
uint64_t n181 = ~n167 & n17;
uint64_t n182 = ~n181 & n180;
uint64_t n183 = n182 & n14;
uint64_t n184 = n183 & ~n170;
uint64_t n185 = ~n184 & n177;
uint64_t n186 = ~n53 & n16;
uint64_t n187 = ~n105 & n19;
uint64_t n188 = ~n187 & ~n186;
uint64_t n189 = ~n167 & n21;
uint64_t n190 = ~n189 & n188;
uint64_t n191 = n190 & n18;
uint64_t n192 = ~n191 & n185;
po[0] = ~n192;
}
void io_generator_outer_o5(bool* pi, bool* po) {
bool n0 = false;
bool n1 = pi[0];
bool n2 = pi[1];
bool n3 = pi[2];
bool n4 = pi[3];
bool n5 = pi[4];
bool n6 = pi[5];
bool n7 = pi[6];
bool n8 = pi[7];
bool n9 = pi[8];
bool n10 = pi[9];
bool n11 = pi[10];
bool n12 = pi[11];
bool n13 = pi[12];
bool n14 = pi[13];
bool n15 = pi[14];
bool n16 = pi[15];
bool n17 = pi[16];
bool n18 = pi[17];
bool n19 = pi[18];
bool n20 = pi[19];
bool n21 = pi[20];
bool n22 = pi[21];
bool n23 = pi[22];
bool n24 = pi[23];
bool n25 = pi[24];
bool n26 = pi[25];
bool n27 = pi[26];
bool n28 = pi[27];
bool n29 = pi[28];
bool n30 = pi[29];
bool n31 = pi[30];
bool n32 = pi[31];
bool n33 = pi[32];
bool n34 = pi[33];
bool n35 = pi[34];
bool n36 = pi[35];
bool n37 = n2 && !n1;
bool n38 = n6 && !n4;
bool n39 = !n38 && !n37;
bool n40 = n10 && !n8;
bool n41 = !n40 && n39;
bool n42 = n14 && !n12;
bool n43 = !n42 && n41;
bool n44 = n18 && !n16;
bool n45 = !n44 && n43;
bool n46 = n22 && !n20;
bool n47 = !n46 && n45;
bool n48 = n26 && !n24;
bool n49 = !n48 && n47;
bool n50 = n30 && !n28;
bool n51 = !n50 && n49;
bool n52 = n34 && !n32;
bool n53 = !n52 && n51;
bool n54 = !n53 && n8;
bool n55 = !n53 && n37;
bool n56 = n53 && !n37;
bool n57 = !n56 && !n55;
bool n58 = !n3 && n2;
bool n59 = n58 && !n57;
bool n60 = !n53 && !n38;
bool n61 = n53 && n38;
bool n62 = !n61 && !n60;
bool n63 = !n7 && n6;
bool n64 = n63 && n62;
bool n65 = !n64 && !n59;
bool n66 = !n53 && !n40;
bool n67 = n53 && n40;
bool n68 = !n67 && !n66;
bool n69 = !n11 && n10;
bool n70 = n69 && n68;
bool n71 = !n70 && n65;
bool n72 = !n53 && !n42;
bool n73 = n53 && n42;
bool n74 = !n73 && !n72;
bool n75 = !n15 && n14;
bool n76 = n75 && n74;
bool n77 = !n76 && n71;
bool n78 = !n53 && !n44;
bool n79 = n53 && n44;
bool n80 = !n79 && !n78;
bool n81 = !n19 && n18;
bool n82 = n81 && n80;
bool n83 = !n82 && n77;
bool n84 = !n53 && !n46;
bool n85 = n53 && n46;
bool n86 = !n85 && !n84;
bool n87 = !n23 && n22;
bool n88 = n87 && n86;
bool n89 = !n88 && n83;
bool n90 = !n27 && n26;
bool n91 = !n53 && !n48;
bool n92 = n53 && n48;
bool n93 = !n92 && !n91;
bool n94 = n93 && n90;
bool n95 = !n94 && n89;
bool n96 = !n31 && n30;
bool n97 = !n53 && !n50;
bool n98 = n53 && n50;
bool n99 = !n98 && !n97;
bool n100 = n99 && n96;
bool n101 = !n100 && n95;
bool n102 = !n35 && n34;
bool n103 = !n52 && !n51;
bool n104 = !n103 && n102;
bool n105 = !n104 && n101;
bool n106 = !n105 && n11;
bool n107 = !n106 && !n54;
bool n108 = !n105 && n59;
bool n109 = n105 && !n59;
bool n110 = !n109 && !n108;
bool n111 = !n5 && n2;
bool n112 = n111 && !n57;
bool n113 = n112 && !n110;
bool n114 = !n105 && !n64;
bool n115 = n105 && n64;
bool n116 = !n115 && !n114;
bool n117 = !n9 && n6;
bool n118 = n117 && n62;
bool n119 = n118 && n116;
bool n120 = !n119 && !n113;
bool n121 = !n105 && !n70;
bool n122 = n105 && n70;
bool n123 = !n122 && !n121;
bool n124 = !n13 && n10;
bool n125 = n124 && n68;
bool n126 = n125 && n123;
bool n127 = !n126 && n120;
bool n128 = !n105 && !n76;
bool n129 = n105 && n76;
bool n130 = !n129 && !n128;
bool n131 = !n17 && n14;
bool n132 = n131 && n74;
bool n133 = n132 && n130;
bool n134 = !n133 && n127;
bool n135 = !n105 && !n82;
bool n136 = n105 && n82;
bool n137 = !n136 && !n135;
bool n138 = !n21 && n18;
bool n139 = n138 && n80;
bool n140 = n139 && n137;
bool n141 = !n140 && n134;
bool n142 = !n105 && !n88;
bool n143 = n105 && n88;
bool n144 = !n143 && !n142;
bool n145 = !n25 && n22;
bool n146 = n145 && n86;
bool n147 = n146 && n144;
bool n148 = !n147 && n141;
bool n149 = !n105 && !n94;
bool n150 = n105 && n94;
bool n151 = !n150 && !n149;
bool n152 = !n29 && n26;
bool n153 = n152 && n93;
bool n154 = n153 && n151;
bool n155 = !n154 && n148;
bool n156 = !n105 && !n100;
bool n157 = n105 && n100;
bool n158 = !n157 && !n156;
bool n159 = !n33 && n30;
bool n160 = n159 && n99;
bool n161 = n160 && n158;
bool n162 = !n161 && n155;
bool n163 = !n104 && !n101;
bool n164 = !n36 && n34;
bool n165 = n164 && !n103;
bool n166 = n165 && !n163;
bool n167 = !n166 && n162;
bool n168 = !n167 && n13;
bool n169 = !n168 && n107;
bool n170 = n169 && n10;
bool n171 = !n53 && n4;
bool n172 = !n105 && n7;
bool n173 = !n172 && !n171;
bool n174 = !n167 && n9;
bool n175 = !n174 && n173;
bool n176 = n175 && n6;
bool n177 = !n176 && !n170;
bool n178 = !n53 && n12;
bool n179 = !n105 && n15;
bool n180 = !n179 && !n178;
bool n181 = !n167 && n17;
bool n182 = !n181 && n180;
bool n183 = n182 && n14;
bool n184 = !n183 && !n170;
bool n185 = !n53 && n20;
bool n186 = !n105 && n23;
bool n187 = !n186 && !n185;
bool n188 = !n167 && n25;
bool n189 = !n188 && n187;
bool n190 = n189 && n22;
bool n191 = n190 && n184;
bool n192 = !n53 && n16;
bool n193 = !n105 && n19;
bool n194 = !n193 && !n192;
bool n195 = !n167 && n21;
bool n196 = !n195 && n194;
bool n197 = n196 && n18;
bool n198 = !n197 && n191;
bool n199 = !n198 && n177;
bool n200 = !n197 && !n183;
bool n201 = !n53 && n24;
bool n202 = !n105 && n27;
bool n203 = !n202 && !n201;
bool n204 = !n167 && n29;
bool n205 = !n204 && n203;
bool n206 = n205 && n26;
bool n207 = n206 && n200;
bool n208 = !n207 && n199;
po[0] = !n208;
}
\ No newline at end of file
#ifndef IO_GENERATOR_OUTER_O5_H
#define IO_GENERATOR_OUTER_O5_H
extern const int PI_WIDTH = 36;
extern const int PO_WIDTH = 1;
void io_generator_outer_o5(bool* pi, bool* po);
#endif
\ No newline at end of file
void io_generator_outer_vec_o5(uint64_t* pi, uint64_t* po) {
uint64_t n0 = uint64_t(0);
uint64_t n1 = pi[0];
uint64_t n2 = pi[1];
uint64_t n3 = pi[2];
uint64_t n4 = pi[3];
uint64_t n5 = pi[4];
uint64_t n6 = pi[5];
uint64_t n7 = pi[6];
uint64_t n8 = pi[7];
uint64_t n9 = pi[8];
uint64_t n10 = pi[9];
uint64_t n11 = pi[10];
uint64_t n12 = pi[11];
uint64_t n13 = pi[12];
uint64_t n14 = pi[13];
uint64_t n15 = pi[14];
uint64_t n16 = pi[15];
uint64_t n17 = pi[16];
uint64_t n18 = pi[17];
uint64_t n19 = pi[18];
uint64_t n20 = pi[19];
uint64_t n21 = pi[20];
uint64_t n22 = pi[21];
uint64_t n23 = pi[22];
uint64_t n24 = pi[23];
uint64_t n25 = pi[24];
uint64_t n26 = pi[25];
uint64_t n27 = pi[26];
uint64_t n28 = pi[27];
uint64_t n29 = pi[28];
uint64_t n30 = pi[29];
uint64_t n31 = pi[30];
uint64_t n32 = pi[31];
uint64_t n33 = pi[32];
uint64_t n34 = pi[33];
uint64_t n35 = pi[34];
uint64_t n36 = pi[35];
uint64_t n37 = n2 & ~n1;
uint64_t n38 = n6 & ~n4;
uint64_t n39 = ~n38 & ~n37;
uint64_t n40 = n10 & ~n8;
uint64_t n41 = ~n40 & n39;
uint64_t n42 = n14 & ~n12;
uint64_t n43 = ~n42 & n41;
uint64_t n44 = n18 & ~n16;
uint64_t n45 = ~n44 & n43;
uint64_t n46 = n22 & ~n20;
uint64_t n47 = ~n46 & n45;
uint64_t n48 = n26 & ~n24;
uint64_t n49 = ~n48 & n47;
uint64_t n50 = n30 & ~n28;
uint64_t n51 = ~n50 & n49;
uint64_t n52 = n34 & ~n32;
uint64_t n53 = ~n52 & n51;
uint64_t n54 = ~n53 & n8;
uint64_t n55 = ~n53 & n37;
uint64_t n56 = n53 & ~n37;
uint64_t n57 = ~n56 & ~n55;
uint64_t n58 = ~n3 & n2;
uint64_t n59 = n58 & ~n57;
uint64_t n60 = ~n53 & ~n38;
uint64_t n61 = n53 & n38;
uint64_t n62 = ~n61 & ~n60;
uint64_t n63 = ~n7 & n6;
uint64_t n64 = n63 & n62;
uint64_t n65 = ~n64 & ~n59;
uint64_t n66 = ~n53 & ~n40;
uint64_t n67 = n53 & n40;
uint64_t n68 = ~n67 & ~n66;
uint64_t n69 = ~n11 & n10;
uint64_t n70 = n69 & n68;
uint64_t n71 = ~n70 & n65;
uint64_t n72 = ~n53 & ~n42;
uint64_t n73 = n53 & n42;
uint64_t n74 = ~n73 & ~n72;
uint64_t n75 = ~n15 & n14;
uint64_t n76 = n75 & n74;
uint64_t n77 = ~n76 & n71;
uint64_t n78 = ~n53 & ~n44;
uint64_t n79 = n53 & n44;
uint64_t n80 = ~n79 & ~n78;
uint64_t n81 = ~n19 & n18;
uint64_t n82 = n81 & n80;
uint64_t n83 = ~n82 & n77;
uint64_t n84 = ~n53 & ~n46;
uint64_t n85 = n53 & n46;
uint64_t n86 = ~n85 & ~n84;
uint64_t n87 = ~n23 & n22;
uint64_t n88 = n87 & n86;
uint64_t n89 = ~n88 & n83;
uint64_t n90 = ~n27 & n26;
uint64_t n91 = ~n53 & ~n48;
uint64_t n92 = n53 & n48;
uint64_t n93 = ~n92 & ~n91;
uint64_t n94 = n93 & n90;
uint64_t n95 = ~n94 & n89;
uint64_t n96 = ~n31 & n30;
uint64_t n97 = ~n53 & ~n50;
uint64_t n98 = n53 & n50;
uint64_t n99 = ~n98 & ~n97;
uint64_t n100 = n99 & n96;
uint64_t n101 = ~n100 & n95;
uint64_t n102 = ~n35 & n34;
uint64_t n103 = ~n52 & ~n51;
uint64_t n104 = ~n103 & n102;
uint64_t n105 = ~n104 & n101;
uint64_t n106 = ~n105 & n11;
uint64_t n107 = ~n106 & ~n54;
uint64_t n108 = ~n105 & n59;
uint64_t n109 = n105 & ~n59;
uint64_t n110 = ~n109 & ~n108;
uint64_t n111 = ~n5 & n2;
uint64_t n112 = n111 & ~n57;
uint64_t n113 = n112 & ~n110;
uint64_t n114 = ~n105 & ~n64;
uint64_t n115 = n105 & n64;
uint64_t n116 = ~n115 & ~n114;
uint64_t n117 = ~n9 & n6;
uint64_t n118 = n117 & n62;
uint64_t n119 = n118 & n116;
uint64_t n120 = ~n119 & ~n113;
uint64_t n121 = ~n105 & ~n70;
uint64_t n122 = n105 & n70;
uint64_t n123 = ~n122 & ~n121;
uint64_t n124 = ~n13 & n10;
uint64_t n125 = n124 & n68;
uint64_t n126 = n125 & n123;
uint64_t n127 = ~n126 & n120;
uint64_t n128 = ~n105 & ~n76;
uint64_t n129 = n105 & n76;
uint64_t n130 = ~n129 & ~n128;
uint64_t n131 = ~n17 & n14;
uint64_t n132 = n131 & n74;
uint64_t n133 = n132 & n130;
uint64_t n134 = ~n133 & n127;
uint64_t n135 = ~n105 & ~n82;
uint64_t n136 = n105 & n82;
uint64_t n137 = ~n136 & ~n135;
uint64_t n138 = ~n21 & n18;
uint64_t n139 = n138 & n80;
uint64_t n140 = n139 & n137;
uint64_t n141 = ~n140 & n134;
uint64_t n142 = ~n105 & ~n88;
uint64_t n143 = n105 & n88;
uint64_t n144 = ~n143 & ~n142;
uint64_t n145 = ~n25 & n22;
uint64_t n146 = n145 & n86;
uint64_t n147 = n146 & n144;
uint64_t n148 = ~n147 & n141;
uint64_t n149 = ~n105 & ~n94;
uint64_t n150 = n105 & n94;
uint64_t n151 = ~n150 & ~n149;
uint64_t n152 = ~n29 & n26;
uint64_t n153 = n152 & n93;
uint64_t n154 = n153 & n151;
uint64_t n155 = ~n154 & n148;
uint64_t n156 = ~n105 & ~n100;
uint64_t n157 = n105 & n100;
uint64_t n158 = ~n157 & ~n156;
uint64_t n159 = ~n33 & n30;
uint64_t n160 = n159 & n99;
uint64_t n161 = n160 & n158;
uint64_t n162 = ~n161 & n155;
uint64_t n163 = ~n104 & ~n101;
uint64_t n164 = ~n36 & n34;
uint64_t n165 = n164 & ~n103;
uint64_t n166 = n165 & ~n163;
uint64_t n167 = ~n166 & n162;
uint64_t n168 = ~n167 & n13;
uint64_t n169 = ~n168 & n107;
uint64_t n170 = n169 & n10;
uint64_t n171 = ~n53 & n4;
uint64_t n172 = ~n105 & n7;
uint64_t n173 = ~n172 & ~n171;
uint64_t n174 = ~n167 & n9;
uint64_t n175 = ~n174 & n173;
uint64_t n176 = n175 & n6;
uint64_t n177 = ~n176 & ~n170;
uint64_t n178 = ~n53 & n12;
uint64_t n179 = ~n105 & n15;
uint64_t n180 = ~n179 & ~n178;
uint64_t n181 = ~n167 & n17;
uint64_t n182 = ~n181 & n180;
uint64_t n183 = n182 & n14;
uint64_t n184 = ~n183 & ~n170;
uint64_t n185 = ~n53 & n20;
uint64_t n186 = ~n105 & n23;
uint64_t n187 = ~n186 & ~n185;
uint64_t n188 = ~n167 & n25;
uint64_t n189 = ~n188 & n187;
uint64_t n190 = n189 & n22;
uint64_t n191 = n190 & n184;
uint64_t n192 = ~n53 & n16;
uint64_t n193 = ~n105 & n19;
uint64_t n194 = ~n193 & ~n192;
uint64_t n195 = ~n167 & n21;
uint64_t n196 = ~n195 & n194;
uint64_t n197 = n196 & n18;
uint64_t n198 = ~n197 & n191;
uint64_t n199 = ~n198 & n177;
uint64_t n200 = ~n197 & ~n183;
uint64_t n201 = ~n53 & n24;
uint64_t n202 = ~n105 & n27;
uint64_t n203 = ~n202 & ~n201;
uint64_t n204 = ~n167 & n29;
uint64_t n205 = ~n204 & n203;
uint64_t n206 = n205 & n26;
uint64_t n207 = n206 & n200;
uint64_t n208 = ~n207 & n199;
po[0] = ~n208;
}
void io_generator_outer_o6(bool* pi, bool* po) {
bool n0 = false;
bool n1 = pi[0];
bool n2 = pi[1];
bool n3 = pi[2];
bool n4 = pi[3];
bool n5 = pi[4];
bool n6 = pi[5];
bool n7 = pi[6];
bool n8 = pi[7];
bool n9 = pi[8];
bool n10 = pi[9];
bool n11 = pi[10];
bool n12 = pi[11];
bool n13 = pi[12];
bool n14 = pi[13];
bool n15 = pi[14];
bool n16 = pi[15];
bool n17 = pi[16];
bool n18 = pi[17];
bool n19 = pi[18];
bool n20 = pi[19];
bool n21 = pi[20];
bool n22 = pi[21];
bool n23 = pi[22];
bool n24 = pi[23];
bool n25 = pi[24];
bool n26 = pi[25];
bool n27 = pi[26];
bool n28 = pi[27];
bool n29 = pi[28];
bool n30 = pi[29];
bool n31 = pi[30];
bool n32 = pi[31];
bool n33 = pi[32];
bool n34 = pi[33];
bool n35 = pi[34];
bool n36 = pi[35];
bool n37 = n2 && !n1;
bool n38 = n6 && !n4;
bool n39 = !n38 && !n37;
bool n40 = n10 && !n8;
bool n41 = !n40 && n39;
bool n42 = n14 && !n12;
bool n43 = !n42 && n41;
bool n44 = n18 && !n16;
bool n45 = !n44 && n43;
bool n46 = n22 && !n20;
bool n47 = !n46 && n45;
bool n48 = n26 && !n24;
bool n49 = !n48 && n47;
bool n50 = n30 && !n28;
bool n51 = !n50 && n49;
bool n52 = n34 && !n32;
bool n53 = !n52 && n51;
bool n54 = !n53 && n4;
bool n55 = !n53 && n37;
bool n56 = n53 && !n37;
bool n57 = !n56 && !n55;
bool n58 = !n3 && n2;
bool n59 = n58 && !n57;
bool n60 = !n53 && !n38;
bool n61 = n53 && n38;
bool n62 = !n61 && !n60;
bool n63 = !n7 && n6;
bool n64 = n63 && n62;
bool n65 = !n64 && !n59;
bool n66 = !n53 && !n40;
bool n67 = n53 && n40;
bool n68 = !n67 && !n66;
bool n69 = !n11 && n10;
bool n70 = n69 && n68;
bool n71 = !n70 && n65;
bool n72 = !n53 && !n42;
bool n73 = n53 && n42;
bool n74 = !n73 && !n72;
bool n75 = !n15 && n14;
bool n76 = n75 && n74;
bool n77 = !n76 && n71;
bool n78 = !n53 && !n44;
bool n79 = n53 && n44;
bool n80 = !n79 && !n78;
bool n81 = !n19 && n18;
bool n82 = n81 && n80;
bool n83 = !n82 && n77;
bool n84 = !n53 && !n46;
bool n85 = n53 && n46;
bool n86 = !n85 && !n84;
bool n87 = !n23 && n22;
bool n88 = n87 && n86;
bool n89 = !n88 && n83;
bool n90 = !n27 && n26;
bool n91 = !n53 && !n48;
bool n92 = n53 && n48;
bool n93 = !n92 && !n91;
bool n94 = n93 && n90;
bool n95 = !n94 && n89;
bool n96 = !n31 && n30;
bool n97 = !n53 && !n50;
bool n98 = n53 && n50;
bool n99 = !n98 && !n97;
bool n100 = n99 && n96;
bool n101 = !n100 && n95;
bool n102 = !n35 && n34;
bool n103 = !n52 && !n51;
bool n104 = !n103 && n102;
bool n105 = !n104 && n101;
bool n106 = !n105 && n7;
bool n107 = !n106 && !n54;
bool n108 = !n105 && n59;
bool n109 = n105 && !n59;
bool n110 = !n109 && !n108;
bool n111 = !n5 && n2;
bool n112 = n111 && !n57;
bool n113 = n112 && !n110;
bool n114 = !n105 && !n64;
bool n115 = n105 && n64;
bool n116 = !n115 && !n114;
bool n117 = !n9 && n6;
bool n118 = n117 && n62;
bool n119 = n118 && n116;
bool n120 = !n119 && !n113;
bool n121 = !n105 && !n70;
bool n122 = n105 && n70;
bool n123 = !n122 && !n121;
bool n124 = !n13 && n10;
bool n125 = n124 && n68;
bool n126 = n125 && n123;
bool n127 = !n126 && n120;
bool n128 = !n105 && !n76;
bool n129 = n105 && n76;
bool n130 = !n129 && !n128;
bool n131 = !n17 && n14;
bool n132 = n131 && n74;
bool n133 = n132 && n130;
bool n134 = !n133 && n127;
bool n135 = !n105 && !n82;
bool n136 = n105 && n82;
bool n137 = !n136 && !n135;
bool n138 = !n21 && n18;
bool n139 = n138 && n80;
bool n140 = n139 && n137;
bool n141 = !n140 && n134;
bool n142 = !n105 && !n88;
bool n143 = n105 && n88;
bool n144 = !n143 && !n142;
bool n145 = !n25 && n22;
bool n146 = n145 && n86;
bool n147 = n146 && n144;
bool n148 = !n147 && n141;
bool n149 = !n105 && !n94;
bool n150 = n105 && n94;
bool n151 = !n150 && !n149;
bool n152 = !n29 && n26;
bool n153 = n152 && n93;
bool n154 = n153 && n151;
bool n155 = !n154 && n148;
bool n156 = !n105 && !n100;
bool n157 = n105 && n100;
bool n158 = !n157 && !n156;
bool n159 = !n33 && n30;
bool n160 = n159 && n99;
bool n161 = n160 && n158;
bool n162 = !n161 && n155;
bool n163 = !n104 && !n101;
bool n164 = !n36 && n34;
bool n165 = n164 && !n103;
bool n166 = n165 && !n163;
bool n167 = !n166 && n162;
bool n168 = !n167 && n9;
bool n169 = !n168 && n107;
bool n170 = n169 && n6;
bool n171 = !n53 && n12;
bool n172 = !n105 && n15;
bool n173 = !n172 && !n171;
bool n174 = !n167 && n17;
bool n175 = !n174 && n173;
bool n176 = n175 && n14;
bool n177 = !n53 && n8;
bool n178 = !n105 && n11;
bool n179 = !n178 && !n177;
bool n180 = !n167 && n13;
bool n181 = !n180 && n179;
bool n182 = n181 && n10;
bool n183 = !n182 && n176;
bool n184 = !n183 && !n170;
bool n185 = !n182 && !n176;
bool n186 = !n53 && n20;
bool n187 = !n105 && n23;
bool n188 = !n187 && !n186;
bool n189 = !n167 && n25;
bool n190 = !n189 && n188;
bool n191 = n190 && n22;
bool n192 = n191 && n185;
bool n193 = !n53 && n16;
bool n194 = !n105 && n19;
bool n195 = !n194 && !n193;
bool n196 = !n167 && n21;
bool n197 = !n196 && n195;
bool n198 = n197 && n18;
bool n199 = !n198 && n192;
bool n200 = !n199 && n184;
bool n201 = !n53 && n24;
bool n202 = !n105 && n27;
bool n203 = !n202 && !n201;
bool n204 = !n167 && n29;
bool n205 = !n204 && n203;
bool n206 = n205 && n26;
bool n207 = !n206 && n185;
bool n208 = !n53 && n28;
bool n209 = !n105 && n31;
bool n210 = !n209 && !n208;
bool n211 = !n167 && n33;
bool n212 = !n211 && n210;
bool n213 = n212 && n30;
bool n214 = n213 && n207;
bool n215 = !n214 && n200;
po[0] = !n215;
}
\ No newline at end of file
#ifndef IO_GENERATOR_OUTER_O6_H
#define IO_GENERATOR_OUTER_O6_H
extern const int PI_WIDTH = 36;
extern const int PO_WIDTH = 1;
void io_generator_outer_o6(bool* pi, bool* po);
#endif
\ No newline at end of file
void io_generator_outer_vec_o6(uint64_t* pi, uint64_t* po) {
uint64_t n0 = uint64_t(0);
uint64_t n1 = pi[0];
uint64_t n2 = pi[1];
uint64_t n3 = pi[2];
uint64_t n4 = pi[3];
uint64_t n5 = pi[4];
uint64_t n6 = pi[5];
uint64_t n7 = pi[6];
uint64_t n8 = pi[7];
uint64_t n9 = pi[8];
uint64_t n10 = pi[9];
uint64_t n11 = pi[10];
uint64_t n12 = pi[11];
uint64_t n13 = pi[12];
uint64_t n14 = pi[13];
uint64_t n15 = pi[14];
uint64_t n16 = pi[15];
uint64_t n17 = pi[16];
uint64_t n18 = pi[17];
uint64_t n19 = pi[18];
uint64_t n20 = pi[19];
uint64_t n21 = pi[20];
uint64_t n22 = pi[21];
uint64_t n23 = pi[22];
uint64_t n24 = pi[23];
uint64_t n25 = pi[24];
uint64_t n26 = pi[25];
uint64_t n27 = pi[26];
uint64_t n28 = pi[27];
uint64_t n29 = pi[28];
uint64_t n30 = pi[29];
uint64_t n31 = pi[30];
uint64_t n32 = pi[31];
uint64_t n33 = pi[32];
uint64_t n34 = pi[33];
uint64_t n35 = pi[34];
uint64_t n36 = pi[35];
uint64_t n37 = n2 & ~n1;
uint64_t n38 = n6 & ~n4;
uint64_t n39 = ~n38 & ~n37;
uint64_t n40 = n10 & ~n8;
uint64_t n41 = ~n40 & n39;
uint64_t n42 = n14 & ~n12;
uint64_t n43 = ~n42 & n41;
uint64_t n44 = n18 & ~n16;
uint64_t n45 = ~n44 & n43;
uint64_t n46 = n22 & ~n20;
uint64_t n47 = ~n46 & n45;
uint64_t n48 = n26 & ~n24;
uint64_t n49 = ~n48 & n47;
uint64_t n50 = n30 & ~n28;
uint64_t n51 = ~n50 & n49;
uint64_t n52 = n34 & ~n32;
uint64_t n53 = ~n52 & n51;
uint64_t n54 = ~n53 & n4;
uint64_t n55 = ~n53 & n37;
uint64_t n56 = n53 & ~n37;
uint64_t n57 = ~n56 & ~n55;
uint64_t n58 = ~n3 & n2;
uint64_t n59 = n58 & ~n57;
uint64_t n60 = ~n53 & ~n38;
uint64_t n61 = n53 & n38;
uint64_t n62 = ~n61 & ~n60;
uint64_t n63 = ~n7 & n6;
uint64_t n64 = n63 & n62;
uint64_t n65 = ~n64 & ~n59;
uint64_t n66 = ~n53 & ~n40;
uint64_t n67 = n53 & n40;
uint64_t n68 = ~n67 & ~n66;
uint64_t n69 = ~n11 & n10;
uint64_t n70 = n69 & n68;
uint64_t n71 = ~n70 & n65;
uint64_t n72 = ~n53 & ~n42;
uint64_t n73 = n53 & n42;
uint64_t n74 = ~n73 & ~n72;
uint64_t n75 = ~n15 & n14;
uint64_t n76 = n75 & n74;
uint64_t n77 = ~n76 & n71;
uint64_t n78 = ~n53 & ~n44;
uint64_t n79 = n53 & n44;
uint64_t n80 = ~n79 & ~n78;
uint64_t n81 = ~n19 & n18;
uint64_t n82 = n81 & n80;
uint64_t n83 = ~n82 & n77;
uint64_t n84 = ~n53 & ~n46;
uint64_t n85 = n53 & n46;
uint64_t n86 = ~n85 & ~n84;
uint64_t n87 = ~n23 & n22;
uint64_t n88 = n87 & n86;
uint64_t n89 = ~n88 & n83;
uint64_t n90 = ~n27 & n26;
uint64_t n91 = ~n53 & ~n48;
uint64_t n92 = n53 & n48;
uint64_t n93 = ~n92 & ~n91;
uint64_t n94 = n93 & n90;
uint64_t n95 = ~n94 & n89;
uint64_t n96 = ~n31 & n30;
uint64_t n97 = ~n53 & ~n50;
uint64_t n98 = n53 & n50;
uint64_t n99 = ~n98 & ~n97;
uint64_t n100 = n99 & n96;
uint64_t n101 = ~n100 & n95;
uint64_t n102 = ~n35 & n34;
uint64_t n103 = ~n52 & ~n51;
uint64_t n104 = ~n103 & n102;
uint64_t n105 = ~n104 & n101;
uint64_t n106 = ~n105 & n7;
uint64_t n107 = ~n106 & ~n54;
uint64_t n108 = ~n105 & n59;
uint64_t n109 = n105 & ~n59;
uint64_t n110 = ~n109 & ~n108;
uint64_t n111 = ~n5 & n2;
uint64_t n112 = n111 & ~n57;
uint64_t n113 = n112 & ~n110;
uint64_t n114 = ~n105 & ~n64;
uint64_t n115 = n105 & n64;
uint64_t n116 = ~n115 & ~n114;
uint64_t n117 = ~n9 & n6;
uint64_t n118 = n117 & n62;
uint64_t n119 = n118 & n116;
uint64_t n120 = ~n119 & ~n113;
uint64_t n121 = ~n105 & ~n70;
uint64_t n122 = n105 & n70;
uint64_t n123 = ~n122 & ~n121;
uint64_t n124 = ~n13 & n10;
uint64_t n125 = n124 & n68;
uint64_t n126 = n125 & n123;
uint64_t n127 = ~n126 & n120;
uint64_t n128 = ~n105 & ~n76;
uint64_t n129 = n105 & n76;
uint64_t n130 = ~n129 & ~n128;
uint64_t n131 = ~n17 & n14;
uint64_t n132 = n131 & n74;
uint64_t n133 = n132 & n130;
uint64_t n134 = ~n133 & n127;
uint64_t n135 = ~n105 & ~n82;
uint64_t n136 = n105 & n82;
uint64_t n137 = ~n136 & ~n135;
uint64_t n138 = ~n21 & n18;
uint64_t n139 = n138 & n80;
uint64_t n140 = n139 & n137;
uint64_t n141 = ~n140 & n134;
uint64_t n142 = ~n105 & ~n88;
uint64_t n143 = n105 & n88;
uint64_t n144 = ~n143 & ~n142;
uint64_t n145 = ~n25 & n22;
uint64_t n146 = n145 & n86;
uint64_t n147 = n146 & n144;
uint64_t n148 = ~n147 & n141;
uint64_t n149 = ~n105 & ~n94;
uint64_t n150 = n105 & n94;
uint64_t n151 = ~n150 & ~n149;
uint64_t n152 = ~n29 & n26;
uint64_t n153 = n152 & n93;
uint64_t n154 = n153 & n151;
uint64_t n155 = ~n154 & n148;
uint64_t n156 = ~n105 & ~n100;
uint64_t n157 = n105 & n100;
uint64_t n158 = ~n157 & ~n156;
uint64_t n159 = ~n33 & n30;
uint64_t n160 = n159 & n99;
uint64_t n161 = n160 & n158;
uint64_t n162 = ~n161 & n155;
uint64_t n163 = ~n104 & ~n101;
uint64_t n164 = ~n36 & n34;
uint64_t n165 = n164 & ~n103;
uint64_t n166 = n165 & ~n163;
uint64_t n167 = ~n166 & n162;
uint64_t n168 = ~n167 & n9;
uint64_t n169 = ~n168 & n107;
uint64_t n170 = n169 & n6;
uint64_t n171 = ~n53 & n12;
uint64_t n172 = ~n105 & n15;
uint64_t n173 = ~n172 & ~n171;
uint64_t n174 = ~n167 & n17;
uint64_t n175 = ~n174 & n173;
uint64_t n176 = n175 & n14;
uint64_t n177 = ~n53 & n8;
uint64_t n178 = ~n105 & n11;
uint64_t n179 = ~n178 & ~n177;
uint64_t n180 = ~n167 & n13;
uint64_t n181 = ~n180 & n179;
uint64_t n182 = n181 & n10;
uint64_t n183 = ~n182 & n176;
uint64_t n184 = ~n183 & ~n170;
uint64_t n185 = ~n182 & ~n176;
uint64_t n186 = ~n53 & n20;
uint64_t n187 = ~n105 & n23;
uint64_t n188 = ~n187 & ~n186;
uint64_t n189 = ~n167 & n25;
uint64_t n190 = ~n189 & n188;
uint64_t n191 = n190 & n22;
uint64_t n192 = n191 & n185;
uint64_t n193 = ~n53 & n16;
uint64_t n194 = ~n105 & n19;
uint64_t n195 = ~n194 & ~n193;
uint64_t n196 = ~n167 & n21;
uint64_t n197 = ~n196 & n195;
uint64_t n198 = n197 & n18;
uint64_t n199 = ~n198 & n192;
uint64_t n200 = ~n199 & n184;
uint64_t n201 = ~n53 & n24;
uint64_t n202 = ~n105 & n27;
uint64_t n203 = ~n202 & ~n201;
uint64_t n204 = ~n167 & n29;
uint64_t n205 = ~n204 & n203;
uint64_t n206 = n205 & n26;
uint64_t n207 = ~n206 & n185;
uint64_t n208 = ~n53 & n28;
uint64_t n209 = ~n105 & n31;
uint64_t n210 = ~n209 & ~n208;
uint64_t n211 = ~n167 & n33;
uint64_t n212 = ~n211 & n210;
uint64_t n213 = n212 & n30;
uint64_t n214 = n213 & n207;
uint64_t n215 = ~n214 & n200;
po[0] = ~n215;
}
// Ninputs 36
// Noutputs 7
module c432 (N1,N4,N8,N11,N14,N17,N21,N24,N27,N30,
N34,N37,N40,N43,N47,N50,N53,N56,N60,N63,
N66,N69,N73,N76,N79,N82,N86,N89,N92,N95,
N99,N102,N105,N108,N112,N115,N223,N329,N370,N421,
N430,N431,N432);
input N1,N4,N8,N11,N14,N17,N21,N24,N27,N30,
N34,N37,N40,N43,N47,N50,N53,N56,N60,N63,
N66,N69,N73,N76,N79,N82,N86,N89,N92,N95,
N99,N102,N105,N108,N112,N115;
output N223,N329,N370,N421,N430,N431,N432;
wire N118,N119,N122,N123,N126,N127,N130,N131,N134,N135,
N138,N139,N142,N143,N146,N147,N150,N151,N154,N157,
N158,N159,N162,N165,N168,N171,N174,N177,N180,N183,
N184,N185,N186,N187,N188,N189,N190,N191,N192,N193,
N194,N195,N196,N197,N198,N199,N203,N213,N224,N227,
N230,N233,N236,N239,N242,N243,N246,N247,N250,N251,
N254,N255,N256,N257,N258,N259,N260,N263,N264,N267,
N270,N273,N276,N279,N282,N285,N288,N289,N290,N291,
N292,N293,N294,N295,N296,N300,N301,N302,N303,N304,
N305,N306,N307,N308,N309,N319,N330,N331,N332,N333,
N334,N335,N336,N337,N338,N339,N340,N341,N342,N343,
N344,N345,N346,N347,N348,N349,N350,N351,N352,N353,
N354,N355,N356,N357,N360,N371,N372,N373,N374,N375,
N376,N377,N378,N379,N380,N381,N386,N393,N399,N404,
N407,N411,N414,N415,N416,N417,N418,N419,N420,N422,
N425,N428,N429;
not NOT1_1 (N118, N1);
not NOT1_2 (N119, N4);
not NOT1_3 (N122, N11);
not NOT1_4 (N123, N17);
not NOT1_5 (N126, N24);
not NOT1_6 (N127, N30);
not NOT1_7 (N130, N37);
not NOT1_8 (N131, N43);
not NOT1_9 (N134, N50);
not NOT1_10 (N135, N56);
not NOT1_11 (N138, N63);
not NOT1_12 (N139, N69);
not NOT1_13 (N142, N76);
not NOT1_14 (N143, N82);
not NOT1_15 (N146, N89);
not NOT1_16 (N147, N95);
not NOT1_17 (N150, N102);
not NOT1_18 (N151, N108);
nand NAND2_19 (N154, N118, N4);
nor NOR2_20 (N157, N8, N119);
nor NOR2_21 (N158, N14, N119);
nand NAND2_22 (N159, N122, N17);
nand NAND2_23 (N162, N126, N30);
nand NAND2_24 (N165, N130, N43);
nand NAND2_25 (N168, N134, N56);
nand NAND2_26 (N171, N138, N69);
nand NAND2_27 (N174, N142, N82);
nand NAND2_28 (N177, N146, N95);
nand NAND2_29 (N180, N150, N108);
nor NOR2_30 (N183, N21, N123);
nor NOR2_31 (N184, N27, N123);
nor NOR2_32 (N185, N34, N127);
nor NOR2_33 (N186, N40, N127);
nor NOR2_34 (N187, N47, N131);
nor NOR2_35 (N188, N53, N131);
nor NOR2_36 (N189, N60, N135);
nor NOR2_37 (N190, N66, N135);
nor NOR2_38 (N191, N73, N139);
nor NOR2_39 (N192, N79, N139);
nor NOR2_40 (N193, N86, N143);
nor NOR2_41 (N194, N92, N143);
nor NOR2_42 (N195, N99, N147);
nor NOR2_43 (N196, N105, N147);
nor NOR2_44 (N197, N112, N151);
nor NOR2_45 (N198, N115, N151);
and AND9_46 (N199, N154, N159, N162, N165, N168, N171, N174, N177, N180);
not NOT1_47 (N203, N199);
not NOT1_48 (N213, N199);
not NOT1_49 (N223, N199);
xor XOR2_50 (N224, N203, N154);
xor XOR2_51 (N227, N203, N159);
xor XOR2_52 (N230, N203, N162);
xor XOR2_53 (N233, N203, N165);
xor XOR2_54 (N236, N203, N168);
xor XOR2_55 (N239, N203, N171);
nand NAND2_56 (N242, N1, N213);
xor XOR2_57 (N243, N203, N174);
nand NAND2_58 (N246, N213, N11);
xor XOR2_59 (N247, N203, N177);
nand NAND2_60 (N250, N213, N24);
xor XOR2_61 (N251, N203, N180);
nand NAND2_62 (N254, N213, N37);
nand NAND2_63 (N255, N213, N50);
nand NAND2_64 (N256, N213, N63);
nand NAND2_65 (N257, N213, N76);
nand NAND2_66 (N258, N213, N89);
nand NAND2_67 (N259, N213, N102);
nand NAND2_68 (N260, N224, N157);
nand NAND2_69 (N263, N224, N158);
nand NAND2_70 (N264, N227, N183);
nand NAND2_71 (N267, N230, N185);
nand NAND2_72 (N270, N233, N187);
nand NAND2_73 (N273, N236, N189);
nand NAND2_74 (N276, N239, N191);
nand NAND2_75 (N279, N243, N193);
nand NAND2_76 (N282, N247, N195);
nand NAND2_77 (N285, N251, N197);
nand NAND2_78 (N288, N227, N184);
nand NAND2_79 (N289, N230, N186);
nand NAND2_80 (N290, N233, N188);
nand NAND2_81 (N291, N236, N190);
nand NAND2_82 (N292, N239, N192);
nand NAND2_83 (N293, N243, N194);
nand NAND2_84 (N294, N247, N196);
nand NAND2_85 (N295, N251, N198);
and AND9_86 (N296, N260, N264, N267, N270, N273, N276, N279, N282, N285);
not NOT1_87 (N300, N263);
not NOT1_88 (N301, N288);
not NOT1_89 (N302, N289);
not NOT1_90 (N303, N290);
not NOT1_91 (N304, N291);
not NOT1_92 (N305, N292);
not NOT1_93 (N306, N293);
not NOT1_94 (N307, N294);
not NOT1_95 (N308, N295);
not NOT1_96 (N309, N296);
not NOT1_97 (N319, N296);
not NOT1_98 (N329, N296);
xor XOR2_99 (N330, N309, N260);
xor XOR2_100 (N331, N309, N264);
xor XOR2_101 (N332, N309, N267);
xor XOR2_102 (N333, N309, N270);
nand NAND2_103 (N334, N8, N319);
xor XOR2_104 (N335, N309, N273);
nand NAND2_105 (N336, N319, N21);
xor XOR2_106 (N337, N309, N276);
nand NAND2_107 (N338, N319, N34);
xor XOR2_108 (N339, N309, N279);
nand NAND2_109 (N340, N319, N47);
xor XOR2_110 (N341, N309, N282);
nand NAND2_111 (N342, N319, N60);
xor XOR2_112 (N343, N309, N285);
nand NAND2_113 (N344, N319, N73);
nand NAND2_114 (N345, N319, N86);
nand NAND2_115 (N346, N319, N99);
nand NAND2_116 (N347, N319, N112);
nand NAND2_117 (N348, N330, N300);
nand NAND2_118 (N349, N331, N301);
nand NAND2_119 (N350, N332, N302);
nand NAND2_120 (N351, N333, N303);
nand NAND2_121 (N352, N335, N304);
nand NAND2_122 (N353, N337, N305);
nand NAND2_123 (N354, N339, N306);
nand NAND2_124 (N355, N341, N307);
nand NAND2_125 (N356, N343, N308);
and AND9_126 (N357, N348, N349, N350, N351, N352, N353, N354, N355, N356);
not NOT1_127 (N360, N357);
not NOT1_128 (N370, N357);
nand NAND2_129 (N371, N14, N360);
nand NAND2_130 (N372, N360, N27);
nand NAND2_131 (N373, N360, N40);
nand NAND2_132 (N374, N360, N53);
nand NAND2_133 (N375, N360, N66);
nand NAND2_134 (N376, N360, N79);
nand NAND2_135 (N377, N360, N92);
nand NAND2_136 (N378, N360, N105);
nand NAND2_137 (N379, N360, N115);
nand NAND4_138 (N380, N4, N242, N334, N371);
nand NAND4_139 (N381, N246, N336, N372, N17);
nand NAND4_140 (N386, N250, N338, N373, N30);
nand NAND4_141 (N393, N254, N340, N374, N43);
nand NAND4_142 (N399, N255, N342, N375, N56);
nand NAND4_143 (N404, N256, N344, N376, N69);
nand NAND4_144 (N407, N257, N345, N377, N82);
nand NAND4_145 (N411, N258, N346, N378, N95);
nand NAND4_146 (N414, N259, N347, N379, N108);
not NOT1_147 (N415, N380);
and AND8_148 (N416, N381, N386, N393, N399, N404, N407, N411, N414);
not NOT1_149 (N417, N393);
not NOT1_150 (N418, N404);
not NOT1_151 (N419, N407);
not NOT1_152 (N420, N411);
nor NOR2_153 (N421, N415, N416);
nand NAND2_154 (N422, N386, N417);
nand NAND4_155 (N425, N386, N393, N418, N399);
nand NAND3_156 (N428, N399, N393, N419);
nand NAND4_157 (N429, N386, N393, N407, N420);
nand NAND4_158 (N430, N381, N386, N422, N399);
nand NAND4_159 (N431, N381, N386, N425, N428);
nand NAND4_160 (N432, N381, N422, N425, N429);
endmodule
module_name="c432"
cp work/cpp_bits/${module_name}_o0.cpp work/cpp_bits/${module_name}_o0_vec.cpp
vim -c "open work/cpp_bits/${module_name}_o0_vec.cpp" \n -c "1,$ s/io_generator_outer/io_generator_outer_vec" \
-c ":wq!"
vim -c "open work/cpp_bits/${module_name}_o0_vec.cpp" \
-c "1,$ s/vec_vec/vec" \
-c "1,$ s/bool/uint64_t/g" \
-c "1,$ s/!/\~/g" \
-c "1,$ s/&&/and/g" \
-c "1,$ s/and/\&/g" \
-c "1,$ s/false/uint64_t(0)/g" \
-c "1,$ s/true/64'hffffffffffffffff/g" \
-c ":wq!"
cp work/cpp_bits/${module_name}_o1.cpp work/cpp_bits/${module_name}_o1_vec.cpp
vim -c "open work/cpp_bits/${module_name}_o1_vec.cpp" \n -c "1,$ s/io_generator_outer/io_generator_outer_vec" \
-c ":wq!"
vim -c "open work/cpp_bits/${module_name}_o1_vec.cpp" \
-c "1,$ s/vec_vec/vec" \
-c "1,$ s/bool/uint64_t/g" \
-c "1,$ s/!/\~/g" \
-c "1,$ s/&&/and/g" \
-c "1,$ s/and/\&/g" \
-c "1,$ s/false/uint64_t(0)/g" \
-c "1,$ s/true/64'hffffffffffffffff/g" \
-c ":wq!"
cp work/cpp_bits/${module_name}_o2.cpp work/cpp_bits/${module_name}_o2_vec.cpp
vim -c "open work/cpp_bits/${module_name}_o2_vec.cpp" \n -c "1,$ s/io_generator_outer/io_generator_outer_vec" \
-c ":wq!"
vim -c "open work/cpp_bits/${module_name}_o2_vec.cpp" \
-c "1,$ s/vec_vec/vec" \
-c "1,$ s/bool/uint64_t/g" \
-c "1,$ s/!/\~/g" \
-c "1,$ s/&&/and/g" \
-c "1,$ s/and/\&/g" \
-c "1,$ s/false/uint64_t(0)/g" \
-c "1,$ s/true/64'hffffffffffffffff/g" \
-c ":wq!"
cp work/cpp_bits/${module_name}_o3.cpp work/cpp_bits/${module_name}_o3_vec.cpp
vim -c "open work/cpp_bits/${module_name}_o3_vec.cpp" \n -c "1,$ s/io_generator_outer/io_generator_outer_vec" \
-c ":wq!"
vim -c "open work/cpp_bits/${module_name}_o3_vec.cpp" \
-c "1,$ s/vec_vec/vec" \
-c "1,$ s/bool/uint64_t/g" \
-c "1,$ s/!/\~/g" \
-c "1,$ s/&&/and/g" \
-c "1,$ s/and/\&/g" \
-c "1,$ s/false/uint64_t(0)/g" \
-c "1,$ s/true/64'hffffffffffffffff/g" \
-c ":wq!"
cp work/cpp_bits/${module_name}_o4.cpp work/cpp_bits/${module_name}_o4_vec.cpp
vim -c "open work/cpp_bits/${module_name}_o4_vec.cpp" \n -c "1,$ s/io_generator_outer/io_generator_outer_vec" \
-c ":wq!"
vim -c "open work/cpp_bits/${module_name}_o4_vec.cpp" \
-c "1,$ s/vec_vec/vec" \
-c "1,$ s/bool/uint64_t/g" \
-c "1,$ s/!/\~/g" \
-c "1,$ s/&&/and/g" \
-c "1,$ s/and/\&/g" \
-c "1,$ s/false/uint64_t(0)/g" \
-c "1,$ s/true/64'hffffffffffffffff/g" \
-c ":wq!"
cp work/cpp_bits/${module_name}_o5.cpp work/cpp_bits/${module_name}_o5_vec.cpp
vim -c "open work/cpp_bits/${module_name}_o5_vec.cpp" \n -c "1,$ s/io_generator_outer/io_generator_outer_vec" \
-c ":wq!"
vim -c "open work/cpp_bits/${module_name}_o5_vec.cpp" \
-c "1,$ s/vec_vec/vec" \
-c "1,$ s/bool/uint64_t/g" \
-c "1,$ s/!/\~/g" \
-c "1,$ s/&&/and/g" \
-c "1,$ s/and/\&/g" \
-c "1,$ s/false/uint64_t(0)/g" \
-c "1,$ s/true/64'hffffffffffffffff/g" \
-c ":wq!"
cp work/cpp_bits/${module_name}_o6.cpp work/cpp_bits/${module_name}_o6_vec.cpp
vim -c "open work/cpp_bits/${module_name}_o6_vec.cpp" \n -c "1,$ s/io_generator_outer/io_generator_outer_vec" \
-c ":wq!"
vim -c "open work/cpp_bits/${module_name}_o6_vec.cpp" \
-c "1,$ s/vec_vec/vec" \
-c "1,$ s/bool/uint64_t/g" \
-c "1,$ s/!/\~/g" \
-c "1,$ s/&&/and/g" \
-c "1,$ s/and/\&/g" \
-c "1,$ s/false/uint64_t(0)/g" \
-c "1,$ s/true/64'hffffffffffffffff/g" \
-c ":wq!"
module c432_o0(in,out);
input [35:0] in;
output out;
wire [6:0] module_out;
assign out = module_out[0];
c432 m0(
in[0 ],
in[1 ],
in[2 ],
in[3 ],
in[4 ],
in[5 ],
in[6 ],
in[7 ],
in[8 ],
in[9 ],
in[10 ],
in[11 ],
in[12 ],
in[13 ],
in[14 ],
in[15 ],
in[16 ],
in[17 ],
in[18 ],
in[19 ],
in[20 ],
in[21 ],
in[22 ],
in[23 ],
in[24 ],
in[25 ],
in[26 ],
in[27 ],
in[28 ],
in[29 ],
in[30 ],
in[31 ],
in[32 ],
in[33 ],
in[34 ],
in[35 ],
module_out[0 ],
module_out[1 ],
module_out[2 ],
module_out[3 ],
module_out[4 ],
module_out[5 ],
module_out[6 ]
);
endmodule
module c432_o1(in,out);
input [35:0] in;
output out;
wire [6:0] module_out;
assign out = module_out[1];
c432 m0(
in[0 ],
in[1 ],
in[2 ],
in[3 ],
in[4 ],
in[5 ],
in[6 ],
in[7 ],
in[8 ],
in[9 ],
in[10 ],
in[11 ],
in[12 ],
in[13 ],
in[14 ],
in[15 ],
in[16 ],
in[17 ],
in[18 ],
in[19 ],
in[20 ],
in[21 ],
in[22 ],
in[23 ],
in[24 ],
in[25 ],
in[26 ],
in[27 ],
in[28 ],
in[29 ],
in[30 ],
in[31 ],
in[32 ],
in[33 ],
in[34 ],
in[35 ],
module_out[0 ],
module_out[1 ],
module_out[2 ],
module_out[3 ],
module_out[4 ],
module_out[5 ],
module_out[6 ]
);
endmodule
module c432_o2(in,out);
input [35:0] in;
output out;
wire [6:0] module_out;
assign out = module_out[2];
c432 m0(
in[0 ],
in[1 ],
in[2 ],
in[3 ],
in[4 ],
in[5 ],
in[6 ],
in[7 ],
in[8 ],
in[9 ],
in[10 ],
in[11 ],
in[12 ],
in[13 ],
in[14 ],
in[15 ],
in[16 ],
in[17 ],
in[18 ],
in[19 ],
in[20 ],
in[21 ],
in[22 ],
in[23 ],
in[24 ],
in[25 ],
in[26 ],
in[27 ],
in[28 ],
in[29 ],
in[30 ],
in[31 ],
in[32 ],
in[33 ],
in[34 ],
in[35 ],
module_out[0 ],
module_out[1 ],
module_out[2 ],
module_out[3 ],
module_out[4 ],
module_out[5 ],
module_out[6 ]
);
endmodule
module c432_o3(in,out);
input [35:0] in;
output out;
wire [6:0] module_out;
assign out = module_out[3];
c432 m0(
in[0 ],
in[1 ],
in[2 ],
in[3 ],
in[4 ],
in[5 ],
in[6 ],
in[7 ],
in[8 ],
in[9 ],
in[10 ],
in[11 ],
in[12 ],
in[13 ],
in[14 ],
in[15 ],
in[16 ],
in[17 ],
in[18 ],
in[19 ],
in[20 ],
in[21 ],
in[22 ],
in[23 ],
in[24 ],
in[25 ],
in[26 ],
in[27 ],
in[28 ],
in[29 ],
in[30 ],
in[31 ],
in[32 ],
in[33 ],
in[34 ],
in[35 ],
module_out[0 ],
module_out[1 ],
module_out[2 ],
module_out[3 ],
module_out[4 ],
module_out[5 ],
module_out[6 ]
);
endmodule
module c432_o4(in,out);
input [35:0] in;
output out;
wire [6:0] module_out;
assign out = module_out[4];
c432 m0(
in[0 ],
in[1 ],
in[2 ],
in[3 ],
in[4 ],
in[5 ],
in[6 ],
in[7 ],
in[8 ],
in[9 ],
in[10 ],
in[11 ],
in[12 ],
in[13 ],
in[14 ],
in[15 ],
in[16 ],
in[17 ],
in[18 ],
in[19 ],
in[20 ],
in[21 ],
in[22 ],
in[23 ],
in[24 ],
in[25 ],
in[26 ],
in[27 ],
in[28 ],
in[29 ],
in[30 ],
in[31 ],
in[32 ],
in[33 ],
in[34 ],
in[35 ],
module_out[0 ],
module_out[1 ],
module_out[2 ],
module_out[3 ],
module_out[4 ],
module_out[5 ],
module_out[6 ]
);
endmodule
module c432_o5(in,out);
input [35:0] in;
output out;
wire [6:0] module_out;
assign out = module_out[5];
c432 m0(
in[0 ],
in[1 ],
in[2 ],
in[3 ],
in[4 ],
in[5 ],
in[6 ],
in[7 ],
in[8 ],
in[9 ],
in[10 ],
in[11 ],
in[12 ],
in[13 ],
in[14 ],
in[15 ],
in[16 ],
in[17 ],
in[18 ],
in[19 ],
in[20 ],
in[21 ],
in[22 ],
in[23 ],
in[24 ],
in[25 ],
in[26 ],
in[27 ],
in[28 ],
in[29 ],
in[30 ],
in[31 ],
in[32 ],
in[33 ],
in[34 ],
in[35 ],
module_out[0 ],
module_out[1 ],
module_out[2 ],
module_out[3 ],
module_out[4 ],
module_out[5 ],
module_out[6 ]
);
endmodule
module c432_o6(in,out);
input [35:0] in;
output out;
wire [6:0] module_out;
assign out = module_out[6];
c432 m0(
in[0 ],
in[1 ],
in[2 ],
in[3 ],
in[4 ],
in[5 ],
in[6 ],
in[7 ],
in[8 ],
in[9 ],
in[10 ],
in[11 ],
in[12 ],
in[13 ],
in[14 ],
in[15 ],
in[16 ],
in[17 ],
in[18 ],
in[19 ],
in[20 ],
in[21 ],
in[22 ],
in[23 ],
in[24 ],
in[25 ],
in[26 ],
in[27 ],
in[28 ],
in[29 ],
in[30 ],
in[31 ],
in[32 ],
in[33 ],
in[34 ],
in[35 ],
module_out[0 ],
module_out[1 ],
module_out[2 ],
module_out[3 ],
module_out[4 ],
module_out[5 ],
module_out[6 ]
);
endmodule
read_verilog work/netlist/c432.v;
read_verilog work/verilog_bits/c432_o0.v;
hierarchy -top c432_o0;
flatten;
synth;
aigmap;
write_aiger -symbols -ascii work/aag_bits/c432_o0.aag
read_verilog work/netlist/c432.v;
read_verilog work/verilog_bits/c432_o1.v;
hierarchy -top c432_o1;
flatten;
synth;
aigmap;
write_aiger -symbols -ascii work/aag_bits/c432_o1.aag
read_verilog work/netlist/c432.v;
read_verilog work/verilog_bits/c432_o2.v;
hierarchy -top c432_o2;
flatten;
synth;
aigmap;
write_aiger -symbols -ascii work/aag_bits/c432_o2.aag
read_verilog work/netlist/c432.v;
read_verilog work/verilog_bits/c432_o3.v;
hierarchy -top c432_o3;
flatten;
synth;
aigmap;
write_aiger -symbols -ascii work/aag_bits/c432_o3.aag
read_verilog work/netlist/c432.v;
read_verilog work/verilog_bits/c432_o4.v;
hierarchy -top c432_o4;
flatten;
synth;
aigmap;
write_aiger -symbols -ascii work/aag_bits/c432_o4.aag
read_verilog work/netlist/c432.v;
read_verilog work/verilog_bits/c432_o5.v;
hierarchy -top c432_o5;
flatten;
synth;
aigmap;
write_aiger -symbols -ascii work/aag_bits/c432_o5.aag
read_verilog work/netlist/c432.v;
read_verilog work/verilog_bits/c432_o6.v;
hierarchy -top c432_o6;
flatten;
synth;
aigmap;
write_aiger -symbols -ascii work/aag_bits/c432_o6.aag
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment