14 #ifndef OR_TOOLS_SAT_DIOPHANTINE_H_
15 #define OR_TOOLS_SAT_DIOPHANTINE_H_
20 #include "absl/numeric/int128.h"
21 #include "absl/types/span.h"
37 const int elements_to_consider,
38 std::vector<absl::int128>& v);
129 absl::Span<const int64_t> var_lbs,
130 absl::Span<const int64_t> var_ubs);
DiophantineSolution SolveDiophantine(absl::Span< const int64_t > coeffs, int64_t rhs, absl::Span< const int64_t > var_lbs, absl::Span< const int64_t > var_ubs)
std::vector< int > GreedyFastDecreasingGcd(const absl::Span< const int64_t > coeffs)
void ReduceModuloBasis(const std::vector< std::vector< absl::int128 >> &basis, const int elements_to_consider, std::vector< absl::int128 > &v)
bool no_reformulation_needed
std::vector< absl::int128 > special_solution
std::vector< absl::int128 > kernel_vars_ubs
std::vector< absl::int128 > kernel_vars_lbs
std::vector< std::vector< absl::int128 > > kernel_basis
std::vector< int > index_permutation