Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
sat_parameters.pb.cc
Go to the documentation of this file.
1// Generated by the protocol buffer compiler. DO NOT EDIT!
2// NO CHECKED-IN PROTOBUF GENCODE
3// source: ortools/sat/sat_parameters.proto
4// Protobuf C++ Version: 6.31.1
5
7
8#include <algorithm>
9#include <type_traits>
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"
19// @@protoc_insertion_point(includes)
20
21// Must be included last.
22#include "google/protobuf/port_def.inc"
23PROTOBUF_PRAGMA_INIT_SEG
24namespace _pb = ::google::protobuf;
26namespace _fl = ::google::protobuf::internal::field_layout;
27namespace operations_research {
28namespace sat {
29
30inline constexpr SatParameters::Impl_::Impl_(
31 ::_pbi::ConstantInitialized) noexcept
32 : _cached_size_{0},
33 restart_algorithms_{},
34 subsolvers_{},
35 ignore_subsolvers_{},
36 subsolver_params_{},
37 extra_subsolvers_{},
38 filter_subsolvers_{},
39 default_restart_algorithms_(
40 &::google::protobuf::internal::fixed_address_empty_string,
41 ::_pbi::ConstantInitialized()),
42 name_(
43 &::google::protobuf::internal::fixed_address_empty_string,
44 ::_pbi::ConstantInitialized()),
45 log_prefix_(
46 &::google::protobuf::internal::fixed_address_empty_string,
47 ::_pbi::ConstantInitialized()),
48 preferred_variable_order_{static_cast< ::operations_research::sat::SatParameters_VariableOrder >(0)},
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},
56 max_sat_assumption_order_{static_cast< ::operations_research::sat::SatParameters_MaxSatAssumptionOrder >(0)},
57 clause_cleanup_protection_{static_cast< ::operations_research::sat::SatParameters_ClauseProtection >(0)},
58 clause_cleanup_ordering_{static_cast< ::operations_research::sat::SatParameters_ClauseOrdering >(0)},
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},
66 search_branching_{static_cast< ::operations_research::sat::SatParameters_SearchBranching >(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},
73 use_lns_only_{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},
89 repair_hint_{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},
108 num_workers_{0},
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},
118 shared_tree_split_strategy_{static_cast< ::operations_research::sat::SatParameters_SharedTreeSplitStrategy >(0)},
119 num_violation_ls_{0},
120 use_shared_tree_search_{false},
121 use_ls_only_{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},
149 initial_polarity_{static_cast< ::operations_research::sat::SatParameters_Polarity >(1)},
150 minimization_algorithm_{static_cast< ::operations_research::sat::SatParameters_ConflictMinimizationAlgorithm >(2)},
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},
159 restart_period_{50},
160 random_seed_{1},
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}},
164 binary_minimization_algorithm_{static_cast< ::operations_research::sat::SatParameters_BinaryMinizationAlgorithm >(1)},
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},
172 max_sat_stratification_{static_cast< ::operations_research::sat::SatParameters_MaxSatStratificationAlgorithm >(1)},
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},
210 add_cg_cuts_{true},
211 add_mir_cuts_{true},
212 use_rins_lns_{true},
213 exploit_objective_{true},
214 mip_max_bound_{10000000},
215 mip_var_scaling_{1},
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},
234 fp_rounding_{static_cast< ::operations_research::sat::SatParameters_FPRoundingMethod >(2)},
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},
240 symmetry_level_{2},
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},
248 cut_level_{1},
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},
253 ignore_names_{true},
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},
286 add_rlt_cuts_{true},
287 use_lns_{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} {}
314
315template <typename>
316PROTOBUF_CONSTEXPR SatParameters::SatParameters(::_pbi::ConstantInitialized)
317#if defined(PROTOBUF_CUSTOM_VTABLE)
318 : ::google::protobuf::Message(SatParameters_class_data_.base()),
319#else // PROTOBUF_CUSTOM_VTABLE
320 : ::google::protobuf::Message(),
321#endif // PROTOBUF_CUSTOM_VTABLE
322 _impl_(::_pbi::ConstantInitialized()) {
323}
325 PROTOBUF_CONSTEXPR SatParametersDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
327 union {
329 };
330};
331
332PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
334} // namespace sat
335} // namespace operations_research
336static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
338static constexpr const ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE
340const ::uint32_t
342 protodesc_cold) = {
343 0x081, // bitmap
344 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_._has_bits_),
345 278, // hasbit index offset
346 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.name_),
347 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.preferred_variable_order_),
348 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.initial_polarity_),
349 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_phase_saving_),
350 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.polarity_rephase_increment_),
351 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.polarity_exploit_ls_hints_),
352 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.random_polarity_ratio_),
353 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.random_branches_ratio_),
354 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_erwa_heuristic_),
355 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.initial_variables_activity_),
356 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.also_bump_variables_in_conflict_reasons_),
357 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.minimization_algorithm_),
358 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.binary_minimization_algorithm_),
359 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.subsumption_during_conflict_analysis_),
360 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_period_),
361 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_target_),
362 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_ratio_),
363 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_protection_),
364 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_lbd_bound_),
365 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_ordering_),
366 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.pb_cleanup_increment_),
367 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.pb_cleanup_ratio_),
368 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.variable_activity_decay_),
369 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_variable_activity_value_),
370 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.glucose_max_decay_),
371 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.glucose_decay_increment_),
372 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.glucose_decay_increment_period_),
373 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_activity_decay_),
374 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_clause_activity_value_),
375 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_algorithms_),
376 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.default_restart_algorithms_),
377 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_period_),
378 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_running_window_size_),
379 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_dl_average_ratio_),
380 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_lbd_average_ratio_),
381 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_blocking_restart_),
382 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.blocking_restart_window_size_),
383 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.blocking_restart_multiplier_),
384 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_conflicts_before_strategy_changes_),
385 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.strategy_change_increase_ratio_),
386 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_time_in_seconds_),
387 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_deterministic_time_),
388 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_num_deterministic_batches_),
389 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_number_of_conflicts_),
390 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_memory_in_mb_),
391 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.absolute_gap_limit_),
392 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.relative_gap_limit_),
393 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.random_seed_),
394 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.permute_variable_randomly_),
395 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.permute_presolve_constraint_order_),
396 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_absl_random_),
397 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_search_progress_),
398 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_subsolver_statistics_),
399 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_prefix_),
400 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_to_stdout_),
401 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_to_response_),
402 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_pb_resolution_),
403 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.minimize_reduction_during_pb_resolution_),
404 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.count_assumption_levels_in_lbd_),
405 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_bve_threshold_),
406 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.filter_sat_postsolve_clauses_),
407 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_bve_clause_weight_),
408 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.probing_deterministic_time_limit_),
409 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_probing_deterministic_time_limit_),
410 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_blocked_clause_),
411 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_use_bva_),
412 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_bva_threshold_),
413 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_presolve_iterations_),
414 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cp_model_presolve_),
415 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cp_model_probing_level_),
416 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cp_model_use_sat_presolve_),
417 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.remove_fixed_variables_early_),
418 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.detect_table_with_cost_),
419 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.table_compression_level_),
420 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.expand_alldiff_constraints_),
421 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_alldiff_domain_size_),
422 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.expand_reservoir_constraints_),
423 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.expand_reservoir_using_circuit_),
424 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.encode_cumulative_as_reservoir_),
425 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_lin_max_size_for_expansion_),
426 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.disable_constraint_expansion_),
427 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.encode_complex_linear_constraint_with_integer_),
428 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.merge_no_overlap_work_limit_),
429 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.merge_at_most_one_work_limit_),
430 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_substitution_level_),
431 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_extract_integer_enforcement_),
432 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_inclusion_work_limit_),
433 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.ignore_names_),
434 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.infer_all_diffs_),
435 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.find_big_linear_overlap_),
436 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_sat_inprocessing_),
437 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_dtime_ratio_),
438 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_probing_dtime_),
439 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_minimization_dtime_),
440 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_minimization_use_conflict_analysis_),
441 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_minimization_use_all_orderings_),
442 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_workers_),
443 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_search_workers_),
444 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_full_subsolvers_),
445 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.subsolvers_),
446 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.extra_subsolvers_),
447 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.ignore_subsolvers_),
448 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.filter_subsolvers_),
449 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.subsolver_params_),
450 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.interleave_search_),
451 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.interleave_batch_size_),
452 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_objective_bounds_),
453 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_level_zero_bounds_),
454 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_binary_clauses_),
455 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_glue_clauses_),
456 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.minimize_shared_clauses_),
457 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_glue_clauses_dtime_),
458 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.debug_postsolve_with_full_solver_),
459 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.debug_max_num_presolve_operations_),
460 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.debug_crash_on_bad_hint_),
461 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.debug_crash_if_presolve_breaks_hint_),
462 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_optimization_hints_),
463 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.core_minimization_level_),
464 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.find_multiple_cores_),
465 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cover_optimization_),
466 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_sat_assumption_order_),
467 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_sat_reverse_assumption_order_),
468 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_sat_stratification_),
469 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.propagation_loop_detection_factor_),
470 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_precedences_in_disjunctive_constraint_),
471 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_size_to_create_precedence_literals_in_disjunctive_),
472 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_strong_propagation_in_disjunctive_),
473 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_dynamic_precedence_in_disjunctive_),
474 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_dynamic_precedence_in_cumulative_),
475 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_overload_checker_in_cumulative_),
476 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_conservative_scale_overload_checker_),
477 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_timetable_edge_finding_in_cumulative_),
478 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_num_intervals_for_timetable_edge_finding_),
479 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_hard_precedences_in_cumulative_),
480 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_all_precedences_),
481 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_disjunctive_constraint_in_cumulative_),
482 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.no_overlap_2d_boolean_relations_limit_),
483 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_timetabling_in_no_overlap_2d_),
484 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_energetic_reasoning_in_no_overlap_2d_),
485 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_area_energetic_reasoning_in_no_overlap_2d_),
486 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_try_edge_reasoning_in_no_overlap_2d_),
487 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_),
488 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_),
489 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_linear3_for_no_overlap_2d_precedences_),
490 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_dual_scheduling_heuristics_),
491 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_all_different_for_circuit_),
492 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_subset_size_for_binary_relation_bound_),
493 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_subset_size_for_tight_binary_relation_bound_),
494 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_subset_size_for_exact_binary_relation_bound_),
495 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_subset_size_for_shortest_paths_bound_),
496 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_dp_effort_),
497 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_max_infeasible_path_length_),
498 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.search_branching_),
499 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.hint_conflict_limit_),
500 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.repair_hint_),
501 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.fix_variables_to_their_hinted_value_),
502 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_probing_search_),
503 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_extended_probing_),
504 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.probing_num_combinations_limit_),
505 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shaving_deterministic_time_in_probing_search_),
506 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shaving_search_deterministic_time_),
507 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shaving_search_threshold_),
508 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_objective_lb_search_),
509 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_objective_shaving_search_),
510 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.variables_shaving_level_),
511 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.pseudo_cost_reliability_threshold_),
512 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.optimize_with_core_),
513 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.optimize_with_lb_tree_search_),
514 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.save_lp_basis_in_lb_tree_search_),
515 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.binary_search_num_conflicts_),
516 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.optimize_with_max_hs_),
517 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_feasibility_jump_),
518 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_ls_only_),
519 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_decay_),
520 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_linearization_level_),
521 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_restart_factor_),
522 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_batch_dtime_),
523 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_var_randomization_probability_),
524 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_var_perburbation_range_ratio_),
525 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_enable_restarts_),
526 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_max_expanded_constraint_size_),
527 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_violation_ls_),
528 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.violation_ls_perturbation_period_),
529 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.violation_ls_compound_move_probability_),
530 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_num_workers_),
531 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_shared_tree_search_),
532 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_worker_min_restarts_per_subtree_),
533 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_worker_enable_trail_sharing_),
534 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_worker_enable_phase_sharing_),
535 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_open_leaves_per_worker_),
536 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_max_nodes_per_worker_),
537 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_split_strategy_),
538 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_balance_tolerance_),
539 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.enumerate_all_solutions_),
540 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.keep_all_feasible_solutions_in_presolve_),
541 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.fill_tightened_domains_in_response_),
542 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.fill_additional_solutions_in_response_),
543 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.instantiate_all_variables_),
544 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.auto_detect_greater_than_at_least_one_of_),
545 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.stop_after_first_solution_),
546 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.stop_after_presolve_),
547 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.stop_after_root_propagation_),
548 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lns_initial_difficulty_),
549 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lns_initial_deterministic_limit_),
550 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_lns_),
551 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_lns_only_),
552 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.solution_pool_size_),
553 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_rins_lns_),
554 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_feasibility_pump_),
555 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_lb_relax_lns_),
556 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lb_relax_num_workers_threshold_),
557 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.fp_rounding_),
558 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.diversify_lns_params_),
559 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.randomize_search_),
560 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.search_random_variable_pool_size_),
561 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.push_all_tasks_toward_start_),
562 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_optional_variables_),
563 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_exact_lp_reason_),
564 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_combined_no_overlap_),
565 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.at_most_one_max_expansion_size_),
566 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.catch_sigint_signal_),
567 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_implied_bounds_),
568 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.polish_lp_solution_),
569 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lp_primal_tolerance_),
570 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lp_dual_tolerance_),
571 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.convert_intervals_),
572 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.symmetry_level_),
573 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_symmetry_in_lp_),
574 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.keep_symmetry_in_presolve_),
575 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.symmetry_detection_deterministic_time_limit_),
576 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.new_linear_propagation_),
577 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.linear_split_size_),
578 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.linearization_level_),
579 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.boolean_encoding_level_),
580 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_domain_size_when_encoding_eq_neq_constraints_),
581 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_num_cuts_),
582 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cut_level_),
583 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.only_add_cuts_at_level_zero_),
584 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_objective_cut_),
585 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_cg_cuts_),
586 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_mir_cuts_),
587 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_zero_half_cuts_),
588 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_clique_cuts_),
589 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_rlt_cuts_),
590 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_all_diff_cut_size_),
591 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_lin_max_cuts_),
592 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_integer_rounding_scaling_),
593 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_lp_constraints_lazily_),
594 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.root_lp_iterations_),
595 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.min_orthogonality_for_lp_constraints_),
596 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_cut_rounds_at_level_zero_),
597 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_consecutive_inactive_count_),
598 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cut_max_active_count_value_),
599 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cut_active_count_decay_),
600 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cut_cleanup_target_),
601 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.new_constraints_batch_size_),
602 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_integer_lp_solution_),
603 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_all_lp_solution_),
604 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_best_solution_),
605 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_relaxation_solution_),
606 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_objective_),
607 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.detect_linearized_product_),
608 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_max_bound_),
609 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_var_scaling_),
610 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_scale_large_domain_),
611 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_automatically_scale_variables_),
612 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.only_solve_ip_),
613 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_wanted_precision_),
614 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_max_activity_exponent_),
615 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_check_precision_),
616 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_compute_true_objective_bound_),
617 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_max_valid_magnitude_),
618 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_treat_high_magnitude_bounds_as_infinity_),
619 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_drop_tolerance_),
620 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_presolve_level_),
621 1,
622 3,
623 104,
624 122,
625 194,
626 100,
627 6,
628 5,
629 17,
630 20,
631 18,
632 105,
633 119,
634 124,
635 109,
636 4,
637 201,
638 12,
639 131,
640 13,
641 120,
642 126,
643 106,
644 107,
645 112,
646 113,
647 110,
648 108,
649 111,
650 ~0u,
651 0,
652 114,
653 133,
654 132,
655 137,
656 16,
657 134,
658 135,
659 15,
660 14,
661 116,
662 136,
663 92,
664 117,
665 118,
666 188,
667 42,
668 115,
669 50,
670 51,
671 52,
672 7,
673 56,
674 2,
675 198,
676 54,
677 8,
678 9,
679 123,
680 128,
681 102,
682 130,
683 214,
684 129,
685 144,
686 139,
687 138,
688 174,
689 143,
690 155,
691 146,
692 262,
693 65,
694 212,
695 45,
696 266,
697 197,
698 90,
699 89,
700 83,
701 53,
702 68,
703 175,
704 176,
705 177,
706 47,
707 205,
708 208,
709 220,
710 221,
711 182,
712 237,
713 243,
714 244,
715 253,
716 91,
717 63,
718 30,
719 93,
720 ~0u,
721 ~0u,
722 ~0u,
723 ~0u,
724 ~0u,
725 37,
726 36,
727 157,
728 158,
729 209,
730 87,
731 254,
732 268,
733 43,
734 41,
735 59,
736 97,
737 121,
738 125,
739 142,
740 145,
741 11,
742 10,
743 127,
744 213,
745 140,
746 216,
747 71,
748 80,
749 81,
750 19,
751 88,
752 22,
753 231,
754 64,
755 66,
756 141,
757 267,
758 61,
759 62,
760 82,
761 94,
762 245,
763 103,
764 263,
765 210,
766 101,
767 98,
768 99,
769 261,
770 265,
771 260,
772 264,
773 21,
774 183,
775 44,
776 57,
777 49,
778 240,
779 238,
780 206,
781 207,
782 248,
783 70,
784 78,
785 250,
786 163,
787 23,
788 55,
789 86,
790 149,
791 24,
792 239,
793 76,
794 218,
795 228,
796 229,
797 249,
798 224,
799 225,
800 222,
801 235,
802 74,
803 226,
804 230,
805 72,
806 75,
807 246,
808 252,
809 255,
810 247,
811 219,
812 73,
813 256,
814 25,
815 46,
816 34,
817 58,
818 152,
819 151,
820 27,
821 39,
822 77,
823 258,
824 259,
825 242,
826 28,
827 202,
828 167,
829 190,
830 223,
831 251,
832 189,
833 38,
834 29,
835 31,
836 79,
837 32,
838 153,
839 35,
840 236,
841 179,
842 180,
843 48,
844 233,
845 234,
846 196,
847 195,
848 95,
849 96,
850 257,
851 211,
852 227,
853 147,
854 154,
855 200,
856 148,
857 203,
858 26,
859 60,
860 165,
861 166,
862 192,
863 193,
864 241,
865 178,
866 181,
867 161,
868 156,
869 215,
870 160,
871 185,
872 162,
873 184,
874 187,
875 186,
876 164,
877 150,
878 159,
879 33,
880 40,
881 168,
882 84,
883 169,
884 170,
885 69,
886 191,
887 67,
888 171,
889 173,
890 172,
891 199,
892 204,
893 85,
894 217,
895 232,
896};
897
898static const ::_pbi::MigrationSchema
899 schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
901};
902static const ::_pb::Message* PROTOBUF_NONNULL const file_default_instances[] = {
904};
905const char descriptor_table_protodef_ortools_2fsat_2fsat_5fparameters_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
906 protodesc_cold) = {
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"
1261};
1263PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto = {
1264 false,
1265 false,
1266 14156,
1267 descriptor_table_protodef_ortools_2fsat_2fsat_5fparameters_2eproto,
1268 "ortools/sat/sat_parameters.proto",
1270 nullptr,
1271 0,
1272 1,
1273 schemas,
1278};
1279namespace operations_research {
1280namespace sat {
1281const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_VariableOrder_descriptor() {
1282 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1284}
1285PROTOBUF_CONSTINIT const uint32_t SatParameters_VariableOrder_internal_data_[] = {
1286 196608u, 0u, };
1287const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_Polarity_descriptor() {
1288 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1290}
1291PROTOBUF_CONSTINIT const uint32_t SatParameters_Polarity_internal_data_[] = {
1292 196608u, 0u, };
1293const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_ConflictMinimizationAlgorithm_descriptor() {
1294 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1296}
1298 262144u, 0u, };
1299const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_BinaryMinizationAlgorithm_descriptor() {
1300 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1302}
1303PROTOBUF_CONSTINIT const uint32_t SatParameters_BinaryMinizationAlgorithm_internal_data_[] = {
1304 327680u, 0u, };
1305const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_ClauseProtection_descriptor() {
1306 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1308}
1309PROTOBUF_CONSTINIT const uint32_t SatParameters_ClauseProtection_internal_data_[] = {
1310 196608u, 0u, };
1311const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_ClauseOrdering_descriptor() {
1312 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1314}
1315PROTOBUF_CONSTINIT const uint32_t SatParameters_ClauseOrdering_internal_data_[] = {
1316 131072u, 0u, };
1317const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_RestartAlgorithm_descriptor() {
1318 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1320}
1321PROTOBUF_CONSTINIT const uint32_t SatParameters_RestartAlgorithm_internal_data_[] = {
1322 327680u, 0u, };
1323const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_MaxSatAssumptionOrder_descriptor() {
1324 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1326}
1327PROTOBUF_CONSTINIT const uint32_t SatParameters_MaxSatAssumptionOrder_internal_data_[] = {
1328 196608u, 0u, };
1329const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_MaxSatStratificationAlgorithm_descriptor() {
1330 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1332}
1334 196608u, 0u, };
1335const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_SearchBranching_descriptor() {
1336 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1338}
1339PROTOBUF_CONSTINIT const uint32_t SatParameters_SearchBranching_internal_data_[] = {
1340 589824u, 0u, };
1341const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_SharedTreeSplitStrategy_descriptor() {
1342 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1344}
1345PROTOBUF_CONSTINIT const uint32_t SatParameters_SharedTreeSplitStrategy_internal_data_[] = {
1346 327680u, 0u, };
1347const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_FPRoundingMethod_descriptor() {
1348 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1350}
1351PROTOBUF_CONSTINIT const uint32_t SatParameters_FPRoundingMethod_internal_data_[] = {
1352 262144u, 0u, };
1353// ===================================================================
1354
1355class SatParameters::_Internal {
1356 public:
1357 using HasBits =
1358 decltype(::std::declval<SatParameters>()._impl_._has_bits_);
1359 static constexpr ::int32_t kHasBitsOffset =
1360 8 * PROTOBUF_FIELD_OFFSET(SatParameters, _impl_._has_bits_);
1361};
1362
1363/*static*/ 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}},
1365 {nullptr},
1366};
1367SatParameters::SatParameters(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1368#if defined(PROTOBUF_CUSTOM_VTABLE)
1369 : ::google::protobuf::Message(arena, SatParameters_class_data_.base()) {
1370#else // PROTOBUF_CUSTOM_VTABLE
1371 : ::google::protobuf::Message(arena) {
1372#endif // PROTOBUF_CUSTOM_VTABLE
1373 SharedCtor(arena);
1374 // @@protoc_insertion_point(arena_constructor:operations_research.sat.SatParameters)
1375}
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_},
1381 _cached_size_{0},
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_) {}
1391
1393 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
1394 const SatParameters& from)
1395#if defined(PROTOBUF_CUSTOM_VTABLE)
1396 : ::google::protobuf::Message(arena, SatParameters_class_data_.base()) {
1397#else // PROTOBUF_CUSTOM_VTABLE
1398 : ::google::protobuf::Message(arena) {
1399#endif // PROTOBUF_CUSTOM_VTABLE
1400 SatParameters* const _this = this;
1401 (void)_this;
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_));
1412
1413 // @@protoc_insertion_point(copy_constructor:operations_research.sat.SatParameters)
1414}
1415PROTOBUF_NDEBUG_INLINE SatParameters::Impl_::Impl_(
1416 ::google::protobuf::internal::InternalVisibility visibility,
1417 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1418 : _cached_size_{0},
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_),
1426 name_(arena),
1427 log_prefix_(arena),
1428 initial_polarity_{static_cast< ::operations_research::sat::SatParameters_Polarity >(1)},
1429 minimization_algorithm_{static_cast< ::operations_research::sat::SatParameters_ConflictMinimizationAlgorithm >(2)},
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},
1439 random_seed_{1},
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}},
1443 binary_minimization_algorithm_{static_cast< ::operations_research::sat::SatParameters_BinaryMinizationAlgorithm >(1)},
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},
1451 max_sat_stratification_{static_cast< ::operations_research::sat::SatParameters_MaxSatStratificationAlgorithm >(1)},
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},
1489 add_cg_cuts_{true},
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},
1513 fp_rounding_{static_cast< ::operations_research::sat::SatParameters_FPRoundingMethod >(2)},
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},
1519 symmetry_level_{2},
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},
1527 cut_level_{1},
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},
1566 use_lns_{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} {}
1593
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_),
1598 0,
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_));
1602}
1604 // @@protoc_insertion_point(destructor:operations_research.sat.SatParameters)
1605 SharedDtor(*this);
1606}
1607inline void SatParameters::SharedDtor(MessageLite& self) {
1608 SatParameters& this_ = static_cast<SatParameters&>(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();
1614 this_._impl_.~Impl_();
1615}
1616
1617inline void* PROTOBUF_NONNULL SatParameters::PlacementNew_(
1618 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
1619 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
1620 return ::new (mem) SatParameters(arena);
1621}
1622constexpr auto SatParameters::InternalNewImpl_() {
1623 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
1624 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_algorithms_) +
1625 decltype(SatParameters::_impl_.restart_algorithms_)::
1626 InternalGetArenaOffset(
1627 ::google::protobuf::Message::internal_visibility()),
1628 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsolvers_) +
1629 decltype(SatParameters::_impl_.subsolvers_)::
1630 InternalGetArenaOffset(
1631 ::google::protobuf::Message::internal_visibility()),
1632 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.extra_subsolvers_) +
1633 decltype(SatParameters::_impl_.extra_subsolvers_)::
1634 InternalGetArenaOffset(
1635 ::google::protobuf::Message::internal_visibility()),
1636 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.ignore_subsolvers_) +
1637 decltype(SatParameters::_impl_.ignore_subsolvers_)::
1638 InternalGetArenaOffset(
1639 ::google::protobuf::Message::internal_visibility()),
1640 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.filter_subsolvers_) +
1641 decltype(SatParameters::_impl_.filter_subsolvers_)::
1642 InternalGetArenaOffset(
1643 ::google::protobuf::Message::internal_visibility()),
1644 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsolver_params_) +
1645 decltype(SatParameters::_impl_.subsolver_params_)::
1646 InternalGetArenaOffset(
1647 ::google::protobuf::Message::internal_visibility()),
1648 });
1649 if (arena_bits.has_value()) {
1650 return ::google::protobuf::internal::MessageCreator::CopyInit(
1651 sizeof(SatParameters), alignof(SatParameters), *arena_bits);
1652 } else {
1653 return ::google::protobuf::internal::MessageCreator(&SatParameters::PlacementNew_,
1654 sizeof(SatParameters),
1655 alignof(SatParameters));
1656 }
1657}
1659 return ::google::protobuf::internal::ClassDataFull{
1660 ::google::protobuf::internal::ClassData{
1662 &_table_.header,
1663 nullptr, // OnDemandRegisterArenaDtor
1664 nullptr, // IsInitialized
1665 &SatParameters::MergeImpl,
1666 ::google::protobuf::Message::GetNewImpl<SatParameters>(),
1667#if defined(PROTOBUF_CUSTOM_VTABLE)
1668 &SatParameters::SharedDtor,
1669 ::google::protobuf::Message::GetClearImpl<SatParameters>(), &SatParameters::ByteSizeLong,
1671#endif // PROTOBUF_CUSTOM_VTABLE
1672 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_._cached_size_),
1673 false,
1674 },
1675 &SatParameters::kDescriptorMethods,
1677 nullptr, // tracker
1678 };
1679}
1680
1681PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
1682 ::google::protobuf::internal::ClassDataFull SatParameters_class_data_ =
1684
1685PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
1687 ::google::protobuf::internal::PrefetchToLocalCache(&SatParameters_class_data_);
1688 ::google::protobuf::internal::PrefetchToLocalCache(SatParameters_class_data_.tc_table);
1689 return SatParameters_class_data_.base();
1690}
1691PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1692const ::_pbi::TcParseTable<5, 275, 13, 418, 43>
1693SatParameters::_table_ = {
1694 {
1695 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_._has_bits_),
1696 0, // no _extensions_
1697 324, 248, // max_field_number, fast_idx_mask
1698 offsetof(decltype(_table_), field_lookup_table),
1699 521939956, // skipmap
1700 offsetof(decltype(_table_), field_entries),
1701 275, // num_field_entries
1702 13, // num_aux_entries
1703 offsetof(decltype(_table_), aux_entries),
1705 nullptr, // post_loop_handler
1706 ::_pbi::TcParser::GenericFallback, // fallback
1707 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1708 ::_pbi::TcParser::GetTable<::operations_research::sat::SatParameters>(), // to_prefetch
1709 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
1710 }, {{
1711 {::_pbi::TcParser::MiniParse, {}},
1712 // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
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, {}},
1726 // optional int32 clause_cleanup_target = 13 [default = 0];
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, {}},
1731 // optional double random_branches_ratio = 32 [default = 0];
1732 {::_pbi::TcParser::FastF64S2,
1733 {641, 5, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_branches_ratio_)}},
1734 // repeated string ignore_subsolvers = 209;
1735 {::_pbi::TcParser::FastSR2,
1736 {3466, 63, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.ignore_subsolvers_)}},
1737 // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
1738 {::_pbi::TcParser::FastEr0S2,
1739 {1424, 21, 8, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.search_branching_)}},
1740 // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
1741 {::_pbi::TcParser::FastEr0S2,
1742 {920, 11, 2, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_sat_assumption_order_)}},
1743 // optional bool max_sat_reverse_assumption_order = 52 [default = false];
1744 {::_pbi::TcParser::FastV8S2,
1745 {928, 10, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_sat_reverse_assumption_order_)}},
1746 // optional double strategy_change_increase_ratio = 69 [default = 0];
1747 {::_pbi::TcParser::FastF64S2,
1748 {1193, 14, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.strategy_change_increase_ratio_)}},
1749 // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
1750 {::_pbi::TcParser::FastSS2,
1751 {1202, 0, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.default_restart_algorithms_)}},
1752 // optional bool enumerate_all_solutions = 87 [default = false];
1753 {::_pbi::TcParser::FastV8S2,
1754 {1464, 25, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.enumerate_all_solutions_)}},
1755 // optional int64 search_random_variable_pool_size = 104 [default = 0];
1756 {::_pbi::TcParser::FastV64S2,
1757 {1728, 31, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.search_random_variable_pool_size_)}},
1758 // optional bool log_search_progress = 41 [default = false];
1759 {::_pbi::TcParser::FastV8S2,
1760 {712, 7, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_search_progress_)}},
1761 // optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [default = PROTECTION_NONE];
1762 {::_pbi::TcParser::FastEr0S2,
1763 {976, 12, 2, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_protection_)}},
1764 // optional bool use_pb_resolution = 43 [default = false];
1765 {::_pbi::TcParser::FastV8S2,
1766 {728, 8, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_pb_resolution_)}},
1767 // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
1768 {::_pbi::TcParser::FastEr0S2,
1769 {992, 13, 1, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_ordering_)}},
1770 // optional double random_polarity_ratio = 45 [default = 0];
1771 {::_pbi::TcParser::FastF64S2,
1772 {745, 6, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_polarity_ratio_)}},
1773 // optional bool use_overload_checker_in_cumulative = 78 [default = false];
1774 {::_pbi::TcParser::FastV8S2,
1775 {1264, 19, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_overload_checker_in_cumulative_)}},
1776 // optional bool use_timetable_edge_finding_in_cumulative = 79 [default = false];
1777 {::_pbi::TcParser::FastV8S2,
1778 {1272, 22, 0, PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_timetable_edge_finding_in_cumulative_)}},
1779 }}, {{
1780 34, 0, 19,
1781 304, 15,
1782 0, 28,
1783 32768, 44,
1784 49152, 59,
1785 8336, 73,
1786 16, 86,
1787 15872, 101,
1788 4112, 112,
1789 0, 126,
1790 64, 142,
1791 16384, 157,
1792 262, 172,
1793 34848, 185,
1794 4634, 198,
1795 0, 209,
1796 0, 225,
1797 0, 241,
1798 8192, 257,
1799 65528, 272,
1800 65535, 65535
1801 }}, {{
1802 // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
1803 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.preferred_variable_order_), _Internal::kHasBitsOffset + 3, 1,
1804 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1805 // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
1806 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.initial_polarity_), _Internal::kHasBitsOffset + 104, 2,
1807 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1808 // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
1809 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.minimization_algorithm_), _Internal::kHasBitsOffset + 105, 3,
1810 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1811 // optional int32 clause_cleanup_period = 11 [default = 10000];
1812 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_period_), _Internal::kHasBitsOffset + 109, 0,
1813 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1814 // optional int32 clause_cleanup_target = 13 [default = 0];
1815 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_target_), _Internal::kHasBitsOffset + 4, 0,
1816 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1817 // optional double variable_activity_decay = 15 [default = 0.8];
1818 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.variable_activity_decay_), _Internal::kHasBitsOffset + 106, 0,
1819 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1820 // optional double max_variable_activity_value = 16 [default = 1e+100];
1821 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_variable_activity_value_), _Internal::kHasBitsOffset + 107, 0,
1822 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1823 // optional double clause_activity_decay = 17 [default = 0.999];
1824 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_activity_decay_), _Internal::kHasBitsOffset + 108, 0,
1825 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1826 // optional double max_clause_activity_value = 18 [default = 1e+20];
1827 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_clause_activity_value_), _Internal::kHasBitsOffset + 111, 0,
1828 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1829 // optional double glucose_max_decay = 22 [default = 0.95];
1830 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.glucose_max_decay_), _Internal::kHasBitsOffset + 112, 0,
1831 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1832 // optional double glucose_decay_increment = 23 [default = 0.01];
1833 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.glucose_decay_increment_), _Internal::kHasBitsOffset + 113, 0,
1834 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1835 // optional int32 glucose_decay_increment_period = 24 [default = 5000];
1836 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.glucose_decay_increment_period_), _Internal::kHasBitsOffset + 110, 0,
1837 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1838 // optional int32 restart_period = 30 [default = 50];
1839 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_period_), _Internal::kHasBitsOffset + 114, 0,
1840 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1841 // optional int32 random_seed = 31 [default = 1];
1842 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_seed_), _Internal::kHasBitsOffset + 115, 0,
1843 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1844 // optional double random_branches_ratio = 32 [default = 0];
1845 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_branches_ratio_), _Internal::kHasBitsOffset + 5, 0,
1846 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1847 // optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorithm = 34 [default = BINARY_MINIMIZATION_FIRST];
1848 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.binary_minimization_algorithm_), _Internal::kHasBitsOffset + 119, 4,
1849 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1850 // optional bool use_optimization_hints = 35 [default = true];
1851 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_optimization_hints_), _Internal::kHasBitsOffset + 121, 0,
1852 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1853 // optional double max_time_in_seconds = 36 [default = inf];
1854 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_time_in_seconds_), _Internal::kHasBitsOffset + 116, 0,
1855 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1856 // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
1857 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_number_of_conflicts_), _Internal::kHasBitsOffset + 117, 0,
1858 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
1859 // optional int64 max_memory_in_mb = 40 [default = 10000];
1860 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_memory_in_mb_), _Internal::kHasBitsOffset + 118, 0,
1861 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
1862 // optional bool log_search_progress = 41 [default = false];
1863 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_search_progress_), _Internal::kHasBitsOffset + 7, 0,
1864 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1865 // optional bool use_pb_resolution = 43 [default = false];
1866 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_pb_resolution_), _Internal::kHasBitsOffset + 8, 0,
1867 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1868 // optional bool use_phase_saving = 44 [default = true];
1869 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_phase_saving_), _Internal::kHasBitsOffset + 122, 0,
1870 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1871 // optional double random_polarity_ratio = 45 [default = 0];
1872 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_polarity_ratio_), _Internal::kHasBitsOffset + 6, 0,
1873 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1874 // optional int32 pb_cleanup_increment = 46 [default = 200];
1875 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.pb_cleanup_increment_), _Internal::kHasBitsOffset + 120, 0,
1876 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1877 // optional double pb_cleanup_ratio = 47 [default = 0.5];
1878 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.pb_cleanup_ratio_), _Internal::kHasBitsOffset + 126, 0,
1879 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1880 // optional bool minimize_reduction_during_pb_resolution = 48 [default = false];
1881 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.minimize_reduction_during_pb_resolution_), _Internal::kHasBitsOffset + 9, 0,
1882 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1883 // optional bool count_assumption_levels_in_lbd = 49 [default = true];
1884 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.count_assumption_levels_in_lbd_), _Internal::kHasBitsOffset + 123, 0,
1885 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1886 // optional int32 core_minimization_level = 50 [default = 2];
1887 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.core_minimization_level_), _Internal::kHasBitsOffset + 125, 0,
1888 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1889 // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
1890 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_sat_assumption_order_), _Internal::kHasBitsOffset + 11, 5,
1891 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1892 // optional bool max_sat_reverse_assumption_order = 52 [default = false];
1893 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_sat_reverse_assumption_order_), _Internal::kHasBitsOffset + 10, 0,
1894 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1895 // optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification = 53 [default = STRATIFICATION_DESCENT];
1896 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_sat_stratification_), _Internal::kHasBitsOffset + 127, 6,
1897 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1898 // optional int32 presolve_bve_threshold = 54 [default = 500];
1899 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_bve_threshold_), _Internal::kHasBitsOffset + 128, 0,
1900 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1901 // optional int32 presolve_bve_clause_weight = 55 [default = 3];
1902 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_bve_clause_weight_), _Internal::kHasBitsOffset + 130, 0,
1903 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1904 // optional bool subsumption_during_conflict_analysis = 56 [default = true];
1905 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsumption_during_conflict_analysis_), _Internal::kHasBitsOffset + 124, 0,
1906 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1907 // optional double presolve_probing_deterministic_time_limit = 57 [default = 30];
1908 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_probing_deterministic_time_limit_), _Internal::kHasBitsOffset + 129, 0,
1909 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1910 // optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [default = PROTECTION_NONE];
1911 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_protection_), _Internal::kHasBitsOffset + 12, 7,
1912 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1913 // optional int32 clause_cleanup_lbd_bound = 59 [default = 5];
1914 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_lbd_bound_), _Internal::kHasBitsOffset + 131, 0,
1915 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1916 // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
1917 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_ordering_), _Internal::kHasBitsOffset + 13, 8,
1918 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1919 // repeated .operations_research.sat.SatParameters.RestartAlgorithm restart_algorithms = 61;
1920 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_algorithms_), -1, 9,
1921 (0 | ::_fl::kFcRepeated | ::_fl::kEnumRange)},
1922 // optional int32 restart_running_window_size = 62 [default = 50];
1923 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_running_window_size_), _Internal::kHasBitsOffset + 133, 0,
1924 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1925 // optional double restart_dl_average_ratio = 63 [default = 1];
1926 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_dl_average_ratio_), _Internal::kHasBitsOffset + 132, 0,
1927 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1928 // optional bool use_blocking_restart = 64 [default = false];
1929 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_blocking_restart_), _Internal::kHasBitsOffset + 16, 0,
1930 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1931 // optional int32 blocking_restart_window_size = 65 [default = 5000];
1932 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.blocking_restart_window_size_), _Internal::kHasBitsOffset + 134, 0,
1933 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1934 // optional double blocking_restart_multiplier = 66 [default = 1.4];
1935 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.blocking_restart_multiplier_), _Internal::kHasBitsOffset + 135, 0,
1936 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1937 // optional double max_deterministic_time = 67 [default = inf];
1938 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_deterministic_time_), _Internal::kHasBitsOffset + 136, 0,
1939 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1940 // optional int32 num_conflicts_before_strategy_changes = 68 [default = 0];
1941 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_conflicts_before_strategy_changes_), _Internal::kHasBitsOffset + 15, 0,
1942 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1943 // optional double strategy_change_increase_ratio = 69 [default = 0];
1944 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.strategy_change_increase_ratio_), _Internal::kHasBitsOffset + 14, 0,
1945 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1946 // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
1947 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.default_restart_algorithms_), _Internal::kHasBitsOffset + 0, 0,
1948 (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
1949 // optional double restart_lbd_average_ratio = 71 [default = 1];
1950 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_lbd_average_ratio_), _Internal::kHasBitsOffset + 137, 0,
1951 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1952 // optional bool presolve_use_bva = 72 [default = true];
1953 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_use_bva_), _Internal::kHasBitsOffset + 139, 0,
1954 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1955 // optional int32 presolve_bva_threshold = 73 [default = 1];
1956 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_bva_threshold_), _Internal::kHasBitsOffset + 138, 0,
1957 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1958 // optional bool use_precedences_in_disjunctive_constraint = 74 [default = true];
1959 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_precedences_in_disjunctive_constraint_), _Internal::kHasBitsOffset + 140, 0,
1960 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1961 // optional bool use_erwa_heuristic = 75 [default = false];
1962 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_erwa_heuristic_), _Internal::kHasBitsOffset + 17, 0,
1963 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1964 // optional double initial_variables_activity = 76 [default = 0];
1965 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.initial_variables_activity_), _Internal::kHasBitsOffset + 20, 0,
1966 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1967 // optional bool also_bump_variables_in_conflict_reasons = 77 [default = false];
1968 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.also_bump_variables_in_conflict_reasons_), _Internal::kHasBitsOffset + 18, 0,
1969 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1970 // optional bool use_overload_checker_in_cumulative = 78 [default = false];
1971 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_overload_checker_in_cumulative_), _Internal::kHasBitsOffset + 19, 0,
1972 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1973 // optional bool use_timetable_edge_finding_in_cumulative = 79 [default = false];
1974 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_timetable_edge_finding_in_cumulative_), _Internal::kHasBitsOffset + 22, 0,
1975 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1976 // optional bool use_disjunctive_constraint_in_cumulative = 80 [default = true];
1977 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_disjunctive_constraint_in_cumulative_), _Internal::kHasBitsOffset + 141, 0,
1978 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1979 // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
1980 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.search_branching_), _Internal::kHasBitsOffset + 21, 10,
1981 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1982 // optional bool optimize_with_core = 83 [default = false];
1983 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.optimize_with_core_), _Internal::kHasBitsOffset + 23, 0,
1984 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1985 // optional bool find_multiple_cores = 84 [default = true];
1986 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.find_multiple_cores_), _Internal::kHasBitsOffset + 142, 0,
1987 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1988 // optional bool optimize_with_max_hs = 85 [default = false];
1989 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.optimize_with_max_hs_), _Internal::kHasBitsOffset + 24, 0,
1990 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1991 // optional bool cp_model_presolve = 86 [default = true];
1992 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cp_model_presolve_), _Internal::kHasBitsOffset + 143, 0,
1993 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1994 // optional bool enumerate_all_solutions = 87 [default = false];
1995 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.enumerate_all_solutions_), _Internal::kHasBitsOffset + 25, 0,
1996 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1997 // optional bool presolve_blocked_clause = 88 [default = true];
1998 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_blocked_clause_), _Internal::kHasBitsOffset + 144, 0,
1999 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2000 // optional bool cover_optimization = 89 [default = true];
2001 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cover_optimization_), _Internal::kHasBitsOffset + 145, 0,
2002 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2003 // optional int32 linearization_level = 90 [default = 1];
2004 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.linearization_level_), _Internal::kHasBitsOffset + 147, 0,
2005 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2006 // optional int32 max_num_cuts = 91 [default = 10000];
2007 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_num_cuts_), _Internal::kHasBitsOffset + 148, 0,
2008 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2009 // optional bool only_add_cuts_at_level_zero = 92 [default = false];
2010 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.only_add_cuts_at_level_zero_), _Internal::kHasBitsOffset + 26, 0,
2011 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2012 // optional bool cp_model_use_sat_presolve = 93 [default = true];
2013 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cp_model_use_sat_presolve_), _Internal::kHasBitsOffset + 146, 0,
2014 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2015 // optional bool exploit_integer_lp_solution = 94 [default = true];
2016 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_integer_lp_solution_), _Internal::kHasBitsOffset + 150, 0,
2017 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2018 // optional bool auto_detect_greater_than_at_least_one_of = 95 [default = true];
2019 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.auto_detect_greater_than_at_least_one_of_), _Internal::kHasBitsOffset + 151, 0,
2020 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2021 // optional bool stop_after_first_solution = 98 [default = false];
2022 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.stop_after_first_solution_), _Internal::kHasBitsOffset + 27, 0,
2023 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2024 // optional int32 binary_search_num_conflicts = 99 [default = -1];
2025 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.binary_search_num_conflicts_), _Internal::kHasBitsOffset + 149, 0,
2026 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2027 // optional int32 num_search_workers = 100 [default = 0];
2028 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_search_workers_), _Internal::kHasBitsOffset + 30, 0,
2029 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2030 // optional bool use_lns_only = 101 [default = false];
2031 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_lns_only_), _Internal::kHasBitsOffset + 28, 0,
2032 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2033 // optional bool randomize_search = 103 [default = false];
2034 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.randomize_search_), _Internal::kHasBitsOffset + 29, 0,
2035 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2036 // optional int64 search_random_variable_pool_size = 104 [default = 0];
2037 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.search_random_variable_pool_size_), _Internal::kHasBitsOffset + 31, 0,
2038 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2039 // optional bool instantiate_all_variables = 106 [default = true];
2040 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.instantiate_all_variables_), _Internal::kHasBitsOffset + 152, 0,
2041 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2042 // optional int32 boolean_encoding_level = 107 [default = 1];
2043 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.boolean_encoding_level_), _Internal::kHasBitsOffset + 154, 0,
2044 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2045 // optional bool use_optional_variables = 108 [default = false];
2046 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_optional_variables_), _Internal::kHasBitsOffset + 32, 0,
2047 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2048 // optional bool use_exact_lp_reason = 109 [default = true];
2049 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_exact_lp_reason_), _Internal::kHasBitsOffset + 153, 0,
2050 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2051 // optional int32 cp_model_probing_level = 110 [default = 2];
2052 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cp_model_probing_level_), _Internal::kHasBitsOffset + 155, 0,
2053 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2054 // optional bool add_lp_constraints_lazily = 112 [default = true];
2055 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_lp_constraints_lazily_), _Internal::kHasBitsOffset + 156, 0,
2056 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2057 // optional bool share_objective_bounds = 113 [default = true];
2058 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_objective_bounds_), _Internal::kHasBitsOffset + 157, 0,
2059 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2060 // optional bool share_level_zero_bounds = 114 [default = true];
2061 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_level_zero_bounds_), _Internal::kHasBitsOffset + 158, 0,
2062 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2063 // optional double min_orthogonality_for_lp_constraints = 115 [default = 0.05];
2064 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.min_orthogonality_for_lp_constraints_), _Internal::kHasBitsOffset + 160, 0,
2065 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2066 // optional bool exploit_all_lp_solution = 116 [default = true];
2067 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_all_lp_solution_), _Internal::kHasBitsOffset + 159, 0,
2068 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2069 // optional bool add_cg_cuts = 117 [default = true];
2070 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_cg_cuts_), _Internal::kHasBitsOffset + 165, 0,
2071 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2072 // optional int32 max_integer_rounding_scaling = 119 [default = 600];
2073 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_integer_rounding_scaling_), _Internal::kHasBitsOffset + 161, 0,
2074 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2075 // optional bool add_mir_cuts = 120 [default = true];
2076 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_mir_cuts_), _Internal::kHasBitsOffset + 166, 0,
2077 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2078 // optional int32 max_consecutive_inactive_count = 121 [default = 100];
2079 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_consecutive_inactive_count_), _Internal::kHasBitsOffset + 162, 0,
2080 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2081 // optional int32 new_constraints_batch_size = 122 [default = 50];
2082 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.new_constraints_batch_size_), _Internal::kHasBitsOffset + 164, 0,
2083 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2084 // optional int64 pseudo_cost_reliability_threshold = 123 [default = 100];
2085 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.pseudo_cost_reliability_threshold_), _Internal::kHasBitsOffset + 163, 0,
2086 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2087 // optional double mip_max_bound = 124 [default = 10000000];
2088 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_max_bound_), _Internal::kHasBitsOffset + 169, 0,
2089 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2090 // optional double mip_var_scaling = 125 [default = 1];
2091 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_var_scaling_), _Internal::kHasBitsOffset + 170, 0,
2092 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2093 // optional double mip_wanted_precision = 126 [default = 1e-06];
2094 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_wanted_precision_), _Internal::kHasBitsOffset + 171, 0,
2095 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2096 // optional int32 mip_max_activity_exponent = 127 [default = 53];
2097 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_max_activity_exponent_), _Internal::kHasBitsOffset + 173, 0,
2098 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2099 // optional double mip_check_precision = 128 [default = 0.0001];
2100 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_check_precision_), _Internal::kHasBitsOffset + 172, 0,
2101 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2102 // optional bool use_rins_lns = 129 [default = true];
2103 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_rins_lns_), _Internal::kHasBitsOffset + 167, 0,
2104 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2105 // optional bool exploit_best_solution = 130 [default = false];
2106 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_best_solution_), _Internal::kHasBitsOffset + 33, 0,
2107 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2108 // optional bool exploit_objective = 131 [default = true];
2109 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_objective_), _Internal::kHasBitsOffset + 168, 0,
2110 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2111 // optional bool fill_tightened_domains_in_response = 132 [default = false];
2112 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.fill_tightened_domains_in_response_), _Internal::kHasBitsOffset + 34, 0,
2113 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2114 // optional bool use_combined_no_overlap = 133 [default = false];
2115 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_combined_no_overlap_), _Internal::kHasBitsOffset + 35, 0,
2116 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2117 // optional int32 interleave_batch_size = 134 [default = 0];
2118 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.interleave_batch_size_), _Internal::kHasBitsOffset + 36, 0,
2119 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2120 // optional bool catch_sigint_signal = 135 [default = true];
2121 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.catch_sigint_signal_), _Internal::kHasBitsOffset + 179, 0,
2122 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2123 // optional bool interleave_search = 136 [default = false];
2124 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.interleave_search_), _Internal::kHasBitsOffset + 37, 0,
2125 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2126 // optional bool diversify_lns_params = 137 [default = false];
2127 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.diversify_lns_params_), _Internal::kHasBitsOffset + 38, 0,
2128 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2129 // optional int32 max_presolve_iterations = 138 [default = 3];
2130 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_presolve_iterations_), _Internal::kHasBitsOffset + 174, 0,
2131 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2132 // optional bool use_implied_bounds = 144 [default = true];
2133 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_implied_bounds_), _Internal::kHasBitsOffset + 180, 0,
2134 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2135 // optional double merge_no_overlap_work_limit = 145 [default = 1000000000000];
2136 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.merge_no_overlap_work_limit_), _Internal::kHasBitsOffset + 175, 0,
2137 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2138 // optional double merge_at_most_one_work_limit = 146 [default = 100000000];
2139 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.merge_at_most_one_work_limit_), _Internal::kHasBitsOffset + 176, 0,
2140 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2141 // optional int32 presolve_substitution_level = 147 [default = 1];
2142 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_substitution_level_), _Internal::kHasBitsOffset + 177, 0,
2143 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2144 // optional int32 max_all_diff_cut_size = 148 [default = 64];
2145 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_all_diff_cut_size_), _Internal::kHasBitsOffset + 178, 0,
2146 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2147 // optional bool stop_after_presolve = 149 [default = false];
2148 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.stop_after_presolve_), _Internal::kHasBitsOffset + 39, 0,
2149 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2150 // optional int32 debug_max_num_presolve_operations = 151 [default = 0];
2151 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.debug_max_num_presolve_operations_), _Internal::kHasBitsOffset + 41, 0,
2152 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2153 // optional bool add_lin_max_cuts = 152 [default = true];
2154 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_lin_max_cuts_), _Internal::kHasBitsOffset + 181, 0,
2155 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2156 // optional int32 hint_conflict_limit = 153 [default = 10];
2157 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.hint_conflict_limit_), _Internal::kHasBitsOffset + 183, 0,
2158 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2159 // optional int32 max_cut_rounds_at_level_zero = 154 [default = 1];
2160 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_cut_rounds_at_level_zero_), _Internal::kHasBitsOffset + 185, 0,
2161 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2162 // optional double cut_max_active_count_value = 155 [default = 10000000000];
2163 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cut_max_active_count_value_), _Internal::kHasBitsOffset + 184, 0,
2164 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2165 // optional double cut_active_count_decay = 156 [default = 0.8];
2166 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cut_active_count_decay_), _Internal::kHasBitsOffset + 187, 0,
2167 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2168 // optional int32 cut_cleanup_target = 157 [default = 1000];
2169 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cut_cleanup_target_), _Internal::kHasBitsOffset + 186, 0,
2170 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2171 // optional double absolute_gap_limit = 159 [default = 0.0001];
2172 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.absolute_gap_limit_), _Internal::kHasBitsOffset + 188, 0,
2173 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2174 // optional double relative_gap_limit = 160 [default = 0];
2175 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.relative_gap_limit_), _Internal::kHasBitsOffset + 42, 0,
2176 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2177 // optional bool exploit_relaxation_solution = 161 [default = false];
2178 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_relaxation_solution_), _Internal::kHasBitsOffset + 40, 0,
2179 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2180 // optional bool debug_postsolve_with_full_solver = 162 [default = false];
2181 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.debug_postsolve_with_full_solver_), _Internal::kHasBitsOffset + 43, 0,
2182 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2183 // optional bool use_sat_inprocessing = 163 [default = true];
2184 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_sat_inprocessing_), _Internal::kHasBitsOffset + 182, 0,
2185 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2186 // optional bool use_feasibility_pump = 164 [default = true];
2187 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_feasibility_pump_), _Internal::kHasBitsOffset + 190, 0,
2188 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2189 // optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGATION_ASSISTED];
2190 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.fp_rounding_), _Internal::kHasBitsOffset + 189, 11,
2191 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2192 // optional bool mip_automatically_scale_variables = 166 [default = true];
2193 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_automatically_scale_variables_), _Internal::kHasBitsOffset + 191, 0,
2194 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2195 // optional bool repair_hint = 167 [default = false];
2196 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.repair_hint_), _Internal::kHasBitsOffset + 44, 0,
2197 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2198 // optional int32 polarity_rephase_increment = 168 [default = 1000];
2199 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.polarity_rephase_increment_), _Internal::kHasBitsOffset + 194, 0,
2200 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2201 // optional bool add_zero_half_cuts = 169 [default = true];
2202 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_zero_half_cuts_), _Internal::kHasBitsOffset + 192, 0,
2203 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2204 // optional bool expand_alldiff_constraints = 170 [default = false];
2205 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.expand_alldiff_constraints_), _Internal::kHasBitsOffset + 45, 0,
2206 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2207 // optional string name = 171 [default = ""];
2208 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.name_), _Internal::kHasBitsOffset + 1, 0,
2209 (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
2210 // optional bool add_clique_cuts = 172 [default = true];
2211 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_clique_cuts_), _Internal::kHasBitsOffset + 193, 0,
2212 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2213 // optional bool keep_all_feasible_solutions_in_presolve = 173 [default = false];
2214 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.keep_all_feasible_solutions_in_presolve_), _Internal::kHasBitsOffset + 46, 0,
2215 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2216 // optional bool presolve_extract_integer_enforcement = 174 [default = false];
2217 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_extract_integer_enforcement_), _Internal::kHasBitsOffset + 47, 0,
2218 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2219 // optional bool polish_lp_solution = 175 [default = false];
2220 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.polish_lp_solution_), _Internal::kHasBitsOffset + 48, 0,
2221 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2222 // optional bool use_probing_search = 176 [default = false];
2223 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_probing_search_), _Internal::kHasBitsOffset + 49, 0,
2224 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2225 // optional bool convert_intervals = 177 [default = true];
2226 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.convert_intervals_), _Internal::kHasBitsOffset + 196, 0,
2227 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2228 // optional bool permute_variable_randomly = 178 [default = false];
2229 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.permute_variable_randomly_), _Internal::kHasBitsOffset + 50, 0,
2230 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2231 // optional bool permute_presolve_constraint_order = 179 [default = false];
2232 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.permute_presolve_constraint_order_), _Internal::kHasBitsOffset + 51, 0,
2233 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2234 // optional bool use_absl_random = 180 [default = false];
2235 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_absl_random_), _Internal::kHasBitsOffset + 52, 0,
2236 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2237 // optional bool disable_constraint_expansion = 181 [default = false];
2238 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.disable_constraint_expansion_), _Internal::kHasBitsOffset + 53, 0,
2239 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2240 // optional bool expand_reservoir_constraints = 182 [default = true];
2241 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.expand_reservoir_constraints_), _Internal::kHasBitsOffset + 197, 0,
2242 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2243 // optional int32 symmetry_level = 183 [default = 2];
2244 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.symmetry_level_), _Internal::kHasBitsOffset + 195, 0,
2245 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2246 // optional string log_prefix = 185 [default = ""];
2247 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_prefix_), _Internal::kHasBitsOffset + 2, 0,
2248 (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
2249 // optional bool log_to_stdout = 186 [default = true];
2250 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_to_stdout_), _Internal::kHasBitsOffset + 198, 0,
2251 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2252 // optional bool log_to_response = 187 [default = false];
2253 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_to_response_), _Internal::kHasBitsOffset + 54, 0,
2254 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2255 // optional bool optimize_with_lb_tree_search = 188 [default = false];
2256 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.optimize_with_lb_tree_search_), _Internal::kHasBitsOffset + 55, 0,
2257 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2258 // optional bool log_subsolver_statistics = 189 [default = false];
2259 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_subsolver_statistics_), _Internal::kHasBitsOffset + 56, 0,
2260 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2261 // optional double clause_cleanup_ratio = 190 [default = 0.5];
2262 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_ratio_), _Internal::kHasBitsOffset + 201, 0,
2263 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2264 // optional int32 max_domain_size_when_encoding_eq_neq_constraints = 191 [default = 16];
2265 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_domain_size_when_encoding_eq_neq_constraints_), _Internal::kHasBitsOffset + 200, 0,
2266 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2267 // optional bool fix_variables_to_their_hinted_value = 192 [default = false];
2268 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.fix_variables_to_their_hinted_value_), _Internal::kHasBitsOffset + 57, 0,
2269 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2270 // optional int32 solution_pool_size = 193 [default = 3];
2271 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.solution_pool_size_), _Internal::kHasBitsOffset + 202, 0,
2272 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2273 // optional bool fill_additional_solutions_in_response = 194 [default = false];
2274 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.fill_additional_solutions_in_response_), _Internal::kHasBitsOffset + 58, 0,
2275 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2276 // optional bool debug_crash_on_bad_hint = 195 [default = false];
2277 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.debug_crash_on_bad_hint_), _Internal::kHasBitsOffset + 59, 0,
2278 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2279 // optional int32 cut_level = 196 [default = 1];
2280 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cut_level_), _Internal::kHasBitsOffset + 203, 0,
2281 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2282 // optional bool add_objective_cut = 197 [default = false];
2283 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_objective_cut_), _Internal::kHasBitsOffset + 60, 0,
2284 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2285 // optional bool mip_compute_true_objective_bound = 198 [default = true];
2286 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_compute_true_objective_bound_), _Internal::kHasBitsOffset + 199, 0,
2287 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2288 // optional double mip_max_valid_magnitude = 199 [default = 1e+20];
2289 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_max_valid_magnitude_), _Internal::kHasBitsOffset + 204, 0,
2290 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2291 // optional bool use_timetabling_in_no_overlap_2d = 200 [default = false];
2292 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_timetabling_in_no_overlap_2d_), _Internal::kHasBitsOffset + 61, 0,
2293 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2294 // optional int64 presolve_inclusion_work_limit = 201 [default = 100000000];
2295 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_inclusion_work_limit_), _Internal::kHasBitsOffset + 205, 0,
2296 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2297 // optional bool ignore_names = 202 [default = true];
2298 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.ignore_names_), _Internal::kHasBitsOffset + 208, 0,
2299 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2300 // optional bool share_binary_clauses = 203 [default = true];
2301 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_binary_clauses_), _Internal::kHasBitsOffset + 209, 0,
2302 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2303 // optional double shaving_deterministic_time_in_probing_search = 204 [default = 0.001];
2304 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shaving_deterministic_time_in_probing_search_), _Internal::kHasBitsOffset + 206, 0,
2305 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2306 // optional double shaving_search_deterministic_time = 205 [default = 0.1];
2307 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shaving_search_deterministic_time_), _Internal::kHasBitsOffset + 207, 0,
2308 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2309 // optional int32 num_workers = 206 [default = 0];
2310 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_workers_), _Internal::kHasBitsOffset + 63, 0,
2311 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2312 // repeated string subsolvers = 207;
2313 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsolvers_), -1, 0,
2314 (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
2315 // repeated string ignore_subsolvers = 209;
2316 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.ignore_subsolvers_), -1, 0,
2317 (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
2318 // repeated .operations_research.sat.SatParameters subsolver_params = 210;
2319 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsolver_params_), -1, 0,
2320 (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
2321 // optional bool use_energetic_reasoning_in_no_overlap_2d = 213 [default = false];
2322 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_energetic_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 62, 0,
2323 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2324 // optional bool use_dual_scheduling_heuristics = 214 [default = true];
2325 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_dual_scheduling_heuristics_), _Internal::kHasBitsOffset + 210, 0,
2326 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2327 // optional bool use_hard_precedences_in_cumulative = 215 [default = false];
2328 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_hard_precedences_in_cumulative_), _Internal::kHasBitsOffset + 64, 0,
2329 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2330 // optional bool detect_table_with_cost = 216 [default = false];
2331 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.detect_table_with_cost_), _Internal::kHasBitsOffset + 65, 0,
2332 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2333 // optional int32 table_compression_level = 217 [default = 2];
2334 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.table_compression_level_), _Internal::kHasBitsOffset + 212, 0,
2335 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2336 // repeated string extra_subsolvers = 219;
2337 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.extra_subsolvers_), -1, 0,
2338 (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
2339 // optional bool exploit_all_precedences = 220 [default = false];
2340 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_all_precedences_), _Internal::kHasBitsOffset + 66, 0,
2341 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2342 // optional double propagation_loop_detection_factor = 221 [default = 10];
2343 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.propagation_loop_detection_factor_), _Internal::kHasBitsOffset + 213, 0,
2344 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2345 // optional bool only_solve_ip = 222 [default = false];
2346 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.only_solve_ip_), _Internal::kHasBitsOffset + 67, 0,
2347 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2348 // optional bool encode_complex_linear_constraint_with_integer = 223 [default = false];
2349 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.encode_complex_linear_constraint_with_integer_), _Internal::kHasBitsOffset + 68, 0,
2350 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2351 // optional bool new_linear_propagation = 224 [default = true];
2352 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.new_linear_propagation_), _Internal::kHasBitsOffset + 211, 0,
2353 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2354 // optional bool mip_scale_large_domain = 225 [default = false];
2355 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_scale_large_domain_), _Internal::kHasBitsOffset + 69, 0,
2356 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2357 // optional double probing_deterministic_time_limit = 226 [default = 1];
2358 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.probing_deterministic_time_limit_), _Internal::kHasBitsOffset + 214, 0,
2359 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2360 // optional int32 root_lp_iterations = 227 [default = 2000];
2361 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.root_lp_iterations_), _Internal::kHasBitsOffset + 215, 0,
2362 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2363 // optional bool use_objective_lb_search = 228 [default = false];
2364 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_objective_lb_search_), _Internal::kHasBitsOffset + 70, 0,
2365 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2366 // optional int32 max_size_to_create_precedence_literals_in_disjunctive = 229 [default = 60];
2367 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_size_to_create_precedence_literals_in_disjunctive_), _Internal::kHasBitsOffset + 216, 0,
2368 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2369 // optional bool use_strong_propagation_in_disjunctive = 230 [default = false];
2370 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_strong_propagation_in_disjunctive_), _Internal::kHasBitsOffset + 71, 0,
2371 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2372 // optional double mip_drop_tolerance = 232 [default = 1e-16];
2373 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_drop_tolerance_), _Internal::kHasBitsOffset + 217, 0,
2374 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2375 // optional bool infer_all_diffs = 233 [default = true];
2376 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.infer_all_diffs_), _Internal::kHasBitsOffset + 220, 0,
2377 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2378 // optional bool find_big_linear_overlap = 234 [default = true];
2379 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.find_big_linear_overlap_), _Internal::kHasBitsOffset + 221, 0,
2380 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2381 // optional int32 shared_tree_num_workers = 235 [default = 0];
2382 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_num_workers_), _Internal::kHasBitsOffset + 72, 0,
2383 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2384 // optional bool use_shared_tree_search = 236 [default = false];
2385 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_shared_tree_search_), _Internal::kHasBitsOffset + 75, 0,
2386 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2387 // optional int32 shared_tree_max_nodes_per_worker = 238 [default = 10000];
2388 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_max_nodes_per_worker_), _Internal::kHasBitsOffset + 219, 0,
2389 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2390 // optional .operations_research.sat.SatParameters.SharedTreeSplitStrategy shared_tree_split_strategy = 239 [default = SPLIT_STRATEGY_AUTO];
2391 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_split_strategy_), _Internal::kHasBitsOffset + 73, 12,
2392 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2393 // optional bool use_ls_only = 240 [default = false];
2394 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_ls_only_), _Internal::kHasBitsOffset + 76, 0,
2395 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2396 // optional double feasibility_jump_decay = 242 [default = 0.95];
2397 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_decay_), _Internal::kHasBitsOffset + 218, 0,
2398 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2399 // optional int32 num_violation_ls = 244 [default = 0];
2400 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_violation_ls_), _Internal::kHasBitsOffset + 74, 0,
2401 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2402 // optional double feasibility_jump_var_randomization_probability = 247 [default = 0.05];
2403 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_var_randomization_probability_), _Internal::kHasBitsOffset + 224, 0,
2404 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2405 // optional double feasibility_jump_var_perburbation_range_ratio = 248 [default = 0.2];
2406 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_var_perburbation_range_ratio_), _Internal::kHasBitsOffset + 225, 0,
2407 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2408 // optional int32 violation_ls_perturbation_period = 249 [default = 100];
2409 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.violation_ls_perturbation_period_), _Internal::kHasBitsOffset + 226, 0,
2410 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2411 // optional bool feasibility_jump_enable_restarts = 250 [default = true];
2412 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_enable_restarts_), _Internal::kHasBitsOffset + 222, 0,
2413 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2414 // optional bool stop_after_root_propagation = 252 [default = false];
2415 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.stop_after_root_propagation_), _Internal::kHasBitsOffset + 77, 0,
2416 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2417 // optional bool use_objective_shaving_search = 253 [default = false];
2418 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_objective_shaving_search_), _Internal::kHasBitsOffset + 78, 0,
2419 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2420 // optional bool use_lb_relax_lns = 255 [default = true];
2421 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_lb_relax_lns_), _Internal::kHasBitsOffset + 223, 0,
2422 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2423 // optional int32 linear_split_size = 256 [default = 100];
2424 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.linear_split_size_), _Internal::kHasBitsOffset + 227, 0,
2425 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2426 // optional int32 feasibility_jump_linearization_level = 257 [default = 2];
2427 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_linearization_level_), _Internal::kHasBitsOffset + 228, 0,
2428 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2429 // optional int32 feasibility_jump_restart_factor = 258 [default = 1];
2430 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_restart_factor_), _Internal::kHasBitsOffset + 229, 0,
2431 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2432 // optional double violation_ls_compound_move_probability = 259 [default = 0.5];
2433 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.violation_ls_compound_move_probability_), _Internal::kHasBitsOffset + 230, 0,
2434 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2435 // optional int32 max_num_intervals_for_timetable_edge_finding = 260 [default = 100];
2436 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_num_intervals_for_timetable_edge_finding_), _Internal::kHasBitsOffset + 231, 0,
2437 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2438 // optional int32 mip_presolve_level = 261 [default = 2];
2439 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_presolve_level_), _Internal::kHasBitsOffset + 232, 0,
2440 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2441 // optional bool push_all_tasks_toward_start = 262 [default = false];
2442 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.push_all_tasks_toward_start_), _Internal::kHasBitsOffset + 79, 0,
2443 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2444 // optional bool use_dynamic_precedence_in_disjunctive = 263 [default = false];
2445 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_dynamic_precedence_in_disjunctive_), _Internal::kHasBitsOffset + 80, 0,
2446 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2447 // optional int32 feasibility_jump_max_expanded_constraint_size = 264 [default = 500];
2448 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_max_expanded_constraint_size_), _Internal::kHasBitsOffset + 235, 0,
2449 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2450 // optional bool use_feasibility_jump = 265 [default = true];
2451 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_feasibility_jump_), _Internal::kHasBitsOffset + 239, 0,
2452 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2453 // optional double lp_primal_tolerance = 266 [default = 1e-07];
2454 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lp_primal_tolerance_), _Internal::kHasBitsOffset + 233, 0,
2455 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2456 // optional double lp_dual_tolerance = 267 [default = 1e-07];
2457 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lp_dual_tolerance_), _Internal::kHasBitsOffset + 234, 0,
2458 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2459 // optional bool use_dynamic_precedence_in_cumulative = 268 [default = false];
2460 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_dynamic_precedence_in_cumulative_), _Internal::kHasBitsOffset + 81, 0,
2461 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2462 // optional bool use_extended_probing = 269 [default = true];
2463 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_extended_probing_), _Internal::kHasBitsOffset + 240, 0,
2464 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2465 // optional int32 at_most_one_max_expansion_size = 270 [default = 3];
2466 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.at_most_one_max_expansion_size_), _Internal::kHasBitsOffset + 236, 0,
2467 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2468 // optional bool use_area_energetic_reasoning_in_no_overlap_2d = 271 [default = false];
2469 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_area_energetic_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 82, 0,
2470 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2471 // optional int32 probing_num_combinations_limit = 272 [default = 20000];
2472 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.probing_num_combinations_limit_), _Internal::kHasBitsOffset + 238, 0,
2473 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2474 // optional double inprocessing_dtime_ratio = 273 [default = 0.2];
2475 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_dtime_ratio_), _Internal::kHasBitsOffset + 237, 0,
2476 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2477 // optional double inprocessing_probing_dtime = 274 [default = 1];
2478 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_probing_dtime_), _Internal::kHasBitsOffset + 243, 0,
2479 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2480 // optional double inprocessing_minimization_dtime = 275 [default = 1];
2481 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_minimization_dtime_), _Internal::kHasBitsOffset + 244, 0,
2482 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2483 // optional int32 max_pairs_pairwise_reasoning_in_no_overlap_2d = 276 [default = 1250];
2484 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 245, 0,
2485 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2486 // optional bool detect_linearized_product = 277 [default = false];
2487 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.detect_linearized_product_), _Internal::kHasBitsOffset + 84, 0,
2488 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2489 // optional bool mip_treat_high_magnitude_bounds_as_infinity = 278 [default = false];
2490 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_treat_high_magnitude_bounds_as_infinity_), _Internal::kHasBitsOffset + 85, 0,
2491 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2492 // optional bool add_rlt_cuts = 279 [default = true];
2493 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_rlt_cuts_), _Internal::kHasBitsOffset + 241, 0,
2494 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2495 // optional int32 max_lin_max_size_for_expansion = 280 [default = 0];
2496 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_lin_max_size_for_expansion_), _Internal::kHasBitsOffset + 83, 0,
2497 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2498 // optional double shared_tree_open_leaves_per_worker = 281 [default = 2];
2499 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_open_leaves_per_worker_), _Internal::kHasBitsOffset + 247, 0,
2500 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2501 // optional int32 shared_tree_worker_min_restarts_per_subtree = 282 [default = 1];
2502 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_worker_min_restarts_per_subtree_), _Internal::kHasBitsOffset + 246, 0,
2503 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2504 // optional bool use_lns = 283 [default = true];
2505 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_lns_), _Internal::kHasBitsOffset + 242, 0,
2506 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2507 // optional bool save_lp_basis_in_lb_tree_search = 284 [default = false];
2508 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.save_lp_basis_in_lb_tree_search_), _Internal::kHasBitsOffset + 86, 0,
2509 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2510 // optional bool share_glue_clauses = 285 [default = false];
2511 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_glue_clauses_), _Internal::kHasBitsOffset + 87, 0,
2512 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2513 // optional bool use_conservative_scale_overload_checker = 286 [default = false];
2514 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_conservative_scale_overload_checker_), _Internal::kHasBitsOffset + 88, 0,
2515 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2516 // optional bool encode_cumulative_as_reservoir = 287 [default = false];
2517 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.encode_cumulative_as_reservoir_), _Internal::kHasBitsOffset + 89, 0,
2518 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2519 // optional bool expand_reservoir_using_circuit = 288 [default = false];
2520 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.expand_reservoir_using_circuit_), _Internal::kHasBitsOffset + 90, 0,
2521 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2522 // optional int32 variables_shaving_level = 289 [default = -1];
2523 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.variables_shaving_level_), _Internal::kHasBitsOffset + 250, 0,
2524 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2525 // optional int64 shaving_search_threshold = 290 [default = 64];
2526 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shaving_search_threshold_), _Internal::kHasBitsOffset + 248, 0,
2527 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2528 // optional int32 max_num_deterministic_batches = 291 [default = 0];
2529 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_num_deterministic_batches_), _Internal::kHasBitsOffset + 92, 0,
2530 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2531 // optional double feasibility_jump_batch_dtime = 292 [default = 0.1];
2532 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_batch_dtime_), _Internal::kHasBitsOffset + 249, 0,
2533 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2534 // repeated string filter_subsolvers = 293;
2535 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.filter_subsolvers_), -1, 0,
2536 (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
2537 // optional int32 num_full_subsolvers = 294 [default = 0];
2538 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_full_subsolvers_), _Internal::kHasBitsOffset + 93, 0,
2539 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2540 // optional bool shared_tree_worker_enable_trail_sharing = 295 [default = true];
2541 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_worker_enable_trail_sharing_), _Internal::kHasBitsOffset + 252, 0,
2542 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2543 // optional int32 lb_relax_num_workers_threshold = 296 [default = 16];
2544 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lb_relax_num_workers_threshold_), _Internal::kHasBitsOffset + 251, 0,
2545 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2546 // optional bool inprocessing_minimization_use_conflict_analysis = 297 [default = true];
2547 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_minimization_use_conflict_analysis_), _Internal::kHasBitsOffset + 253, 0,
2548 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2549 // optional bool inprocessing_minimization_use_all_orderings = 298 [default = false];
2550 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_minimization_use_all_orderings_), _Internal::kHasBitsOffset + 91, 0,
2551 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2552 // optional bool use_try_edge_reasoning_in_no_overlap_2d = 299 [default = false];
2553 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_try_edge_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 94, 0,
2554 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2555 // optional bool minimize_shared_clauses = 300 [default = true];
2556 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.minimize_shared_clauses_), _Internal::kHasBitsOffset + 254, 0,
2557 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2558 // optional bool use_symmetry_in_lp = 301 [default = false];
2559 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_symmetry_in_lp_), _Internal::kHasBitsOffset + 95, 0,
2560 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2561 // optional double symmetry_detection_deterministic_time_limit = 302 [default = 1];
2562 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.symmetry_detection_deterministic_time_limit_), _Internal::kHasBitsOffset + 257, 0,
2563 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2564 // optional bool keep_symmetry_in_presolve = 303 [default = false];
2565 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.keep_symmetry_in_presolve_), _Internal::kHasBitsOffset + 96, 0,
2566 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2567 // optional bool shared_tree_worker_enable_phase_sharing = 304 [default = true];
2568 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_worker_enable_phase_sharing_), _Internal::kHasBitsOffset + 255, 0,
2569 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2570 // optional int32 shared_tree_balance_tolerance = 305 [default = 1];
2571 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_balance_tolerance_), _Internal::kHasBitsOffset + 256, 0,
2572 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2573 // optional bool debug_crash_if_presolve_breaks_hint = 306 [default = false];
2574 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.debug_crash_if_presolve_breaks_hint_), _Internal::kHasBitsOffset + 97, 0,
2575 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2576 // optional double lns_initial_difficulty = 307 [default = 0.5];
2577 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lns_initial_difficulty_), _Internal::kHasBitsOffset + 258, 0,
2578 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2579 // optional double lns_initial_deterministic_limit = 308 [default = 0.1];
2580 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lns_initial_deterministic_limit_), _Internal::kHasBitsOffset + 259, 0,
2581 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2582 // optional bool polarity_exploit_ls_hints = 309 [default = false];
2583 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.polarity_exploit_ls_hints_), _Internal::kHasBitsOffset + 100, 0,
2584 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2585 // optional bool remove_fixed_variables_early = 310 [default = true];
2586 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.remove_fixed_variables_early_), _Internal::kHasBitsOffset + 262, 0,
2587 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2588 // optional bool use_all_different_for_circuit = 311 [default = false];
2589 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_all_different_for_circuit_), _Internal::kHasBitsOffset + 101, 0,
2590 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2591 // optional int32 routing_cut_subset_size_for_binary_relation_bound = 312 [default = 0];
2592 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_subset_size_for_binary_relation_bound_), _Internal::kHasBitsOffset + 98, 0,
2593 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2594 // optional int32 routing_cut_subset_size_for_tight_binary_relation_bound = 313 [default = 0];
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)},
2597 // optional double routing_cut_dp_effort = 314 [default = 10000000];
2598 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_dp_effort_), _Internal::kHasBitsOffset + 260, 0,
2599 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2600 // optional int32 maximum_regions_to_split_in_disconnected_no_overlap_2d = 315 [default = 0];
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)},
2603 // optional int32 routing_cut_subset_size_for_exact_binary_relation_bound = 316 [default = 8];
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)},
2606 // optional int32 routing_cut_max_infeasible_path_length = 317 [default = 6];
2607 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_max_infeasible_path_length_), _Internal::kHasBitsOffset + 264, 0,
2608 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2609 // optional int32 routing_cut_subset_size_for_shortest_paths_bound = 318 [default = 8];
2610 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_subset_size_for_shortest_paths_bound_), _Internal::kHasBitsOffset + 265, 0,
2611 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2612 // optional int32 max_alldiff_domain_size = 320 [default = 256];
2613 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_alldiff_domain_size_), _Internal::kHasBitsOffset + 266, 0,
2614 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2615 // optional int32 no_overlap_2d_boolean_relations_limit = 321 [default = 10];
2616 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.no_overlap_2d_boolean_relations_limit_), _Internal::kHasBitsOffset + 267, 0,
2617 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2618 // optional double share_glue_clauses_dtime = 322 [default = 1];
2619 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_glue_clauses_dtime_), _Internal::kHasBitsOffset + 268, 0,
2620 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2621 // optional bool use_linear3_for_no_overlap_2d_precedences = 323 [default = true];
2622 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_linear3_for_no_overlap_2d_precedences_), _Internal::kHasBitsOffset + 263, 0,
2623 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2624 // optional bool filter_sat_postsolve_clauses = 324 [default = false];
2625 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.filter_sat_postsolve_clauses_), _Internal::kHasBitsOffset + 102, 0,
2626 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2627 }},
2628 {{
2629 {::_pbi::TcParser::GetTable<::operations_research::sat::SatParameters>()},
2630 {0, 2},
2631 {0, 2},
2632 {0, 3},
2633 {0, 4},
2634 {0, 2},
2635 {0, 2},
2636 {0, 2},
2637 {0, 1},
2638 {0, 4},
2639 {0, 8},
2640 {0, 3},
2641 {0, 4},
2642 }},
2643 {{
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"
2647 "name"
2648 "log_prefix"
2649 "subsolvers"
2650 "ignore_subsolvers"
2651 "extra_subsolvers"
2652 "filter_subsolvers"
2653 }},
2654};
2655PROTOBUF_NOINLINE void SatParameters::Clear() {
2656// @@protoc_insertion_point(message_clear_start:operations_research.sat.SatParameters)
2657 ::google::protobuf::internal::TSanWrite(&_impl_);
2658 ::uint32_t cached_has_bits = 0;
2659 // Prevent compiler warnings about cached_has_bits being unused
2660 (void) cached_has_bits;
2661
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());
2672 }
2673 if ((cached_has_bits & 0x00000002u) != 0) {
2674 _impl_.name_.ClearNonDefaultToEmpty();
2675 }
2676 if ((cached_has_bits & 0x00000004u) != 0) {
2677 _impl_.log_prefix_.ClearNonDefaultToEmpty();
2678 }
2679 }
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_));
2684 }
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_));
2689 }
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_));
2694 }
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_));
2699 }
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_));
2705 }
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_));
2710 }
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_));
2715 }
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_));
2720 }
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_));
2726 }
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_));
2731 }
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_));
2736 }
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_));
2741 }
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_));
2747 }
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;
2757 }
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;
2762 _impl_.random_seed_ = 1;
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;
2767 }
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;
2777 }
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;
2788 }
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;
2798 }
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;
2808 }
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;
2818 }
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;
2829 }
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;
2839 }
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;
2849 }
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;
2856 _impl_.fp_rounding_ = 2;
2857 _impl_.use_feasibility_pump_ = true;
2858 _impl_.mip_automatically_scale_variables_ = true;
2859 }
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;
2870 }
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;
2875 _impl_.cut_level_ = 1;
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;
2880 }
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;
2890 }
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;
2900 }
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;
2911 }
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;
2921 }
2922 if ((cached_has_bits & 0x00ff0000u) != 0) {
2923 _impl_.use_extended_probing_ = true;
2924 _impl_.add_rlt_cuts_ = true;
2925 _impl_.use_lns_ = 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;
2931 }
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;
2941 }
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;
2952 }
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;
2959 }
2960 _impl_._has_bits_.Clear();
2961 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2962}
2963
2964#if defined(PROTOBUF_CUSTOM_VTABLE)
2965::uint8_t* PROTOBUF_NONNULL SatParameters::_InternalSerialize(
2966 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
2967 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2968 const SatParameters& this_ = static_cast<const SatParameters&>(base);
2969#else // PROTOBUF_CUSTOM_VTABLE
2970::uint8_t* PROTOBUF_NONNULL SatParameters::_InternalSerialize(
2971 ::uint8_t* PROTOBUF_NONNULL target,
2972 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
2973 const SatParameters& this_ = *this;
2974#endif // PROTOBUF_CUSTOM_VTABLE
2975 // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SatParameters)
2976 ::uint32_t cached_has_bits = 0;
2977 (void)cached_has_bits;
2978
2979 cached_has_bits = this_._impl_._has_bits_[0];
2980 // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
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);
2985 }
2986
2987 cached_has_bits = this_._impl_._has_bits_[3];
2988 // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
2989 if ((cached_has_bits & 0x00000100u) != 0) {
2990 target = stream->EnsureSpace(target);
2991 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2992 2, this_._internal_initial_polarity(), target);
2993 }
2994
2995 // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
2996 if ((cached_has_bits & 0x00000200u) != 0) {
2997 target = stream->EnsureSpace(target);
2998 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2999 4, this_._internal_minimization_algorithm(), target);
3000 }
3001
3002 // optional int32 clause_cleanup_period = 11 [default = 10000];
3003 if ((cached_has_bits & 0x00002000u) != 0) {
3004 target =
3005 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<11>(
3006 stream, this_._internal_clause_cleanup_period(), target);
3007 }
3008
3009 cached_has_bits = this_._impl_._has_bits_[0];
3010 // optional int32 clause_cleanup_target = 13 [default = 0];
3011 if ((cached_has_bits & 0x00000010u) != 0) {
3012 target =
3013 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<13>(
3014 stream, this_._internal_clause_cleanup_target(), target);
3015 }
3016
3017 cached_has_bits = this_._impl_._has_bits_[3];
3018 // optional double variable_activity_decay = 15 [default = 0.8];
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);
3023 }
3024
3025 // optional double max_variable_activity_value = 16 [default = 1e+100];
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);
3030 }
3031
3032 // optional double clause_activity_decay = 17 [default = 0.999];
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);
3037 }
3038
3039 // optional double max_clause_activity_value = 18 [default = 1e+20];
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);
3044 }
3045
3046 // optional double glucose_max_decay = 22 [default = 0.95];
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);
3051 }
3052
3053 // optional double glucose_decay_increment = 23 [default = 0.01];
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);
3058 }
3059
3060 // optional int32 glucose_decay_increment_period = 24 [default = 5000];
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);
3065 }
3066
3067 // optional int32 restart_period = 30 [default = 50];
3068 if ((cached_has_bits & 0x00040000u) != 0) {
3069 target = stream->EnsureSpace(target);
3070 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3071 30, this_._internal_restart_period(), target);
3072 }
3073
3074 // optional int32 random_seed = 31 [default = 1];
3075 if ((cached_has_bits & 0x00080000u) != 0) {
3076 target = stream->EnsureSpace(target);
3077 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3078 31, this_._internal_random_seed(), target);
3079 }
3080
3081 cached_has_bits = this_._impl_._has_bits_[0];
3082 // optional double random_branches_ratio = 32 [default = 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);
3087 }
3088
3089 cached_has_bits = this_._impl_._has_bits_[3];
3090 // optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorithm = 34 [default = BINARY_MINIMIZATION_FIRST];
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);
3095 }
3096
3097 // optional bool use_optimization_hints = 35 [default = true];
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);
3102 }
3103
3104 // optional double max_time_in_seconds = 36 [default = inf];
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);
3109 }
3110
3111 // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
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);
3116 }
3117
3118 // optional int64 max_memory_in_mb = 40 [default = 10000];
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);
3123 }
3124
3125 cached_has_bits = this_._impl_._has_bits_[0];
3126 // optional bool log_search_progress = 41 [default = false];
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);
3131 }
3132
3133 // optional bool use_pb_resolution = 43 [default = false];
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);
3138 }
3139
3140 cached_has_bits = this_._impl_._has_bits_[3];
3141 // optional bool use_phase_saving = 44 [default = true];
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);
3146 }
3147
3148 cached_has_bits = this_._impl_._has_bits_[0];
3149 // optional double random_polarity_ratio = 45 [default = 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);
3154 }
3155
3156 cached_has_bits = this_._impl_._has_bits_[3];
3157 // optional int32 pb_cleanup_increment = 46 [default = 200];
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);
3162 }
3163
3164 // optional double pb_cleanup_ratio = 47 [default = 0.5];
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);
3169 }
3170
3171 cached_has_bits = this_._impl_._has_bits_[0];
3172 // optional bool minimize_reduction_during_pb_resolution = 48 [default = false];
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);
3177 }
3178
3179 cached_has_bits = this_._impl_._has_bits_[3];
3180 // optional bool count_assumption_levels_in_lbd = 49 [default = true];
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);
3185 }
3186
3187 // optional int32 core_minimization_level = 50 [default = 2];
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);
3192 }
3193
3194 cached_has_bits = this_._impl_._has_bits_[0];
3195 // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
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);
3200 }
3201
3202 // optional bool max_sat_reverse_assumption_order = 52 [default = false];
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);
3207 }
3208
3209 cached_has_bits = this_._impl_._has_bits_[3];
3210 // optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification = 53 [default = STRATIFICATION_DESCENT];
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);
3215 }
3216
3217 cached_has_bits = this_._impl_._has_bits_[4];
3218 // optional int32 presolve_bve_threshold = 54 [default = 500];
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);
3223 }
3224
3225 // optional int32 presolve_bve_clause_weight = 55 [default = 3];
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);
3230 }
3231
3232 cached_has_bits = this_._impl_._has_bits_[3];
3233 // optional bool subsumption_during_conflict_analysis = 56 [default = true];
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);
3238 }
3239
3240 cached_has_bits = this_._impl_._has_bits_[4];
3241 // optional double presolve_probing_deterministic_time_limit = 57 [default = 30];
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);
3246 }
3247
3248 cached_has_bits = this_._impl_._has_bits_[0];
3249 // optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [default = PROTECTION_NONE];
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);
3254 }
3255
3256 cached_has_bits = this_._impl_._has_bits_[4];
3257 // optional int32 clause_cleanup_lbd_bound = 59 [default = 5];
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);
3262 }
3263
3264 cached_has_bits = this_._impl_._has_bits_[0];
3265 // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
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);
3270 }
3271
3272 // repeated .operations_research.sat.SatParameters.RestartAlgorithm restart_algorithms = 61;
3273 for (int i = 0, n = this_._internal_restart_algorithms_size(); i < n; ++i) {
3274 target = stream->EnsureSpace(target);
3275 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3276 61, static_cast<::operations_research::sat::SatParameters_RestartAlgorithm>(this_._internal_restart_algorithms().Get(i)),
3277 target);
3278 }
3279
3280 cached_has_bits = this_._impl_._has_bits_[4];
3281 // optional int32 restart_running_window_size = 62 [default = 50];
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);
3286 }
3287
3288 // optional double restart_dl_average_ratio = 63 [default = 1];
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);
3293 }
3294
3295 cached_has_bits = this_._impl_._has_bits_[0];
3296 // optional bool use_blocking_restart = 64 [default = false];
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);
3301 }
3302
3303 cached_has_bits = this_._impl_._has_bits_[4];
3304 // optional int32 blocking_restart_window_size = 65 [default = 5000];
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);
3309 }
3310
3311 // optional double blocking_restart_multiplier = 66 [default = 1.4];
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);
3316 }
3317
3318 // optional double max_deterministic_time = 67 [default = inf];
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);
3323 }
3324
3325 cached_has_bits = this_._impl_._has_bits_[0];
3326 // optional int32 num_conflicts_before_strategy_changes = 68 [default = 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);
3331 }
3332
3333 // optional double strategy_change_increase_ratio = 69 [default = 0];
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);
3338 }
3339
3340 // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
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);
3346 }
3347
3348 cached_has_bits = this_._impl_._has_bits_[4];
3349 // optional double restart_lbd_average_ratio = 71 [default = 1];
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);
3354 }
3355
3356 // optional bool presolve_use_bva = 72 [default = true];
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);
3361 }
3362
3363 // optional int32 presolve_bva_threshold = 73 [default = 1];
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);
3368 }
3369
3370 // optional bool use_precedences_in_disjunctive_constraint = 74 [default = true];
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);
3375 }
3376
3377 cached_has_bits = this_._impl_._has_bits_[0];
3378 // optional bool use_erwa_heuristic = 75 [default = false];
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);
3383 }
3384
3385 // optional double initial_variables_activity = 76 [default = 0];
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);
3390 }
3391
3392 // optional bool also_bump_variables_in_conflict_reasons = 77 [default = false];
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);
3397 }
3398
3399 // optional bool use_overload_checker_in_cumulative = 78 [default = false];
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);
3404 }
3405
3406 // optional bool use_timetable_edge_finding_in_cumulative = 79 [default = false];
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);
3411 }
3412
3413 cached_has_bits = this_._impl_._has_bits_[4];
3414 // optional bool use_disjunctive_constraint_in_cumulative = 80 [default = true];
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);
3419 }
3420
3421 cached_has_bits = this_._impl_._has_bits_[0];
3422 // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
3423 if ((cached_has_bits & 0x00200000u) != 0) {
3424 target = stream->EnsureSpace(target);
3425 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3426 82, this_._internal_search_branching(), target);
3427 }
3428
3429 // optional bool optimize_with_core = 83 [default = false];
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);
3434 }
3435
3436 cached_has_bits = this_._impl_._has_bits_[4];
3437 // optional bool find_multiple_cores = 84 [default = true];
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);
3442 }
3443
3444 cached_has_bits = this_._impl_._has_bits_[0];
3445 // optional bool optimize_with_max_hs = 85 [default = false];
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);
3450 }
3451
3452 cached_has_bits = this_._impl_._has_bits_[4];
3453 // optional bool cp_model_presolve = 86 [default = true];
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);
3458 }
3459
3460 cached_has_bits = this_._impl_._has_bits_[0];
3461 // optional bool enumerate_all_solutions = 87 [default = false];
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);
3466 }
3467
3468 cached_has_bits = this_._impl_._has_bits_[4];
3469 // optional bool presolve_blocked_clause = 88 [default = true];
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);
3474 }
3475
3476 // optional bool cover_optimization = 89 [default = true];
3477 if ((cached_has_bits & 0x00020000u) != 0) {
3478 target = stream->EnsureSpace(target);
3479 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3480 89, this_._internal_cover_optimization(), target);
3481 }
3482
3483 // optional int32 linearization_level = 90 [default = 1];
3484 if ((cached_has_bits & 0x00080000u) != 0) {
3485 target = stream->EnsureSpace(target);
3486 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3487 90, this_._internal_linearization_level(), target);
3488 }
3489
3490 // optional int32 max_num_cuts = 91 [default = 10000];
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);
3495 }
3496
3497 cached_has_bits = this_._impl_._has_bits_[0];
3498 // optional bool only_add_cuts_at_level_zero = 92 [default = false];
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);
3503 }
3504
3505 cached_has_bits = this_._impl_._has_bits_[4];
3506 // optional bool cp_model_use_sat_presolve = 93 [default = true];
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);
3511 }
3512
3513 // optional bool exploit_integer_lp_solution = 94 [default = true];
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);
3518 }
3519
3520 // optional bool auto_detect_greater_than_at_least_one_of = 95 [default = true];
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);
3525 }
3526
3527 cached_has_bits = this_._impl_._has_bits_[0];
3528 // optional bool stop_after_first_solution = 98 [default = false];
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);
3533 }
3534
3535 cached_has_bits = this_._impl_._has_bits_[4];
3536 // optional int32 binary_search_num_conflicts = 99 [default = -1];
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);
3541 }
3542
3543 cached_has_bits = this_._impl_._has_bits_[0];
3544 // optional int32 num_search_workers = 100 [default = 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);
3549 }
3550
3551 // optional bool use_lns_only = 101 [default = false];
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);
3556 }
3557
3558 // optional bool randomize_search = 103 [default = false];
3559 if ((cached_has_bits & 0x20000000u) != 0) {
3560 target = stream->EnsureSpace(target);
3561 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3562 103, this_._internal_randomize_search(), target);
3563 }
3564
3565 // optional int64 search_random_variable_pool_size = 104 [default = 0];
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);
3570 }
3571
3572 cached_has_bits = this_._impl_._has_bits_[4];
3573 // optional bool instantiate_all_variables = 106 [default = true];
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);
3578 }
3579
3580 // optional int32 boolean_encoding_level = 107 [default = 1];
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);
3585 }
3586
3587 cached_has_bits = this_._impl_._has_bits_[1];
3588 // optional bool use_optional_variables = 108 [default = false];
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);
3593 }
3594
3595 cached_has_bits = this_._impl_._has_bits_[4];
3596 // optional bool use_exact_lp_reason = 109 [default = true];
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);
3601 }
3602
3603 // optional int32 cp_model_probing_level = 110 [default = 2];
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);
3608 }
3609
3610 // optional bool add_lp_constraints_lazily = 112 [default = true];
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);
3615 }
3616
3617 // optional bool share_objective_bounds = 113 [default = true];
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);
3622 }
3623
3624 // optional bool share_level_zero_bounds = 114 [default = true];
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);
3629 }
3630
3631 cached_has_bits = this_._impl_._has_bits_[5];
3632 // optional double min_orthogonality_for_lp_constraints = 115 [default = 0.05];
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);
3637 }
3638
3639 cached_has_bits = this_._impl_._has_bits_[4];
3640 // optional bool exploit_all_lp_solution = 116 [default = true];
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);
3645 }
3646
3647 cached_has_bits = this_._impl_._has_bits_[5];
3648 // optional bool add_cg_cuts = 117 [default = true];
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);
3653 }
3654
3655 // optional int32 max_integer_rounding_scaling = 119 [default = 600];
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);
3660 }
3661
3662 // optional bool add_mir_cuts = 120 [default = true];
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);
3667 }
3668
3669 // optional int32 max_consecutive_inactive_count = 121 [default = 100];
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);
3674 }
3675
3676 // optional int32 new_constraints_batch_size = 122 [default = 50];
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);
3681 }
3682
3683 // optional int64 pseudo_cost_reliability_threshold = 123 [default = 100];
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);
3688 }
3689
3690 // optional double mip_max_bound = 124 [default = 10000000];
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);
3695 }
3696
3697 // optional double mip_var_scaling = 125 [default = 1];
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);
3702 }
3703
3704 // optional double mip_wanted_precision = 126 [default = 1e-06];
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);
3709 }
3710
3711 // optional int32 mip_max_activity_exponent = 127 [default = 53];
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);
3716 }
3717
3718 // optional double mip_check_precision = 128 [default = 0.0001];
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);
3723 }
3724
3725 // optional bool use_rins_lns = 129 [default = true];
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);
3730 }
3731
3732 cached_has_bits = this_._impl_._has_bits_[1];
3733 // optional bool exploit_best_solution = 130 [default = false];
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);
3738 }
3739
3740 cached_has_bits = this_._impl_._has_bits_[5];
3741 // optional bool exploit_objective = 131 [default = true];
3742 if ((cached_has_bits & 0x00000100u) != 0) {
3743 target = stream->EnsureSpace(target);
3744 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3745 131, this_._internal_exploit_objective(), target);
3746 }
3747
3748 cached_has_bits = this_._impl_._has_bits_[1];
3749 // optional bool fill_tightened_domains_in_response = 132 [default = false];
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);
3754 }
3755
3756 // optional bool use_combined_no_overlap = 133 [default = false];
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);
3761 }
3762
3763 // optional int32 interleave_batch_size = 134 [default = 0];
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);
3768 }
3769
3770 cached_has_bits = this_._impl_._has_bits_[5];
3771 // optional bool catch_sigint_signal = 135 [default = true];
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);
3776 }
3777
3778 cached_has_bits = this_._impl_._has_bits_[1];
3779 // optional bool interleave_search = 136 [default = false];
3780 if ((cached_has_bits & 0x00000020u) != 0) {
3781 target = stream->EnsureSpace(target);
3782 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3783 136, this_._internal_interleave_search(), target);
3784 }
3785
3786 // optional bool diversify_lns_params = 137 [default = false];
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);
3791 }
3792
3793 cached_has_bits = this_._impl_._has_bits_[5];
3794 // optional int32 max_presolve_iterations = 138 [default = 3];
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);
3799 }
3800
3801 // optional bool use_implied_bounds = 144 [default = true];
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);
3806 }
3807
3808 // optional double merge_no_overlap_work_limit = 145 [default = 1000000000000];
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);
3813 }
3814
3815 // optional double merge_at_most_one_work_limit = 146 [default = 100000000];
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);
3820 }
3821
3822 // optional int32 presolve_substitution_level = 147 [default = 1];
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);
3827 }
3828
3829 // optional int32 max_all_diff_cut_size = 148 [default = 64];
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);
3834 }
3835
3836 cached_has_bits = this_._impl_._has_bits_[1];
3837 // optional bool stop_after_presolve = 149 [default = false];
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);
3842 }
3843
3844 // optional int32 debug_max_num_presolve_operations = 151 [default = 0];
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);
3849 }
3850
3851 cached_has_bits = this_._impl_._has_bits_[5];
3852 // optional bool add_lin_max_cuts = 152 [default = true];
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);
3857 }
3858
3859 // optional int32 hint_conflict_limit = 153 [default = 10];
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);
3864 }
3865
3866 // optional int32 max_cut_rounds_at_level_zero = 154 [default = 1];
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);
3871 }
3872
3873 // optional double cut_max_active_count_value = 155 [default = 10000000000];
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);
3878 }
3879
3880 // optional double cut_active_count_decay = 156 [default = 0.8];
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);
3885 }
3886
3887 // optional int32 cut_cleanup_target = 157 [default = 1000];
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);
3892 }
3893
3894 // optional double absolute_gap_limit = 159 [default = 0.0001];
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);
3899 }
3900
3901 cached_has_bits = this_._impl_._has_bits_[1];
3902 // optional double relative_gap_limit = 160 [default = 0];
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);
3907 }
3908
3909 // optional bool exploit_relaxation_solution = 161 [default = false];
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);
3914 }
3915
3916 // optional bool debug_postsolve_with_full_solver = 162 [default = false];
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);
3921 }
3922
3923 cached_has_bits = this_._impl_._has_bits_[5];
3924 // optional bool use_sat_inprocessing = 163 [default = true];
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);
3929 }
3930
3931 // optional bool use_feasibility_pump = 164 [default = true];
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);
3936 }
3937
3938 // optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGATION_ASSISTED];
3939 if ((cached_has_bits & 0x20000000u) != 0) {
3940 target = stream->EnsureSpace(target);
3941 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3942 165, this_._internal_fp_rounding(), target);
3943 }
3944
3945 // optional bool mip_automatically_scale_variables = 166 [default = true];
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);
3950 }
3951
3952 cached_has_bits = this_._impl_._has_bits_[1];
3953 // optional bool repair_hint = 167 [default = false];
3954 if ((cached_has_bits & 0x00001000u) != 0) {
3955 target = stream->EnsureSpace(target);
3956 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3957 167, this_._internal_repair_hint(), target);
3958 }
3959
3960 cached_has_bits = this_._impl_._has_bits_[6];
3961 // optional int32 polarity_rephase_increment = 168 [default = 1000];
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);
3966 }
3967
3968 // optional bool add_zero_half_cuts = 169 [default = true];
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);
3973 }
3974
3975 cached_has_bits = this_._impl_._has_bits_[1];
3976 // optional bool expand_alldiff_constraints = 170 [default = false];
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);
3981 }
3982
3983 cached_has_bits = this_._impl_._has_bits_[0];
3984 // optional string name = 171 [default = ""];
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);
3990 }
3991
3992 cached_has_bits = this_._impl_._has_bits_[6];
3993 // optional bool add_clique_cuts = 172 [default = true];
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);
3998 }
3999
4000 cached_has_bits = this_._impl_._has_bits_[1];
4001 // optional bool keep_all_feasible_solutions_in_presolve = 173 [default = false];
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);
4006 }
4007
4008 // optional bool presolve_extract_integer_enforcement = 174 [default = false];
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);
4013 }
4014
4015 // optional bool polish_lp_solution = 175 [default = false];
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);
4020 }
4021
4022 // optional bool use_probing_search = 176 [default = false];
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);
4027 }
4028
4029 cached_has_bits = this_._impl_._has_bits_[6];
4030 // optional bool convert_intervals = 177 [default = true];
4031 if ((cached_has_bits & 0x00000010u) != 0) {
4032 target = stream->EnsureSpace(target);
4033 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4034 177, this_._internal_convert_intervals(), target);
4035 }
4036
4037 cached_has_bits = this_._impl_._has_bits_[1];
4038 // optional bool permute_variable_randomly = 178 [default = false];
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);
4043 }
4044
4045 // optional bool permute_presolve_constraint_order = 179 [default = false];
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);
4050 }
4051
4052 // optional bool use_absl_random = 180 [default = false];
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);
4057 }
4058
4059 // optional bool disable_constraint_expansion = 181 [default = false];
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);
4064 }
4065
4066 cached_has_bits = this_._impl_._has_bits_[6];
4067 // optional bool expand_reservoir_constraints = 182 [default = true];
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);
4072 }
4073
4074 // optional int32 symmetry_level = 183 [default = 2];
4075 if ((cached_has_bits & 0x00000008u) != 0) {
4076 target = stream->EnsureSpace(target);
4077 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4078 183, this_._internal_symmetry_level(), target);
4079 }
4080
4081 cached_has_bits = this_._impl_._has_bits_[0];
4082 // optional string log_prefix = 185 [default = ""];
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);
4088 }
4089
4090 cached_has_bits = this_._impl_._has_bits_[6];
4091 // optional bool log_to_stdout = 186 [default = true];
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);
4096 }
4097
4098 cached_has_bits = this_._impl_._has_bits_[1];
4099 // optional bool log_to_response = 187 [default = false];
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);
4104 }
4105
4106 // optional bool optimize_with_lb_tree_search = 188 [default = false];
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);
4111 }
4112
4113 // optional bool log_subsolver_statistics = 189 [default = false];
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);
4118 }
4119
4120 cached_has_bits = this_._impl_._has_bits_[6];
4121 // optional double clause_cleanup_ratio = 190 [default = 0.5];
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);
4126 }
4127
4128 // optional int32 max_domain_size_when_encoding_eq_neq_constraints = 191 [default = 16];
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);
4133 }
4134
4135 cached_has_bits = this_._impl_._has_bits_[1];
4136 // optional bool fix_variables_to_their_hinted_value = 192 [default = false];
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);
4141 }
4142
4143 cached_has_bits = this_._impl_._has_bits_[6];
4144 // optional int32 solution_pool_size = 193 [default = 3];
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);
4149 }
4150
4151 cached_has_bits = this_._impl_._has_bits_[1];
4152 // optional bool fill_additional_solutions_in_response = 194 [default = false];
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);
4157 }
4158
4159 // optional bool debug_crash_on_bad_hint = 195 [default = false];
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);
4164 }
4165
4166 cached_has_bits = this_._impl_._has_bits_[6];
4167 // optional int32 cut_level = 196 [default = 1];
4168 if ((cached_has_bits & 0x00000800u) != 0) {
4169 target = stream->EnsureSpace(target);
4170 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4171 196, this_._internal_cut_level(), target);
4172 }
4173
4174 cached_has_bits = this_._impl_._has_bits_[1];
4175 // optional bool add_objective_cut = 197 [default = false];
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);
4180 }
4181
4182 cached_has_bits = this_._impl_._has_bits_[6];
4183 // optional bool mip_compute_true_objective_bound = 198 [default = true];
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);
4188 }
4189
4190 // optional double mip_max_valid_magnitude = 199 [default = 1e+20];
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);
4195 }
4196
4197 cached_has_bits = this_._impl_._has_bits_[1];
4198 // optional bool use_timetabling_in_no_overlap_2d = 200 [default = false];
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);
4203 }
4204
4205 cached_has_bits = this_._impl_._has_bits_[6];
4206 // optional int64 presolve_inclusion_work_limit = 201 [default = 100000000];
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);
4211 }
4212
4213 // optional bool ignore_names = 202 [default = true];
4214 if ((cached_has_bits & 0x00010000u) != 0) {
4215 target = stream->EnsureSpace(target);
4216 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4217 202, this_._internal_ignore_names(), target);
4218 }
4219
4220 // optional bool share_binary_clauses = 203 [default = true];
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);
4225 }
4226
4227 // optional double shaving_deterministic_time_in_probing_search = 204 [default = 0.001];
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);
4232 }
4233
4234 // optional double shaving_search_deterministic_time = 205 [default = 0.1];
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);
4239 }
4240
4241 cached_has_bits = this_._impl_._has_bits_[1];
4242 // optional int32 num_workers = 206 [default = 0];
4243 if ((cached_has_bits & 0x80000000u) != 0) {
4244 target = stream->EnsureSpace(target);
4245 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4246 206, this_._internal_num_workers(), target);
4247 }
4248
4249 // repeated string subsolvers = 207;
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);
4255 }
4256
4257 // repeated string ignore_subsolvers = 209;
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);
4263 }
4264
4265 // repeated .operations_research.sat.SatParameters subsolver_params = 210;
4266 for (unsigned i = 0, n = static_cast<unsigned>(
4267 this_._internal_subsolver_params_size());
4268 i < n; i++) {
4269 const auto& repfield = this_._internal_subsolver_params().Get(i);
4270 target =
4271 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
4272 210, repfield, repfield.GetCachedSize(),
4273 target, stream);
4274 }
4275
4276 // optional bool use_energetic_reasoning_in_no_overlap_2d = 213 [default = false];
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);
4281 }
4282
4283 cached_has_bits = this_._impl_._has_bits_[6];
4284 // optional bool use_dual_scheduling_heuristics = 214 [default = true];
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);
4289 }
4290
4291 cached_has_bits = this_._impl_._has_bits_[2];
4292 // optional bool use_hard_precedences_in_cumulative = 215 [default = false];
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);
4297 }
4298
4299 // optional bool detect_table_with_cost = 216 [default = false];
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);
4304 }
4305
4306 cached_has_bits = this_._impl_._has_bits_[6];
4307 // optional int32 table_compression_level = 217 [default = 2];
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);
4312 }
4313
4314 // repeated string extra_subsolvers = 219;
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);
4320 }
4321
4322 cached_has_bits = this_._impl_._has_bits_[2];
4323 // optional bool exploit_all_precedences = 220 [default = false];
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);
4328 }
4329
4330 cached_has_bits = this_._impl_._has_bits_[6];
4331 // optional double propagation_loop_detection_factor = 221 [default = 10];
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);
4336 }
4337
4338 cached_has_bits = this_._impl_._has_bits_[2];
4339 // optional bool only_solve_ip = 222 [default = false];
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);
4344 }
4345
4346 // optional bool encode_complex_linear_constraint_with_integer = 223 [default = false];
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);
4351 }
4352
4353 cached_has_bits = this_._impl_._has_bits_[6];
4354 // optional bool new_linear_propagation = 224 [default = true];
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);
4359 }
4360
4361 cached_has_bits = this_._impl_._has_bits_[2];
4362 // optional bool mip_scale_large_domain = 225 [default = false];
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);
4367 }
4368
4369 cached_has_bits = this_._impl_._has_bits_[6];
4370 // optional double probing_deterministic_time_limit = 226 [default = 1];
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);
4375 }
4376
4377 // optional int32 root_lp_iterations = 227 [default = 2000];
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);
4382 }
4383
4384 cached_has_bits = this_._impl_._has_bits_[2];
4385 // optional bool use_objective_lb_search = 228 [default = false];
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);
4390 }
4391
4392 cached_has_bits = this_._impl_._has_bits_[6];
4393 // optional int32 max_size_to_create_precedence_literals_in_disjunctive = 229 [default = 60];
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);
4398 }
4399
4400 cached_has_bits = this_._impl_._has_bits_[2];
4401 // optional bool use_strong_propagation_in_disjunctive = 230 [default = false];
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);
4406 }
4407
4408 cached_has_bits = this_._impl_._has_bits_[6];
4409 // optional double mip_drop_tolerance = 232 [default = 1e-16];
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);
4414 }
4415
4416 // optional bool infer_all_diffs = 233 [default = true];
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);
4421 }
4422
4423 // optional bool find_big_linear_overlap = 234 [default = true];
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);
4428 }
4429
4430 cached_has_bits = this_._impl_._has_bits_[2];
4431 // optional int32 shared_tree_num_workers = 235 [default = 0];
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);
4436 }
4437
4438 // optional bool use_shared_tree_search = 236 [default = false];
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);
4443 }
4444
4445 cached_has_bits = this_._impl_._has_bits_[6];
4446 // optional int32 shared_tree_max_nodes_per_worker = 238 [default = 10000];
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);
4451 }
4452
4453 cached_has_bits = this_._impl_._has_bits_[2];
4454 // optional .operations_research.sat.SatParameters.SharedTreeSplitStrategy shared_tree_split_strategy = 239 [default = SPLIT_STRATEGY_AUTO];
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);
4459 }
4460
4461 // optional bool use_ls_only = 240 [default = false];
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);
4466 }
4467
4468 cached_has_bits = this_._impl_._has_bits_[6];
4469 // optional double feasibility_jump_decay = 242 [default = 0.95];
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);
4474 }
4475
4476 cached_has_bits = this_._impl_._has_bits_[2];
4477 // optional int32 num_violation_ls = 244 [default = 0];
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);
4482 }
4483
4484 cached_has_bits = this_._impl_._has_bits_[7];
4485 // optional double feasibility_jump_var_randomization_probability = 247 [default = 0.05];
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);
4490 }
4491
4492 // optional double feasibility_jump_var_perburbation_range_ratio = 248 [default = 0.2];
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);
4497 }
4498
4499 // optional int32 violation_ls_perturbation_period = 249 [default = 100];
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);
4504 }
4505
4506 cached_has_bits = this_._impl_._has_bits_[6];
4507 // optional bool feasibility_jump_enable_restarts = 250 [default = true];
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);
4512 }
4513
4514 cached_has_bits = this_._impl_._has_bits_[2];
4515 // optional bool stop_after_root_propagation = 252 [default = false];
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);
4520 }
4521
4522 // optional bool use_objective_shaving_search = 253 [default = false];
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);
4527 }
4528
4529 cached_has_bits = this_._impl_._has_bits_[6];
4530 // optional bool use_lb_relax_lns = 255 [default = true];
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);
4535 }
4536
4537 cached_has_bits = this_._impl_._has_bits_[7];
4538 // optional int32 linear_split_size = 256 [default = 100];
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);
4543 }
4544
4545 // optional int32 feasibility_jump_linearization_level = 257 [default = 2];
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);
4550 }
4551
4552 // optional int32 feasibility_jump_restart_factor = 258 [default = 1];
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);
4557 }
4558
4559 // optional double violation_ls_compound_move_probability = 259 [default = 0.5];
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);
4564 }
4565
4566 // optional int32 max_num_intervals_for_timetable_edge_finding = 260 [default = 100];
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);
4571 }
4572
4573 // optional int32 mip_presolve_level = 261 [default = 2];
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);
4578 }
4579
4580 cached_has_bits = this_._impl_._has_bits_[2];
4581 // optional bool push_all_tasks_toward_start = 262 [default = false];
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);
4586 }
4587
4588 // optional bool use_dynamic_precedence_in_disjunctive = 263 [default = false];
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);
4593 }
4594
4595 cached_has_bits = this_._impl_._has_bits_[7];
4596 // optional int32 feasibility_jump_max_expanded_constraint_size = 264 [default = 500];
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);
4601 }
4602
4603 // optional bool use_feasibility_jump = 265 [default = true];
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);
4608 }
4609
4610 // optional double lp_primal_tolerance = 266 [default = 1e-07];
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);
4615 }
4616
4617 // optional double lp_dual_tolerance = 267 [default = 1e-07];
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);
4622 }
4623
4624 cached_has_bits = this_._impl_._has_bits_[2];
4625 // optional bool use_dynamic_precedence_in_cumulative = 268 [default = false];
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);
4630 }
4631
4632 cached_has_bits = this_._impl_._has_bits_[7];
4633 // optional bool use_extended_probing = 269 [default = true];
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);
4638 }
4639
4640 // optional int32 at_most_one_max_expansion_size = 270 [default = 3];
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);
4645 }
4646
4647 cached_has_bits = this_._impl_._has_bits_[2];
4648 // optional bool use_area_energetic_reasoning_in_no_overlap_2d = 271 [default = false];
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);
4653 }
4654
4655 cached_has_bits = this_._impl_._has_bits_[7];
4656 // optional int32 probing_num_combinations_limit = 272 [default = 20000];
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);
4661 }
4662
4663 // optional double inprocessing_dtime_ratio = 273 [default = 0.2];
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);
4668 }
4669
4670 // optional double inprocessing_probing_dtime = 274 [default = 1];
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);
4675 }
4676
4677 // optional double inprocessing_minimization_dtime = 275 [default = 1];
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);
4682 }
4683
4684 // optional int32 max_pairs_pairwise_reasoning_in_no_overlap_2d = 276 [default = 1250];
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);
4689 }
4690
4691 cached_has_bits = this_._impl_._has_bits_[2];
4692 // optional bool detect_linearized_product = 277 [default = false];
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);
4697 }
4698
4699 // optional bool mip_treat_high_magnitude_bounds_as_infinity = 278 [default = false];
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);
4704 }
4705
4706 cached_has_bits = this_._impl_._has_bits_[7];
4707 // optional bool add_rlt_cuts = 279 [default = true];
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);
4712 }
4713
4714 cached_has_bits = this_._impl_._has_bits_[2];
4715 // optional int32 max_lin_max_size_for_expansion = 280 [default = 0];
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);
4720 }
4721
4722 cached_has_bits = this_._impl_._has_bits_[7];
4723 // optional double shared_tree_open_leaves_per_worker = 281 [default = 2];
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);
4728 }
4729
4730 // optional int32 shared_tree_worker_min_restarts_per_subtree = 282 [default = 1];
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);
4735 }
4736
4737 // optional bool use_lns = 283 [default = true];
4738 if ((cached_has_bits & 0x00040000u) != 0) {
4739 target = stream->EnsureSpace(target);
4740 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4741 283, this_._internal_use_lns(), target);
4742 }
4743
4744 cached_has_bits = this_._impl_._has_bits_[2];
4745 // optional bool save_lp_basis_in_lb_tree_search = 284 [default = false];
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);
4750 }
4751
4752 // optional bool share_glue_clauses = 285 [default = false];
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);
4757 }
4758
4759 // optional bool use_conservative_scale_overload_checker = 286 [default = false];
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);
4764 }
4765
4766 // optional bool encode_cumulative_as_reservoir = 287 [default = false];
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);
4771 }
4772
4773 // optional bool expand_reservoir_using_circuit = 288 [default = false];
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);
4778 }
4779
4780 cached_has_bits = this_._impl_._has_bits_[7];
4781 // optional int32 variables_shaving_level = 289 [default = -1];
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);
4786 }
4787
4788 // optional int64 shaving_search_threshold = 290 [default = 64];
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);
4793 }
4794
4795 cached_has_bits = this_._impl_._has_bits_[2];
4796 // optional int32 max_num_deterministic_batches = 291 [default = 0];
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);
4801 }
4802
4803 cached_has_bits = this_._impl_._has_bits_[7];
4804 // optional double feasibility_jump_batch_dtime = 292 [default = 0.1];
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);
4809 }
4810
4811 // repeated string filter_subsolvers = 293;
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);
4817 }
4818
4819 cached_has_bits = this_._impl_._has_bits_[2];
4820 // optional int32 num_full_subsolvers = 294 [default = 0];
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);
4825 }
4826
4827 cached_has_bits = this_._impl_._has_bits_[7];
4828 // optional bool shared_tree_worker_enable_trail_sharing = 295 [default = true];
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);
4833 }
4834
4835 // optional int32 lb_relax_num_workers_threshold = 296 [default = 16];
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);
4840 }
4841
4842 // optional bool inprocessing_minimization_use_conflict_analysis = 297 [default = true];
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);
4847 }
4848
4849 cached_has_bits = this_._impl_._has_bits_[2];
4850 // optional bool inprocessing_minimization_use_all_orderings = 298 [default = false];
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);
4855 }
4856
4857 // optional bool use_try_edge_reasoning_in_no_overlap_2d = 299 [default = false];
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);
4862 }
4863
4864 cached_has_bits = this_._impl_._has_bits_[7];
4865 // optional bool minimize_shared_clauses = 300 [default = true];
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);
4870 }
4871
4872 cached_has_bits = this_._impl_._has_bits_[2];
4873 // optional bool use_symmetry_in_lp = 301 [default = false];
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);
4878 }
4879
4880 cached_has_bits = this_._impl_._has_bits_[8];
4881 // optional double symmetry_detection_deterministic_time_limit = 302 [default = 1];
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);
4886 }
4887
4888 cached_has_bits = this_._impl_._has_bits_[3];
4889 // optional bool keep_symmetry_in_presolve = 303 [default = false];
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);
4894 }
4895
4896 cached_has_bits = this_._impl_._has_bits_[7];
4897 // optional bool shared_tree_worker_enable_phase_sharing = 304 [default = true];
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);
4902 }
4903
4904 cached_has_bits = this_._impl_._has_bits_[8];
4905 // optional int32 shared_tree_balance_tolerance = 305 [default = 1];
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);
4910 }
4911
4912 cached_has_bits = this_._impl_._has_bits_[3];
4913 // optional bool debug_crash_if_presolve_breaks_hint = 306 [default = false];
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);
4918 }
4919
4920 cached_has_bits = this_._impl_._has_bits_[8];
4921 // optional double lns_initial_difficulty = 307 [default = 0.5];
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);
4926 }
4927
4928 // optional double lns_initial_deterministic_limit = 308 [default = 0.1];
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);
4933 }
4934
4935 cached_has_bits = this_._impl_._has_bits_[3];
4936 // optional bool polarity_exploit_ls_hints = 309 [default = false];
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);
4941 }
4942
4943 cached_has_bits = this_._impl_._has_bits_[8];
4944 // optional bool remove_fixed_variables_early = 310 [default = true];
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);
4949 }
4950
4951 cached_has_bits = this_._impl_._has_bits_[3];
4952 // optional bool use_all_different_for_circuit = 311 [default = false];
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);
4957 }
4958
4959 // optional int32 routing_cut_subset_size_for_binary_relation_bound = 312 [default = 0];
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);
4964 }
4965
4966 // optional int32 routing_cut_subset_size_for_tight_binary_relation_bound = 313 [default = 0];
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);
4971 }
4972
4973 cached_has_bits = this_._impl_._has_bits_[8];
4974 // optional double routing_cut_dp_effort = 314 [default = 10000000];
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);
4979 }
4980
4981 cached_has_bits = this_._impl_._has_bits_[3];
4982 // optional int32 maximum_regions_to_split_in_disconnected_no_overlap_2d = 315 [default = 0];
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);
4987 }
4988
4989 cached_has_bits = this_._impl_._has_bits_[8];
4990 // optional int32 routing_cut_subset_size_for_exact_binary_relation_bound = 316 [default = 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);
4995 }
4996
4997 // optional int32 routing_cut_max_infeasible_path_length = 317 [default = 6];
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);
5002 }
5003
5004 // optional int32 routing_cut_subset_size_for_shortest_paths_bound = 318 [default = 8];
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);
5009 }
5010
5011 // optional int32 max_alldiff_domain_size = 320 [default = 256];
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);
5016 }
5017
5018 // optional int32 no_overlap_2d_boolean_relations_limit = 321 [default = 10];
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);
5023 }
5024
5025 // optional double share_glue_clauses_dtime = 322 [default = 1];
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);
5030 }
5031
5032 // optional bool use_linear3_for_no_overlap_2d_precedences = 323 [default = true];
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);
5037 }
5038
5039 cached_has_bits = this_._impl_._has_bits_[3];
5040 // optional bool filter_sat_postsolve_clauses = 324 [default = false];
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);
5045 }
5046
5047 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
5048 target =
5049 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
5050 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
5051 }
5052 // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SatParameters)
5053 return target;
5054}
5055
5056#if defined(PROTOBUF_CUSTOM_VTABLE)
5058 const SatParameters& this_ = static_cast<const SatParameters&>(base);
5059#else // PROTOBUF_CUSTOM_VTABLE
5060::size_t SatParameters::ByteSizeLong() const {
5061 const SatParameters& this_ = *this;
5062#endif // PROTOBUF_CUSTOM_VTABLE
5063 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SatParameters)
5064 ::size_t total_size = 0;
5065
5066 ::uint32_t cached_has_bits = 0;
5067 // Prevent compiler warnings about cached_has_bits being unused
5068 (void)cached_has_bits;
5069
5070 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
5071 {
5072 // repeated .operations_research.sat.SatParameters.RestartAlgorithm restart_algorithms = 61;
5073 {
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;
5079 }
5080 // repeated string subsolvers = 207;
5081 {
5082 total_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));
5087 }
5088 }
5089 // repeated string ignore_subsolvers = 209;
5090 {
5091 total_size +=
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));
5096 }
5097 }
5098 // repeated .operations_research.sat.SatParameters subsolver_params = 210;
5099 {
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);
5103 }
5104 }
5105 // repeated string extra_subsolvers = 219;
5106 {
5107 total_size +=
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));
5112 }
5113 }
5114 // repeated string filter_subsolvers = 293;
5115 {
5116 total_size +=
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));
5121 }
5122 }
5123 }
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) {
5128 // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
5129 if ((cached_has_bits & 0x00000001u) != 0) {
5130 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
5131 this_._internal_default_restart_algorithms());
5132 }
5133 // optional string name = 171 [default = ""];
5134 if ((cached_has_bits & 0x00000002u) != 0) {
5135 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
5136 this_._internal_name());
5137 }
5138 // optional string log_prefix = 185 [default = ""];
5139 if ((cached_has_bits & 0x00000004u) != 0) {
5140 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
5141 this_._internal_log_prefix());
5142 }
5143 // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
5144 if ((cached_has_bits & 0x00000008u) != 0) {
5145 total_size += 1 +
5146 ::_pbi::WireFormatLite::EnumSize(this_._internal_preferred_variable_order());
5147 }
5148 // optional int32 clause_cleanup_target = 13 [default = 0];
5149 if ((cached_has_bits & 0x00000010u) != 0) {
5150 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
5151 this_._internal_clause_cleanup_target());
5152 }
5153 }
5154 if ((cached_has_bits & 0x0000b800u) != 0) {
5155 // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
5156 if ((cached_has_bits & 0x00000800u) != 0) {
5157 total_size += 2 +
5158 ::_pbi::WireFormatLite::EnumSize(this_._internal_max_sat_assumption_order());
5159 }
5160 // optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [default = PROTECTION_NONE];
5161 if ((cached_has_bits & 0x00001000u) != 0) {
5162 total_size += 2 +
5163 ::_pbi::WireFormatLite::EnumSize(this_._internal_clause_cleanup_protection());
5164 }
5165 // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
5166 if ((cached_has_bits & 0x00002000u) != 0) {
5167 total_size += 2 +
5168 ::_pbi::WireFormatLite::EnumSize(this_._internal_clause_cleanup_ordering());
5169 }
5170 // optional int32 num_conflicts_before_strategy_changes = 68 [default = 0];
5171 if ((cached_has_bits & 0x00008000u) != 0) {
5172 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5173 this_._internal_num_conflicts_before_strategy_changes());
5174 }
5175 }
5176 {
5177 // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
5178 if ((cached_has_bits & 0x00200000u) != 0) {
5179 total_size += 2 +
5180 ::_pbi::WireFormatLite::EnumSize(this_._internal_search_branching());
5181 }
5182 }
5183 if ((cached_has_bits & 0xc0000000u) != 0) {
5184 // optional int32 num_search_workers = 100 [default = 0];
5185 if ((cached_has_bits & 0x40000000u) != 0) {
5186 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5187 this_._internal_num_search_workers());
5188 }
5189 // optional int64 search_random_variable_pool_size = 104 [default = 0];
5190 if ((cached_has_bits & 0x80000000u) != 0) {
5191 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5192 this_._internal_search_random_variable_pool_size());
5193 }
5194 }
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;
5198 {
5199 // optional int32 interleave_batch_size = 134 [default = 0];
5200 if ((cached_has_bits & 0x00000010u) != 0) {
5201 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5202 this_._internal_interleave_batch_size());
5203 }
5204 }
5205 {
5206 // optional int32 debug_max_num_presolve_operations = 151 [default = 0];
5207 if ((cached_has_bits & 0x00000200u) != 0) {
5208 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5209 this_._internal_debug_max_num_presolve_operations());
5210 }
5211 }
5212 {
5213 // optional int32 num_workers = 206 [default = 0];
5214 if ((cached_has_bits & 0x80000000u) != 0) {
5215 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5216 this_._internal_num_workers());
5217 }
5218 }
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) {
5222 // optional int32 shared_tree_num_workers = 235 [default = 0];
5223 if ((cached_has_bits & 0x00000100u) != 0) {
5224 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5225 this_._internal_shared_tree_num_workers());
5226 }
5227 // optional .operations_research.sat.SatParameters.SharedTreeSplitStrategy shared_tree_split_strategy = 239 [default = SPLIT_STRATEGY_AUTO];
5228 if ((cached_has_bits & 0x00000200u) != 0) {
5229 total_size += 2 +
5230 ::_pbi::WireFormatLite::EnumSize(this_._internal_shared_tree_split_strategy());
5231 }
5232 // optional int32 num_violation_ls = 244 [default = 0];
5233 if ((cached_has_bits & 0x00000400u) != 0) {
5234 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5235 this_._internal_num_violation_ls());
5236 }
5237 }
5238 {
5239 // optional int32 max_lin_max_size_for_expansion = 280 [default = 0];
5240 if ((cached_has_bits & 0x00080000u) != 0) {
5241 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5242 this_._internal_max_lin_max_size_for_expansion());
5243 }
5244 }
5245 if ((cached_has_bits & 0x30000000u) != 0) {
5246 // optional int32 max_num_deterministic_batches = 291 [default = 0];
5247 if ((cached_has_bits & 0x10000000u) != 0) {
5248 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5249 this_._internal_max_num_deterministic_batches());
5250 }
5251 // optional int32 num_full_subsolvers = 294 [default = 0];
5252 if ((cached_has_bits & 0x20000000u) != 0) {
5253 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5254 this_._internal_num_full_subsolvers());
5255 }
5256 }
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) {
5262 // optional int32 routing_cut_subset_size_for_binary_relation_bound = 312 [default = 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());
5266 }
5267 // optional int32 routing_cut_subset_size_for_tight_binary_relation_bound = 313 [default = 0];
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());
5271 }
5272 // optional int32 maximum_regions_to_split_in_disconnected_no_overlap_2d = 315 [default = 0];
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());
5276 }
5277 }
5278 if ((cached_has_bits & 0x00006300u) != 0) {
5279 // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
5280 if ((cached_has_bits & 0x00000100u) != 0) {
5281 total_size += 1 +
5282 ::_pbi::WireFormatLite::EnumSize(this_._internal_initial_polarity());
5283 }
5284 // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
5285 if ((cached_has_bits & 0x00000200u) != 0) {
5286 total_size += 1 +
5287 ::_pbi::WireFormatLite::EnumSize(this_._internal_minimization_algorithm());
5288 }
5289 // optional int32 clause_cleanup_period = 11 [default = 10000];
5290 if ((cached_has_bits & 0x00002000u) != 0) {
5291 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
5292 this_._internal_clause_cleanup_period());
5293 }
5294 // optional int32 glucose_decay_increment_period = 24 [default = 5000];
5295 if ((cached_has_bits & 0x00004000u) != 0) {
5296 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5297 this_._internal_glucose_decay_increment_period());
5298 }
5299 }
5300 if ((cached_has_bits & 0x00ec0000u) != 0) {
5301 // optional int32 restart_period = 30 [default = 50];
5302 if ((cached_has_bits & 0x00040000u) != 0) {
5303 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5304 this_._internal_restart_period());
5305 }
5306 // optional int32 random_seed = 31 [default = 1];
5307 if ((cached_has_bits & 0x00080000u) != 0) {
5308 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5309 this_._internal_random_seed());
5310 }
5311 // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
5312 if ((cached_has_bits & 0x00200000u) != 0) {
5313 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5314 this_._internal_max_number_of_conflicts());
5315 }
5316 // optional int64 max_memory_in_mb = 40 [default = 10000];
5317 if ((cached_has_bits & 0x00400000u) != 0) {
5318 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5319 this_._internal_max_memory_in_mb());
5320 }
5321 // optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorithm = 34 [default = BINARY_MINIMIZATION_FIRST];
5322 if ((cached_has_bits & 0x00800000u) != 0) {
5323 total_size += 2 +
5324 ::_pbi::WireFormatLite::EnumSize(this_._internal_binary_minimization_algorithm());
5325 }
5326 }
5327 if ((cached_has_bits & 0xa1000000u) != 0) {
5328 // optional int32 pb_cleanup_increment = 46 [default = 200];
5329 if ((cached_has_bits & 0x01000000u) != 0) {
5330 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5331 this_._internal_pb_cleanup_increment());
5332 }
5333 // optional int32 core_minimization_level = 50 [default = 2];
5334 if ((cached_has_bits & 0x20000000u) != 0) {
5335 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5336 this_._internal_core_minimization_level());
5337 }
5338 // optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification = 53 [default = STRATIFICATION_DESCENT];
5339 if ((cached_has_bits & 0x80000000u) != 0) {
5340 total_size += 2 +
5341 ::_pbi::WireFormatLite::EnumSize(this_._internal_max_sat_stratification());
5342 }
5343 }
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) {
5348 // optional int32 presolve_bve_threshold = 54 [default = 500];
5349 if ((cached_has_bits & 0x00000001u) != 0) {
5350 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5351 this_._internal_presolve_bve_threshold());
5352 }
5353 // optional int32 presolve_bve_clause_weight = 55 [default = 3];
5354 if ((cached_has_bits & 0x00000004u) != 0) {
5355 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5356 this_._internal_presolve_bve_clause_weight());
5357 }
5358 // optional int32 clause_cleanup_lbd_bound = 59 [default = 5];
5359 if ((cached_has_bits & 0x00000008u) != 0) {
5360 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5361 this_._internal_clause_cleanup_lbd_bound());
5362 }
5363 // optional int32 restart_running_window_size = 62 [default = 50];
5364 if ((cached_has_bits & 0x00000020u) != 0) {
5365 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5366 this_._internal_restart_running_window_size());
5367 }
5368 // optional int32 blocking_restart_window_size = 65 [default = 5000];
5369 if ((cached_has_bits & 0x00000040u) != 0) {
5370 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5371 this_._internal_blocking_restart_window_size());
5372 }
5373 }
5374 {
5375 // optional int32 presolve_bva_threshold = 73 [default = 1];
5376 if ((cached_has_bits & 0x00000400u) != 0) {
5377 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5378 this_._internal_presolve_bva_threshold());
5379 }
5380 }
5381 if ((cached_has_bits & 0x00380000u) != 0) {
5382 // optional int32 linearization_level = 90 [default = 1];
5383 if ((cached_has_bits & 0x00080000u) != 0) {
5384 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5385 this_._internal_linearization_level());
5386 }
5387 // optional int32 max_num_cuts = 91 [default = 10000];
5388 if ((cached_has_bits & 0x00100000u) != 0) {
5389 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5390 this_._internal_max_num_cuts());
5391 }
5392 // optional int32 binary_search_num_conflicts = 99 [default = -1];
5393 if ((cached_has_bits & 0x00200000u) != 0) {
5394 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5395 this_._internal_binary_search_num_conflicts());
5396 }
5397 }
5398 if ((cached_has_bits & 0x0c000000u) != 0) {
5399 // optional int32 boolean_encoding_level = 107 [default = 1];
5400 if ((cached_has_bits & 0x04000000u) != 0) {
5401 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5402 this_._internal_boolean_encoding_level());
5403 }
5404 // optional int32 cp_model_probing_level = 110 [default = 2];
5405 if ((cached_has_bits & 0x08000000u) != 0) {
5406 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5407 this_._internal_cp_model_probing_level());
5408 }
5409 }
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) {
5414 // optional int32 max_integer_rounding_scaling = 119 [default = 600];
5415 if ((cached_has_bits & 0x00000002u) != 0) {
5416 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5417 this_._internal_max_integer_rounding_scaling());
5418 }
5419 // optional int32 max_consecutive_inactive_count = 121 [default = 100];
5420 if ((cached_has_bits & 0x00000004u) != 0) {
5421 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5422 this_._internal_max_consecutive_inactive_count());
5423 }
5424 // optional int64 pseudo_cost_reliability_threshold = 123 [default = 100];
5425 if ((cached_has_bits & 0x00000008u) != 0) {
5426 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5427 this_._internal_pseudo_cost_reliability_threshold());
5428 }
5429 // optional int32 new_constraints_batch_size = 122 [default = 50];
5430 if ((cached_has_bits & 0x00000010u) != 0) {
5431 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5432 this_._internal_new_constraints_batch_size());
5433 }
5434 }
5435 if ((cached_has_bits & 0x00006000u) != 0) {
5436 // optional int32 mip_max_activity_exponent = 127 [default = 53];
5437 if ((cached_has_bits & 0x00002000u) != 0) {
5438 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5439 this_._internal_mip_max_activity_exponent());
5440 }
5441 // optional int32 max_presolve_iterations = 138 [default = 3];
5442 if ((cached_has_bits & 0x00004000u) != 0) {
5443 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5444 this_._internal_max_presolve_iterations());
5445 }
5446 }
5447 if ((cached_has_bits & 0x00860000u) != 0) {
5448 // optional int32 presolve_substitution_level = 147 [default = 1];
5449 if ((cached_has_bits & 0x00020000u) != 0) {
5450 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5451 this_._internal_presolve_substitution_level());
5452 }
5453 // optional int32 max_all_diff_cut_size = 148 [default = 64];
5454 if ((cached_has_bits & 0x00040000u) != 0) {
5455 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5456 this_._internal_max_all_diff_cut_size());
5457 }
5458 // optional int32 hint_conflict_limit = 153 [default = 10];
5459 if ((cached_has_bits & 0x00800000u) != 0) {
5460 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5461 this_._internal_hint_conflict_limit());
5462 }
5463 }
5464 if ((cached_has_bits & 0x26000000u) != 0) {
5465 // optional int32 max_cut_rounds_at_level_zero = 154 [default = 1];
5466 if ((cached_has_bits & 0x02000000u) != 0) {
5467 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5468 this_._internal_max_cut_rounds_at_level_zero());
5469 }
5470 // optional int32 cut_cleanup_target = 157 [default = 1000];
5471 if ((cached_has_bits & 0x04000000u) != 0) {
5472 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5473 this_._internal_cut_cleanup_target());
5474 }
5475 // optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGATION_ASSISTED];
5476 if ((cached_has_bits & 0x20000000u) != 0) {
5477 total_size += 2 +
5478 ::_pbi::WireFormatLite::EnumSize(this_._internal_fp_rounding());
5479 }
5480 }
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) {
5485 // optional int32 polarity_rephase_increment = 168 [default = 1000];
5486 if ((cached_has_bits & 0x00000004u) != 0) {
5487 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5488 this_._internal_polarity_rephase_increment());
5489 }
5490 // optional int32 symmetry_level = 183 [default = 2];
5491 if ((cached_has_bits & 0x00000008u) != 0) {
5492 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5493 this_._internal_symmetry_level());
5494 }
5495 }
5496 if ((cached_has_bits & 0x00002d00u) != 0) {
5497 // optional int32 max_domain_size_when_encoding_eq_neq_constraints = 191 [default = 16];
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());
5501 }
5502 // optional int32 solution_pool_size = 193 [default = 3];
5503 if ((cached_has_bits & 0x00000400u) != 0) {
5504 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5505 this_._internal_solution_pool_size());
5506 }
5507 // optional int32 cut_level = 196 [default = 1];
5508 if ((cached_has_bits & 0x00000800u) != 0) {
5509 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5510 this_._internal_cut_level());
5511 }
5512 // optional int64 presolve_inclusion_work_limit = 201 [default = 100000000];
5513 if ((cached_has_bits & 0x00002000u) != 0) {
5514 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5515 this_._internal_presolve_inclusion_work_limit());
5516 }
5517 }
5518 if ((cached_has_bits & 0x00900000u) != 0) {
5519 // optional int32 table_compression_level = 217 [default = 2];
5520 if ((cached_has_bits & 0x00100000u) != 0) {
5521 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5522 this_._internal_table_compression_level());
5523 }
5524 // optional int32 root_lp_iterations = 227 [default = 2000];
5525 if ((cached_has_bits & 0x00800000u) != 0) {
5526 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5527 this_._internal_root_lp_iterations());
5528 }
5529 }
5530 if ((cached_has_bits & 0x09000000u) != 0) {
5531 // optional int32 max_size_to_create_precedence_literals_in_disjunctive = 229 [default = 60];
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());
5535 }
5536 // optional int32 shared_tree_max_nodes_per_worker = 238 [default = 10000];
5537 if ((cached_has_bits & 0x08000000u) != 0) {
5538 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5539 this_._internal_shared_tree_max_nodes_per_worker());
5540 }
5541 }
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) {
5546 // optional int32 violation_ls_perturbation_period = 249 [default = 100];
5547 if ((cached_has_bits & 0x00000004u) != 0) {
5548 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5549 this_._internal_violation_ls_perturbation_period());
5550 }
5551 // optional int32 linear_split_size = 256 [default = 100];
5552 if ((cached_has_bits & 0x00000008u) != 0) {
5553 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5554 this_._internal_linear_split_size());
5555 }
5556 // optional int32 feasibility_jump_linearization_level = 257 [default = 2];
5557 if ((cached_has_bits & 0x00000010u) != 0) {
5558 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5559 this_._internal_feasibility_jump_linearization_level());
5560 }
5561 // optional int32 feasibility_jump_restart_factor = 258 [default = 1];
5562 if ((cached_has_bits & 0x00000020u) != 0) {
5563 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5564 this_._internal_feasibility_jump_restart_factor());
5565 }
5566 // optional int32 max_num_intervals_for_timetable_edge_finding = 260 [default = 100];
5567 if ((cached_has_bits & 0x00000080u) != 0) {
5568 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5569 this_._internal_max_num_intervals_for_timetable_edge_finding());
5570 }
5571 }
5572 if ((cached_has_bits & 0x00005900u) != 0) {
5573 // optional int32 mip_presolve_level = 261 [default = 2];
5574 if ((cached_has_bits & 0x00000100u) != 0) {
5575 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5576 this_._internal_mip_presolve_level());
5577 }
5578 // optional int32 feasibility_jump_max_expanded_constraint_size = 264 [default = 500];
5579 if ((cached_has_bits & 0x00000800u) != 0) {
5580 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5581 this_._internal_feasibility_jump_max_expanded_constraint_size());
5582 }
5583 // optional int32 at_most_one_max_expansion_size = 270 [default = 3];
5584 if ((cached_has_bits & 0x00001000u) != 0) {
5585 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5586 this_._internal_at_most_one_max_expansion_size());
5587 }
5588 // optional int32 probing_num_combinations_limit = 272 [default = 20000];
5589 if ((cached_has_bits & 0x00004000u) != 0) {
5590 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5591 this_._internal_probing_num_combinations_limit());
5592 }
5593 }
5594 if ((cached_has_bits & 0x00600000u) != 0) {
5595 // optional int32 max_pairs_pairwise_reasoning_in_no_overlap_2d = 276 [default = 1250];
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());
5599 }
5600 // optional int32 shared_tree_worker_min_restarts_per_subtree = 282 [default = 1];
5601 if ((cached_has_bits & 0x00400000u) != 0) {
5602 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5603 this_._internal_shared_tree_worker_min_restarts_per_subtree());
5604 }
5605 }
5606 if ((cached_has_bits & 0x0d000000u) != 0) {
5607 // optional int64 shaving_search_threshold = 290 [default = 64];
5608 if ((cached_has_bits & 0x01000000u) != 0) {
5609 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5610 this_._internal_shaving_search_threshold());
5611 }
5612 // optional int32 variables_shaving_level = 289 [default = -1];
5613 if ((cached_has_bits & 0x04000000u) != 0) {
5614 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5615 this_._internal_variables_shaving_level());
5616 }
5617 // optional int32 lb_relax_num_workers_threshold = 296 [default = 16];
5618 if ((cached_has_bits & 0x08000000u) != 0) {
5619 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5620 this_._internal_lb_relax_num_workers_threshold());
5621 }
5622 }
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) {
5627 // optional int32 shared_tree_balance_tolerance = 305 [default = 1];
5628 if ((cached_has_bits & 0x00000001u) != 0) {
5629 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5630 this_._internal_shared_tree_balance_tolerance());
5631 }
5632 // optional int32 routing_cut_subset_size_for_exact_binary_relation_bound = 316 [default = 8];
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());
5636 }
5637 }
5638 if ((cached_has_bits & 0x00000f00u) != 0) {
5639 // optional int32 routing_cut_max_infeasible_path_length = 317 [default = 6];
5640 if ((cached_has_bits & 0x00000100u) != 0) {
5641 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5642 this_._internal_routing_cut_max_infeasible_path_length());
5643 }
5644 // optional int32 routing_cut_subset_size_for_shortest_paths_bound = 318 [default = 8];
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());
5648 }
5649 // optional int32 max_alldiff_domain_size = 320 [default = 256];
5650 if ((cached_has_bits & 0x00000400u) != 0) {
5651 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5652 this_._internal_max_alldiff_domain_size());
5653 }
5654 // optional int32 no_overlap_2d_boolean_relations_limit = 321 [default = 10];
5655 if ((cached_has_bits & 0x00000800u) != 0) {
5656 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5657 this_._internal_no_overlap_2d_boolean_relations_limit());
5658 }
5659 }
5660 return this_.MaybeComputeUnknownFieldsSize(total_size,
5661 &this_._impl_._cached_size_);
5662}
5663
5664void SatParameters::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
5665 auto* const _this = static_cast<SatParameters*>(&to_msg);
5666 auto& from = static_cast<const SatParameters&>(from_msg);
5667 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SatParameters)
5668 ABSL_DCHECK_NE(&from, _this);
5669 ::uint32_t cached_has_bits = 0;
5670 (void) cached_has_bits;
5671
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());
5683 }
5684 if ((cached_has_bits & 0x00000002u) != 0) {
5685 _this->_internal_set_name(from._internal_name());
5686 }
5687 if ((cached_has_bits & 0x00000004u) != 0) {
5688 _this->_internal_set_log_prefix(from._internal_log_prefix());
5689 }
5690 if ((cached_has_bits & 0x00000008u) != 0) {
5691 _this->_impl_.preferred_variable_order_ = from._impl_.preferred_variable_order_;
5692 }
5693 if ((cached_has_bits & 0x00000010u) != 0) {
5694 _this->_impl_.clause_cleanup_target_ = from._impl_.clause_cleanup_target_;
5695 }
5696 if ((cached_has_bits & 0x00000020u) != 0) {
5697 _this->_impl_.random_branches_ratio_ = from._impl_.random_branches_ratio_;
5698 }
5699 if ((cached_has_bits & 0x00000040u) != 0) {
5700 _this->_impl_.random_polarity_ratio_ = from._impl_.random_polarity_ratio_;
5701 }
5702 if ((cached_has_bits & 0x00000080u) != 0) {
5703 _this->_impl_.log_search_progress_ = from._impl_.log_search_progress_;
5704 }
5705 }
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_;
5709 }
5710 if ((cached_has_bits & 0x00000200u) != 0) {
5711 _this->_impl_.minimize_reduction_during_pb_resolution_ = from._impl_.minimize_reduction_during_pb_resolution_;
5712 }
5713 if ((cached_has_bits & 0x00000400u) != 0) {
5714 _this->_impl_.max_sat_reverse_assumption_order_ = from._impl_.max_sat_reverse_assumption_order_;
5715 }
5716 if ((cached_has_bits & 0x00000800u) != 0) {
5717 _this->_impl_.max_sat_assumption_order_ = from._impl_.max_sat_assumption_order_;
5718 }
5719 if ((cached_has_bits & 0x00001000u) != 0) {
5720 _this->_impl_.clause_cleanup_protection_ = from._impl_.clause_cleanup_protection_;
5721 }
5722 if ((cached_has_bits & 0x00002000u) != 0) {
5723 _this->_impl_.clause_cleanup_ordering_ = from._impl_.clause_cleanup_ordering_;
5724 }
5725 if ((cached_has_bits & 0x00004000u) != 0) {
5726 _this->_impl_.strategy_change_increase_ratio_ = from._impl_.strategy_change_increase_ratio_;
5727 }
5728 if ((cached_has_bits & 0x00008000u) != 0) {
5729 _this->_impl_.num_conflicts_before_strategy_changes_ = from._impl_.num_conflicts_before_strategy_changes_;
5730 }
5731 }
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_;
5735 }
5736 if ((cached_has_bits & 0x00020000u) != 0) {
5737 _this->_impl_.use_erwa_heuristic_ = from._impl_.use_erwa_heuristic_;
5738 }
5739 if ((cached_has_bits & 0x00040000u) != 0) {
5740 _this->_impl_.also_bump_variables_in_conflict_reasons_ = from._impl_.also_bump_variables_in_conflict_reasons_;
5741 }
5742 if ((cached_has_bits & 0x00080000u) != 0) {
5743 _this->_impl_.use_overload_checker_in_cumulative_ = from._impl_.use_overload_checker_in_cumulative_;
5744 }
5745 if ((cached_has_bits & 0x00100000u) != 0) {
5746 _this->_impl_.initial_variables_activity_ = from._impl_.initial_variables_activity_;
5747 }
5748 if ((cached_has_bits & 0x00200000u) != 0) {
5749 _this->_impl_.search_branching_ = from._impl_.search_branching_;
5750 }
5751 if ((cached_has_bits & 0x00400000u) != 0) {
5752 _this->_impl_.use_timetable_edge_finding_in_cumulative_ = from._impl_.use_timetable_edge_finding_in_cumulative_;
5753 }
5754 if ((cached_has_bits & 0x00800000u) != 0) {
5755 _this->_impl_.optimize_with_core_ = from._impl_.optimize_with_core_;
5756 }
5757 }
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_;
5761 }
5762 if ((cached_has_bits & 0x02000000u) != 0) {
5763 _this->_impl_.enumerate_all_solutions_ = from._impl_.enumerate_all_solutions_;
5764 }
5765 if ((cached_has_bits & 0x04000000u) != 0) {
5766 _this->_impl_.only_add_cuts_at_level_zero_ = from._impl_.only_add_cuts_at_level_zero_;
5767 }
5768 if ((cached_has_bits & 0x08000000u) != 0) {
5769 _this->_impl_.stop_after_first_solution_ = from._impl_.stop_after_first_solution_;
5770 }
5771 if ((cached_has_bits & 0x10000000u) != 0) {
5772 _this->_impl_.use_lns_only_ = from._impl_.use_lns_only_;
5773 }
5774 if ((cached_has_bits & 0x20000000u) != 0) {
5775 _this->_impl_.randomize_search_ = from._impl_.randomize_search_;
5776 }
5777 if ((cached_has_bits & 0x40000000u) != 0) {
5778 _this->_impl_.num_search_workers_ = from._impl_.num_search_workers_;
5779 }
5780 if ((cached_has_bits & 0x80000000u) != 0) {
5781 _this->_impl_.search_random_variable_pool_size_ = from._impl_.search_random_variable_pool_size_;
5782 }
5783 }
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_;
5788 }
5789 if ((cached_has_bits & 0x00000002u) != 0) {
5790 _this->_impl_.exploit_best_solution_ = from._impl_.exploit_best_solution_;
5791 }
5792 if ((cached_has_bits & 0x00000004u) != 0) {
5793 _this->_impl_.fill_tightened_domains_in_response_ = from._impl_.fill_tightened_domains_in_response_;
5794 }
5795 if ((cached_has_bits & 0x00000008u) != 0) {
5796 _this->_impl_.use_combined_no_overlap_ = from._impl_.use_combined_no_overlap_;
5797 }
5798 if ((cached_has_bits & 0x00000010u) != 0) {
5799 _this->_impl_.interleave_batch_size_ = from._impl_.interleave_batch_size_;
5800 }
5801 if ((cached_has_bits & 0x00000020u) != 0) {
5802 _this->_impl_.interleave_search_ = from._impl_.interleave_search_;
5803 }
5804 if ((cached_has_bits & 0x00000040u) != 0) {
5805 _this->_impl_.diversify_lns_params_ = from._impl_.diversify_lns_params_;
5806 }
5807 if ((cached_has_bits & 0x00000080u) != 0) {
5808 _this->_impl_.stop_after_presolve_ = from._impl_.stop_after_presolve_;
5809 }
5810 }
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_;
5814 }
5815 if ((cached_has_bits & 0x00000200u) != 0) {
5816 _this->_impl_.debug_max_num_presolve_operations_ = from._impl_.debug_max_num_presolve_operations_;
5817 }
5818 if ((cached_has_bits & 0x00000400u) != 0) {
5819 _this->_impl_.relative_gap_limit_ = from._impl_.relative_gap_limit_;
5820 }
5821 if ((cached_has_bits & 0x00000800u) != 0) {
5822 _this->_impl_.debug_postsolve_with_full_solver_ = from._impl_.debug_postsolve_with_full_solver_;
5823 }
5824 if ((cached_has_bits & 0x00001000u) != 0) {
5825 _this->_impl_.repair_hint_ = from._impl_.repair_hint_;
5826 }
5827 if ((cached_has_bits & 0x00002000u) != 0) {
5828 _this->_impl_.expand_alldiff_constraints_ = from._impl_.expand_alldiff_constraints_;
5829 }
5830 if ((cached_has_bits & 0x00004000u) != 0) {
5831 _this->_impl_.keep_all_feasible_solutions_in_presolve_ = from._impl_.keep_all_feasible_solutions_in_presolve_;
5832 }
5833 if ((cached_has_bits & 0x00008000u) != 0) {
5834 _this->_impl_.presolve_extract_integer_enforcement_ = from._impl_.presolve_extract_integer_enforcement_;
5835 }
5836 }
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_;
5840 }
5841 if ((cached_has_bits & 0x00020000u) != 0) {
5842 _this->_impl_.use_probing_search_ = from._impl_.use_probing_search_;
5843 }
5844 if ((cached_has_bits & 0x00040000u) != 0) {
5845 _this->_impl_.permute_variable_randomly_ = from._impl_.permute_variable_randomly_;
5846 }
5847 if ((cached_has_bits & 0x00080000u) != 0) {
5848 _this->_impl_.permute_presolve_constraint_order_ = from._impl_.permute_presolve_constraint_order_;
5849 }
5850 if ((cached_has_bits & 0x00100000u) != 0) {
5851 _this->_impl_.use_absl_random_ = from._impl_.use_absl_random_;
5852 }
5853 if ((cached_has_bits & 0x00200000u) != 0) {
5854 _this->_impl_.disable_constraint_expansion_ = from._impl_.disable_constraint_expansion_;
5855 }
5856 if ((cached_has_bits & 0x00400000u) != 0) {
5857 _this->_impl_.log_to_response_ = from._impl_.log_to_response_;
5858 }
5859 if ((cached_has_bits & 0x00800000u) != 0) {
5860 _this->_impl_.optimize_with_lb_tree_search_ = from._impl_.optimize_with_lb_tree_search_;
5861 }
5862 }
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_;
5866 }
5867 if ((cached_has_bits & 0x02000000u) != 0) {
5868 _this->_impl_.fix_variables_to_their_hinted_value_ = from._impl_.fix_variables_to_their_hinted_value_;
5869 }
5870 if ((cached_has_bits & 0x04000000u) != 0) {
5871 _this->_impl_.fill_additional_solutions_in_response_ = from._impl_.fill_additional_solutions_in_response_;
5872 }
5873 if ((cached_has_bits & 0x08000000u) != 0) {
5874 _this->_impl_.debug_crash_on_bad_hint_ = from._impl_.debug_crash_on_bad_hint_;
5875 }
5876 if ((cached_has_bits & 0x10000000u) != 0) {
5877 _this->_impl_.add_objective_cut_ = from._impl_.add_objective_cut_;
5878 }
5879 if ((cached_has_bits & 0x20000000u) != 0) {
5880 _this->_impl_.use_timetabling_in_no_overlap_2d_ = from._impl_.use_timetabling_in_no_overlap_2d_;
5881 }
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_;
5884 }
5885 if ((cached_has_bits & 0x80000000u) != 0) {
5886 _this->_impl_.num_workers_ = from._impl_.num_workers_;
5887 }
5888 }
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_;
5893 }
5894 if ((cached_has_bits & 0x00000002u) != 0) {
5895 _this->_impl_.detect_table_with_cost_ = from._impl_.detect_table_with_cost_;
5896 }
5897 if ((cached_has_bits & 0x00000004u) != 0) {
5898 _this->_impl_.exploit_all_precedences_ = from._impl_.exploit_all_precedences_;
5899 }
5900 if ((cached_has_bits & 0x00000008u) != 0) {
5901 _this->_impl_.only_solve_ip_ = from._impl_.only_solve_ip_;
5902 }
5903 if ((cached_has_bits & 0x00000010u) != 0) {
5904 _this->_impl_.encode_complex_linear_constraint_with_integer_ = from._impl_.encode_complex_linear_constraint_with_integer_;
5905 }
5906 if ((cached_has_bits & 0x00000020u) != 0) {
5907 _this->_impl_.mip_scale_large_domain_ = from._impl_.mip_scale_large_domain_;
5908 }
5909 if ((cached_has_bits & 0x00000040u) != 0) {
5910 _this->_impl_.use_objective_lb_search_ = from._impl_.use_objective_lb_search_;
5911 }
5912 if ((cached_has_bits & 0x00000080u) != 0) {
5913 _this->_impl_.use_strong_propagation_in_disjunctive_ = from._impl_.use_strong_propagation_in_disjunctive_;
5914 }
5915 }
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_;
5919 }
5920 if ((cached_has_bits & 0x00000200u) != 0) {
5921 _this->_impl_.shared_tree_split_strategy_ = from._impl_.shared_tree_split_strategy_;
5922 }
5923 if ((cached_has_bits & 0x00000400u) != 0) {
5924 _this->_impl_.num_violation_ls_ = from._impl_.num_violation_ls_;
5925 }
5926 if ((cached_has_bits & 0x00000800u) != 0) {
5927 _this->_impl_.use_shared_tree_search_ = from._impl_.use_shared_tree_search_;
5928 }
5929 if ((cached_has_bits & 0x00001000u) != 0) {
5930 _this->_impl_.use_ls_only_ = from._impl_.use_ls_only_;
5931 }
5932 if ((cached_has_bits & 0x00002000u) != 0) {
5933 _this->_impl_.stop_after_root_propagation_ = from._impl_.stop_after_root_propagation_;
5934 }
5935 if ((cached_has_bits & 0x00004000u) != 0) {
5936 _this->_impl_.use_objective_shaving_search_ = from._impl_.use_objective_shaving_search_;
5937 }
5938 if ((cached_has_bits & 0x00008000u) != 0) {
5939 _this->_impl_.push_all_tasks_toward_start_ = from._impl_.push_all_tasks_toward_start_;
5940 }
5941 }
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_;
5945 }
5946 if ((cached_has_bits & 0x00020000u) != 0) {
5947 _this->_impl_.use_dynamic_precedence_in_cumulative_ = from._impl_.use_dynamic_precedence_in_cumulative_;
5948 }
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_;
5951 }
5952 if ((cached_has_bits & 0x00080000u) != 0) {
5953 _this->_impl_.max_lin_max_size_for_expansion_ = from._impl_.max_lin_max_size_for_expansion_;
5954 }
5955 if ((cached_has_bits & 0x00100000u) != 0) {
5956 _this->_impl_.detect_linearized_product_ = from._impl_.detect_linearized_product_;
5957 }
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_;
5960 }
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_;
5963 }
5964 if ((cached_has_bits & 0x00800000u) != 0) {
5965 _this->_impl_.share_glue_clauses_ = from._impl_.share_glue_clauses_;
5966 }
5967 }
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_;
5971 }
5972 if ((cached_has_bits & 0x02000000u) != 0) {
5973 _this->_impl_.encode_cumulative_as_reservoir_ = from._impl_.encode_cumulative_as_reservoir_;
5974 }
5975 if ((cached_has_bits & 0x04000000u) != 0) {
5976 _this->_impl_.expand_reservoir_using_circuit_ = from._impl_.expand_reservoir_using_circuit_;
5977 }
5978 if ((cached_has_bits & 0x08000000u) != 0) {
5979 _this->_impl_.inprocessing_minimization_use_all_orderings_ = from._impl_.inprocessing_minimization_use_all_orderings_;
5980 }
5981 if ((cached_has_bits & 0x10000000u) != 0) {
5982 _this->_impl_.max_num_deterministic_batches_ = from._impl_.max_num_deterministic_batches_;
5983 }
5984 if ((cached_has_bits & 0x20000000u) != 0) {
5985 _this->_impl_.num_full_subsolvers_ = from._impl_.num_full_subsolvers_;
5986 }
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_;
5989 }
5990 if ((cached_has_bits & 0x80000000u) != 0) {
5991 _this->_impl_.use_symmetry_in_lp_ = from._impl_.use_symmetry_in_lp_;
5992 }
5993 }
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_;
5998 }
5999 if ((cached_has_bits & 0x00000002u) != 0) {
6000 _this->_impl_.debug_crash_if_presolve_breaks_hint_ = from._impl_.debug_crash_if_presolve_breaks_hint_;
6001 }
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_;
6004 }
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_;
6007 }
6008 if ((cached_has_bits & 0x00000010u) != 0) {
6009 _this->_impl_.polarity_exploit_ls_hints_ = from._impl_.polarity_exploit_ls_hints_;
6010 }
6011 if ((cached_has_bits & 0x00000020u) != 0) {
6012 _this->_impl_.use_all_different_for_circuit_ = from._impl_.use_all_different_for_circuit_;
6013 }
6014 if ((cached_has_bits & 0x00000040u) != 0) {
6015 _this->_impl_.filter_sat_postsolve_clauses_ = from._impl_.filter_sat_postsolve_clauses_;
6016 }
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_;
6019 }
6020 }
6021 if ((cached_has_bits & 0x0000ff00u) != 0) {
6022 if ((cached_has_bits & 0x00000100u) != 0) {
6023 _this->_impl_.initial_polarity_ = from._impl_.initial_polarity_;
6024 }
6025 if ((cached_has_bits & 0x00000200u) != 0) {
6026 _this->_impl_.minimization_algorithm_ = from._impl_.minimization_algorithm_;
6027 }
6028 if ((cached_has_bits & 0x00000400u) != 0) {
6029 _this->_impl_.variable_activity_decay_ = from._impl_.variable_activity_decay_;
6030 }
6031 if ((cached_has_bits & 0x00000800u) != 0) {
6032 _this->_impl_.max_variable_activity_value_ = from._impl_.max_variable_activity_value_;
6033 }
6034 if ((cached_has_bits & 0x00001000u) != 0) {
6035 _this->_impl_.clause_activity_decay_ = from._impl_.clause_activity_decay_;
6036 }
6037 if ((cached_has_bits & 0x00002000u) != 0) {
6038 _this->_impl_.clause_cleanup_period_ = from._impl_.clause_cleanup_period_;
6039 }
6040 if ((cached_has_bits & 0x00004000u) != 0) {
6041 _this->_impl_.glucose_decay_increment_period_ = from._impl_.glucose_decay_increment_period_;
6042 }
6043 if ((cached_has_bits & 0x00008000u) != 0) {
6044 _this->_impl_.max_clause_activity_value_ = from._impl_.max_clause_activity_value_;
6045 }
6046 }
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_;
6050 }
6051 if ((cached_has_bits & 0x00020000u) != 0) {
6052 _this->_impl_.glucose_decay_increment_ = from._impl_.glucose_decay_increment_;
6053 }
6054 if ((cached_has_bits & 0x00040000u) != 0) {
6055 _this->_impl_.restart_period_ = from._impl_.restart_period_;
6056 }
6057 if ((cached_has_bits & 0x00080000u) != 0) {
6058 _this->_impl_.random_seed_ = from._impl_.random_seed_;
6059 }
6060 if ((cached_has_bits & 0x00100000u) != 0) {
6061 _this->_impl_.max_time_in_seconds_ = from._impl_.max_time_in_seconds_;
6062 }
6063 if ((cached_has_bits & 0x00200000u) != 0) {
6064 _this->_impl_.max_number_of_conflicts_ = from._impl_.max_number_of_conflicts_;
6065 }
6066 if ((cached_has_bits & 0x00400000u) != 0) {
6067 _this->_impl_.max_memory_in_mb_ = from._impl_.max_memory_in_mb_;
6068 }
6069 if ((cached_has_bits & 0x00800000u) != 0) {
6070 _this->_impl_.binary_minimization_algorithm_ = from._impl_.binary_minimization_algorithm_;
6071 }
6072 }
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_;
6076 }
6077 if ((cached_has_bits & 0x02000000u) != 0) {
6078 _this->_impl_.use_optimization_hints_ = from._impl_.use_optimization_hints_;
6079 }
6080 if ((cached_has_bits & 0x04000000u) != 0) {
6081 _this->_impl_.use_phase_saving_ = from._impl_.use_phase_saving_;
6082 }
6083 if ((cached_has_bits & 0x08000000u) != 0) {
6084 _this->_impl_.count_assumption_levels_in_lbd_ = from._impl_.count_assumption_levels_in_lbd_;
6085 }
6086 if ((cached_has_bits & 0x10000000u) != 0) {
6087 _this->_impl_.subsumption_during_conflict_analysis_ = from._impl_.subsumption_during_conflict_analysis_;
6088 }
6089 if ((cached_has_bits & 0x20000000u) != 0) {
6090 _this->_impl_.core_minimization_level_ = from._impl_.core_minimization_level_;
6091 }
6092 if ((cached_has_bits & 0x40000000u) != 0) {
6093 _this->_impl_.pb_cleanup_ratio_ = from._impl_.pb_cleanup_ratio_;
6094 }
6095 if ((cached_has_bits & 0x80000000u) != 0) {
6096 _this->_impl_.max_sat_stratification_ = from._impl_.max_sat_stratification_;
6097 }
6098 }
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_;
6103 }
6104 if ((cached_has_bits & 0x00000002u) != 0) {
6105 _this->_impl_.presolve_probing_deterministic_time_limit_ = from._impl_.presolve_probing_deterministic_time_limit_;
6106 }
6107 if ((cached_has_bits & 0x00000004u) != 0) {
6108 _this->_impl_.presolve_bve_clause_weight_ = from._impl_.presolve_bve_clause_weight_;
6109 }
6110 if ((cached_has_bits & 0x00000008u) != 0) {
6111 _this->_impl_.clause_cleanup_lbd_bound_ = from._impl_.clause_cleanup_lbd_bound_;
6112 }
6113 if ((cached_has_bits & 0x00000010u) != 0) {
6114 _this->_impl_.restart_dl_average_ratio_ = from._impl_.restart_dl_average_ratio_;
6115 }
6116 if ((cached_has_bits & 0x00000020u) != 0) {
6117 _this->_impl_.restart_running_window_size_ = from._impl_.restart_running_window_size_;
6118 }
6119 if ((cached_has_bits & 0x00000040u) != 0) {
6120 _this->_impl_.blocking_restart_window_size_ = from._impl_.blocking_restart_window_size_;
6121 }
6122 if ((cached_has_bits & 0x00000080u) != 0) {
6123 _this->_impl_.blocking_restart_multiplier_ = from._impl_.blocking_restart_multiplier_;
6124 }
6125 }
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_;
6129 }
6130 if ((cached_has_bits & 0x00000200u) != 0) {
6131 _this->_impl_.restart_lbd_average_ratio_ = from._impl_.restart_lbd_average_ratio_;
6132 }
6133 if ((cached_has_bits & 0x00000400u) != 0) {
6134 _this->_impl_.presolve_bva_threshold_ = from._impl_.presolve_bva_threshold_;
6135 }
6136 if ((cached_has_bits & 0x00000800u) != 0) {
6137 _this->_impl_.presolve_use_bva_ = from._impl_.presolve_use_bva_;
6138 }
6139 if ((cached_has_bits & 0x00001000u) != 0) {
6140 _this->_impl_.use_precedences_in_disjunctive_constraint_ = from._impl_.use_precedences_in_disjunctive_constraint_;
6141 }
6142 if ((cached_has_bits & 0x00002000u) != 0) {
6143 _this->_impl_.use_disjunctive_constraint_in_cumulative_ = from._impl_.use_disjunctive_constraint_in_cumulative_;
6144 }
6145 if ((cached_has_bits & 0x00004000u) != 0) {
6146 _this->_impl_.find_multiple_cores_ = from._impl_.find_multiple_cores_;
6147 }
6148 if ((cached_has_bits & 0x00008000u) != 0) {
6149 _this->_impl_.cp_model_presolve_ = from._impl_.cp_model_presolve_;
6150 }
6151 }
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_;
6155 }
6156 if ((cached_has_bits & 0x00020000u) != 0) {
6157 _this->_impl_.cover_optimization_ = from._impl_.cover_optimization_;
6158 }
6159 if ((cached_has_bits & 0x00040000u) != 0) {
6160 _this->_impl_.cp_model_use_sat_presolve_ = from._impl_.cp_model_use_sat_presolve_;
6161 }
6162 if ((cached_has_bits & 0x00080000u) != 0) {
6163 _this->_impl_.linearization_level_ = from._impl_.linearization_level_;
6164 }
6165 if ((cached_has_bits & 0x00100000u) != 0) {
6166 _this->_impl_.max_num_cuts_ = from._impl_.max_num_cuts_;
6167 }
6168 if ((cached_has_bits & 0x00200000u) != 0) {
6169 _this->_impl_.binary_search_num_conflicts_ = from._impl_.binary_search_num_conflicts_;
6170 }
6171 if ((cached_has_bits & 0x00400000u) != 0) {
6172 _this->_impl_.exploit_integer_lp_solution_ = from._impl_.exploit_integer_lp_solution_;
6173 }
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_;
6176 }
6177 }
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_;
6181 }
6182 if ((cached_has_bits & 0x02000000u) != 0) {
6183 _this->_impl_.use_exact_lp_reason_ = from._impl_.use_exact_lp_reason_;
6184 }
6185 if ((cached_has_bits & 0x04000000u) != 0) {
6186 _this->_impl_.boolean_encoding_level_ = from._impl_.boolean_encoding_level_;
6187 }
6188 if ((cached_has_bits & 0x08000000u) != 0) {
6189 _this->_impl_.cp_model_probing_level_ = from._impl_.cp_model_probing_level_;
6190 }
6191 if ((cached_has_bits & 0x10000000u) != 0) {
6192 _this->_impl_.add_lp_constraints_lazily_ = from._impl_.add_lp_constraints_lazily_;
6193 }
6194 if ((cached_has_bits & 0x20000000u) != 0) {
6195 _this->_impl_.share_objective_bounds_ = from._impl_.share_objective_bounds_;
6196 }
6197 if ((cached_has_bits & 0x40000000u) != 0) {
6198 _this->_impl_.share_level_zero_bounds_ = from._impl_.share_level_zero_bounds_;
6199 }
6200 if ((cached_has_bits & 0x80000000u) != 0) {
6201 _this->_impl_.exploit_all_lp_solution_ = from._impl_.exploit_all_lp_solution_;
6202 }
6203 }
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_;
6208 }
6209 if ((cached_has_bits & 0x00000002u) != 0) {
6210 _this->_impl_.max_integer_rounding_scaling_ = from._impl_.max_integer_rounding_scaling_;
6211 }
6212 if ((cached_has_bits & 0x00000004u) != 0) {
6213 _this->_impl_.max_consecutive_inactive_count_ = from._impl_.max_consecutive_inactive_count_;
6214 }
6215 if ((cached_has_bits & 0x00000008u) != 0) {
6216 _this->_impl_.pseudo_cost_reliability_threshold_ = from._impl_.pseudo_cost_reliability_threshold_;
6217 }
6218 if ((cached_has_bits & 0x00000010u) != 0) {
6219 _this->_impl_.new_constraints_batch_size_ = from._impl_.new_constraints_batch_size_;
6220 }
6221 if ((cached_has_bits & 0x00000020u) != 0) {
6222 _this->_impl_.add_cg_cuts_ = from._impl_.add_cg_cuts_;
6223 }
6224 if ((cached_has_bits & 0x00000040u) != 0) {
6225 _this->_impl_.add_mir_cuts_ = from._impl_.add_mir_cuts_;
6226 }
6227 if ((cached_has_bits & 0x00000080u) != 0) {
6228 _this->_impl_.use_rins_lns_ = from._impl_.use_rins_lns_;
6229 }
6230 }
6231 if ((cached_has_bits & 0x0000ff00u) != 0) {
6232 if ((cached_has_bits & 0x00000100u) != 0) {
6233 _this->_impl_.exploit_objective_ = from._impl_.exploit_objective_;
6234 }
6235 if ((cached_has_bits & 0x00000200u) != 0) {
6236 _this->_impl_.mip_max_bound_ = from._impl_.mip_max_bound_;
6237 }
6238 if ((cached_has_bits & 0x00000400u) != 0) {
6239 _this->_impl_.mip_var_scaling_ = from._impl_.mip_var_scaling_;
6240 }
6241 if ((cached_has_bits & 0x00000800u) != 0) {
6242 _this->_impl_.mip_wanted_precision_ = from._impl_.mip_wanted_precision_;
6243 }
6244 if ((cached_has_bits & 0x00001000u) != 0) {
6245 _this->_impl_.mip_check_precision_ = from._impl_.mip_check_precision_;
6246 }
6247 if ((cached_has_bits & 0x00002000u) != 0) {
6248 _this->_impl_.mip_max_activity_exponent_ = from._impl_.mip_max_activity_exponent_;
6249 }
6250 if ((cached_has_bits & 0x00004000u) != 0) {
6251 _this->_impl_.max_presolve_iterations_ = from._impl_.max_presolve_iterations_;
6252 }
6253 if ((cached_has_bits & 0x00008000u) != 0) {
6254 _this->_impl_.merge_no_overlap_work_limit_ = from._impl_.merge_no_overlap_work_limit_;
6255 }
6256 }
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_;
6260 }
6261 if ((cached_has_bits & 0x00020000u) != 0) {
6262 _this->_impl_.presolve_substitution_level_ = from._impl_.presolve_substitution_level_;
6263 }
6264 if ((cached_has_bits & 0x00040000u) != 0) {
6265 _this->_impl_.max_all_diff_cut_size_ = from._impl_.max_all_diff_cut_size_;
6266 }
6267 if ((cached_has_bits & 0x00080000u) != 0) {
6268 _this->_impl_.catch_sigint_signal_ = from._impl_.catch_sigint_signal_;
6269 }
6270 if ((cached_has_bits & 0x00100000u) != 0) {
6271 _this->_impl_.use_implied_bounds_ = from._impl_.use_implied_bounds_;
6272 }
6273 if ((cached_has_bits & 0x00200000u) != 0) {
6274 _this->_impl_.add_lin_max_cuts_ = from._impl_.add_lin_max_cuts_;
6275 }
6276 if ((cached_has_bits & 0x00400000u) != 0) {
6277 _this->_impl_.use_sat_inprocessing_ = from._impl_.use_sat_inprocessing_;
6278 }
6279 if ((cached_has_bits & 0x00800000u) != 0) {
6280 _this->_impl_.hint_conflict_limit_ = from._impl_.hint_conflict_limit_;
6281 }
6282 }
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_;
6286 }
6287 if ((cached_has_bits & 0x02000000u) != 0) {
6288 _this->_impl_.max_cut_rounds_at_level_zero_ = from._impl_.max_cut_rounds_at_level_zero_;
6289 }
6290 if ((cached_has_bits & 0x04000000u) != 0) {
6291 _this->_impl_.cut_cleanup_target_ = from._impl_.cut_cleanup_target_;
6292 }
6293 if ((cached_has_bits & 0x08000000u) != 0) {
6294 _this->_impl_.cut_active_count_decay_ = from._impl_.cut_active_count_decay_;
6295 }
6296 if ((cached_has_bits & 0x10000000u) != 0) {
6297 _this->_impl_.absolute_gap_limit_ = from._impl_.absolute_gap_limit_;
6298 }
6299 if ((cached_has_bits & 0x20000000u) != 0) {
6300 _this->_impl_.fp_rounding_ = from._impl_.fp_rounding_;
6301 }
6302 if ((cached_has_bits & 0x40000000u) != 0) {
6303 _this->_impl_.use_feasibility_pump_ = from._impl_.use_feasibility_pump_;
6304 }
6305 if ((cached_has_bits & 0x80000000u) != 0) {
6306 _this->_impl_.mip_automatically_scale_variables_ = from._impl_.mip_automatically_scale_variables_;
6307 }
6308 }
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_;
6313 }
6314 if ((cached_has_bits & 0x00000002u) != 0) {
6315 _this->_impl_.add_clique_cuts_ = from._impl_.add_clique_cuts_;
6316 }
6317 if ((cached_has_bits & 0x00000004u) != 0) {
6318 _this->_impl_.polarity_rephase_increment_ = from._impl_.polarity_rephase_increment_;
6319 }
6320 if ((cached_has_bits & 0x00000008u) != 0) {
6321 _this->_impl_.symmetry_level_ = from._impl_.symmetry_level_;
6322 }
6323 if ((cached_has_bits & 0x00000010u) != 0) {
6324 _this->_impl_.convert_intervals_ = from._impl_.convert_intervals_;
6325 }
6326 if ((cached_has_bits & 0x00000020u) != 0) {
6327 _this->_impl_.expand_reservoir_constraints_ = from._impl_.expand_reservoir_constraints_;
6328 }
6329 if ((cached_has_bits & 0x00000040u) != 0) {
6330 _this->_impl_.log_to_stdout_ = from._impl_.log_to_stdout_;
6331 }
6332 if ((cached_has_bits & 0x00000080u) != 0) {
6333 _this->_impl_.mip_compute_true_objective_bound_ = from._impl_.mip_compute_true_objective_bound_;
6334 }
6335 }
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_;
6339 }
6340 if ((cached_has_bits & 0x00000200u) != 0) {
6341 _this->_impl_.clause_cleanup_ratio_ = from._impl_.clause_cleanup_ratio_;
6342 }
6343 if ((cached_has_bits & 0x00000400u) != 0) {
6344 _this->_impl_.solution_pool_size_ = from._impl_.solution_pool_size_;
6345 }
6346 if ((cached_has_bits & 0x00000800u) != 0) {
6347 _this->_impl_.cut_level_ = from._impl_.cut_level_;
6348 }
6349 if ((cached_has_bits & 0x00001000u) != 0) {
6350 _this->_impl_.mip_max_valid_magnitude_ = from._impl_.mip_max_valid_magnitude_;
6351 }
6352 if ((cached_has_bits & 0x00002000u) != 0) {
6353 _this->_impl_.presolve_inclusion_work_limit_ = from._impl_.presolve_inclusion_work_limit_;
6354 }
6355 if ((cached_has_bits & 0x00004000u) != 0) {
6356 _this->_impl_.shaving_deterministic_time_in_probing_search_ = from._impl_.shaving_deterministic_time_in_probing_search_;
6357 }
6358 if ((cached_has_bits & 0x00008000u) != 0) {
6359 _this->_impl_.shaving_search_deterministic_time_ = from._impl_.shaving_search_deterministic_time_;
6360 }
6361 }
6362 if ((cached_has_bits & 0x00ff0000u) != 0) {
6363 if ((cached_has_bits & 0x00010000u) != 0) {
6364 _this->_impl_.ignore_names_ = from._impl_.ignore_names_;
6365 }
6366 if ((cached_has_bits & 0x00020000u) != 0) {
6367 _this->_impl_.share_binary_clauses_ = from._impl_.share_binary_clauses_;
6368 }
6369 if ((cached_has_bits & 0x00040000u) != 0) {
6370 _this->_impl_.use_dual_scheduling_heuristics_ = from._impl_.use_dual_scheduling_heuristics_;
6371 }
6372 if ((cached_has_bits & 0x00080000u) != 0) {
6373 _this->_impl_.new_linear_propagation_ = from._impl_.new_linear_propagation_;
6374 }
6375 if ((cached_has_bits & 0x00100000u) != 0) {
6376 _this->_impl_.table_compression_level_ = from._impl_.table_compression_level_;
6377 }
6378 if ((cached_has_bits & 0x00200000u) != 0) {
6379 _this->_impl_.propagation_loop_detection_factor_ = from._impl_.propagation_loop_detection_factor_;
6380 }
6381 if ((cached_has_bits & 0x00400000u) != 0) {
6382 _this->_impl_.probing_deterministic_time_limit_ = from._impl_.probing_deterministic_time_limit_;
6383 }
6384 if ((cached_has_bits & 0x00800000u) != 0) {
6385 _this->_impl_.root_lp_iterations_ = from._impl_.root_lp_iterations_;
6386 }
6387 }
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_;
6391 }
6392 if ((cached_has_bits & 0x02000000u) != 0) {
6393 _this->_impl_.mip_drop_tolerance_ = from._impl_.mip_drop_tolerance_;
6394 }
6395 if ((cached_has_bits & 0x04000000u) != 0) {
6396 _this->_impl_.feasibility_jump_decay_ = from._impl_.feasibility_jump_decay_;
6397 }
6398 if ((cached_has_bits & 0x08000000u) != 0) {
6399 _this->_impl_.shared_tree_max_nodes_per_worker_ = from._impl_.shared_tree_max_nodes_per_worker_;
6400 }
6401 if ((cached_has_bits & 0x10000000u) != 0) {
6402 _this->_impl_.infer_all_diffs_ = from._impl_.infer_all_diffs_;
6403 }
6404 if ((cached_has_bits & 0x20000000u) != 0) {
6405 _this->_impl_.find_big_linear_overlap_ = from._impl_.find_big_linear_overlap_;
6406 }
6407 if ((cached_has_bits & 0x40000000u) != 0) {
6408 _this->_impl_.feasibility_jump_enable_restarts_ = from._impl_.feasibility_jump_enable_restarts_;
6409 }
6410 if ((cached_has_bits & 0x80000000u) != 0) {
6411 _this->_impl_.use_lb_relax_lns_ = from._impl_.use_lb_relax_lns_;
6412 }
6413 }
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_;
6418 }
6419 if ((cached_has_bits & 0x00000002u) != 0) {
6420 _this->_impl_.feasibility_jump_var_perburbation_range_ratio_ = from._impl_.feasibility_jump_var_perburbation_range_ratio_;
6421 }
6422 if ((cached_has_bits & 0x00000004u) != 0) {
6423 _this->_impl_.violation_ls_perturbation_period_ = from._impl_.violation_ls_perturbation_period_;
6424 }
6425 if ((cached_has_bits & 0x00000008u) != 0) {
6426 _this->_impl_.linear_split_size_ = from._impl_.linear_split_size_;
6427 }
6428 if ((cached_has_bits & 0x00000010u) != 0) {
6429 _this->_impl_.feasibility_jump_linearization_level_ = from._impl_.feasibility_jump_linearization_level_;
6430 }
6431 if ((cached_has_bits & 0x00000020u) != 0) {
6432 _this->_impl_.feasibility_jump_restart_factor_ = from._impl_.feasibility_jump_restart_factor_;
6433 }
6434 if ((cached_has_bits & 0x00000040u) != 0) {
6435 _this->_impl_.violation_ls_compound_move_probability_ = from._impl_.violation_ls_compound_move_probability_;
6436 }
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_;
6439 }
6440 }
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_;
6444 }
6445 if ((cached_has_bits & 0x00000200u) != 0) {
6446 _this->_impl_.lp_primal_tolerance_ = from._impl_.lp_primal_tolerance_;
6447 }
6448 if ((cached_has_bits & 0x00000400u) != 0) {
6449 _this->_impl_.lp_dual_tolerance_ = from._impl_.lp_dual_tolerance_;
6450 }
6451 if ((cached_has_bits & 0x00000800u) != 0) {
6452 _this->_impl_.feasibility_jump_max_expanded_constraint_size_ = from._impl_.feasibility_jump_max_expanded_constraint_size_;
6453 }
6454 if ((cached_has_bits & 0x00001000u) != 0) {
6455 _this->_impl_.at_most_one_max_expansion_size_ = from._impl_.at_most_one_max_expansion_size_;
6456 }
6457 if ((cached_has_bits & 0x00002000u) != 0) {
6458 _this->_impl_.inprocessing_dtime_ratio_ = from._impl_.inprocessing_dtime_ratio_;
6459 }
6460 if ((cached_has_bits & 0x00004000u) != 0) {
6461 _this->_impl_.probing_num_combinations_limit_ = from._impl_.probing_num_combinations_limit_;
6462 }
6463 if ((cached_has_bits & 0x00008000u) != 0) {
6464 _this->_impl_.use_feasibility_jump_ = from._impl_.use_feasibility_jump_;
6465 }
6466 }
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_;
6470 }
6471 if ((cached_has_bits & 0x00020000u) != 0) {
6472 _this->_impl_.add_rlt_cuts_ = from._impl_.add_rlt_cuts_;
6473 }
6474 if ((cached_has_bits & 0x00040000u) != 0) {
6475 _this->_impl_.use_lns_ = from._impl_.use_lns_;
6476 }
6477 if ((cached_has_bits & 0x00080000u) != 0) {
6478 _this->_impl_.inprocessing_probing_dtime_ = from._impl_.inprocessing_probing_dtime_;
6479 }
6480 if ((cached_has_bits & 0x00100000u) != 0) {
6481 _this->_impl_.inprocessing_minimization_dtime_ = from._impl_.inprocessing_minimization_dtime_;
6482 }
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_;
6485 }
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_;
6488 }
6489 if ((cached_has_bits & 0x00800000u) != 0) {
6490 _this->_impl_.shared_tree_open_leaves_per_worker_ = from._impl_.shared_tree_open_leaves_per_worker_;
6491 }
6492 }
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_;
6496 }
6497 if ((cached_has_bits & 0x02000000u) != 0) {
6498 _this->_impl_.feasibility_jump_batch_dtime_ = from._impl_.feasibility_jump_batch_dtime_;
6499 }
6500 if ((cached_has_bits & 0x04000000u) != 0) {
6501 _this->_impl_.variables_shaving_level_ = from._impl_.variables_shaving_level_;
6502 }
6503 if ((cached_has_bits & 0x08000000u) != 0) {
6504 _this->_impl_.lb_relax_num_workers_threshold_ = from._impl_.lb_relax_num_workers_threshold_;
6505 }
6506 if ((cached_has_bits & 0x10000000u) != 0) {
6507 _this->_impl_.shared_tree_worker_enable_trail_sharing_ = from._impl_.shared_tree_worker_enable_trail_sharing_;
6508 }
6509 if ((cached_has_bits & 0x20000000u) != 0) {
6510 _this->_impl_.inprocessing_minimization_use_conflict_analysis_ = from._impl_.inprocessing_minimization_use_conflict_analysis_;
6511 }
6512 if ((cached_has_bits & 0x40000000u) != 0) {
6513 _this->_impl_.minimize_shared_clauses_ = from._impl_.minimize_shared_clauses_;
6514 }
6515 if ((cached_has_bits & 0x80000000u) != 0) {
6516 _this->_impl_.shared_tree_worker_enable_phase_sharing_ = from._impl_.shared_tree_worker_enable_phase_sharing_;
6517 }
6518 }
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_;
6523 }
6524 if ((cached_has_bits & 0x00000002u) != 0) {
6525 _this->_impl_.symmetry_detection_deterministic_time_limit_ = from._impl_.symmetry_detection_deterministic_time_limit_;
6526 }
6527 if ((cached_has_bits & 0x00000004u) != 0) {
6528 _this->_impl_.lns_initial_difficulty_ = from._impl_.lns_initial_difficulty_;
6529 }
6530 if ((cached_has_bits & 0x00000008u) != 0) {
6531 _this->_impl_.lns_initial_deterministic_limit_ = from._impl_.lns_initial_deterministic_limit_;
6532 }
6533 if ((cached_has_bits & 0x00000010u) != 0) {
6534 _this->_impl_.routing_cut_dp_effort_ = from._impl_.routing_cut_dp_effort_;
6535 }
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_;
6538 }
6539 if ((cached_has_bits & 0x00000040u) != 0) {
6540 _this->_impl_.remove_fixed_variables_early_ = from._impl_.remove_fixed_variables_early_;
6541 }
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_;
6544 }
6545 }
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_;
6549 }
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_;
6552 }
6553 if ((cached_has_bits & 0x00000400u) != 0) {
6554 _this->_impl_.max_alldiff_domain_size_ = from._impl_.max_alldiff_domain_size_;
6555 }
6556 if ((cached_has_bits & 0x00000800u) != 0) {
6557 _this->_impl_.no_overlap_2d_boolean_relations_limit_ = from._impl_.no_overlap_2d_boolean_relations_limit_;
6558 }
6559 if ((cached_has_bits & 0x00001000u) != 0) {
6560 _this->_impl_.share_glue_clauses_dtime_ = from._impl_.share_glue_clauses_dtime_;
6561 }
6562 }
6563 _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
6564 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
6565}
6566
6567void SatParameters::CopyFrom(const SatParameters& from) {
6568// @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SatParameters)
6569 if (&from == this) return;
6570 Clear();
6571 MergeFrom(from);
6572}
6573
6574
6575void SatParameters::InternalSwap(SatParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
6576 using ::std::swap;
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<
6599 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_glue_clauses_dtime_)
6600 + sizeof(SatParameters::_impl_.share_glue_clauses_dtime_)
6601 - PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.preferred_variable_order_)>(
6602 reinterpret_cast<char*>(&_impl_.preferred_variable_order_),
6603 reinterpret_cast<char*>(&other->_impl_.preferred_variable_order_));
6604}
6605
6606::google::protobuf::Metadata SatParameters::GetMetadata() const {
6607 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
6608}
6609// @@protoc_insertion_point(namespace_scope)
6610} // namespace sat
6611} // namespace operations_research
6612namespace google {
6613namespace protobuf {
6614} // namespace protobuf
6615} // namespace google
6616// @@protoc_insertion_point(global_scope)
6617PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
6618 _static_init2_ [[maybe_unused]] =
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
friend class ::google::protobuf::MessageLite
friend void swap(SatParameters &a, SatParameters &b)
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)
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_[]
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_MaxSatStratificationAlgorithm_descriptor()
PROTOBUF_CONSTINIT const uint32_t SatParameters_BinaryMinizationAlgorithm_internal_data_[]
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()
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_[]
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_VariableOrder_descriptor()
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_ClauseOrdering_descriptor()
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()
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_[]
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SatParameters_Polarity_descriptor()
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]