//printf("worker %d: area %d on gate type %d and depth %d larger then best area %d continueing\n",data->worker_id,current_circuit->area,i,depth,data->best_area);
continue;
}
for(intin1=0;in1<depth+data->num_inputs;in1++){
for(intin2=0;in2<depth+data->num_inputs;in2++){
data->num_circuit[0]+=1;
// Add the new gate to the circuit
current_circuit->gates[depth].gate=&gate_types[i];//set pointer to the type of gate
current_circuit->gates[depth].in1=in1;
current_circuit->gates[depth].in2=in2;
current_circuit->gate_count=depth+1;
inttautology=detect_tautology(current_circuit,in1,in2,i,data);//0: nothing found, 1: direct tautology, 2:unconnected device may still be connected.
if(tautology==1){
continue;//Found already unnecessary combo and should skip it
current_circuit->area+=gate_types[i].area;// Example area increment (modify as needed)
if(data->num_circuit[0]%1000000000==0){
data->num_circuit[1]+=1;
data->num_circuit[0]=0;
printf("%d:At circuit number %d M current best_area %d and tested area %d\n",data->worker_id,data->num_circuit[1],data->best_area,current_circuit->area);