(self, clauses)
Set up the clause data structures needed.

        For each clause, the following changes are made:
        - Unit clauses are queued for propagation right away.
        - Non-unit clauses have their first and last literals set as sentinels.
        - The number of clauses a literal appears in is computed.
Set up the clause data structures needed.
Set up the clause data structures needed .
def _initialize_clauses(self, clauses):
        """Set up the clause data structures needed.

        For each clause, the following changes are made:
        - Unit clauses are queued for propagation right away.
        - Non-unit clauses have their first and last literals set as sentinels.
        - The number of clauses a literal appears in is computed.
        """
        self.clauses = []
        for cls in clauses:
            self.clauses.append(list(cls))

        for i in range(len(self.clauses)):

            # Handle the unit clauses
            if 1 == len(self.clauses[i]):
                self._unit_prop_queue.append(self.clauses[i][0])
                continue

            self.sentinels[self.clauses[i][0]].add(i)
            self.sentinels[self.clauses[i][-1]].add(i)

            for lit in self.clauses[i]:
                self.occurrence_count[lit] += 1
def _initialize_clauses ( self , clauses ) : self . clauses = [ ] for cls in clauses : self . clauses . append ( list ( cls ) ) for i in range ( len ( self . clauses ) ) : # Handle the unit clauses if 1 == len ( self . clauses [ i ] ) : self . _unit_prop_queue . append ( self . clauses [ i ] [ 0 ] ) continue self . sentinels [ self . clauses [ i ] [ 0 ] ] . add ( i ) self . sentinels [ self . clauses [ i ] [ - 1 ] ] . add ( i ) for lit in self . clauses [ i ] : self . occurrence_count [ lit ] += 1