diff --git a/cadbiom/models/clause_constraints/mcl/MCLSolutions.py b/cadbiom/models/clause_constraints/mcl/MCLSolutions.py index 89d88ab066350b8079ab00e3c8333fdef4ebb8f3..bbb11599578d420a0194230b0e8d6b7ef4633033 100644 --- a/cadbiom/models/clause_constraints/mcl/MCLSolutions.py +++ b/cadbiom/models/clause_constraints/mcl/MCLSolutions.py @@ -228,15 +228,15 @@ class RawSolution(object): """ extract active __inputs and clocks from a state vector """ - out = [] - for s_varcode in s_vector: - cond1 = s_varcode in self.__unfolder.get_inputs() - cond2 = s_varcode in self.__unfolder.get_free_clocks() - if cond1 or cond2: - if s_varcode > 0: - out.append(s_varcode) - return out - + + inputs = frozenset(self.__unfolder.get_inputs()) + free_clocks = frozenset(self.__unfolder.get_free_clocks()) + + return [s_varcode for s_varcode in s_vector + if (s_varcode > 0) + and ((s_varcode in inputs) + or (s_varcode in free_clocks))] + def extract_act_input_clock_seq(self): """