Example #1
0
vector<int> eulerian_path(graph& G)
{
    bool hasDummy = false;
    pair<int,int> dummy = set_dummy(G);
    if (dummy.first == -1)
        return vector<int>();
    if (dummy.second != -1)
        hasDummy = true;
    eulerian_path(G,dummy.first);
    vector<int> path;
    vector<int> otherpath;
    bool partTwo = false;
    while(!pathStack.empty()) 
    {
        if (!path.empty() && !partTwo && hasDummy && pathStack.top() == dummy.first && path.back() == dummy.second) {
            partTwo = true;
        }
        else if (partTwo) {
            otherpath.push_back(pathStack.top());
        }
        else
            path.push_back(pathStack.top());
        pathStack.pop();
    }
    for (int i = 0; i < path.size(); ++i) {
        otherpath.push_back(path[i]);
    }

    // wrong path size for disconnected components?
    if (hasDummy && otherpath.size() != G.E.size())
        return vector<int>();
    if (!hasDummy && otherpath.size() != G.E.size()+1)
        return vector<int>();
    return otherpath;  
}
static void set_max_framerate(UINT16 framerate,kal_bool min_framelength_en)
{
	kal_int16 dummy_line;
	kal_uint32 frame_length = imgsensor.frame_length;
	//unsigned long flags;

	LOG_INF("framerate = %d, min framelength should enable = %d\n", framerate,min_framelength_en);
   
	frame_length = imgsensor.pclk / framerate * 10 / imgsensor.line_length;
	spin_lock(&imgsensor_drv_lock);
	imgsensor.frame_length = (frame_length > imgsensor.min_frame_length) ? frame_length : imgsensor.min_frame_length; 
	imgsensor.dummy_line = imgsensor.frame_length - imgsensor.min_frame_length;
    //dummy_line = frame_length - imgsensor.min_frame_length;
	//if (dummy_line < 0)
	//	imgsensor.dummy_line = 0;
	//else
	//	imgsensor.dummy_line = dummy_line;
	//imgsensor.frame_length = frame_length + imgsensor.dummy_line;
	if (imgsensor.frame_length > imgsensor_info.max_frame_length)
	{
		imgsensor.frame_length = imgsensor_info.max_frame_length;
		imgsensor.dummy_line = imgsensor.frame_length - imgsensor.min_frame_length;
	}
	if (min_framelength_en)
		imgsensor.min_frame_length = imgsensor.frame_length;
	spin_unlock(&imgsensor_drv_lock);
	set_dummy();
}	/*	set_max_framerate  */
Example #3
0
void play(guess choice[], int* curr, int guide)
     /**********************************************/
     /* Function: gets a player guess,             */
     /*           checks it                        */
     /*           and returns score                */
     /* Parameters:                                */
     /*      choice: IN current guess              */
     /*      curr: IN OUT current guess number     */
     /*      guide: IN for checking guess validity */ 
     /**********************************************/
{
  get_code_player(&choice[*curr]);
  set_dummy();
  if (guide && *curr)
    /*verify the validity of the guess*/
    consistent();
  score_player();
  (*curr)++;
}