Commit 2a716ce1 by chengshuyao

Debug BSD partition

parent 5df737e0
......@@ -127,8 +127,20 @@ int BSD_execute(int variable_order_number,int** variable_order, int partition_de
BDD_class BDD_class_main;
BDD_class_main.which_demo_function = GLOBAL_which_demo_function;
cout<<"This variable order: "<<endl;
for (int vi=0;vi<parameter_max_partition_parts;vi++){
for (int j=0;j<parameter_max_partition_parts;j++){
BDD_class_main.BSD_variable_order[j] = new int [parameter_input_bit_width];
}
cout<<"This variable order: "<<variable_order_number<<endl;
//for (int vi=0;vi<partition_parts;vi++){
// BDD_class_main.BSD_variable_order_number = variable_order_number;
// for(int i=0;i<variable_order_number;i++){
// BDD_class_main.BSD_variable_order[vi][i] = variable_order[vi][i];
// cout<<BDD_class_main.BSD_variable_order[vi][i]<<" ";
// }
// cout<<endl;
//}
//cout<<endl;
for(int vi=0;vi<partition_parts;vi++){
BDD_class_main.BSD_variable_order_number = variable_order_number;
for(int i=0;i<variable_order_number;i++){
BDD_class_main.BSD_variable_order[vi][i] = variable_order[vi][i];
......@@ -265,6 +277,7 @@ void search_order(int search_iterations, bool allow_partition){
result_1000 << best_area << endl;
}
cout<<"Debug 1"<<endl;
int parameter_learning_rate = 1;
if(best_area > 10000){
parameter_learning_rate =5;
......@@ -335,7 +348,15 @@ void search_order(int search_iterations, bool allow_partition){
}
cout<<"Debug 2"<<endl;
for (int vj=0;vj<parameter_max_partition_parts;vj++){
for(int vi=0;vi<parameter_input_bit_width;vi++){
cout<<variable_order[vj][vi]<<" ";
//variable_features[vi] = double(BSD_features_0.BDD_width_each_layer[vi+1]) / double(BSD_features_0.BDD_width_each_layer[vi]);
//cout<<variable_features[vi]<<" ";
}
cout<<endl;
}
//for(int j=mutation_depth;j<parameter_input_bit_width;j++){
// for (int vi=0;vi<parameter_input_bit_width;vi++){
......@@ -349,7 +370,7 @@ void search_order(int search_iterations, bool allow_partition){
//}
if (i<10){
if (i<1){
reward = BSD_execute(0,variable_order,partition_depth,partition_parts);
}
else{
......@@ -360,6 +381,7 @@ void search_order(int search_iterations, bool allow_partition){
}
cout<<"Debug 3"<<endl;
bool accept;
//accept = (reward <= best_reward);
double accept_ratio = double(reward) / double(best_reward);
......@@ -380,7 +402,6 @@ void search_order(int search_iterations, bool allow_partition){
else
accept = 0;
}
if(accept){
best_iteration = i;
best_reward = reward;
......@@ -388,14 +409,16 @@ void search_order(int search_iterations, bool allow_partition){
best_area_depth = BSD_features_0.BSD_depth;
best_partition_depth = partition_depth;
best_partition_parts = partition_parts;
for(int vi=0;vi<parameter_input_bit_width;vi++){
for (int vj=0;vj<parameter_max_partition_parts;vj++){
for(int vi=0;vi<parameter_input_bit_width;vi++){
best_variable_order[vj][vi] = variable_order[vj][vi];
}
cout<<best_variable_order[vj][vi]<<" ";
best_BDD_split_nodes[vi] = BSD_features_0.BSD_area_layers[vi];
//variable_features[vi] = double(BSD_features_0.BDD_width_each_layer[vi+1]) / double(BSD_features_0.BDD_width_each_layer[vi]);
//cout<<variable_features[vi]<<" ";
}
cout<<endl;
}
cout<<"#############################"<<endl;
cout<<"## This order accept #"<<endl;
cout<<"#############################"<<endl;
......
......@@ -884,9 +884,9 @@ int BDD_class::BDD_FULL_PROCESS(){
for (j=0;j<parameter_max_samples;j++){
mask_input_data[j] = new bool[parameter_input_bit_width*2];
}
for (j=0;j<parameter_max_partition_parts;j++){
BSD_variable_order[j] = new int [parameter_input_bit_width];
}
// for (j=0;j<parameter_max_partition_parts;j++){
// BSD_variable_order[j] = new int [parameter_input_bit_width];
// }
for (int zi=0;zi<parameter_max_BDD_width;zi++){
simplify_list[zi] = new bool[parameter_max_samples];
}
......
......@@ -6,14 +6,12 @@ bool* io_generator_function(bool input_data[parameter_input_bit_width],int which
int i,j;
bool output_data_temp [1000];
io_generator_outer(input_data,output_data_temp);
for(i=0;i<parameter_output_bit_width;i++){
output_data[i] = 0;
output_data[i] = output_data_temp[i];
}
io_generator_outer(input_data,output_data);
output_data[0] = output_data[12];
return output_data;
}
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