@@ -34,6 +34,7 @@ namespace lp {
34
34
int_solver& lia;
35
35
lar_solver& lra;
36
36
lar_core_solver& lrac;
37
+ dioph_eq m_dio;
37
38
unsigned m_number_of_calls = 0 ;
38
39
lar_term m_t ; // the term to return in the cut
39
40
bool m_upper; // cut is an upper bound
@@ -48,7 +49,7 @@ namespace lp {
48
49
return lra.column_is_int (j) && (!lia.value_is_int (j));
49
50
}
50
51
51
- imp (int_solver& lia): lia(lia), lra(lia.lra), lrac(lia.lrac), m_hnf_cutter(lia), m_gcd(lia) {
52
+ imp (int_solver& lia): lia(lia), lra(lia.lra), lrac(lia.lrac), m_hnf_cutter(lia), m_gcd(lia), m_dio(lia) {
52
53
m_hnf_cut_period = settings ().hnf_cut_period ();
53
54
m_dioph_eq_period = settings ().m_dioph_eq_period ;
54
55
}
@@ -169,18 +170,17 @@ namespace lp {
169
170
}
170
171
171
172
lia_move solve_dioph_eq () {
172
- dioph_eq de (lia);
173
- lia_move r = de.check ();
173
+ lia_move r = m_dio.check ();
174
174
175
175
if (r == lia_move::conflict) {
176
- de .explain (*this ->m_ex );
176
+ m_dio .explain (*this ->m_ex );
177
177
m_dioph_eq_period = settings ().m_dioph_eq_period ;
178
178
return lia_move::conflict;
179
179
} else if (r == lia_move::branch) {
180
180
m_dioph_eq_period = settings ().m_dioph_eq_period ;
181
181
return lia_move::branch;
182
182
}
183
- return r;
183
+ return r;
184
184
}
185
185
186
186
lp_settings& settings () { return lra.settings (); }
0 commit comments