diff --git a/src/math/lp/dioph_eq.cpp b/src/math/lp/dioph_eq.cpp index b1c9afe2e..efc313ec6 100644 --- a/src/math/lp/dioph_eq.cpp +++ b/src/math/lp/dioph_eq.cpp @@ -4,8 +4,9 @@ #include "math/lp/lp_utils.h" namespace lp { - struct imp { - + + class dioph_eq::imp { + public: int_solver& lia; lar_solver& lra; @@ -13,9 +14,9 @@ namespace lp { vector m_e; void init() { - int n_of_rows = lra.r_basis().size(); + unsigned n_of_rows = static_cast(lra.r_basis().size()); unsigned skipped = 0; - for (unsigned i = 0; i < lra.r_basis().size(); i++) { + for (unsigned i = 0; i < n_of_rows; i++) { auto & row = lra.get_row(i); lar_term t; bool is_int = true; diff --git a/src/math/lp/dioph_eq.h b/src/math/lp/dioph_eq.h index f37a2baa0..36d45844e 100644 --- a/src/math/lp/dioph_eq.h +++ b/src/math/lp/dioph_eq.h @@ -19,9 +19,10 @@ Revision History: #include "math/lp/lia_move.h" namespace lp { - struct imp; + class int_solver; class dioph_eq { + class imp; int_solver& lia; imp* m_imp; public: diff --git a/src/math/lp/int_solver.cpp b/src/math/lp/int_solver.cpp index aac1caf18..88ac2a1bb 100644 --- a/src/math/lp/int_solver.cpp +++ b/src/math/lp/int_solver.cpp @@ -29,7 +29,8 @@ namespace lp { }; - struct imp { + class int_solver::imp { + public: int_solver& lia; lar_solver& lra; lar_core_solver& lrac; diff --git a/src/math/lp/int_solver.h b/src/math/lp/int_solver.h index 02d6aa519..14d5c8e4e 100644 --- a/src/math/lp/int_solver.h +++ b/src/math/lp/int_solver.h @@ -31,16 +31,17 @@ Revision History: namespace lp { class lar_solver; class lar_core_solver; -struct imp; class int_solver { + friend struct create_cut; friend class gomory; friend class int_cube; friend class int_branch; friend class int_gcd_test; friend class hnf_cutter; - friend struct imp; + friend class imp; friend class dioph_eq; + class imp; lar_solver& lra; lar_core_solver& lrac; imp* m_imp;