src/decide.cpp
// This function determines the next decision variable, without actually
// removing it from the decision queue, e.g., calling it multiple times
// without any assignment will return the same result.  This is of course
// used below in 'decide' but also in 'reuse_trail' to determine the largest
// decision level to backtrack to during 'restart' without changing the
// assigned variables.
This function determines the next decision variable, without actually
removing it from the decision queue, e.g., calling it multiple times
without any assignment will return the same result.
This function determines the next decision variable without actually removing it from the decision queue e . g . calling it multiple times without any assignment will return the same result .
int Internal::next_decision_variable () {
  long searched = 0;
  int res = queue.unassigned;
  while (val (res))
    res = link (res).prev, searched++;
  if (searched) {
    stats.searched += searched;
    update_queue_unassigned (res);
  }
  LOG ("next decision variable %d", res);
  return res;
}
int Internal :: next_decision_variable ( ) { long searched = 0 ; int res = queue . unassigned ; while ( val ( res ) ) res = link ( res ) . prev , searched ++ ; if ( searched ) { stats . searched += searched ; update_queue_unassigned ( res ) ; } LOG ( " " , res ) ; return res ; }
This function determines the next decision variable, without actually
removing it from the decision queue, e.g., calling it multiple times
without any assignment will return the same result.
This function determines the next decision variable without actually removing it from the decision queue e . g . calling it multiple times without any assignment will return the same result .