Commit 888652cb by chengshuyao

Add search Partition; Debug memory leakage with un-delete vectors

parent 05b122a1
...@@ -143,7 +143,7 @@ public: ...@@ -143,7 +143,7 @@ public:
int* split_nodes_each_layer; int* split_nodes_each_layer;
int* accuracy_each_layer; int* accuracy_each_layer;
bool* output_partition_set;
//huanglue //huanglue
void BSD_switch_layer(int i); void BSD_switch_layer(int i);
int * BDD_split_nodes_each_layer = nullptr; int * BDD_split_nodes_each_layer = nullptr;
...@@ -173,6 +173,7 @@ public: ...@@ -173,6 +173,7 @@ public:
accuracy_each_layer = new int [parameter_input_bit_width+1]; accuracy_each_layer = new int [parameter_input_bit_width+1];
BSD_variable_order = new int* [parameter_max_orders]; BSD_variable_order = new int* [parameter_max_orders];
BDD_split_nodes_each_layer = new int [parameter_input_bit_width+1]; BDD_split_nodes_each_layer = new int [parameter_input_bit_width+1];
output_partition_set = new bool [parameter_output_bit_width];
}; };
...@@ -197,31 +198,35 @@ int BDD_class::BSD_samples_sort_each_layer(){ ...@@ -197,31 +198,35 @@ int BDD_class::BSD_samples_sort_each_layer(){
bool* BDD_class::io_generator(bool input_data[parameter_input_bit_width],bool* output_bits){ //bool* BDD_class::io_generator(bool input_data[parameter_input_bit_width],bool* output_bits){
//bool* output_bits = new bool [parameter_output_bit_width]; // //bool* output_bits = new bool [parameter_output_bit_width];
output_bits = io_generator_function(input_data,output_bits); // output_bits = io_generator_function(input_data,output_bits);
//io_read_times += 1; // //io_read_times += 1;
return output_bits; // return output_bits;
}; //};
bool BDD_class::io_generator_single(bool input_data[parameter_input_bit_width],int which_bit_output){ bool BDD_class::io_generator_single(bool input_data[parameter_input_bit_width],int which_bit_output){
bool output_bit; bool output_bit;
bool* output_bits = new bool [100]; bool* output_bits = new bool [100];
output_bits = io_generator_function(input_data,output_bits); output_bits = io_generator_function(input_data,output_bits);
output_bit = output_bits[which_bit_output] ; if (output_partition_set[which_bit_output]==1)
output_bit = output_bits[which_bit_output] ;
else
output_bit = 0;
delete [] output_bits; delete [] output_bits;
return output_bit; return output_bit;
}; };
#ifdef INPUT_AIG #ifdef INPUT_AIG
int* BDD_class::io_generator_vec(int input_data[parameter_input_bit_width],int* output_bits){ //int* BDD_class::io_generator_vec(int input_data[parameter_input_bit_width],int* output_bits){
//bool* output_bits = new bool [parameter_output_bit_width]; // //bool* output_bits = new bool [parameter_output_bit_width];
//cout<<"Debug 4"<<endl; // //cout<<"Debug 4"<<endl;
output_bits = io_generator_function_vec(input_data,output_bits); // int* output_data_temp = new int [100];
//cout<<"Debug 5"<<endl; // output_bits = io_generator_function_vec(input_data,output_bits);
//io_read_times += 1; // //cout<<"Debug 5"<<endl;
return output_bits; // //io_read_times += 1;
}; // return output_bits;
//};
int BDD_class::io_generator_single_vec(int input_data[parameter_input_bit_width],int which_bit_output){ int BDD_class::io_generator_single_vec(int input_data[parameter_input_bit_width],int which_bit_output){
...@@ -231,7 +236,10 @@ int BDD_class::io_generator_single_vec(int input_data[parameter_input_bit_width] ...@@ -231,7 +236,10 @@ int BDD_class::io_generator_single_vec(int input_data[parameter_input_bit_width]
int* output_bits = new int [100]; int* output_bits = new int [100];
//cout<<"Debug 3"<<endl; //cout<<"Debug 3"<<endl;
output_bits = io_generator_function_vec(input_data,output_bits); output_bits = io_generator_function_vec(input_data,output_bits);
output_bit = output_bits[which_bit_output] ; if (output_partition_set[which_bit_output]==1)
output_bit = output_bits[which_bit_output] ;
else
output_bit = 0;
//cout<<"which bit output "<<which_bit_output<<" "<<hex<<output_bit<<endl; //cout<<"which bit output "<<which_bit_output<<" "<<hex<<output_bit<<endl;
delete [] output_bits; delete [] output_bits;
return output_bit; return output_bit;
...@@ -546,6 +554,8 @@ int BDD_class::train_BDD(BDD_node** BDD,int* most_influence,int start_depth, int ...@@ -546,6 +554,8 @@ int BDD_class::train_BDD(BDD_node** BDD,int* most_influence,int start_depth, int
delete [] vec_input_right ; delete [] vec_input_right ;
delete [] vec_output_left ; delete [] vec_output_left ;
delete [] vec_output_right; delete [] vec_output_right;
delete [] vec_input_left_int ;
delete [] vec_input_right_int ;
} }
#else #else
......
...@@ -2,7 +2,7 @@ extern const int parameter_input_bit_width = 33+5; //输入bit有几位,写在 ...@@ -2,7 +2,7 @@ extern const int parameter_input_bit_width = 33+5; //输入bit有几位,写在
extern const int parameter_output_bit_width = 25 ; //输出bit有几位 extern const int parameter_output_bit_width = 25 ; //输出bit有几位
#include"io_generator/c1908.h" #include"io_generator/c1908.h"
#include"c1908_vec.h" #include"c1908_vec.h"
//#define INPUT_AIG #define INPUT_AIG
//#include"io_generator_function.h" //#include"io_generator_function.h"
int parameter_search_iterations = 1000; //最大设计次数 int parameter_search_iterations = 1000; //最大设计次数
......
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