53 std::vector<Literal>* conflict,
54 std::vector<Literal>* reason_used_to_infer_the_conflict,
55 std::vector<SatClause*>* subsumed_clauses);
59 absl::Span<const IntegerLiteral> IndexToIntegerLiterals(
66 void FilterSubsumedClauses(std::vector<Literal>* conflict,
67 std::vector<SatClause*>* subsumed_clauses);
72 std::vector<SatClause*>* subsumed_clauses);
81 IntegerValue RelaxBoundIfHoles(IntegerVariable var, IntegerValue value);
85 std::string DebugGlobalIndex(absl::Span<const GlobalTrailIndex> indices);
97 mutable std::vector<GlobalTrailIndex> tmp_queue_;
103 std::vector<IntegerLiteral> tmp_integer_literals_;
105 tmp_var_to_settled_lb_;
108 struct IntegerVariableData {
111 bool in_queue =
false;
112 int int_index_in_queue = std::numeric_limits<int>::max();
121 int64_t num_conflicts_at_wrong_level_ = 0;
122 int64_t num_expansions_ = 0;
123 int64_t num_subsumed_ = 0;
124 int64_t num_conflict_literals_ = 0;
125 int64_t num_associated_integer_for_literals_in_conflict_ = 0;
126 int64_t num_associated_literal_use_ = 0;
127 int64_t num_associated_literal_fail_ = 0;
128 int64_t num_possibly_non_optimal_reason_ = 0;
129 int64_t num_slack_usage_ = 0;
130 int64_t num_slack_relax_ = 0;
131 int64_t num_holes_relax_ = 0;
132 int64_t num_created_1uip_bool_ = 0;
133 int64_t num_binary_minimization_ = 0;
136 int64_t comparison_num_win_ = 0;
137 int64_t comparison_num_same_ = 0;
138 int64_t comparison_num_loose_ = 0;
139 int64_t comparison_old_sum_of_literals_ = 0;
140 int64_t comparison_old_num_subsumed_ = 0;