void HungarianAlgorithm::solve(Mat CostMatrix_In,Mat& Assignment_Out){
 
   this->CostMatrix = CostMatrix_In.clone()  ; 
    

// The algorithm consists of 8 steps 
   bool done = false ;
   int step = 0;  
   while(!done){ 
    
     switch(step){
        case 0:
 		step_zero(&step); 
		break ;
     	case 1: 
     		step_one(&step); 
		break ; 
    	case 2: 
		step_two(&step); 
		break; 
 	case 3: 
		step_three(&step);  
		break ; 
 	case 4: 
		step_four(&step); 
		break; 
 	case 5: 
		step_five(&step); 
		Assignment_Out = this->AssignmentMatrix ; 
		done = true ; 
		break; 
     }
  
   }
}
Ejemplo n.º 2
0
void
resume()
{
   // Before we resume, we need to update our states!
   this_core::updateRoundingMode();
   std::feclearexcept(FE_ALL_EXCEPT);

   auto core = cpu::this_core::state();
   while (core->nia != cpu::CALLBACK_ADDR) {
      this_core::checkInterrupts();
      core = step_one(this_core::state());
   }
}