Files
ortools-clone/ortools/sat/BUILD.bazel

4586 lines
125 KiB
Python

# Copyright 2010-2025 Google LLC
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Home of CP/SAT solver (which includes SAT, max-SAT and PB problems).
load("@protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
load("@protobuf//bazel:java_proto_library.bzl", "java_proto_library")
load("@protobuf//bazel:proto_library.bzl", "proto_library")
load("@protobuf//bazel:py_proto_library.bzl", "py_proto_library")
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
load("@rules_cc//cc:cc_library.bzl", "cc_library")
load("@rules_cc//cc:cc_test.bzl", "cc_test")
load("@rules_go//proto:def.bzl", "go_proto_library")
package(default_visibility = ["//visibility:public"])
cc_library(
name = "cp_model",
srcs = ["cp_model.cc"],
hdrs = ["cp_model.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_cc_proto",
":cp_model_solver",
":cp_model_utils",
":model",
":sat_parameters_cc_proto",
"//ortools/base:string_view_migration",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cp_model_test",
size = "small",
srcs = ["cp_model_test.cc"],
deps = [
":cp_model",
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_solver",
":model",
":sat_parameters_cc_proto",
"//ortools/base:container_logging",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"//ortools/base:parse_test_proto",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "model",
hdrs = ["model.h"],
visibility = ["//visibility:public"],
deps = [
"//ortools/base",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
],
)
cc_test(
name = "model_test",
size = "small",
srcs = ["model_test.cc"],
deps = [
":model",
"//ortools/base:gmock_main",
],
)
proto_library(
name = "sat_parameters_proto",
srcs = ["sat_parameters.proto"],
visibility = ["//visibility:public"],
)
cc_proto_library(
name = "sat_parameters_cc_proto",
visibility = ["//visibility:public"],
deps = [":sat_parameters_proto"],
)
py_proto_library(
name = "sat_parameters_py_pb2",
visibility = ["//visibility:public"],
deps = [":sat_parameters_proto"],
)
java_proto_library(
name = "sat_parameters_java_proto",
visibility = ["//visibility:public"],
deps = [":sat_parameters_proto"],
)
go_proto_library(
name = "sat_parameters_go_proto",
importpath = "github.com/google/or-tools/ortools/sat/proto/satparameters",
protos = [":sat_parameters_proto"],
visibility = ["//visibility:public"],
)
proto_library(
name = "cp_model_proto",
srcs = ["cp_model.proto"],
visibility = ["//visibility:public"],
)
cc_library(
name = "2d_distances_propagator",
srcs = ["2d_distances_propagator.cc"],
hdrs = ["2d_distances_propagator.h"],
deps = [
":cp_model_cc_proto",
":integer",
":integer_base",
":linear_propagation",
":model",
":no_overlap_2d_helper",
":precedences",
":sat_base",
":scheduling_helpers",
":synchronization",
"//ortools/base:stl_util",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:fixed_array",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "2d_mandatory_overlap_propagator",
srcs = ["2d_mandatory_overlap_propagator.cc"],
hdrs = ["2d_mandatory_overlap_propagator.h"],
deps = [
":diffn_util",
":integer",
":integer_base",
":model",
":no_overlap_2d_helper",
":scheduling_helpers",
":synchronization",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "cp_model_copy",
srcs = ["cp_model_copy.cc"],
hdrs = ["cp_model_copy.h"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":presolve_context",
":sat_parameters_cc_proto",
"//ortools/base:logging",
"//ortools/base:protobuf_util",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_test(
name = "cp_model_copy_test",
srcs = ["cp_model_copy_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_copy",
":model",
":presolve_context",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/base:protobuf_util",
"//ortools/linear_solver:linear_solver_cc_proto",
],
)
cc_library(
name = "primary_variables",
srcs = ["primary_variables.cc"],
hdrs = ["primary_variables.h"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
"//ortools/util:bitset",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "primary_variables_test",
srcs = ["primary_variables_test.cc"],
deps = [
":primary_variables",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
],
)
cc_library(
name = "old_precedences_propagator",
srcs = ["old_precedences_propagator.cc"],
hdrs = ["old_precedences_propagator.h"],
deps = [
":integer",
":integer_base",
":model",
":precedences",
":sat_base",
":sat_solver",
":synchronization",
"//ortools/base:logging",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/util:bitset",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "container",
hdrs = ["container.h"],
deps = [
":sat_base",
"//ortools/base:stl_util",
"@abseil-cpp//absl/base",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "container_test",
srcs = ["container_test.cc"],
deps = [
":container",
":sat_base",
"//ortools/base:gmock_main",
],
)
cc_proto_library(
name = "cp_model_cc_proto",
visibility = ["//visibility:public"],
deps = [":cp_model_proto"],
)
py_proto_library(
name = "cp_model_py_pb2",
visibility = ["//visibility:public"],
deps = [":cp_model_proto"],
)
java_proto_library(
name = "cp_model_java_proto",
visibility = ["//visibility:public"],
deps = [":cp_model_proto"],
)
go_proto_library(
name = "cp_model_go_proto",
importpath = "github.com/google/or-tools/ortools/sat/proto/cpmodel",
protos = [":cp_model_proto"],
visibility = ["//visibility:public"],
)
cc_library(
name = "cp_model_utils",
srcs = ["cp_model_utils.cc"],
hdrs = ["cp_model_utils.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_cc_proto",
":drat_proof_handler",
":sat_base",
"//ortools/base:file",
"//ortools/base:hash",
"//ortools/base:stl_util",
"//ortools/util:bitset",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_test(
name = "cp_model_utils_test",
size = "small",
srcs = ["cp_model_utils_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/base:stl_util",
"//ortools/port:proto_utils",
"@abseil-cpp//absl/container:flat_hash_set",
],
)
cc_library(
name = "synchronization",
srcs = ["synchronization.cc"],
hdrs = ["synchronization.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":integer_base",
":model",
":sat_base",
":sat_parameters_cc_proto",
":symmetry_util",
":util",
"//ortools/algorithms:sparse_permutation",
"//ortools/base",
"//ortools/base:status_macros",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/base:timer",
"//ortools/util:bitset",
"//ortools/util:logging",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/hash",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "synchronization_test",
size = "small",
srcs = ["synchronization_test.cc"],
deps = [
":cp_model_cc_proto",
":integer_base",
":model",
":synchronization",
":util",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:random_engine",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "cp_model_checker",
srcs = ["cp_model_checker.cc"],
hdrs = ["cp_model_checker.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":diffn_util",
":primary_variables",
":sat_parameters_cc_proto",
"//ortools/base",
"//ortools/port:proto_utils",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cp_model_checker_test",
size = "small",
srcs = ["cp_model_checker_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "constraint_violation",
srcs = ["constraint_violation.cc"],
hdrs = ["constraint_violation.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":sat_parameters_cc_proto",
":util",
"//ortools/base:mathutil",
"//ortools/base:stl_util",
"//ortools/graph:strongly_connected_components",
"//ortools/util:bitset",
"//ortools/util:dense_set",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "constraint_violation_test",
size = "small",
srcs = ["constraint_violation_test.cc"],
deps = [
":constraint_violation",
":cp_model_cc_proto",
":cp_model_utils",
"//ortools/base:dump_vars",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"//ortools/base:parse_test_proto",
"//ortools/util:sorted_interval_list",
"//ortools/util:time_limit",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "feasibility_jump",
srcs = ["feasibility_jump.cc"],
hdrs = ["feasibility_jump.h"],
visibility = ["//visibility:public"],
deps = [
":combine_solutions",
":constraint_violation",
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_utils",
":integer_base",
":linear_model",
":restart",
":sat_parameters_cc_proto",
":stat_tables",
":subsolver",
":synchronization",
":util",
"//ortools/algorithms:binary_search",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/functional:any_invocable",
"@abseil-cpp//absl/functional:bind_front",
"@abseil-cpp//absl/functional:function_ref",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "feasibility_jump_test",
srcs = ["feasibility_jump_test.cc"],
deps = [
":feasibility_jump",
"//ortools/base:gmock_main",
],
)
cc_library(
name = "linear_model",
srcs = ["linear_model.cc"],
hdrs = ["linear_model.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
],
)
cc_test(
name = "linear_model_test",
size = "small",
srcs = ["linear_model_test.cc"],
deps = [
":cp_model_cc_proto",
":linear_model",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
],
)
cc_library(
name = "parameters_validation",
srcs = ["parameters_validation.cc"],
hdrs = ["parameters_validation.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_search",
":sat_parameters_cc_proto",
"@abseil-cpp//absl/strings",
],
)
cc_test(
name = "parameters_validation_test",
size = "small",
srcs = ["parameters_validation_test.cc"],
deps = [
":parameters_validation",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"@protobuf",
],
)
cc_library(
name = "cp_model_search",
srcs = ["cp_model_search.cc"],
hdrs = ["cp_model_search.h"],
deps = [
":cp_model_cc_proto",
":cp_model_mapping",
":cp_model_utils",
":integer",
":integer_base",
":integer_search",
":linear_propagation",
":model",
":sat_base",
":sat_parameters_cc_proto",
":util",
"//ortools/base",
"//ortools/base:stl_util",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cp_model_search_test",
size = "small",
srcs = ["cp_model_search_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_solver",
":model",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:stats",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/strings",
],
)
cc_library(
name = "cp_model_solver_helpers",
srcs = ["cp_model_solver_helpers.cc"],
hdrs = ["cp_model_solver_helpers.h"],
visibility = ["//visibility:public"],
deps = [
":circuit",
":clause",
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_loader",
":cp_model_mapping",
":cp_model_postsolve",
":cp_model_presolve",
":cp_model_search",
":cp_model_symmetries",
":cp_model_utils",
":cuts",
":feasibility_jump",
":feasibility_pump",
":implied_bounds",
":integer",
":integer_base",
":integer_expr",
":integer_search",
":intervals",
":lb_tree_search",
":linear_constraint",
":linear_constraint_manager",
":linear_model",
":linear_programming_constraint",
":linear_relaxation",
":lp_utils",
":max_hs",
":model",
":optimization",
":parameters_validation",
":precedences",
":presolve_context",
":probing",
":rins",
":sat_base",
":sat_inprocessing",
":sat_parameters_cc_proto",
":sat_solver",
":simplification",
":stat_tables",
":subsolver",
":symmetry_util",
":synchronization",
":util",
":work_assignment",
"//ortools/algorithms:sparse_permutation",
"//ortools/base",
"//ortools/base:status_macros",
"//ortools/base:strong_vector",
"//ortools/base:threadpool",
"//ortools/base:timer",
"//ortools/base:types",
"//ortools/graph:connected_components",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/port:proto_utils",
"//ortools/util:logging",
"//ortools/util:random_engine",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_library(
name = "shaving_solver",
srcs = ["shaving_solver.cc"],
hdrs = ["shaving_solver.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_cc_proto",
":cp_model_copy",
":cp_model_lns",
":cp_model_presolve",
":cp_model_solver_helpers",
":cp_model_utils",
":integer_base",
":model",
":presolve_context",
":sat_parameters_cc_proto",
":subsolver",
":synchronization",
":util",
"//ortools/graph:connected_components",
"//ortools/util:sorted_interval_list",
"//ortools/util:time_limit",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/synchronization",
],
)
cc_library(
name = "cp_model_solver",
srcs = ["cp_model_solver.cc"],
hdrs = ["cp_model_solver.h"],
visibility = ["//visibility:public"],
deps = [
":circuit",
":clause",
":combine_solutions",
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_copy",
":cp_model_lns",
":cp_model_loader",
":cp_model_mapping",
":cp_model_postsolve",
":cp_model_presolve",
":cp_model_search",
":cp_model_solver_helpers",
":cp_model_symmetries",
":cp_model_utils",
":cuts",
":diffn_util",
":drat_checker",
":drat_proof_handler",
":feasibility_jump",
":feasibility_pump",
":implied_bounds",
":integer",
":integer_base",
":integer_expr",
":integer_search",
":intervals",
":lb_tree_search",
":linear_constraint",
":linear_model",
":linear_programming_constraint",
":linear_relaxation",
":lp_utils",
":max_hs",
":model",
":optimization",
":parameters_validation",
":precedences",
":presolve_context",
":primary_variables",
":probing",
":rins",
":routing_cuts",
":sat_base",
":sat_inprocessing",
":sat_parameters_cc_proto",
":sat_solver",
":shaving_solver",
":simplification",
":stat_tables",
":subsolver",
":synchronization",
":util",
":work_assignment",
"//ortools/base",
"//ortools/base:file",
"//ortools/base:status_macros",
"//ortools/base:strong_vector",
"//ortools/base:threadpool",
"//ortools/base:timer",
"//ortools/base:types",
"//ortools/graph:connected_components",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/port:os",
"//ortools/port:proto_utils",
"//ortools/util:logging",
"//ortools/util:random_engine",
"//ortools/util:sigint",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_test(
name = "cp_model_solver_test",
size = "medium",
srcs = ["cp_model_solver_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_solver",
":cp_model_solver_helpers",
":cp_model_test_utils",
":cp_model_utils",
":drat_checker",
":drat_proof_handler",
":lp_utils",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":synchronization",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/port:os",
"//ortools/util:logging",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/strings",
],
)
cc_library(
name = "cp_model_mapping",
hdrs = ["cp_model_mapping.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":integer_base",
":linear_constraint",
":model",
":sat_base",
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
],
)
cc_library(
name = "cp_model_loader",
srcs = ["cp_model_loader.cc"],
hdrs = ["cp_model_loader.h"],
visibility = ["//visibility:public"],
deps = [
":2d_distances_propagator",
":all_different",
":circuit",
":clause",
":cp_constraints",
":cp_model_cc_proto",
":cp_model_mapping",
":cp_model_utils",
":cumulative",
":diffn",
":disjunctive",
":implied_bounds",
":integer",
":integer_base",
":integer_expr",
":intervals",
":linear_constraint",
":linear_relaxation",
":model",
":pb_constraint",
":precedences",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":symmetry",
":table",
":timetable",
":util",
"//ortools/algorithms:sparse_permutation",
"//ortools/base",
"//ortools/base:mathutil",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/base:types",
"//ortools/util:logging",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "cp_model_test_utils",
srcs = ["cp_model_test_utils.cc"],
hdrs = ["cp_model_test_utils.h"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
"@abseil-cpp//absl/random",
],
)
proto_library(
name = "boolean_problem_proto",
srcs = ["boolean_problem.proto"],
)
cc_proto_library(
name = "boolean_problem_cc_proto",
visibility = [
"//ortools/bop:__pkg__",
"//visibility:public",
],
deps = [":boolean_problem_proto"],
)
cc_library(
name = "presolve_util",
srcs = ["presolve_util.cc"],
hdrs = ["presolve_util.h"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":util",
"//ortools/base:strong_vector",
"//ortools/base:timer",
"//ortools/util:bitset",
"//ortools/util:logging",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "presolve_util_test",
size = "small",
srcs = ["presolve_util_test.cc"],
deps = [
":cp_model",
":cp_model_cc_proto",
":cp_model_solver",
":cp_model_utils",
":presolve_util",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "presolve_context",
srcs = ["presolve_context.cc"],
hdrs = ["presolve_context.h"],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_loader",
":cp_model_mapping",
":cp_model_utils",
":integer",
":lp_utils",
":model",
":presolve_util",
":sat_parameters_cc_proto",
":sat_solver",
":solution_crush",
":util",
"//ortools/base:logging",
"//ortools/port:proto_utils",
"//ortools/util:affine_relation",
"//ortools/util:bitset",
"//ortools/util:logging",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:time_limit",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "presolve_context_test",
size = "small",
srcs = ["presolve_context_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":model",
":presolve_context",
":solution_crush",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:affine_relation",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "solution_crush",
srcs = [
"solution_crush.cc",
],
hdrs = ["solution_crush.h"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":diffn_util",
":sat_parameters_cc_proto",
":symmetry_util",
":util",
"//ortools/algorithms:sparse_permutation",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "cp_model_table",
srcs = ["cp_model_table.cc"],
hdrs = ["cp_model_table.h"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":presolve_context",
"//ortools/base:stl_util",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cp_model_table_test",
size = "small",
srcs = ["cp_model_table_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_table",
":model",
":presolve_context",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "cp_model_presolve",
srcs = [
"cp_model_presolve.cc",
],
hdrs = ["cp_model_presolve.h"],
deps = [
":2d_rectangle_presolve",
":circuit",
":clause",
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_expand",
":cp_model_mapping",
":cp_model_symmetries",
":cp_model_table",
":cp_model_utils",
":diffn_util",
":diophantine",
":inclusion",
":integer",
":integer_base",
":model",
":precedences",
":presolve_context",
":presolve_util",
":probing",
":sat_base",
":sat_inprocessing",
":sat_parameters_cc_proto",
":sat_solver",
":simplification",
":solution_crush",
":util",
":var_domination",
"//ortools/base",
"//ortools/base:mathutil",
"//ortools/base:protobuf_util",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/base:timer",
"//ortools/graph:strongly_connected_components",
"//ortools/graph:topologicalsorter",
"//ortools/port:proto_utils",
"//ortools/util:affine_relation",
"//ortools/util:bitset",
"//ortools/util:logging",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/hash",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_test(
name = "cp_model_presolve_test",
size = "small",
srcs = ["cp_model_presolve_test.cc"],
tags = ["noautofuzz"],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_presolve",
":cp_model_solver",
":cp_model_utils",
":lp_utils",
":model",
":presolve_context",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/lp_data",
"//ortools/lp_data:lp_parser",
"//ortools/lp_data:proto_utils",
"//ortools/port:proto_utils",
"//ortools/util:logging",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
],
)
cc_test(
name = "cp_model_presolve_random_test",
size = "medium",
srcs = ["cp_model_presolve_random_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_solver",
":cp_model_utils",
":sat_parameters_cc_proto",
"//ortools/base:file",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"//ortools/base:path",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
],
)
cc_library(
name = "cp_model_postsolve",
srcs = [
"cp_model_postsolve.cc",
],
hdrs = ["cp_model_postsolve.h"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
"//ortools/base",
"//ortools/port:proto_utils",
"//ortools/util:logging",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/base:log_severity",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cp_model_postsolve_test",
size = "small",
srcs = ["cp_model_postsolve_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_postsolve",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:logging",
"//ortools/util:sorted_interval_list",
],
)
cc_library(
name = "cp_model_expand",
srcs = ["cp_model_expand.cc"],
hdrs = ["cp_model_expand.h"],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_table",
":cp_model_utils",
":presolve_context",
":sat_parameters_cc_proto",
":solution_crush",
":util",
"//ortools/base:logging",
"//ortools/base:stl_util",
"//ortools/port:proto_utils",
"//ortools/util:logging",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_test(
name = "cp_model_expand_test",
size = "small",
srcs = ["cp_model_expand_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_expand",
":cp_model_solver",
":cp_model_utils",
":model",
":presolve_context",
":sat_parameters_cc_proto",
"//ortools/base",
"//ortools/base:container_logging",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/base:parse_text_proto",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/strings",
],
)
cc_library(
name = "sat_base",
hdrs = ["sat_base.h"],
deps = [
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/util:bitset",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "sat_base_test",
size = "small",
srcs = ["sat_base_test.cc"],
deps = [
":sat_base",
"//ortools/base:gmock_main",
],
)
# Enable a warning to check for floating point to integer conversions.
# In GCC-4.8, this was "-Wreal-conversion", but was removed in 4.9
# In Clang, this warning is "-Wfloat-conversion"
W_FLOAT_CONVERSION = "-Wfloat-conversion"
cc_library(
name = "sat_solver",
srcs = [
"sat_solver.cc",
],
hdrs = ["sat_solver.h"],
deps = [
":clause",
":drat_proof_handler",
":enforcement",
":model",
":pb_constraint",
":restart",
":sat_base",
":sat_decision",
":sat_parameters_cc_proto",
":util",
"//ortools/base",
"//ortools/base:stl_util",
"//ortools/base:timer",
"//ortools/port:proto_utils",
"//ortools/port:sysinfo",
"//ortools/util:bitset",
"//ortools/util:logging",
"//ortools/util:saturated_arithmetic",
"//ortools/util:stats",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "restart",
srcs = ["restart.cc"],
hdrs = ["restart.h"],
deps = [
":model",
":sat_decision",
":sat_parameters_cc_proto",
"//ortools/base:logging",
"//ortools/port:proto_utils",
"//ortools/util:bitset",
"//ortools/util:running_stat",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
],
)
cc_test(
name = "restart_test",
size = "small",
srcs = ["restart_test.cc"],
deps = [
":model",
":restart",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/base:core_headers",
],
)
cc_library(
name = "probing",
srcs = ["probing.cc"],
hdrs = ["probing.h"],
deps = [
":clause",
":implied_bounds",
":integer",
":integer_base",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":util",
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/base:timer",
"//ortools/util:bitset",
"//ortools/util:logging",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "probing_test",
size = "small",
srcs = ["probing_test.cc"],
deps = [
":integer",
":integer_base",
":model",
":probing",
":sat_base",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "sat_inprocessing",
srcs = ["sat_inprocessing.cc"],
hdrs = ["sat_inprocessing.h"],
deps = [
":clause",
":drat_checker",
":linear_programming_constraint",
":model",
":probing",
":sat_base",
":sat_decision",
":sat_parameters_cc_proto",
":sat_solver",
":util",
"//ortools/base",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/base:timer",
"//ortools/util:bitset",
"//ortools/util:integer_pq",
"//ortools/util:logging",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "sat_inprocessing_test",
size = "small",
srcs = ["sat_inprocessing_test.cc"],
deps = [
":clause",
":model",
":sat_base",
":sat_inprocessing",
":sat_solver",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "sat_decision",
srcs = ["sat_decision.cc"],
hdrs = ["sat_decision.h"],
deps = [
":model",
":sat_base",
":sat_parameters_cc_proto",
":synchronization",
":util",
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/util:bitset",
"//ortools/util:integer_pq",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "sat_decision_test",
size = "small",
srcs = ["sat_decision_test.cc"],
deps = [
":model",
":sat_base",
":sat_decision",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/random",
],
)
cc_library(
name = "clause",
srcs = ["clause.cc"],
hdrs = ["clause.h"],
deps = [
":container",
":drat_proof_handler",
":inclusion",
":model",
":sat_base",
":sat_parameters_cc_proto",
":util",
"//ortools/base",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/base:timer",
"//ortools/graph:cliques",
"//ortools/graph:strongly_connected_components",
"//ortools/util:bitset",
"//ortools/util:stats",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/functional:any_invocable",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "clause_test",
size = "small",
srcs = ["clause_test.cc"],
deps = [
":clause",
":model",
":sat_base",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "simplification",
srcs = ["simplification.cc"],
hdrs = ["simplification.h"],
deps = [
":drat_proof_handler",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":util",
"//ortools/algorithms:dynamic_partition",
"//ortools/base",
"//ortools/base:adjustable_priority_queue",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/base:timer",
"//ortools/graph:strongly_connected_components",
"//ortools/util:logging",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "pb_constraint",
srcs = ["pb_constraint.cc"],
hdrs = ["pb_constraint.h"],
deps = [
":enforcement",
":model",
":sat_base",
":sat_parameters_cc_proto",
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/util:bitset",
"//ortools/util:saturated_arithmetic",
"//ortools/util:stats",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/hash",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "pb_constraint_test",
size = "small",
srcs = ["pb_constraint_test.cc"],
deps = [
":enforcement",
":model",
":pb_constraint",
":sat_base",
"//ortools/base:gmock_main",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "symmetry",
srcs = ["symmetry.cc"],
hdrs = ["symmetry.h"],
deps = [
":sat_base",
"//ortools/algorithms:sparse_permutation",
"//ortools/base:strong_vector",
"//ortools/util:stats",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "symmetry_test",
size = "small",
srcs = ["symmetry_test.cc"],
deps = [
":sat_base",
":symmetry",
"//ortools/algorithms:sparse_permutation",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "symmetry_util",
srcs = ["symmetry_util.cc"],
hdrs = ["symmetry_util.h"],
deps = [
":cp_model_cc_proto",
"//ortools/algorithms:dynamic_partition",
"//ortools/algorithms:sparse_permutation",
"//ortools/base",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "symmetry_util_test",
size = "small",
srcs = ["symmetry_util_test.cc"],
deps = [
":symmetry_util",
"//ortools/algorithms:sparse_permutation",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "var_domination",
srcs = ["var_domination.cc"],
hdrs = ["var_domination.h"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
":integer_base",
":presolve_context",
":presolve_util",
":solution_crush",
":util",
"//ortools/algorithms:dynamic_partition",
"//ortools/base:hash",
"//ortools/base:logging",
"//ortools/base:mathutil",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/util:affine_relation",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "var_domination_test",
size = "small",
srcs = ["var_domination_test.cc"],
deps = [
":cp_model_cc_proto",
":integer_base",
":model",
":presolve_context",
":var_domination",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:sorted_interval_list",
],
)
cc_library(
name = "integer_base",
srcs = ["integer_base.cc"],
hdrs = ["integer_base.h"],
visibility = ["//visibility:public"],
deps = [
":sat_base",
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/util:bitset",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "integer_base_test",
size = "small",
srcs = ["integer_base_test.cc"],
deps = [
":integer_base",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/log:check",
],
)
cc_library(
name = "integer",
srcs = ["integer.cc"],
hdrs = ["integer.h"],
visibility = ["//visibility:public"],
deps = [
":integer_base",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/util:bitset",
"//ortools/util:rev",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "integer_search",
srcs = ["integer_search.cc"],
hdrs = ["integer_search.h"],
deps = [
":clause",
":cp_model_cc_proto",
":cp_model_mapping",
":implied_bounds",
":integer",
":integer_base",
":intervals",
":linear_constraint_manager",
":linear_programming_constraint",
":model",
":probing",
":pseudo_costs",
":restart",
":rins",
":sat_base",
":sat_decision",
":sat_inprocessing",
":sat_parameters_cc_proto",
":sat_solver",
":scheduling_helpers",
":synchronization",
":util",
"//ortools/base:logging",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "integer_search_test",
size = "small",
srcs = ["integer_search_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_mapping",
":cp_model_solver",
":integer",
":integer_base",
":integer_search",
":model",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"//ortools/util:random_engine",
"@abseil-cpp//absl/container:flat_hash_set",
],
)
cc_library(
name = "lb_tree_search",
srcs = ["lb_tree_search.cc"],
hdrs = ["lb_tree_search.h"],
deps = [
":cp_model_mapping",
":integer",
":integer_base",
":integer_expr",
":integer_search",
":linear_programming_constraint",
":model",
":pseudo_costs",
":sat_base",
":sat_decision",
":sat_parameters_cc_proto",
":sat_solver",
":synchronization",
":util",
"//ortools/base:logging",
"//ortools/base:strong_vector",
"//ortools/glop:variables_info",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "lb_tree_search_test",
size = "small",
srcs = ["lb_tree_search_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_solver",
":cp_model_test_utils",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
],
)
cc_library(
name = "pseudo_costs",
srcs = ["pseudo_costs.cc"],
hdrs = ["pseudo_costs.h"],
deps = [
":cp_model_mapping",
":integer",
":integer_base",
":linear_constraint_manager",
":linear_programming_constraint",
":model",
":sat_base",
":sat_parameters_cc_proto",
":util",
"//ortools/base:logging",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "pseudo_costs_test",
size = "small",
srcs = ["pseudo_costs_test.cc"],
deps = [
":cp_model_mapping",
":integer",
":integer_base",
":model",
":pseudo_costs",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/util:strong_integers",
],
)
cc_library(
name = "intervals",
srcs = ["intervals.cc"],
hdrs = ["intervals.h"],
deps = [
":clause",
":integer",
":integer_base",
":integer_expr",
":linear_constraint",
":model",
":no_overlap_2d_helper",
":precedences",
":sat_base",
":sat_solver",
":scheduling_helpers",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "intervals_test",
size = "small",
srcs = ["intervals_test.cc"],
deps = [
":integer",
":integer_base",
":intervals",
":model",
":sat_base",
"//ortools/base:gmock_main",
],
)
cc_library(
name = "scheduling_helpers",
srcs = ["scheduling_helpers.cc"],
hdrs = ["scheduling_helpers.h"],
deps = [
":enforcement",
":enforcement_helper",
":implied_bounds",
":integer",
":integer_base",
":integer_expr",
":linear_constraint",
":model",
":precedences",
":sat_base",
":sat_solver",
"//ortools/base:logging",
"//ortools/util:bitset",
"//ortools/util:sort",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "no_overlap_2d_helper",
srcs = ["no_overlap_2d_helper.cc"],
hdrs = ["no_overlap_2d_helper.h"],
deps = [
":2d_rectangle_presolve",
":diffn_util",
":enforcement",
":enforcement_helper",
":integer",
":integer_base",
":model",
":sat_base",
":scheduling_helpers",
":util",
"@abseil-cpp//absl/base:log_severity",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "scheduling_helpers_test",
size = "small",
srcs = ["scheduling_helpers_test.cc"],
deps = [
":integer",
":integer_base",
":intervals",
":linear_constraint",
":model",
":sat_base",
":sat_solver",
":scheduling_helpers",
"//ortools/base:gmock_main",
],
)
cc_library(
name = "precedences",
srcs = ["precedences.cc"],
hdrs = ["precedences.h"],
visibility = ["//visibility:public"],
deps = [
":clause",
":cp_constraints",
":cp_model_mapping",
":integer",
":integer_base",
":model",
":sat_base",
":sat_solver",
":synchronization",
":util",
"//ortools/base",
"//ortools/base:mathutil",
"//ortools/base:strong_vector",
"//ortools/graph:topologicalsorter",
"//ortools/util:logging",
"//ortools/util:rev",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "precedences_test",
size = "small",
srcs = ["precedences_test.cc"],
deps = [
":cp_model_mapping",
":cp_model_solver_helpers",
":integer",
":integer_base",
":integer_search",
":model",
":precedences",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "integer_test",
size = "small",
srcs = ["integer_test.cc"],
deps = [
":integer",
":integer_base",
":integer_search",
":model",
":sat_base",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
"@google_benchmark//:benchmark",
],
)
cc_library(
name = "integer_expr",
srcs = ["integer_expr.cc"],
hdrs = ["integer_expr.h"],
visibility = ["//visibility:public"],
deps = [
":cp_constraints",
":enforcement",
":enforcement_helper",
":integer",
":integer_base",
":linear_constraint",
":linear_propagation",
":model",
":old_precedences_propagator",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":util",
"//ortools/base",
"//ortools/base:mathutil",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "integer_expr_test",
size = "medium",
srcs = ["integer_expr_test.cc"],
deps = [
"cp_model_checker",
"cp_model_solver",
":cp_model_cc_proto",
":cp_model_utils",
":integer",
":integer_base",
":integer_expr",
":linear_constraint",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"//ortools/base:parse_test_proto",
"//ortools/base:parse_text_proto",
"//ortools/port:proto_utils",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "linear_propagation",
srcs = ["linear_propagation.cc"],
hdrs = ["linear_propagation.h"],
deps = [
":enforcement",
":enforcement_helper",
":integer",
":integer_base",
":model",
":precedences",
":sat_base",
":synchronization",
":util",
"//ortools/base:strong_vector",
"//ortools/util:bitset",
"//ortools/util:rev",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/base:log_severity",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "linear_propagation_test",
size = "small",
srcs = ["linear_propagation_test.cc"],
deps = [
":integer",
":integer_base",
":linear_propagation",
":model",
":sat_base",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "all_different",
srcs = ["all_different.cc"],
hdrs = ["all_different.h"],
deps = [
":enforcement",
":enforcement_helper",
":integer",
":integer_base",
":model",
":sat_base",
":sat_solver",
":util",
"//ortools/base",
"//ortools/graph:strongly_connected_components",
"//ortools/util:bitset",
"//ortools/util:sort",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "all_different_test",
srcs = ["all_different_test.cc"],
deps = [
":all_different",
":integer",
":integer_base",
":integer_search",
":model",
":sat_base",
":sat_solver",
"//ortools/base",
"//ortools/base:gmock_main",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "disjunctive",
srcs = ["disjunctive.cc"],
hdrs = ["disjunctive.h"],
deps = [
":all_different",
":integer",
":integer_base",
":intervals",
":linear_propagation",
":model",
":precedences",
":sat_base",
":sat_parameters_cc_proto",
":scheduling_helpers",
":synchronization",
":timetable",
":util",
"//ortools/util:scheduling",
"//ortools/util:sort",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:log_severity",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "disjunctive_test",
size = "small",
srcs = ["disjunctive_test.cc"],
deps = [
":disjunctive",
":integer",
":integer_base",
":integer_expr",
":integer_search",
":intervals",
":model",
":precedences",
":sat_base",
":sat_solver",
"//ortools/base",
"//ortools/base:gmock_main",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "timetable",
srcs = ["timetable.cc"],
hdrs = ["timetable.h"],
deps = [
":enforcement",
":enforcement_helper",
":integer",
":integer_base",
":model",
":sat_base",
":scheduling_helpers",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "timetable_test",
size = "medium",
srcs = ["timetable_test.cc"],
deps = [
":all_different",
":cumulative",
":integer",
":integer_base",
":integer_search",
":intervals",
":model",
":precedences",
":sat_base",
":sat_solver",
":scheduling_helpers",
":timetable",
"//ortools/base",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "timetable_edgefinding",
srcs = ["timetable_edgefinding.cc"],
hdrs = ["timetable_edgefinding.h"],
deps = [
":integer",
":integer_base",
":intervals",
":model",
":scheduling_helpers",
"//ortools/base:iterator_adaptors",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
],
)
cc_library(
name = "cumulative",
srcs = ["cumulative.cc"],
hdrs = ["cumulative.h"],
deps = [
":cumulative_energy",
":disjunctive",
":integer",
":integer_base",
":integer_expr",
":intervals",
":linear_constraint",
":model",
":pb_constraint",
":precedences",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":scheduling_helpers",
":timetable",
":timetable_edgefinding",
"//ortools/base",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cumulative_test",
size = "large",
srcs = ["cumulative_test.cc"],
deps = [
":cumulative",
":integer",
":integer_base",
":integer_search",
":intervals",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/strings",
],
)
cc_library(
name = "cumulative_energy",
srcs = ["cumulative_energy.cc"],
hdrs = ["cumulative_energy.h"],
deps = [
":2d_orthogonal_packing",
":diffn_util",
":integer",
":integer_base",
":model",
":scheduling_helpers",
":synchronization",
":util",
"//ortools/base:iterator_adaptors",
"//ortools/util:scheduling",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cumulative_energy_test",
size = "medium",
srcs = ["cumulative_energy_test.cc"],
deps = [
":2d_orthogonal_packing_testing",
":cp_model_solver",
":cumulative",
":cumulative_energy",
":diffn_util",
":integer",
":integer_base",
":integer_search",
":intervals",
":linear_constraint",
":model",
":precedences",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":scheduling_helpers",
"//ortools/base",
"//ortools/base:gmock_main",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "boolean_problem",
srcs = ["boolean_problem.cc"],
hdrs = ["boolean_problem.h"],
deps = [
":boolean_problem_cc_proto",
":cp_model_cc_proto",
":pb_constraint",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":simplification",
"//ortools/algorithms:find_graph_symmetries",
"//ortools/algorithms:sparse_permutation",
"//ortools/base",
"//ortools/base:hash",
"//ortools/base:status_macros",
"//ortools/base:strong_vector",
"//ortools/graph",
"//ortools/graph:io",
"//ortools/graph:util",
"//ortools/port:proto_utils",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "linear_relaxation",
srcs = ["linear_relaxation.cc"],
hdrs = ["linear_relaxation.h"],
deps = [
":circuit",
":clause",
":cp_model_cc_proto",
":cp_model_mapping",
":cp_model_utils",
":cuts",
":diffn_cuts",
":diffn_util",
":implied_bounds",
":integer",
":integer_base",
":integer_expr",
":intervals",
":linear_constraint",
":linear_constraint_manager",
":model",
":no_overlap_2d_helper",
":precedences",
":presolve_util",
":routing_cuts",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":scheduling_cuts",
":scheduling_helpers",
":util",
"//ortools/base:logging",
"//ortools/base:mathutil",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/util:logging",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_test(
name = "linear_relaxation_test",
srcs = ["linear_relaxation_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_loader",
":cp_model_mapping",
":integer",
":integer_base",
":intervals",
":linear_constraint",
":linear_relaxation",
":model",
":sat_base",
":scheduling_helpers",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "linear_constraint",
srcs = ["linear_constraint.cc"],
hdrs = ["linear_constraint.h"],
visibility = ["//visibility:public"],
deps = [
":integer",
":integer_base",
":model",
":sat_base",
"//ortools/base:mathutil",
"//ortools/base:strong_vector",
"//ortools/util:saturated_arithmetic",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "linear_constraint_test",
srcs = ["linear_constraint_test.cc"],
deps = [
":integer",
":integer_base",
":linear_constraint",
":model",
":sat_base",
"//ortools/base:gmock_main",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "linear_programming_constraint",
srcs = ["linear_programming_constraint.cc"],
hdrs = ["linear_programming_constraint.h"],
deps = [
":cp_model_cc_proto",
":cp_model_mapping",
":cuts",
":implied_bounds",
":integer",
":integer_base",
":integer_expr",
":linear_constraint",
":linear_constraint_manager",
":linear_propagation",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":synchronization",
":util",
":zero_half_cuts",
"//ortools/algorithms:binary_search",
"//ortools/base",
"//ortools/base:mathutil",
"//ortools/base:strong_vector",
"//ortools/glop:parameters_cc_proto",
"//ortools/glop:revised_simplex",
"//ortools/glop:status",
"//ortools/glop:variables_info",
"//ortools/lp_data:base",
"//ortools/lp_data:lp_data_utils",
"//ortools/lp_data:scattered_vector",
"//ortools/lp_data:sparse",
"//ortools/util:bitset",
"//ortools/util:rev",
"//ortools/util:saturated_arithmetic",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "linear_programming_constraint_test",
srcs = ["linear_programming_constraint_test.cc"],
deps = [
":cp_model_solver",
":integer",
":integer_base",
":integer_search",
":linear_constraint",
":linear_constraint_manager",
":linear_programming_constraint",
":model",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/lp_data:base",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "linear_constraint_manager",
srcs = ["linear_constraint_manager.cc"],
hdrs = ["linear_constraint_manager.h"],
deps = [
":integer",
":integer_base",
":linear_constraint",
":model",
":sat_base",
":sat_parameters_cc_proto",
":synchronization",
":util",
"//ortools/base:hash",
"//ortools/base:logging",
"//ortools/base:strong_vector",
"//ortools/glop:variables_info",
"//ortools/lp_data:base",
"//ortools/util:saturated_arithmetic",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "linear_constraint_manager_test",
srcs = ["linear_constraint_manager_test.cc"],
deps = [
":integer",
":integer_base",
":linear_constraint",
":linear_constraint_manager",
":model",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:strong_vector",
"//ortools/glop:variables_info",
"//ortools/lp_data:base",
"//ortools/util:strong_integers",
],
)
cc_library(
name = "cuts",
srcs = ["cuts.cc"],
hdrs = ["cuts.h"],
deps = [
":clause",
":implied_bounds",
":integer",
":integer_base",
":linear_constraint",
":linear_constraint_manager",
":model",
":sat_base",
":synchronization",
"//ortools/base",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/lp_data:base",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/functional:any_invocable",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cuts_test",
srcs = ["cuts_test.cc"],
deps = [
":cuts",
":implied_bounds",
":integer",
":integer_base",
":linear_constraint",
":linear_constraint_manager",
":model",
":sat_base",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:strong_vector",
"//ortools/util:fp_utils",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
proto_library(
name = "routes_support_graph_proto",
srcs = ["routes_support_graph.proto"],
visibility = ["//visibility:public"],
)
cc_proto_library(
name = "routes_support_graph_cc_proto",
visibility = ["//visibility:public"],
deps = [":routes_support_graph_proto"],
)
cc_library(
name = "routing_cuts",
srcs = ["routing_cuts.cc"],
hdrs = ["routing_cuts.h"],
deps = [
":clause",
":cp_model_cc_proto",
":cp_model_utils",
":cuts",
":integer",
":integer_base",
":linear_constraint",
":linear_constraint_manager",
":model",
":precedences",
":routes_support_graph_cc_proto",
":sat_base",
":sat_parameters_cc_proto",
":synchronization",
":util",
"//ortools/base",
"//ortools/base:mathutil",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/graph",
"//ortools/graph:connected_components",
"//ortools/graph:max_flow",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/numeric:bits",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "routing_cuts_test",
srcs = ["routing_cuts_test.cc"],
deps = [
":clause",
":cp_model",
":cuts",
":integer",
":integer_base",
":linear_constraint",
":linear_constraint_manager",
":model",
":precedences",
":routing_cuts",
":sat_base",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/base:strong_vector",
"//ortools/graph:max_flow",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "scheduling_cuts",
srcs = ["scheduling_cuts.cc"],
hdrs = ["scheduling_cuts.h"],
deps = [
":cuts",
":integer",
":integer_base",
":intervals",
":linear_constraint",
":linear_constraint_manager",
":model",
":precedences",
":sat_base",
":sat_solver",
":scheduling_helpers",
":util",
"//ortools/base",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "scheduling_cuts_test",
srcs = ["scheduling_cuts_test.cc"],
deps = [
":cp_model",
":cp_model_cc_proto",
":cp_model_solver",
":cuts",
":integer",
":integer_base",
":intervals",
":linear_constraint",
":linear_constraint_manager",
":model",
":sat_base",
":scheduling_cuts",
":scheduling_helpers",
"//ortools/base:gmock_main",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/base:log_severity",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "diffn_cuts",
srcs = ["diffn_cuts.cc"],
hdrs = ["diffn_cuts.h"],
deps = [
":cuts",
":diffn_util",
":implied_bounds",
":integer",
":integer_base",
":intervals",
":linear_constraint",
":linear_constraint_manager",
":model",
":no_overlap_2d_helper",
":sat_base",
":scheduling_helpers",
":util",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "zero_half_cuts",
srcs = ["zero_half_cuts.cc"],
hdrs = ["zero_half_cuts.h"],
deps = [
":integer_base",
":util",
"//ortools/base:logging",
"//ortools/lp_data:base",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "zero_half_cuts_test",
srcs = ["zero_half_cuts_test.cc"],
deps = [
":integer_base",
":zero_half_cuts",
"//ortools/base:gmock_main",
"//ortools/lp_data:base",
],
)
cc_library(
name = "lp_utils",
srcs = ["lp_utils.cc"],
hdrs = ["lp_utils.h"],
deps = [
":boolean_problem",
":boolean_problem_cc_proto",
":cp_model_cc_proto",
":cp_model_utils",
":integer_base",
":sat_parameters_cc_proto",
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/glop:lp_solver",
"//ortools/glop:parameters_cc_proto",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/lp_data",
"//ortools/lp_data:base",
"//ortools/port:proto_utils",
"//ortools/util:fp_utils",
"//ortools/util:logging",
"//ortools/util:saturated_arithmetic",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "optimization",
srcs = ["optimization.cc"],
hdrs = ["optimization.h"],
deps = [
":boolean_problem_cc_proto",
":clause",
":encoding",
":integer",
":integer_base",
":integer_expr",
":integer_search",
":model",
":pb_constraint",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":synchronization",
":util",
"//ortools/base",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "max_hs",
srcs = ["max_hs.cc"],
hdrs = ["max_hs.h"],
deps = [
":boolean_problem",
":cp_model_cc_proto",
":cp_model_mapping",
":cp_model_utils",
":encoding",
":integer",
":integer_base",
":integer_expr",
":integer_search",
":linear_constraint",
":linear_relaxation",
":model",
":optimization",
":pb_constraint",
":presolve_util",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":synchronization",
":util",
"//ortools/base",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/base:timer",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/port:proto_utils",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "optimization_test",
srcs = ["optimization_test.cc"],
deps = [
":boolean_problem_cc_proto",
":integer",
":integer_base",
":integer_search",
":model",
":optimization",
":pb_constraint",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base:gmock_main",
],
)
cc_library(
name = "util",
srcs = ["util.cc"],
hdrs = ["util.h"],
deps = [
":model",
":sat_base",
":sat_parameters_cc_proto",
"//ortools/base",
"//ortools/base:logging",
"//ortools/base:mathutil",
"//ortools/base:stl_util",
"//ortools/util:random_engine",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:log_streamer",
"@abseil-cpp//absl/numeric:bits",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_test(
name = "util_test",
srcs = ["util_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_solver",
":cp_model_utils",
":sat_base",
":sat_parameters_cc_proto",
":util",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"//ortools/base:mathutil",
"//ortools/base:stl_util",
"//ortools/util:random_engine",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/numeric:bits",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
"@google_benchmark//:benchmark",
],
)
cc_library(
name = "stat_tables",
srcs = ["stat_tables.cc"],
hdrs = ["stat_tables.h"],
deps = [
":cp_model_cc_proto",
":linear_programming_constraint",
":model",
":sat_solver",
":subsolver",
":synchronization",
":util",
"//ortools/lp_data:base",
"//ortools/util:logging",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/synchronization",
],
)
cc_library(
name = "table",
srcs = ["table.cc"],
hdrs = ["table.h"],
deps = [
":model",
":sat_base",
":sat_solver",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "table_test",
srcs = ["table_test.cc"],
deps = [
":cp_model",
":cp_model_cc_proto",
":cp_model_solver",
":integer",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":table",
"//ortools/base:container_logging",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"//ortools/base:parse_test_proto",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "cp_constraints",
srcs = ["cp_constraints.cc"],
hdrs = ["cp_constraints.h"],
visibility = ["//visibility:public"],
deps = [
":enforcement",
":enforcement_helper",
":integer",
":integer_base",
":model",
":sat_base",
"//ortools/base",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cp_constraints_test",
srcs = ["cp_constraints_test.cc"],
deps = [
":cp_constraints",
":integer",
":integer_base",
":integer_search",
":model",
":precedences",
":sat_base",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "enforcement",
srcs = ["enforcement.cc"],
hdrs = ["enforcement.h"],
deps = [
":model",
":sat_base",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/util:rev",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "enforcement_test",
srcs = ["enforcement_test.cc"],
deps = [
":enforcement",
":model",
":sat_base",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "enforcement_helper",
srcs = ["enforcement_helper.cc"],
hdrs = ["enforcement_helper.h"],
deps = [
":enforcement",
":integer",
":integer_base",
":model",
":sat_base",
":sat_solver",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "diffn_util",
srcs = ["diffn_util.cc"],
hdrs = ["diffn_util.h"],
deps = [
":integer_base",
":scheduling_helpers",
":util",
"//ortools/base:logging",
"//ortools/base:stl_util",
"//ortools/base:strong_vector",
"//ortools/graph:connected_components",
"//ortools/graph:strongly_connected_components",
"//ortools/util:fixed_shape_binary_tree",
"//ortools/util:integer_pq",
"//ortools/util:saturated_arithmetic",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:optional",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "2d_orthogonal_packing",
srcs = ["2d_orthogonal_packing.cc"],
hdrs = ["2d_orthogonal_packing.h"],
deps = [
":2d_packing_brute_force",
":integer_base",
":synchronization",
":util",
"//ortools/base:constant_divisor",
"//ortools/util:bitset",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/numeric:bits",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "2d_packing_brute_force",
srcs = ["2d_packing_brute_force.cc"],
hdrs = ["2d_packing_brute_force.h"],
deps = [
":diffn_util",
":integer_base",
":util",
"//ortools/util:bitset",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "2d_packing_brute_force_test",
srcs = ["2d_packing_brute_force_test.cc"],
deps = [
":2d_packing_brute_force",
":cp_model",
":cp_model_solver",
":diffn_util",
":integer_base",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/types:span",
"@google_benchmark//:benchmark",
],
)
cc_library(
name = "2d_rectangle_presolve",
srcs = ["2d_rectangle_presolve.cc"],
hdrs = ["2d_rectangle_presolve.h"],
deps = [
":diffn_util",
":integer_base",
"//ortools/base:stl_util",
"//ortools/graph:minimum_vertex_cover",
"//ortools/graph:strongly_connected_components",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:log_severity",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "2d_rectangle_presolve_test",
srcs = ["2d_rectangle_presolve_test.cc"],
deps = [
":2d_orthogonal_packing_testing",
":2d_rectangle_presolve",
":diffn_util",
":integer_base",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "2d_orthogonal_packing_testing",
testonly = 1,
srcs = ["2d_orthogonal_packing_testing.cc"],
hdrs = ["2d_orthogonal_packing_testing.h"],
deps = [
":diffn_util",
":integer_base",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "2d_orthogonal_packing_test",
srcs = ["2d_orthogonal_packing_test.cc"],
deps = [
":2d_orthogonal_packing",
":2d_orthogonal_packing_testing",
":diffn_util",
":integer_base",
":synchronization",
"//ortools/algorithms:binary_search",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
"@google_benchmark//:benchmark",
],
)
cc_library(
name = "2d_try_edge_propagator",
srcs = ["2d_try_edge_propagator.cc"],
hdrs = ["2d_try_edge_propagator.h"],
deps = [
":diffn_util",
":integer",
":integer_base",
":model",
":no_overlap_2d_helper",
":synchronization",
":util",
"//ortools/base:stl_util",
"//ortools/set_cover:base_types",
"//ortools/set_cover:set_cover_heuristics",
"//ortools/set_cover:set_cover_invariant",
"//ortools/set_cover:set_cover_model",
"//ortools/util:bitset",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "2d_try_edge_propagator_test",
srcs = ["2d_try_edge_propagator_test.cc"],
deps = [
":2d_orthogonal_packing_testing",
":2d_try_edge_propagator",
":diffn_util",
":integer_base",
":intervals",
":model",
":no_overlap_2d_helper",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "diffn_util_test",
size = "small",
srcs = ["diffn_util_test.cc"],
target_compatible_with = select({
"@platforms//os:linux": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
deps = [
":2d_orthogonal_packing_testing",
":diffn_util",
":integer_base",
":util",
"//ortools/base:gmock",
"//ortools/base:logging",
"//ortools/graph:connected_components",
"//ortools/graph:strongly_connected_components",
"//ortools/util:saturated_arithmetic",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
"@fuzztest//fuzztest:fuzztest_gtest_main",
"@google_benchmark//:benchmark",
],
)
cc_library(
name = "diffn",
srcs = ["diffn.cc"],
hdrs = ["diffn.h"],
deps = [
":2d_distances_propagator",
":2d_mandatory_overlap_propagator",
":2d_orthogonal_packing",
":2d_try_edge_propagator",
":clause",
":cumulative_energy",
":diffn_util",
":disjunctive",
":integer",
":integer_base",
":integer_expr",
":intervals",
":model",
":no_overlap_2d_helper",
":pb_constraint",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":scheduling_helpers",
":synchronization",
":timetable",
":util",
"//ortools/util:bitset",
"//ortools/util:saturated_arithmetic",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:inlined_vector",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/numeric:bits",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "diffn_test",
size = "small",
srcs = ["diffn_test.cc"],
deps = [
":cp_model",
":cp_model_cc_proto",
":cp_model_solver",
":diffn",
":diffn_util",
":integer",
":integer_base",
":integer_search",
":intervals",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/base:logging",
"@abseil-cpp//absl/strings",
],
)
cc_library(
name = "circuit",
srcs = ["circuit.cc"],
hdrs = ["circuit.h"],
deps = [
":all_different",
":clause",
":enforcement",
":enforcement_helper",
":integer",
":model",
":pb_constraint",
":sat_base",
":sat_solver",
":util",
"//ortools/base",
"//ortools/graph:strongly_connected_components",
"//ortools/util:rev",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "circuit_test",
srcs = ["circuit_test.cc"],
deps = [
":circuit",
":integer",
":integer_search",
":model",
":sat_base",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/graph:strongly_connected_components",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "encoding",
srcs = ["encoding.cc"],
hdrs = ["encoding.h"],
deps = [
":boolean_problem_cc_proto",
":clause",
":model",
":pb_constraint",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":util",
"//ortools/base",
"//ortools/base:stl_util",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "encoding_test",
srcs = ["encoding_test.cc"],
deps = [
":encoding",
":pb_constraint",
":sat_base",
":sat_solver",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/random:distributions",
],
)
cc_library(
name = "cp_model_lns",
srcs = ["cp_model_lns.cc"],
hdrs = ["cp_model_lns.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_cc_proto",
":cp_model_copy",
":cp_model_mapping",
":cp_model_solver_helpers",
":cp_model_utils",
":diffn_util",
":integer_base",
":linear_constraint_manager",
":model",
":presolve_context",
":rins",
":sat_parameters_cc_proto",
":subsolver",
":synchronization",
":util",
"//ortools/base:stl_util",
"//ortools/graph:connected_components",
"//ortools/util:adaptative_parameter_value",
"//ortools/util:bitset",
"//ortools/util:integer_pq",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/base:log_severity",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "cp_model_lns_test",
size = "small",
srcs = ["cp_model_lns_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_lns",
":cp_model_solver",
":cp_model_solver_helpers",
":cp_model_test_utils",
":cp_model_utils",
":integer_base",
":model",
":sat_parameters_cc_proto",
":synchronization",
":util",
"//ortools/base",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:bitset",
"//ortools/util:random_engine",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "feasibility_pump",
srcs = ["feasibility_pump.cc"],
hdrs = ["feasibility_pump.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_mapping",
":integer",
":integer_base",
":linear_constraint",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":synchronization",
":util",
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/glop:parameters_cc_proto",
"//ortools/glop:revised_simplex",
"//ortools/glop:status",
"//ortools/lp_data",
"//ortools/lp_data:base",
"//ortools/lp_data:lp_data_utils",
"//ortools/lp_data:sparse_column",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/meta:type_traits",
],
)
cc_test(
name = "feasibility_pump_test",
size = "small",
srcs = ["feasibility_pump_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_loader",
":cp_model_mapping",
":feasibility_pump",
":integer",
":integer_base",
":linear_constraint",
":model",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base:gmock_main",
],
)
cc_library(
name = "rins",
srcs = ["rins.cc"],
hdrs = ["rins.h"],
visibility = ["//visibility:public"],
deps = [
":cp_model_mapping",
":integer_base",
":linear_constraint_manager",
":model",
":synchronization",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/random:bit_gen_ref",
"@abseil-cpp//absl/random:distributions",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "rins_test",
size = "small",
srcs = ["rins_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_loader",
":model",
":rins",
":synchronization",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:random_engine",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "subsolver",
srcs = ["subsolver.cc"],
hdrs = ["subsolver.h"],
visibility = ["//visibility:public"],
deps = [
":util",
"//ortools/base",
"//ortools/base:threadpool",
"//ortools/base:timer",
"//ortools/base:types",
"//ortools/util:stats",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "subsolver_test",
size = "small",
srcs = ["subsolver_test.cc"],
deps = [
":model",
":subsolver",
":util",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/synchronization",
],
)
cc_library(
name = "drat_proof_handler",
srcs = ["drat_proof_handler.cc"],
hdrs = ["drat_proof_handler.h"],
deps = [
":drat_checker",
":drat_writer",
":sat_base",
"//ortools/base",
"//ortools/base:file",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "drat_checker",
srcs = ["drat_checker.cc"],
hdrs = ["drat_checker.h"],
deps = [
":sat_base",
"//ortools/base:hash",
"//ortools/base:logging",
"//ortools/base:strong_vector",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "drat_checker_test",
srcs = ["drat_checker_test.cc"],
deps = [
":drat_checker",
":sat_base",
"//ortools/base:file",
"//ortools/base:gmock_main",
"//ortools/base:path",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "drat_writer",
srcs = ["drat_writer.cc"],
hdrs = ["drat_writer.h"],
deps = [
":sat_base",
"//ortools/base",
"//ortools/base:file",
"//ortools/base:status_macros",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "lrat_checker",
srcs = ["lrat_checker.cc"],
hdrs = ["lrat_checker.h"],
deps = [
":sat_base",
":util",
"//ortools/base:intops",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "lrat_checker_test",
srcs = ["lrat_checker_test.cc"],
deps = [
":lrat_checker",
":sat_base",
"//ortools/base:gmock_main",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "opb_reader",
hdrs = ["opb_reader.h"],
deps = [
":cp_model_cc_proto",
":cp_model_utils",
"//ortools/base:logging",
"//ortools/base:stl_util",
"//ortools/util:filelineiter",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "opb_reader_test",
size = "small",
srcs = [
"opb_reader_test.cc",
],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_symmetries",
":opb_reader",
":sat_parameters_cc_proto",
"//ortools/algorithms:sparse_permutation",
"//ortools/base",
"//ortools/base:file",
"//ortools/base:gmock_main",
"//ortools/base:path",
"//ortools/util:filelineiter",
"//ortools/util:logging",
"//ortools/util:time_limit",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
],
)
cc_binary(
name = "sat_runner",
srcs = [
"sat_runner.cc",
],
deps = [
":cp_model_cc_proto",
":cp_model_solver",
":cp_model_utils",
":model",
":opb_reader",
":sat_cnf_reader",
":sat_parameters_cc_proto",
":synchronization",
"//ortools/base",
"//ortools/base:file",
"//ortools/base:path",
"//ortools/util:file_util",
"//ortools/util:logging",
"//ortools/util:sigint",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:flags",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_library(
name = "sat_cnf_reader",
hdrs = ["sat_cnf_reader.h"],
visibility = ["//visibility:public"],
deps = [
":boolean_problem_cc_proto",
":cp_model_cc_proto",
"//ortools/base",
"//ortools/util:filelineiter",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "sat_cnf_reader_test",
size = "small",
srcs = [
"sat_cnf_reader_test.cc",
],
deps = [
":boolean_problem",
":boolean_problem_cc_proto",
":sat_cnf_reader",
"//ortools/base:file",
"//ortools/base:gmock_main",
"//ortools/base:path",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:string_view",
],
)
cc_library(
name = "cp_model_symmetries",
srcs = ["cp_model_symmetries.cc"],
hdrs = ["cp_model_symmetries.h"],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_mapping",
":cp_model_utils",
":model",
":presolve_context",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":solution_crush",
":symmetry_util",
":util",
"//ortools/algorithms:binary_search",
"//ortools/algorithms:find_graph_symmetries",
"//ortools/algorithms:sparse_permutation",
"//ortools/base:hash",
"//ortools/base:logging",
"//ortools/graph",
"//ortools/util:affine_relation",
"//ortools/util:logging",
"//ortools/util:saturated_arithmetic",
"//ortools/util:sorted_interval_list",
"//ortools/util:time_limit",
"@abseil-cpp//absl/algorithm:container",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
"@protobuf",
],
)
cc_test(
name = "cp_model_symmetries_test",
srcs = ["cp_model_symmetries_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_symmetries",
":model",
":presolve_context",
":sat_parameters_cc_proto",
"//ortools/algorithms:sparse_permutation",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
"//ortools/util:logging",
"//ortools/util:time_limit",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
],
)
cc_library(
name = "swig_helper",
srcs = ["swig_helper.cc"],
hdrs = ["swig_helper.h"],
visibility = [
"//ortools/sat/java:__pkg__",
"//ortools/sat/python:__pkg__",
],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_solver",
":cp_model_utils",
":model",
":sat_parameters_cc_proto",
":util",
"//ortools/util:logging",
"//ortools/util:sorted_interval_list",
"@abseil-cpp//absl/log:check",
],
)
cc_library(
name = "implied_bounds",
srcs = ["implied_bounds.cc"],
hdrs = ["implied_bounds.h"],
deps = [
"linear_constraint",
":clause",
":integer",
":integer_base",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
":synchronization",
"//ortools/base",
"//ortools/base:strong_vector",
"//ortools/lp_data:base",
"//ortools/util:bitset",
"//ortools/util:sorted_interval_list",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/log:vlog_is_on",
"@abseil-cpp//absl/meta:type_traits",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "implied_bounds_test",
size = "small",
srcs = ["implied_bounds_test.cc"],
deps = [
":implied_bounds",
":integer",
":integer_base",
":linear_constraint",
":model",
":sat_base",
":sat_parameters_cc_proto",
":sat_solver",
"//ortools/base:gmock_main",
"//ortools/base:strong_vector",
"//ortools/lp_data:base",
"//ortools/util:strong_integers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "inclusion",
hdrs = ["inclusion.h"],
deps = [
":util",
"//ortools/base",
"//ortools/util:bitset",
"//ortools/util:time_limit",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "diophantine",
srcs = ["diophantine.cc"],
hdrs = ["diophantine.h"],
deps = [
":util",
"//ortools/base:mathutil",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "combine_solutions",
srcs = ["combine_solutions.cc"],
hdrs = ["combine_solutions.h"],
deps = [
":cp_model_cc_proto",
":cp_model_checker",
":model",
":synchronization",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "combine_solutions_test",
srcs = ["combine_solutions_test.cc"],
deps = [
":combine_solutions",
":model",
":synchronization",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
],
)
cc_library(
name = "work_assignment",
srcs = ["work_assignment.cc"],
hdrs = ["work_assignment.h"],
deps = [
":clause",
":cp_model_mapping",
":cp_model_utils",
":integer",
":integer_base",
":integer_search",
":model",
":restart",
":sat_base",
":sat_decision",
":sat_parameters_cc_proto",
":sat_solver",
":synchronization",
":util",
"//ortools/util:running_stat",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/container:flat_hash_map",
"@abseil-cpp//absl/container:flat_hash_set",
"@abseil-cpp//absl/container:node_hash_map",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/synchronization",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "work_assignment_test",
srcs = ["work_assignment_test.cc"],
deps = [
":cp_model",
":cp_model_cc_proto",
":cp_model_checker",
":cp_model_loader",
":cp_model_solver",
":model",
":sat_parameters_cc_proto",
":synchronization",
":work_assignment",
"//ortools/base:gmock_main",
"//ortools/base:parse_text_proto",
"@abseil-cpp//absl/strings:string_view",
],
)
cc_test(
name = "diophantine_test",
srcs = ["diophantine_test.cc"],
deps = [
":diophantine",
"//ortools/base:gmock_main",
"//ortools/base:mathutil",
"@abseil-cpp//absl/base:log_severity",
"@abseil-cpp//absl/numeric:int128",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
],
)
cc_test(
name = "inclusion_test",
size = "small",
srcs = ["inclusion_test.cc"],
deps = [
":inclusion",
":util",
"//ortools/base:gmock_main",
"//ortools/util:time_limit",
"@abseil-cpp//absl/random",
"@abseil-cpp//absl/types:span",
],
)
cc_test(
name = "flaky_models_test",
size = "small",
srcs = ["flaky_models_test.cc"],
deps = [
":cp_model_cc_proto",
":cp_model_solver",
":sat_parameters_cc_proto",
"//ortools/base:gmock_main",
"//ortools/base:parse_test_proto",
],
)