14#ifndef OR_TOOLS_SAT_CP_MODEL_TABLE_H_
15#define OR_TOOLS_SAT_CP_MODEL_TABLE_H_
21#include "absl/container/flat_hash_set.h"
22#include "absl/container/inlined_vector.h"
23#include "absl/types/span.h"
24#include "ortools/sat/cp_model.pb.h"
45 std::vector<std::vector<int64_t>>* tuples);
65 absl::Span<const int64_t> domain_sizes,
66 std::vector<std::vector<int64_t>>* tuples);
71 std::vector<absl::flat_hash_set<int64_t>>* states,
72 std::vector<absl::flat_hash_set<int64_t>>* labels);
constexpr int64_t kTableAnyValue
void CompressTuples(absl::Span< const int64_t > domain_sizes, std::vector< std::vector< int64_t > > *tuples)
std::vector< std::vector< absl::InlinedVector< int64_t, 2 > > > FullyCompressTuples(absl::Span< const int64_t > domain_sizes, std::vector< std::vector< int64_t > > *tuples)
void PropagateAutomaton(const AutomatonConstraintProto &proto, const PresolveContext &context, std::vector< absl::flat_hash_set< int64_t > > *states, std::vector< absl::flat_hash_set< int64_t > > *labels)
Fills and propagates the set of reachable states/labels.
void CanonicalizeTable(PresolveContext *context, ConstraintProto *ct)
In SWIG mode, we don't want anything besides these top-level includes.