10#include "google/protobuf/io/coded_stream.h"
11#include "google/protobuf/generated_message_tctable_impl.h"
12#include "google/protobuf/extension_set.h"
13#include "google/protobuf/generated_message_util.h"
14#include "google/protobuf/wire_format_lite.h"
15#include "google/protobuf/descriptor.h"
16#include "google/protobuf/generated_message_reflection.h"
17#include "google/protobuf/reflection_ops.h"
18#include "google/protobuf/wire_format.h"
22#include "google/protobuf/port_def.inc"
23PROTOBUF_PRAGMA_INIT_SEG
26namespace _fl = ::google::protobuf::internal::field_layout;
30inline constexpr SatParameters::Impl_::Impl_(
31 ::_pbi::ConstantInitialized) noexcept
33 restart_algorithms_{},
39 default_restart_algorithms_(
40 &::google::protobuf::internal::fixed_address_empty_string,
41 ::_pbi::ConstantInitialized()),
43 &::google::protobuf::internal::fixed_address_empty_string,
44 ::_pbi::ConstantInitialized()),
46 &::google::protobuf::internal::fixed_address_empty_string,
47 ::_pbi::ConstantInitialized()),
49 clause_cleanup_target_{0},
50 random_branches_ratio_{0},
51 random_polarity_ratio_{0},
52 log_search_progress_{
false},
53 use_pb_resolution_{
false},
54 minimize_reduction_during_pb_resolution_{
false},
55 max_sat_reverse_assumption_order_{
false},
59 strategy_change_increase_ratio_{0},
60 num_conflicts_before_strategy_changes_{0},
61 use_blocking_restart_{
false},
62 use_erwa_heuristic_{
false},
63 also_bump_variables_in_conflict_reasons_{
false},
64 use_overload_checker_in_cumulative_{
false},
65 initial_variables_activity_{0},
67 use_timetable_edge_finding_in_cumulative_{
false},
68 optimize_with_core_{
false},
69 optimize_with_max_hs_{
false},
70 enumerate_all_solutions_{
false},
71 only_add_cuts_at_level_zero_{
false},
72 stop_after_first_solution_{
false},
74 randomize_search_{
false},
75 num_search_workers_{0},
76 search_random_variable_pool_size_{::int64_t{0}},
77 use_optional_variables_{
false},
78 exploit_best_solution_{
false},
79 fill_tightened_domains_in_response_{
false},
80 use_combined_no_overlap_{
false},
81 interleave_batch_size_{0},
82 interleave_search_{
false},
83 diversify_lns_params_{
false},
84 stop_after_presolve_{
false},
85 exploit_relaxation_solution_{
false},
86 debug_max_num_presolve_operations_{0},
87 relative_gap_limit_{0},
88 debug_postsolve_with_full_solver_{
false},
90 expand_alldiff_constraints_{
false},
91 keep_all_feasible_solutions_in_presolve_{
false},
92 presolve_extract_integer_enforcement_{
false},
93 polish_lp_solution_{
false},
94 use_probing_search_{
false},
95 permute_variable_randomly_{
false},
96 permute_presolve_constraint_order_{
false},
97 use_absl_random_{
false},
98 disable_constraint_expansion_{
false},
99 log_to_response_{
false},
100 optimize_with_lb_tree_search_{
false},
101 log_subsolver_statistics_{
false},
102 fix_variables_to_their_hinted_value_{
false},
103 fill_additional_solutions_in_response_{
false},
104 debug_crash_on_bad_hint_{
false},
105 add_objective_cut_{
false},
106 use_timetabling_in_no_overlap_2d_{
false},
107 use_energetic_reasoning_in_no_overlap_2d_{
false},
109 use_hard_precedences_in_cumulative_{
false},
110 detect_table_with_cost_{
false},
111 exploit_all_precedences_{
false},
112 only_solve_ip_{
false},
113 encode_complex_linear_constraint_with_integer_{
false},
114 mip_scale_large_domain_{
false},
115 use_objective_lb_search_{
false},
116 use_strong_propagation_in_disjunctive_{
false},
117 shared_tree_num_workers_{0},
119 num_violation_ls_{0},
120 use_shared_tree_search_{
false},
122 stop_after_root_propagation_{
false},
123 use_objective_shaving_search_{
false},
124 push_all_tasks_toward_start_{
false},
125 use_dynamic_precedence_in_disjunctive_{
false},
126 use_dynamic_precedence_in_cumulative_{
false},
127 use_area_energetic_reasoning_in_no_overlap_2d_{
false},
128 max_lin_max_size_for_expansion_{0},
129 detect_linearized_product_{
false},
130 mip_treat_high_magnitude_bounds_as_infinity_{
false},
131 save_lp_basis_in_lb_tree_search_{
false},
132 share_glue_clauses_{
false},
133 use_conservative_scale_overload_checker_{
false},
134 encode_cumulative_as_reservoir_{
false},
135 expand_reservoir_using_circuit_{
false},
136 inprocessing_minimization_use_all_orderings_{
false},
137 max_num_deterministic_batches_{0},
138 num_full_subsolvers_{0},
139 use_try_edge_reasoning_in_no_overlap_2d_{
false},
140 use_symmetry_in_lp_{
false},
141 keep_symmetry_in_presolve_{
false},
142 debug_crash_if_presolve_breaks_hint_{
false},
143 routing_cut_subset_size_for_binary_relation_bound_{0},
144 routing_cut_subset_size_for_tight_binary_relation_bound_{0},
145 polarity_exploit_ls_hints_{
false},
146 use_all_different_for_circuit_{
false},
147 filter_sat_postsolve_clauses_{
false},
148 maximum_regions_to_split_in_disconnected_no_overlap_2d_{0},
151 variable_activity_decay_{0.8},
152 max_variable_activity_value_{1e+100},
153 clause_activity_decay_{0.999},
154 clause_cleanup_period_{10000},
155 glucose_decay_increment_period_{5000},
156 max_clause_activity_value_{1e+20},
157 glucose_max_decay_{0.95},
158 glucose_decay_increment_{0.01},
161 max_time_in_seconds_{std::numeric_limits<double>::infinity()},
162 max_number_of_conflicts_{::int64_t{9223372036854775807}},
163 max_memory_in_mb_{::int64_t{10000}},
165 pb_cleanup_increment_{200},
166 use_optimization_hints_{
true},
167 use_phase_saving_{
true},
168 count_assumption_levels_in_lbd_{
true},
169 subsumption_during_conflict_analysis_{
true},
170 core_minimization_level_{2},
171 pb_cleanup_ratio_{0.5},
173 presolve_bve_threshold_{500},
174 presolve_probing_deterministic_time_limit_{30},
175 presolve_bve_clause_weight_{3},
176 clause_cleanup_lbd_bound_{5},
177 restart_dl_average_ratio_{1},
178 restart_running_window_size_{50},
179 blocking_restart_window_size_{5000},
180 blocking_restart_multiplier_{1.4},
181 max_deterministic_time_{std::numeric_limits<double>::infinity()},
182 restart_lbd_average_ratio_{1},
183 presolve_bva_threshold_{1},
184 presolve_use_bva_{
true},
185 use_precedences_in_disjunctive_constraint_{
true},
186 use_disjunctive_constraint_in_cumulative_{
true},
187 find_multiple_cores_{
true},
188 cp_model_presolve_{
true},
189 presolve_blocked_clause_{
true},
190 cover_optimization_{
true},
191 cp_model_use_sat_presolve_{
true},
192 linearization_level_{1},
193 max_num_cuts_{10000},
194 binary_search_num_conflicts_{-1},
195 exploit_integer_lp_solution_{
true},
196 auto_detect_greater_than_at_least_one_of_{
true},
197 instantiate_all_variables_{
true},
198 use_exact_lp_reason_{
true},
199 boolean_encoding_level_{1},
200 cp_model_probing_level_{2},
201 add_lp_constraints_lazily_{
true},
202 share_objective_bounds_{
true},
203 share_level_zero_bounds_{
true},
204 exploit_all_lp_solution_{
true},
205 min_orthogonality_for_lp_constraints_{0.05},
206 max_integer_rounding_scaling_{600},
207 max_consecutive_inactive_count_{100},
208 pseudo_cost_reliability_threshold_{::int64_t{100}},
209 new_constraints_batch_size_{50},
213 exploit_objective_{
true},
214 mip_max_bound_{10000000},
216 mip_wanted_precision_{1e-06},
217 mip_check_precision_{0.0001},
218 mip_max_activity_exponent_{53},
219 max_presolve_iterations_{3},
220 merge_no_overlap_work_limit_{1000000000000},
221 merge_at_most_one_work_limit_{100000000},
222 presolve_substitution_level_{1},
223 max_all_diff_cut_size_{64},
224 catch_sigint_signal_{
true},
225 use_implied_bounds_{
true},
226 add_lin_max_cuts_{
true},
227 use_sat_inprocessing_{
true},
228 hint_conflict_limit_{10},
229 cut_max_active_count_value_{10000000000},
230 max_cut_rounds_at_level_zero_{1},
231 cut_cleanup_target_{1000},
232 cut_active_count_decay_{0.8},
233 absolute_gap_limit_{0.0001},
235 use_feasibility_pump_{
true},
236 mip_automatically_scale_variables_{
true},
237 add_zero_half_cuts_{
true},
238 add_clique_cuts_{
true},
239 polarity_rephase_increment_{1000},
241 convert_intervals_{
true},
242 expand_reservoir_constraints_{
true},
243 log_to_stdout_{
true},
244 mip_compute_true_objective_bound_{
true},
245 max_domain_size_when_encoding_eq_neq_constraints_{16},
246 clause_cleanup_ratio_{0.5},
247 solution_pool_size_{3},
249 mip_max_valid_magnitude_{1e+20},
250 presolve_inclusion_work_limit_{::int64_t{100000000}},
251 shaving_deterministic_time_in_probing_search_{0.001},
252 shaving_search_deterministic_time_{0.1},
254 share_binary_clauses_{
true},
255 use_dual_scheduling_heuristics_{
true},
256 new_linear_propagation_{
true},
257 table_compression_level_{2},
258 propagation_loop_detection_factor_{10},
259 probing_deterministic_time_limit_{1},
260 root_lp_iterations_{2000},
261 max_size_to_create_precedence_literals_in_disjunctive_{60},
262 mip_drop_tolerance_{1e-16},
263 feasibility_jump_decay_{0.95},
264 shared_tree_max_nodes_per_worker_{10000},
265 infer_all_diffs_{
true},
266 find_big_linear_overlap_{
true},
267 feasibility_jump_enable_restarts_{
true},
268 use_lb_relax_lns_{
true},
269 feasibility_jump_var_randomization_probability_{0.05},
270 feasibility_jump_var_perburbation_range_ratio_{0.2},
271 violation_ls_perturbation_period_{100},
272 linear_split_size_{100},
273 feasibility_jump_linearization_level_{2},
274 feasibility_jump_restart_factor_{1},
275 violation_ls_compound_move_probability_{0.5},
276 max_num_intervals_for_timetable_edge_finding_{100},
277 mip_presolve_level_{2},
278 lp_primal_tolerance_{1e-07},
279 lp_dual_tolerance_{1e-07},
280 feasibility_jump_max_expanded_constraint_size_{500},
281 at_most_one_max_expansion_size_{3},
282 inprocessing_dtime_ratio_{0.2},
283 probing_num_combinations_limit_{20000},
284 use_feasibility_jump_{
true},
285 use_extended_probing_{
true},
288 inprocessing_probing_dtime_{1},
289 inprocessing_minimization_dtime_{1},
290 max_pairs_pairwise_reasoning_in_no_overlap_2d_{1250},
291 shared_tree_worker_min_restarts_per_subtree_{1},
292 shared_tree_open_leaves_per_worker_{2},
293 shaving_search_threshold_{::int64_t{64}},
294 feasibility_jump_batch_dtime_{0.1},
295 variables_shaving_level_{-1},
296 lb_relax_num_workers_threshold_{16},
297 shared_tree_worker_enable_trail_sharing_{
true},
298 inprocessing_minimization_use_conflict_analysis_{
true},
299 minimize_shared_clauses_{
true},
300 shared_tree_worker_enable_phase_sharing_{
true},
301 shared_tree_balance_tolerance_{1},
302 symmetry_detection_deterministic_time_limit_{1},
303 lns_initial_difficulty_{0.5},
304 lns_initial_deterministic_limit_{0.1},
305 routing_cut_dp_effort_{10000000},
306 routing_cut_subset_size_for_exact_binary_relation_bound_{8},
307 remove_fixed_variables_early_{
true},
308 use_linear3_for_no_overlap_2d_precedences_{
true},
309 routing_cut_max_infeasible_path_length_{6},
310 routing_cut_subset_size_for_shortest_paths_bound_{8},
311 max_alldiff_domain_size_{256},
312 no_overlap_2d_boolean_relations_limit_{10},
313 share_glue_clauses_dtime_{1} {}
317#if defined(PROTOBUF_CUSTOM_VTABLE)
320 : ::google::protobuf::Message(),
322 _impl_(::_pbi::ConstantInitialized()) {
332PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
336static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
338static constexpr const ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE
898static const ::_pbi::MigrationSchema
907 "\n ortools/sat/sat_parameters.proto\022\027oper"
908 "ations_research.sat\"\241m\n\rSatParameters\022\017\n"
909 "\004name\030\253\001 \001(\t:\000\022`\n\030preferred_variable_ord"
910 "er\030\001 \001(\01624.operations_research.sat.SatPa"
911 "rameters.VariableOrder:\010IN_ORDER\022Y\n\020init"
912 "ial_polarity\030\002 \001(\0162/.operations_research"
913 ".sat.SatParameters.Polarity:\016POLARITY_FA"
914 "LSE\022\036\n\020use_phase_saving\030, \001(\010:\004true\022)\n\032p"
915 "olarity_rephase_increment\030\250\001 \001(\005:\0041000\022)"
916 "\n\031polarity_exploit_ls_hints\030\265\002 \001(\010:\005fals"
917 "e\022 \n\025random_polarity_ratio\030- \001(\001:\0010\022 \n\025r"
918 "andom_branches_ratio\030 \001(\001:\0010\022!\n\022use_erw"
919 "a_heuristic\030K \001(\010:\005false\022%\n\032initial_vari"
920 "ables_activity\030L \001(\001:\0010\0226\n\'also_bump_var"
921 "iables_in_conflict_reasons\030M \001(\010:\005false\022"
922 "o\n\026minimization_algorithm\030\004 \001(\0162D.operat"
923 "ions_research.sat.SatParameters.Conflict"
924 "MinimizationAlgorithm:\tRECURSIVE\022\202\001\n\035bin"
925 "ary_minimization_algorithm\030\" \001(\0162@.opera"
926 "tions_research.sat.SatParameters.BinaryM"
927 "inizationAlgorithm:\031BINARY_MINIMIZATION_"
928 "FIRST\0222\n$subsumption_during_conflict_ana"
929 "lysis\0308 \001(\010:\004true\022$\n\025clause_cleanup_peri"
930 "od\030\013 \001(\005:\00510000\022 \n\025clause_cleanup_target"
931 "\030\r \001(\005:\0010\022\"\n\024clause_cleanup_ratio\030\276\001 \001(\001"
932 ":\0030.5\022k\n\031clause_cleanup_protection\030: \001(\016"
933 "27.operations_research.sat.SatParameters"
934 ".ClauseProtection:\017PROTECTION_NONE\022#\n\030cl"
935 "ause_cleanup_lbd_bound\030; \001(\005:\0015\022g\n\027claus"
936 "e_cleanup_ordering\030< \001(\01625.operations_re"
937 "search.sat.SatParameters.ClauseOrdering:"
938 "\017CLAUSE_ACTIVITY\022!\n\024pb_cleanup_increment"
939 "\030. \001(\005:\003200\022\035\n\020pb_cleanup_ratio\030/ \001(\001:\0030"
940 ".5\022$\n\027variable_activity_decay\030\017 \001(\001:\0030.8"
941 "\022+\n\033max_variable_activity_value\030\020 \001(\001:\0061"
942 "e+100\022\037\n\021glucose_max_decay\030\026 \001(\001:\0040.95\022%"
943 "\n\027glucose_decay_increment\030\027 \001(\001:\0040.01\022,\n"
944 "\036glucose_decay_increment_period\030\030 \001(\005:\0045"
945 "000\022$\n\025clause_activity_decay\030\021 \001(\001:\0050.99"
946 "9\022(\n\031max_clause_activity_value\030\022 \001(\001:\0051e"
947 "+20\022S\n\022restart_algorithms\030= \003(\01627.operat"
948 "ions_research.sat.SatParameters.RestartA"
949 "lgorithm\022e\n\032default_restart_algorithms\030F"
950 " \001(\t:ALUBY_RESTART,LBD_MOVING_AVERAGE_RE"
951 "START,DL_MOVING_AVERAGE_RESTART\022\032\n\016resta"
952 "rt_period\030\036 \001(\005:\00250\022\'\n\033restart_running_w"
953 "indow_size\030> \001(\005:\00250\022#\n\030restart_dl_avera"
954 "ge_ratio\030\? \001(\001:\0011\022$\n\031restart_lbd_average"
955 "_ratio\030G \001(\001:\0011\022#\n\024use_blocking_restart\030"
956 "@ \001(\010:\005false\022*\n\034blocking_restart_window_"
957 "size\030A \001(\005:\0045000\022(\n\033blocking_restart_mul"
958 "tiplier\030B \001(\001:\0031.4\0220\n%num_conflicts_befo"
959 "re_strategy_changes\030D \001(\005:\0010\022)\n\036strategy"
960 "_change_increase_ratio\030E \001(\001:\0010\022 \n\023max_t"
961 "ime_in_seconds\030$ \001(\001:\003inf\022#\n\026max_determi"
962 "nistic_time\030C \001(\001:\003inf\022)\n\035max_num_determ"
963 "inistic_batches\030\243\002 \001(\005:\0010\0224\n\027max_number_"
964 "of_conflicts\030% \001(\003:\0239223372036854775807\022"
965 "\037\n\020max_memory_in_mb\030( \001(\003:\00510000\022#\n\022abso"
966 "lute_gap_limit\030\237\001 \001(\001:\0060.0001\022\036\n\022relativ"
967 "e_gap_limit\030\240\001 \001(\001:\0010\022\026\n\013random_seed\030\037 \001"
968 "(\005:\0011\022)\n\031permute_variable_randomly\030\262\001 \001("
969 "\010:\005false\0221\n!permute_presolve_constraint_"
970 "order\030\263\001 \001(\010:\005false\022\037\n\017use_absl_random\030\264"
971 "\001 \001(\010:\005false\022\"\n\023log_search_progress\030) \001("
972 "\010:\005false\022(\n\030log_subsolver_statistics\030\275\001 "
973 "\001(\010:\005false\022\025\n\nlog_prefix\030\271\001 \001(\t:\000\022\034\n\rlog"
974 "_to_stdout\030\272\001 \001(\010:\004true\022\037\n\017log_to_respon"
975 "se\030\273\001 \001(\010:\005false\022 \n\021use_pb_resolution\030+ "
976 "\001(\010:\005false\0226\n\'minimize_reduction_during_"
977 "pb_resolution\0300 \001(\010:\005false\022,\n\036count_assu"
978 "mption_levels_in_lbd\0301 \001(\010:\004true\022#\n\026pres"
979 "olve_bve_threshold\0306 \001(\005:\003500\022,\n\034filter_"
980 "sat_postsolve_clauses\030\304\002 \001(\010:\005false\022%\n\032p"
981 "resolve_bve_clause_weight\0307 \001(\005:\0013\022,\n pr"
982 "obing_deterministic_time_limit\030\342\001 \001(\001:\0011"
983 "\0225\n)presolve_probing_deterministic_time_"
984 "limit\0309 \001(\001:\00230\022%\n\027presolve_blocked_clau"
985 "se\030X \001(\010:\004true\022\036\n\020presolve_use_bva\030H \001(\010"
986 ":\004true\022!\n\026presolve_bva_threshold\030I \001(\005:\001"
987 "1\022#\n\027max_presolve_iterations\030\212\001 \001(\005:\0013\022\037"
988 "\n\021cp_model_presolve\030V \001(\010:\004true\022!\n\026cp_mo"
989 "del_probing_level\030n \001(\005:\0012\022\'\n\031cp_model_u"
990 "se_sat_presolve\030] \001(\010:\004true\022+\n\034remove_fi"
991 "xed_variables_early\030\266\002 \001(\010:\004true\022&\n\026dete"
992 "ct_table_with_cost\030\330\001 \001(\010:\005false\022#\n\027tabl"
993 "e_compression_level\030\331\001 \001(\005:\0012\022*\n\032expand_"
994 "alldiff_constraints\030\252\001 \001(\010:\005false\022%\n\027max"
995 "_alldiff_domain_size\030\300\002 \001(\005:\003256\022+\n\034expa"
996 "nd_reservoir_constraints\030\266\001 \001(\010:\004true\022.\n"
997 "\036expand_reservoir_using_circuit\030\240\002 \001(\010:\005"
998 "false\022.\n\036encode_cumulative_as_reservoir\030"
999 "\237\002 \001(\010:\005false\022*\n\036max_lin_max_size_for_ex"
1000 "pansion\030\230\002 \001(\005:\0010\022,\n\034disable_constraint_"
1001 "expansion\030\265\001 \001(\010:\005false\022=\n-encode_comple"
1002 "x_linear_constraint_with_integer\030\337\001 \001(\010:"
1003 "\005false\0223\n\033merge_no_overlap_work_limit\030\221\001"
1004 " \001(\001:\r1000000000000\0220\n\034merge_at_most_one"
1005 "_work_limit\030\222\001 \001(\001:\t100000000\022\'\n\033presolv"
1006 "e_substitution_level\030\223\001 \001(\005:\0011\0224\n$presol"
1007 "ve_extract_integer_enforcement\030\256\001 \001(\010:\005f"
1008 "alse\0221\n\035presolve_inclusion_work_limit\030\311\001"
1009 " \001(\003:\t100000000\022\033\n\014ignore_names\030\312\001 \001(\010:\004"
1010 "true\022\036\n\017infer_all_diffs\030\351\001 \001(\010:\004true\022&\n\027"
1011 "find_big_linear_overlap\030\352\001 \001(\010:\004true\022#\n\024"
1012 "use_sat_inprocessing\030\243\001 \001(\010:\004true\022&\n\030inp"
1013 "rocessing_dtime_ratio\030\221\002 \001(\001:\0030.2\022&\n\032inp"
1014 "rocessing_probing_dtime\030\222\002 \001(\001:\0011\022+\n\037inp"
1015 "rocessing_minimization_dtime\030\223\002 \001(\001:\0011\022>"
1016 "\n/inprocessing_minimization_use_conflict"
1017 "_analysis\030\251\002 \001(\010:\004true\022;\n+inprocessing_m"
1018 "inimization_use_all_orderings\030\252\002 \001(\010:\005fa"
1019 "lse\022\027\n\013num_workers\030\316\001 \001(\005:\0010\022\035\n\022num_sear"
1020 "ch_workers\030d \001(\005:\0010\022\037\n\023num_full_subsolve"
1021 "rs\030\246\002 \001(\005:\0010\022\023\n\nsubsolvers\030\317\001 \003(\t\022\031\n\020ext"
1022 "ra_subsolvers\030\333\001 \003(\t\022\032\n\021ignore_subsolver"
1023 "s\030\321\001 \003(\t\022\032\n\021filter_subsolvers\030\245\002 \003(\t\022A\n\020"
1024 "subsolver_params\030\322\001 \003(\0132&.operations_res"
1025 "earch.sat.SatParameters\022!\n\021interleave_se"
1026 "arch\030\210\001 \001(\010:\005false\022!\n\025interleave_batch_s"
1027 "ize\030\206\001 \001(\005:\0010\022$\n\026share_objective_bounds\030"
1028 "q \001(\010:\004true\022%\n\027share_level_zero_bounds\030r"
1029 " \001(\010:\004true\022#\n\024share_binary_clauses\030\313\001 \001("
1030 "\010:\004true\022\"\n\022share_glue_clauses\030\235\002 \001(\010:\005fa"
1031 "lse\022&\n\027minimize_shared_clauses\030\254\002 \001(\010:\004t"
1032 "rue\022$\n\030share_glue_clauses_dtime\030\302\002 \001(\001:\001"
1033 "1\0220\n debug_postsolve_with_full_solver\030\242\001"
1034 " \001(\010:\005false\022-\n!debug_max_num_presolve_op"
1035 "erations\030\227\001 \001(\005:\0010\022\'\n\027debug_crash_on_bad"
1036 "_hint\030\303\001 \001(\010:\005false\0223\n#debug_crash_if_pr"
1037 "esolve_breaks_hint\030\262\002 \001(\010:\005false\022$\n\026use_"
1038 "optimization_hints\030# \001(\010:\004true\022\"\n\027core_m"
1039 "inimization_level\0302 \001(\005:\0012\022!\n\023find_multi"
1040 "ple_cores\030T \001(\010:\004true\022 \n\022cover_optimizat"
1041 "ion\030Y \001(\010:\004true\022x\n\030max_sat_assumption_or"
1042 "der\0303 \001(\0162<.operations_research.sat.SatP"
1043 "arameters.MaxSatAssumptionOrder:\030DEFAULT"
1044 "_ASSUMPTION_ORDER\022/\n max_sat_reverse_ass"
1045 "umption_order\0304 \001(\010:\005false\022|\n\026max_sat_st"
1046 "ratification\0305 \001(\0162D.operations_research"
1047 ".sat.SatParameters.MaxSatStratificationA"
1048 "lgorithm:\026STRATIFICATION_DESCENT\022.\n!prop"
1049 "agation_loop_detection_factor\030\335\001 \001(\001:\00210"
1050 "\0227\n)use_precedences_in_disjunctive_const"
1051 "raint\030J \001(\010:\004true\022B\n5max_size_to_create_"
1052 "precedence_literals_in_disjunctive\030\345\001 \001("
1053 "\005:\00260\0225\n%use_strong_propagation_in_disju"
1054 "nctive\030\346\001 \001(\010:\005false\0225\n%use_dynamic_prec"
1055 "edence_in_disjunctive\030\207\002 \001(\010:\005false\0224\n$u"
1056 "se_dynamic_precedence_in_cumulative\030\214\002 \001"
1057 "(\010:\005false\0221\n\"use_overload_checker_in_cum"
1058 "ulative\030N \001(\010:\005false\0227\n\'use_conservative"
1059 "_scale_overload_checker\030\236\002 \001(\010:\005false\0227\n"
1060 "(use_timetable_edge_finding_in_cumulativ"
1061 "e\030O \001(\010:\005false\022:\n,max_num_intervals_for_"
1062 "timetable_edge_finding\030\204\002 \001(\005:\003100\0222\n\"us"
1063 "e_hard_precedences_in_cumulative\030\327\001 \001(\010:"
1064 "\005false\022\'\n\027exploit_all_precedences\030\334\001 \001(\010"
1065 ":\005false\0226\n(use_disjunctive_constraint_in"
1066 "_cumulative\030P \001(\010:\004true\0222\n%no_overlap_2d"
1067 "_boolean_relations_limit\030\301\002 \001(\005:\00210\0220\n u"
1068 "se_timetabling_in_no_overlap_2d\030\310\001 \001(\010:\005"
1069 "false\0228\n(use_energetic_reasoning_in_no_o"
1070 "verlap_2d\030\325\001 \001(\010:\005false\022=\n-use_area_ener"
1071 "getic_reasoning_in_no_overlap_2d\030\217\002 \001(\010:"
1072 "\005false\0227\n\'use_try_edge_reasoning_in_no_o"
1073 "verlap_2d\030\253\002 \001(\010:\005false\022<\n-max_pairs_pai"
1074 "rwise_reasoning_in_no_overlap_2d\030\224\002 \001(\005:"
1075 "\0041250\022B\n6maximum_regions_to_split_in_dis"
1076 "connected_no_overlap_2d\030\273\002 \001(\005:\0010\0228\n)use"
1077 "_linear3_for_no_overlap_2d_precedences\030\303"
1078 "\002 \001(\010:\004true\022-\n\036use_dual_scheduling_heuri"
1079 "stics\030\326\001 \001(\010:\004true\022-\n\035use_all_different_"
1080 "for_circuit\030\267\002 \001(\010:\005false\022=\n1routing_cut"
1081 "_subset_size_for_binary_relation_bound\030\270"
1082 "\002 \001(\005:\0010\022C\n7routing_cut_subset_size_for_"
1083 "tight_binary_relation_bound\030\271\002 \001(\005:\0010\022C\n"
1084 "7routing_cut_subset_size_for_exact_binar"
1085 "y_relation_bound\030\274\002 \001(\005:\0018\022<\n0routing_cu"
1086 "t_subset_size_for_shortest_paths_bound\030\276"
1087 "\002 \001(\005:\0018\022(\n\025routing_cut_dp_effort\030\272\002 \001(\001"
1088 ":\01010000000\0222\n&routing_cut_max_infeasible"
1089 "_path_length\030\275\002 \001(\005:\0016\022b\n\020search_branchi"
1090 "ng\030R \001(\01626.operations_research.sat.SatPa"
1091 "rameters.SearchBranching:\020AUTOMATIC_SEAR"
1092 "CH\022 \n\023hint_conflict_limit\030\231\001 \001(\005:\00210\022\033\n\013"
1093 "repair_hint\030\247\001 \001(\010:\005false\0223\n#fix_variabl"
1094 "es_to_their_hinted_value\030\300\001 \001(\010:\005false\022\""
1095 "\n\022use_probing_search\030\260\001 \001(\010:\005false\022#\n\024us"
1096 "e_extended_probing\030\215\002 \001(\010:\004true\022.\n\036probi"
1097 "ng_num_combinations_limit\030\220\002 \001(\005:\00520000\022"
1098 "<\n,shaving_deterministic_time_in_probing"
1099 "_search\030\314\001 \001(\001:\0050.001\022/\n!shaving_search_"
1100 "deterministic_time\030\315\001 \001(\001:\0030.1\022%\n\030shavin"
1101 "g_search_threshold\030\242\002 \001(\003:\00264\022\'\n\027use_obj"
1102 "ective_lb_search\030\344\001 \001(\010:\005false\022,\n\034use_ob"
1103 "jective_shaving_search\030\375\001 \001(\010:\005false\022$\n\027"
1104 "variables_shaving_level\030\241\002 \001(\005:\002-1\022.\n!ps"
1105 "eudo_cost_reliability_threshold\030{ \001(\003:\0031"
1106 "00\022!\n\022optimize_with_core\030S \001(\010:\005false\022,\n"
1107 "\034optimize_with_lb_tree_search\030\274\001 \001(\010:\005fa"
1108 "lse\022/\n\037save_lp_basis_in_lb_tree_search\030\234"
1109 "\002 \001(\010:\005false\022\'\n\033binary_search_num_confli"
1110 "cts\030c \001(\005:\002-1\022#\n\024optimize_with_max_hs\030U "
1111 "\001(\010:\005false\022#\n\024use_feasibility_jump\030\211\002 \001("
1112 "\010:\004true\022\033\n\013use_ls_only\030\360\001 \001(\010:\005false\022%\n\026"
1113 "feasibility_jump_decay\030\362\001 \001(\001:\0040.95\0220\n$f"
1114 "easibility_jump_linearization_level\030\201\002 \001"
1115 "(\005:\0012\022+\n\037feasibility_jump_restart_factor"
1116 "\030\202\002 \001(\005:\0011\022*\n\034feasibility_jump_batch_dti"
1117 "me\030\244\002 \001(\001:\0030.1\022=\n.feasibility_jump_var_r"
1118 "andomization_probability\030\367\001 \001(\001:\0040.05\022;\n"
1119 "-feasibility_jump_var_perburbation_range"
1120 "_ratio\030\370\001 \001(\001:\0030.2\022/\n feasibility_jump_e"
1121 "nable_restarts\030\372\001 \001(\010:\004true\022;\n-feasibili"
1122 "ty_jump_max_expanded_constraint_size\030\210\002 "
1123 "\001(\005:\003500\022\034\n\020num_violation_ls\030\364\001 \001(\005:\0010\022."
1124 "\n violation_ls_perturbation_period\030\371\001 \001("
1125 "\005:\003100\0224\n&violation_ls_compound_move_pro"
1126 "bability\030\203\002 \001(\001:\0030.5\022#\n\027shared_tree_num_"
1127 "workers\030\353\001 \001(\005:\0010\022&\n\026use_shared_tree_sea"
1128 "rch\030\354\001 \001(\010:\005false\0227\n+shared_tree_worker_"
1129 "min_restarts_per_subtree\030\232\002 \001(\005:\0011\0226\n\'sh"
1130 "ared_tree_worker_enable_trail_sharing\030\247\002"
1131 " \001(\010:\004true\0226\n\'shared_tree_worker_enable_"
1132 "phase_sharing\030\260\002 \001(\010:\004true\022.\n\"shared_tre"
1133 "e_open_leaves_per_worker\030\231\002 \001(\001:\0012\0220\n sh"
1134 "ared_tree_max_nodes_per_worker\030\356\001 \001(\005:\0051"
1135 "0000\022x\n\032shared_tree_split_strategy\030\357\001 \001("
1136 "\0162>.operations_research.sat.SatParameter"
1137 "s.SharedTreeSplitStrategy:\023SPLIT_STRATEG"
1138 "Y_AUTO\022)\n\035shared_tree_balance_tolerance\030"
1139 "\261\002 \001(\005:\0011\022&\n\027enumerate_all_solutions\030W \001"
1140 "(\010:\005false\0227\n\'keep_all_feasible_solutions"
1141 "_in_presolve\030\255\001 \001(\010:\005false\0222\n\"fill_tight"
1142 "ened_domains_in_response\030\204\001 \001(\010:\005false\0225"
1143 "\n%fill_additional_solutions_in_response\030"
1144 "\302\001 \001(\010:\005false\022\'\n\031instantiate_all_variabl"
1145 "es\030j \001(\010:\004true\0226\n(auto_detect_greater_th"
1146 "an_at_least_one_of\030_ \001(\010:\004true\022(\n\031stop_a"
1147 "fter_first_solution\030b \001(\010:\005false\022#\n\023stop"
1148 "_after_presolve\030\225\001 \001(\010:\005false\022+\n\033stop_af"
1149 "ter_root_propagation\030\374\001 \001(\010:\005false\022$\n\026ln"
1150 "s_initial_difficulty\030\263\002 \001(\001:\0030.5\022-\n\037lns_"
1151 "initial_deterministic_limit\030\264\002 \001(\001:\0030.1\022"
1152 "\026\n\007use_lns\030\233\002 \001(\010:\004true\022\033\n\014use_lns_only\030"
1153 "e \001(\010:\005false\022\036\n\022solution_pool_size\030\301\001 \001("
1154 "\005:\0013\022\033\n\014use_rins_lns\030\201\001 \001(\010:\004true\022#\n\024use"
1155 "_feasibility_pump\030\244\001 \001(\010:\004true\022\037\n\020use_lb"
1156 "_relax_lns\030\377\001 \001(\010:\004true\022+\n\036lb_relax_num_"
1157 "workers_threshold\030\250\002 \001(\005:\00216\022c\n\013fp_round"
1158 "ing\030\245\001 \001(\01627.operations_research.sat.Sat"
1159 "Parameters.FPRoundingMethod:\024PROPAGATION"
1160 "_ASSISTED\022$\n\024diversify_lns_params\030\211\001 \001(\010"
1161 ":\005false\022\037\n\020randomize_search\030g \001(\010:\005false"
1162 "\022+\n search_random_variable_pool_size\030h \001"
1163 "(\003:\0010\022+\n\033push_all_tasks_toward_start\030\206\002 "
1164 "\001(\010:\005false\022%\n\026use_optional_variables\030l \001"
1165 "(\010:\005false\022!\n\023use_exact_lp_reason\030m \001(\010:\004"
1166 "true\022\'\n\027use_combined_no_overlap\030\205\001 \001(\010:\005"
1167 "false\022*\n\036at_most_one_max_expansion_size\030"
1168 "\216\002 \001(\005:\0013\022\"\n\023catch_sigint_signal\030\207\001 \001(\010:"
1169 "\004true\022!\n\022use_implied_bounds\030\220\001 \001(\010:\004true"
1170 "\022\"\n\022polish_lp_solution\030\257\001 \001(\010:\005false\022#\n\023"
1171 "lp_primal_tolerance\030\212\002 \001(\001:\0051e-07\022!\n\021lp_"
1172 "dual_tolerance\030\213\002 \001(\001:\0051e-07\022 \n\021convert_"
1173 "intervals\030\261\001 \001(\010:\004true\022\032\n\016symmetry_level"
1174 "\030\267\001 \001(\005:\0012\022\"\n\022use_symmetry_in_lp\030\255\002 \001(\010:"
1175 "\005false\022)\n\031keep_symmetry_in_presolve\030\257\002 \001"
1176 "(\010:\005false\0227\n+symmetry_detection_determin"
1177 "istic_time_limit\030\256\002 \001(\001:\0011\022%\n\026new_linear"
1178 "_propagation\030\340\001 \001(\010:\004true\022\037\n\021linear_spli"
1179 "t_size\030\200\002 \001(\005:\003100\022\036\n\023linearization_leve"
1180 "l\030Z \001(\005:\0011\022!\n\026boolean_encoding_level\030k \001"
1181 "(\005:\0011\022=\n0max_domain_size_when_encoding_e"
1182 "q_neq_constraints\030\277\001 \001(\005:\00216\022\033\n\014max_num_"
1183 "cuts\030[ \001(\005:\00510000\022\025\n\tcut_level\030\304\001 \001(\005:\0011"
1184 "\022*\n\033only_add_cuts_at_level_zero\030\\ \001(\010:\005f"
1185 "alse\022!\n\021add_objective_cut\030\305\001 \001(\010:\005false\022"
1186 "\031\n\013add_cg_cuts\030u \001(\010:\004true\022\032\n\014add_mir_cu"
1187 "ts\030x \001(\010:\004true\022!\n\022add_zero_half_cuts\030\251\001 "
1188 "\001(\010:\004true\022\036\n\017add_clique_cuts\030\254\001 \001(\010:\004tru"
1189 "e\022\033\n\014add_rlt_cuts\030\227\002 \001(\010:\004true\022\"\n\025max_al"
1190 "l_diff_cut_size\030\224\001 \001(\005:\00264\022\037\n\020add_lin_ma"
1191 "x_cuts\030\230\001 \001(\010:\004true\022)\n\034max_integer_round"
1192 "ing_scaling\030w \001(\005:\003600\022\'\n\031add_lp_constra"
1193 "ints_lazily\030p \001(\010:\004true\022!\n\022root_lp_itera"
1194 "tions\030\343\001 \001(\005:\0042000\0222\n$min_orthogonality_"
1195 "for_lp_constraints\030s \001(\001:\0040.05\022(\n\034max_cu"
1196 "t_rounds_at_level_zero\030\232\001 \001(\005:\0011\022+\n\036max_"
1197 "consecutive_inactive_count\030y \001(\005:\003100\0220\n"
1198 "\032cut_max_active_count_value\030\233\001 \001(\001:\0131000"
1199 "0000000\022$\n\026cut_active_count_decay\030\234\001 \001(\001"
1200 ":\0030.8\022!\n\022cut_cleanup_target\030\235\001 \001(\005:\0041000"
1201 "\022&\n\032new_constraints_batch_size\030z \001(\005:\00250"
1202 "\022)\n\033exploit_integer_lp_solution\030^ \001(\010:\004t"
1203 "rue\022%\n\027exploit_all_lp_solution\030t \001(\010:\004tr"
1204 "ue\022%\n\025exploit_best_solution\030\202\001 \001(\010:\005fals"
1205 "e\022+\n\033exploit_relaxation_solution\030\241\001 \001(\010:"
1206 "\005false\022 \n\021exploit_objective\030\203\001 \001(\010:\004true"
1207 "\022)\n\031detect_linearized_product\030\225\002 \001(\010:\005fa"
1208 "lse\022\037\n\rmip_max_bound\030| \001(\001:\01010000000\022\032\n\017"
1209 "mip_var_scaling\030} \001(\001:\0011\022&\n\026mip_scale_la"
1210 "rge_domain\030\341\001 \001(\010:\005false\0220\n!mip_automati"
1211 "cally_scale_variables\030\246\001 \001(\010:\004true\022\035\n\ron"
1212 "ly_solve_ip\030\336\001 \001(\010:\005false\022#\n\024mip_wanted_"
1213 "precision\030~ \001(\001:\0051e-06\022%\n\031mip_max_activi"
1214 "ty_exponent\030\177 \001(\005:\00253\022$\n\023mip_check_preci"
1215 "sion\030\200\001 \001(\001:\0060.0001\022/\n mip_compute_true_"
1216 "objective_bound\030\306\001 \001(\010:\004true\022\'\n\027mip_max_"
1217 "valid_magnitude\030\307\001 \001(\001:\0051e+20\022;\n+mip_tre"
1218 "at_high_magnitude_bounds_as_infinity\030\226\002 "
1219 "\001(\010:\005false\022\"\n\022mip_drop_tolerance\030\350\001 \001(\001:"
1220 "\0051e-16\022\036\n\022mip_presolve_level\030\205\002 \001(\005:\0012\"H"
1221 "\n\rVariableOrder\022\014\n\010IN_ORDER\020\000\022\024\n\020IN_REVE"
1222 "RSE_ORDER\020\001\022\023\n\017IN_RANDOM_ORDER\020\002\"F\n\010Pola"
1223 "rity\022\021\n\rPOLARITY_TRUE\020\000\022\022\n\016POLARITY_FALS"
1224 "E\020\001\022\023\n\017POLARITY_RANDOM\020\002\"V\n\035ConflictMini"
1225 "mizationAlgorithm\022\010\n\004NONE\020\000\022\n\n\006SIMPLE\020\001\022"
1226 "\r\n\tRECURSIVE\020\002\022\020\n\014EXPERIMENTAL\020\003\"\340\001\n\031Bin"
1227 "aryMinizationAlgorithm\022\032\n\026NO_BINARY_MINI"
1228 "MIZATION\020\000\022\035\n\031BINARY_MINIMIZATION_FIRST\020"
1229 "\001\0227\n3BINARY_MINIMIZATION_FIRST_WITH_TRAN"
1230 "SITIVE_REDUCTION\020\004\022)\n%BINARY_MINIMIZATIO"
1231 "N_WITH_REACHABILITY\020\002\022$\n EXPERIMENTAL_BI"
1232 "NARY_MINIMIZATION\020\003\"R\n\020ClauseProtection\022"
1233 "\023\n\017PROTECTION_NONE\020\000\022\025\n\021PROTECTION_ALWAY"
1234 "S\020\001\022\022\n\016PROTECTION_LBD\020\002\"5\n\016ClauseOrderin"
1235 "g\022\023\n\017CLAUSE_ACTIVITY\020\000\022\016\n\nCLAUSE_LBD\020\001\"\206"
1236 "\001\n\020RestartAlgorithm\022\016\n\nNO_RESTART\020\000\022\020\n\014L"
1237 "UBY_RESTART\020\001\022\035\n\031DL_MOVING_AVERAGE_RESTA"
1238 "RT\020\002\022\036\n\032LBD_MOVING_AVERAGE_RESTART\020\003\022\021\n\r"
1239 "FIXED_RESTART\020\004\"t\n\025MaxSatAssumptionOrder"
1240 "\022\034\n\030DEFAULT_ASSUMPTION_ORDER\020\000\022\035\n\031ORDER_"
1241 "ASSUMPTION_BY_DEPTH\020\001\022\036\n\032ORDER_ASSUMPTIO"
1242 "N_BY_WEIGHT\020\002\"o\n\035MaxSatStratificationAlg"
1243 "orithm\022\027\n\023STRATIFICATION_NONE\020\000\022\032\n\026STRAT"
1244 "IFICATION_DESCENT\020\001\022\031\n\025STRATIFICATION_AS"
1245 "CENT\020\002\"\341\001\n\017SearchBranching\022\024\n\020AUTOMATIC_"
1246 "SEARCH\020\000\022\020\n\014FIXED_SEARCH\020\001\022\024\n\020PORTFOLIO_"
1247 "SEARCH\020\002\022\r\n\tLP_SEARCH\020\003\022\026\n\022PSEUDO_COST_S"
1248 "EARCH\020\004\022\'\n#PORTFOLIO_WITH_QUICK_RESTART_"
1249 "SEARCH\020\005\022\017\n\013HINT_SEARCH\020\006\022\030\n\024PARTIAL_FIX"
1250 "ED_SEARCH\020\007\022\025\n\021RANDOMIZED_SEARCH\020\010\"\270\001\n\027S"
1251 "haredTreeSplitStrategy\022\027\n\023SPLIT_STRATEGY"
1252 "_AUTO\020\000\022\036\n\032SPLIT_STRATEGY_DISCREPANCY\020\001\022"
1253 "\037\n\033SPLIT_STRATEGY_OBJECTIVE_LB\020\002\022 \n\034SPLI"
1254 "T_STRATEGY_BALANCED_TREE\020\003\022!\n\035SPLIT_STRA"
1255 "TEGY_FIRST_PROPOSAL\020\004\"h\n\020FPRoundingMetho"
1256 "d\022\023\n\017NEAREST_INTEGER\020\000\022\016\n\nLOCK_BASED\020\001\022\025"
1257 "\n\021ACTIVE_LOCK_BASED\020\003\022\030\n\024PROPAGATION_ASS"
1258 "ISTED\020\002Bk\n\026com.google.ortools.satP\001Z:git"
1259 "hub.com/google/or-tools/ortools/sat/prot"
1260 "o/satparameters\252\002\022Google.OrTools.Sat"
1267 descriptor_table_protodef_ortools_2fsat_2fsat_5fparameters_2eproto,
1268 "ortools/sat/sat_parameters.proto",
1355class SatParameters::_Internal {
1358 decltype(::std::declval<SatParameters>()._impl_._has_bits_);
1363 const ::_pbi::LazyString SatParameters::Impl_::_i_give_permission_to_break_this_code_default_default_restart_algorithms_{
1364 {{
"LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART", 65}},
1368#if defined(PROTOBUF_CUSTOM_VTABLE)
1371 : ::google::protobuf::Message(arena) {
1376PROTOBUF_NDEBUG_INLINE SatParameters::Impl_::Impl_(
1377 ::google::protobuf::internal::InternalVisibility visibility,
1378 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
1379 const ::operations_research::sat::SatParameters& from_msg)
1380 : _has_bits_{from._has_bits_},
1382 restart_algorithms_{visibility, arena, from.restart_algorithms_},
1383 subsolvers_{visibility, arena, from.subsolvers_},
1384 ignore_subsolvers_{visibility, arena, from.ignore_subsolvers_},
1385 subsolver_params_{visibility, arena, from.subsolver_params_},
1386 extra_subsolvers_{visibility, arena, from.extra_subsolvers_},
1387 filter_subsolvers_{visibility, arena, from.filter_subsolvers_},
1388 default_restart_algorithms_(arena, from.default_restart_algorithms_, _i_give_permission_to_break_this_code_default_default_restart_algorithms_),
1389 name_(arena, from.name_),
1390 log_prefix_(arena, from.log_prefix_) {}
1393 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
1395#if defined(PROTOBUF_CUSTOM_VTABLE)
1398 : ::google::protobuf::Message(arena) {
1402 _internal_metadata_.
MergeFrom<::google::protobuf::UnknownFieldSet>(
1403 from._internal_metadata_);
1404 new (&
_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
1405 ::memcpy(
reinterpret_cast<char *
>(&
_impl_) +
1406 offsetof(Impl_, preferred_variable_order_),
1407 reinterpret_cast<const char *
>(&from._impl_) +
1408 offsetof(Impl_, preferred_variable_order_),
1409 offsetof(Impl_, share_glue_clauses_dtime_) -
1410 offsetof(Impl_, preferred_variable_order_) +
1411 sizeof(Impl_::share_glue_clauses_dtime_));
1415PROTOBUF_NDEBUG_INLINE SatParameters::Impl_::Impl_(
1416 ::google::protobuf::internal::InternalVisibility visibility,
1417 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1419 restart_algorithms_{visibility, arena},
1420 subsolvers_{visibility, arena},
1421 ignore_subsolvers_{visibility, arena},
1422 subsolver_params_{visibility, arena},
1423 extra_subsolvers_{visibility, arena},
1424 filter_subsolvers_{visibility, arena},
1425 default_restart_algorithms_(arena, Impl_::_i_give_permission_to_break_this_code_default_default_restart_algorithms_),
1430 variable_activity_decay_{0.8},
1431 max_variable_activity_value_{1e+100},
1432 clause_activity_decay_{0.999},
1433 clause_cleanup_period_{10000},
1434 glucose_decay_increment_period_{5000},
1435 max_clause_activity_value_{1e+20},
1436 glucose_max_decay_{0.95},
1437 glucose_decay_increment_{0.01},
1438 restart_period_{50},
1440 max_time_in_seconds_{std::numeric_limits<double>::infinity()},
1441 max_number_of_conflicts_{::int64_t{9223372036854775807}},
1442 max_memory_in_mb_{::int64_t{10000}},
1444 pb_cleanup_increment_{200},
1445 use_optimization_hints_{
true},
1446 use_phase_saving_{
true},
1447 count_assumption_levels_in_lbd_{
true},
1448 subsumption_during_conflict_analysis_{
true},
1449 core_minimization_level_{2},
1450 pb_cleanup_ratio_{0.5},
1452 presolve_bve_threshold_{500},
1453 presolve_probing_deterministic_time_limit_{30},
1454 presolve_bve_clause_weight_{3},
1455 clause_cleanup_lbd_bound_{5},
1456 restart_dl_average_ratio_{1},
1457 restart_running_window_size_{50},
1458 blocking_restart_window_size_{5000},
1459 blocking_restart_multiplier_{1.4},
1460 max_deterministic_time_{std::numeric_limits<double>::infinity()},
1461 restart_lbd_average_ratio_{1},
1462 presolve_bva_threshold_{1},
1463 presolve_use_bva_{
true},
1464 use_precedences_in_disjunctive_constraint_{
true},
1465 use_disjunctive_constraint_in_cumulative_{
true},
1466 find_multiple_cores_{
true},
1467 cp_model_presolve_{
true},
1468 presolve_blocked_clause_{
true},
1469 cover_optimization_{
true},
1470 cp_model_use_sat_presolve_{
true},
1471 linearization_level_{1},
1472 max_num_cuts_{10000},
1473 binary_search_num_conflicts_{-1},
1474 exploit_integer_lp_solution_{
true},
1475 auto_detect_greater_than_at_least_one_of_{
true},
1476 instantiate_all_variables_{
true},
1477 use_exact_lp_reason_{
true},
1478 boolean_encoding_level_{1},
1479 cp_model_probing_level_{2},
1480 add_lp_constraints_lazily_{
true},
1481 share_objective_bounds_{
true},
1482 share_level_zero_bounds_{
true},
1483 exploit_all_lp_solution_{
true},
1484 min_orthogonality_for_lp_constraints_{0.05},
1485 max_integer_rounding_scaling_{600},
1486 max_consecutive_inactive_count_{100},
1487 pseudo_cost_reliability_threshold_{::int64_t{100}},
1488 new_constraints_batch_size_{50},
1490 add_mir_cuts_{
true},
1491 use_rins_lns_{
true},
1492 exploit_objective_{
true},
1493 mip_max_bound_{10000000},
1494 mip_var_scaling_{1},
1495 mip_wanted_precision_{1e-06},
1496 mip_check_precision_{0.0001},
1497 mip_max_activity_exponent_{53},
1498 max_presolve_iterations_{3},
1499 merge_no_overlap_work_limit_{1000000000000},
1500 merge_at_most_one_work_limit_{100000000},
1501 presolve_substitution_level_{1},
1502 max_all_diff_cut_size_{64},
1503 catch_sigint_signal_{
true},
1504 use_implied_bounds_{
true},
1505 add_lin_max_cuts_{
true},
1506 use_sat_inprocessing_{
true},
1507 hint_conflict_limit_{10},
1508 cut_max_active_count_value_{10000000000},
1509 max_cut_rounds_at_level_zero_{1},
1510 cut_cleanup_target_{1000},
1511 cut_active_count_decay_{0.8},
1512 absolute_gap_limit_{0.0001},
1514 use_feasibility_pump_{
true},
1515 mip_automatically_scale_variables_{
true},
1516 add_zero_half_cuts_{
true},
1517 add_clique_cuts_{
true},
1518 polarity_rephase_increment_{1000},
1520 convert_intervals_{
true},
1521 expand_reservoir_constraints_{
true},
1522 log_to_stdout_{
true},
1523 mip_compute_true_objective_bound_{
true},
1524 max_domain_size_when_encoding_eq_neq_constraints_{16},
1525 clause_cleanup_ratio_{0.5},
1526 solution_pool_size_{3},
1528 mip_max_valid_magnitude_{1e+20},
1529 presolve_inclusion_work_limit_{::int64_t{100000000}},
1530 shaving_deterministic_time_in_probing_search_{0.001},
1531 shaving_search_deterministic_time_{0.1},
1532 ignore_names_{
true},
1533 share_binary_clauses_{
true},
1534 use_dual_scheduling_heuristics_{
true},
1535 new_linear_propagation_{
true},
1536 table_compression_level_{2},
1537 propagation_loop_detection_factor_{10},
1538 probing_deterministic_time_limit_{1},
1539 root_lp_iterations_{2000},
1540 max_size_to_create_precedence_literals_in_disjunctive_{60},
1541 mip_drop_tolerance_{1e-16},
1542 feasibility_jump_decay_{0.95},
1543 shared_tree_max_nodes_per_worker_{10000},
1544 infer_all_diffs_{
true},
1545 find_big_linear_overlap_{
true},
1546 feasibility_jump_enable_restarts_{
true},
1547 use_lb_relax_lns_{
true},
1548 feasibility_jump_var_randomization_probability_{0.05},
1549 feasibility_jump_var_perburbation_range_ratio_{0.2},
1550 violation_ls_perturbation_period_{100},
1551 linear_split_size_{100},
1552 feasibility_jump_linearization_level_{2},
1553 feasibility_jump_restart_factor_{1},
1554 violation_ls_compound_move_probability_{0.5},
1555 max_num_intervals_for_timetable_edge_finding_{100},
1556 mip_presolve_level_{2},
1557 lp_primal_tolerance_{1e-07},
1558 lp_dual_tolerance_{1e-07},
1559 feasibility_jump_max_expanded_constraint_size_{500},
1560 at_most_one_max_expansion_size_{3},
1561 inprocessing_dtime_ratio_{0.2},
1562 probing_num_combinations_limit_{20000},
1563 use_feasibility_jump_{
true},
1564 use_extended_probing_{
true},
1565 add_rlt_cuts_{
true},
1567 inprocessing_probing_dtime_{1},
1568 inprocessing_minimization_dtime_{1},
1569 max_pairs_pairwise_reasoning_in_no_overlap_2d_{1250},
1570 shared_tree_worker_min_restarts_per_subtree_{1},
1571 shared_tree_open_leaves_per_worker_{2},
1572 shaving_search_threshold_{::int64_t{64}},
1573 feasibility_jump_batch_dtime_{0.1},
1574 variables_shaving_level_{-1},
1575 lb_relax_num_workers_threshold_{16},
1576 shared_tree_worker_enable_trail_sharing_{
true},
1577 inprocessing_minimization_use_conflict_analysis_{
true},
1578 minimize_shared_clauses_{
true},
1579 shared_tree_worker_enable_phase_sharing_{
true},
1580 shared_tree_balance_tolerance_{1},
1581 symmetry_detection_deterministic_time_limit_{1},
1582 lns_initial_difficulty_{0.5},
1583 lns_initial_deterministic_limit_{0.1},
1584 routing_cut_dp_effort_{10000000},
1585 routing_cut_subset_size_for_exact_binary_relation_bound_{8},
1586 remove_fixed_variables_early_{
true},
1587 use_linear3_for_no_overlap_2d_precedences_{
true},
1588 routing_cut_max_infeasible_path_length_{6},
1589 routing_cut_subset_size_for_shortest_paths_bound_{8},
1590 max_alldiff_domain_size_{256},
1591 no_overlap_2d_boolean_relations_limit_{10},
1592 share_glue_clauses_dtime_{1} {}
1594inline void SatParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
1595 new (&
_impl_) Impl_(internal_visibility(), arena);
1596 ::memset(
reinterpret_cast<char *
>(&
_impl_) +
1597 offsetof(Impl_, preferred_variable_order_),
1599 offsetof(Impl_, maximum_regions_to_split_in_disconnected_no_overlap_2d_) -
1600 offsetof(Impl_, preferred_variable_order_) +
1601 sizeof(Impl_::maximum_regions_to_split_in_disconnected_no_overlap_2d_));
1607inline void SatParameters::SharedDtor(MessageLite& self) {
1609 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
1610 ABSL_DCHECK(this_.GetArena() ==
nullptr);
1611 this_.
_impl_.default_restart_algorithms_.Destroy();
1612 this_.
_impl_.name_.Destroy();
1613 this_.
_impl_.log_prefix_.Destroy();
1618 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
1619 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
1623 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
1626 InternalGetArenaOffset(
1627 ::google::protobuf::Message::internal_visibility()),
1630 InternalGetArenaOffset(
1631 ::google::protobuf::Message::internal_visibility()),
1634 InternalGetArenaOffset(
1635 ::google::protobuf::Message::internal_visibility()),
1638 InternalGetArenaOffset(
1639 ::google::protobuf::Message::internal_visibility()),
1642 InternalGetArenaOffset(
1643 ::google::protobuf::Message::internal_visibility()),
1646 InternalGetArenaOffset(
1647 ::google::protobuf::Message::internal_visibility()),
1649 if (arena_bits.has_value()) {
1650 return ::google::protobuf::internal::MessageCreator::CopyInit(
1659 return ::google::protobuf::internal::ClassDataFull{
1660 ::google::protobuf::internal::ClassData{
1665 &SatParameters::MergeImpl,
1666 ::google::protobuf::Message::GetNewImpl<SatParameters>(),
1667#if defined(PROTOBUF_CUSTOM_VTABLE)
1668 &SatParameters::SharedDtor,
1675 &SatParameters::kDescriptorMethods,
1681PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
1685PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
1691PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1692const ::_pbi::TcParseTable<5, 275, 13, 418, 43>
1693SatParameters::_table_ = {
1698 offsetof(
decltype(_table_), field_lookup_table),
1700 offsetof(
decltype(_table_), field_entries),
1703 offsetof(
decltype(_table_), aux_entries),
1706 ::_pbi::TcParser::GenericFallback,
1707 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1708 ::_pbi::TcParser::GetTable<::operations_research::sat::SatParameters>(),
1711 {::_pbi::TcParser::MiniParse, {}},
1713 {::_pbi::TcParser::FastEr0S1,
1714 {8, 3, 2, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.preferred_variable_order_)}},
1715 {::_pbi::TcParser::MiniParse, {}},
1716 {::_pbi::TcParser::MiniParse, {}},
1717 {::_pbi::TcParser::MiniParse, {}},
1718 {::_pbi::TcParser::MiniParse, {}},
1719 {::_pbi::TcParser::MiniParse, {}},
1720 {::_pbi::TcParser::MiniParse, {}},
1721 {::_pbi::TcParser::MiniParse, {}},
1722 {::_pbi::TcParser::MiniParse, {}},
1723 {::_pbi::TcParser::MiniParse, {}},
1724 {::_pbi::TcParser::MiniParse, {}},
1725 {::_pbi::TcParser::MiniParse, {}},
1727 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(
SatParameters, _impl_.clause_cleanup_target_), 4>(),
1728 {104, 4, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_cleanup_target_)}},
1729 {::_pbi::TcParser::MiniParse, {}},
1730 {::_pbi::TcParser::MiniParse, {}},
1732 {::_pbi::TcParser::FastF64S2,
1733 {641, 5, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.random_branches_ratio_)}},
1735 {::_pbi::TcParser::FastSR2,
1736 {3466, 63, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.ignore_subsolvers_)}},
1738 {::_pbi::TcParser::FastEr0S2,
1739 {1424, 21, 8, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.search_branching_)}},
1741 {::_pbi::TcParser::FastEr0S2,
1742 {920, 11, 2, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_sat_assumption_order_)}},
1744 {::_pbi::TcParser::FastV8S2,
1745 {928, 10, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_sat_reverse_assumption_order_)}},
1747 {::_pbi::TcParser::FastF64S2,
1748 {1193, 14, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.strategy_change_increase_ratio_)}},
1750 {::_pbi::TcParser::FastSS2,
1751 {1202, 0, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.default_restart_algorithms_)}},
1753 {::_pbi::TcParser::FastV8S2,
1754 {1464, 25, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.enumerate_all_solutions_)}},
1756 {::_pbi::TcParser::FastV64S2,
1757 {1728, 31, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.search_random_variable_pool_size_)}},
1759 {::_pbi::TcParser::FastV8S2,
1760 {712, 7, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.log_search_progress_)}},
1762 {::_pbi::TcParser::FastEr0S2,
1763 {976, 12, 2, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_cleanup_protection_)}},
1765 {::_pbi::TcParser::FastV8S2,
1766 {728, 8, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_pb_resolution_)}},
1768 {::_pbi::TcParser::FastEr0S2,
1769 {992, 13, 1, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_cleanup_ordering_)}},
1771 {::_pbi::TcParser::FastF64S2,
1772 {745, 6, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.random_polarity_ratio_)}},
1774 {::_pbi::TcParser::FastV8S2,
1775 {1264, 19, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_overload_checker_in_cumulative_)}},
1777 {::_pbi::TcParser::FastV8S2,
1778 {1272, 22, 0, PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_timetable_edge_finding_in_cumulative_)}},
1803 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.preferred_variable_order_), _Internal::kHasBitsOffset + 3, 1,
1804 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1806 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.initial_polarity_), _Internal::kHasBitsOffset + 104, 2,
1807 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1809 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.minimization_algorithm_), _Internal::kHasBitsOffset + 105, 3,
1810 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1812 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_cleanup_period_), _Internal::kHasBitsOffset + 109, 0,
1813 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1815 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_cleanup_target_), _Internal::kHasBitsOffset + 4, 0,
1816 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1818 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.variable_activity_decay_), _Internal::kHasBitsOffset + 106, 0,
1819 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1821 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_variable_activity_value_), _Internal::kHasBitsOffset + 107, 0,
1822 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1824 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_activity_decay_), _Internal::kHasBitsOffset + 108, 0,
1825 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1827 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_clause_activity_value_), _Internal::kHasBitsOffset + 111, 0,
1828 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1830 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.glucose_max_decay_), _Internal::kHasBitsOffset + 112, 0,
1831 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1833 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.glucose_decay_increment_), _Internal::kHasBitsOffset + 113, 0,
1834 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1836 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.glucose_decay_increment_period_), _Internal::kHasBitsOffset + 110, 0,
1837 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1839 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.restart_period_), _Internal::kHasBitsOffset + 114, 0,
1840 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1842 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.random_seed_), _Internal::kHasBitsOffset + 115, 0,
1843 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1845 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.random_branches_ratio_), _Internal::kHasBitsOffset + 5, 0,
1846 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1848 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.binary_minimization_algorithm_), _Internal::kHasBitsOffset + 119, 4,
1849 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1851 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_optimization_hints_), _Internal::kHasBitsOffset + 121, 0,
1852 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1854 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_time_in_seconds_), _Internal::kHasBitsOffset + 116, 0,
1855 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1857 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_number_of_conflicts_), _Internal::kHasBitsOffset + 117, 0,
1858 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
1860 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_memory_in_mb_), _Internal::kHasBitsOffset + 118, 0,
1861 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
1863 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.log_search_progress_), _Internal::kHasBitsOffset + 7, 0,
1864 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1866 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_pb_resolution_), _Internal::kHasBitsOffset + 8, 0,
1867 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1869 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_phase_saving_), _Internal::kHasBitsOffset + 122, 0,
1870 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1872 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.random_polarity_ratio_), _Internal::kHasBitsOffset + 6, 0,
1873 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1875 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.pb_cleanup_increment_), _Internal::kHasBitsOffset + 120, 0,
1876 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1878 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.pb_cleanup_ratio_), _Internal::kHasBitsOffset + 126, 0,
1879 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1881 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.minimize_reduction_during_pb_resolution_), _Internal::kHasBitsOffset + 9, 0,
1882 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1884 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.count_assumption_levels_in_lbd_), _Internal::kHasBitsOffset + 123, 0,
1885 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1887 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.core_minimization_level_), _Internal::kHasBitsOffset + 125, 0,
1888 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1890 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_sat_assumption_order_), _Internal::kHasBitsOffset + 11, 5,
1891 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1893 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_sat_reverse_assumption_order_), _Internal::kHasBitsOffset + 10, 0,
1894 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1896 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_sat_stratification_), _Internal::kHasBitsOffset + 127, 6,
1897 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1899 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.presolve_bve_threshold_), _Internal::kHasBitsOffset + 128, 0,
1900 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1902 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.presolve_bve_clause_weight_), _Internal::kHasBitsOffset + 130, 0,
1903 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1905 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.subsumption_during_conflict_analysis_), _Internal::kHasBitsOffset + 124, 0,
1906 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1908 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.presolve_probing_deterministic_time_limit_), _Internal::kHasBitsOffset + 129, 0,
1909 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1911 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_cleanup_protection_), _Internal::kHasBitsOffset + 12, 7,
1912 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1914 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_cleanup_lbd_bound_), _Internal::kHasBitsOffset + 131, 0,
1915 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1917 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_cleanup_ordering_), _Internal::kHasBitsOffset + 13, 8,
1918 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1920 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.restart_algorithms_), -1, 9,
1921 (0 | ::_fl::kFcRepeated | ::_fl::kEnumRange)},
1923 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.restart_running_window_size_), _Internal::kHasBitsOffset + 133, 0,
1924 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1926 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.restart_dl_average_ratio_), _Internal::kHasBitsOffset + 132, 0,
1927 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1929 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_blocking_restart_), _Internal::kHasBitsOffset + 16, 0,
1930 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1932 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.blocking_restart_window_size_), _Internal::kHasBitsOffset + 134, 0,
1933 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1935 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.blocking_restart_multiplier_), _Internal::kHasBitsOffset + 135, 0,
1936 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1938 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_deterministic_time_), _Internal::kHasBitsOffset + 136, 0,
1939 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1941 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.num_conflicts_before_strategy_changes_), _Internal::kHasBitsOffset + 15, 0,
1942 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1944 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.strategy_change_increase_ratio_), _Internal::kHasBitsOffset + 14, 0,
1945 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1947 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.default_restart_algorithms_), _Internal::kHasBitsOffset + 0, 0,
1948 (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
1950 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.restart_lbd_average_ratio_), _Internal::kHasBitsOffset + 137, 0,
1951 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1953 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.presolve_use_bva_), _Internal::kHasBitsOffset + 139, 0,
1954 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1956 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.presolve_bva_threshold_), _Internal::kHasBitsOffset + 138, 0,
1957 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1959 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_precedences_in_disjunctive_constraint_), _Internal::kHasBitsOffset + 140, 0,
1960 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1962 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_erwa_heuristic_), _Internal::kHasBitsOffset + 17, 0,
1963 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1965 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.initial_variables_activity_), _Internal::kHasBitsOffset + 20, 0,
1966 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1968 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.also_bump_variables_in_conflict_reasons_), _Internal::kHasBitsOffset + 18, 0,
1969 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1971 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_overload_checker_in_cumulative_), _Internal::kHasBitsOffset + 19, 0,
1972 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1974 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_timetable_edge_finding_in_cumulative_), _Internal::kHasBitsOffset + 22, 0,
1975 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1977 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_disjunctive_constraint_in_cumulative_), _Internal::kHasBitsOffset + 141, 0,
1978 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1980 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.search_branching_), _Internal::kHasBitsOffset + 21, 10,
1981 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1983 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.optimize_with_core_), _Internal::kHasBitsOffset + 23, 0,
1984 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1986 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.find_multiple_cores_), _Internal::kHasBitsOffset + 142, 0,
1987 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1989 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.optimize_with_max_hs_), _Internal::kHasBitsOffset + 24, 0,
1990 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1992 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.cp_model_presolve_), _Internal::kHasBitsOffset + 143, 0,
1993 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1995 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.enumerate_all_solutions_), _Internal::kHasBitsOffset + 25, 0,
1996 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1998 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.presolve_blocked_clause_), _Internal::kHasBitsOffset + 144, 0,
1999 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2001 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.cover_optimization_), _Internal::kHasBitsOffset + 145, 0,
2002 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2004 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.linearization_level_), _Internal::kHasBitsOffset + 147, 0,
2005 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2007 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_num_cuts_), _Internal::kHasBitsOffset + 148, 0,
2008 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2010 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.only_add_cuts_at_level_zero_), _Internal::kHasBitsOffset + 26, 0,
2011 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2013 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.cp_model_use_sat_presolve_), _Internal::kHasBitsOffset + 146, 0,
2014 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2016 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.exploit_integer_lp_solution_), _Internal::kHasBitsOffset + 150, 0,
2017 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2019 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.auto_detect_greater_than_at_least_one_of_), _Internal::kHasBitsOffset + 151, 0,
2020 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2022 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.stop_after_first_solution_), _Internal::kHasBitsOffset + 27, 0,
2023 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2025 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.binary_search_num_conflicts_), _Internal::kHasBitsOffset + 149, 0,
2026 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2028 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.num_search_workers_), _Internal::kHasBitsOffset + 30, 0,
2029 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2031 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_lns_only_), _Internal::kHasBitsOffset + 28, 0,
2032 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2034 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.randomize_search_), _Internal::kHasBitsOffset + 29, 0,
2035 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2037 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.search_random_variable_pool_size_), _Internal::kHasBitsOffset + 31, 0,
2038 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2040 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.instantiate_all_variables_), _Internal::kHasBitsOffset + 152, 0,
2041 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2043 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.boolean_encoding_level_), _Internal::kHasBitsOffset + 154, 0,
2044 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2046 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_optional_variables_), _Internal::kHasBitsOffset + 32, 0,
2047 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2049 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_exact_lp_reason_), _Internal::kHasBitsOffset + 153, 0,
2050 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2052 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.cp_model_probing_level_), _Internal::kHasBitsOffset + 155, 0,
2053 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2055 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.add_lp_constraints_lazily_), _Internal::kHasBitsOffset + 156, 0,
2056 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2058 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.share_objective_bounds_), _Internal::kHasBitsOffset + 157, 0,
2059 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2061 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.share_level_zero_bounds_), _Internal::kHasBitsOffset + 158, 0,
2062 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2064 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.min_orthogonality_for_lp_constraints_), _Internal::kHasBitsOffset + 160, 0,
2065 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2067 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.exploit_all_lp_solution_), _Internal::kHasBitsOffset + 159, 0,
2068 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2070 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.add_cg_cuts_), _Internal::kHasBitsOffset + 165, 0,
2071 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2073 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_integer_rounding_scaling_), _Internal::kHasBitsOffset + 161, 0,
2074 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2076 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.add_mir_cuts_), _Internal::kHasBitsOffset + 166, 0,
2077 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2079 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_consecutive_inactive_count_), _Internal::kHasBitsOffset + 162, 0,
2080 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2082 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.new_constraints_batch_size_), _Internal::kHasBitsOffset + 164, 0,
2083 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2085 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.pseudo_cost_reliability_threshold_), _Internal::kHasBitsOffset + 163, 0,
2086 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2088 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_max_bound_), _Internal::kHasBitsOffset + 169, 0,
2089 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2091 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_var_scaling_), _Internal::kHasBitsOffset + 170, 0,
2092 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2094 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_wanted_precision_), _Internal::kHasBitsOffset + 171, 0,
2095 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2097 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_max_activity_exponent_), _Internal::kHasBitsOffset + 173, 0,
2098 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2100 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_check_precision_), _Internal::kHasBitsOffset + 172, 0,
2101 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2103 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_rins_lns_), _Internal::kHasBitsOffset + 167, 0,
2104 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2106 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.exploit_best_solution_), _Internal::kHasBitsOffset + 33, 0,
2107 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2109 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.exploit_objective_), _Internal::kHasBitsOffset + 168, 0,
2110 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2112 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.fill_tightened_domains_in_response_), _Internal::kHasBitsOffset + 34, 0,
2113 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2115 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_combined_no_overlap_), _Internal::kHasBitsOffset + 35, 0,
2116 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2118 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.interleave_batch_size_), _Internal::kHasBitsOffset + 36, 0,
2119 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2121 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.catch_sigint_signal_), _Internal::kHasBitsOffset + 179, 0,
2122 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2124 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.interleave_search_), _Internal::kHasBitsOffset + 37, 0,
2125 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2127 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.diversify_lns_params_), _Internal::kHasBitsOffset + 38, 0,
2128 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2130 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_presolve_iterations_), _Internal::kHasBitsOffset + 174, 0,
2131 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2133 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_implied_bounds_), _Internal::kHasBitsOffset + 180, 0,
2134 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2136 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.merge_no_overlap_work_limit_), _Internal::kHasBitsOffset + 175, 0,
2137 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2139 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.merge_at_most_one_work_limit_), _Internal::kHasBitsOffset + 176, 0,
2140 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2142 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.presolve_substitution_level_), _Internal::kHasBitsOffset + 177, 0,
2143 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2145 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_all_diff_cut_size_), _Internal::kHasBitsOffset + 178, 0,
2146 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2148 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.stop_after_presolve_), _Internal::kHasBitsOffset + 39, 0,
2149 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2151 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.debug_max_num_presolve_operations_), _Internal::kHasBitsOffset + 41, 0,
2152 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2154 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.add_lin_max_cuts_), _Internal::kHasBitsOffset + 181, 0,
2155 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2157 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.hint_conflict_limit_), _Internal::kHasBitsOffset + 183, 0,
2158 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2160 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_cut_rounds_at_level_zero_), _Internal::kHasBitsOffset + 185, 0,
2161 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2163 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.cut_max_active_count_value_), _Internal::kHasBitsOffset + 184, 0,
2164 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2166 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.cut_active_count_decay_), _Internal::kHasBitsOffset + 187, 0,
2167 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2169 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.cut_cleanup_target_), _Internal::kHasBitsOffset + 186, 0,
2170 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2172 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.absolute_gap_limit_), _Internal::kHasBitsOffset + 188, 0,
2173 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2175 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.relative_gap_limit_), _Internal::kHasBitsOffset + 42, 0,
2176 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2178 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.exploit_relaxation_solution_), _Internal::kHasBitsOffset + 40, 0,
2179 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2181 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.debug_postsolve_with_full_solver_), _Internal::kHasBitsOffset + 43, 0,
2182 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2184 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_sat_inprocessing_), _Internal::kHasBitsOffset + 182, 0,
2185 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2187 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_feasibility_pump_), _Internal::kHasBitsOffset + 190, 0,
2188 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2190 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.fp_rounding_), _Internal::kHasBitsOffset + 189, 11,
2191 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2193 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_automatically_scale_variables_), _Internal::kHasBitsOffset + 191, 0,
2194 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2196 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.repair_hint_), _Internal::kHasBitsOffset + 44, 0,
2197 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2199 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.polarity_rephase_increment_), _Internal::kHasBitsOffset + 194, 0,
2200 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2202 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.add_zero_half_cuts_), _Internal::kHasBitsOffset + 192, 0,
2203 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2205 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.expand_alldiff_constraints_), _Internal::kHasBitsOffset + 45, 0,
2206 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2208 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.name_), _Internal::kHasBitsOffset + 1, 0,
2209 (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
2211 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.add_clique_cuts_), _Internal::kHasBitsOffset + 193, 0,
2212 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2214 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.keep_all_feasible_solutions_in_presolve_), _Internal::kHasBitsOffset + 46, 0,
2215 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2217 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.presolve_extract_integer_enforcement_), _Internal::kHasBitsOffset + 47, 0,
2218 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2220 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.polish_lp_solution_), _Internal::kHasBitsOffset + 48, 0,
2221 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2223 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_probing_search_), _Internal::kHasBitsOffset + 49, 0,
2224 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2226 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.convert_intervals_), _Internal::kHasBitsOffset + 196, 0,
2227 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2229 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.permute_variable_randomly_), _Internal::kHasBitsOffset + 50, 0,
2230 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2232 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.permute_presolve_constraint_order_), _Internal::kHasBitsOffset + 51, 0,
2233 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2235 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_absl_random_), _Internal::kHasBitsOffset + 52, 0,
2236 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2238 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.disable_constraint_expansion_), _Internal::kHasBitsOffset + 53, 0,
2239 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2241 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.expand_reservoir_constraints_), _Internal::kHasBitsOffset + 197, 0,
2242 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2244 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.symmetry_level_), _Internal::kHasBitsOffset + 195, 0,
2245 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2247 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.log_prefix_), _Internal::kHasBitsOffset + 2, 0,
2248 (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
2250 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.log_to_stdout_), _Internal::kHasBitsOffset + 198, 0,
2251 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2253 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.log_to_response_), _Internal::kHasBitsOffset + 54, 0,
2254 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2256 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.optimize_with_lb_tree_search_), _Internal::kHasBitsOffset + 55, 0,
2257 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2259 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.log_subsolver_statistics_), _Internal::kHasBitsOffset + 56, 0,
2260 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2262 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.clause_cleanup_ratio_), _Internal::kHasBitsOffset + 201, 0,
2263 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2265 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_domain_size_when_encoding_eq_neq_constraints_), _Internal::kHasBitsOffset + 200, 0,
2266 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2268 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.fix_variables_to_their_hinted_value_), _Internal::kHasBitsOffset + 57, 0,
2269 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2271 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.solution_pool_size_), _Internal::kHasBitsOffset + 202, 0,
2272 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2274 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.fill_additional_solutions_in_response_), _Internal::kHasBitsOffset + 58, 0,
2275 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2277 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.debug_crash_on_bad_hint_), _Internal::kHasBitsOffset + 59, 0,
2278 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2280 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.cut_level_), _Internal::kHasBitsOffset + 203, 0,
2281 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2283 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.add_objective_cut_), _Internal::kHasBitsOffset + 60, 0,
2284 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2286 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_compute_true_objective_bound_), _Internal::kHasBitsOffset + 199, 0,
2287 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2289 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_max_valid_magnitude_), _Internal::kHasBitsOffset + 204, 0,
2290 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2292 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_timetabling_in_no_overlap_2d_), _Internal::kHasBitsOffset + 61, 0,
2293 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2295 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.presolve_inclusion_work_limit_), _Internal::kHasBitsOffset + 205, 0,
2296 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2298 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.ignore_names_), _Internal::kHasBitsOffset + 208, 0,
2299 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2301 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.share_binary_clauses_), _Internal::kHasBitsOffset + 209, 0,
2302 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2304 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shaving_deterministic_time_in_probing_search_), _Internal::kHasBitsOffset + 206, 0,
2305 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2307 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shaving_search_deterministic_time_), _Internal::kHasBitsOffset + 207, 0,
2308 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2310 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.num_workers_), _Internal::kHasBitsOffset + 63, 0,
2311 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2313 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.subsolvers_), -1, 0,
2314 (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
2316 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.ignore_subsolvers_), -1, 0,
2317 (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
2319 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.subsolver_params_), -1, 0,
2320 (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
2322 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_energetic_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 62, 0,
2323 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2325 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_dual_scheduling_heuristics_), _Internal::kHasBitsOffset + 210, 0,
2326 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2328 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_hard_precedences_in_cumulative_), _Internal::kHasBitsOffset + 64, 0,
2329 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2331 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.detect_table_with_cost_), _Internal::kHasBitsOffset + 65, 0,
2332 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2334 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.table_compression_level_), _Internal::kHasBitsOffset + 212, 0,
2335 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2337 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.extra_subsolvers_), -1, 0,
2338 (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
2340 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.exploit_all_precedences_), _Internal::kHasBitsOffset + 66, 0,
2341 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2343 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.propagation_loop_detection_factor_), _Internal::kHasBitsOffset + 213, 0,
2344 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2346 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.only_solve_ip_), _Internal::kHasBitsOffset + 67, 0,
2347 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2349 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.encode_complex_linear_constraint_with_integer_), _Internal::kHasBitsOffset + 68, 0,
2350 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2352 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.new_linear_propagation_), _Internal::kHasBitsOffset + 211, 0,
2353 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2355 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_scale_large_domain_), _Internal::kHasBitsOffset + 69, 0,
2356 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2358 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.probing_deterministic_time_limit_), _Internal::kHasBitsOffset + 214, 0,
2359 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2361 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.root_lp_iterations_), _Internal::kHasBitsOffset + 215, 0,
2362 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2364 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_objective_lb_search_), _Internal::kHasBitsOffset + 70, 0,
2365 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2367 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_size_to_create_precedence_literals_in_disjunctive_), _Internal::kHasBitsOffset + 216, 0,
2368 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2370 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_strong_propagation_in_disjunctive_), _Internal::kHasBitsOffset + 71, 0,
2371 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2373 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_drop_tolerance_), _Internal::kHasBitsOffset + 217, 0,
2374 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2376 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.infer_all_diffs_), _Internal::kHasBitsOffset + 220, 0,
2377 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2379 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.find_big_linear_overlap_), _Internal::kHasBitsOffset + 221, 0,
2380 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2382 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shared_tree_num_workers_), _Internal::kHasBitsOffset + 72, 0,
2383 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2385 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_shared_tree_search_), _Internal::kHasBitsOffset + 75, 0,
2386 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2388 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shared_tree_max_nodes_per_worker_), _Internal::kHasBitsOffset + 219, 0,
2389 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2391 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shared_tree_split_strategy_), _Internal::kHasBitsOffset + 73, 12,
2392 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2394 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_ls_only_), _Internal::kHasBitsOffset + 76, 0,
2395 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2397 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.feasibility_jump_decay_), _Internal::kHasBitsOffset + 218, 0,
2398 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2400 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.num_violation_ls_), _Internal::kHasBitsOffset + 74, 0,
2401 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2403 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.feasibility_jump_var_randomization_probability_), _Internal::kHasBitsOffset + 224, 0,
2404 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2406 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.feasibility_jump_var_perburbation_range_ratio_), _Internal::kHasBitsOffset + 225, 0,
2407 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2409 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.violation_ls_perturbation_period_), _Internal::kHasBitsOffset + 226, 0,
2410 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2412 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.feasibility_jump_enable_restarts_), _Internal::kHasBitsOffset + 222, 0,
2413 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2415 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.stop_after_root_propagation_), _Internal::kHasBitsOffset + 77, 0,
2416 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2418 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_objective_shaving_search_), _Internal::kHasBitsOffset + 78, 0,
2419 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2421 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_lb_relax_lns_), _Internal::kHasBitsOffset + 223, 0,
2422 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2424 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.linear_split_size_), _Internal::kHasBitsOffset + 227, 0,
2425 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2427 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.feasibility_jump_linearization_level_), _Internal::kHasBitsOffset + 228, 0,
2428 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2430 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.feasibility_jump_restart_factor_), _Internal::kHasBitsOffset + 229, 0,
2431 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2433 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.violation_ls_compound_move_probability_), _Internal::kHasBitsOffset + 230, 0,
2434 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2436 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_num_intervals_for_timetable_edge_finding_), _Internal::kHasBitsOffset + 231, 0,
2437 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2439 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_presolve_level_), _Internal::kHasBitsOffset + 232, 0,
2440 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2442 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.push_all_tasks_toward_start_), _Internal::kHasBitsOffset + 79, 0,
2443 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2445 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_dynamic_precedence_in_disjunctive_), _Internal::kHasBitsOffset + 80, 0,
2446 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2448 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.feasibility_jump_max_expanded_constraint_size_), _Internal::kHasBitsOffset + 235, 0,
2449 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2451 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_feasibility_jump_), _Internal::kHasBitsOffset + 239, 0,
2452 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2454 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.lp_primal_tolerance_), _Internal::kHasBitsOffset + 233, 0,
2455 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2457 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.lp_dual_tolerance_), _Internal::kHasBitsOffset + 234, 0,
2458 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2460 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_dynamic_precedence_in_cumulative_), _Internal::kHasBitsOffset + 81, 0,
2461 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2463 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_extended_probing_), _Internal::kHasBitsOffset + 240, 0,
2464 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2466 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.at_most_one_max_expansion_size_), _Internal::kHasBitsOffset + 236, 0,
2467 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2469 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_area_energetic_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 82, 0,
2470 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2472 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.probing_num_combinations_limit_), _Internal::kHasBitsOffset + 238, 0,
2473 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2475 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.inprocessing_dtime_ratio_), _Internal::kHasBitsOffset + 237, 0,
2476 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2478 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.inprocessing_probing_dtime_), _Internal::kHasBitsOffset + 243, 0,
2479 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2481 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.inprocessing_minimization_dtime_), _Internal::kHasBitsOffset + 244, 0,
2482 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2484 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 245, 0,
2485 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2487 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.detect_linearized_product_), _Internal::kHasBitsOffset + 84, 0,
2488 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2490 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.mip_treat_high_magnitude_bounds_as_infinity_), _Internal::kHasBitsOffset + 85, 0,
2491 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2493 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.add_rlt_cuts_), _Internal::kHasBitsOffset + 241, 0,
2494 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2496 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_lin_max_size_for_expansion_), _Internal::kHasBitsOffset + 83, 0,
2497 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2499 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shared_tree_open_leaves_per_worker_), _Internal::kHasBitsOffset + 247, 0,
2500 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2502 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shared_tree_worker_min_restarts_per_subtree_), _Internal::kHasBitsOffset + 246, 0,
2503 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2505 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_lns_), _Internal::kHasBitsOffset + 242, 0,
2506 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2508 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.save_lp_basis_in_lb_tree_search_), _Internal::kHasBitsOffset + 86, 0,
2509 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2511 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.share_glue_clauses_), _Internal::kHasBitsOffset + 87, 0,
2512 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2514 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_conservative_scale_overload_checker_), _Internal::kHasBitsOffset + 88, 0,
2515 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2517 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.encode_cumulative_as_reservoir_), _Internal::kHasBitsOffset + 89, 0,
2518 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2520 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.expand_reservoir_using_circuit_), _Internal::kHasBitsOffset + 90, 0,
2521 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2523 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.variables_shaving_level_), _Internal::kHasBitsOffset + 250, 0,
2524 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2526 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shaving_search_threshold_), _Internal::kHasBitsOffset + 248, 0,
2527 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2529 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_num_deterministic_batches_), _Internal::kHasBitsOffset + 92, 0,
2530 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2532 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.feasibility_jump_batch_dtime_), _Internal::kHasBitsOffset + 249, 0,
2533 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2535 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.filter_subsolvers_), -1, 0,
2536 (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
2538 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.num_full_subsolvers_), _Internal::kHasBitsOffset + 93, 0,
2539 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2541 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shared_tree_worker_enable_trail_sharing_), _Internal::kHasBitsOffset + 252, 0,
2542 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2544 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.lb_relax_num_workers_threshold_), _Internal::kHasBitsOffset + 251, 0,
2545 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2547 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.inprocessing_minimization_use_conflict_analysis_), _Internal::kHasBitsOffset + 253, 0,
2548 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2550 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.inprocessing_minimization_use_all_orderings_), _Internal::kHasBitsOffset + 91, 0,
2551 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2553 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_try_edge_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 94, 0,
2554 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2556 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.minimize_shared_clauses_), _Internal::kHasBitsOffset + 254, 0,
2557 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2559 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_symmetry_in_lp_), _Internal::kHasBitsOffset + 95, 0,
2560 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2562 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.symmetry_detection_deterministic_time_limit_), _Internal::kHasBitsOffset + 257, 0,
2563 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2565 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.keep_symmetry_in_presolve_), _Internal::kHasBitsOffset + 96, 0,
2566 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2568 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shared_tree_worker_enable_phase_sharing_), _Internal::kHasBitsOffset + 255, 0,
2569 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2571 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.shared_tree_balance_tolerance_), _Internal::kHasBitsOffset + 256, 0,
2572 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2574 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.debug_crash_if_presolve_breaks_hint_), _Internal::kHasBitsOffset + 97, 0,
2575 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2577 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.lns_initial_difficulty_), _Internal::kHasBitsOffset + 258, 0,
2578 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2580 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.lns_initial_deterministic_limit_), _Internal::kHasBitsOffset + 259, 0,
2581 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2583 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.polarity_exploit_ls_hints_), _Internal::kHasBitsOffset + 100, 0,
2584 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2586 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.remove_fixed_variables_early_), _Internal::kHasBitsOffset + 262, 0,
2587 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2589 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_all_different_for_circuit_), _Internal::kHasBitsOffset + 101, 0,
2590 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2592 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.routing_cut_subset_size_for_binary_relation_bound_), _Internal::kHasBitsOffset + 98, 0,
2593 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2595 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.routing_cut_subset_size_for_tight_binary_relation_bound_), _Internal::kHasBitsOffset + 99, 0,
2596 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2598 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.routing_cut_dp_effort_), _Internal::kHasBitsOffset + 260, 0,
2599 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2601 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_), _Internal::kHasBitsOffset + 103, 0,
2602 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2604 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.routing_cut_subset_size_for_exact_binary_relation_bound_), _Internal::kHasBitsOffset + 261, 0,
2605 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2607 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.routing_cut_max_infeasible_path_length_), _Internal::kHasBitsOffset + 264, 0,
2608 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2610 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.routing_cut_subset_size_for_shortest_paths_bound_), _Internal::kHasBitsOffset + 265, 0,
2611 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2613 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.max_alldiff_domain_size_), _Internal::kHasBitsOffset + 266, 0,
2614 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2616 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.no_overlap_2d_boolean_relations_limit_), _Internal::kHasBitsOffset + 267, 0,
2617 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2619 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.share_glue_clauses_dtime_), _Internal::kHasBitsOffset + 268, 0,
2620 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2622 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.use_linear3_for_no_overlap_2d_precedences_), _Internal::kHasBitsOffset + 263, 0,
2623 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2625 {PROTOBUF_FIELD_OFFSET(
SatParameters, _impl_.filter_sat_postsolve_clauses_), _Internal::kHasBitsOffset + 102, 0,
2626 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2629 {::_pbi::TcParser::GetTable<::operations_research::sat::SatParameters>()},
2644 "\45\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\21\0\0\0\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
2645 "operations_research.sat.SatParameters"
2646 "default_restart_algorithms"
2657 ::google::protobuf::internal::TSanWrite(&
_impl_);
2658 ::uint32_t cached_has_bits = 0;
2660 (void) cached_has_bits;
2662 _impl_.restart_algorithms_.Clear();
2663 _impl_.subsolvers_.Clear();
2664 _impl_.ignore_subsolvers_.Clear();
2665 _impl_.subsolver_params_.Clear();
2666 _impl_.extra_subsolvers_.Clear();
2667 _impl_.filter_subsolvers_.Clear();
2668 cached_has_bits =
_impl_._has_bits_[0];
2669 if ((cached_has_bits & 0x00000007u) != 0) {
2670 if ((cached_has_bits & 0x00000001u) != 0) {
2671 _impl_.default_restart_algorithms_.ClearToDefault(::operations_research::sat::SatParameters::Impl_::_i_give_permission_to_break_this_code_default_default_restart_algorithms_, GetArena());
2673 if ((cached_has_bits & 0x00000002u) != 0) {
2674 _impl_.name_.ClearNonDefaultToEmpty();
2676 if ((cached_has_bits & 0x00000004u) != 0) {
2677 _impl_.log_prefix_.ClearNonDefaultToEmpty();
2680 if ((cached_has_bits & 0x000000f8u) != 0) {
2681 ::memset(&
_impl_.preferred_variable_order_, 0,
static_cast<::
size_t>(
2682 reinterpret_cast<char*
>(&
_impl_.log_search_progress_) -
2683 reinterpret_cast<char*
>(&
_impl_.preferred_variable_order_)) +
sizeof(
_impl_.log_search_progress_));
2685 if ((cached_has_bits & 0x0000ff00u) != 0) {
2686 ::memset(&
_impl_.use_pb_resolution_, 0,
static_cast<::
size_t>(
2687 reinterpret_cast<char*
>(&
_impl_.num_conflicts_before_strategy_changes_) -
2688 reinterpret_cast<char*
>(&
_impl_.use_pb_resolution_)) +
sizeof(
_impl_.num_conflicts_before_strategy_changes_));
2690 if ((cached_has_bits & 0x00ff0000u) != 0) {
2691 ::memset(&
_impl_.use_blocking_restart_, 0,
static_cast<::
size_t>(
2692 reinterpret_cast<char*
>(&
_impl_.optimize_with_core_) -
2693 reinterpret_cast<char*
>(&
_impl_.use_blocking_restart_)) +
sizeof(
_impl_.optimize_with_core_));
2695 if ((cached_has_bits & 0xff000000u) != 0) {
2696 ::memset(&
_impl_.optimize_with_max_hs_, 0,
static_cast<::
size_t>(
2697 reinterpret_cast<char*
>(&
_impl_.search_random_variable_pool_size_) -
2698 reinterpret_cast<char*
>(&
_impl_.optimize_with_max_hs_)) +
sizeof(
_impl_.search_random_variable_pool_size_));
2700 cached_has_bits =
_impl_._has_bits_[1];
2701 if ((cached_has_bits & 0x000000ffu) != 0) {
2702 ::memset(&
_impl_.use_optional_variables_, 0,
static_cast<::
size_t>(
2703 reinterpret_cast<char*
>(&
_impl_.stop_after_presolve_) -
2704 reinterpret_cast<char*
>(&
_impl_.use_optional_variables_)) +
sizeof(
_impl_.stop_after_presolve_));
2706 if ((cached_has_bits & 0x0000ff00u) != 0) {
2707 ::memset(&
_impl_.exploit_relaxation_solution_, 0,
static_cast<::
size_t>(
2708 reinterpret_cast<char*
>(&
_impl_.presolve_extract_integer_enforcement_) -
2709 reinterpret_cast<char*
>(&
_impl_.exploit_relaxation_solution_)) +
sizeof(
_impl_.presolve_extract_integer_enforcement_));
2711 if ((cached_has_bits & 0x00ff0000u) != 0) {
2712 ::memset(&
_impl_.polish_lp_solution_, 0,
static_cast<::
size_t>(
2713 reinterpret_cast<char*
>(&
_impl_.optimize_with_lb_tree_search_) -
2714 reinterpret_cast<char*
>(&
_impl_.polish_lp_solution_)) +
sizeof(
_impl_.optimize_with_lb_tree_search_));
2716 if ((cached_has_bits & 0xff000000u) != 0) {
2717 ::memset(&
_impl_.log_subsolver_statistics_, 0,
static_cast<::
size_t>(
2718 reinterpret_cast<char*
>(&
_impl_.num_workers_) -
2719 reinterpret_cast<char*
>(&
_impl_.log_subsolver_statistics_)) +
sizeof(
_impl_.num_workers_));
2721 cached_has_bits =
_impl_._has_bits_[2];
2722 if ((cached_has_bits & 0x000000ffu) != 0) {
2723 ::memset(&
_impl_.use_hard_precedences_in_cumulative_, 0,
static_cast<::
size_t>(
2724 reinterpret_cast<char*
>(&
_impl_.use_strong_propagation_in_disjunctive_) -
2725 reinterpret_cast<char*
>(&
_impl_.use_hard_precedences_in_cumulative_)) +
sizeof(
_impl_.use_strong_propagation_in_disjunctive_));
2727 if ((cached_has_bits & 0x0000ff00u) != 0) {
2728 ::memset(&
_impl_.shared_tree_num_workers_, 0,
static_cast<::
size_t>(
2729 reinterpret_cast<char*
>(&
_impl_.push_all_tasks_toward_start_) -
2730 reinterpret_cast<char*
>(&
_impl_.shared_tree_num_workers_)) +
sizeof(
_impl_.push_all_tasks_toward_start_));
2732 if ((cached_has_bits & 0x00ff0000u) != 0) {
2733 ::memset(&
_impl_.use_dynamic_precedence_in_disjunctive_, 0,
static_cast<::
size_t>(
2734 reinterpret_cast<char*
>(&
_impl_.share_glue_clauses_) -
2735 reinterpret_cast<char*
>(&
_impl_.use_dynamic_precedence_in_disjunctive_)) +
sizeof(
_impl_.share_glue_clauses_));
2737 if ((cached_has_bits & 0xff000000u) != 0) {
2738 ::memset(&
_impl_.use_conservative_scale_overload_checker_, 0,
static_cast<::
size_t>(
2739 reinterpret_cast<char*
>(&
_impl_.use_symmetry_in_lp_) -
2740 reinterpret_cast<char*
>(&
_impl_.use_conservative_scale_overload_checker_)) +
sizeof(
_impl_.use_symmetry_in_lp_));
2742 cached_has_bits =
_impl_._has_bits_[3];
2743 if ((cached_has_bits & 0x000000ffu) != 0) {
2744 ::memset(&
_impl_.keep_symmetry_in_presolve_, 0,
static_cast<::
size_t>(
2745 reinterpret_cast<char*
>(&
_impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_) -
2746 reinterpret_cast<char*
>(&
_impl_.keep_symmetry_in_presolve_)) +
sizeof(
_impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_));
2748 if ((cached_has_bits & 0x0000ff00u) != 0) {
2749 _impl_.initial_polarity_ = 1;
2750 _impl_.minimization_algorithm_ = 2;
2751 _impl_.variable_activity_decay_ = 0.8;
2752 _impl_.max_variable_activity_value_ = 1e+100;
2753 _impl_.clause_activity_decay_ = 0.999;
2754 _impl_.clause_cleanup_period_ = 10000;
2755 _impl_.glucose_decay_increment_period_ = 5000;
2756 _impl_.max_clause_activity_value_ = 1e+20;
2758 if ((cached_has_bits & 0x00ff0000u) != 0) {
2759 _impl_.glucose_max_decay_ = 0.95;
2760 _impl_.glucose_decay_increment_ = 0.01;
2761 _impl_.restart_period_ = 50;
2763 _impl_.max_time_in_seconds_ = std::numeric_limits<double>::infinity();
2764 _impl_.max_number_of_conflicts_ = ::int64_t{9223372036854775807};
2765 _impl_.max_memory_in_mb_ = ::int64_t{10000};
2766 _impl_.binary_minimization_algorithm_ = 1;
2768 if ((cached_has_bits & 0xff000000u) != 0) {
2769 _impl_.pb_cleanup_increment_ = 200;
2770 _impl_.use_optimization_hints_ =
true;
2771 _impl_.use_phase_saving_ =
true;
2772 _impl_.count_assumption_levels_in_lbd_ =
true;
2773 _impl_.subsumption_during_conflict_analysis_ =
true;
2774 _impl_.core_minimization_level_ = 2;
2775 _impl_.pb_cleanup_ratio_ = 0.5;
2776 _impl_.max_sat_stratification_ = 1;
2778 cached_has_bits =
_impl_._has_bits_[4];
2779 if ((cached_has_bits & 0x000000ffu) != 0) {
2780 _impl_.presolve_bve_threshold_ = 500;
2781 _impl_.presolve_probing_deterministic_time_limit_ = 30;
2782 _impl_.presolve_bve_clause_weight_ = 3;
2783 _impl_.clause_cleanup_lbd_bound_ = 5;
2784 _impl_.restart_dl_average_ratio_ = 1;
2785 _impl_.restart_running_window_size_ = 50;
2786 _impl_.blocking_restart_window_size_ = 5000;
2787 _impl_.blocking_restart_multiplier_ = 1.4;
2789 if ((cached_has_bits & 0x0000ff00u) != 0) {
2790 _impl_.max_deterministic_time_ = std::numeric_limits<double>::infinity();
2791 _impl_.restart_lbd_average_ratio_ = 1;
2792 _impl_.presolve_bva_threshold_ = 1;
2793 _impl_.presolve_use_bva_ =
true;
2794 _impl_.use_precedences_in_disjunctive_constraint_ =
true;
2795 _impl_.use_disjunctive_constraint_in_cumulative_ =
true;
2796 _impl_.find_multiple_cores_ =
true;
2797 _impl_.cp_model_presolve_ =
true;
2799 if ((cached_has_bits & 0x00ff0000u) != 0) {
2800 _impl_.presolve_blocked_clause_ =
true;
2801 _impl_.cover_optimization_ =
true;
2802 _impl_.cp_model_use_sat_presolve_ =
true;
2803 _impl_.linearization_level_ = 1;
2804 _impl_.max_num_cuts_ = 10000;
2805 _impl_.binary_search_num_conflicts_ = -1;
2806 _impl_.exploit_integer_lp_solution_ =
true;
2807 _impl_.auto_detect_greater_than_at_least_one_of_ =
true;
2809 if ((cached_has_bits & 0xff000000u) != 0) {
2810 _impl_.instantiate_all_variables_ =
true;
2811 _impl_.use_exact_lp_reason_ =
true;
2812 _impl_.boolean_encoding_level_ = 1;
2813 _impl_.cp_model_probing_level_ = 2;
2814 _impl_.add_lp_constraints_lazily_ =
true;
2815 _impl_.share_objective_bounds_ =
true;
2816 _impl_.share_level_zero_bounds_ =
true;
2817 _impl_.exploit_all_lp_solution_ =
true;
2819 cached_has_bits =
_impl_._has_bits_[5];
2820 if ((cached_has_bits & 0x000000ffu) != 0) {
2821 _impl_.min_orthogonality_for_lp_constraints_ = 0.05;
2822 _impl_.max_integer_rounding_scaling_ = 600;
2823 _impl_.max_consecutive_inactive_count_ = 100;
2824 _impl_.pseudo_cost_reliability_threshold_ = ::int64_t{100};
2825 _impl_.new_constraints_batch_size_ = 50;
2826 _impl_.add_cg_cuts_ =
true;
2827 _impl_.add_mir_cuts_ =
true;
2828 _impl_.use_rins_lns_ =
true;
2830 if ((cached_has_bits & 0x0000ff00u) != 0) {
2831 _impl_.exploit_objective_ =
true;
2832 _impl_.mip_max_bound_ = 10000000;
2833 _impl_.mip_var_scaling_ = 1;
2834 _impl_.mip_wanted_precision_ = 1e-06;
2835 _impl_.mip_check_precision_ = 0.0001;
2836 _impl_.mip_max_activity_exponent_ = 53;
2837 _impl_.max_presolve_iterations_ = 3;
2838 _impl_.merge_no_overlap_work_limit_ = 1000000000000;
2840 if ((cached_has_bits & 0x00ff0000u) != 0) {
2841 _impl_.merge_at_most_one_work_limit_ = 100000000;
2842 _impl_.presolve_substitution_level_ = 1;
2843 _impl_.max_all_diff_cut_size_ = 64;
2844 _impl_.catch_sigint_signal_ =
true;
2845 _impl_.use_implied_bounds_ =
true;
2846 _impl_.add_lin_max_cuts_ =
true;
2847 _impl_.use_sat_inprocessing_ =
true;
2848 _impl_.hint_conflict_limit_ = 10;
2850 if ((cached_has_bits & 0xff000000u) != 0) {
2851 _impl_.cut_max_active_count_value_ = 10000000000;
2852 _impl_.max_cut_rounds_at_level_zero_ = 1;
2853 _impl_.cut_cleanup_target_ = 1000;
2854 _impl_.cut_active_count_decay_ = 0.8;
2855 _impl_.absolute_gap_limit_ = 0.0001;
2857 _impl_.use_feasibility_pump_ =
true;
2858 _impl_.mip_automatically_scale_variables_ =
true;
2860 cached_has_bits =
_impl_._has_bits_[6];
2861 if ((cached_has_bits & 0x000000ffu) != 0) {
2862 _impl_.add_zero_half_cuts_ =
true;
2863 _impl_.add_clique_cuts_ =
true;
2864 _impl_.polarity_rephase_increment_ = 1000;
2865 _impl_.symmetry_level_ = 2;
2866 _impl_.convert_intervals_ =
true;
2867 _impl_.expand_reservoir_constraints_ =
true;
2868 _impl_.log_to_stdout_ =
true;
2869 _impl_.mip_compute_true_objective_bound_ =
true;
2871 if ((cached_has_bits & 0x0000ff00u) != 0) {
2872 _impl_.max_domain_size_when_encoding_eq_neq_constraints_ = 16;
2873 _impl_.clause_cleanup_ratio_ = 0.5;
2874 _impl_.solution_pool_size_ = 3;
2876 _impl_.mip_max_valid_magnitude_ = 1e+20;
2877 _impl_.presolve_inclusion_work_limit_ = ::int64_t{100000000};
2878 _impl_.shaving_deterministic_time_in_probing_search_ = 0.001;
2879 _impl_.shaving_search_deterministic_time_ = 0.1;
2881 if ((cached_has_bits & 0x00ff0000u) != 0) {
2882 _impl_.ignore_names_ =
true;
2883 _impl_.share_binary_clauses_ =
true;
2884 _impl_.use_dual_scheduling_heuristics_ =
true;
2885 _impl_.new_linear_propagation_ =
true;
2886 _impl_.table_compression_level_ = 2;
2887 _impl_.propagation_loop_detection_factor_ = 10;
2888 _impl_.probing_deterministic_time_limit_ = 1;
2889 _impl_.root_lp_iterations_ = 2000;
2891 if ((cached_has_bits & 0xff000000u) != 0) {
2892 _impl_.max_size_to_create_precedence_literals_in_disjunctive_ = 60;
2893 _impl_.mip_drop_tolerance_ = 1e-16;
2894 _impl_.feasibility_jump_decay_ = 0.95;
2895 _impl_.shared_tree_max_nodes_per_worker_ = 10000;
2896 _impl_.infer_all_diffs_ =
true;
2897 _impl_.find_big_linear_overlap_ =
true;
2898 _impl_.feasibility_jump_enable_restarts_ =
true;
2899 _impl_.use_lb_relax_lns_ =
true;
2901 cached_has_bits =
_impl_._has_bits_[7];
2902 if ((cached_has_bits & 0x000000ffu) != 0) {
2903 _impl_.feasibility_jump_var_randomization_probability_ = 0.05;
2904 _impl_.feasibility_jump_var_perburbation_range_ratio_ = 0.2;
2905 _impl_.violation_ls_perturbation_period_ = 100;
2906 _impl_.linear_split_size_ = 100;
2907 _impl_.feasibility_jump_linearization_level_ = 2;
2908 _impl_.feasibility_jump_restart_factor_ = 1;
2909 _impl_.violation_ls_compound_move_probability_ = 0.5;
2910 _impl_.max_num_intervals_for_timetable_edge_finding_ = 100;
2912 if ((cached_has_bits & 0x0000ff00u) != 0) {
2913 _impl_.mip_presolve_level_ = 2;
2914 _impl_.lp_primal_tolerance_ = 1e-07;
2915 _impl_.lp_dual_tolerance_ = 1e-07;
2916 _impl_.feasibility_jump_max_expanded_constraint_size_ = 500;
2917 _impl_.at_most_one_max_expansion_size_ = 3;
2918 _impl_.inprocessing_dtime_ratio_ = 0.2;
2919 _impl_.probing_num_combinations_limit_ = 20000;
2920 _impl_.use_feasibility_jump_ =
true;
2922 if ((cached_has_bits & 0x00ff0000u) != 0) {
2923 _impl_.use_extended_probing_ =
true;
2924 _impl_.add_rlt_cuts_ =
true;
2926 _impl_.inprocessing_probing_dtime_ = 1;
2927 _impl_.inprocessing_minimization_dtime_ = 1;
2928 _impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_ = 1250;
2929 _impl_.shared_tree_worker_min_restarts_per_subtree_ = 1;
2930 _impl_.shared_tree_open_leaves_per_worker_ = 2;
2932 if ((cached_has_bits & 0xff000000u) != 0) {
2933 _impl_.shaving_search_threshold_ = ::int64_t{64};
2934 _impl_.feasibility_jump_batch_dtime_ = 0.1;
2935 _impl_.variables_shaving_level_ = -1;
2936 _impl_.lb_relax_num_workers_threshold_ = 16;
2937 _impl_.shared_tree_worker_enable_trail_sharing_ =
true;
2938 _impl_.inprocessing_minimization_use_conflict_analysis_ =
true;
2939 _impl_.minimize_shared_clauses_ =
true;
2940 _impl_.shared_tree_worker_enable_phase_sharing_ =
true;
2942 cached_has_bits =
_impl_._has_bits_[8];
2943 if ((cached_has_bits & 0x000000ffu) != 0) {
2944 _impl_.shared_tree_balance_tolerance_ = 1;
2945 _impl_.symmetry_detection_deterministic_time_limit_ = 1;
2946 _impl_.lns_initial_difficulty_ = 0.5;
2947 _impl_.lns_initial_deterministic_limit_ = 0.1;
2948 _impl_.routing_cut_dp_effort_ = 10000000;
2949 _impl_.routing_cut_subset_size_for_exact_binary_relation_bound_ = 8;
2950 _impl_.remove_fixed_variables_early_ =
true;
2951 _impl_.use_linear3_for_no_overlap_2d_precedences_ =
true;
2953 if ((cached_has_bits & 0x00001f00u) != 0) {
2954 _impl_.routing_cut_max_infeasible_path_length_ = 6;
2955 _impl_.routing_cut_subset_size_for_shortest_paths_bound_ = 8;
2956 _impl_.max_alldiff_domain_size_ = 256;
2957 _impl_.no_overlap_2d_boolean_relations_limit_ = 10;
2958 _impl_.share_glue_clauses_dtime_ = 1;
2960 _impl_._has_bits_.Clear();
2961 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2964#if defined(PROTOBUF_CUSTOM_VTABLE)
2966 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
2967 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2971 ::uint8_t* PROTOBUF_NONNULL target,
2972 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
2976 ::uint32_t cached_has_bits = 0;
2977 (void)cached_has_bits;
2979 cached_has_bits = this_.
_impl_._has_bits_[0];
2981 if ((cached_has_bits & 0x00000008u) != 0) {
2982 target = stream->EnsureSpace(target);
2983 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2984 1, this_._internal_preferred_variable_order(), target);
2987 cached_has_bits = this_.
_impl_._has_bits_[3];
2989 if ((cached_has_bits & 0x00000100u) != 0) {
2990 target = stream->EnsureSpace(target);
2991 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2992 2, this_._internal_initial_polarity(), target);
2996 if ((cached_has_bits & 0x00000200u) != 0) {
2997 target = stream->EnsureSpace(target);
2998 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2999 4, this_._internal_minimization_algorithm(), target);
3003 if ((cached_has_bits & 0x00002000u) != 0) {
3005 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<11>(
3006 stream, this_._internal_clause_cleanup_period(), target);
3009 cached_has_bits = this_.
_impl_._has_bits_[0];
3011 if ((cached_has_bits & 0x00000010u) != 0) {
3013 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<13>(
3014 stream, this_._internal_clause_cleanup_target(), target);
3017 cached_has_bits = this_.
_impl_._has_bits_[3];
3019 if ((cached_has_bits & 0x00000400u) != 0) {
3020 target = stream->EnsureSpace(target);
3021 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3022 15, this_._internal_variable_activity_decay(), target);
3026 if ((cached_has_bits & 0x00000800u) != 0) {
3027 target = stream->EnsureSpace(target);
3028 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3029 16, this_._internal_max_variable_activity_value(), target);
3033 if ((cached_has_bits & 0x00001000u) != 0) {
3034 target = stream->EnsureSpace(target);
3035 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3036 17, this_._internal_clause_activity_decay(), target);
3040 if ((cached_has_bits & 0x00008000u) != 0) {
3041 target = stream->EnsureSpace(target);
3042 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3043 18, this_._internal_max_clause_activity_value(), target);
3047 if ((cached_has_bits & 0x00010000u) != 0) {
3048 target = stream->EnsureSpace(target);
3049 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3050 22, this_._internal_glucose_max_decay(), target);
3054 if ((cached_has_bits & 0x00020000u) != 0) {
3055 target = stream->EnsureSpace(target);
3056 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3057 23, this_._internal_glucose_decay_increment(), target);
3061 if ((cached_has_bits & 0x00004000u) != 0) {
3062 target = stream->EnsureSpace(target);
3063 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3064 24, this_._internal_glucose_decay_increment_period(), target);
3068 if ((cached_has_bits & 0x00040000u) != 0) {
3069 target = stream->EnsureSpace(target);
3070 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3071 30, this_._internal_restart_period(), target);
3075 if ((cached_has_bits & 0x00080000u) != 0) {
3076 target = stream->EnsureSpace(target);
3077 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3078 31, this_._internal_random_seed(), target);
3081 cached_has_bits = this_.
_impl_._has_bits_[0];
3083 if ((cached_has_bits & 0x00000020u) != 0) {
3084 target = stream->EnsureSpace(target);
3085 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3086 32, this_._internal_random_branches_ratio(), target);
3089 cached_has_bits = this_.
_impl_._has_bits_[3];
3091 if ((cached_has_bits & 0x00800000u) != 0) {
3092 target = stream->EnsureSpace(target);
3093 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3094 34, this_._internal_binary_minimization_algorithm(), target);
3098 if ((cached_has_bits & 0x02000000u) != 0) {
3099 target = stream->EnsureSpace(target);
3100 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3101 35, this_._internal_use_optimization_hints(), target);
3105 if ((cached_has_bits & 0x00100000u) != 0) {
3106 target = stream->EnsureSpace(target);
3107 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3108 36, this_._internal_max_time_in_seconds(), target);
3112 if ((cached_has_bits & 0x00200000u) != 0) {
3113 target = stream->EnsureSpace(target);
3114 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
3115 37, this_._internal_max_number_of_conflicts(), target);
3119 if ((cached_has_bits & 0x00400000u) != 0) {
3120 target = stream->EnsureSpace(target);
3121 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
3122 40, this_._internal_max_memory_in_mb(), target);
3125 cached_has_bits = this_.
_impl_._has_bits_[0];
3127 if ((cached_has_bits & 0x00000080u) != 0) {
3128 target = stream->EnsureSpace(target);
3129 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3130 41, this_._internal_log_search_progress(), target);
3134 if ((cached_has_bits & 0x00000100u) != 0) {
3135 target = stream->EnsureSpace(target);
3136 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3137 43, this_._internal_use_pb_resolution(), target);
3140 cached_has_bits = this_.
_impl_._has_bits_[3];
3142 if ((cached_has_bits & 0x04000000u) != 0) {
3143 target = stream->EnsureSpace(target);
3144 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3145 44, this_._internal_use_phase_saving(), target);
3148 cached_has_bits = this_.
_impl_._has_bits_[0];
3150 if ((cached_has_bits & 0x00000040u) != 0) {
3151 target = stream->EnsureSpace(target);
3152 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3153 45, this_._internal_random_polarity_ratio(), target);
3156 cached_has_bits = this_.
_impl_._has_bits_[3];
3158 if ((cached_has_bits & 0x01000000u) != 0) {
3159 target = stream->EnsureSpace(target);
3160 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3161 46, this_._internal_pb_cleanup_increment(), target);
3165 if ((cached_has_bits & 0x40000000u) != 0) {
3166 target = stream->EnsureSpace(target);
3167 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3168 47, this_._internal_pb_cleanup_ratio(), target);
3171 cached_has_bits = this_.
_impl_._has_bits_[0];
3173 if ((cached_has_bits & 0x00000200u) != 0) {
3174 target = stream->EnsureSpace(target);
3175 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3176 48, this_._internal_minimize_reduction_during_pb_resolution(), target);
3179 cached_has_bits = this_.
_impl_._has_bits_[3];
3181 if ((cached_has_bits & 0x08000000u) != 0) {
3182 target = stream->EnsureSpace(target);
3183 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3184 49, this_._internal_count_assumption_levels_in_lbd(), target);
3188 if ((cached_has_bits & 0x20000000u) != 0) {
3189 target = stream->EnsureSpace(target);
3190 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3191 50, this_._internal_core_minimization_level(), target);
3194 cached_has_bits = this_.
_impl_._has_bits_[0];
3196 if ((cached_has_bits & 0x00000800u) != 0) {
3197 target = stream->EnsureSpace(target);
3198 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3199 51, this_._internal_max_sat_assumption_order(), target);
3203 if ((cached_has_bits & 0x00000400u) != 0) {
3204 target = stream->EnsureSpace(target);
3205 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3206 52, this_._internal_max_sat_reverse_assumption_order(), target);
3209 cached_has_bits = this_.
_impl_._has_bits_[3];
3211 if ((cached_has_bits & 0x80000000u) != 0) {
3212 target = stream->EnsureSpace(target);
3213 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3214 53, this_._internal_max_sat_stratification(), target);
3217 cached_has_bits = this_.
_impl_._has_bits_[4];
3219 if ((cached_has_bits & 0x00000001u) != 0) {
3220 target = stream->EnsureSpace(target);
3221 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3222 54, this_._internal_presolve_bve_threshold(), target);
3226 if ((cached_has_bits & 0x00000004u) != 0) {
3227 target = stream->EnsureSpace(target);
3228 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3229 55, this_._internal_presolve_bve_clause_weight(), target);
3232 cached_has_bits = this_.
_impl_._has_bits_[3];
3234 if ((cached_has_bits & 0x10000000u) != 0) {
3235 target = stream->EnsureSpace(target);
3236 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3237 56, this_._internal_subsumption_during_conflict_analysis(), target);
3240 cached_has_bits = this_.
_impl_._has_bits_[4];
3242 if ((cached_has_bits & 0x00000002u) != 0) {
3243 target = stream->EnsureSpace(target);
3244 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3245 57, this_._internal_presolve_probing_deterministic_time_limit(), target);
3248 cached_has_bits = this_.
_impl_._has_bits_[0];
3250 if ((cached_has_bits & 0x00001000u) != 0) {
3251 target = stream->EnsureSpace(target);
3252 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3253 58, this_._internal_clause_cleanup_protection(), target);
3256 cached_has_bits = this_.
_impl_._has_bits_[4];
3258 if ((cached_has_bits & 0x00000008u) != 0) {
3259 target = stream->EnsureSpace(target);
3260 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3261 59, this_._internal_clause_cleanup_lbd_bound(), target);
3264 cached_has_bits = this_.
_impl_._has_bits_[0];
3266 if ((cached_has_bits & 0x00002000u) != 0) {
3267 target = stream->EnsureSpace(target);
3268 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3269 60, this_._internal_clause_cleanup_ordering(), target);
3273 for (
int i = 0, n = this_._internal_restart_algorithms_size();
i < n; ++
i) {
3274 target = stream->EnsureSpace(target);
3275 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3280 cached_has_bits = this_.
_impl_._has_bits_[4];
3282 if ((cached_has_bits & 0x00000020u) != 0) {
3283 target = stream->EnsureSpace(target);
3284 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3285 62, this_._internal_restart_running_window_size(), target);
3289 if ((cached_has_bits & 0x00000010u) != 0) {
3290 target = stream->EnsureSpace(target);
3291 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3292 63, this_._internal_restart_dl_average_ratio(), target);
3295 cached_has_bits = this_.
_impl_._has_bits_[0];
3297 if ((cached_has_bits & 0x00010000u) != 0) {
3298 target = stream->EnsureSpace(target);
3299 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3300 64, this_._internal_use_blocking_restart(), target);
3303 cached_has_bits = this_.
_impl_._has_bits_[4];
3305 if ((cached_has_bits & 0x00000040u) != 0) {
3306 target = stream->EnsureSpace(target);
3307 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3308 65, this_._internal_blocking_restart_window_size(), target);
3312 if ((cached_has_bits & 0x00000080u) != 0) {
3313 target = stream->EnsureSpace(target);
3314 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3315 66, this_._internal_blocking_restart_multiplier(), target);
3319 if ((cached_has_bits & 0x00000100u) != 0) {
3320 target = stream->EnsureSpace(target);
3321 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3322 67, this_._internal_max_deterministic_time(), target);
3325 cached_has_bits = this_.
_impl_._has_bits_[0];
3327 if ((cached_has_bits & 0x00008000u) != 0) {
3328 target = stream->EnsureSpace(target);
3329 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3330 68, this_._internal_num_conflicts_before_strategy_changes(), target);
3334 if ((cached_has_bits & 0x00004000u) != 0) {
3335 target = stream->EnsureSpace(target);
3336 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3337 69, this_._internal_strategy_change_increase_ratio(), target);
3341 if ((cached_has_bits & 0x00000001u) != 0) {
3342 const ::std::string& _s = this_._internal_default_restart_algorithms();
3343 ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(),
static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
3344 "operations_research.sat.SatParameters.default_restart_algorithms");
3345 target = stream->WriteStringMaybeAliased(70, _s, target);
3348 cached_has_bits = this_.
_impl_._has_bits_[4];
3350 if ((cached_has_bits & 0x00000200u) != 0) {
3351 target = stream->EnsureSpace(target);
3352 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3353 71, this_._internal_restart_lbd_average_ratio(), target);
3357 if ((cached_has_bits & 0x00000800u) != 0) {
3358 target = stream->EnsureSpace(target);
3359 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3360 72, this_._internal_presolve_use_bva(), target);
3364 if ((cached_has_bits & 0x00000400u) != 0) {
3365 target = stream->EnsureSpace(target);
3366 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3367 73, this_._internal_presolve_bva_threshold(), target);
3371 if ((cached_has_bits & 0x00001000u) != 0) {
3372 target = stream->EnsureSpace(target);
3373 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3374 74, this_._internal_use_precedences_in_disjunctive_constraint(), target);
3377 cached_has_bits = this_.
_impl_._has_bits_[0];
3379 if ((cached_has_bits & 0x00020000u) != 0) {
3380 target = stream->EnsureSpace(target);
3381 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3382 75, this_._internal_use_erwa_heuristic(), target);
3386 if ((cached_has_bits & 0x00100000u) != 0) {
3387 target = stream->EnsureSpace(target);
3388 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3389 76, this_._internal_initial_variables_activity(), target);
3393 if ((cached_has_bits & 0x00040000u) != 0) {
3394 target = stream->EnsureSpace(target);
3395 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3396 77, this_._internal_also_bump_variables_in_conflict_reasons(), target);
3400 if ((cached_has_bits & 0x00080000u) != 0) {
3401 target = stream->EnsureSpace(target);
3402 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3403 78, this_._internal_use_overload_checker_in_cumulative(), target);
3407 if ((cached_has_bits & 0x00400000u) != 0) {
3408 target = stream->EnsureSpace(target);
3409 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3410 79, this_._internal_use_timetable_edge_finding_in_cumulative(), target);
3413 cached_has_bits = this_.
_impl_._has_bits_[4];
3415 if ((cached_has_bits & 0x00002000u) != 0) {
3416 target = stream->EnsureSpace(target);
3417 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3418 80, this_._internal_use_disjunctive_constraint_in_cumulative(), target);
3421 cached_has_bits = this_.
_impl_._has_bits_[0];
3423 if ((cached_has_bits & 0x00200000u) != 0) {
3424 target = stream->EnsureSpace(target);
3425 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3426 82, this_._internal_search_branching(), target);
3430 if ((cached_has_bits & 0x00800000u) != 0) {
3431 target = stream->EnsureSpace(target);
3432 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3433 83, this_._internal_optimize_with_core(), target);
3436 cached_has_bits = this_.
_impl_._has_bits_[4];
3438 if ((cached_has_bits & 0x00004000u) != 0) {
3439 target = stream->EnsureSpace(target);
3440 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3441 84, this_._internal_find_multiple_cores(), target);
3444 cached_has_bits = this_.
_impl_._has_bits_[0];
3446 if ((cached_has_bits & 0x01000000u) != 0) {
3447 target = stream->EnsureSpace(target);
3448 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3449 85, this_._internal_optimize_with_max_hs(), target);
3452 cached_has_bits = this_.
_impl_._has_bits_[4];
3454 if ((cached_has_bits & 0x00008000u) != 0) {
3455 target = stream->EnsureSpace(target);
3456 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3457 86, this_._internal_cp_model_presolve(), target);
3460 cached_has_bits = this_.
_impl_._has_bits_[0];
3462 if ((cached_has_bits & 0x02000000u) != 0) {
3463 target = stream->EnsureSpace(target);
3464 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3465 87, this_._internal_enumerate_all_solutions(), target);
3468 cached_has_bits = this_.
_impl_._has_bits_[4];
3470 if ((cached_has_bits & 0x00010000u) != 0) {
3471 target = stream->EnsureSpace(target);
3472 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3473 88, this_._internal_presolve_blocked_clause(), target);
3477 if ((cached_has_bits & 0x00020000u) != 0) {
3478 target = stream->EnsureSpace(target);
3479 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3480 89, this_._internal_cover_optimization(), target);
3484 if ((cached_has_bits & 0x00080000u) != 0) {
3485 target = stream->EnsureSpace(target);
3486 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3487 90, this_._internal_linearization_level(), target);
3491 if ((cached_has_bits & 0x00100000u) != 0) {
3492 target = stream->EnsureSpace(target);
3493 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3494 91, this_._internal_max_num_cuts(), target);
3497 cached_has_bits = this_.
_impl_._has_bits_[0];
3499 if ((cached_has_bits & 0x04000000u) != 0) {
3500 target = stream->EnsureSpace(target);
3501 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3502 92, this_._internal_only_add_cuts_at_level_zero(), target);
3505 cached_has_bits = this_.
_impl_._has_bits_[4];
3507 if ((cached_has_bits & 0x00040000u) != 0) {
3508 target = stream->EnsureSpace(target);
3509 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3510 93, this_._internal_cp_model_use_sat_presolve(), target);
3514 if ((cached_has_bits & 0x00400000u) != 0) {
3515 target = stream->EnsureSpace(target);
3516 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3517 94, this_._internal_exploit_integer_lp_solution(), target);
3521 if ((cached_has_bits & 0x00800000u) != 0) {
3522 target = stream->EnsureSpace(target);
3523 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3524 95, this_._internal_auto_detect_greater_than_at_least_one_of(), target);
3527 cached_has_bits = this_.
_impl_._has_bits_[0];
3529 if ((cached_has_bits & 0x08000000u) != 0) {
3530 target = stream->EnsureSpace(target);
3531 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3532 98, this_._internal_stop_after_first_solution(), target);
3535 cached_has_bits = this_.
_impl_._has_bits_[4];
3537 if ((cached_has_bits & 0x00200000u) != 0) {
3538 target = stream->EnsureSpace(target);
3539 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3540 99, this_._internal_binary_search_num_conflicts(), target);
3543 cached_has_bits = this_.
_impl_._has_bits_[0];
3545 if ((cached_has_bits & 0x40000000u) != 0) {
3546 target = stream->EnsureSpace(target);
3547 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3548 100, this_._internal_num_search_workers(), target);
3552 if ((cached_has_bits & 0x10000000u) != 0) {
3553 target = stream->EnsureSpace(target);
3554 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3555 101, this_._internal_use_lns_only(), target);
3559 if ((cached_has_bits & 0x20000000u) != 0) {
3560 target = stream->EnsureSpace(target);
3561 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3562 103, this_._internal_randomize_search(), target);
3566 if ((cached_has_bits & 0x80000000u) != 0) {
3567 target = stream->EnsureSpace(target);
3568 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
3569 104, this_._internal_search_random_variable_pool_size(), target);
3572 cached_has_bits = this_.
_impl_._has_bits_[4];
3574 if ((cached_has_bits & 0x01000000u) != 0) {
3575 target = stream->EnsureSpace(target);
3576 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3577 106, this_._internal_instantiate_all_variables(), target);
3581 if ((cached_has_bits & 0x04000000u) != 0) {
3582 target = stream->EnsureSpace(target);
3583 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3584 107, this_._internal_boolean_encoding_level(), target);
3587 cached_has_bits = this_.
_impl_._has_bits_[1];
3589 if ((cached_has_bits & 0x00000001u) != 0) {
3590 target = stream->EnsureSpace(target);
3591 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3592 108, this_._internal_use_optional_variables(), target);
3595 cached_has_bits = this_.
_impl_._has_bits_[4];
3597 if ((cached_has_bits & 0x02000000u) != 0) {
3598 target = stream->EnsureSpace(target);
3599 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3600 109, this_._internal_use_exact_lp_reason(), target);
3604 if ((cached_has_bits & 0x08000000u) != 0) {
3605 target = stream->EnsureSpace(target);
3606 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3607 110, this_._internal_cp_model_probing_level(), target);
3611 if ((cached_has_bits & 0x10000000u) != 0) {
3612 target = stream->EnsureSpace(target);
3613 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3614 112, this_._internal_add_lp_constraints_lazily(), target);
3618 if ((cached_has_bits & 0x20000000u) != 0) {
3619 target = stream->EnsureSpace(target);
3620 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3621 113, this_._internal_share_objective_bounds(), target);
3625 if ((cached_has_bits & 0x40000000u) != 0) {
3626 target = stream->EnsureSpace(target);
3627 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3628 114, this_._internal_share_level_zero_bounds(), target);
3631 cached_has_bits = this_.
_impl_._has_bits_[5];
3633 if ((cached_has_bits & 0x00000001u) != 0) {
3634 target = stream->EnsureSpace(target);
3635 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3636 115, this_._internal_min_orthogonality_for_lp_constraints(), target);
3639 cached_has_bits = this_.
_impl_._has_bits_[4];
3641 if ((cached_has_bits & 0x80000000u) != 0) {
3642 target = stream->EnsureSpace(target);
3643 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3644 116, this_._internal_exploit_all_lp_solution(), target);
3647 cached_has_bits = this_.
_impl_._has_bits_[5];
3649 if ((cached_has_bits & 0x00000020u) != 0) {
3650 target = stream->EnsureSpace(target);
3651 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3652 117, this_._internal_add_cg_cuts(), target);
3656 if ((cached_has_bits & 0x00000002u) != 0) {
3657 target = stream->EnsureSpace(target);
3658 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3659 119, this_._internal_max_integer_rounding_scaling(), target);
3663 if ((cached_has_bits & 0x00000040u) != 0) {
3664 target = stream->EnsureSpace(target);
3665 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3666 120, this_._internal_add_mir_cuts(), target);
3670 if ((cached_has_bits & 0x00000004u) != 0) {
3671 target = stream->EnsureSpace(target);
3672 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3673 121, this_._internal_max_consecutive_inactive_count(), target);
3677 if ((cached_has_bits & 0x00000010u) != 0) {
3678 target = stream->EnsureSpace(target);
3679 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3680 122, this_._internal_new_constraints_batch_size(), target);
3684 if ((cached_has_bits & 0x00000008u) != 0) {
3685 target = stream->EnsureSpace(target);
3686 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
3687 123, this_._internal_pseudo_cost_reliability_threshold(), target);
3691 if ((cached_has_bits & 0x00000200u) != 0) {
3692 target = stream->EnsureSpace(target);
3693 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3694 124, this_._internal_mip_max_bound(), target);
3698 if ((cached_has_bits & 0x00000400u) != 0) {
3699 target = stream->EnsureSpace(target);
3700 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3701 125, this_._internal_mip_var_scaling(), target);
3705 if ((cached_has_bits & 0x00000800u) != 0) {
3706 target = stream->EnsureSpace(target);
3707 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3708 126, this_._internal_mip_wanted_precision(), target);
3712 if ((cached_has_bits & 0x00002000u) != 0) {
3713 target = stream->EnsureSpace(target);
3714 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3715 127, this_._internal_mip_max_activity_exponent(), target);
3719 if ((cached_has_bits & 0x00001000u) != 0) {
3720 target = stream->EnsureSpace(target);
3721 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3722 128, this_._internal_mip_check_precision(), target);
3726 if ((cached_has_bits & 0x00000080u) != 0) {
3727 target = stream->EnsureSpace(target);
3728 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3729 129, this_._internal_use_rins_lns(), target);
3732 cached_has_bits = this_.
_impl_._has_bits_[1];
3734 if ((cached_has_bits & 0x00000002u) != 0) {
3735 target = stream->EnsureSpace(target);
3736 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3737 130, this_._internal_exploit_best_solution(), target);
3740 cached_has_bits = this_.
_impl_._has_bits_[5];
3742 if ((cached_has_bits & 0x00000100u) != 0) {
3743 target = stream->EnsureSpace(target);
3744 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3745 131, this_._internal_exploit_objective(), target);
3748 cached_has_bits = this_.
_impl_._has_bits_[1];
3750 if ((cached_has_bits & 0x00000004u) != 0) {
3751 target = stream->EnsureSpace(target);
3752 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3753 132, this_._internal_fill_tightened_domains_in_response(), target);
3757 if ((cached_has_bits & 0x00000008u) != 0) {
3758 target = stream->EnsureSpace(target);
3759 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3760 133, this_._internal_use_combined_no_overlap(), target);
3764 if ((cached_has_bits & 0x00000010u) != 0) {
3765 target = stream->EnsureSpace(target);
3766 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3767 134, this_._internal_interleave_batch_size(), target);
3770 cached_has_bits = this_.
_impl_._has_bits_[5];
3772 if ((cached_has_bits & 0x00080000u) != 0) {
3773 target = stream->EnsureSpace(target);
3774 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3775 135, this_._internal_catch_sigint_signal(), target);
3778 cached_has_bits = this_.
_impl_._has_bits_[1];
3780 if ((cached_has_bits & 0x00000020u) != 0) {
3781 target = stream->EnsureSpace(target);
3782 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3783 136, this_._internal_interleave_search(), target);
3787 if ((cached_has_bits & 0x00000040u) != 0) {
3788 target = stream->EnsureSpace(target);
3789 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3790 137, this_._internal_diversify_lns_params(), target);
3793 cached_has_bits = this_.
_impl_._has_bits_[5];
3795 if ((cached_has_bits & 0x00004000u) != 0) {
3796 target = stream->EnsureSpace(target);
3797 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3798 138, this_._internal_max_presolve_iterations(), target);
3802 if ((cached_has_bits & 0x00100000u) != 0) {
3803 target = stream->EnsureSpace(target);
3804 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3805 144, this_._internal_use_implied_bounds(), target);
3809 if ((cached_has_bits & 0x00008000u) != 0) {
3810 target = stream->EnsureSpace(target);
3811 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3812 145, this_._internal_merge_no_overlap_work_limit(), target);
3816 if ((cached_has_bits & 0x00010000u) != 0) {
3817 target = stream->EnsureSpace(target);
3818 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3819 146, this_._internal_merge_at_most_one_work_limit(), target);
3823 if ((cached_has_bits & 0x00020000u) != 0) {
3824 target = stream->EnsureSpace(target);
3825 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3826 147, this_._internal_presolve_substitution_level(), target);
3830 if ((cached_has_bits & 0x00040000u) != 0) {
3831 target = stream->EnsureSpace(target);
3832 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3833 148, this_._internal_max_all_diff_cut_size(), target);
3836 cached_has_bits = this_.
_impl_._has_bits_[1];
3838 if ((cached_has_bits & 0x00000080u) != 0) {
3839 target = stream->EnsureSpace(target);
3840 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3841 149, this_._internal_stop_after_presolve(), target);
3845 if ((cached_has_bits & 0x00000200u) != 0) {
3846 target = stream->EnsureSpace(target);
3847 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3848 151, this_._internal_debug_max_num_presolve_operations(), target);
3851 cached_has_bits = this_.
_impl_._has_bits_[5];
3853 if ((cached_has_bits & 0x00200000u) != 0) {
3854 target = stream->EnsureSpace(target);
3855 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3856 152, this_._internal_add_lin_max_cuts(), target);
3860 if ((cached_has_bits & 0x00800000u) != 0) {
3861 target = stream->EnsureSpace(target);
3862 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3863 153, this_._internal_hint_conflict_limit(), target);
3867 if ((cached_has_bits & 0x02000000u) != 0) {
3868 target = stream->EnsureSpace(target);
3869 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3870 154, this_._internal_max_cut_rounds_at_level_zero(), target);
3874 if ((cached_has_bits & 0x01000000u) != 0) {
3875 target = stream->EnsureSpace(target);
3876 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3877 155, this_._internal_cut_max_active_count_value(), target);
3881 if ((cached_has_bits & 0x08000000u) != 0) {
3882 target = stream->EnsureSpace(target);
3883 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3884 156, this_._internal_cut_active_count_decay(), target);
3888 if ((cached_has_bits & 0x04000000u) != 0) {
3889 target = stream->EnsureSpace(target);
3890 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3891 157, this_._internal_cut_cleanup_target(), target);
3895 if ((cached_has_bits & 0x10000000u) != 0) {
3896 target = stream->EnsureSpace(target);
3897 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3898 159, this_._internal_absolute_gap_limit(), target);
3901 cached_has_bits = this_.
_impl_._has_bits_[1];
3903 if ((cached_has_bits & 0x00000400u) != 0) {
3904 target = stream->EnsureSpace(target);
3905 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3906 160, this_._internal_relative_gap_limit(), target);
3910 if ((cached_has_bits & 0x00000100u) != 0) {
3911 target = stream->EnsureSpace(target);
3912 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3913 161, this_._internal_exploit_relaxation_solution(), target);
3917 if ((cached_has_bits & 0x00000800u) != 0) {
3918 target = stream->EnsureSpace(target);
3919 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3920 162, this_._internal_debug_postsolve_with_full_solver(), target);
3923 cached_has_bits = this_.
_impl_._has_bits_[5];
3925 if ((cached_has_bits & 0x00400000u) != 0) {
3926 target = stream->EnsureSpace(target);
3927 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3928 163, this_._internal_use_sat_inprocessing(), target);
3932 if ((cached_has_bits & 0x40000000u) != 0) {
3933 target = stream->EnsureSpace(target);
3934 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3935 164, this_._internal_use_feasibility_pump(), target);
3939 if ((cached_has_bits & 0x20000000u) != 0) {
3940 target = stream->EnsureSpace(target);
3941 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3942 165, this_._internal_fp_rounding(), target);
3946 if ((cached_has_bits & 0x80000000u) != 0) {
3947 target = stream->EnsureSpace(target);
3948 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3949 166, this_._internal_mip_automatically_scale_variables(), target);
3952 cached_has_bits = this_.
_impl_._has_bits_[1];
3954 if ((cached_has_bits & 0x00001000u) != 0) {
3955 target = stream->EnsureSpace(target);
3956 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3957 167, this_._internal_repair_hint(), target);
3960 cached_has_bits = this_.
_impl_._has_bits_[6];
3962 if ((cached_has_bits & 0x00000004u) != 0) {
3963 target = stream->EnsureSpace(target);
3964 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3965 168, this_._internal_polarity_rephase_increment(), target);
3969 if ((cached_has_bits & 0x00000001u) != 0) {
3970 target = stream->EnsureSpace(target);
3971 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3972 169, this_._internal_add_zero_half_cuts(), target);
3975 cached_has_bits = this_.
_impl_._has_bits_[1];
3977 if ((cached_has_bits & 0x00002000u) != 0) {
3978 target = stream->EnsureSpace(target);
3979 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3980 170, this_._internal_expand_alldiff_constraints(), target);
3983 cached_has_bits = this_.
_impl_._has_bits_[0];
3985 if ((cached_has_bits & 0x00000002u) != 0) {
3986 const ::std::string& _s = this_._internal_name();
3987 ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(),
static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
3988 "operations_research.sat.SatParameters.name");
3989 target = stream->WriteStringMaybeAliased(171, _s, target);
3992 cached_has_bits = this_.
_impl_._has_bits_[6];
3994 if ((cached_has_bits & 0x00000002u) != 0) {
3995 target = stream->EnsureSpace(target);
3996 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3997 172, this_._internal_add_clique_cuts(), target);
4000 cached_has_bits = this_.
_impl_._has_bits_[1];
4002 if ((cached_has_bits & 0x00004000u) != 0) {
4003 target = stream->EnsureSpace(target);
4004 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4005 173, this_._internal_keep_all_feasible_solutions_in_presolve(), target);
4009 if ((cached_has_bits & 0x00008000u) != 0) {
4010 target = stream->EnsureSpace(target);
4011 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4012 174, this_._internal_presolve_extract_integer_enforcement(), target);
4016 if ((cached_has_bits & 0x00010000u) != 0) {
4017 target = stream->EnsureSpace(target);
4018 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4019 175, this_._internal_polish_lp_solution(), target);
4023 if ((cached_has_bits & 0x00020000u) != 0) {
4024 target = stream->EnsureSpace(target);
4025 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4026 176, this_._internal_use_probing_search(), target);
4029 cached_has_bits = this_.
_impl_._has_bits_[6];
4031 if ((cached_has_bits & 0x00000010u) != 0) {
4032 target = stream->EnsureSpace(target);
4033 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4034 177, this_._internal_convert_intervals(), target);
4037 cached_has_bits = this_.
_impl_._has_bits_[1];
4039 if ((cached_has_bits & 0x00040000u) != 0) {
4040 target = stream->EnsureSpace(target);
4041 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4042 178, this_._internal_permute_variable_randomly(), target);
4046 if ((cached_has_bits & 0x00080000u) != 0) {
4047 target = stream->EnsureSpace(target);
4048 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4049 179, this_._internal_permute_presolve_constraint_order(), target);
4053 if ((cached_has_bits & 0x00100000u) != 0) {
4054 target = stream->EnsureSpace(target);
4055 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4056 180, this_._internal_use_absl_random(), target);
4060 if ((cached_has_bits & 0x00200000u) != 0) {
4061 target = stream->EnsureSpace(target);
4062 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4063 181, this_._internal_disable_constraint_expansion(), target);
4066 cached_has_bits = this_.
_impl_._has_bits_[6];
4068 if ((cached_has_bits & 0x00000020u) != 0) {
4069 target = stream->EnsureSpace(target);
4070 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4071 182, this_._internal_expand_reservoir_constraints(), target);
4075 if ((cached_has_bits & 0x00000008u) != 0) {
4076 target = stream->EnsureSpace(target);
4077 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4078 183, this_._internal_symmetry_level(), target);
4081 cached_has_bits = this_.
_impl_._has_bits_[0];
4083 if ((cached_has_bits & 0x00000004u) != 0) {
4084 const ::std::string& _s = this_._internal_log_prefix();
4085 ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(),
static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
4086 "operations_research.sat.SatParameters.log_prefix");
4087 target = stream->WriteStringMaybeAliased(185, _s, target);
4090 cached_has_bits = this_.
_impl_._has_bits_[6];
4092 if ((cached_has_bits & 0x00000040u) != 0) {
4093 target = stream->EnsureSpace(target);
4094 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4095 186, this_._internal_log_to_stdout(), target);
4098 cached_has_bits = this_.
_impl_._has_bits_[1];
4100 if ((cached_has_bits & 0x00400000u) != 0) {
4101 target = stream->EnsureSpace(target);
4102 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4103 187, this_._internal_log_to_response(), target);
4107 if ((cached_has_bits & 0x00800000u) != 0) {
4108 target = stream->EnsureSpace(target);
4109 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4110 188, this_._internal_optimize_with_lb_tree_search(), target);
4114 if ((cached_has_bits & 0x01000000u) != 0) {
4115 target = stream->EnsureSpace(target);
4116 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4117 189, this_._internal_log_subsolver_statistics(), target);
4120 cached_has_bits = this_.
_impl_._has_bits_[6];
4122 if ((cached_has_bits & 0x00000200u) != 0) {
4123 target = stream->EnsureSpace(target);
4124 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4125 190, this_._internal_clause_cleanup_ratio(), target);
4129 if ((cached_has_bits & 0x00000100u) != 0) {
4130 target = stream->EnsureSpace(target);
4131 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4132 191, this_._internal_max_domain_size_when_encoding_eq_neq_constraints(), target);
4135 cached_has_bits = this_.
_impl_._has_bits_[1];
4137 if ((cached_has_bits & 0x02000000u) != 0) {
4138 target = stream->EnsureSpace(target);
4139 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4140 192, this_._internal_fix_variables_to_their_hinted_value(), target);
4143 cached_has_bits = this_.
_impl_._has_bits_[6];
4145 if ((cached_has_bits & 0x00000400u) != 0) {
4146 target = stream->EnsureSpace(target);
4147 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4148 193, this_._internal_solution_pool_size(), target);
4151 cached_has_bits = this_.
_impl_._has_bits_[1];
4153 if ((cached_has_bits & 0x04000000u) != 0) {
4154 target = stream->EnsureSpace(target);
4155 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4156 194, this_._internal_fill_additional_solutions_in_response(), target);
4160 if ((cached_has_bits & 0x08000000u) != 0) {
4161 target = stream->EnsureSpace(target);
4162 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4163 195, this_._internal_debug_crash_on_bad_hint(), target);
4166 cached_has_bits = this_.
_impl_._has_bits_[6];
4168 if ((cached_has_bits & 0x00000800u) != 0) {
4169 target = stream->EnsureSpace(target);
4170 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4171 196, this_._internal_cut_level(), target);
4174 cached_has_bits = this_.
_impl_._has_bits_[1];
4176 if ((cached_has_bits & 0x10000000u) != 0) {
4177 target = stream->EnsureSpace(target);
4178 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4179 197, this_._internal_add_objective_cut(), target);
4182 cached_has_bits = this_.
_impl_._has_bits_[6];
4184 if ((cached_has_bits & 0x00000080u) != 0) {
4185 target = stream->EnsureSpace(target);
4186 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4187 198, this_._internal_mip_compute_true_objective_bound(), target);
4191 if ((cached_has_bits & 0x00001000u) != 0) {
4192 target = stream->EnsureSpace(target);
4193 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4194 199, this_._internal_mip_max_valid_magnitude(), target);
4197 cached_has_bits = this_.
_impl_._has_bits_[1];
4199 if ((cached_has_bits & 0x20000000u) != 0) {
4200 target = stream->EnsureSpace(target);
4201 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4202 200, this_._internal_use_timetabling_in_no_overlap_2d(), target);
4205 cached_has_bits = this_.
_impl_._has_bits_[6];
4207 if ((cached_has_bits & 0x00002000u) != 0) {
4208 target = stream->EnsureSpace(target);
4209 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
4210 201, this_._internal_presolve_inclusion_work_limit(), target);
4214 if ((cached_has_bits & 0x00010000u) != 0) {
4215 target = stream->EnsureSpace(target);
4216 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4217 202, this_._internal_ignore_names(), target);
4221 if ((cached_has_bits & 0x00020000u) != 0) {
4222 target = stream->EnsureSpace(target);
4223 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4224 203, this_._internal_share_binary_clauses(), target);
4228 if ((cached_has_bits & 0x00004000u) != 0) {
4229 target = stream->EnsureSpace(target);
4230 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4231 204, this_._internal_shaving_deterministic_time_in_probing_search(), target);
4235 if ((cached_has_bits & 0x00008000u) != 0) {
4236 target = stream->EnsureSpace(target);
4237 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4238 205, this_._internal_shaving_search_deterministic_time(), target);
4241 cached_has_bits = this_.
_impl_._has_bits_[1];
4243 if ((cached_has_bits & 0x80000000u) != 0) {
4244 target = stream->EnsureSpace(target);
4245 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4246 206, this_._internal_num_workers(), target);
4250 for (
int i = 0, n = this_._internal_subsolvers_size();
i < n; ++
i) {
4251 const auto& s = this_._internal_subsolvers().Get(
i);
4252 ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(),
static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
4253 "operations_research.sat.SatParameters.subsolvers");
4254 target = stream->WriteString(207, s, target);
4258 for (
int i = 0, n = this_._internal_ignore_subsolvers_size();
i < n; ++
i) {
4259 const auto& s = this_._internal_ignore_subsolvers().Get(
i);
4260 ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(),
static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
4261 "operations_research.sat.SatParameters.ignore_subsolvers");
4262 target = stream->WriteString(209, s, target);
4266 for (
unsigned i = 0, n =
static_cast<unsigned>(
4267 this_._internal_subsolver_params_size());
4269 const auto& repfield = this_._internal_subsolver_params().Get(
i);
4271 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
4272 210, repfield, repfield.GetCachedSize(),
4277 if ((cached_has_bits & 0x40000000u) != 0) {
4278 target = stream->EnsureSpace(target);
4279 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4280 213, this_._internal_use_energetic_reasoning_in_no_overlap_2d(), target);
4283 cached_has_bits = this_.
_impl_._has_bits_[6];
4285 if ((cached_has_bits & 0x00040000u) != 0) {
4286 target = stream->EnsureSpace(target);
4287 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4288 214, this_._internal_use_dual_scheduling_heuristics(), target);
4291 cached_has_bits = this_.
_impl_._has_bits_[2];
4293 if ((cached_has_bits & 0x00000001u) != 0) {
4294 target = stream->EnsureSpace(target);
4295 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4296 215, this_._internal_use_hard_precedences_in_cumulative(), target);
4300 if ((cached_has_bits & 0x00000002u) != 0) {
4301 target = stream->EnsureSpace(target);
4302 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4303 216, this_._internal_detect_table_with_cost(), target);
4306 cached_has_bits = this_.
_impl_._has_bits_[6];
4308 if ((cached_has_bits & 0x00100000u) != 0) {
4309 target = stream->EnsureSpace(target);
4310 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4311 217, this_._internal_table_compression_level(), target);
4315 for (
int i = 0, n = this_._internal_extra_subsolvers_size();
i < n; ++
i) {
4316 const auto& s = this_._internal_extra_subsolvers().Get(
i);
4317 ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(),
static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
4318 "operations_research.sat.SatParameters.extra_subsolvers");
4319 target = stream->WriteString(219, s, target);
4322 cached_has_bits = this_.
_impl_._has_bits_[2];
4324 if ((cached_has_bits & 0x00000004u) != 0) {
4325 target = stream->EnsureSpace(target);
4326 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4327 220, this_._internal_exploit_all_precedences(), target);
4330 cached_has_bits = this_.
_impl_._has_bits_[6];
4332 if ((cached_has_bits & 0x00200000u) != 0) {
4333 target = stream->EnsureSpace(target);
4334 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4335 221, this_._internal_propagation_loop_detection_factor(), target);
4338 cached_has_bits = this_.
_impl_._has_bits_[2];
4340 if ((cached_has_bits & 0x00000008u) != 0) {
4341 target = stream->EnsureSpace(target);
4342 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4343 222, this_._internal_only_solve_ip(), target);
4347 if ((cached_has_bits & 0x00000010u) != 0) {
4348 target = stream->EnsureSpace(target);
4349 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4350 223, this_._internal_encode_complex_linear_constraint_with_integer(), target);
4353 cached_has_bits = this_.
_impl_._has_bits_[6];
4355 if ((cached_has_bits & 0x00080000u) != 0) {
4356 target = stream->EnsureSpace(target);
4357 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4358 224, this_._internal_new_linear_propagation(), target);
4361 cached_has_bits = this_.
_impl_._has_bits_[2];
4363 if ((cached_has_bits & 0x00000020u) != 0) {
4364 target = stream->EnsureSpace(target);
4365 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4366 225, this_._internal_mip_scale_large_domain(), target);
4369 cached_has_bits = this_.
_impl_._has_bits_[6];
4371 if ((cached_has_bits & 0x00400000u) != 0) {
4372 target = stream->EnsureSpace(target);
4373 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4374 226, this_._internal_probing_deterministic_time_limit(), target);
4378 if ((cached_has_bits & 0x00800000u) != 0) {
4379 target = stream->EnsureSpace(target);
4380 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4381 227, this_._internal_root_lp_iterations(), target);
4384 cached_has_bits = this_.
_impl_._has_bits_[2];
4386 if ((cached_has_bits & 0x00000040u) != 0) {
4387 target = stream->EnsureSpace(target);
4388 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4389 228, this_._internal_use_objective_lb_search(), target);
4392 cached_has_bits = this_.
_impl_._has_bits_[6];
4394 if ((cached_has_bits & 0x01000000u) != 0) {
4395 target = stream->EnsureSpace(target);
4396 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4397 229, this_._internal_max_size_to_create_precedence_literals_in_disjunctive(), target);
4400 cached_has_bits = this_.
_impl_._has_bits_[2];
4402 if ((cached_has_bits & 0x00000080u) != 0) {
4403 target = stream->EnsureSpace(target);
4404 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4405 230, this_._internal_use_strong_propagation_in_disjunctive(), target);
4408 cached_has_bits = this_.
_impl_._has_bits_[6];
4410 if ((cached_has_bits & 0x02000000u) != 0) {
4411 target = stream->EnsureSpace(target);
4412 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4413 232, this_._internal_mip_drop_tolerance(), target);
4417 if ((cached_has_bits & 0x10000000u) != 0) {
4418 target = stream->EnsureSpace(target);
4419 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4420 233, this_._internal_infer_all_diffs(), target);
4424 if ((cached_has_bits & 0x20000000u) != 0) {
4425 target = stream->EnsureSpace(target);
4426 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4427 234, this_._internal_find_big_linear_overlap(), target);
4430 cached_has_bits = this_.
_impl_._has_bits_[2];
4432 if ((cached_has_bits & 0x00000100u) != 0) {
4433 target = stream->EnsureSpace(target);
4434 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4435 235, this_._internal_shared_tree_num_workers(), target);
4439 if ((cached_has_bits & 0x00000800u) != 0) {
4440 target = stream->EnsureSpace(target);
4441 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4442 236, this_._internal_use_shared_tree_search(), target);
4445 cached_has_bits = this_.
_impl_._has_bits_[6];
4447 if ((cached_has_bits & 0x08000000u) != 0) {
4448 target = stream->EnsureSpace(target);
4449 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4450 238, this_._internal_shared_tree_max_nodes_per_worker(), target);
4453 cached_has_bits = this_.
_impl_._has_bits_[2];
4455 if ((cached_has_bits & 0x00000200u) != 0) {
4456 target = stream->EnsureSpace(target);
4457 target = ::_pbi::WireFormatLite::WriteEnumToArray(
4458 239, this_._internal_shared_tree_split_strategy(), target);
4462 if ((cached_has_bits & 0x00001000u) != 0) {
4463 target = stream->EnsureSpace(target);
4464 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4465 240, this_._internal_use_ls_only(), target);
4468 cached_has_bits = this_.
_impl_._has_bits_[6];
4470 if ((cached_has_bits & 0x04000000u) != 0) {
4471 target = stream->EnsureSpace(target);
4472 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4473 242, this_._internal_feasibility_jump_decay(), target);
4476 cached_has_bits = this_.
_impl_._has_bits_[2];
4478 if ((cached_has_bits & 0x00000400u) != 0) {
4479 target = stream->EnsureSpace(target);
4480 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4481 244, this_._internal_num_violation_ls(), target);
4484 cached_has_bits = this_.
_impl_._has_bits_[7];
4486 if ((cached_has_bits & 0x00000001u) != 0) {
4487 target = stream->EnsureSpace(target);
4488 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4489 247, this_._internal_feasibility_jump_var_randomization_probability(), target);
4493 if ((cached_has_bits & 0x00000002u) != 0) {
4494 target = stream->EnsureSpace(target);
4495 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4496 248, this_._internal_feasibility_jump_var_perburbation_range_ratio(), target);
4500 if ((cached_has_bits & 0x00000004u) != 0) {
4501 target = stream->EnsureSpace(target);
4502 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4503 249, this_._internal_violation_ls_perturbation_period(), target);
4506 cached_has_bits = this_.
_impl_._has_bits_[6];
4508 if ((cached_has_bits & 0x40000000u) != 0) {
4509 target = stream->EnsureSpace(target);
4510 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4511 250, this_._internal_feasibility_jump_enable_restarts(), target);
4514 cached_has_bits = this_.
_impl_._has_bits_[2];
4516 if ((cached_has_bits & 0x00002000u) != 0) {
4517 target = stream->EnsureSpace(target);
4518 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4519 252, this_._internal_stop_after_root_propagation(), target);
4523 if ((cached_has_bits & 0x00004000u) != 0) {
4524 target = stream->EnsureSpace(target);
4525 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4526 253, this_._internal_use_objective_shaving_search(), target);
4529 cached_has_bits = this_.
_impl_._has_bits_[6];
4531 if ((cached_has_bits & 0x80000000u) != 0) {
4532 target = stream->EnsureSpace(target);
4533 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4534 255, this_._internal_use_lb_relax_lns(), target);
4537 cached_has_bits = this_.
_impl_._has_bits_[7];
4539 if ((cached_has_bits & 0x00000008u) != 0) {
4540 target = stream->EnsureSpace(target);
4541 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4542 256, this_._internal_linear_split_size(), target);
4546 if ((cached_has_bits & 0x00000010u) != 0) {
4547 target = stream->EnsureSpace(target);
4548 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4549 257, this_._internal_feasibility_jump_linearization_level(), target);
4553 if ((cached_has_bits & 0x00000020u) != 0) {
4554 target = stream->EnsureSpace(target);
4555 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4556 258, this_._internal_feasibility_jump_restart_factor(), target);
4560 if ((cached_has_bits & 0x00000040u) != 0) {
4561 target = stream->EnsureSpace(target);
4562 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4563 259, this_._internal_violation_ls_compound_move_probability(), target);
4567 if ((cached_has_bits & 0x00000080u) != 0) {
4568 target = stream->EnsureSpace(target);
4569 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4570 260, this_._internal_max_num_intervals_for_timetable_edge_finding(), target);
4574 if ((cached_has_bits & 0x00000100u) != 0) {
4575 target = stream->EnsureSpace(target);
4576 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4577 261, this_._internal_mip_presolve_level(), target);
4580 cached_has_bits = this_.
_impl_._has_bits_[2];
4582 if ((cached_has_bits & 0x00008000u) != 0) {
4583 target = stream->EnsureSpace(target);
4584 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4585 262, this_._internal_push_all_tasks_toward_start(), target);
4589 if ((cached_has_bits & 0x00010000u) != 0) {
4590 target = stream->EnsureSpace(target);
4591 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4592 263, this_._internal_use_dynamic_precedence_in_disjunctive(), target);
4595 cached_has_bits = this_.
_impl_._has_bits_[7];
4597 if ((cached_has_bits & 0x00000800u) != 0) {
4598 target = stream->EnsureSpace(target);
4599 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4600 264, this_._internal_feasibility_jump_max_expanded_constraint_size(), target);
4604 if ((cached_has_bits & 0x00008000u) != 0) {
4605 target = stream->EnsureSpace(target);
4606 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4607 265, this_._internal_use_feasibility_jump(), target);
4611 if ((cached_has_bits & 0x00000200u) != 0) {
4612 target = stream->EnsureSpace(target);
4613 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4614 266, this_._internal_lp_primal_tolerance(), target);
4618 if ((cached_has_bits & 0x00000400u) != 0) {
4619 target = stream->EnsureSpace(target);
4620 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4621 267, this_._internal_lp_dual_tolerance(), target);
4624 cached_has_bits = this_.
_impl_._has_bits_[2];
4626 if ((cached_has_bits & 0x00020000u) != 0) {
4627 target = stream->EnsureSpace(target);
4628 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4629 268, this_._internal_use_dynamic_precedence_in_cumulative(), target);
4632 cached_has_bits = this_.
_impl_._has_bits_[7];
4634 if ((cached_has_bits & 0x00010000u) != 0) {
4635 target = stream->EnsureSpace(target);
4636 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4637 269, this_._internal_use_extended_probing(), target);
4641 if ((cached_has_bits & 0x00001000u) != 0) {
4642 target = stream->EnsureSpace(target);
4643 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4644 270, this_._internal_at_most_one_max_expansion_size(), target);
4647 cached_has_bits = this_.
_impl_._has_bits_[2];
4649 if ((cached_has_bits & 0x00040000u) != 0) {
4650 target = stream->EnsureSpace(target);
4651 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4652 271, this_._internal_use_area_energetic_reasoning_in_no_overlap_2d(), target);
4655 cached_has_bits = this_.
_impl_._has_bits_[7];
4657 if ((cached_has_bits & 0x00004000u) != 0) {
4658 target = stream->EnsureSpace(target);
4659 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4660 272, this_._internal_probing_num_combinations_limit(), target);
4664 if ((cached_has_bits & 0x00002000u) != 0) {
4665 target = stream->EnsureSpace(target);
4666 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4667 273, this_._internal_inprocessing_dtime_ratio(), target);
4671 if ((cached_has_bits & 0x00080000u) != 0) {
4672 target = stream->EnsureSpace(target);
4673 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4674 274, this_._internal_inprocessing_probing_dtime(), target);
4678 if ((cached_has_bits & 0x00100000u) != 0) {
4679 target = stream->EnsureSpace(target);
4680 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4681 275, this_._internal_inprocessing_minimization_dtime(), target);
4685 if ((cached_has_bits & 0x00200000u) != 0) {
4686 target = stream->EnsureSpace(target);
4687 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4688 276, this_._internal_max_pairs_pairwise_reasoning_in_no_overlap_2d(), target);
4691 cached_has_bits = this_.
_impl_._has_bits_[2];
4693 if ((cached_has_bits & 0x00100000u) != 0) {
4694 target = stream->EnsureSpace(target);
4695 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4696 277, this_._internal_detect_linearized_product(), target);
4700 if ((cached_has_bits & 0x00200000u) != 0) {
4701 target = stream->EnsureSpace(target);
4702 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4703 278, this_._internal_mip_treat_high_magnitude_bounds_as_infinity(), target);
4706 cached_has_bits = this_.
_impl_._has_bits_[7];
4708 if ((cached_has_bits & 0x00020000u) != 0) {
4709 target = stream->EnsureSpace(target);
4710 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4711 279, this_._internal_add_rlt_cuts(), target);
4714 cached_has_bits = this_.
_impl_._has_bits_[2];
4716 if ((cached_has_bits & 0x00080000u) != 0) {
4717 target = stream->EnsureSpace(target);
4718 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4719 280, this_._internal_max_lin_max_size_for_expansion(), target);
4722 cached_has_bits = this_.
_impl_._has_bits_[7];
4724 if ((cached_has_bits & 0x00800000u) != 0) {
4725 target = stream->EnsureSpace(target);
4726 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4727 281, this_._internal_shared_tree_open_leaves_per_worker(), target);
4731 if ((cached_has_bits & 0x00400000u) != 0) {
4732 target = stream->EnsureSpace(target);
4733 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4734 282, this_._internal_shared_tree_worker_min_restarts_per_subtree(), target);
4738 if ((cached_has_bits & 0x00040000u) != 0) {
4739 target = stream->EnsureSpace(target);
4740 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4741 283, this_._internal_use_lns(), target);
4744 cached_has_bits = this_.
_impl_._has_bits_[2];
4746 if ((cached_has_bits & 0x00400000u) != 0) {
4747 target = stream->EnsureSpace(target);
4748 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4749 284, this_._internal_save_lp_basis_in_lb_tree_search(), target);
4753 if ((cached_has_bits & 0x00800000u) != 0) {
4754 target = stream->EnsureSpace(target);
4755 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4756 285, this_._internal_share_glue_clauses(), target);
4760 if ((cached_has_bits & 0x01000000u) != 0) {
4761 target = stream->EnsureSpace(target);
4762 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4763 286, this_._internal_use_conservative_scale_overload_checker(), target);
4767 if ((cached_has_bits & 0x02000000u) != 0) {
4768 target = stream->EnsureSpace(target);
4769 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4770 287, this_._internal_encode_cumulative_as_reservoir(), target);
4774 if ((cached_has_bits & 0x04000000u) != 0) {
4775 target = stream->EnsureSpace(target);
4776 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4777 288, this_._internal_expand_reservoir_using_circuit(), target);
4780 cached_has_bits = this_.
_impl_._has_bits_[7];
4782 if ((cached_has_bits & 0x04000000u) != 0) {
4783 target = stream->EnsureSpace(target);
4784 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4785 289, this_._internal_variables_shaving_level(), target);
4789 if ((cached_has_bits & 0x01000000u) != 0) {
4790 target = stream->EnsureSpace(target);
4791 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
4792 290, this_._internal_shaving_search_threshold(), target);
4795 cached_has_bits = this_.
_impl_._has_bits_[2];
4797 if ((cached_has_bits & 0x10000000u) != 0) {
4798 target = stream->EnsureSpace(target);
4799 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4800 291, this_._internal_max_num_deterministic_batches(), target);
4803 cached_has_bits = this_.
_impl_._has_bits_[7];
4805 if ((cached_has_bits & 0x02000000u) != 0) {
4806 target = stream->EnsureSpace(target);
4807 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4808 292, this_._internal_feasibility_jump_batch_dtime(), target);
4812 for (
int i = 0, n = this_._internal_filter_subsolvers_size();
i < n; ++
i) {
4813 const auto& s = this_._internal_filter_subsolvers().Get(
i);
4814 ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(),
static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
4815 "operations_research.sat.SatParameters.filter_subsolvers");
4816 target = stream->WriteString(293, s, target);
4819 cached_has_bits = this_.
_impl_._has_bits_[2];
4821 if ((cached_has_bits & 0x20000000u) != 0) {
4822 target = stream->EnsureSpace(target);
4823 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4824 294, this_._internal_num_full_subsolvers(), target);
4827 cached_has_bits = this_.
_impl_._has_bits_[7];
4829 if ((cached_has_bits & 0x10000000u) != 0) {
4830 target = stream->EnsureSpace(target);
4831 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4832 295, this_._internal_shared_tree_worker_enable_trail_sharing(), target);
4836 if ((cached_has_bits & 0x08000000u) != 0) {
4837 target = stream->EnsureSpace(target);
4838 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4839 296, this_._internal_lb_relax_num_workers_threshold(), target);
4843 if ((cached_has_bits & 0x20000000u) != 0) {
4844 target = stream->EnsureSpace(target);
4845 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4846 297, this_._internal_inprocessing_minimization_use_conflict_analysis(), target);
4849 cached_has_bits = this_.
_impl_._has_bits_[2];
4851 if ((cached_has_bits & 0x08000000u) != 0) {
4852 target = stream->EnsureSpace(target);
4853 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4854 298, this_._internal_inprocessing_minimization_use_all_orderings(), target);
4858 if ((cached_has_bits & 0x40000000u) != 0) {
4859 target = stream->EnsureSpace(target);
4860 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4861 299, this_._internal_use_try_edge_reasoning_in_no_overlap_2d(), target);
4864 cached_has_bits = this_.
_impl_._has_bits_[7];
4866 if ((cached_has_bits & 0x40000000u) != 0) {
4867 target = stream->EnsureSpace(target);
4868 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4869 300, this_._internal_minimize_shared_clauses(), target);
4872 cached_has_bits = this_.
_impl_._has_bits_[2];
4874 if ((cached_has_bits & 0x80000000u) != 0) {
4875 target = stream->EnsureSpace(target);
4876 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4877 301, this_._internal_use_symmetry_in_lp(), target);
4880 cached_has_bits = this_.
_impl_._has_bits_[8];
4882 if ((cached_has_bits & 0x00000002u) != 0) {
4883 target = stream->EnsureSpace(target);
4884 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4885 302, this_._internal_symmetry_detection_deterministic_time_limit(), target);
4888 cached_has_bits = this_.
_impl_._has_bits_[3];
4890 if ((cached_has_bits & 0x00000001u) != 0) {
4891 target = stream->EnsureSpace(target);
4892 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4893 303, this_._internal_keep_symmetry_in_presolve(), target);
4896 cached_has_bits = this_.
_impl_._has_bits_[7];
4898 if ((cached_has_bits & 0x80000000u) != 0) {
4899 target = stream->EnsureSpace(target);
4900 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4901 304, this_._internal_shared_tree_worker_enable_phase_sharing(), target);
4904 cached_has_bits = this_.
_impl_._has_bits_[8];
4906 if ((cached_has_bits & 0x00000001u) != 0) {
4907 target = stream->EnsureSpace(target);
4908 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4909 305, this_._internal_shared_tree_balance_tolerance(), target);
4912 cached_has_bits = this_.
_impl_._has_bits_[3];
4914 if ((cached_has_bits & 0x00000002u) != 0) {
4915 target = stream->EnsureSpace(target);
4916 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4917 306, this_._internal_debug_crash_if_presolve_breaks_hint(), target);
4920 cached_has_bits = this_.
_impl_._has_bits_[8];
4922 if ((cached_has_bits & 0x00000004u) != 0) {
4923 target = stream->EnsureSpace(target);
4924 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4925 307, this_._internal_lns_initial_difficulty(), target);
4929 if ((cached_has_bits & 0x00000008u) != 0) {
4930 target = stream->EnsureSpace(target);
4931 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4932 308, this_._internal_lns_initial_deterministic_limit(), target);
4935 cached_has_bits = this_.
_impl_._has_bits_[3];
4937 if ((cached_has_bits & 0x00000010u) != 0) {
4938 target = stream->EnsureSpace(target);
4939 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4940 309, this_._internal_polarity_exploit_ls_hints(), target);
4943 cached_has_bits = this_.
_impl_._has_bits_[8];
4945 if ((cached_has_bits & 0x00000040u) != 0) {
4946 target = stream->EnsureSpace(target);
4947 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4948 310, this_._internal_remove_fixed_variables_early(), target);
4951 cached_has_bits = this_.
_impl_._has_bits_[3];
4953 if ((cached_has_bits & 0x00000020u) != 0) {
4954 target = stream->EnsureSpace(target);
4955 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4956 311, this_._internal_use_all_different_for_circuit(), target);
4960 if ((cached_has_bits & 0x00000004u) != 0) {
4961 target = stream->EnsureSpace(target);
4962 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4963 312, this_._internal_routing_cut_subset_size_for_binary_relation_bound(), target);
4967 if ((cached_has_bits & 0x00000008u) != 0) {
4968 target = stream->EnsureSpace(target);
4969 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4970 313, this_._internal_routing_cut_subset_size_for_tight_binary_relation_bound(), target);
4973 cached_has_bits = this_.
_impl_._has_bits_[8];
4975 if ((cached_has_bits & 0x00000010u) != 0) {
4976 target = stream->EnsureSpace(target);
4977 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4978 314, this_._internal_routing_cut_dp_effort(), target);
4981 cached_has_bits = this_.
_impl_._has_bits_[3];
4983 if ((cached_has_bits & 0x00000080u) != 0) {
4984 target = stream->EnsureSpace(target);
4985 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4986 315, this_._internal_maximum_regions_to_split_in_disconnected_no_overlap_2d(), target);
4989 cached_has_bits = this_.
_impl_._has_bits_[8];
4991 if ((cached_has_bits & 0x00000020u) != 0) {
4992 target = stream->EnsureSpace(target);
4993 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4994 316, this_._internal_routing_cut_subset_size_for_exact_binary_relation_bound(), target);
4998 if ((cached_has_bits & 0x00000100u) != 0) {
4999 target = stream->EnsureSpace(target);
5000 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5001 317, this_._internal_routing_cut_max_infeasible_path_length(), target);
5005 if ((cached_has_bits & 0x00000200u) != 0) {
5006 target = stream->EnsureSpace(target);
5007 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5008 318, this_._internal_routing_cut_subset_size_for_shortest_paths_bound(), target);
5012 if ((cached_has_bits & 0x00000400u) != 0) {
5013 target = stream->EnsureSpace(target);
5014 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5015 320, this_._internal_max_alldiff_domain_size(), target);
5019 if ((cached_has_bits & 0x00000800u) != 0) {
5020 target = stream->EnsureSpace(target);
5021 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5022 321, this_._internal_no_overlap_2d_boolean_relations_limit(), target);
5026 if ((cached_has_bits & 0x00001000u) != 0) {
5027 target = stream->EnsureSpace(target);
5028 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
5029 322, this_._internal_share_glue_clauses_dtime(), target);
5033 if ((cached_has_bits & 0x00000080u) != 0) {
5034 target = stream->EnsureSpace(target);
5035 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5036 323, this_._internal_use_linear3_for_no_overlap_2d_precedences(), target);
5039 cached_has_bits = this_.
_impl_._has_bits_[3];
5041 if ((cached_has_bits & 0x00000040u) != 0) {
5042 target = stream->EnsureSpace(target);
5043 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5044 324, this_._internal_filter_sat_postsolve_clauses(), target);
5047 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
5049 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
5050 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
5056#if defined(PROTOBUF_CUSTOM_VTABLE)
5064 ::size_t total_size = 0;
5066 ::uint32_t cached_has_bits = 0;
5068 (void)cached_has_bits;
5070 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
5074 ::size_t data_size =
5075 ::_pbi::WireFormatLite::EnumSize(this_._internal_restart_algorithms());
5076 ::size_t tag_size = ::size_t{2} *
5077 ::_pbi::FromIntSize(this_._internal_restart_algorithms_size());
5078 total_size += data_size + tag_size;
5083 2 * ::google::protobuf::internal::FromIntSize(this_._internal_subsolvers().size());
5084 for (
int i = 0, n = this_._internal_subsolvers().size();
i < n; ++
i) {
5085 total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
5086 this_._internal_subsolvers().Get(
i));
5092 2 * ::google::protobuf::internal::FromIntSize(this_._internal_ignore_subsolvers().size());
5093 for (
int i = 0, n = this_._internal_ignore_subsolvers().size();
i < n; ++
i) {
5094 total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
5095 this_._internal_ignore_subsolvers().Get(
i));
5100 total_size += 2UL * this_._internal_subsolver_params_size();
5101 for (
const auto& msg : this_._internal_subsolver_params()) {
5102 total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
5108 2 * ::google::protobuf::internal::FromIntSize(this_._internal_extra_subsolvers().size());
5109 for (
int i = 0, n = this_._internal_extra_subsolvers().size();
i < n; ++
i) {
5110 total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
5111 this_._internal_extra_subsolvers().Get(
i));
5117 2 * ::google::protobuf::internal::FromIntSize(this_._internal_filter_subsolvers().size());
5118 for (
int i = 0, n = this_._internal_filter_subsolvers().size();
i < n; ++
i) {
5119 total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
5120 this_._internal_filter_subsolvers().Get(
i));
5124 cached_has_bits = this_.
_impl_._has_bits_[0];
5125 total_size += ::absl::popcount(0x00104060u & cached_has_bits) * 10;
5126 total_size += ::absl::popcount(0x3fcf0780u & cached_has_bits) * 3;
5127 if ((cached_has_bits & 0x0000001fu) != 0) {
5129 if ((cached_has_bits & 0x00000001u) != 0) {
5130 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
5131 this_._internal_default_restart_algorithms());
5134 if ((cached_has_bits & 0x00000002u) != 0) {
5135 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
5136 this_._internal_name());
5139 if ((cached_has_bits & 0x00000004u) != 0) {
5140 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
5141 this_._internal_log_prefix());
5144 if ((cached_has_bits & 0x00000008u) != 0) {
5146 ::_pbi::WireFormatLite::EnumSize(this_._internal_preferred_variable_order());
5149 if ((cached_has_bits & 0x00000010u) != 0) {
5150 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
5151 this_._internal_clause_cleanup_target());
5154 if ((cached_has_bits & 0x0000b800u) != 0) {
5156 if ((cached_has_bits & 0x00000800u) != 0) {
5158 ::_pbi::WireFormatLite::EnumSize(this_._internal_max_sat_assumption_order());
5161 if ((cached_has_bits & 0x00001000u) != 0) {
5163 ::_pbi::WireFormatLite::EnumSize(this_._internal_clause_cleanup_protection());
5166 if ((cached_has_bits & 0x00002000u) != 0) {
5168 ::_pbi::WireFormatLite::EnumSize(this_._internal_clause_cleanup_ordering());
5171 if ((cached_has_bits & 0x00008000u) != 0) {
5172 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5173 this_._internal_num_conflicts_before_strategy_changes());
5178 if ((cached_has_bits & 0x00200000u) != 0) {
5180 ::_pbi::WireFormatLite::EnumSize(this_._internal_search_branching());
5183 if ((cached_has_bits & 0xc0000000u) != 0) {
5185 if ((cached_has_bits & 0x40000000u) != 0) {
5186 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5187 this_._internal_num_search_workers());
5190 if ((cached_has_bits & 0x80000000u) != 0) {
5191 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5192 this_._internal_search_random_variable_pool_size());
5195 cached_has_bits = this_.
_impl_._has_bits_[1];
5196 total_size +=
static_cast<bool>(0x00000400u & cached_has_bits) * 10;
5197 total_size += ::absl::popcount(0x7ffff9efu & cached_has_bits) * 3;
5200 if ((cached_has_bits & 0x00000010u) != 0) {
5201 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5202 this_._internal_interleave_batch_size());
5207 if ((cached_has_bits & 0x00000200u) != 0) {
5208 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5209 this_._internal_debug_max_num_presolve_operations());
5214 if ((cached_has_bits & 0x80000000u) != 0) {
5215 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5216 this_._internal_num_workers());
5219 cached_has_bits = this_.
_impl_._has_bits_[2];
5220 total_size += ::absl::popcount(0xcff7f8ffu & cached_has_bits) * 3;
5221 if ((cached_has_bits & 0x00000700u) != 0) {
5223 if ((cached_has_bits & 0x00000100u) != 0) {
5224 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5225 this_._internal_shared_tree_num_workers());
5228 if ((cached_has_bits & 0x00000200u) != 0) {
5230 ::_pbi::WireFormatLite::EnumSize(this_._internal_shared_tree_split_strategy());
5233 if ((cached_has_bits & 0x00000400u) != 0) {
5234 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5235 this_._internal_num_violation_ls());
5240 if ((cached_has_bits & 0x00080000u) != 0) {
5241 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5242 this_._internal_max_lin_max_size_for_expansion());
5245 if ((cached_has_bits & 0x30000000u) != 0) {
5247 if ((cached_has_bits & 0x10000000u) != 0) {
5248 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5249 this_._internal_max_num_deterministic_batches());
5252 if ((cached_has_bits & 0x20000000u) != 0) {
5253 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5254 this_._internal_num_full_subsolvers());
5257 cached_has_bits = this_.
_impl_._has_bits_[3];
5258 total_size += ::absl::popcount(0x40139800u & cached_has_bits) * 10;
5259 total_size +=
static_cast<bool>(0x00000400u & cached_has_bits) * 9;
5260 total_size += ::absl::popcount(0x1e000073u & cached_has_bits) * 3;
5261 if ((cached_has_bits & 0x0000008cu) != 0) {
5263 if ((cached_has_bits & 0x00000004u) != 0) {
5264 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5265 this_._internal_routing_cut_subset_size_for_binary_relation_bound());
5268 if ((cached_has_bits & 0x00000008u) != 0) {
5269 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5270 this_._internal_routing_cut_subset_size_for_tight_binary_relation_bound());
5273 if ((cached_has_bits & 0x00000080u) != 0) {
5274 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5275 this_._internal_maximum_regions_to_split_in_disconnected_no_overlap_2d());
5278 if ((cached_has_bits & 0x00006300u) != 0) {
5280 if ((cached_has_bits & 0x00000100u) != 0) {
5282 ::_pbi::WireFormatLite::EnumSize(this_._internal_initial_polarity());
5285 if ((cached_has_bits & 0x00000200u) != 0) {
5287 ::_pbi::WireFormatLite::EnumSize(this_._internal_minimization_algorithm());
5290 if ((cached_has_bits & 0x00002000u) != 0) {
5291 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
5292 this_._internal_clause_cleanup_period());
5295 if ((cached_has_bits & 0x00004000u) != 0) {
5296 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5297 this_._internal_glucose_decay_increment_period());
5300 if ((cached_has_bits & 0x00ec0000u) != 0) {
5302 if ((cached_has_bits & 0x00040000u) != 0) {
5303 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5304 this_._internal_restart_period());
5307 if ((cached_has_bits & 0x00080000u) != 0) {
5308 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5309 this_._internal_random_seed());
5312 if ((cached_has_bits & 0x00200000u) != 0) {
5313 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5314 this_._internal_max_number_of_conflicts());
5317 if ((cached_has_bits & 0x00400000u) != 0) {
5318 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5319 this_._internal_max_memory_in_mb());
5322 if ((cached_has_bits & 0x00800000u) != 0) {
5324 ::_pbi::WireFormatLite::EnumSize(this_._internal_binary_minimization_algorithm());
5327 if ((cached_has_bits & 0xa1000000u) != 0) {
5329 if ((cached_has_bits & 0x01000000u) != 0) {
5330 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5331 this_._internal_pb_cleanup_increment());
5334 if ((cached_has_bits & 0x20000000u) != 0) {
5335 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5336 this_._internal_core_minimization_level());
5339 if ((cached_has_bits & 0x80000000u) != 0) {
5341 ::_pbi::WireFormatLite::EnumSize(this_._internal_max_sat_stratification());
5344 cached_has_bits = this_.
_impl_._has_bits_[4];
5345 total_size += ::absl::popcount(0x00000392u & cached_has_bits) * 10;
5346 total_size += ::absl::popcount(0xf3c7f800u & cached_has_bits) * 3;
5347 if ((cached_has_bits & 0x0000006du) != 0) {
5349 if ((cached_has_bits & 0x00000001u) != 0) {
5350 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5351 this_._internal_presolve_bve_threshold());
5354 if ((cached_has_bits & 0x00000004u) != 0) {
5355 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5356 this_._internal_presolve_bve_clause_weight());
5359 if ((cached_has_bits & 0x00000008u) != 0) {
5360 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5361 this_._internal_clause_cleanup_lbd_bound());
5364 if ((cached_has_bits & 0x00000020u) != 0) {
5365 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5366 this_._internal_restart_running_window_size());
5369 if ((cached_has_bits & 0x00000040u) != 0) {
5370 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5371 this_._internal_blocking_restart_window_size());
5376 if ((cached_has_bits & 0x00000400u) != 0) {
5377 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5378 this_._internal_presolve_bva_threshold());
5381 if ((cached_has_bits & 0x00380000u) != 0) {
5383 if ((cached_has_bits & 0x00080000u) != 0) {
5384 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5385 this_._internal_linearization_level());
5388 if ((cached_has_bits & 0x00100000u) != 0) {
5389 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5390 this_._internal_max_num_cuts());
5393 if ((cached_has_bits & 0x00200000u) != 0) {
5394 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5395 this_._internal_binary_search_num_conflicts());
5398 if ((cached_has_bits & 0x0c000000u) != 0) {
5400 if ((cached_has_bits & 0x04000000u) != 0) {
5401 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5402 this_._internal_boolean_encoding_level());
5405 if ((cached_has_bits & 0x08000000u) != 0) {
5406 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5407 this_._internal_cp_model_probing_level());
5410 cached_has_bits = this_.
_impl_._has_bits_[5];
5411 total_size += ::absl::popcount(0x19019e01u & cached_has_bits) * 10;
5412 total_size += ::absl::popcount(0xc07801e0u & cached_has_bits) * 3;
5413 if ((cached_has_bits & 0x0000001eu) != 0) {
5415 if ((cached_has_bits & 0x00000002u) != 0) {
5416 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5417 this_._internal_max_integer_rounding_scaling());
5420 if ((cached_has_bits & 0x00000004u) != 0) {
5421 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5422 this_._internal_max_consecutive_inactive_count());
5425 if ((cached_has_bits & 0x00000008u) != 0) {
5426 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5427 this_._internal_pseudo_cost_reliability_threshold());
5430 if ((cached_has_bits & 0x00000010u) != 0) {
5431 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5432 this_._internal_new_constraints_batch_size());
5435 if ((cached_has_bits & 0x00006000u) != 0) {
5437 if ((cached_has_bits & 0x00002000u) != 0) {
5438 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5439 this_._internal_mip_max_activity_exponent());
5442 if ((cached_has_bits & 0x00004000u) != 0) {
5443 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5444 this_._internal_max_presolve_iterations());
5447 if ((cached_has_bits & 0x00860000u) != 0) {
5449 if ((cached_has_bits & 0x00020000u) != 0) {
5450 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5451 this_._internal_presolve_substitution_level());
5454 if ((cached_has_bits & 0x00040000u) != 0) {
5455 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5456 this_._internal_max_all_diff_cut_size());
5459 if ((cached_has_bits & 0x00800000u) != 0) {
5460 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5461 this_._internal_hint_conflict_limit());
5464 if ((cached_has_bits & 0x26000000u) != 0) {
5466 if ((cached_has_bits & 0x02000000u) != 0) {
5467 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5468 this_._internal_max_cut_rounds_at_level_zero());
5471 if ((cached_has_bits & 0x04000000u) != 0) {
5472 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5473 this_._internal_cut_cleanup_target());
5476 if ((cached_has_bits & 0x20000000u) != 0) {
5478 ::_pbi::WireFormatLite::EnumSize(this_._internal_fp_rounding());
5481 cached_has_bits = this_.
_impl_._has_bits_[6];
5482 total_size += ::absl::popcount(0x0660d200u & cached_has_bits) * 10;
5483 total_size += ::absl::popcount(0xf00f00f3u & cached_has_bits) * 3;
5484 if ((cached_has_bits & 0x0000000cu) != 0) {
5486 if ((cached_has_bits & 0x00000004u) != 0) {
5487 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5488 this_._internal_polarity_rephase_increment());
5491 if ((cached_has_bits & 0x00000008u) != 0) {
5492 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5493 this_._internal_symmetry_level());
5496 if ((cached_has_bits & 0x00002d00u) != 0) {
5498 if ((cached_has_bits & 0x00000100u) != 0) {
5499 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5500 this_._internal_max_domain_size_when_encoding_eq_neq_constraints());
5503 if ((cached_has_bits & 0x00000400u) != 0) {
5504 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5505 this_._internal_solution_pool_size());
5508 if ((cached_has_bits & 0x00000800u) != 0) {
5509 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5510 this_._internal_cut_level());
5513 if ((cached_has_bits & 0x00002000u) != 0) {
5514 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5515 this_._internal_presolve_inclusion_work_limit());
5518 if ((cached_has_bits & 0x00900000u) != 0) {
5520 if ((cached_has_bits & 0x00100000u) != 0) {
5521 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5522 this_._internal_table_compression_level());
5525 if ((cached_has_bits & 0x00800000u) != 0) {
5526 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5527 this_._internal_root_lp_iterations());
5530 if ((cached_has_bits & 0x09000000u) != 0) {
5532 if ((cached_has_bits & 0x01000000u) != 0) {
5533 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5534 this_._internal_max_size_to_create_precedence_literals_in_disjunctive());
5537 if ((cached_has_bits & 0x08000000u) != 0) {
5538 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5539 this_._internal_shared_tree_max_nodes_per_worker());
5542 cached_has_bits = this_.
_impl_._has_bits_[7];
5543 total_size += ::absl::popcount(0x02982643u & cached_has_bits) * 10;
5544 total_size += ::absl::popcount(0xf0078000u & cached_has_bits) * 3;
5545 if ((cached_has_bits & 0x000000bcu) != 0) {
5547 if ((cached_has_bits & 0x00000004u) != 0) {
5548 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5549 this_._internal_violation_ls_perturbation_period());
5552 if ((cached_has_bits & 0x00000008u) != 0) {
5553 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5554 this_._internal_linear_split_size());
5557 if ((cached_has_bits & 0x00000010u) != 0) {
5558 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5559 this_._internal_feasibility_jump_linearization_level());
5562 if ((cached_has_bits & 0x00000020u) != 0) {
5563 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5564 this_._internal_feasibility_jump_restart_factor());
5567 if ((cached_has_bits & 0x00000080u) != 0) {
5568 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5569 this_._internal_max_num_intervals_for_timetable_edge_finding());
5572 if ((cached_has_bits & 0x00005900u) != 0) {
5574 if ((cached_has_bits & 0x00000100u) != 0) {
5575 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5576 this_._internal_mip_presolve_level());
5579 if ((cached_has_bits & 0x00000800u) != 0) {
5580 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5581 this_._internal_feasibility_jump_max_expanded_constraint_size());
5584 if ((cached_has_bits & 0x00001000u) != 0) {
5585 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5586 this_._internal_at_most_one_max_expansion_size());
5589 if ((cached_has_bits & 0x00004000u) != 0) {
5590 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5591 this_._internal_probing_num_combinations_limit());
5594 if ((cached_has_bits & 0x00600000u) != 0) {
5596 if ((cached_has_bits & 0x00200000u) != 0) {
5597 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5598 this_._internal_max_pairs_pairwise_reasoning_in_no_overlap_2d());
5601 if ((cached_has_bits & 0x00400000u) != 0) {
5602 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5603 this_._internal_shared_tree_worker_min_restarts_per_subtree());
5606 if ((cached_has_bits & 0x0d000000u) != 0) {
5608 if ((cached_has_bits & 0x01000000u) != 0) {
5609 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5610 this_._internal_shaving_search_threshold());
5613 if ((cached_has_bits & 0x04000000u) != 0) {
5614 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5615 this_._internal_variables_shaving_level());
5618 if ((cached_has_bits & 0x08000000u) != 0) {
5619 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5620 this_._internal_lb_relax_num_workers_threshold());
5623 cached_has_bits = this_.
_impl_._has_bits_[8];
5624 total_size += ::absl::popcount(0x0000101eu & cached_has_bits) * 10;
5625 total_size += ::absl::popcount(0x000000c0u & cached_has_bits) * 3;
5626 if ((cached_has_bits & 0x00000021u) != 0) {
5628 if ((cached_has_bits & 0x00000001u) != 0) {
5629 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5630 this_._internal_shared_tree_balance_tolerance());
5633 if ((cached_has_bits & 0x00000020u) != 0) {
5634 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5635 this_._internal_routing_cut_subset_size_for_exact_binary_relation_bound());
5638 if ((cached_has_bits & 0x00000f00u) != 0) {
5640 if ((cached_has_bits & 0x00000100u) != 0) {
5641 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5642 this_._internal_routing_cut_max_infeasible_path_length());
5645 if ((cached_has_bits & 0x00000200u) != 0) {
5646 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5647 this_._internal_routing_cut_subset_size_for_shortest_paths_bound());
5650 if ((cached_has_bits & 0x00000400u) != 0) {
5651 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5652 this_._internal_max_alldiff_domain_size());
5655 if ((cached_has_bits & 0x00000800u) != 0) {
5656 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5657 this_._internal_no_overlap_2d_boolean_relations_limit());
5660 return this_.MaybeComputeUnknownFieldsSize(total_size,
5661 &this_.
_impl_._cached_size_);
5664void SatParameters::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
5668 ABSL_DCHECK_NE(&from, _this);
5669 ::uint32_t cached_has_bits = 0;
5670 (void) cached_has_bits;
5672 _this->_internal_mutable_restart_algorithms()->MergeFrom(from._internal_restart_algorithms());
5673 _this->_internal_mutable_subsolvers()->MergeFrom(from._internal_subsolvers());
5674 _this->_internal_mutable_ignore_subsolvers()->MergeFrom(from._internal_ignore_subsolvers());
5675 _this->_internal_mutable_subsolver_params()->MergeFrom(
5676 from._internal_subsolver_params());
5677 _this->_internal_mutable_extra_subsolvers()->MergeFrom(from._internal_extra_subsolvers());
5678 _this->_internal_mutable_filter_subsolvers()->MergeFrom(from._internal_filter_subsolvers());
5679 cached_has_bits = from._impl_._has_bits_[0];
5680 if ((cached_has_bits & 0x000000ffu) != 0) {
5681 if ((cached_has_bits & 0x00000001u) != 0) {
5682 _this->_internal_set_default_restart_algorithms(from._internal_default_restart_algorithms());
5684 if ((cached_has_bits & 0x00000002u) != 0) {
5685 _this->_internal_set_name(from._internal_name());
5687 if ((cached_has_bits & 0x00000004u) != 0) {
5688 _this->_internal_set_log_prefix(from._internal_log_prefix());
5690 if ((cached_has_bits & 0x00000008u) != 0) {
5691 _this->_impl_.preferred_variable_order_ = from._impl_.preferred_variable_order_;
5693 if ((cached_has_bits & 0x00000010u) != 0) {
5694 _this->_impl_.clause_cleanup_target_ = from._impl_.clause_cleanup_target_;
5696 if ((cached_has_bits & 0x00000020u) != 0) {
5697 _this->_impl_.random_branches_ratio_ = from._impl_.random_branches_ratio_;
5699 if ((cached_has_bits & 0x00000040u) != 0) {
5700 _this->_impl_.random_polarity_ratio_ = from._impl_.random_polarity_ratio_;
5702 if ((cached_has_bits & 0x00000080u) != 0) {
5703 _this->_impl_.log_search_progress_ = from._impl_.log_search_progress_;
5706 if ((cached_has_bits & 0x0000ff00u) != 0) {
5707 if ((cached_has_bits & 0x00000100u) != 0) {
5708 _this->_impl_.use_pb_resolution_ = from._impl_.use_pb_resolution_;
5710 if ((cached_has_bits & 0x00000200u) != 0) {
5711 _this->_impl_.minimize_reduction_during_pb_resolution_ = from._impl_.minimize_reduction_during_pb_resolution_;
5713 if ((cached_has_bits & 0x00000400u) != 0) {
5714 _this->_impl_.max_sat_reverse_assumption_order_ = from._impl_.max_sat_reverse_assumption_order_;
5716 if ((cached_has_bits & 0x00000800u) != 0) {
5717 _this->_impl_.max_sat_assumption_order_ = from._impl_.max_sat_assumption_order_;
5719 if ((cached_has_bits & 0x00001000u) != 0) {
5720 _this->_impl_.clause_cleanup_protection_ = from._impl_.clause_cleanup_protection_;
5722 if ((cached_has_bits & 0x00002000u) != 0) {
5723 _this->_impl_.clause_cleanup_ordering_ = from._impl_.clause_cleanup_ordering_;
5725 if ((cached_has_bits & 0x00004000u) != 0) {
5726 _this->_impl_.strategy_change_increase_ratio_ = from._impl_.strategy_change_increase_ratio_;
5728 if ((cached_has_bits & 0x00008000u) != 0) {
5729 _this->_impl_.num_conflicts_before_strategy_changes_ = from._impl_.num_conflicts_before_strategy_changes_;
5732 if ((cached_has_bits & 0x00ff0000u) != 0) {
5733 if ((cached_has_bits & 0x00010000u) != 0) {
5734 _this->_impl_.use_blocking_restart_ = from._impl_.use_blocking_restart_;
5736 if ((cached_has_bits & 0x00020000u) != 0) {
5737 _this->_impl_.use_erwa_heuristic_ = from._impl_.use_erwa_heuristic_;
5739 if ((cached_has_bits & 0x00040000u) != 0) {
5740 _this->_impl_.also_bump_variables_in_conflict_reasons_ = from._impl_.also_bump_variables_in_conflict_reasons_;
5742 if ((cached_has_bits & 0x00080000u) != 0) {
5743 _this->_impl_.use_overload_checker_in_cumulative_ = from._impl_.use_overload_checker_in_cumulative_;
5745 if ((cached_has_bits & 0x00100000u) != 0) {
5746 _this->_impl_.initial_variables_activity_ = from._impl_.initial_variables_activity_;
5748 if ((cached_has_bits & 0x00200000u) != 0) {
5749 _this->_impl_.search_branching_ = from._impl_.search_branching_;
5751 if ((cached_has_bits & 0x00400000u) != 0) {
5752 _this->_impl_.use_timetable_edge_finding_in_cumulative_ = from._impl_.use_timetable_edge_finding_in_cumulative_;
5754 if ((cached_has_bits & 0x00800000u) != 0) {
5755 _this->_impl_.optimize_with_core_ = from._impl_.optimize_with_core_;
5758 if ((cached_has_bits & 0xff000000u) != 0) {
5759 if ((cached_has_bits & 0x01000000u) != 0) {
5760 _this->_impl_.optimize_with_max_hs_ = from._impl_.optimize_with_max_hs_;
5762 if ((cached_has_bits & 0x02000000u) != 0) {
5763 _this->_impl_.enumerate_all_solutions_ = from._impl_.enumerate_all_solutions_;
5765 if ((cached_has_bits & 0x04000000u) != 0) {
5766 _this->_impl_.only_add_cuts_at_level_zero_ = from._impl_.only_add_cuts_at_level_zero_;
5768 if ((cached_has_bits & 0x08000000u) != 0) {
5769 _this->_impl_.stop_after_first_solution_ = from._impl_.stop_after_first_solution_;
5771 if ((cached_has_bits & 0x10000000u) != 0) {
5772 _this->_impl_.use_lns_only_ = from._impl_.use_lns_only_;
5774 if ((cached_has_bits & 0x20000000u) != 0) {
5775 _this->_impl_.randomize_search_ = from._impl_.randomize_search_;
5777 if ((cached_has_bits & 0x40000000u) != 0) {
5778 _this->_impl_.num_search_workers_ = from._impl_.num_search_workers_;
5780 if ((cached_has_bits & 0x80000000u) != 0) {
5781 _this->_impl_.search_random_variable_pool_size_ = from._impl_.search_random_variable_pool_size_;
5784 cached_has_bits = from._impl_._has_bits_[1];
5785 if ((cached_has_bits & 0x000000ffu) != 0) {
5786 if ((cached_has_bits & 0x00000001u) != 0) {
5787 _this->_impl_.use_optional_variables_ = from._impl_.use_optional_variables_;
5789 if ((cached_has_bits & 0x00000002u) != 0) {
5790 _this->_impl_.exploit_best_solution_ = from._impl_.exploit_best_solution_;
5792 if ((cached_has_bits & 0x00000004u) != 0) {
5793 _this->_impl_.fill_tightened_domains_in_response_ = from._impl_.fill_tightened_domains_in_response_;
5795 if ((cached_has_bits & 0x00000008u) != 0) {
5796 _this->_impl_.use_combined_no_overlap_ = from._impl_.use_combined_no_overlap_;
5798 if ((cached_has_bits & 0x00000010u) != 0) {
5799 _this->_impl_.interleave_batch_size_ = from._impl_.interleave_batch_size_;
5801 if ((cached_has_bits & 0x00000020u) != 0) {
5802 _this->_impl_.interleave_search_ = from._impl_.interleave_search_;
5804 if ((cached_has_bits & 0x00000040u) != 0) {
5805 _this->_impl_.diversify_lns_params_ = from._impl_.diversify_lns_params_;
5807 if ((cached_has_bits & 0x00000080u) != 0) {
5808 _this->_impl_.stop_after_presolve_ = from._impl_.stop_after_presolve_;
5811 if ((cached_has_bits & 0x0000ff00u) != 0) {
5812 if ((cached_has_bits & 0x00000100u) != 0) {
5813 _this->_impl_.exploit_relaxation_solution_ = from._impl_.exploit_relaxation_solution_;
5815 if ((cached_has_bits & 0x00000200u) != 0) {
5816 _this->_impl_.debug_max_num_presolve_operations_ = from._impl_.debug_max_num_presolve_operations_;
5818 if ((cached_has_bits & 0x00000400u) != 0) {
5819 _this->_impl_.relative_gap_limit_ = from._impl_.relative_gap_limit_;
5821 if ((cached_has_bits & 0x00000800u) != 0) {
5822 _this->_impl_.debug_postsolve_with_full_solver_ = from._impl_.debug_postsolve_with_full_solver_;
5824 if ((cached_has_bits & 0x00001000u) != 0) {
5825 _this->_impl_.repair_hint_ = from._impl_.repair_hint_;
5827 if ((cached_has_bits & 0x00002000u) != 0) {
5828 _this->_impl_.expand_alldiff_constraints_ = from._impl_.expand_alldiff_constraints_;
5830 if ((cached_has_bits & 0x00004000u) != 0) {
5831 _this->_impl_.keep_all_feasible_solutions_in_presolve_ = from._impl_.keep_all_feasible_solutions_in_presolve_;
5833 if ((cached_has_bits & 0x00008000u) != 0) {
5834 _this->_impl_.presolve_extract_integer_enforcement_ = from._impl_.presolve_extract_integer_enforcement_;
5837 if ((cached_has_bits & 0x00ff0000u) != 0) {
5838 if ((cached_has_bits & 0x00010000u) != 0) {
5839 _this->_impl_.polish_lp_solution_ = from._impl_.polish_lp_solution_;
5841 if ((cached_has_bits & 0x00020000u) != 0) {
5842 _this->_impl_.use_probing_search_ = from._impl_.use_probing_search_;
5844 if ((cached_has_bits & 0x00040000u) != 0) {
5845 _this->_impl_.permute_variable_randomly_ = from._impl_.permute_variable_randomly_;
5847 if ((cached_has_bits & 0x00080000u) != 0) {
5848 _this->_impl_.permute_presolve_constraint_order_ = from._impl_.permute_presolve_constraint_order_;
5850 if ((cached_has_bits & 0x00100000u) != 0) {
5851 _this->_impl_.use_absl_random_ = from._impl_.use_absl_random_;
5853 if ((cached_has_bits & 0x00200000u) != 0) {
5854 _this->_impl_.disable_constraint_expansion_ = from._impl_.disable_constraint_expansion_;
5856 if ((cached_has_bits & 0x00400000u) != 0) {
5857 _this->_impl_.log_to_response_ = from._impl_.log_to_response_;
5859 if ((cached_has_bits & 0x00800000u) != 0) {
5860 _this->_impl_.optimize_with_lb_tree_search_ = from._impl_.optimize_with_lb_tree_search_;
5863 if ((cached_has_bits & 0xff000000u) != 0) {
5864 if ((cached_has_bits & 0x01000000u) != 0) {
5865 _this->_impl_.log_subsolver_statistics_ = from._impl_.log_subsolver_statistics_;
5867 if ((cached_has_bits & 0x02000000u) != 0) {
5868 _this->_impl_.fix_variables_to_their_hinted_value_ = from._impl_.fix_variables_to_their_hinted_value_;
5870 if ((cached_has_bits & 0x04000000u) != 0) {
5871 _this->_impl_.fill_additional_solutions_in_response_ = from._impl_.fill_additional_solutions_in_response_;
5873 if ((cached_has_bits & 0x08000000u) != 0) {
5874 _this->_impl_.debug_crash_on_bad_hint_ = from._impl_.debug_crash_on_bad_hint_;
5876 if ((cached_has_bits & 0x10000000u) != 0) {
5877 _this->_impl_.add_objective_cut_ = from._impl_.add_objective_cut_;
5879 if ((cached_has_bits & 0x20000000u) != 0) {
5880 _this->_impl_.use_timetabling_in_no_overlap_2d_ = from._impl_.use_timetabling_in_no_overlap_2d_;
5882 if ((cached_has_bits & 0x40000000u) != 0) {
5883 _this->_impl_.use_energetic_reasoning_in_no_overlap_2d_ = from._impl_.use_energetic_reasoning_in_no_overlap_2d_;
5885 if ((cached_has_bits & 0x80000000u) != 0) {
5886 _this->_impl_.num_workers_ = from._impl_.num_workers_;
5889 cached_has_bits = from._impl_._has_bits_[2];
5890 if ((cached_has_bits & 0x000000ffu) != 0) {
5891 if ((cached_has_bits & 0x00000001u) != 0) {
5892 _this->_impl_.use_hard_precedences_in_cumulative_ = from._impl_.use_hard_precedences_in_cumulative_;
5894 if ((cached_has_bits & 0x00000002u) != 0) {
5895 _this->_impl_.detect_table_with_cost_ = from._impl_.detect_table_with_cost_;
5897 if ((cached_has_bits & 0x00000004u) != 0) {
5898 _this->_impl_.exploit_all_precedences_ = from._impl_.exploit_all_precedences_;
5900 if ((cached_has_bits & 0x00000008u) != 0) {
5901 _this->_impl_.only_solve_ip_ = from._impl_.only_solve_ip_;
5903 if ((cached_has_bits & 0x00000010u) != 0) {
5904 _this->_impl_.encode_complex_linear_constraint_with_integer_ = from._impl_.encode_complex_linear_constraint_with_integer_;
5906 if ((cached_has_bits & 0x00000020u) != 0) {
5907 _this->_impl_.mip_scale_large_domain_ = from._impl_.mip_scale_large_domain_;
5909 if ((cached_has_bits & 0x00000040u) != 0) {
5910 _this->_impl_.use_objective_lb_search_ = from._impl_.use_objective_lb_search_;
5912 if ((cached_has_bits & 0x00000080u) != 0) {
5913 _this->_impl_.use_strong_propagation_in_disjunctive_ = from._impl_.use_strong_propagation_in_disjunctive_;
5916 if ((cached_has_bits & 0x0000ff00u) != 0) {
5917 if ((cached_has_bits & 0x00000100u) != 0) {
5918 _this->_impl_.shared_tree_num_workers_ = from._impl_.shared_tree_num_workers_;
5920 if ((cached_has_bits & 0x00000200u) != 0) {
5921 _this->_impl_.shared_tree_split_strategy_ = from._impl_.shared_tree_split_strategy_;
5923 if ((cached_has_bits & 0x00000400u) != 0) {
5924 _this->_impl_.num_violation_ls_ = from._impl_.num_violation_ls_;
5926 if ((cached_has_bits & 0x00000800u) != 0) {
5927 _this->_impl_.use_shared_tree_search_ = from._impl_.use_shared_tree_search_;
5929 if ((cached_has_bits & 0x00001000u) != 0) {
5930 _this->_impl_.use_ls_only_ = from._impl_.use_ls_only_;
5932 if ((cached_has_bits & 0x00002000u) != 0) {
5933 _this->_impl_.stop_after_root_propagation_ = from._impl_.stop_after_root_propagation_;
5935 if ((cached_has_bits & 0x00004000u) != 0) {
5936 _this->_impl_.use_objective_shaving_search_ = from._impl_.use_objective_shaving_search_;
5938 if ((cached_has_bits & 0x00008000u) != 0) {
5939 _this->_impl_.push_all_tasks_toward_start_ = from._impl_.push_all_tasks_toward_start_;
5942 if ((cached_has_bits & 0x00ff0000u) != 0) {
5943 if ((cached_has_bits & 0x00010000u) != 0) {
5944 _this->_impl_.use_dynamic_precedence_in_disjunctive_ = from._impl_.use_dynamic_precedence_in_disjunctive_;
5946 if ((cached_has_bits & 0x00020000u) != 0) {
5947 _this->_impl_.use_dynamic_precedence_in_cumulative_ = from._impl_.use_dynamic_precedence_in_cumulative_;
5949 if ((cached_has_bits & 0x00040000u) != 0) {
5950 _this->_impl_.use_area_energetic_reasoning_in_no_overlap_2d_ = from._impl_.use_area_energetic_reasoning_in_no_overlap_2d_;
5952 if ((cached_has_bits & 0x00080000u) != 0) {
5953 _this->_impl_.max_lin_max_size_for_expansion_ = from._impl_.max_lin_max_size_for_expansion_;
5955 if ((cached_has_bits & 0x00100000u) != 0) {
5956 _this->_impl_.detect_linearized_product_ = from._impl_.detect_linearized_product_;
5958 if ((cached_has_bits & 0x00200000u) != 0) {
5959 _this->_impl_.mip_treat_high_magnitude_bounds_as_infinity_ = from._impl_.mip_treat_high_magnitude_bounds_as_infinity_;
5961 if ((cached_has_bits & 0x00400000u) != 0) {
5962 _this->_impl_.save_lp_basis_in_lb_tree_search_ = from._impl_.save_lp_basis_in_lb_tree_search_;
5964 if ((cached_has_bits & 0x00800000u) != 0) {
5965 _this->_impl_.share_glue_clauses_ = from._impl_.share_glue_clauses_;
5968 if ((cached_has_bits & 0xff000000u) != 0) {
5969 if ((cached_has_bits & 0x01000000u) != 0) {
5970 _this->_impl_.use_conservative_scale_overload_checker_ = from._impl_.use_conservative_scale_overload_checker_;
5972 if ((cached_has_bits & 0x02000000u) != 0) {
5973 _this->_impl_.encode_cumulative_as_reservoir_ = from._impl_.encode_cumulative_as_reservoir_;
5975 if ((cached_has_bits & 0x04000000u) != 0) {
5976 _this->_impl_.expand_reservoir_using_circuit_ = from._impl_.expand_reservoir_using_circuit_;
5978 if ((cached_has_bits & 0x08000000u) != 0) {
5979 _this->_impl_.inprocessing_minimization_use_all_orderings_ = from._impl_.inprocessing_minimization_use_all_orderings_;
5981 if ((cached_has_bits & 0x10000000u) != 0) {
5982 _this->_impl_.max_num_deterministic_batches_ = from._impl_.max_num_deterministic_batches_;
5984 if ((cached_has_bits & 0x20000000u) != 0) {
5985 _this->_impl_.num_full_subsolvers_ = from._impl_.num_full_subsolvers_;
5987 if ((cached_has_bits & 0x40000000u) != 0) {
5988 _this->_impl_.use_try_edge_reasoning_in_no_overlap_2d_ = from._impl_.use_try_edge_reasoning_in_no_overlap_2d_;
5990 if ((cached_has_bits & 0x80000000u) != 0) {
5991 _this->_impl_.use_symmetry_in_lp_ = from._impl_.use_symmetry_in_lp_;
5994 cached_has_bits = from._impl_._has_bits_[3];
5995 if ((cached_has_bits & 0x000000ffu) != 0) {
5996 if ((cached_has_bits & 0x00000001u) != 0) {
5997 _this->_impl_.keep_symmetry_in_presolve_ = from._impl_.keep_symmetry_in_presolve_;
5999 if ((cached_has_bits & 0x00000002u) != 0) {
6000 _this->_impl_.debug_crash_if_presolve_breaks_hint_ = from._impl_.debug_crash_if_presolve_breaks_hint_;
6002 if ((cached_has_bits & 0x00000004u) != 0) {
6003 _this->_impl_.routing_cut_subset_size_for_binary_relation_bound_ = from._impl_.routing_cut_subset_size_for_binary_relation_bound_;
6005 if ((cached_has_bits & 0x00000008u) != 0) {
6006 _this->_impl_.routing_cut_subset_size_for_tight_binary_relation_bound_ = from._impl_.routing_cut_subset_size_for_tight_binary_relation_bound_;
6008 if ((cached_has_bits & 0x00000010u) != 0) {
6009 _this->_impl_.polarity_exploit_ls_hints_ = from._impl_.polarity_exploit_ls_hints_;
6011 if ((cached_has_bits & 0x00000020u) != 0) {
6012 _this->_impl_.use_all_different_for_circuit_ = from._impl_.use_all_different_for_circuit_;
6014 if ((cached_has_bits & 0x00000040u) != 0) {
6015 _this->_impl_.filter_sat_postsolve_clauses_ = from._impl_.filter_sat_postsolve_clauses_;
6017 if ((cached_has_bits & 0x00000080u) != 0) {
6018 _this->_impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_ = from._impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_;
6021 if ((cached_has_bits & 0x0000ff00u) != 0) {
6022 if ((cached_has_bits & 0x00000100u) != 0) {
6023 _this->_impl_.initial_polarity_ = from._impl_.initial_polarity_;
6025 if ((cached_has_bits & 0x00000200u) != 0) {
6026 _this->_impl_.minimization_algorithm_ = from._impl_.minimization_algorithm_;
6028 if ((cached_has_bits & 0x00000400u) != 0) {
6029 _this->_impl_.variable_activity_decay_ = from._impl_.variable_activity_decay_;
6031 if ((cached_has_bits & 0x00000800u) != 0) {
6032 _this->_impl_.max_variable_activity_value_ = from._impl_.max_variable_activity_value_;
6034 if ((cached_has_bits & 0x00001000u) != 0) {
6035 _this->_impl_.clause_activity_decay_ = from._impl_.clause_activity_decay_;
6037 if ((cached_has_bits & 0x00002000u) != 0) {
6038 _this->_impl_.clause_cleanup_period_ = from._impl_.clause_cleanup_period_;
6040 if ((cached_has_bits & 0x00004000u) != 0) {
6041 _this->_impl_.glucose_decay_increment_period_ = from._impl_.glucose_decay_increment_period_;
6043 if ((cached_has_bits & 0x00008000u) != 0) {
6044 _this->_impl_.max_clause_activity_value_ = from._impl_.max_clause_activity_value_;
6047 if ((cached_has_bits & 0x00ff0000u) != 0) {
6048 if ((cached_has_bits & 0x00010000u) != 0) {
6049 _this->_impl_.glucose_max_decay_ = from._impl_.glucose_max_decay_;
6051 if ((cached_has_bits & 0x00020000u) != 0) {
6052 _this->_impl_.glucose_decay_increment_ = from._impl_.glucose_decay_increment_;
6054 if ((cached_has_bits & 0x00040000u) != 0) {
6055 _this->_impl_.restart_period_ = from._impl_.restart_period_;
6057 if ((cached_has_bits & 0x00080000u) != 0) {
6058 _this->_impl_.random_seed_ = from._impl_.random_seed_;
6060 if ((cached_has_bits & 0x00100000u) != 0) {
6061 _this->_impl_.max_time_in_seconds_ = from._impl_.max_time_in_seconds_;
6063 if ((cached_has_bits & 0x00200000u) != 0) {
6064 _this->_impl_.max_number_of_conflicts_ = from._impl_.max_number_of_conflicts_;
6066 if ((cached_has_bits & 0x00400000u) != 0) {
6067 _this->_impl_.max_memory_in_mb_ = from._impl_.max_memory_in_mb_;
6069 if ((cached_has_bits & 0x00800000u) != 0) {
6070 _this->_impl_.binary_minimization_algorithm_ = from._impl_.binary_minimization_algorithm_;
6073 if ((cached_has_bits & 0xff000000u) != 0) {
6074 if ((cached_has_bits & 0x01000000u) != 0) {
6075 _this->_impl_.pb_cleanup_increment_ = from._impl_.pb_cleanup_increment_;
6077 if ((cached_has_bits & 0x02000000u) != 0) {
6078 _this->_impl_.use_optimization_hints_ = from._impl_.use_optimization_hints_;
6080 if ((cached_has_bits & 0x04000000u) != 0) {
6081 _this->_impl_.use_phase_saving_ = from._impl_.use_phase_saving_;
6083 if ((cached_has_bits & 0x08000000u) != 0) {
6084 _this->_impl_.count_assumption_levels_in_lbd_ = from._impl_.count_assumption_levels_in_lbd_;
6086 if ((cached_has_bits & 0x10000000u) != 0) {
6087 _this->_impl_.subsumption_during_conflict_analysis_ = from._impl_.subsumption_during_conflict_analysis_;
6089 if ((cached_has_bits & 0x20000000u) != 0) {
6090 _this->_impl_.core_minimization_level_ = from._impl_.core_minimization_level_;
6092 if ((cached_has_bits & 0x40000000u) != 0) {
6093 _this->_impl_.pb_cleanup_ratio_ = from._impl_.pb_cleanup_ratio_;
6095 if ((cached_has_bits & 0x80000000u) != 0) {
6096 _this->_impl_.max_sat_stratification_ = from._impl_.max_sat_stratification_;
6099 cached_has_bits = from._impl_._has_bits_[4];
6100 if ((cached_has_bits & 0x000000ffu) != 0) {
6101 if ((cached_has_bits & 0x00000001u) != 0) {
6102 _this->_impl_.presolve_bve_threshold_ = from._impl_.presolve_bve_threshold_;
6104 if ((cached_has_bits & 0x00000002u) != 0) {
6105 _this->_impl_.presolve_probing_deterministic_time_limit_ = from._impl_.presolve_probing_deterministic_time_limit_;
6107 if ((cached_has_bits & 0x00000004u) != 0) {
6108 _this->_impl_.presolve_bve_clause_weight_ = from._impl_.presolve_bve_clause_weight_;
6110 if ((cached_has_bits & 0x00000008u) != 0) {
6111 _this->_impl_.clause_cleanup_lbd_bound_ = from._impl_.clause_cleanup_lbd_bound_;
6113 if ((cached_has_bits & 0x00000010u) != 0) {
6114 _this->_impl_.restart_dl_average_ratio_ = from._impl_.restart_dl_average_ratio_;
6116 if ((cached_has_bits & 0x00000020u) != 0) {
6117 _this->_impl_.restart_running_window_size_ = from._impl_.restart_running_window_size_;
6119 if ((cached_has_bits & 0x00000040u) != 0) {
6120 _this->_impl_.blocking_restart_window_size_ = from._impl_.blocking_restart_window_size_;
6122 if ((cached_has_bits & 0x00000080u) != 0) {
6123 _this->_impl_.blocking_restart_multiplier_ = from._impl_.blocking_restart_multiplier_;
6126 if ((cached_has_bits & 0x0000ff00u) != 0) {
6127 if ((cached_has_bits & 0x00000100u) != 0) {
6128 _this->_impl_.max_deterministic_time_ = from._impl_.max_deterministic_time_;
6130 if ((cached_has_bits & 0x00000200u) != 0) {
6131 _this->_impl_.restart_lbd_average_ratio_ = from._impl_.restart_lbd_average_ratio_;
6133 if ((cached_has_bits & 0x00000400u) != 0) {
6134 _this->_impl_.presolve_bva_threshold_ = from._impl_.presolve_bva_threshold_;
6136 if ((cached_has_bits & 0x00000800u) != 0) {
6137 _this->_impl_.presolve_use_bva_ = from._impl_.presolve_use_bva_;
6139 if ((cached_has_bits & 0x00001000u) != 0) {
6140 _this->_impl_.use_precedences_in_disjunctive_constraint_ = from._impl_.use_precedences_in_disjunctive_constraint_;
6142 if ((cached_has_bits & 0x00002000u) != 0) {
6143 _this->_impl_.use_disjunctive_constraint_in_cumulative_ = from._impl_.use_disjunctive_constraint_in_cumulative_;
6145 if ((cached_has_bits & 0x00004000u) != 0) {
6146 _this->_impl_.find_multiple_cores_ = from._impl_.find_multiple_cores_;
6148 if ((cached_has_bits & 0x00008000u) != 0) {
6149 _this->_impl_.cp_model_presolve_ = from._impl_.cp_model_presolve_;
6152 if ((cached_has_bits & 0x00ff0000u) != 0) {
6153 if ((cached_has_bits & 0x00010000u) != 0) {
6154 _this->_impl_.presolve_blocked_clause_ = from._impl_.presolve_blocked_clause_;
6156 if ((cached_has_bits & 0x00020000u) != 0) {
6157 _this->_impl_.cover_optimization_ = from._impl_.cover_optimization_;
6159 if ((cached_has_bits & 0x00040000u) != 0) {
6160 _this->_impl_.cp_model_use_sat_presolve_ = from._impl_.cp_model_use_sat_presolve_;
6162 if ((cached_has_bits & 0x00080000u) != 0) {
6163 _this->_impl_.linearization_level_ = from._impl_.linearization_level_;
6165 if ((cached_has_bits & 0x00100000u) != 0) {
6166 _this->_impl_.max_num_cuts_ = from._impl_.max_num_cuts_;
6168 if ((cached_has_bits & 0x00200000u) != 0) {
6169 _this->_impl_.binary_search_num_conflicts_ = from._impl_.binary_search_num_conflicts_;
6171 if ((cached_has_bits & 0x00400000u) != 0) {
6172 _this->_impl_.exploit_integer_lp_solution_ = from._impl_.exploit_integer_lp_solution_;
6174 if ((cached_has_bits & 0x00800000u) != 0) {
6175 _this->_impl_.auto_detect_greater_than_at_least_one_of_ = from._impl_.auto_detect_greater_than_at_least_one_of_;
6178 if ((cached_has_bits & 0xff000000u) != 0) {
6179 if ((cached_has_bits & 0x01000000u) != 0) {
6180 _this->_impl_.instantiate_all_variables_ = from._impl_.instantiate_all_variables_;
6182 if ((cached_has_bits & 0x02000000u) != 0) {
6183 _this->_impl_.use_exact_lp_reason_ = from._impl_.use_exact_lp_reason_;
6185 if ((cached_has_bits & 0x04000000u) != 0) {
6186 _this->_impl_.boolean_encoding_level_ = from._impl_.boolean_encoding_level_;
6188 if ((cached_has_bits & 0x08000000u) != 0) {
6189 _this->_impl_.cp_model_probing_level_ = from._impl_.cp_model_probing_level_;
6191 if ((cached_has_bits & 0x10000000u) != 0) {
6192 _this->_impl_.add_lp_constraints_lazily_ = from._impl_.add_lp_constraints_lazily_;
6194 if ((cached_has_bits & 0x20000000u) != 0) {
6195 _this->_impl_.share_objective_bounds_ = from._impl_.share_objective_bounds_;
6197 if ((cached_has_bits & 0x40000000u) != 0) {
6198 _this->_impl_.share_level_zero_bounds_ = from._impl_.share_level_zero_bounds_;
6200 if ((cached_has_bits & 0x80000000u) != 0) {
6201 _this->_impl_.exploit_all_lp_solution_ = from._impl_.exploit_all_lp_solution_;
6204 cached_has_bits = from._impl_._has_bits_[5];
6205 if ((cached_has_bits & 0x000000ffu) != 0) {
6206 if ((cached_has_bits & 0x00000001u) != 0) {
6207 _this->_impl_.min_orthogonality_for_lp_constraints_ = from._impl_.min_orthogonality_for_lp_constraints_;
6209 if ((cached_has_bits & 0x00000002u) != 0) {
6210 _this->_impl_.max_integer_rounding_scaling_ = from._impl_.max_integer_rounding_scaling_;
6212 if ((cached_has_bits & 0x00000004u) != 0) {
6213 _this->_impl_.max_consecutive_inactive_count_ = from._impl_.max_consecutive_inactive_count_;
6215 if ((cached_has_bits & 0x00000008u) != 0) {
6216 _this->_impl_.pseudo_cost_reliability_threshold_ = from._impl_.pseudo_cost_reliability_threshold_;
6218 if ((cached_has_bits & 0x00000010u) != 0) {
6219 _this->_impl_.new_constraints_batch_size_ = from._impl_.new_constraints_batch_size_;
6221 if ((cached_has_bits & 0x00000020u) != 0) {
6222 _this->_impl_.add_cg_cuts_ = from._impl_.add_cg_cuts_;
6224 if ((cached_has_bits & 0x00000040u) != 0) {
6225 _this->_impl_.add_mir_cuts_ = from._impl_.add_mir_cuts_;
6227 if ((cached_has_bits & 0x00000080u) != 0) {
6228 _this->_impl_.use_rins_lns_ = from._impl_.use_rins_lns_;
6231 if ((cached_has_bits & 0x0000ff00u) != 0) {
6232 if ((cached_has_bits & 0x00000100u) != 0) {
6233 _this->_impl_.exploit_objective_ = from._impl_.exploit_objective_;
6235 if ((cached_has_bits & 0x00000200u) != 0) {
6236 _this->_impl_.mip_max_bound_ = from._impl_.mip_max_bound_;
6238 if ((cached_has_bits & 0x00000400u) != 0) {
6239 _this->_impl_.mip_var_scaling_ = from._impl_.mip_var_scaling_;
6241 if ((cached_has_bits & 0x00000800u) != 0) {
6242 _this->_impl_.mip_wanted_precision_ = from._impl_.mip_wanted_precision_;
6244 if ((cached_has_bits & 0x00001000u) != 0) {
6245 _this->_impl_.mip_check_precision_ = from._impl_.mip_check_precision_;
6247 if ((cached_has_bits & 0x00002000u) != 0) {
6248 _this->_impl_.mip_max_activity_exponent_ = from._impl_.mip_max_activity_exponent_;
6250 if ((cached_has_bits & 0x00004000u) != 0) {
6251 _this->_impl_.max_presolve_iterations_ = from._impl_.max_presolve_iterations_;
6253 if ((cached_has_bits & 0x00008000u) != 0) {
6254 _this->_impl_.merge_no_overlap_work_limit_ = from._impl_.merge_no_overlap_work_limit_;
6257 if ((cached_has_bits & 0x00ff0000u) != 0) {
6258 if ((cached_has_bits & 0x00010000u) != 0) {
6259 _this->_impl_.merge_at_most_one_work_limit_ = from._impl_.merge_at_most_one_work_limit_;
6261 if ((cached_has_bits & 0x00020000u) != 0) {
6262 _this->_impl_.presolve_substitution_level_ = from._impl_.presolve_substitution_level_;
6264 if ((cached_has_bits & 0x00040000u) != 0) {
6265 _this->_impl_.max_all_diff_cut_size_ = from._impl_.max_all_diff_cut_size_;
6267 if ((cached_has_bits & 0x00080000u) != 0) {
6268 _this->_impl_.catch_sigint_signal_ = from._impl_.catch_sigint_signal_;
6270 if ((cached_has_bits & 0x00100000u) != 0) {
6271 _this->_impl_.use_implied_bounds_ = from._impl_.use_implied_bounds_;
6273 if ((cached_has_bits & 0x00200000u) != 0) {
6274 _this->_impl_.add_lin_max_cuts_ = from._impl_.add_lin_max_cuts_;
6276 if ((cached_has_bits & 0x00400000u) != 0) {
6277 _this->_impl_.use_sat_inprocessing_ = from._impl_.use_sat_inprocessing_;
6279 if ((cached_has_bits & 0x00800000u) != 0) {
6280 _this->_impl_.hint_conflict_limit_ = from._impl_.hint_conflict_limit_;
6283 if ((cached_has_bits & 0xff000000u) != 0) {
6284 if ((cached_has_bits & 0x01000000u) != 0) {
6285 _this->_impl_.cut_max_active_count_value_ = from._impl_.cut_max_active_count_value_;
6287 if ((cached_has_bits & 0x02000000u) != 0) {
6288 _this->_impl_.max_cut_rounds_at_level_zero_ = from._impl_.max_cut_rounds_at_level_zero_;
6290 if ((cached_has_bits & 0x04000000u) != 0) {
6291 _this->_impl_.cut_cleanup_target_ = from._impl_.cut_cleanup_target_;
6293 if ((cached_has_bits & 0x08000000u) != 0) {
6294 _this->_impl_.cut_active_count_decay_ = from._impl_.cut_active_count_decay_;
6296 if ((cached_has_bits & 0x10000000u) != 0) {
6297 _this->_impl_.absolute_gap_limit_ = from._impl_.absolute_gap_limit_;
6299 if ((cached_has_bits & 0x20000000u) != 0) {
6300 _this->_impl_.fp_rounding_ = from._impl_.fp_rounding_;
6302 if ((cached_has_bits & 0x40000000u) != 0) {
6303 _this->_impl_.use_feasibility_pump_ = from._impl_.use_feasibility_pump_;
6305 if ((cached_has_bits & 0x80000000u) != 0) {
6306 _this->_impl_.mip_automatically_scale_variables_ = from._impl_.mip_automatically_scale_variables_;
6309 cached_has_bits = from._impl_._has_bits_[6];
6310 if ((cached_has_bits & 0x000000ffu) != 0) {
6311 if ((cached_has_bits & 0x00000001u) != 0) {
6312 _this->_impl_.add_zero_half_cuts_ = from._impl_.add_zero_half_cuts_;
6314 if ((cached_has_bits & 0x00000002u) != 0) {
6315 _this->_impl_.add_clique_cuts_ = from._impl_.add_clique_cuts_;
6317 if ((cached_has_bits & 0x00000004u) != 0) {
6318 _this->_impl_.polarity_rephase_increment_ = from._impl_.polarity_rephase_increment_;
6320 if ((cached_has_bits & 0x00000008u) != 0) {
6321 _this->_impl_.symmetry_level_ = from._impl_.symmetry_level_;
6323 if ((cached_has_bits & 0x00000010u) != 0) {
6324 _this->_impl_.convert_intervals_ = from._impl_.convert_intervals_;
6326 if ((cached_has_bits & 0x00000020u) != 0) {
6327 _this->_impl_.expand_reservoir_constraints_ = from._impl_.expand_reservoir_constraints_;
6329 if ((cached_has_bits & 0x00000040u) != 0) {
6330 _this->_impl_.log_to_stdout_ = from._impl_.log_to_stdout_;
6332 if ((cached_has_bits & 0x00000080u) != 0) {
6333 _this->_impl_.mip_compute_true_objective_bound_ = from._impl_.mip_compute_true_objective_bound_;
6336 if ((cached_has_bits & 0x0000ff00u) != 0) {
6337 if ((cached_has_bits & 0x00000100u) != 0) {
6338 _this->_impl_.max_domain_size_when_encoding_eq_neq_constraints_ = from._impl_.max_domain_size_when_encoding_eq_neq_constraints_;
6340 if ((cached_has_bits & 0x00000200u) != 0) {
6341 _this->_impl_.clause_cleanup_ratio_ = from._impl_.clause_cleanup_ratio_;
6343 if ((cached_has_bits & 0x00000400u) != 0) {
6344 _this->_impl_.solution_pool_size_ = from._impl_.solution_pool_size_;
6346 if ((cached_has_bits & 0x00000800u) != 0) {
6347 _this->_impl_.cut_level_ = from._impl_.cut_level_;
6349 if ((cached_has_bits & 0x00001000u) != 0) {
6350 _this->_impl_.mip_max_valid_magnitude_ = from._impl_.mip_max_valid_magnitude_;
6352 if ((cached_has_bits & 0x00002000u) != 0) {
6353 _this->_impl_.presolve_inclusion_work_limit_ = from._impl_.presolve_inclusion_work_limit_;
6355 if ((cached_has_bits & 0x00004000u) != 0) {
6356 _this->_impl_.shaving_deterministic_time_in_probing_search_ = from._impl_.shaving_deterministic_time_in_probing_search_;
6358 if ((cached_has_bits & 0x00008000u) != 0) {
6359 _this->_impl_.shaving_search_deterministic_time_ = from._impl_.shaving_search_deterministic_time_;
6362 if ((cached_has_bits & 0x00ff0000u) != 0) {
6363 if ((cached_has_bits & 0x00010000u) != 0) {
6364 _this->_impl_.ignore_names_ = from._impl_.ignore_names_;
6366 if ((cached_has_bits & 0x00020000u) != 0) {
6367 _this->_impl_.share_binary_clauses_ = from._impl_.share_binary_clauses_;
6369 if ((cached_has_bits & 0x00040000u) != 0) {
6370 _this->_impl_.use_dual_scheduling_heuristics_ = from._impl_.use_dual_scheduling_heuristics_;
6372 if ((cached_has_bits & 0x00080000u) != 0) {
6373 _this->_impl_.new_linear_propagation_ = from._impl_.new_linear_propagation_;
6375 if ((cached_has_bits & 0x00100000u) != 0) {
6376 _this->_impl_.table_compression_level_ = from._impl_.table_compression_level_;
6378 if ((cached_has_bits & 0x00200000u) != 0) {
6379 _this->_impl_.propagation_loop_detection_factor_ = from._impl_.propagation_loop_detection_factor_;
6381 if ((cached_has_bits & 0x00400000u) != 0) {
6382 _this->_impl_.probing_deterministic_time_limit_ = from._impl_.probing_deterministic_time_limit_;
6384 if ((cached_has_bits & 0x00800000u) != 0) {
6385 _this->_impl_.root_lp_iterations_ = from._impl_.root_lp_iterations_;
6388 if ((cached_has_bits & 0xff000000u) != 0) {
6389 if ((cached_has_bits & 0x01000000u) != 0) {
6390 _this->_impl_.max_size_to_create_precedence_literals_in_disjunctive_ = from._impl_.max_size_to_create_precedence_literals_in_disjunctive_;
6392 if ((cached_has_bits & 0x02000000u) != 0) {
6393 _this->_impl_.mip_drop_tolerance_ = from._impl_.mip_drop_tolerance_;
6395 if ((cached_has_bits & 0x04000000u) != 0) {
6396 _this->_impl_.feasibility_jump_decay_ = from._impl_.feasibility_jump_decay_;
6398 if ((cached_has_bits & 0x08000000u) != 0) {
6399 _this->_impl_.shared_tree_max_nodes_per_worker_ = from._impl_.shared_tree_max_nodes_per_worker_;
6401 if ((cached_has_bits & 0x10000000u) != 0) {
6402 _this->_impl_.infer_all_diffs_ = from._impl_.infer_all_diffs_;
6404 if ((cached_has_bits & 0x20000000u) != 0) {
6405 _this->_impl_.find_big_linear_overlap_ = from._impl_.find_big_linear_overlap_;
6407 if ((cached_has_bits & 0x40000000u) != 0) {
6408 _this->_impl_.feasibility_jump_enable_restarts_ = from._impl_.feasibility_jump_enable_restarts_;
6410 if ((cached_has_bits & 0x80000000u) != 0) {
6411 _this->_impl_.use_lb_relax_lns_ = from._impl_.use_lb_relax_lns_;
6414 cached_has_bits = from._impl_._has_bits_[7];
6415 if ((cached_has_bits & 0x000000ffu) != 0) {
6416 if ((cached_has_bits & 0x00000001u) != 0) {
6417 _this->_impl_.feasibility_jump_var_randomization_probability_ = from._impl_.feasibility_jump_var_randomization_probability_;
6419 if ((cached_has_bits & 0x00000002u) != 0) {
6420 _this->_impl_.feasibility_jump_var_perburbation_range_ratio_ = from._impl_.feasibility_jump_var_perburbation_range_ratio_;
6422 if ((cached_has_bits & 0x00000004u) != 0) {
6423 _this->_impl_.violation_ls_perturbation_period_ = from._impl_.violation_ls_perturbation_period_;
6425 if ((cached_has_bits & 0x00000008u) != 0) {
6426 _this->_impl_.linear_split_size_ = from._impl_.linear_split_size_;
6428 if ((cached_has_bits & 0x00000010u) != 0) {
6429 _this->_impl_.feasibility_jump_linearization_level_ = from._impl_.feasibility_jump_linearization_level_;
6431 if ((cached_has_bits & 0x00000020u) != 0) {
6432 _this->_impl_.feasibility_jump_restart_factor_ = from._impl_.feasibility_jump_restart_factor_;
6434 if ((cached_has_bits & 0x00000040u) != 0) {
6435 _this->_impl_.violation_ls_compound_move_probability_ = from._impl_.violation_ls_compound_move_probability_;
6437 if ((cached_has_bits & 0x00000080u) != 0) {
6438 _this->_impl_.max_num_intervals_for_timetable_edge_finding_ = from._impl_.max_num_intervals_for_timetable_edge_finding_;
6441 if ((cached_has_bits & 0x0000ff00u) != 0) {
6442 if ((cached_has_bits & 0x00000100u) != 0) {
6443 _this->_impl_.mip_presolve_level_ = from._impl_.mip_presolve_level_;
6445 if ((cached_has_bits & 0x00000200u) != 0) {
6446 _this->_impl_.lp_primal_tolerance_ = from._impl_.lp_primal_tolerance_;
6448 if ((cached_has_bits & 0x00000400u) != 0) {
6449 _this->_impl_.lp_dual_tolerance_ = from._impl_.lp_dual_tolerance_;
6451 if ((cached_has_bits & 0x00000800u) != 0) {
6452 _this->_impl_.feasibility_jump_max_expanded_constraint_size_ = from._impl_.feasibility_jump_max_expanded_constraint_size_;
6454 if ((cached_has_bits & 0x00001000u) != 0) {
6455 _this->_impl_.at_most_one_max_expansion_size_ = from._impl_.at_most_one_max_expansion_size_;
6457 if ((cached_has_bits & 0x00002000u) != 0) {
6458 _this->_impl_.inprocessing_dtime_ratio_ = from._impl_.inprocessing_dtime_ratio_;
6460 if ((cached_has_bits & 0x00004000u) != 0) {
6461 _this->_impl_.probing_num_combinations_limit_ = from._impl_.probing_num_combinations_limit_;
6463 if ((cached_has_bits & 0x00008000u) != 0) {
6464 _this->_impl_.use_feasibility_jump_ = from._impl_.use_feasibility_jump_;
6467 if ((cached_has_bits & 0x00ff0000u) != 0) {
6468 if ((cached_has_bits & 0x00010000u) != 0) {
6469 _this->_impl_.use_extended_probing_ = from._impl_.use_extended_probing_;
6471 if ((cached_has_bits & 0x00020000u) != 0) {
6472 _this->_impl_.add_rlt_cuts_ = from._impl_.add_rlt_cuts_;
6474 if ((cached_has_bits & 0x00040000u) != 0) {
6475 _this->_impl_.use_lns_ = from._impl_.use_lns_;
6477 if ((cached_has_bits & 0x00080000u) != 0) {
6478 _this->_impl_.inprocessing_probing_dtime_ = from._impl_.inprocessing_probing_dtime_;
6480 if ((cached_has_bits & 0x00100000u) != 0) {
6481 _this->_impl_.inprocessing_minimization_dtime_ = from._impl_.inprocessing_minimization_dtime_;
6483 if ((cached_has_bits & 0x00200000u) != 0) {
6484 _this->_impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_ = from._impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_;
6486 if ((cached_has_bits & 0x00400000u) != 0) {
6487 _this->_impl_.shared_tree_worker_min_restarts_per_subtree_ = from._impl_.shared_tree_worker_min_restarts_per_subtree_;
6489 if ((cached_has_bits & 0x00800000u) != 0) {
6490 _this->_impl_.shared_tree_open_leaves_per_worker_ = from._impl_.shared_tree_open_leaves_per_worker_;
6493 if ((cached_has_bits & 0xff000000u) != 0) {
6494 if ((cached_has_bits & 0x01000000u) != 0) {
6495 _this->_impl_.shaving_search_threshold_ = from._impl_.shaving_search_threshold_;
6497 if ((cached_has_bits & 0x02000000u) != 0) {
6498 _this->_impl_.feasibility_jump_batch_dtime_ = from._impl_.feasibility_jump_batch_dtime_;
6500 if ((cached_has_bits & 0x04000000u) != 0) {
6501 _this->_impl_.variables_shaving_level_ = from._impl_.variables_shaving_level_;
6503 if ((cached_has_bits & 0x08000000u) != 0) {
6504 _this->_impl_.lb_relax_num_workers_threshold_ = from._impl_.lb_relax_num_workers_threshold_;
6506 if ((cached_has_bits & 0x10000000u) != 0) {
6507 _this->_impl_.shared_tree_worker_enable_trail_sharing_ = from._impl_.shared_tree_worker_enable_trail_sharing_;
6509 if ((cached_has_bits & 0x20000000u) != 0) {
6510 _this->_impl_.inprocessing_minimization_use_conflict_analysis_ = from._impl_.inprocessing_minimization_use_conflict_analysis_;
6512 if ((cached_has_bits & 0x40000000u) != 0) {
6513 _this->_impl_.minimize_shared_clauses_ = from._impl_.minimize_shared_clauses_;
6515 if ((cached_has_bits & 0x80000000u) != 0) {
6516 _this->_impl_.shared_tree_worker_enable_phase_sharing_ = from._impl_.shared_tree_worker_enable_phase_sharing_;
6519 cached_has_bits = from._impl_._has_bits_[8];
6520 if ((cached_has_bits & 0x000000ffu) != 0) {
6521 if ((cached_has_bits & 0x00000001u) != 0) {
6522 _this->_impl_.shared_tree_balance_tolerance_ = from._impl_.shared_tree_balance_tolerance_;
6524 if ((cached_has_bits & 0x00000002u) != 0) {
6525 _this->_impl_.symmetry_detection_deterministic_time_limit_ = from._impl_.symmetry_detection_deterministic_time_limit_;
6527 if ((cached_has_bits & 0x00000004u) != 0) {
6528 _this->_impl_.lns_initial_difficulty_ = from._impl_.lns_initial_difficulty_;
6530 if ((cached_has_bits & 0x00000008u) != 0) {
6531 _this->_impl_.lns_initial_deterministic_limit_ = from._impl_.lns_initial_deterministic_limit_;
6533 if ((cached_has_bits & 0x00000010u) != 0) {
6534 _this->_impl_.routing_cut_dp_effort_ = from._impl_.routing_cut_dp_effort_;
6536 if ((cached_has_bits & 0x00000020u) != 0) {
6537 _this->_impl_.routing_cut_subset_size_for_exact_binary_relation_bound_ = from._impl_.routing_cut_subset_size_for_exact_binary_relation_bound_;
6539 if ((cached_has_bits & 0x00000040u) != 0) {
6540 _this->_impl_.remove_fixed_variables_early_ = from._impl_.remove_fixed_variables_early_;
6542 if ((cached_has_bits & 0x00000080u) != 0) {
6543 _this->_impl_.use_linear3_for_no_overlap_2d_precedences_ = from._impl_.use_linear3_for_no_overlap_2d_precedences_;
6546 if ((cached_has_bits & 0x00001f00u) != 0) {
6547 if ((cached_has_bits & 0x00000100u) != 0) {
6548 _this->_impl_.routing_cut_max_infeasible_path_length_ = from._impl_.routing_cut_max_infeasible_path_length_;
6550 if ((cached_has_bits & 0x00000200u) != 0) {
6551 _this->_impl_.routing_cut_subset_size_for_shortest_paths_bound_ = from._impl_.routing_cut_subset_size_for_shortest_paths_bound_;
6553 if ((cached_has_bits & 0x00000400u) != 0) {
6554 _this->_impl_.max_alldiff_domain_size_ = from._impl_.max_alldiff_domain_size_;
6556 if ((cached_has_bits & 0x00000800u) != 0) {
6557 _this->_impl_.no_overlap_2d_boolean_relations_limit_ = from._impl_.no_overlap_2d_boolean_relations_limit_;
6559 if ((cached_has_bits & 0x00001000u) != 0) {
6560 _this->_impl_.share_glue_clauses_dtime_ = from._impl_.share_glue_clauses_dtime_;
6563 _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
6564 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
6569 if (&from ==
this)
return;
6575void SatParameters::InternalSwap(
SatParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
6577 auto* arena = GetArena();
6578 ABSL_DCHECK_EQ(arena, other->GetArena());
6579 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
6580 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
6581 swap(
_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
6582 swap(
_impl_._has_bits_[2], other->_impl_._has_bits_[2]);
6583 swap(
_impl_._has_bits_[3], other->_impl_._has_bits_[3]);
6584 swap(
_impl_._has_bits_[4], other->_impl_._has_bits_[4]);
6585 swap(
_impl_._has_bits_[5], other->_impl_._has_bits_[5]);
6586 swap(
_impl_._has_bits_[6], other->_impl_._has_bits_[6]);
6587 swap(
_impl_._has_bits_[7], other->_impl_._has_bits_[7]);
6588 swap(
_impl_._has_bits_[8], other->_impl_._has_bits_[8]);
6589 _impl_.restart_algorithms_.InternalSwap(&other->_impl_.restart_algorithms_);
6590 _impl_.subsolvers_.InternalSwap(&other->_impl_.subsolvers_);
6591 _impl_.ignore_subsolvers_.InternalSwap(&other->_impl_.ignore_subsolvers_);
6592 _impl_.subsolver_params_.InternalSwap(&other->_impl_.subsolver_params_);
6593 _impl_.extra_subsolvers_.InternalSwap(&other->_impl_.extra_subsolvers_);
6594 _impl_.filter_subsolvers_.InternalSwap(&other->_impl_.filter_subsolvers_);
6595 ::_pbi::ArenaStringPtr::InternalSwap(&
_impl_.default_restart_algorithms_, &other->_impl_.default_restart_algorithms_, arena);
6596 ::_pbi::ArenaStringPtr::InternalSwap(&
_impl_.name_, &other->_impl_.name_, arena);
6597 ::_pbi::ArenaStringPtr::InternalSwap(&
_impl_.log_prefix_, &other->_impl_.log_prefix_, arena);
6598 ::google::protobuf::internal::memswap<
6602 reinterpret_cast<char*
>(&
_impl_.preferred_variable_order_),
6603 reinterpret_cast<char*
>(&other->_impl_.preferred_variable_order_));
6607 return ::google::protobuf::Message::GetMetadataImpl(
GetClassData()->full());
6617PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
6620 ::std::false_type{});
6621#include "google/protobuf/port_undef.inc"
static PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 ::std::false_type _static_init2_
@protoc_insertion_point(global_scope)
static const ::_pb::Message *PROTOBUF_NONNULL const file_default_instances[]
decltype(::std::declval< SatParameters >()._impl_._has_bits_) HasBits
static constexpr ::int32_t kHasBitsOffset
friend class ::google::protobuf::MessageLite
friend void swap(SatParameters &a, SatParameters &b)
static constexpr auto InternalGenerateClassData_()
static constexpr auto InternalNewImpl_()
~SatParameters() PROTOBUF_FINAL
::size_t ByteSizeLong() const final
void CopyFrom(const SatParameters &from)
const ::google::protobuf::internal::ClassData *PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL
static void *PROTOBUF_NONNULL PlacementNew_(const void *PROTOBUF_NONNULL, void *PROTOBUF_NONNULL mem, ::google::protobuf::Arena *PROTOBUF_NULLABLE arena)
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
::google::protobuf::Metadata GetMetadata() const
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
void MergeFrom(const SatParameters &from)
SatParameters_MaxSatStratificationAlgorithm
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_FPRoundingMethod_descriptor()
PROTOBUF_CONSTINIT const uint32_t SatParameters_SearchBranching_internal_data_[]
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_SharedTreeSplitStrategy_descriptor()
PROTOBUF_CONSTINIT const uint32_t SatParameters_ClauseOrdering_internal_data_[]
SatParameters_RestartAlgorithm
SatParameters_VariableOrder
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_MaxSatStratificationAlgorithm_descriptor()
PROTOBUF_CONSTINIT const uint32_t SatParameters_BinaryMinizationAlgorithm_internal_data_[]
SatParameters_BinaryMinizationAlgorithm
PROTOBUF_CONSTINIT const uint32_t SatParameters_MaxSatAssumptionOrder_internal_data_[]
PROTOBUF_CONSTINIT const uint32_t SatParameters_ClauseProtection_internal_data_[]
PROTOBUF_CONSTINIT const uint32_t SatParameters_VariableOrder_internal_data_[]
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_RestartAlgorithm_descriptor()
SatParameters_MaxSatAssumptionOrder
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull SatParameters_class_data_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SatParametersDefaultTypeInternal _SatParameters_default_instance_
PROTOBUF_CONSTINIT const uint32_t SatParameters_FPRoundingMethod_internal_data_[]
SatParameters_FPRoundingMethod
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_VariableOrder_descriptor()
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_ClauseOrdering_descriptor()
SatParameters_SharedTreeSplitStrategy
SatParameters_ClauseOrdering
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_ClauseProtection_descriptor()
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_BinaryMinizationAlgorithm_descriptor()
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_SearchBranching_descriptor()
SatParameters_ConflictMinimizationAlgorithm
PROTOBUF_CONSTINIT const uint32_t SatParameters_SharedTreeSplitStrategy_internal_data_[]
PROTOBUF_CONSTINIT const uint32_t SatParameters_RestartAlgorithm_internal_data_[]
PROTOBUF_CONSTINIT const uint32_t SatParameters_Polarity_internal_data_[]
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_MaxSatAssumptionOrder_descriptor()
PROTOBUF_CONSTINIT const uint32_t SatParameters_MaxSatStratificationAlgorithm_internal_data_[]
SatParameters_ClauseProtection
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_Polarity_descriptor()
SatParameters_SearchBranching
PROTOBUF_CONSTINIT const uint32_t SatParameters_ConflictMinimizationAlgorithm_internal_data_[]
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_ConflictMinimizationAlgorithm_descriptor()
In SWIG mode, we don't want anything besides these top-level includes.
static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas
const ::uint32_t TableStruct_ortools_2fsat_2fsat_5fparameters_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold)
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto
::absl::once_flag descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_once
static constexprconst ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE file_level_service_descriptors_ortools_2fsat_2fsat_5fparameters_2eproto
static const ::_pb::EnumDescriptor *PROTOBUF_NONNULL file_level_enum_descriptors_ortools_2fsat_2fsat_5fparameters_2eproto[12]
~SatParametersDefaultTypeInternal()
PROTOBUF_CONSTEXPR SatParametersDefaultTypeInternal()