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 */
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)++; }