Commit 888652cb by chengshuyao

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

parent 05b122a1
......@@ -143,7 +143,7 @@ public:
int* split_nodes_each_layer;
int* accuracy_each_layer;
bool* output_partition_set;
//huanglue
void BSD_switch_layer(int i);
int * BDD_split_nodes_each_layer = nullptr;
......@@ -173,6 +173,7 @@ public:
accuracy_each_layer = new int [parameter_input_bit_width+1];
BSD_variable_order = new int* [parameter_max_orders];
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(){
bool* BDD_class::io_generator(bool input_data[parameter_input_bit_width],bool* output_bits){
//bool* output_bits = new bool [parameter_output_bit_width];
output_bits = io_generator_function(input_data,output_bits);
//io_read_times += 1;
return 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];
// output_bits = io_generator_function(input_data,output_bits);
// //io_read_times += 1;
// return output_bits;
//};
bool BDD_class::io_generator_single(bool input_data[parameter_input_bit_width],int which_bit_output){
bool output_bit;
bool* output_bits = new bool [100];
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;
return output_bit;
};
#ifdef INPUT_AIG
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];
//cout<<"Debug 4"<<endl;
output_bits = io_generator_function_vec(input_data,output_bits);
//cout<<"Debug 5"<<endl;
//io_read_times += 1;
return 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];
// //cout<<"Debug 4"<<endl;
// int* output_data_temp = new int [100];
// output_bits = io_generator_function_vec(input_data,output_bits);
// //cout<<"Debug 5"<<endl;
// //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){
......@@ -231,7 +236,10 @@ int BDD_class::io_generator_single_vec(int input_data[parameter_input_bit_width]
int* output_bits = new int [100];
//cout<<"Debug 3"<<endl;
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;
delete [] output_bits;
return output_bit;
......@@ -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_output_left ;
delete [] vec_output_right;
delete [] vec_input_left_int ;
delete [] vec_input_right_int ;
}
#else
......
......@@ -2,7 +2,7 @@ extern const int parameter_input_bit_width = 33+5; //输入bit有几位,写在
extern const int parameter_output_bit_width = 25 ; //输出bit有几位
#include"io_generator/c1908.h"
#include"c1908_vec.h"
//#define INPUT_AIG
#define INPUT_AIG
//#include"io_generator_function.h"
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