VECTOR_OPERATION VAND(v16 vs, v16 vt) { #ifdef ARCH_MIN_SSE2 vector_and(vs, vt); *(v16 *)VACC_L = vs; return (vs); #else vector_copy(VACC_L, vt); vector_and(VACC_L, vs); vector_copy(V_result, VACC_L); return; #endif }
int Solveur_cl::get_uip(vector<vector<int>>& graph, vector<int> possible_uip, int paris){ vector<int> chemin; chemin.resize(0); found_chemin(graph, chemin, 0, paris); possible_uip = vector_and(chemin, possible_uip); int interdit; while(!possible_uip.empty()){ interdit = possible_uip.back(); chemin.resize(0); if(!found_chemin(graph, chemin, interdit, paris)){ return interdit; } possible_uip = vector_and(chemin, possible_uip); } return paris; }