Commit e2d7bc01 by chengshuyao

Debug test_input_bit train_input_bit

parent c433861a
...@@ -66,6 +66,7 @@ public: ...@@ -66,6 +66,7 @@ public:
int * most_influence ; int * most_influence ;
int * BDD_width_each_layer ; int * BDD_width_each_layer ;
bool ** mask_input_data ; bool ** mask_input_data ;
bool ** mask_input_data_order ;
bool * mask_output_data ; bool * mask_output_data ;
double total_finish_weight = 0; double total_finish_weight = 0;
...@@ -200,6 +201,7 @@ public: ...@@ -200,6 +201,7 @@ public:
start_node_index_string = new char [parameter_output_bit_width+1]; start_node_index_string = new char [parameter_output_bit_width+1];
arr2d_new(mask_input_data, parameter_max_samples*2); arr2d_new(mask_input_data, parameter_max_samples*2);
arr2d_new(mask_input_data_order, parameter_max_samples*2);
arr2d_new(simplify_list, parameter_max_BDD_width); arr2d_new(simplify_list, parameter_max_BDD_width);
arr2d_new(BDD, 1+parameter_input_bit_width); arr2d_new(BDD, 1+parameter_input_bit_width);
arr2d_new(amount_turn_output_data, 1+parameter_input_bit_width); arr2d_new(amount_turn_output_data, 1+parameter_input_bit_width);
...@@ -235,6 +237,7 @@ public: ...@@ -235,6 +237,7 @@ public:
arr_delete ( all_one_right_list ) ; arr_delete ( all_one_right_list ) ;
arr_delete ( all_zero_right_list ) ; arr_delete ( all_zero_right_list ) ;
arr2d_delete(mask_input_data, parameter_max_samples*2); arr2d_delete(mask_input_data, parameter_max_samples*2);
arr2d_delete(mask_input_data_order, parameter_max_samples*2);
arr2d_delete(simplify_list, parameter_max_BDD_width); arr2d_delete(simplify_list, parameter_max_BDD_width);
arr2d_delete(BDD, 1+parameter_input_bit_width); arr2d_delete(BDD, 1+parameter_input_bit_width);
arr2d_delete(amount_turn_output_data, 1+parameter_input_bit_width); arr2d_delete(amount_turn_output_data, 1+parameter_input_bit_width);
...@@ -376,6 +379,7 @@ int BDD_class::train_BDD(int start_depth, int how_many_start_nodes, BDD_node* st ...@@ -376,6 +379,7 @@ int BDD_class::train_BDD(int start_depth, int how_many_start_nodes, BDD_node* st
for(i=start_depth;i</*parameter_early_stop_depth*/parameter_input_bit_width+1;i++){ for(i=start_depth;i</*parameter_early_stop_depth*/parameter_input_bit_width+1;i++){
set_random_train();
cout<<"BSD input bit sequence : "; cout<<"BSD input bit sequence : ";
for(int zi=0;zi<i;zi++){ for(int zi=0;zi<i;zi++){
cout<<most_influence[zi]<<" "; cout<<most_influence[zi]<<" ";
...@@ -543,8 +547,8 @@ int BDD_class::train_BDD(int start_depth, int how_many_start_nodes, BDD_node* st ...@@ -543,8 +547,8 @@ int BDD_class::train_BDD(int start_depth, int how_many_start_nodes, BDD_node* st
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);
cout<<"set random input data finish "<<endl; cout<<"set random input data finish "<<endl;
set_random_input_data(mask_input_data);
#ifdef INPUT_AIG #ifdef INPUT_AIG
int vec_length=63; int vec_length=63;
#pragma omp parallel for #pragma omp parallel for
...@@ -1249,6 +1253,7 @@ int BDD_class::BDD_FULL_PROCESS(){ ...@@ -1249,6 +1253,7 @@ int BDD_class::BDD_FULL_PROCESS(){
for (j=0;j<parameter_max_samples;j++){ for (j=0;j<parameter_max_samples;j++){
mask_input_data[j] = new bool[parameter_input_bit_width+2]; mask_input_data[j] = new bool[parameter_input_bit_width+2];
mask_input_data_order[j] = new bool[parameter_input_bit_width+2];
} }
int start_node_ij=0; int start_node_ij=0;
for (int i=0;i<parameter_output_bit_width;i++){ for (int i=0;i<parameter_output_bit_width;i++){
......
...@@ -98,6 +98,16 @@ int BSD_execute(int start_node_number, node_index* start_node_index,int variable ...@@ -98,6 +98,16 @@ int BSD_execute(int start_node_number, node_index* start_node_index,int variable
bool * test_input_bits; bool * test_input_bits;
bool * train_input_bits = new bool [long(parameter_max_samples)*long(parameter_input_bit_width)]; bool * train_input_bits = new bool [long(parameter_max_samples)*long(parameter_input_bit_width)];
void set_random_train(){
random_device rd;
mt19937 gen(rd());
#pragma omp parallel for
for (long j=0;j<long(parameter_max_samples)*long(parameter_input_bit_width)/30;j++){
long randint = gen();
for (int zi=0;zi<30;zi++)
train_input_bits[j*30+zi] = bool((int(randint >> (zi)))%2);
}
};
class BSD_features{ class BSD_features{
public: public:
...@@ -186,7 +196,7 @@ void set_default(){ ...@@ -186,7 +196,7 @@ void set_default(){
for (long j=0;j<long(parameter_test_ios)*long(parameter_input_bit_width)/31;j++){ for (long j=0;j<long(parameter_test_ios)*long(parameter_input_bit_width)/31;j++){
long randint = gen(); long randint = gen();
for (int zi=0;zi<31;zi++) for (int zi=0;zi<31;zi++)
test_input_bits[j] = bool((int(randint >> (zi)))%2); test_input_bits[j*31+zi] = bool((int(randint >> (zi)))%2);
} }
cout<<"Finish default setup"; cout<<"Finish default setup";
//io generator来自真值表,不来自写好的文件 //io generator来自真值表,不来自写好的文件
......
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