Google OR-Tools v9.15
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.33.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 preferred_variable_order_{static_cast< ::operations_research::sat::SatParameters_VariableOrder >(0)},
34 clause_cleanup_target_{0},
35 random_polarity_ratio_{0},
36 log_search_progress_{false},
37 use_pb_resolution_{false},
38 use_optimization_hints_{true},
39 use_phase_saving_{true},
40 use_precedences_in_disjunctive_constraint_{true},
41 initial_polarity_{static_cast< ::operations_research::sat::SatParameters_Polarity >(1)},
42 minimization_algorithm_{static_cast< ::operations_research::sat::SatParameters_ConflictMinimizationAlgorithm >(2)},
43 variable_activity_decay_{0.8},
44 max_variable_activity_value_{1e+100},
45 clause_activity_decay_{0.999},
46 clause_cleanup_period_{10000},
47 glucose_decay_increment_period_{5000},
48 max_clause_activity_value_{1e+20},
49 glucose_max_decay_{0.95},
50 glucose_decay_increment_{0.01},
51 restart_period_{50},
52 random_seed_{1},
53 max_time_in_seconds_{std::numeric_limits<double>::infinity()},
54 max_number_of_conflicts_{::int64_t{9223372036854775807}},
55 restart_algorithms_{},
56 subsolvers_{},
57 ignore_subsolvers_{},
58 subsolver_params_{},
59 extra_subsolvers_{},
60 filter_subsolvers_{},
61 default_restart_algorithms_(
62 &::google::protobuf::internal::fixed_address_empty_string,
63 ::_pbi::ConstantInitialized()),
64 name_(
65 &::google::protobuf::internal::fixed_address_empty_string,
66 ::_pbi::ConstantInitialized()),
67 log_prefix_(
68 &::google::protobuf::internal::fixed_address_empty_string,
69 ::_pbi::ConstantInitialized()),
70 random_branches_ratio_{0},
71 max_sat_assumption_order_{static_cast< ::operations_research::sat::SatParameters_MaxSatAssumptionOrder >(0)},
72 minimize_reduction_during_pb_resolution_{false},
73 max_sat_reverse_assumption_order_{false},
74 use_blocking_restart_{false},
75 use_erwa_heuristic_{false},
76 clause_cleanup_ordering_{static_cast< ::operations_research::sat::SatParameters_ClauseOrdering >(0)},
77 num_conflicts_before_strategy_changes_{0},
78 strategy_change_increase_ratio_{0},
79 initial_variables_activity_{0},
80 also_bump_variables_in_conflict_reasons_{false},
81 use_overload_checker_in_cumulative_{false},
82 use_timetable_edge_finding_in_cumulative_{false},
83 optimize_with_core_{false},
84 search_branching_{static_cast< ::operations_research::sat::SatParameters_SearchBranching >(0)},
85 optimize_with_max_hs_{false},
86 enumerate_all_solutions_{false},
87 only_add_cuts_at_level_zero_{false},
88 stop_after_first_solution_{false},
89 num_search_workers_{0},
90 search_random_variable_pool_size_{::int64_t{0}},
91 use_lns_only_{false},
92 randomize_search_{false},
93 use_optional_variables_{false},
94 exploit_best_solution_{false},
95 interleave_batch_size_{0},
96 fill_tightened_domains_in_response_{false},
97 use_combined_no_overlap_{false},
98 interleave_search_{false},
99 diversify_lns_params_{false},
100 debug_max_num_presolve_operations_{0},
101 relative_gap_limit_{0},
102 stop_after_presolve_{false},
103 exploit_relaxation_solution_{false},
104 debug_postsolve_with_full_solver_{false},
105 repair_hint_{false},
106 expand_alldiff_constraints_{false},
107 keep_all_feasible_solutions_in_presolve_{false},
108 presolve_extract_integer_enforcement_{false},
109 polish_lp_solution_{false},
110 use_probing_search_{false},
111 permute_variable_randomly_{false},
112 permute_presolve_constraint_order_{false},
113 use_absl_random_{false},
114 disable_constraint_expansion_{false},
115 log_to_response_{false},
116 optimize_with_lb_tree_search_{false},
117 log_subsolver_statistics_{false},
118 fix_variables_to_their_hinted_value_{false},
119 fill_additional_solutions_in_response_{false},
120 debug_crash_on_bad_hint_{false},
121 add_objective_cut_{false},
122 num_workers_{0},
123 use_timetabling_in_no_overlap_2d_{false},
124 use_energetic_reasoning_in_no_overlap_2d_{false},
125 use_hard_precedences_in_cumulative_{false},
126 detect_table_with_cost_{false},
127 exploit_all_precedences_{false},
128 only_solve_ip_{false},
129 encode_complex_linear_constraint_with_integer_{false},
130 mip_scale_large_domain_{false},
131 use_objective_lb_search_{false},
132 use_strong_propagation_in_disjunctive_{false},
133 use_shared_tree_search_{false},
134 use_ls_only_{false},
135 shared_tree_split_strategy_{static_cast< ::operations_research::sat::SatParameters_SharedTreeSplitStrategy >(0)},
136 num_violation_ls_{0},
137 stop_after_root_propagation_{false},
138 use_objective_shaving_search_{false},
139 push_all_tasks_toward_start_{false},
140 use_dynamic_precedence_in_disjunctive_{false},
141 use_dynamic_precedence_in_cumulative_{false},
142 use_area_energetic_reasoning_in_no_overlap_2d_{false},
143 detect_linearized_product_{false},
144 mip_treat_high_magnitude_bounds_as_infinity_{false},
145 max_lin_max_size_for_expansion_{0},
146 save_lp_basis_in_lb_tree_search_{false},
147 use_conservative_scale_overload_checker_{false},
148 encode_cumulative_as_reservoir_{false},
149 expand_reservoir_using_circuit_{false},
150 max_num_deterministic_batches_{0},
151 num_full_subsolvers_{0},
152 inprocessing_minimization_use_all_orderings_{false},
153 use_try_edge_reasoning_in_no_overlap_2d_{false},
154 use_symmetry_in_lp_{false},
155 keep_symmetry_in_presolve_{false},
156 routing_cut_subset_size_for_binary_relation_bound_{0},
157 debug_crash_if_presolve_breaks_hint_{false},
158 polarity_exploit_ls_hints_{false},
159 use_all_different_for_circuit_{false},
160 filter_sat_postsolve_clauses_{false},
161 routing_cut_subset_size_for_tight_binary_relation_bound_{0},
162 maximum_regions_to_split_in_disconnected_no_overlap_2d_{0},
163 share_linear2_bounds_{false},
164 use_chronological_backtracking_{false},
165 load_at_most_ones_in_sat_presolve_{false},
166 use_new_integer_conflict_resolution_{false},
167 clause_cleanup_period_increment_{0},
168 debug_crash_if_lrat_check_fails_{false},
169 check_lrat_proof_{false},
170 output_lrat_proof_{false},
171 check_drat_proof_{false},
172 clause_cleanup_lbd_tier1_{0},
173 clause_cleanup_lbd_tier2_{0},
174 output_drat_proof_{false},
175 check_merged_lrat_proof_{false},
176 inprocessing_use_sat_sweeping_{false},
177 max_memory_in_mb_{::int64_t{10000}},
178 binary_minimization_algorithm_{static_cast< ::operations_research::sat::SatParameters_BinaryMinizationAlgorithm >(5)},
179 pb_cleanup_increment_{200},
180 pb_cleanup_ratio_{0.5},
181 core_minimization_level_{2},
182 max_sat_stratification_{static_cast< ::operations_research::sat::SatParameters_MaxSatStratificationAlgorithm >(1)},
183 presolve_bve_threshold_{500},
184 presolve_bve_clause_weight_{3},
185 presolve_probing_deterministic_time_limit_{30},
186 clause_cleanup_lbd_bound_{5},
187 restart_running_window_size_{50},
188 restart_dl_average_ratio_{1},
189 count_assumption_levels_in_lbd_{true},
190 subsumption_during_conflict_analysis_{true},
191 presolve_use_bva_{true},
192 use_disjunctive_constraint_in_cumulative_{true},
193 blocking_restart_window_size_{5000},
194 blocking_restart_multiplier_{1.4},
195 max_deterministic_time_{std::numeric_limits<double>::infinity()},
196 restart_lbd_average_ratio_{1},
197 presolve_bva_threshold_{1},
198 find_multiple_cores_{true},
199 cp_model_presolve_{true},
200 presolve_blocked_clause_{true},
201 cover_optimization_{true},
202 linearization_level_{1},
203 max_num_cuts_{10000},
204 cp_model_use_sat_presolve_{true},
205 exploit_integer_lp_solution_{true},
206 auto_detect_greater_than_at_least_one_of_{true},
207 instantiate_all_variables_{true},
208 binary_search_num_conflicts_{-1},
209 boolean_encoding_level_{1},
210 cp_model_probing_level_{2},
211 use_exact_lp_reason_{true},
212 add_lp_constraints_lazily_{true},
213 share_objective_bounds_{true},
214 share_level_zero_bounds_{true},
215 max_integer_rounding_scaling_{600},
216 min_orthogonality_for_lp_constraints_{0.05},
217 exploit_all_lp_solution_{true},
218 add_cg_cuts_{true},
219 add_mir_cuts_{true},
220 use_rins_lns_{true},
221 max_consecutive_inactive_count_{100},
222 pseudo_cost_reliability_threshold_{::int64_t{100}},
223 mip_max_bound_{10000000},
224 new_constraints_batch_size_{50},
225 mip_max_activity_exponent_{53},
226 mip_var_scaling_{1},
227 mip_wanted_precision_{1e-06},
228 mip_check_precision_{0.0001},
229 max_presolve_iterations_{3},
230 exploit_objective_{true},
231 catch_sigint_signal_{true},
232 use_implied_bounds_{true},
233 add_lin_max_cuts_{true},
234 merge_no_overlap_work_limit_{1000000000000},
235 merge_at_most_one_work_limit_{100000000},
236 presolve_substitution_level_{1},
237 max_all_diff_cut_size_{64},
238 hint_conflict_limit_{10},
239 max_cut_rounds_at_level_zero_{1},
240 cut_max_active_count_value_{10000000000},
241 cut_active_count_decay_{0.8},
242 absolute_gap_limit_{0.0001},
243 cut_cleanup_target_{1000},
244 fp_rounding_{static_cast< ::operations_research::sat::SatParameters_FPRoundingMethod >(2)},
245 use_sat_inprocessing_{true},
246 use_feasibility_pump_{true},
247 mip_automatically_scale_variables_{true},
248 add_zero_half_cuts_{true},
249 polarity_rephase_increment_{1000},
250 add_clique_cuts_{true},
251 convert_intervals_{true},
252 expand_reservoir_constraints_{true},
253 log_to_stdout_{true},
254 symmetry_level_{2},
255 clause_cleanup_ratio_{0.5},
256 max_domain_size_when_encoding_eq_neq_constraints_{16},
257 solution_pool_size_{3},
258 mip_max_valid_magnitude_{1e+20},
259 presolve_inclusion_work_limit_{::int64_t{100000000}},
260 cut_level_{1},
261 mip_compute_true_objective_bound_{true},
262 ignore_names_{true},
263 share_binary_clauses_{true},
264 use_dual_scheduling_heuristics_{true},
265 shaving_deterministic_time_in_probing_search_{0.001},
266 shaving_search_deterministic_time_{0.1},
267 propagation_loop_detection_factor_{10},
268 table_compression_level_{2},
269 root_lp_iterations_{2000},
270 probing_deterministic_time_limit_{1},
271 mip_drop_tolerance_{1e-16},
272 max_size_to_create_precedence_literals_in_disjunctive_{60},
273 shared_tree_num_workers_{-1},
274 new_linear_propagation_{true},
275 infer_all_diffs_{true},
276 find_big_linear_overlap_{true},
277 feasibility_jump_enable_restarts_{true},
278 shared_tree_max_nodes_per_worker_{10000},
279 feasibility_jump_decay_{0.95},
280 feasibility_jump_var_randomization_probability_{0.05},
281 feasibility_jump_var_perburbation_range_ratio_{0.2},
282 violation_ls_perturbation_period_{100},
283 linear_split_size_{100},
284 feasibility_jump_linearization_level_{2},
285 feasibility_jump_restart_factor_{1},
286 violation_ls_compound_move_probability_{0.5},
287 max_num_intervals_for_timetable_edge_finding_{100},
288 mip_presolve_level_{2},
289 lp_primal_tolerance_{1e-07},
290 feasibility_jump_max_expanded_constraint_size_{500},
291 use_lb_relax_lns_{true},
292 use_feasibility_jump_{true},
293 use_extended_probing_{true},
294 add_rlt_cuts_{true},
295 lp_dual_tolerance_{1e-07},
296 at_most_one_max_expansion_size_{3},
297 probing_num_combinations_limit_{20000},
298 inprocessing_dtime_ratio_{0.2},
299 inprocessing_probing_dtime_{1},
300 inprocessing_minimization_dtime_{1},
301 max_pairs_pairwise_reasoning_in_no_overlap_2d_{1250},
302 shared_tree_worker_min_restarts_per_subtree_{1},
303 shared_tree_open_leaves_per_worker_{2},
304 variables_shaving_level_{-1},
305 use_lns_{true},
306 share_glue_clauses_{true},
307 shared_tree_worker_enable_trail_sharing_{true},
308 inprocessing_minimization_use_conflict_analysis_{true},
309 shaving_search_threshold_{::int64_t{64}},
310 feasibility_jump_batch_dtime_{0.1},
311 lb_relax_num_workers_threshold_{16},
312 shared_tree_balance_tolerance_{1},
313 symmetry_detection_deterministic_time_limit_{1},
314 lns_initial_difficulty_{0.5},
315 lns_initial_deterministic_limit_{0.1},
316 minimize_shared_clauses_{true},
317 shared_tree_worker_enable_phase_sharing_{true},
318 remove_fixed_variables_early_{true},
319 use_linear3_for_no_overlap_2d_precedences_{true},
320 routing_cut_subset_size_for_exact_binary_relation_bound_{8},
321 routing_cut_dp_effort_{10000000},
322 routing_cut_max_infeasible_path_length_{6},
323 routing_cut_subset_size_for_shortest_paths_bound_{8},
324 max_alldiff_domain_size_{256},
325 no_overlap_2d_boolean_relations_limit_{10},
326 share_glue_clauses_dtime_{1},
327 alternative_pool_size_{1},
328 transitive_precedences_work_limit_{1000000},
329 shared_tree_split_min_dtime_{0.1},
330 solution_pool_diversity_limit_{10},
331 max_backjump_levels_{50},
332 chronological_backtrack_min_conflicts_{1000},
333 max_domain_size_for_linear2_expansion_{8},
334 find_clauses_that_are_exactly_one_{true},
335 create_1uip_boolean_during_icr_{true},
336 inprocessing_use_congruence_closure_{true},
337 extra_subsumption_during_conflict_analysis_{true},
338 eagerly_subsume_last_n_conflicts_{4},
339 max_drat_time_in_seconds_{std::numeric_limits<double>::infinity()},
340 decision_subsumption_during_conflict_analysis_{true},
341 subsume_during_vivification_{true} {}
342
343template <typename>
344PROTOBUF_CONSTEXPR SatParameters::SatParameters(::_pbi::ConstantInitialized)
345#if defined(PROTOBUF_CUSTOM_VTABLE)
346 : ::google::protobuf::Message(SatParameters_class_data_.base()),
347#else // PROTOBUF_CUSTOM_VTABLE
348 : ::google::protobuf::Message(),
349#endif // PROTOBUF_CUSTOM_VTABLE
350 _impl_(::_pbi::ConstantInitialized()) {
351}
353 PROTOBUF_CONSTEXPR SatParametersDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
355 union {
357 };
358};
359
360PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
362} // namespace sat
363} // namespace operations_research
364static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
366static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
368const ::uint32_t
370 protodesc_cold) = {
371 0x081, // bitmap
372 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_._has_bits_),
373 306, // hasbit index offset
374 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.name_),
375 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.preferred_variable_order_),
376 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.initial_polarity_),
377 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_phase_saving_),
378 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.polarity_rephase_increment_),
379 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.polarity_exploit_ls_hints_),
380 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.random_polarity_ratio_),
381 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.random_branches_ratio_),
382 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_erwa_heuristic_),
383 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.initial_variables_activity_),
384 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.also_bump_variables_in_conflict_reasons_),
385 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.minimization_algorithm_),
386 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.binary_minimization_algorithm_),
387 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.subsumption_during_conflict_analysis_),
388 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.extra_subsumption_during_conflict_analysis_),
389 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.decision_subsumption_during_conflict_analysis_),
390 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.eagerly_subsume_last_n_conflicts_),
391 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.subsume_during_vivification_),
392 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_chronological_backtracking_),
393 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_backjump_levels_),
394 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.chronological_backtrack_min_conflicts_),
395 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_period_),
396 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_period_increment_),
397 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_target_),
398 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_ratio_),
399 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_lbd_bound_),
400 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_lbd_tier1_),
401 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_lbd_tier2_),
402 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_cleanup_ordering_),
403 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.pb_cleanup_increment_),
404 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.pb_cleanup_ratio_),
405 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.variable_activity_decay_),
406 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_variable_activity_value_),
407 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.glucose_max_decay_),
408 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.glucose_decay_increment_),
409 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.glucose_decay_increment_period_),
410 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.clause_activity_decay_),
411 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_clause_activity_value_),
412 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_algorithms_),
413 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.default_restart_algorithms_),
414 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_period_),
415 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_running_window_size_),
416 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_dl_average_ratio_),
417 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.restart_lbd_average_ratio_),
418 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_blocking_restart_),
419 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.blocking_restart_window_size_),
420 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.blocking_restart_multiplier_),
421 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_conflicts_before_strategy_changes_),
422 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.strategy_change_increase_ratio_),
423 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_time_in_seconds_),
424 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_deterministic_time_),
425 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_num_deterministic_batches_),
426 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_number_of_conflicts_),
427 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_memory_in_mb_),
428 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.absolute_gap_limit_),
429 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.relative_gap_limit_),
430 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.random_seed_),
431 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.permute_variable_randomly_),
432 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.permute_presolve_constraint_order_),
433 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_absl_random_),
434 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_search_progress_),
435 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_subsolver_statistics_),
436 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_prefix_),
437 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_to_stdout_),
438 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.log_to_response_),
439 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_pb_resolution_),
440 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.minimize_reduction_during_pb_resolution_),
441 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.count_assumption_levels_in_lbd_),
442 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_bve_threshold_),
443 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.filter_sat_postsolve_clauses_),
444 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_bve_clause_weight_),
445 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.probing_deterministic_time_limit_),
446 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_probing_deterministic_time_limit_),
447 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_blocked_clause_),
448 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_use_bva_),
449 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_bva_threshold_),
450 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_presolve_iterations_),
451 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cp_model_presolve_),
452 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cp_model_probing_level_),
453 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cp_model_use_sat_presolve_),
454 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.load_at_most_ones_in_sat_presolve_),
455 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.remove_fixed_variables_early_),
456 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.detect_table_with_cost_),
457 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.table_compression_level_),
458 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.expand_alldiff_constraints_),
459 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_alldiff_domain_size_),
460 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.expand_reservoir_constraints_),
461 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_domain_size_for_linear2_expansion_),
462 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.expand_reservoir_using_circuit_),
463 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.encode_cumulative_as_reservoir_),
464 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_lin_max_size_for_expansion_),
465 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.disable_constraint_expansion_),
466 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.encode_complex_linear_constraint_with_integer_),
467 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.merge_no_overlap_work_limit_),
468 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.merge_at_most_one_work_limit_),
469 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_substitution_level_),
470 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_extract_integer_enforcement_),
471 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.presolve_inclusion_work_limit_),
472 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.ignore_names_),
473 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.infer_all_diffs_),
474 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.find_big_linear_overlap_),
475 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.find_clauses_that_are_exactly_one_),
476 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_sat_inprocessing_),
477 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_dtime_ratio_),
478 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_probing_dtime_),
479 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_minimization_dtime_),
480 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_minimization_use_conflict_analysis_),
481 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_minimization_use_all_orderings_),
482 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_use_congruence_closure_),
483 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.inprocessing_use_sat_sweeping_),
484 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_workers_),
485 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_search_workers_),
486 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_full_subsolvers_),
487 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.subsolvers_),
488 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.extra_subsolvers_),
489 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.ignore_subsolvers_),
490 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.filter_subsolvers_),
491 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.subsolver_params_),
492 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.interleave_search_),
493 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.interleave_batch_size_),
494 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_objective_bounds_),
495 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_level_zero_bounds_),
496 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_linear2_bounds_),
497 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_binary_clauses_),
498 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_glue_clauses_),
499 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.minimize_shared_clauses_),
500 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.share_glue_clauses_dtime_),
501 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.check_lrat_proof_),
502 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.check_merged_lrat_proof_),
503 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.output_lrat_proof_),
504 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.check_drat_proof_),
505 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.output_drat_proof_),
506 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_drat_time_in_seconds_),
507 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.debug_postsolve_with_full_solver_),
508 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.debug_max_num_presolve_operations_),
509 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.debug_crash_on_bad_hint_),
510 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.debug_crash_if_presolve_breaks_hint_),
511 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.debug_crash_if_lrat_check_fails_),
512 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_optimization_hints_),
513 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.core_minimization_level_),
514 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.find_multiple_cores_),
515 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cover_optimization_),
516 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_sat_assumption_order_),
517 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_sat_reverse_assumption_order_),
518 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_sat_stratification_),
519 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.propagation_loop_detection_factor_),
520 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_precedences_in_disjunctive_constraint_),
521 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.transitive_precedences_work_limit_),
522 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_size_to_create_precedence_literals_in_disjunctive_),
523 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_strong_propagation_in_disjunctive_),
524 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_dynamic_precedence_in_disjunctive_),
525 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_dynamic_precedence_in_cumulative_),
526 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_overload_checker_in_cumulative_),
527 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_conservative_scale_overload_checker_),
528 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_timetable_edge_finding_in_cumulative_),
529 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_num_intervals_for_timetable_edge_finding_),
530 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_hard_precedences_in_cumulative_),
531 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_all_precedences_),
532 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_disjunctive_constraint_in_cumulative_),
533 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.no_overlap_2d_boolean_relations_limit_),
534 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_timetabling_in_no_overlap_2d_),
535 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_energetic_reasoning_in_no_overlap_2d_),
536 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_area_energetic_reasoning_in_no_overlap_2d_),
537 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_try_edge_reasoning_in_no_overlap_2d_),
538 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_),
539 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_),
540 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_linear3_for_no_overlap_2d_precedences_),
541 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_dual_scheduling_heuristics_),
542 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_all_different_for_circuit_),
543 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_subset_size_for_binary_relation_bound_),
544 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_subset_size_for_tight_binary_relation_bound_),
545 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_subset_size_for_exact_binary_relation_bound_),
546 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_subset_size_for_shortest_paths_bound_),
547 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_dp_effort_),
548 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.routing_cut_max_infeasible_path_length_),
549 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.search_branching_),
550 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.hint_conflict_limit_),
551 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.repair_hint_),
552 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.fix_variables_to_their_hinted_value_),
553 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_probing_search_),
554 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_extended_probing_),
555 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.probing_num_combinations_limit_),
556 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shaving_deterministic_time_in_probing_search_),
557 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shaving_search_deterministic_time_),
558 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shaving_search_threshold_),
559 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_objective_lb_search_),
560 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_objective_shaving_search_),
561 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.variables_shaving_level_),
562 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.pseudo_cost_reliability_threshold_),
563 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.optimize_with_core_),
564 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.optimize_with_lb_tree_search_),
565 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.save_lp_basis_in_lb_tree_search_),
566 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.binary_search_num_conflicts_),
567 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.optimize_with_max_hs_),
568 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_feasibility_jump_),
569 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_ls_only_),
570 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_decay_),
571 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_linearization_level_),
572 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_restart_factor_),
573 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_batch_dtime_),
574 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_var_randomization_probability_),
575 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_var_perburbation_range_ratio_),
576 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_enable_restarts_),
577 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.feasibility_jump_max_expanded_constraint_size_),
578 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.num_violation_ls_),
579 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.violation_ls_perturbation_period_),
580 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.violation_ls_compound_move_probability_),
581 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_num_workers_),
582 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_shared_tree_search_),
583 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_worker_min_restarts_per_subtree_),
584 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_worker_enable_trail_sharing_),
585 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_worker_enable_phase_sharing_),
586 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_open_leaves_per_worker_),
587 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_max_nodes_per_worker_),
588 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_split_strategy_),
589 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_balance_tolerance_),
590 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.shared_tree_split_min_dtime_),
591 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.enumerate_all_solutions_),
592 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.keep_all_feasible_solutions_in_presolve_),
593 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.fill_tightened_domains_in_response_),
594 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.fill_additional_solutions_in_response_),
595 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.instantiate_all_variables_),
596 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.auto_detect_greater_than_at_least_one_of_),
597 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.stop_after_first_solution_),
598 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.stop_after_presolve_),
599 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.stop_after_root_propagation_),
600 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lns_initial_difficulty_),
601 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lns_initial_deterministic_limit_),
602 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_lns_),
603 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_lns_only_),
604 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.solution_pool_size_),
605 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.solution_pool_diversity_limit_),
606 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.alternative_pool_size_),
607 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_rins_lns_),
608 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_feasibility_pump_),
609 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_lb_relax_lns_),
610 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lb_relax_num_workers_threshold_),
611 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.fp_rounding_),
612 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.diversify_lns_params_),
613 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.randomize_search_),
614 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.search_random_variable_pool_size_),
615 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.push_all_tasks_toward_start_),
616 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_optional_variables_),
617 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_exact_lp_reason_),
618 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_combined_no_overlap_),
619 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.at_most_one_max_expansion_size_),
620 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.catch_sigint_signal_),
621 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_implied_bounds_),
622 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.polish_lp_solution_),
623 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lp_primal_tolerance_),
624 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.lp_dual_tolerance_),
625 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.convert_intervals_),
626 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.symmetry_level_),
627 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_symmetry_in_lp_),
628 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.keep_symmetry_in_presolve_),
629 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.symmetry_detection_deterministic_time_limit_),
630 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.new_linear_propagation_),
631 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.linear_split_size_),
632 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.linearization_level_),
633 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.boolean_encoding_level_),
634 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_domain_size_when_encoding_eq_neq_constraints_),
635 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_num_cuts_),
636 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cut_level_),
637 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.only_add_cuts_at_level_zero_),
638 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_objective_cut_),
639 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_cg_cuts_),
640 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_mir_cuts_),
641 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_zero_half_cuts_),
642 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_clique_cuts_),
643 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_rlt_cuts_),
644 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_all_diff_cut_size_),
645 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_lin_max_cuts_),
646 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_integer_rounding_scaling_),
647 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.add_lp_constraints_lazily_),
648 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.root_lp_iterations_),
649 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.min_orthogonality_for_lp_constraints_),
650 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_cut_rounds_at_level_zero_),
651 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.max_consecutive_inactive_count_),
652 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cut_max_active_count_value_),
653 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cut_active_count_decay_),
654 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.cut_cleanup_target_),
655 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.new_constraints_batch_size_),
656 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_integer_lp_solution_),
657 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_all_lp_solution_),
658 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_best_solution_),
659 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_relaxation_solution_),
660 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.exploit_objective_),
661 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.detect_linearized_product_),
662 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.use_new_integer_conflict_resolution_),
663 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.create_1uip_boolean_during_icr_),
664 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_max_bound_),
665 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_var_scaling_),
666 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_scale_large_domain_),
667 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_automatically_scale_variables_),
668 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.only_solve_ip_),
669 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_wanted_precision_),
670 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_max_activity_exponent_),
671 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_check_precision_),
672 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_compute_true_objective_bound_),
673 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_max_valid_magnitude_),
674 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_treat_high_magnitude_bounds_as_infinity_),
675 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_drop_tolerance_),
676 PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _impl_.mip_presolve_level_),
677 29,
678 0,
679 8,
680 6,
681 210,
682 119,
683 2,
684 31,
685 36,
686 40,
687 41,
688 9,
689 139,
690 151,
691 298,
692 301,
693 299,
694 302,
695 125,
696 292,
697 293,
698 13,
699 128,
700 1,
701 216,
702 147,
703 133,
704 134,
705 37,
706 140,
707 141,
708 10,
709 11,
710 16,
711 17,
712 14,
713 12,
714 15,
715 22,
716 28,
717 18,
718 148,
719 149,
720 157,
721 35,
722 154,
723 155,
724 38,
725 39,
726 20,
727 156,
728 111,
729 21,
730 138,
731 203,
732 62,
733 19,
734 72,
735 73,
736 74,
737 3,
738 78,
739 30,
740 214,
741 76,
742 4,
743 33,
744 150,
745 144,
746 121,
747 145,
748 231,
749 146,
750 161,
751 152,
752 158,
753 190,
754 160,
755 171,
756 165,
757 126,
758 279,
759 87,
760 229,
761 67,
762 285,
763 213,
764 294,
765 110,
766 109,
767 106,
768 75,
769 90,
770 195,
771 196,
772 197,
773 69,
774 220,
775 223,
776 236,
777 237,
778 295,
779 206,
780 259,
781 260,
782 261,
783 269,
784 113,
785 297,
786 137,
787 83,
788 50,
789 112,
790 23,
791 26,
792 24,
793 27,
794 25,
795 59,
796 56,
797 174,
798 175,
799 124,
800 224,
801 267,
802 277,
803 287,
804 130,
805 136,
806 131,
807 132,
808 135,
809 300,
810 65,
811 61,
812 81,
813 118,
814 129,
815 5,
816 142,
817 159,
818 162,
819 32,
820 34,
821 143,
822 228,
823 7,
824 289,
825 233,
826 93,
827 101,
828 102,
829 42,
830 108,
831 43,
832 248,
833 86,
834 88,
835 153,
836 286,
837 84,
838 85,
839 103,
840 114,
841 262,
842 123,
843 280,
844 225,
845 120,
846 117,
847 122,
848 281,
849 284,
850 282,
851 283,
852 45,
853 199,
854 66,
855 79,
856 71,
857 254,
858 258,
859 226,
860 227,
861 270,
862 92,
863 99,
864 265,
865 183,
866 44,
867 77,
868 107,
869 169,
870 46,
871 253,
872 95,
873 240,
874 245,
875 246,
876 271,
877 241,
878 242,
879 238,
880 251,
881 97,
882 243,
883 247,
884 234,
885 94,
886 263,
887 268,
888 278,
889 264,
890 239,
891 96,
892 273,
893 290,
894 47,
895 68,
896 57,
897 80,
898 168,
899 167,
900 49,
901 63,
902 98,
903 275,
904 276,
905 266,
906 52,
907 218,
908 291,
909 288,
910 181,
911 207,
912 252,
913 272,
914 205,
915 60,
916 53,
917 51,
918 100,
919 54,
920 172,
921 58,
922 257,
923 192,
924 193,
925 70,
926 250,
927 256,
928 212,
929 215,
930 115,
931 116,
932 274,
933 235,
934 244,
935 163,
936 170,
937 217,
938 164,
939 221,
940 48,
941 82,
942 179,
943 180,
944 209,
945 211,
946 255,
947 198,
948 194,
949 176,
950 173,
951 230,
952 177,
953 200,
954 182,
955 201,
956 202,
957 204,
958 185,
959 166,
960 178,
961 55,
962 64,
963 191,
964 104,
965 127,
966 296,
967 184,
968 187,
969 91,
970 208,
971 89,
972 188,
973 186,
974 189,
975 222,
976 219,
977 105,
978 232,
979 249,
980};
981
982static const ::_pbi::MigrationSchema
983 schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
985};
986static const ::_pb::Message* PROTOBUF_NONNULL const file_default_instances[] = {
988};
989const char descriptor_table_protodef_ortools_2fsat_2fsat_5fparameters_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
990 protodesc_cold) = {
991 "\n ortools/sat/sat_parameters.proto\022\027oper"
992 "ations_research.sat\"\264u\n\rSatParameters\022\017\n"
993 "\004name\030\253\001 \001(\t:\000\022`\n\030preferred_variable_ord"
994 "er\030\001 \001(\01624.operations_research.sat.SatPa"
995 "rameters.VariableOrder:\010IN_ORDER\022Y\n\020init"
996 "ial_polarity\030\002 \001(\0162/.operations_research"
997 ".sat.SatParameters.Polarity:\016POLARITY_FA"
998 "LSE\022\036\n\020use_phase_saving\030, \001(\010:\004true\022)\n\032p"
999 "olarity_rephase_increment\030\250\001 \001(\005:\0041000\022)"
1000 "\n\031polarity_exploit_ls_hints\030\265\002 \001(\010:\005fals"
1001 "e\022 \n\025random_polarity_ratio\030- \001(\001:\0010\022 \n\025r"
1002 "andom_branches_ratio\030 \001(\001:\0010\022!\n\022use_erw"
1003 "a_heuristic\030K \001(\010:\005false\022%\n\032initial_vari"
1004 "ables_activity\030L \001(\001:\0010\0226\n\'also_bump_var"
1005 "iables_in_conflict_reasons\030M \001(\010:\005false\022"
1006 "o\n\026minimization_algorithm\030\004 \001(\0162D.operat"
1007 "ions_research.sat.SatParameters.Conflict"
1008 "MinimizationAlgorithm:\tRECURSIVE\022\223\001\n\035bin"
1009 "ary_minimization_algorithm\030\" \001(\0162@.opera"
1010 "tions_research.sat.SatParameters.BinaryM"
1011 "inizationAlgorithm:*BINARY_MINIMIZATION_"
1012 "FROM_UIP_AND_DECISIONS\0222\n$subsumption_du"
1013 "ring_conflict_analysis\0308 \001(\010:\004true\0229\n*ex"
1014 "tra_subsumption_during_conflict_analysis"
1015 "\030\337\002 \001(\010:\004true\022<\n-decision_subsumption_du"
1016 "ring_conflict_analysis\030\341\002 \001(\010:\004true\022,\n e"
1017 "agerly_subsume_last_n_conflicts\030\327\002 \001(\005:\001"
1018 "4\022*\n\033subsume_during_vivification\030\343\002 \001(\010:"
1019 "\004true\022.\n\036use_chronological_backtracking\030"
1020 "\312\002 \001(\010:\005false\022 \n\023max_backjump_levels\030\313\002 "
1021 "\001(\005:\00250\0224\n%chronological_backtrack_min_c"
1022 "onflicts\030\314\002 \001(\005:\0041000\022$\n\025clause_cleanup_"
1023 "period\030\013 \001(\005:\00510000\022+\n\037clause_cleanup_pe"
1024 "riod_increment\030\321\002 \001(\005:\0010\022 \n\025clause_clean"
1025 "up_target\030\r \001(\005:\0010\022\"\n\024clause_cleanup_rat"
1026 "io\030\276\001 \001(\001:\0030.5\022#\n\030clause_cleanup_lbd_bou"
1027 "nd\030; \001(\005:\0015\022$\n\030clause_cleanup_lbd_tier1\030"
1028 "\335\002 \001(\005:\0010\022$\n\030clause_cleanup_lbd_tier2\030\336\002"
1029 " \001(\005:\0010\022g\n\027clause_cleanup_ordering\030< \001(\016"
1030 "25.operations_research.sat.SatParameters"
1031 ".ClauseOrdering:\017CLAUSE_ACTIVITY\022!\n\024pb_c"
1032 "leanup_increment\030. \001(\005:\003200\022\035\n\020pb_cleanu"
1033 "p_ratio\030/ \001(\001:\0030.5\022$\n\027variable_activity_"
1034 "decay\030\017 \001(\001:\0030.8\022+\n\033max_variable_activit"
1035 "y_value\030\020 \001(\001:\0061e+100\022\037\n\021glucose_max_dec"
1036 "ay\030\026 \001(\001:\0040.95\022%\n\027glucose_decay_incremen"
1037 "t\030\027 \001(\001:\0040.01\022,\n\036glucose_decay_increment"
1038 "_period\030\030 \001(\005:\0045000\022$\n\025clause_activity_d"
1039 "ecay\030\021 \001(\001:\0050.999\022(\n\031max_clause_activity"
1040 "_value\030\022 \001(\001:\0051e+20\022S\n\022restart_algorithm"
1041 "s\030= \003(\01627.operations_research.sat.SatPar"
1042 "ameters.RestartAlgorithm\022e\n\032default_rest"
1043 "art_algorithms\030F \001(\t:ALUBY_RESTART,LBD_M"
1044 "OVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_"
1045 "RESTART\022\032\n\016restart_period\030\036 \001(\005:\00250\022\'\n\033r"
1046 "estart_running_window_size\030> \001(\005:\00250\022#\n\030"
1047 "restart_dl_average_ratio\030\? \001(\001:\0011\022$\n\031res"
1048 "tart_lbd_average_ratio\030G \001(\001:\0011\022#\n\024use_b"
1049 "locking_restart\030@ \001(\010:\005false\022*\n\034blocking"
1050 "_restart_window_size\030A \001(\005:\0045000\022(\n\033bloc"
1051 "king_restart_multiplier\030B \001(\001:\0031.4\0220\n%nu"
1052 "m_conflicts_before_strategy_changes\030D \001("
1053 "\005:\0010\022)\n\036strategy_change_increase_ratio\030E"
1054 " \001(\001:\0010\022 \n\023max_time_in_seconds\030$ \001(\001:\003in"
1055 "f\022#\n\026max_deterministic_time\030C \001(\001:\003inf\022)"
1056 "\n\035max_num_deterministic_batches\030\243\002 \001(\005:\001"
1057 "0\0224\n\027max_number_of_conflicts\030% \001(\003:\0239223"
1058 "372036854775807\022\037\n\020max_memory_in_mb\030( \001("
1059 "\003:\00510000\022#\n\022absolute_gap_limit\030\237\001 \001(\001:\0060"
1060 ".0001\022\036\n\022relative_gap_limit\030\240\001 \001(\001:\0010\022\026\n"
1061 "\013random_seed\030\037 \001(\005:\0011\022)\n\031permute_variabl"
1062 "e_randomly\030\262\001 \001(\010:\005false\0221\n!permute_pres"
1063 "olve_constraint_order\030\263\001 \001(\010:\005false\022\037\n\017u"
1064 "se_absl_random\030\264\001 \001(\010:\005false\022\"\n\023log_sear"
1065 "ch_progress\030) \001(\010:\005false\022(\n\030log_subsolve"
1066 "r_statistics\030\275\001 \001(\010:\005false\022\025\n\nlog_prefix"
1067 "\030\271\001 \001(\t:\000\022\034\n\rlog_to_stdout\030\272\001 \001(\010:\004true\022"
1068 "\037\n\017log_to_response\030\273\001 \001(\010:\005false\022 \n\021use_"
1069 "pb_resolution\030+ \001(\010:\005false\0226\n\'minimize_r"
1070 "eduction_during_pb_resolution\0300 \001(\010:\005fal"
1071 "se\022,\n\036count_assumption_levels_in_lbd\0301 \001"
1072 "(\010:\004true\022#\n\026presolve_bve_threshold\0306 \001(\005"
1073 ":\003500\022,\n\034filter_sat_postsolve_clauses\030\304\002"
1074 " \001(\010:\005false\022%\n\032presolve_bve_clause_weigh"
1075 "t\0307 \001(\005:\0013\022,\n probing_deterministic_time"
1076 "_limit\030\342\001 \001(\001:\0011\0225\n)presolve_probing_det"
1077 "erministic_time_limit\0309 \001(\001:\00230\022%\n\027preso"
1078 "lve_blocked_clause\030X \001(\010:\004true\022\036\n\020presol"
1079 "ve_use_bva\030H \001(\010:\004true\022!\n\026presolve_bva_t"
1080 "hreshold\030I \001(\005:\0011\022#\n\027max_presolve_iterat"
1081 "ions\030\212\001 \001(\005:\0013\022\037\n\021cp_model_presolve\030V \001("
1082 "\010:\004true\022!\n\026cp_model_probing_level\030n \001(\005:"
1083 "\0012\022\'\n\031cp_model_use_sat_presolve\030] \001(\010:\004t"
1084 "rue\0221\n!load_at_most_ones_in_sat_presolve"
1085 "\030\317\002 \001(\010:\005false\022+\n\034remove_fixed_variables"
1086 "_early\030\266\002 \001(\010:\004true\022&\n\026detect_table_with"
1087 "_cost\030\330\001 \001(\010:\005false\022#\n\027table_compression"
1088 "_level\030\331\001 \001(\005:\0012\022*\n\032expand_alldiff_const"
1089 "raints\030\252\001 \001(\010:\005false\022%\n\027max_alldiff_doma"
1090 "in_size\030\300\002 \001(\005:\003256\022+\n\034expand_reservoir_"
1091 "constraints\030\266\001 \001(\010:\004true\0221\n%max_domain_s"
1092 "ize_for_linear2_expansion\030\324\002 \001(\005:\0018\022.\n\036e"
1093 "xpand_reservoir_using_circuit\030\240\002 \001(\010:\005fa"
1094 "lse\022.\n\036encode_cumulative_as_reservoir\030\237\002"
1095 " \001(\010:\005false\022*\n\036max_lin_max_size_for_expa"
1096 "nsion\030\230\002 \001(\005:\0010\022,\n\034disable_constraint_ex"
1097 "pansion\030\265\001 \001(\010:\005false\022=\n-encode_complex_"
1098 "linear_constraint_with_integer\030\337\001 \001(\010:\005f"
1099 "alse\0223\n\033merge_no_overlap_work_limit\030\221\001 \001"
1100 "(\001:\r1000000000000\0220\n\034merge_at_most_one_w"
1101 "ork_limit\030\222\001 \001(\001:\t100000000\022\'\n\033presolve_"
1102 "substitution_level\030\223\001 \001(\005:\0011\0224\n$presolve"
1103 "_extract_integer_enforcement\030\256\001 \001(\010:\005fal"
1104 "se\0221\n\035presolve_inclusion_work_limit\030\311\001 \001"
1105 "(\003:\t100000000\022\033\n\014ignore_names\030\312\001 \001(\010:\004tr"
1106 "ue\022\036\n\017infer_all_diffs\030\351\001 \001(\010:\004true\022&\n\027fi"
1107 "nd_big_linear_overlap\030\352\001 \001(\010:\004true\0220\n!fi"
1108 "nd_clauses_that_are_exactly_one\030\315\002 \001(\010:\004"
1109 "true\022#\n\024use_sat_inprocessing\030\243\001 \001(\010:\004tru"
1110 "e\022&\n\030inprocessing_dtime_ratio\030\221\002 \001(\001:\0030."
1111 "2\022&\n\032inprocessing_probing_dtime\030\222\002 \001(\001:\001"
1112 "1\022+\n\037inprocessing_minimization_dtime\030\223\002 "
1113 "\001(\001:\0011\022>\n/inprocessing_minimization_use_"
1114 "conflict_analysis\030\251\002 \001(\010:\004true\022;\n+inproc"
1115 "essing_minimization_use_all_orderings\030\252\002"
1116 " \001(\010:\005false\0222\n#inprocessing_use_congruen"
1117 "ce_closure\030\326\002 \001(\010:\004true\022-\n\035inprocessing_"
1118 "use_sat_sweeping\030\342\002 \001(\010:\005false\022\027\n\013num_wo"
1119 "rkers\030\316\001 \001(\005:\0010\022\035\n\022num_search_workers\030d "
1120 "\001(\005:\0010\022\037\n\023num_full_subsolvers\030\246\002 \001(\005:\0010\022"
1121 "\023\n\nsubsolvers\030\317\001 \003(\t\022\031\n\020extra_subsolvers"
1122 "\030\333\001 \003(\t\022\032\n\021ignore_subsolvers\030\321\001 \003(\t\022\032\n\021f"
1123 "ilter_subsolvers\030\245\002 \003(\t\022A\n\020subsolver_par"
1124 "ams\030\322\001 \003(\0132&.operations_research.sat.Sat"
1125 "Parameters\022!\n\021interleave_search\030\210\001 \001(\010:\005"
1126 "false\022!\n\025interleave_batch_size\030\206\001 \001(\005:\0010"
1127 "\022$\n\026share_objective_bounds\030q \001(\010:\004true\022%"
1128 "\n\027share_level_zero_bounds\030r \001(\010:\004true\022$\n"
1129 "\024share_linear2_bounds\030\306\002 \001(\010:\005false\022#\n\024s"
1130 "hare_binary_clauses\030\313\001 \001(\010:\004true\022!\n\022shar"
1131 "e_glue_clauses\030\235\002 \001(\010:\004true\022&\n\027minimize_"
1132 "shared_clauses\030\254\002 \001(\010:\004true\022$\n\030share_glu"
1133 "e_clauses_dtime\030\302\002 \001(\001:\0011\022 \n\020check_lrat_"
1134 "proof\030\330\002 \001(\010:\005false\022\'\n\027check_merged_lrat"
1135 "_proof\030\340\002 \001(\010:\005false\022!\n\021output_lrat_proo"
1136 "f\030\331\002 \001(\010:\005false\022 \n\020check_drat_proof\030\332\002 \001"
1137 "(\010:\005false\022!\n\021output_drat_proof\030\333\002 \001(\010:\005f"
1138 "alse\022&\n\030max_drat_time_in_seconds\030\334\002 \001(\001:"
1139 "\003inf\0220\n debug_postsolve_with_full_solver"
1140 "\030\242\001 \001(\010:\005false\022-\n!debug_max_num_presolve"
1141 "_operations\030\227\001 \001(\005:\0010\022\'\n\027debug_crash_on_"
1142 "bad_hint\030\303\001 \001(\010:\005false\0223\n#debug_crash_if"
1143 "_presolve_breaks_hint\030\262\002 \001(\010:\005false\022/\n\037d"
1144 "ebug_crash_if_lrat_check_fails\030\323\002 \001(\010:\005f"
1145 "alse\022$\n\026use_optimization_hints\030# \001(\010:\004tr"
1146 "ue\022\"\n\027core_minimization_level\0302 \001(\005:\0012\022!"
1147 "\n\023find_multiple_cores\030T \001(\010:\004true\022 \n\022cov"
1148 "er_optimization\030Y \001(\010:\004true\022x\n\030max_sat_a"
1149 "ssumption_order\0303 \001(\0162<.operations_resea"
1150 "rch.sat.SatParameters.MaxSatAssumptionOr"
1151 "der:\030DEFAULT_ASSUMPTION_ORDER\022/\n max_sat"
1152 "_reverse_assumption_order\0304 \001(\010:\005false\022|"
1153 "\n\026max_sat_stratification\0305 \001(\0162D.operati"
1154 "ons_research.sat.SatParameters.MaxSatStr"
1155 "atificationAlgorithm:\026STRATIFICATION_DES"
1156 "CENT\022.\n!propagation_loop_detection_facto"
1157 "r\030\335\001 \001(\001:\00210\0227\n)use_precedences_in_disju"
1158 "nctive_constraint\030J \001(\010:\004true\0223\n!transit"
1159 "ive_precedences_work_limit\030\307\002 \001(\005:\00710000"
1160 "00\022B\n5max_size_to_create_precedence_lite"
1161 "rals_in_disjunctive\030\345\001 \001(\005:\00260\0225\n%use_st"
1162 "rong_propagation_in_disjunctive\030\346\001 \001(\010:\005"
1163 "false\0225\n%use_dynamic_precedence_in_disju"
1164 "nctive\030\207\002 \001(\010:\005false\0224\n$use_dynamic_prec"
1165 "edence_in_cumulative\030\214\002 \001(\010:\005false\0221\n\"us"
1166 "e_overload_checker_in_cumulative\030N \001(\010:\005"
1167 "false\0227\n\'use_conservative_scale_overload"
1168 "_checker\030\236\002 \001(\010:\005false\0227\n(use_timetable_"
1169 "edge_finding_in_cumulative\030O \001(\010:\005false\022"
1170 ":\n,max_num_intervals_for_timetable_edge_"
1171 "finding\030\204\002 \001(\005:\003100\0222\n\"use_hard_preceden"
1172 "ces_in_cumulative\030\327\001 \001(\010:\005false\022\'\n\027explo"
1173 "it_all_precedences\030\334\001 \001(\010:\005false\0226\n(use_"
1174 "disjunctive_constraint_in_cumulative\030P \001"
1175 "(\010:\004true\0222\n%no_overlap_2d_boolean_relati"
1176 "ons_limit\030\301\002 \001(\005:\00210\0220\n use_timetabling_"
1177 "in_no_overlap_2d\030\310\001 \001(\010:\005false\0228\n(use_en"
1178 "ergetic_reasoning_in_no_overlap_2d\030\325\001 \001("
1179 "\010:\005false\022=\n-use_area_energetic_reasoning"
1180 "_in_no_overlap_2d\030\217\002 \001(\010:\005false\0227\n\'use_t"
1181 "ry_edge_reasoning_in_no_overlap_2d\030\253\002 \001("
1182 "\010:\005false\022<\n-max_pairs_pairwise_reasoning"
1183 "_in_no_overlap_2d\030\224\002 \001(\005:\0041250\022B\n6maximu"
1184 "m_regions_to_split_in_disconnected_no_ov"
1185 "erlap_2d\030\273\002 \001(\005:\0010\0228\n)use_linear3_for_no"
1186 "_overlap_2d_precedences\030\303\002 \001(\010:\004true\022-\n\036"
1187 "use_dual_scheduling_heuristics\030\326\001 \001(\010:\004t"
1188 "rue\022-\n\035use_all_different_for_circuit\030\267\002 "
1189 "\001(\010:\005false\022=\n1routing_cut_subset_size_fo"
1190 "r_binary_relation_bound\030\270\002 \001(\005:\0010\022C\n7rou"
1191 "ting_cut_subset_size_for_tight_binary_re"
1192 "lation_bound\030\271\002 \001(\005:\0010\022C\n7routing_cut_su"
1193 "bset_size_for_exact_binary_relation_boun"
1194 "d\030\274\002 \001(\005:\0018\022<\n0routing_cut_subset_size_f"
1195 "or_shortest_paths_bound\030\276\002 \001(\005:\0018\022(\n\025rou"
1196 "ting_cut_dp_effort\030\272\002 \001(\001:\01010000000\0222\n&r"
1197 "outing_cut_max_infeasible_path_length\030\275\002"
1198 " \001(\005:\0016\022b\n\020search_branching\030R \001(\01626.oper"
1199 "ations_research.sat.SatParameters.Search"
1200 "Branching:\020AUTOMATIC_SEARCH\022 \n\023hint_conf"
1201 "lict_limit\030\231\001 \001(\005:\00210\022\033\n\013repair_hint\030\247\001 "
1202 "\001(\010:\005false\0223\n#fix_variables_to_their_hin"
1203 "ted_value\030\300\001 \001(\010:\005false\022\"\n\022use_probing_s"
1204 "earch\030\260\001 \001(\010:\005false\022#\n\024use_extended_prob"
1205 "ing\030\215\002 \001(\010:\004true\022.\n\036probing_num_combinat"
1206 "ions_limit\030\220\002 \001(\005:\00520000\022<\n,shaving_dete"
1207 "rministic_time_in_probing_search\030\314\001 \001(\001:"
1208 "\0050.001\022/\n!shaving_search_deterministic_t"
1209 "ime\030\315\001 \001(\001:\0030.1\022%\n\030shaving_search_thresh"
1210 "old\030\242\002 \001(\003:\00264\022\'\n\027use_objective_lb_searc"
1211 "h\030\344\001 \001(\010:\005false\022,\n\034use_objective_shaving"
1212 "_search\030\375\001 \001(\010:\005false\022$\n\027variables_shavi"
1213 "ng_level\030\241\002 \001(\005:\002-1\022.\n!pseudo_cost_relia"
1214 "bility_threshold\030{ \001(\003:\003100\022!\n\022optimize_"
1215 "with_core\030S \001(\010:\005false\022,\n\034optimize_with_"
1216 "lb_tree_search\030\274\001 \001(\010:\005false\022/\n\037save_lp_"
1217 "basis_in_lb_tree_search\030\234\002 \001(\010:\005false\022\'\n"
1218 "\033binary_search_num_conflicts\030c \001(\005:\002-1\022#"
1219 "\n\024optimize_with_max_hs\030U \001(\010:\005false\022#\n\024u"
1220 "se_feasibility_jump\030\211\002 \001(\010:\004true\022\033\n\013use_"
1221 "ls_only\030\360\001 \001(\010:\005false\022%\n\026feasibility_jum"
1222 "p_decay\030\362\001 \001(\001:\0040.95\0220\n$feasibility_jump"
1223 "_linearization_level\030\201\002 \001(\005:\0012\022+\n\037feasib"
1224 "ility_jump_restart_factor\030\202\002 \001(\005:\0011\022*\n\034f"
1225 "easibility_jump_batch_dtime\030\244\002 \001(\001:\0030.1\022"
1226 "=\n.feasibility_jump_var_randomization_pr"
1227 "obability\030\367\001 \001(\001:\0040.05\022;\n-feasibility_ju"
1228 "mp_var_perburbation_range_ratio\030\370\001 \001(\001:\003"
1229 "0.2\022/\n feasibility_jump_enable_restarts\030"
1230 "\372\001 \001(\010:\004true\022;\n-feasibility_jump_max_exp"
1231 "anded_constraint_size\030\210\002 \001(\005:\003500\022\034\n\020num"
1232 "_violation_ls\030\364\001 \001(\005:\0010\022.\n violation_ls_"
1233 "perturbation_period\030\371\001 \001(\005:\003100\0224\n&viola"
1234 "tion_ls_compound_move_probability\030\203\002 \001(\001"
1235 ":\0030.5\022$\n\027shared_tree_num_workers\030\353\001 \001(\005:"
1236 "\002-1\022&\n\026use_shared_tree_search\030\354\001 \001(\010:\005fa"
1237 "lse\0227\n+shared_tree_worker_min_restarts_p"
1238 "er_subtree\030\232\002 \001(\005:\0011\0226\n\'shared_tree_work"
1239 "er_enable_trail_sharing\030\247\002 \001(\010:\004true\0226\n\'"
1240 "shared_tree_worker_enable_phase_sharing\030"
1241 "\260\002 \001(\010:\004true\022.\n\"shared_tree_open_leaves_"
1242 "per_worker\030\231\002 \001(\001:\0012\0220\n shared_tree_max_"
1243 "nodes_per_worker\030\356\001 \001(\005:\00510000\022x\n\032shared"
1244 "_tree_split_strategy\030\357\001 \001(\0162>.operations"
1245 "_research.sat.SatParameters.SharedTreeSp"
1246 "litStrategy:\023SPLIT_STRATEGY_AUTO\022)\n\035shar"
1247 "ed_tree_balance_tolerance\030\261\002 \001(\005:\0011\022)\n\033s"
1248 "hared_tree_split_min_dtime\030\310\002 \001(\001:\0030.1\022&"
1249 "\n\027enumerate_all_solutions\030W \001(\010:\005false\0227"
1250 "\n\'keep_all_feasible_solutions_in_presolv"
1251 "e\030\255\001 \001(\010:\005false\0222\n\"fill_tightened_domain"
1252 "s_in_response\030\204\001 \001(\010:\005false\0225\n%fill_addi"
1253 "tional_solutions_in_response\030\302\001 \001(\010:\005fal"
1254 "se\022\'\n\031instantiate_all_variables\030j \001(\010:\004t"
1255 "rue\0226\n(auto_detect_greater_than_at_least"
1256 "_one_of\030_ \001(\010:\004true\022(\n\031stop_after_first_"
1257 "solution\030b \001(\010:\005false\022#\n\023stop_after_pres"
1258 "olve\030\225\001 \001(\010:\005false\022+\n\033stop_after_root_pr"
1259 "opagation\030\374\001 \001(\010:\005false\022$\n\026lns_initial_d"
1260 "ifficulty\030\263\002 \001(\001:\0030.5\022-\n\037lns_initial_det"
1261 "erministic_limit\030\264\002 \001(\001:\0030.1\022\026\n\007use_lns\030"
1262 "\233\002 \001(\010:\004true\022\033\n\014use_lns_only\030e \001(\010:\005fals"
1263 "e\022\036\n\022solution_pool_size\030\301\001 \001(\005:\0013\022*\n\035sol"
1264 "ution_pool_diversity_limit\030\311\002 \001(\005:\00210\022!\n"
1265 "\025alternative_pool_size\030\305\002 \001(\005:\0011\022\033\n\014use_"
1266 "rins_lns\030\201\001 \001(\010:\004true\022#\n\024use_feasibility"
1267 "_pump\030\244\001 \001(\010:\004true\022\037\n\020use_lb_relax_lns\030\377"
1268 "\001 \001(\010:\004true\022+\n\036lb_relax_num_workers_thre"
1269 "shold\030\250\002 \001(\005:\00216\022c\n\013fp_rounding\030\245\001 \001(\01627"
1270 ".operations_research.sat.SatParameters.F"
1271 "PRoundingMethod:\024PROPAGATION_ASSISTED\022$\n"
1272 "\024diversify_lns_params\030\211\001 \001(\010:\005false\022\037\n\020r"
1273 "andomize_search\030g \001(\010:\005false\022+\n search_r"
1274 "andom_variable_pool_size\030h \001(\003:\0010\022+\n\033pus"
1275 "h_all_tasks_toward_start\030\206\002 \001(\010:\005false\022%"
1276 "\n\026use_optional_variables\030l \001(\010:\005false\022!\n"
1277 "\023use_exact_lp_reason\030m \001(\010:\004true\022\'\n\027use_"
1278 "combined_no_overlap\030\205\001 \001(\010:\005false\022*\n\036at_"
1279 "most_one_max_expansion_size\030\216\002 \001(\005:\0013\022\"\n"
1280 "\023catch_sigint_signal\030\207\001 \001(\010:\004true\022!\n\022use"
1281 "_implied_bounds\030\220\001 \001(\010:\004true\022\"\n\022polish_l"
1282 "p_solution\030\257\001 \001(\010:\005false\022#\n\023lp_primal_to"
1283 "lerance\030\212\002 \001(\001:\0051e-07\022!\n\021lp_dual_toleran"
1284 "ce\030\213\002 \001(\001:\0051e-07\022 \n\021convert_intervals\030\261\001"
1285 " \001(\010:\004true\022\032\n\016symmetry_level\030\267\001 \001(\005:\0012\022\""
1286 "\n\022use_symmetry_in_lp\030\255\002 \001(\010:\005false\022)\n\031ke"
1287 "ep_symmetry_in_presolve\030\257\002 \001(\010:\005false\0227\n"
1288 "+symmetry_detection_deterministic_time_l"
1289 "imit\030\256\002 \001(\001:\0011\022%\n\026new_linear_propagation"
1290 "\030\340\001 \001(\010:\004true\022\037\n\021linear_split_size\030\200\002 \001("
1291 "\005:\003100\022\036\n\023linearization_level\030Z \001(\005:\0011\022!"
1292 "\n\026boolean_encoding_level\030k \001(\005:\0011\022=\n0max"
1293 "_domain_size_when_encoding_eq_neq_constr"
1294 "aints\030\277\001 \001(\005:\00216\022\033\n\014max_num_cuts\030[ \001(\005:\005"
1295 "10000\022\025\n\tcut_level\030\304\001 \001(\005:\0011\022*\n\033only_add"
1296 "_cuts_at_level_zero\030\\ \001(\010:\005false\022!\n\021add_"
1297 "objective_cut\030\305\001 \001(\010:\005false\022\031\n\013add_cg_cu"
1298 "ts\030u \001(\010:\004true\022\032\n\014add_mir_cuts\030x \001(\010:\004tr"
1299 "ue\022!\n\022add_zero_half_cuts\030\251\001 \001(\010:\004true\022\036\n"
1300 "\017add_clique_cuts\030\254\001 \001(\010:\004true\022\033\n\014add_rlt"
1301 "_cuts\030\227\002 \001(\010:\004true\022\"\n\025max_all_diff_cut_s"
1302 "ize\030\224\001 \001(\005:\00264\022\037\n\020add_lin_max_cuts\030\230\001 \001("
1303 "\010:\004true\022)\n\034max_integer_rounding_scaling\030"
1304 "w \001(\005:\003600\022\'\n\031add_lp_constraints_lazily\030"
1305 "p \001(\010:\004true\022!\n\022root_lp_iterations\030\343\001 \001(\005"
1306 ":\0042000\0222\n$min_orthogonality_for_lp_const"
1307 "raints\030s \001(\001:\0040.05\022(\n\034max_cut_rounds_at_"
1308 "level_zero\030\232\001 \001(\005:\0011\022+\n\036max_consecutive_"
1309 "inactive_count\030y \001(\005:\003100\0220\n\032cut_max_act"
1310 "ive_count_value\030\233\001 \001(\001:\01310000000000\022$\n\026c"
1311 "ut_active_count_decay\030\234\001 \001(\001:\0030.8\022!\n\022cut"
1312 "_cleanup_target\030\235\001 \001(\005:\0041000\022&\n\032new_cons"
1313 "traints_batch_size\030z \001(\005:\00250\022)\n\033exploit_"
1314 "integer_lp_solution\030^ \001(\010:\004true\022%\n\027explo"
1315 "it_all_lp_solution\030t \001(\010:\004true\022%\n\025exploi"
1316 "t_best_solution\030\202\001 \001(\010:\005false\022+\n\033exploit"
1317 "_relaxation_solution\030\241\001 \001(\010:\005false\022 \n\021ex"
1318 "ploit_objective\030\203\001 \001(\010:\004true\022)\n\031detect_l"
1319 "inearized_product\030\225\002 \001(\010:\005false\0223\n#use_n"
1320 "ew_integer_conflict_resolution\030\320\002 \001(\010:\005f"
1321 "alse\022-\n\036create_1uip_boolean_during_icr\030\325"
1322 "\002 \001(\010:\004true\022\037\n\rmip_max_bound\030| \001(\001:\0101000"
1323 "0000\022\032\n\017mip_var_scaling\030} \001(\001:\0011\022&\n\026mip_"
1324 "scale_large_domain\030\341\001 \001(\010:\005false\0220\n!mip_"
1325 "automatically_scale_variables\030\246\001 \001(\010:\004tr"
1326 "ue\022\035\n\ronly_solve_ip\030\336\001 \001(\010:\005false\022#\n\024mip"
1327 "_wanted_precision\030~ \001(\001:\0051e-06\022%\n\031mip_ma"
1328 "x_activity_exponent\030\177 \001(\005:\00253\022$\n\023mip_che"
1329 "ck_precision\030\200\001 \001(\001:\0060.0001\022/\n mip_compu"
1330 "te_true_objective_bound\030\306\001 \001(\010:\004true\022\'\n\027"
1331 "mip_max_valid_magnitude\030\307\001 \001(\001:\0051e+20\022;\n"
1332 "+mip_treat_high_magnitude_bounds_as_infi"
1333 "nity\030\226\002 \001(\010:\005false\022\"\n\022mip_drop_tolerance"
1334 "\030\350\001 \001(\001:\0051e-16\022\036\n\022mip_presolve_level\030\205\002 "
1335 "\001(\005:\0012\"H\n\rVariableOrder\022\014\n\010IN_ORDER\020\000\022\024\n"
1336 "\020IN_REVERSE_ORDER\020\001\022\023\n\017IN_RANDOM_ORDER\020\002"
1337 "\"F\n\010Polarity\022\021\n\rPOLARITY_TRUE\020\000\022\022\n\016POLAR"
1338 "ITY_FALSE\020\001\022\023\n\017POLARITY_RANDOM\020\002\"J\n\035Conf"
1339 "lictMinimizationAlgorithm\022\010\n\004NONE\020\000\022\n\n\006S"
1340 "IMPLE\020\001\022\r\n\tRECURSIVE\020\002\"\004\010\003\020\003\"\233\001\n\031BinaryM"
1341 "inizationAlgorithm\022\032\n\026NO_BINARY_MINIMIZA"
1342 "TION\020\000\022 \n\034BINARY_MINIMIZATION_FROM_UIP\020\001"
1343 "\022.\n*BINARY_MINIMIZATION_FROM_UIP_AND_DEC"
1344 "ISIONS\020\005\"\004\010\002\020\002\"\004\010\003\020\003\"\004\010\004\020\004\"5\n\016ClauseOrde"
1345 "ring\022\023\n\017CLAUSE_ACTIVITY\020\000\022\016\n\nCLAUSE_LBD\020"
1346 "\001\"\206\001\n\020RestartAlgorithm\022\016\n\nNO_RESTART\020\000\022\020"
1347 "\n\014LUBY_RESTART\020\001\022\035\n\031DL_MOVING_AVERAGE_RE"
1348 "START\020\002\022\036\n\032LBD_MOVING_AVERAGE_RESTART\020\003\022"
1349 "\021\n\rFIXED_RESTART\020\004\"t\n\025MaxSatAssumptionOr"
1350 "der\022\034\n\030DEFAULT_ASSUMPTION_ORDER\020\000\022\035\n\031ORD"
1351 "ER_ASSUMPTION_BY_DEPTH\020\001\022\036\n\032ORDER_ASSUMP"
1352 "TION_BY_WEIGHT\020\002\"o\n\035MaxSatStratification"
1353 "Algorithm\022\027\n\023STRATIFICATION_NONE\020\000\022\032\n\026ST"
1354 "RATIFICATION_DESCENT\020\001\022\031\n\025STRATIFICATION"
1355 "_ASCENT\020\002\"\341\001\n\017SearchBranching\022\024\n\020AUTOMAT"
1356 "IC_SEARCH\020\000\022\020\n\014FIXED_SEARCH\020\001\022\024\n\020PORTFOL"
1357 "IO_SEARCH\020\002\022\r\n\tLP_SEARCH\020\003\022\026\n\022PSEUDO_COS"
1358 "T_SEARCH\020\004\022\'\n#PORTFOLIO_WITH_QUICK_RESTA"
1359 "RT_SEARCH\020\005\022\017\n\013HINT_SEARCH\020\006\022\030\n\024PARTIAL_"
1360 "FIXED_SEARCH\020\007\022\025\n\021RANDOMIZED_SEARCH\020\010\"\270\001"
1361 "\n\027SharedTreeSplitStrategy\022\027\n\023SPLIT_STRAT"
1362 "EGY_AUTO\020\000\022\036\n\032SPLIT_STRATEGY_DISCREPANCY"
1363 "\020\001\022\037\n\033SPLIT_STRATEGY_OBJECTIVE_LB\020\002\022 \n\034S"
1364 "PLIT_STRATEGY_BALANCED_TREE\020\003\022!\n\035SPLIT_S"
1365 "TRATEGY_FIRST_PROPOSAL\020\004\"h\n\020FPRoundingMe"
1366 "thod\022\023\n\017NEAREST_INTEGER\020\000\022\016\n\nLOCK_BASED\020"
1367 "\001\022\025\n\021ACTIVE_LOCK_BASED\020\003\022\030\n\024PROPAGATION_"
1368 "ASSISTED\020\002Bk\n\026com.google.ortools.satP\001Z:"
1369 "github.com/google/or-tools/ortools/sat/p"
1370 "roto/satparameters\252\002\022Google.OrTools.Sat"
1371};
1373PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto = {
1374 false,
1375 false,
1376 15199,
1377 descriptor_table_protodef_ortools_2fsat_2fsat_5fparameters_2eproto,
1378 "ortools/sat/sat_parameters.proto",
1380 nullptr,
1381 0,
1382 1,
1383 schemas,
1388};
1389namespace operations_research {
1390namespace sat {
1391const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_VariableOrder_descriptor() {
1392 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1394}
1395PROTOBUF_CONSTINIT const uint32_t SatParameters_VariableOrder_internal_data_[] = {
1396 196608u, 0u, };
1397const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_Polarity_descriptor() {
1398 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1400}
1401PROTOBUF_CONSTINIT const uint32_t SatParameters_Polarity_internal_data_[] = {
1402 196608u, 0u, };
1403const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_ConflictMinimizationAlgorithm_descriptor() {
1404 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1406}
1408 196608u, 0u, };
1409const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_BinaryMinizationAlgorithm_descriptor() {
1410 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1412}
1413PROTOBUF_CONSTINIT const uint32_t SatParameters_BinaryMinizationAlgorithm_internal_data_[] = {
1414 131072u, 32u, 8u, };
1415const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_ClauseOrdering_descriptor() {
1416 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1418}
1419PROTOBUF_CONSTINIT const uint32_t SatParameters_ClauseOrdering_internal_data_[] = {
1420 131072u, 0u, };
1421const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_RestartAlgorithm_descriptor() {
1422 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1424}
1425PROTOBUF_CONSTINIT const uint32_t SatParameters_RestartAlgorithm_internal_data_[] = {
1426 327680u, 0u, };
1427const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_MaxSatAssumptionOrder_descriptor() {
1428 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1430}
1431PROTOBUF_CONSTINIT const uint32_t SatParameters_MaxSatAssumptionOrder_internal_data_[] = {
1432 196608u, 0u, };
1433const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_MaxSatStratificationAlgorithm_descriptor() {
1434 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1436}
1438 196608u, 0u, };
1439const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_SearchBranching_descriptor() {
1440 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1442}
1443PROTOBUF_CONSTINIT const uint32_t SatParameters_SearchBranching_internal_data_[] = {
1444 589824u, 0u, };
1445const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_SharedTreeSplitStrategy_descriptor() {
1446 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1448}
1449PROTOBUF_CONSTINIT const uint32_t SatParameters_SharedTreeSplitStrategy_internal_data_[] = {
1450 327680u, 0u, };
1451const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SatParameters_FPRoundingMethod_descriptor() {
1452 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
1454}
1455PROTOBUF_CONSTINIT const uint32_t SatParameters_FPRoundingMethod_internal_data_[] = {
1456 262144u, 0u, };
1457// ===================================================================
1458
1459class SatParameters::_Internal {
1460 public:
1461 using HasBits =
1462 decltype(::std::declval<SatParameters>()._impl_._has_bits_);
1463 static constexpr ::int32_t kHasBitsOffset =
1464 8 * PROTOBUF_FIELD_OFFSET(SatParameters, _impl_._has_bits_);
1465};
1466
1467/*static*/ const ::_pbi::LazyString SatParameters::Impl_::_i_give_permission_to_break_this_code_default_default_restart_algorithms_{
1468 {{"LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART", 65}},
1469 {nullptr},
1470};
1471SatParameters::SatParameters(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1472#if defined(PROTOBUF_CUSTOM_VTABLE)
1473 : ::google::protobuf::Message(arena, SatParameters_class_data_.base()) {
1474#else // PROTOBUF_CUSTOM_VTABLE
1475 : ::google::protobuf::Message(arena) {
1476#endif // PROTOBUF_CUSTOM_VTABLE
1477 SharedCtor(arena);
1478 // @@protoc_insertion_point(arena_constructor:operations_research.sat.SatParameters)
1479}
1480PROTOBUF_NDEBUG_INLINE SatParameters::Impl_::Impl_(
1481 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
1482 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
1483 [[maybe_unused]] const ::operations_research::sat::SatParameters& from_msg)
1484 : _has_bits_{from._has_bits_},
1485 _cached_size_{0},
1486 restart_algorithms_{visibility, arena, from.restart_algorithms_},
1487 subsolvers_{visibility, arena, from.subsolvers_},
1488 ignore_subsolvers_{visibility, arena, from.ignore_subsolvers_},
1489 subsolver_params_{visibility, arena, from.subsolver_params_},
1490 extra_subsolvers_{visibility, arena, from.extra_subsolvers_},
1491 filter_subsolvers_{visibility, arena, from.filter_subsolvers_},
1492 default_restart_algorithms_(arena, from.default_restart_algorithms_, _i_give_permission_to_break_this_code_default_default_restart_algorithms_),
1493 name_(arena, from.name_),
1494 log_prefix_(arena, from.log_prefix_) {}
1495
1497 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
1498 const SatParameters& from)
1499#if defined(PROTOBUF_CUSTOM_VTABLE)
1500 : ::google::protobuf::Message(arena, SatParameters_class_data_.base()) {
1501#else // PROTOBUF_CUSTOM_VTABLE
1502 : ::google::protobuf::Message(arena) {
1503#endif // PROTOBUF_CUSTOM_VTABLE
1504 SatParameters* const _this = this;
1505 (void)_this;
1506 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1507 from._internal_metadata_);
1508 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
1509 ::memcpy(reinterpret_cast<char*>(&_impl_) +
1510 offsetof(Impl_, preferred_variable_order_),
1511 reinterpret_cast<const char*>(&from._impl_) +
1512 offsetof(Impl_, preferred_variable_order_),
1513 offsetof(Impl_, max_number_of_conflicts_) -
1514 offsetof(Impl_, preferred_variable_order_) +
1515 sizeof(Impl_::max_number_of_conflicts_));
1516 ::memcpy(reinterpret_cast<char*>(&_impl_) +
1517 offsetof(Impl_, random_branches_ratio_),
1518 reinterpret_cast<const char*>(&from._impl_) +
1519 offsetof(Impl_, random_branches_ratio_),
1520 offsetof(Impl_, subsume_during_vivification_) -
1521 offsetof(Impl_, random_branches_ratio_) +
1522 sizeof(Impl_::subsume_during_vivification_));
1523
1524 // @@protoc_insertion_point(copy_constructor:operations_research.sat.SatParameters)
1525}
1526PROTOBUF_NDEBUG_INLINE SatParameters::Impl_::Impl_(
1527 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
1528 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1529 : _cached_size_{0},
1530 use_optimization_hints_{true},
1531 use_phase_saving_{true},
1532 use_precedences_in_disjunctive_constraint_{true},
1533 initial_polarity_{static_cast< ::operations_research::sat::SatParameters_Polarity >(1)},
1534 minimization_algorithm_{static_cast< ::operations_research::sat::SatParameters_ConflictMinimizationAlgorithm >(2)},
1535 variable_activity_decay_{0.8},
1536 max_variable_activity_value_{1e+100},
1537 clause_activity_decay_{0.999},
1538 clause_cleanup_period_{10000},
1539 glucose_decay_increment_period_{5000},
1540 max_clause_activity_value_{1e+20},
1541 glucose_max_decay_{0.95},
1542 glucose_decay_increment_{0.01},
1543 restart_period_{50},
1544 random_seed_{1},
1545 max_time_in_seconds_{std::numeric_limits<double>::infinity()},
1546 max_number_of_conflicts_{::int64_t{9223372036854775807}},
1547 restart_algorithms_{visibility, arena},
1548 subsolvers_{visibility, arena},
1549 ignore_subsolvers_{visibility, arena},
1550 subsolver_params_{visibility, arena},
1551 extra_subsolvers_{visibility, arena},
1552 filter_subsolvers_{visibility, arena},
1553 default_restart_algorithms_(arena, Impl_::_i_give_permission_to_break_this_code_default_default_restart_algorithms_),
1554 name_(arena),
1555 log_prefix_(arena),
1556 max_memory_in_mb_{::int64_t{10000}},
1557 binary_minimization_algorithm_{static_cast< ::operations_research::sat::SatParameters_BinaryMinizationAlgorithm >(5)},
1558 pb_cleanup_increment_{200},
1559 pb_cleanup_ratio_{0.5},
1560 core_minimization_level_{2},
1561 max_sat_stratification_{static_cast< ::operations_research::sat::SatParameters_MaxSatStratificationAlgorithm >(1)},
1562 presolve_bve_threshold_{500},
1563 presolve_bve_clause_weight_{3},
1564 presolve_probing_deterministic_time_limit_{30},
1565 clause_cleanup_lbd_bound_{5},
1566 restart_running_window_size_{50},
1567 restart_dl_average_ratio_{1},
1568 count_assumption_levels_in_lbd_{true},
1569 subsumption_during_conflict_analysis_{true},
1570 presolve_use_bva_{true},
1571 use_disjunctive_constraint_in_cumulative_{true},
1572 blocking_restart_window_size_{5000},
1573 blocking_restart_multiplier_{1.4},
1574 max_deterministic_time_{std::numeric_limits<double>::infinity()},
1575 restart_lbd_average_ratio_{1},
1576 presolve_bva_threshold_{1},
1577 find_multiple_cores_{true},
1578 cp_model_presolve_{true},
1579 presolve_blocked_clause_{true},
1580 cover_optimization_{true},
1581 linearization_level_{1},
1582 max_num_cuts_{10000},
1583 cp_model_use_sat_presolve_{true},
1584 exploit_integer_lp_solution_{true},
1585 auto_detect_greater_than_at_least_one_of_{true},
1586 instantiate_all_variables_{true},
1587 binary_search_num_conflicts_{-1},
1588 boolean_encoding_level_{1},
1589 cp_model_probing_level_{2},
1590 use_exact_lp_reason_{true},
1591 add_lp_constraints_lazily_{true},
1592 share_objective_bounds_{true},
1593 share_level_zero_bounds_{true},
1594 max_integer_rounding_scaling_{600},
1595 min_orthogonality_for_lp_constraints_{0.05},
1596 exploit_all_lp_solution_{true},
1597 add_cg_cuts_{true},
1598 add_mir_cuts_{true},
1599 use_rins_lns_{true},
1600 max_consecutive_inactive_count_{100},
1601 pseudo_cost_reliability_threshold_{::int64_t{100}},
1602 mip_max_bound_{10000000},
1603 new_constraints_batch_size_{50},
1604 mip_max_activity_exponent_{53},
1605 mip_var_scaling_{1},
1606 mip_wanted_precision_{1e-06},
1607 mip_check_precision_{0.0001},
1608 max_presolve_iterations_{3},
1609 exploit_objective_{true},
1610 catch_sigint_signal_{true},
1611 use_implied_bounds_{true},
1612 add_lin_max_cuts_{true},
1613 merge_no_overlap_work_limit_{1000000000000},
1614 merge_at_most_one_work_limit_{100000000},
1615 presolve_substitution_level_{1},
1616 max_all_diff_cut_size_{64},
1617 hint_conflict_limit_{10},
1618 max_cut_rounds_at_level_zero_{1},
1619 cut_max_active_count_value_{10000000000},
1620 cut_active_count_decay_{0.8},
1621 absolute_gap_limit_{0.0001},
1622 cut_cleanup_target_{1000},
1623 fp_rounding_{static_cast< ::operations_research::sat::SatParameters_FPRoundingMethod >(2)},
1624 use_sat_inprocessing_{true},
1625 use_feasibility_pump_{true},
1626 mip_automatically_scale_variables_{true},
1627 add_zero_half_cuts_{true},
1628 polarity_rephase_increment_{1000},
1629 add_clique_cuts_{true},
1630 convert_intervals_{true},
1631 expand_reservoir_constraints_{true},
1632 log_to_stdout_{true},
1633 symmetry_level_{2},
1634 clause_cleanup_ratio_{0.5},
1635 max_domain_size_when_encoding_eq_neq_constraints_{16},
1636 solution_pool_size_{3},
1637 mip_max_valid_magnitude_{1e+20},
1638 presolve_inclusion_work_limit_{::int64_t{100000000}},
1639 cut_level_{1},
1640 mip_compute_true_objective_bound_{true},
1641 ignore_names_{true},
1642 share_binary_clauses_{true},
1643 use_dual_scheduling_heuristics_{true},
1644 shaving_deterministic_time_in_probing_search_{0.001},
1645 shaving_search_deterministic_time_{0.1},
1646 propagation_loop_detection_factor_{10},
1647 table_compression_level_{2},
1648 root_lp_iterations_{2000},
1649 probing_deterministic_time_limit_{1},
1650 mip_drop_tolerance_{1e-16},
1651 max_size_to_create_precedence_literals_in_disjunctive_{60},
1652 shared_tree_num_workers_{-1},
1653 new_linear_propagation_{true},
1654 infer_all_diffs_{true},
1655 find_big_linear_overlap_{true},
1656 feasibility_jump_enable_restarts_{true},
1657 shared_tree_max_nodes_per_worker_{10000},
1658 feasibility_jump_decay_{0.95},
1659 feasibility_jump_var_randomization_probability_{0.05},
1660 feasibility_jump_var_perburbation_range_ratio_{0.2},
1661 violation_ls_perturbation_period_{100},
1662 linear_split_size_{100},
1663 feasibility_jump_linearization_level_{2},
1664 feasibility_jump_restart_factor_{1},
1665 violation_ls_compound_move_probability_{0.5},
1666 max_num_intervals_for_timetable_edge_finding_{100},
1667 mip_presolve_level_{2},
1668 lp_primal_tolerance_{1e-07},
1669 feasibility_jump_max_expanded_constraint_size_{500},
1670 use_lb_relax_lns_{true},
1671 use_feasibility_jump_{true},
1672 use_extended_probing_{true},
1673 add_rlt_cuts_{true},
1674 lp_dual_tolerance_{1e-07},
1675 at_most_one_max_expansion_size_{3},
1676 probing_num_combinations_limit_{20000},
1677 inprocessing_dtime_ratio_{0.2},
1678 inprocessing_probing_dtime_{1},
1679 inprocessing_minimization_dtime_{1},
1680 max_pairs_pairwise_reasoning_in_no_overlap_2d_{1250},
1681 shared_tree_worker_min_restarts_per_subtree_{1},
1682 shared_tree_open_leaves_per_worker_{2},
1683 variables_shaving_level_{-1},
1684 use_lns_{true},
1685 share_glue_clauses_{true},
1686 shared_tree_worker_enable_trail_sharing_{true},
1687 inprocessing_minimization_use_conflict_analysis_{true},
1688 shaving_search_threshold_{::int64_t{64}},
1689 feasibility_jump_batch_dtime_{0.1},
1690 lb_relax_num_workers_threshold_{16},
1691 shared_tree_balance_tolerance_{1},
1692 symmetry_detection_deterministic_time_limit_{1},
1693 lns_initial_difficulty_{0.5},
1694 lns_initial_deterministic_limit_{0.1},
1695 minimize_shared_clauses_{true},
1696 shared_tree_worker_enable_phase_sharing_{true},
1697 remove_fixed_variables_early_{true},
1698 use_linear3_for_no_overlap_2d_precedences_{true},
1699 routing_cut_subset_size_for_exact_binary_relation_bound_{8},
1700 routing_cut_dp_effort_{10000000},
1701 routing_cut_max_infeasible_path_length_{6},
1702 routing_cut_subset_size_for_shortest_paths_bound_{8},
1703 max_alldiff_domain_size_{256},
1704 no_overlap_2d_boolean_relations_limit_{10},
1705 share_glue_clauses_dtime_{1},
1706 alternative_pool_size_{1},
1707 transitive_precedences_work_limit_{1000000},
1708 shared_tree_split_min_dtime_{0.1},
1709 solution_pool_diversity_limit_{10},
1710 max_backjump_levels_{50},
1711 chronological_backtrack_min_conflicts_{1000},
1712 max_domain_size_for_linear2_expansion_{8},
1713 find_clauses_that_are_exactly_one_{true},
1714 create_1uip_boolean_during_icr_{true},
1715 inprocessing_use_congruence_closure_{true},
1716 extra_subsumption_during_conflict_analysis_{true},
1717 eagerly_subsume_last_n_conflicts_{4},
1718 max_drat_time_in_seconds_{std::numeric_limits<double>::infinity()},
1719 decision_subsumption_during_conflict_analysis_{true},
1720 subsume_during_vivification_{true} {}
1721
1722inline void SatParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
1723 new (&_impl_) Impl_(internal_visibility(), arena);
1724 ::memset(reinterpret_cast<char*>(&_impl_) +
1725 offsetof(Impl_, preferred_variable_order_),
1726 0,
1727 offsetof(Impl_, use_pb_resolution_) -
1728 offsetof(Impl_, preferred_variable_order_) +
1729 sizeof(Impl_::use_pb_resolution_));
1730 ::memset(reinterpret_cast<char*>(&_impl_) +
1731 offsetof(Impl_, random_branches_ratio_),
1732 0,
1733 offsetof(Impl_, inprocessing_use_sat_sweeping_) -
1734 offsetof(Impl_, random_branches_ratio_) +
1735 sizeof(Impl_::inprocessing_use_sat_sweeping_));
1736}
1738 // @@protoc_insertion_point(destructor:operations_research.sat.SatParameters)
1739 SharedDtor(*this);
1740}
1741inline void SatParameters::SharedDtor(MessageLite& self) {
1742 SatParameters& this_ = static_cast<SatParameters&>(self);
1743 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1744 this_.CheckHasBitConsistency();
1745 }
1746 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
1747 ABSL_DCHECK(this_.GetArena() == nullptr);
1748 this_._impl_.default_restart_algorithms_.Destroy();
1749 this_._impl_.name_.Destroy();
1750 this_._impl_.log_prefix_.Destroy();
1751 this_._impl_.~Impl_();
1752}
1753
1754inline void* PROTOBUF_NONNULL SatParameters::PlacementNew_(
1755 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
1756 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
1757 return ::new (mem) SatParameters(arena);
1758}
1759constexpr auto SatParameters::InternalNewImpl_() {
1760 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
1761 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_algorithms_) +
1762 decltype(SatParameters::_impl_.restart_algorithms_)::
1763 InternalGetArenaOffset(
1764 ::google::protobuf::Message::internal_visibility()),
1765 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsolvers_) +
1766 decltype(SatParameters::_impl_.subsolvers_)::
1767 InternalGetArenaOffset(
1768 ::google::protobuf::Message::internal_visibility()),
1769 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.extra_subsolvers_) +
1770 decltype(SatParameters::_impl_.extra_subsolvers_)::
1771 InternalGetArenaOffset(
1772 ::google::protobuf::Message::internal_visibility()),
1773 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.ignore_subsolvers_) +
1774 decltype(SatParameters::_impl_.ignore_subsolvers_)::
1775 InternalGetArenaOffset(
1776 ::google::protobuf::Message::internal_visibility()),
1777 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.filter_subsolvers_) +
1778 decltype(SatParameters::_impl_.filter_subsolvers_)::
1779 InternalGetArenaOffset(
1780 ::google::protobuf::Message::internal_visibility()),
1781 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsolver_params_) +
1782 decltype(SatParameters::_impl_.subsolver_params_)::
1783 InternalGetArenaOffset(
1784 ::google::protobuf::Message::internal_visibility()),
1785 });
1786 if (arena_bits.has_value()) {
1787 return ::google::protobuf::internal::MessageCreator::CopyInit(
1788 sizeof(SatParameters), alignof(SatParameters), *arena_bits);
1789 } else {
1790 return ::google::protobuf::internal::MessageCreator(&SatParameters::PlacementNew_,
1791 sizeof(SatParameters),
1792 alignof(SatParameters));
1793 }
1794}
1796 return ::google::protobuf::internal::ClassDataFull{
1797 ::google::protobuf::internal::ClassData{
1799 &_table_.header,
1800 nullptr, // OnDemandRegisterArenaDtor
1801 nullptr, // IsInitialized
1802 &SatParameters::MergeImpl,
1803 ::google::protobuf::Message::GetNewImpl<SatParameters>(),
1804#if defined(PROTOBUF_CUSTOM_VTABLE)
1805 &SatParameters::SharedDtor,
1806 ::google::protobuf::Message::GetClearImpl<SatParameters>(), &SatParameters::ByteSizeLong,
1808#endif // PROTOBUF_CUSTOM_VTABLE
1809 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_._cached_size_),
1810 false,
1811 },
1812 &SatParameters::kDescriptorMethods,
1814 nullptr, // tracker
1815 };
1816}
1817
1818PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
1819 ::google::protobuf::internal::ClassDataFull SatParameters_class_data_ =
1821
1822PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
1823SatParameters::GetClassData() const {
1824 ::google::protobuf::internal::PrefetchToLocalCache(&SatParameters_class_data_);
1825 ::google::protobuf::internal::PrefetchToLocalCache(SatParameters_class_data_.tc_table);
1826 return SatParameters_class_data_.base();
1827}
1828PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1829const ::_pbi::TcParseTable<5, 303, 12, 0, 47>
1830SatParameters::_table_ = {
1831 {
1832 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_._has_bits_),
1833 0, // no _extensions_
1834 355, 248, // max_field_number, fast_idx_mask
1835 offsetof(decltype(_table_), field_lookup_table),
1836 521939956, // skipmap
1837 offsetof(decltype(_table_), field_entries),
1838 303, // num_field_entries
1839 12, // num_aux_entries
1840 offsetof(decltype(_table_), aux_entries),
1842 nullptr, // post_loop_handler
1843 ::_pbi::TcParser::GenericFallback, // fallback
1844 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1845 ::_pbi::TcParser::GetTable<::operations_research::sat::SatParameters>(), // to_prefetch
1846 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
1847 }, {{
1848 {::_pbi::TcParser::MiniParse, {}},
1849 // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
1850 {::_pbi::TcParser::FastEr0S1,
1851 {8, 0, 2,
1852 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.preferred_variable_order_)}},
1853 // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
1854 {::_pbi::TcParser::FastEr0S1,
1855 {16, 8, 2,
1856 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.initial_polarity_)}},
1857 {::_pbi::TcParser::MiniParse, {}},
1858 // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
1859 {::_pbi::TcParser::FastEr0S1,
1860 {32, 9, 2,
1861 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.minimization_algorithm_)}},
1862 {::_pbi::TcParser::MiniParse, {}},
1863 {::_pbi::TcParser::MiniParse, {}},
1864 {::_pbi::TcParser::MiniParse, {}},
1865 {::_pbi::TcParser::MiniParse, {}},
1866 {::_pbi::TcParser::MiniParse, {}},
1867 {::_pbi::TcParser::MiniParse, {}},
1868 // optional int32 clause_cleanup_period = 11 [default = 10000];
1869 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SatParameters, _impl_.clause_cleanup_period_), 13>(),
1870 {88, 13, 0,
1871 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_period_)}},
1872 {::_pbi::TcParser::MiniParse, {}},
1873 // optional int32 clause_cleanup_target = 13 [default = 0];
1874 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SatParameters, _impl_.clause_cleanup_target_), 1>(),
1875 {104, 1, 0,
1876 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_target_)}},
1877 {::_pbi::TcParser::MiniParse, {}},
1878 // optional double variable_activity_decay = 15 [default = 0.8];
1879 {::_pbi::TcParser::FastF64S1,
1880 {121, 10, 0,
1881 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.variable_activity_decay_)}},
1882 // optional double max_variable_activity_value = 16 [default = 1e+100];
1883 {::_pbi::TcParser::FastF64S2,
1884 {385, 11, 0,
1885 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_variable_activity_value_)}},
1886 // optional double clause_activity_decay = 17 [default = 0.999];
1887 {::_pbi::TcParser::FastF64S2,
1888 {393, 12, 0,
1889 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_activity_decay_)}},
1890 // optional double max_clause_activity_value = 18 [default = 1e+20];
1891 {::_pbi::TcParser::FastF64S2,
1892 {401, 15, 0,
1893 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_clause_activity_value_)}},
1894 // optional bool use_optimization_hints = 35 [default = true];
1895 {::_pbi::TcParser::FastV8S2,
1896 {664, 5, 0,
1897 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_optimization_hints_)}},
1898 // optional double max_time_in_seconds = 36 [default = inf];
1899 {::_pbi::TcParser::FastF64S2,
1900 {673, 20, 0,
1901 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_time_in_seconds_)}},
1902 // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
1903 {::_pbi::TcParser::FastV64S2,
1904 {680, 21, 0,
1905 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_number_of_conflicts_)}},
1906 // optional double glucose_max_decay = 22 [default = 0.95];
1907 {::_pbi::TcParser::FastF64S2,
1908 {433, 16, 0,
1909 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.glucose_max_decay_)}},
1910 // optional double glucose_decay_increment = 23 [default = 0.01];
1911 {::_pbi::TcParser::FastF64S2,
1912 {441, 17, 0,
1913 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.glucose_decay_increment_)}},
1914 // optional int32 glucose_decay_increment_period = 24 [default = 5000];
1915 {::_pbi::TcParser::FastV32S2,
1916 {448, 14, 0,
1917 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.glucose_decay_increment_period_)}},
1918 // optional bool log_search_progress = 41 [default = false];
1919 {::_pbi::TcParser::FastV8S2,
1920 {712, 3, 0,
1921 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_search_progress_)}},
1922 // optional bool use_precedences_in_disjunctive_constraint = 74 [default = true];
1923 {::_pbi::TcParser::FastV8S2,
1924 {1232, 7, 0,
1925 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_precedences_in_disjunctive_constraint_)}},
1926 // optional bool use_pb_resolution = 43 [default = false];
1927 {::_pbi::TcParser::FastV8S2,
1928 {728, 4, 0,
1929 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_pb_resolution_)}},
1930 // optional bool use_phase_saving = 44 [default = true];
1931 {::_pbi::TcParser::FastV8S2,
1932 {736, 6, 0,
1933 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_phase_saving_)}},
1934 // optional double random_polarity_ratio = 45 [default = 0];
1935 {::_pbi::TcParser::FastF64S2,
1936 {745, 2, 0,
1937 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_polarity_ratio_)}},
1938 // optional int32 restart_period = 30 [default = 50];
1939 {::_pbi::TcParser::FastV32S2,
1940 {496, 18, 0,
1941 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_period_)}},
1942 // optional int32 random_seed = 31 [default = 1];
1943 {::_pbi::TcParser::FastV32S2,
1944 {504, 19, 0,
1945 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_seed_)}},
1946 }}, {{
1947 34, 0, 21,
1948 304, 15,
1949 256, 28,
1950 32768, 43,
1951 49152, 58,
1952 8336, 72,
1953 16, 85,
1954 15872, 100,
1955 4112, 111,
1956 0, 125,
1957 64, 141,
1958 16384, 156,
1959 262, 171,
1960 34848, 184,
1961 4634, 197,
1962 0, 208,
1963 0, 224,
1964 0, 240,
1965 8192, 256,
1966 4096, 271,
1967 1, 286,
1968 65532, 301,
1969 65535, 65535
1970 }}, {{
1971 // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
1972 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.preferred_variable_order_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1973 // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
1974 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.initial_polarity_), _Internal::kHasBitsOffset + 8, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1975 // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
1976 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.minimization_algorithm_), _Internal::kHasBitsOffset + 9, 3, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1977 // optional int32 clause_cleanup_period = 11 [default = 10000];
1978 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_period_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1979 // optional int32 clause_cleanup_target = 13 [default = 0];
1980 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_target_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1981 // optional double variable_activity_decay = 15 [default = 0.8];
1982 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.variable_activity_decay_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1983 // optional double max_variable_activity_value = 16 [default = 1e+100];
1984 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_variable_activity_value_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1985 // optional double clause_activity_decay = 17 [default = 0.999];
1986 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_activity_decay_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1987 // optional double max_clause_activity_value = 18 [default = 1e+20];
1988 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_clause_activity_value_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1989 // optional double glucose_max_decay = 22 [default = 0.95];
1990 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.glucose_max_decay_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1991 // optional double glucose_decay_increment = 23 [default = 0.01];
1992 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.glucose_decay_increment_), _Internal::kHasBitsOffset + 17, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1993 // optional int32 glucose_decay_increment_period = 24 [default = 5000];
1994 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.glucose_decay_increment_period_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1995 // optional int32 restart_period = 30 [default = 50];
1996 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_period_), _Internal::kHasBitsOffset + 18, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1997 // optional int32 random_seed = 31 [default = 1];
1998 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_seed_), _Internal::kHasBitsOffset + 19, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1999 // optional double random_branches_ratio = 32 [default = 0];
2000 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_branches_ratio_), _Internal::kHasBitsOffset + 31, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2001 // optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorithm = 34 [default = BINARY_MINIMIZATION_FROM_UIP_AND_DECISIONS];
2002 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.binary_minimization_algorithm_), _Internal::kHasBitsOffset + 139, 4, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
2003 // optional bool use_optimization_hints = 35 [default = true];
2004 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_optimization_hints_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2005 // optional double max_time_in_seconds = 36 [default = inf];
2006 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_time_in_seconds_), _Internal::kHasBitsOffset + 20, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2007 // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
2008 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_number_of_conflicts_), _Internal::kHasBitsOffset + 21, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2009 // optional int64 max_memory_in_mb = 40 [default = 10000];
2010 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_memory_in_mb_), _Internal::kHasBitsOffset + 138, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2011 // optional bool log_search_progress = 41 [default = false];
2012 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_search_progress_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2013 // optional bool use_pb_resolution = 43 [default = false];
2014 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_pb_resolution_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2015 // optional bool use_phase_saving = 44 [default = true];
2016 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_phase_saving_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2017 // optional double random_polarity_ratio = 45 [default = 0];
2018 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_polarity_ratio_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2019 // optional int32 pb_cleanup_increment = 46 [default = 200];
2020 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.pb_cleanup_increment_), _Internal::kHasBitsOffset + 140, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2021 // optional double pb_cleanup_ratio = 47 [default = 0.5];
2022 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.pb_cleanup_ratio_), _Internal::kHasBitsOffset + 141, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2023 // optional bool minimize_reduction_during_pb_resolution = 48 [default = false];
2024 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.minimize_reduction_during_pb_resolution_), _Internal::kHasBitsOffset + 33, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2025 // optional bool count_assumption_levels_in_lbd = 49 [default = true];
2026 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.count_assumption_levels_in_lbd_), _Internal::kHasBitsOffset + 150, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2027 // optional int32 core_minimization_level = 50 [default = 2];
2028 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.core_minimization_level_), _Internal::kHasBitsOffset + 142, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2029 // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
2030 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_sat_assumption_order_), _Internal::kHasBitsOffset + 32, 5, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2031 // optional bool max_sat_reverse_assumption_order = 52 [default = false];
2032 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_sat_reverse_assumption_order_), _Internal::kHasBitsOffset + 34, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2033 // optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification = 53 [default = STRATIFICATION_DESCENT];
2034 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_sat_stratification_), _Internal::kHasBitsOffset + 143, 6, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2035 // optional int32 presolve_bve_threshold = 54 [default = 500];
2036 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_bve_threshold_), _Internal::kHasBitsOffset + 144, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2037 // optional int32 presolve_bve_clause_weight = 55 [default = 3];
2038 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_bve_clause_weight_), _Internal::kHasBitsOffset + 145, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2039 // optional bool subsumption_during_conflict_analysis = 56 [default = true];
2040 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsumption_during_conflict_analysis_), _Internal::kHasBitsOffset + 151, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2041 // optional double presolve_probing_deterministic_time_limit = 57 [default = 30];
2042 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_probing_deterministic_time_limit_), _Internal::kHasBitsOffset + 146, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2043 // optional int32 clause_cleanup_lbd_bound = 59 [default = 5];
2044 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_lbd_bound_), _Internal::kHasBitsOffset + 147, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2045 // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
2046 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_ordering_), _Internal::kHasBitsOffset + 37, 7, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2047 // repeated .operations_research.sat.SatParameters.RestartAlgorithm restart_algorithms = 61;
2048 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_algorithms_), _Internal::kHasBitsOffset + 22, 8, (0 | ::_fl::kFcRepeated | ::_fl::kEnumRange)},
2049 // optional int32 restart_running_window_size = 62 [default = 50];
2050 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_running_window_size_), _Internal::kHasBitsOffset + 148, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2051 // optional double restart_dl_average_ratio = 63 [default = 1];
2052 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_dl_average_ratio_), _Internal::kHasBitsOffset + 149, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2053 // optional bool use_blocking_restart = 64 [default = false];
2054 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_blocking_restart_), _Internal::kHasBitsOffset + 35, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2055 // optional int32 blocking_restart_window_size = 65 [default = 5000];
2056 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.blocking_restart_window_size_), _Internal::kHasBitsOffset + 154, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2057 // optional double blocking_restart_multiplier = 66 [default = 1.4];
2058 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.blocking_restart_multiplier_), _Internal::kHasBitsOffset + 155, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2059 // optional double max_deterministic_time = 67 [default = inf];
2060 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_deterministic_time_), _Internal::kHasBitsOffset + 156, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2061 // optional int32 num_conflicts_before_strategy_changes = 68 [default = 0];
2062 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_conflicts_before_strategy_changes_), _Internal::kHasBitsOffset + 38, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2063 // optional double strategy_change_increase_ratio = 69 [default = 0];
2064 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.strategy_change_increase_ratio_), _Internal::kHasBitsOffset + 39, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2065 // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
2066 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.default_restart_algorithms_), _Internal::kHasBitsOffset + 28, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
2067 // optional double restart_lbd_average_ratio = 71 [default = 1];
2068 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.restart_lbd_average_ratio_), _Internal::kHasBitsOffset + 157, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2069 // optional bool presolve_use_bva = 72 [default = true];
2070 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_use_bva_), _Internal::kHasBitsOffset + 152, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2071 // optional int32 presolve_bva_threshold = 73 [default = 1];
2072 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_bva_threshold_), _Internal::kHasBitsOffset + 158, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2073 // optional bool use_precedences_in_disjunctive_constraint = 74 [default = true];
2074 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_precedences_in_disjunctive_constraint_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2075 // optional bool use_erwa_heuristic = 75 [default = false];
2076 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_erwa_heuristic_), _Internal::kHasBitsOffset + 36, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2077 // optional double initial_variables_activity = 76 [default = 0];
2078 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.initial_variables_activity_), _Internal::kHasBitsOffset + 40, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2079 // optional bool also_bump_variables_in_conflict_reasons = 77 [default = false];
2080 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.also_bump_variables_in_conflict_reasons_), _Internal::kHasBitsOffset + 41, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2081 // optional bool use_overload_checker_in_cumulative = 78 [default = false];
2082 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_overload_checker_in_cumulative_), _Internal::kHasBitsOffset + 42, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2083 // optional bool use_timetable_edge_finding_in_cumulative = 79 [default = false];
2084 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_timetable_edge_finding_in_cumulative_), _Internal::kHasBitsOffset + 43, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2085 // optional bool use_disjunctive_constraint_in_cumulative = 80 [default = true];
2086 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_disjunctive_constraint_in_cumulative_), _Internal::kHasBitsOffset + 153, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2087 // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
2088 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.search_branching_), _Internal::kHasBitsOffset + 45, 9, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2089 // optional bool optimize_with_core = 83 [default = false];
2090 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.optimize_with_core_), _Internal::kHasBitsOffset + 44, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2091 // optional bool find_multiple_cores = 84 [default = true];
2092 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.find_multiple_cores_), _Internal::kHasBitsOffset + 159, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2093 // optional bool optimize_with_max_hs = 85 [default = false];
2094 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.optimize_with_max_hs_), _Internal::kHasBitsOffset + 46, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2095 // optional bool cp_model_presolve = 86 [default = true];
2096 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cp_model_presolve_), _Internal::kHasBitsOffset + 160, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2097 // optional bool enumerate_all_solutions = 87 [default = false];
2098 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.enumerate_all_solutions_), _Internal::kHasBitsOffset + 47, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2099 // optional bool presolve_blocked_clause = 88 [default = true];
2100 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_blocked_clause_), _Internal::kHasBitsOffset + 161, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2101 // optional bool cover_optimization = 89 [default = true];
2102 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cover_optimization_), _Internal::kHasBitsOffset + 162, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2103 // optional int32 linearization_level = 90 [default = 1];
2104 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.linearization_level_), _Internal::kHasBitsOffset + 163, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2105 // optional int32 max_num_cuts = 91 [default = 10000];
2106 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_num_cuts_), _Internal::kHasBitsOffset + 164, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2107 // optional bool only_add_cuts_at_level_zero = 92 [default = false];
2108 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.only_add_cuts_at_level_zero_), _Internal::kHasBitsOffset + 48, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2109 // optional bool cp_model_use_sat_presolve = 93 [default = true];
2110 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cp_model_use_sat_presolve_), _Internal::kHasBitsOffset + 165, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2111 // optional bool exploit_integer_lp_solution = 94 [default = true];
2112 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_integer_lp_solution_), _Internal::kHasBitsOffset + 166, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2113 // optional bool auto_detect_greater_than_at_least_one_of = 95 [default = true];
2114 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.auto_detect_greater_than_at_least_one_of_), _Internal::kHasBitsOffset + 167, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2115 // optional bool stop_after_first_solution = 98 [default = false];
2116 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.stop_after_first_solution_), _Internal::kHasBitsOffset + 49, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2117 // optional int32 binary_search_num_conflicts = 99 [default = -1];
2118 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.binary_search_num_conflicts_), _Internal::kHasBitsOffset + 169, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2119 // optional int32 num_search_workers = 100 [default = 0];
2120 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_search_workers_), _Internal::kHasBitsOffset + 50, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2121 // optional bool use_lns_only = 101 [default = false];
2122 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_lns_only_), _Internal::kHasBitsOffset + 52, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2123 // optional bool randomize_search = 103 [default = false];
2124 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.randomize_search_), _Internal::kHasBitsOffset + 53, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2125 // optional int64 search_random_variable_pool_size = 104 [default = 0];
2126 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.search_random_variable_pool_size_), _Internal::kHasBitsOffset + 51, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2127 // optional bool instantiate_all_variables = 106 [default = true];
2128 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.instantiate_all_variables_), _Internal::kHasBitsOffset + 168, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2129 // optional int32 boolean_encoding_level = 107 [default = 1];
2130 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.boolean_encoding_level_), _Internal::kHasBitsOffset + 170, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2131 // optional bool use_optional_variables = 108 [default = false];
2132 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_optional_variables_), _Internal::kHasBitsOffset + 54, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2133 // optional bool use_exact_lp_reason = 109 [default = true];
2134 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_exact_lp_reason_), _Internal::kHasBitsOffset + 172, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2135 // optional int32 cp_model_probing_level = 110 [default = 2];
2136 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cp_model_probing_level_), _Internal::kHasBitsOffset + 171, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2137 // optional bool add_lp_constraints_lazily = 112 [default = true];
2138 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_lp_constraints_lazily_), _Internal::kHasBitsOffset + 173, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2139 // optional bool share_objective_bounds = 113 [default = true];
2140 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_objective_bounds_), _Internal::kHasBitsOffset + 174, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2141 // optional bool share_level_zero_bounds = 114 [default = true];
2142 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_level_zero_bounds_), _Internal::kHasBitsOffset + 175, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2143 // optional double min_orthogonality_for_lp_constraints = 115 [default = 0.05];
2144 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.min_orthogonality_for_lp_constraints_), _Internal::kHasBitsOffset + 177, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2145 // optional bool exploit_all_lp_solution = 116 [default = true];
2146 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_all_lp_solution_), _Internal::kHasBitsOffset + 178, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2147 // optional bool add_cg_cuts = 117 [default = true];
2148 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_cg_cuts_), _Internal::kHasBitsOffset + 179, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2149 // optional int32 max_integer_rounding_scaling = 119 [default = 600];
2150 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_integer_rounding_scaling_), _Internal::kHasBitsOffset + 176, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2151 // optional bool add_mir_cuts = 120 [default = true];
2152 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_mir_cuts_), _Internal::kHasBitsOffset + 180, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2153 // optional int32 max_consecutive_inactive_count = 121 [default = 100];
2154 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_consecutive_inactive_count_), _Internal::kHasBitsOffset + 182, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2155 // optional int32 new_constraints_batch_size = 122 [default = 50];
2156 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.new_constraints_batch_size_), _Internal::kHasBitsOffset + 185, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2157 // optional int64 pseudo_cost_reliability_threshold = 123 [default = 100];
2158 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.pseudo_cost_reliability_threshold_), _Internal::kHasBitsOffset + 183, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2159 // optional double mip_max_bound = 124 [default = 10000000];
2160 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_max_bound_), _Internal::kHasBitsOffset + 184, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2161 // optional double mip_var_scaling = 125 [default = 1];
2162 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_var_scaling_), _Internal::kHasBitsOffset + 187, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2163 // optional double mip_wanted_precision = 126 [default = 1e-06];
2164 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_wanted_precision_), _Internal::kHasBitsOffset + 188, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2165 // optional int32 mip_max_activity_exponent = 127 [default = 53];
2166 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_max_activity_exponent_), _Internal::kHasBitsOffset + 186, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2167 // optional double mip_check_precision = 128 [default = 0.0001];
2168 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_check_precision_), _Internal::kHasBitsOffset + 189, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2169 // optional bool use_rins_lns = 129 [default = true];
2170 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_rins_lns_), _Internal::kHasBitsOffset + 181, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2171 // optional bool exploit_best_solution = 130 [default = false];
2172 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_best_solution_), _Internal::kHasBitsOffset + 55, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2173 // optional bool exploit_objective = 131 [default = true];
2174 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_objective_), _Internal::kHasBitsOffset + 191, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2175 // optional bool fill_tightened_domains_in_response = 132 [default = false];
2176 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.fill_tightened_domains_in_response_), _Internal::kHasBitsOffset + 57, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2177 // optional bool use_combined_no_overlap = 133 [default = false];
2178 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_combined_no_overlap_), _Internal::kHasBitsOffset + 58, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2179 // optional int32 interleave_batch_size = 134 [default = 0];
2180 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.interleave_batch_size_), _Internal::kHasBitsOffset + 56, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2181 // optional bool catch_sigint_signal = 135 [default = true];
2182 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.catch_sigint_signal_), _Internal::kHasBitsOffset + 192, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2183 // optional bool interleave_search = 136 [default = false];
2184 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.interleave_search_), _Internal::kHasBitsOffset + 59, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2185 // optional bool diversify_lns_params = 137 [default = false];
2186 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.diversify_lns_params_), _Internal::kHasBitsOffset + 60, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2187 // optional int32 max_presolve_iterations = 138 [default = 3];
2188 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_presolve_iterations_), _Internal::kHasBitsOffset + 190, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2189 // optional bool use_implied_bounds = 144 [default = true];
2190 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_implied_bounds_), _Internal::kHasBitsOffset + 193, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2191 // optional double merge_no_overlap_work_limit = 145 [default = 1000000000000];
2192 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.merge_no_overlap_work_limit_), _Internal::kHasBitsOffset + 195, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2193 // optional double merge_at_most_one_work_limit = 146 [default = 100000000];
2194 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.merge_at_most_one_work_limit_), _Internal::kHasBitsOffset + 196, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2195 // optional int32 presolve_substitution_level = 147 [default = 1];
2196 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_substitution_level_), _Internal::kHasBitsOffset + 197, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2197 // optional int32 max_all_diff_cut_size = 148 [default = 64];
2198 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_all_diff_cut_size_), _Internal::kHasBitsOffset + 198, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2199 // optional bool stop_after_presolve = 149 [default = false];
2200 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.stop_after_presolve_), _Internal::kHasBitsOffset + 63, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2201 // optional int32 debug_max_num_presolve_operations = 151 [default = 0];
2202 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.debug_max_num_presolve_operations_), _Internal::kHasBitsOffset + 61, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2203 // optional bool add_lin_max_cuts = 152 [default = true];
2204 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_lin_max_cuts_), _Internal::kHasBitsOffset + 194, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2205 // optional int32 hint_conflict_limit = 153 [default = 10];
2206 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.hint_conflict_limit_), _Internal::kHasBitsOffset + 199, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2207 // optional int32 max_cut_rounds_at_level_zero = 154 [default = 1];
2208 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_cut_rounds_at_level_zero_), _Internal::kHasBitsOffset + 200, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2209 // optional double cut_max_active_count_value = 155 [default = 10000000000];
2210 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cut_max_active_count_value_), _Internal::kHasBitsOffset + 201, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2211 // optional double cut_active_count_decay = 156 [default = 0.8];
2212 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cut_active_count_decay_), _Internal::kHasBitsOffset + 202, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2213 // optional int32 cut_cleanup_target = 157 [default = 1000];
2214 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cut_cleanup_target_), _Internal::kHasBitsOffset + 204, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2215 // optional double absolute_gap_limit = 159 [default = 0.0001];
2216 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.absolute_gap_limit_), _Internal::kHasBitsOffset + 203, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2217 // optional double relative_gap_limit = 160 [default = 0];
2218 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.relative_gap_limit_), _Internal::kHasBitsOffset + 62, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2219 // optional bool exploit_relaxation_solution = 161 [default = false];
2220 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_relaxation_solution_), _Internal::kHasBitsOffset + 64, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2221 // optional bool debug_postsolve_with_full_solver = 162 [default = false];
2222 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.debug_postsolve_with_full_solver_), _Internal::kHasBitsOffset + 65, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2223 // optional bool use_sat_inprocessing = 163 [default = true];
2224 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_sat_inprocessing_), _Internal::kHasBitsOffset + 206, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2225 // optional bool use_feasibility_pump = 164 [default = true];
2226 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_feasibility_pump_), _Internal::kHasBitsOffset + 207, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2227 // optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGATION_ASSISTED];
2228 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.fp_rounding_), _Internal::kHasBitsOffset + 205, 10, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2229 // optional bool mip_automatically_scale_variables = 166 [default = true];
2230 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_automatically_scale_variables_), _Internal::kHasBitsOffset + 208, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2231 // optional bool repair_hint = 167 [default = false];
2232 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.repair_hint_), _Internal::kHasBitsOffset + 66, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2233 // optional int32 polarity_rephase_increment = 168 [default = 1000];
2234 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.polarity_rephase_increment_), _Internal::kHasBitsOffset + 210, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2235 // optional bool add_zero_half_cuts = 169 [default = true];
2236 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_zero_half_cuts_), _Internal::kHasBitsOffset + 209, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2237 // optional bool expand_alldiff_constraints = 170 [default = false];
2238 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.expand_alldiff_constraints_), _Internal::kHasBitsOffset + 67, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2239 // optional string name = 171 [default = ""];
2240 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.name_), _Internal::kHasBitsOffset + 29, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
2241 // optional bool add_clique_cuts = 172 [default = true];
2242 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_clique_cuts_), _Internal::kHasBitsOffset + 211, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2243 // optional bool keep_all_feasible_solutions_in_presolve = 173 [default = false];
2244 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.keep_all_feasible_solutions_in_presolve_), _Internal::kHasBitsOffset + 68, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2245 // optional bool presolve_extract_integer_enforcement = 174 [default = false];
2246 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_extract_integer_enforcement_), _Internal::kHasBitsOffset + 69, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2247 // optional bool polish_lp_solution = 175 [default = false];
2248 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.polish_lp_solution_), _Internal::kHasBitsOffset + 70, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2249 // optional bool use_probing_search = 176 [default = false];
2250 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_probing_search_), _Internal::kHasBitsOffset + 71, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2251 // optional bool convert_intervals = 177 [default = true];
2252 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.convert_intervals_), _Internal::kHasBitsOffset + 212, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2253 // optional bool permute_variable_randomly = 178 [default = false];
2254 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.permute_variable_randomly_), _Internal::kHasBitsOffset + 72, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2255 // optional bool permute_presolve_constraint_order = 179 [default = false];
2256 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.permute_presolve_constraint_order_), _Internal::kHasBitsOffset + 73, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2257 // optional bool use_absl_random = 180 [default = false];
2258 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_absl_random_), _Internal::kHasBitsOffset + 74, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2259 // optional bool disable_constraint_expansion = 181 [default = false];
2260 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.disable_constraint_expansion_), _Internal::kHasBitsOffset + 75, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2261 // optional bool expand_reservoir_constraints = 182 [default = true];
2262 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.expand_reservoir_constraints_), _Internal::kHasBitsOffset + 213, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2263 // optional int32 symmetry_level = 183 [default = 2];
2264 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.symmetry_level_), _Internal::kHasBitsOffset + 215, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2265 // optional string log_prefix = 185 [default = ""];
2266 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_prefix_), _Internal::kHasBitsOffset + 30, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
2267 // optional bool log_to_stdout = 186 [default = true];
2268 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_to_stdout_), _Internal::kHasBitsOffset + 214, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2269 // optional bool log_to_response = 187 [default = false];
2270 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_to_response_), _Internal::kHasBitsOffset + 76, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2271 // optional bool optimize_with_lb_tree_search = 188 [default = false];
2272 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.optimize_with_lb_tree_search_), _Internal::kHasBitsOffset + 77, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2273 // optional bool log_subsolver_statistics = 189 [default = false];
2274 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.log_subsolver_statistics_), _Internal::kHasBitsOffset + 78, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2275 // optional double clause_cleanup_ratio = 190 [default = 0.5];
2276 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_ratio_), _Internal::kHasBitsOffset + 216, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2277 // optional int32 max_domain_size_when_encoding_eq_neq_constraints = 191 [default = 16];
2278 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_domain_size_when_encoding_eq_neq_constraints_), _Internal::kHasBitsOffset + 217, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2279 // optional bool fix_variables_to_their_hinted_value = 192 [default = false];
2280 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.fix_variables_to_their_hinted_value_), _Internal::kHasBitsOffset + 79, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2281 // optional int32 solution_pool_size = 193 [default = 3];
2282 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.solution_pool_size_), _Internal::kHasBitsOffset + 218, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2283 // optional bool fill_additional_solutions_in_response = 194 [default = false];
2284 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.fill_additional_solutions_in_response_), _Internal::kHasBitsOffset + 80, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2285 // optional bool debug_crash_on_bad_hint = 195 [default = false];
2286 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.debug_crash_on_bad_hint_), _Internal::kHasBitsOffset + 81, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2287 // optional int32 cut_level = 196 [default = 1];
2288 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.cut_level_), _Internal::kHasBitsOffset + 221, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2289 // optional bool add_objective_cut = 197 [default = false];
2290 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_objective_cut_), _Internal::kHasBitsOffset + 82, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2291 // optional bool mip_compute_true_objective_bound = 198 [default = true];
2292 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_compute_true_objective_bound_), _Internal::kHasBitsOffset + 222, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2293 // optional double mip_max_valid_magnitude = 199 [default = 1e+20];
2294 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_max_valid_magnitude_), _Internal::kHasBitsOffset + 219, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2295 // optional bool use_timetabling_in_no_overlap_2d = 200 [default = false];
2296 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_timetabling_in_no_overlap_2d_), _Internal::kHasBitsOffset + 84, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2297 // optional int64 presolve_inclusion_work_limit = 201 [default = 100000000];
2298 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.presolve_inclusion_work_limit_), _Internal::kHasBitsOffset + 220, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2299 // optional bool ignore_names = 202 [default = true];
2300 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.ignore_names_), _Internal::kHasBitsOffset + 223, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2301 // optional bool share_binary_clauses = 203 [default = true];
2302 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_binary_clauses_), _Internal::kHasBitsOffset + 224, 0, (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 + 226, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2305 // optional double shaving_search_deterministic_time = 205 [default = 0.1];
2306 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shaving_search_deterministic_time_), _Internal::kHasBitsOffset + 227, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2307 // optional int32 num_workers = 206 [default = 0];
2308 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_workers_), _Internal::kHasBitsOffset + 83, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2309 // repeated string subsolvers = 207;
2310 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsolvers_), _Internal::kHasBitsOffset + 23, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
2311 // repeated string ignore_subsolvers = 209;
2312 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.ignore_subsolvers_), _Internal::kHasBitsOffset + 24, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
2313 // repeated .operations_research.sat.SatParameters subsolver_params = 210;
2314 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsolver_params_), _Internal::kHasBitsOffset + 25, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
2315 // optional bool use_energetic_reasoning_in_no_overlap_2d = 213 [default = false];
2316 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_energetic_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 85, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2317 // optional bool use_dual_scheduling_heuristics = 214 [default = true];
2318 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_dual_scheduling_heuristics_), _Internal::kHasBitsOffset + 225, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2319 // optional bool use_hard_precedences_in_cumulative = 215 [default = false];
2320 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_hard_precedences_in_cumulative_), _Internal::kHasBitsOffset + 86, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2321 // optional bool detect_table_with_cost = 216 [default = false];
2322 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.detect_table_with_cost_), _Internal::kHasBitsOffset + 87, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2323 // optional int32 table_compression_level = 217 [default = 2];
2324 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.table_compression_level_), _Internal::kHasBitsOffset + 229, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2325 // repeated string extra_subsolvers = 219;
2326 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.extra_subsolvers_), _Internal::kHasBitsOffset + 26, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
2327 // optional bool exploit_all_precedences = 220 [default = false];
2328 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.exploit_all_precedences_), _Internal::kHasBitsOffset + 88, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2329 // optional double propagation_loop_detection_factor = 221 [default = 10];
2330 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.propagation_loop_detection_factor_), _Internal::kHasBitsOffset + 228, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2331 // optional bool only_solve_ip = 222 [default = false];
2332 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.only_solve_ip_), _Internal::kHasBitsOffset + 89, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2333 // optional bool encode_complex_linear_constraint_with_integer = 223 [default = false];
2334 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.encode_complex_linear_constraint_with_integer_), _Internal::kHasBitsOffset + 90, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2335 // optional bool new_linear_propagation = 224 [default = true];
2336 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.new_linear_propagation_), _Internal::kHasBitsOffset + 235, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2337 // optional bool mip_scale_large_domain = 225 [default = false];
2338 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_scale_large_domain_), _Internal::kHasBitsOffset + 91, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2339 // optional double probing_deterministic_time_limit = 226 [default = 1];
2340 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.probing_deterministic_time_limit_), _Internal::kHasBitsOffset + 231, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2341 // optional int32 root_lp_iterations = 227 [default = 2000];
2342 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.root_lp_iterations_), _Internal::kHasBitsOffset + 230, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2343 // optional bool use_objective_lb_search = 228 [default = false];
2344 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_objective_lb_search_), _Internal::kHasBitsOffset + 92, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2345 // optional int32 max_size_to_create_precedence_literals_in_disjunctive = 229 [default = 60];
2346 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_size_to_create_precedence_literals_in_disjunctive_), _Internal::kHasBitsOffset + 233, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2347 // optional bool use_strong_propagation_in_disjunctive = 230 [default = false];
2348 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_strong_propagation_in_disjunctive_), _Internal::kHasBitsOffset + 93, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2349 // optional double mip_drop_tolerance = 232 [default = 1e-16];
2350 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_drop_tolerance_), _Internal::kHasBitsOffset + 232, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2351 // optional bool infer_all_diffs = 233 [default = true];
2352 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.infer_all_diffs_), _Internal::kHasBitsOffset + 236, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2353 // optional bool find_big_linear_overlap = 234 [default = true];
2354 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.find_big_linear_overlap_), _Internal::kHasBitsOffset + 237, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2355 // optional int32 shared_tree_num_workers = 235 [default = -1];
2356 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_num_workers_), _Internal::kHasBitsOffset + 234, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2357 // optional bool use_shared_tree_search = 236 [default = false];
2358 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_shared_tree_search_), _Internal::kHasBitsOffset + 94, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2359 // optional int32 shared_tree_max_nodes_per_worker = 238 [default = 10000];
2360 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_max_nodes_per_worker_), _Internal::kHasBitsOffset + 239, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2361 // optional .operations_research.sat.SatParameters.SharedTreeSplitStrategy shared_tree_split_strategy = 239 [default = SPLIT_STRATEGY_AUTO];
2362 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_split_strategy_), _Internal::kHasBitsOffset + 96, 11, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2363 // optional bool use_ls_only = 240 [default = false];
2364 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_ls_only_), _Internal::kHasBitsOffset + 95, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2365 // optional double feasibility_jump_decay = 242 [default = 0.95];
2366 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_decay_), _Internal::kHasBitsOffset + 240, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2367 // optional int32 num_violation_ls = 244 [default = 0];
2368 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_violation_ls_), _Internal::kHasBitsOffset + 97, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2369 // optional double feasibility_jump_var_randomization_probability = 247 [default = 0.05];
2370 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_var_randomization_probability_), _Internal::kHasBitsOffset + 241, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2371 // optional double feasibility_jump_var_perburbation_range_ratio = 248 [default = 0.2];
2372 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_var_perburbation_range_ratio_), _Internal::kHasBitsOffset + 242, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2373 // optional int32 violation_ls_perturbation_period = 249 [default = 100];
2374 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.violation_ls_perturbation_period_), _Internal::kHasBitsOffset + 243, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2375 // optional bool feasibility_jump_enable_restarts = 250 [default = true];
2376 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_enable_restarts_), _Internal::kHasBitsOffset + 238, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2377 // optional bool stop_after_root_propagation = 252 [default = false];
2378 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.stop_after_root_propagation_), _Internal::kHasBitsOffset + 98, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2379 // optional bool use_objective_shaving_search = 253 [default = false];
2380 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_objective_shaving_search_), _Internal::kHasBitsOffset + 99, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2381 // optional bool use_lb_relax_lns = 255 [default = true];
2382 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_lb_relax_lns_), _Internal::kHasBitsOffset + 252, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2383 // optional int32 linear_split_size = 256 [default = 100];
2384 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.linear_split_size_), _Internal::kHasBitsOffset + 244, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2385 // optional int32 feasibility_jump_linearization_level = 257 [default = 2];
2386 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_linearization_level_), _Internal::kHasBitsOffset + 245, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2387 // optional int32 feasibility_jump_restart_factor = 258 [default = 1];
2388 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_restart_factor_), _Internal::kHasBitsOffset + 246, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2389 // optional double violation_ls_compound_move_probability = 259 [default = 0.5];
2390 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.violation_ls_compound_move_probability_), _Internal::kHasBitsOffset + 247, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2391 // optional int32 max_num_intervals_for_timetable_edge_finding = 260 [default = 100];
2392 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_num_intervals_for_timetable_edge_finding_), _Internal::kHasBitsOffset + 248, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2393 // optional int32 mip_presolve_level = 261 [default = 2];
2394 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_presolve_level_), _Internal::kHasBitsOffset + 249, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2395 // optional bool push_all_tasks_toward_start = 262 [default = false];
2396 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.push_all_tasks_toward_start_), _Internal::kHasBitsOffset + 100, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2397 // optional bool use_dynamic_precedence_in_disjunctive = 263 [default = false];
2398 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_dynamic_precedence_in_disjunctive_), _Internal::kHasBitsOffset + 101, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2399 // optional int32 feasibility_jump_max_expanded_constraint_size = 264 [default = 500];
2400 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_max_expanded_constraint_size_), _Internal::kHasBitsOffset + 251, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2401 // optional bool use_feasibility_jump = 265 [default = true];
2402 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_feasibility_jump_), _Internal::kHasBitsOffset + 253, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2403 // optional double lp_primal_tolerance = 266 [default = 1e-07];
2404 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lp_primal_tolerance_), _Internal::kHasBitsOffset + 250, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2405 // optional double lp_dual_tolerance = 267 [default = 1e-07];
2406 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lp_dual_tolerance_), _Internal::kHasBitsOffset + 256, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2407 // optional bool use_dynamic_precedence_in_cumulative = 268 [default = false];
2408 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_dynamic_precedence_in_cumulative_), _Internal::kHasBitsOffset + 102, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2409 // optional bool use_extended_probing = 269 [default = true];
2410 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_extended_probing_), _Internal::kHasBitsOffset + 254, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2411 // optional int32 at_most_one_max_expansion_size = 270 [default = 3];
2412 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.at_most_one_max_expansion_size_), _Internal::kHasBitsOffset + 257, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2413 // optional bool use_area_energetic_reasoning_in_no_overlap_2d = 271 [default = false];
2414 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_area_energetic_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 103, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2415 // optional int32 probing_num_combinations_limit = 272 [default = 20000];
2416 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.probing_num_combinations_limit_), _Internal::kHasBitsOffset + 258, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2417 // optional double inprocessing_dtime_ratio = 273 [default = 0.2];
2418 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_dtime_ratio_), _Internal::kHasBitsOffset + 259, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2419 // optional double inprocessing_probing_dtime = 274 [default = 1];
2420 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_probing_dtime_), _Internal::kHasBitsOffset + 260, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2421 // optional double inprocessing_minimization_dtime = 275 [default = 1];
2422 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_minimization_dtime_), _Internal::kHasBitsOffset + 261, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2423 // optional int32 max_pairs_pairwise_reasoning_in_no_overlap_2d = 276 [default = 1250];
2424 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 262, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2425 // optional bool detect_linearized_product = 277 [default = false];
2426 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.detect_linearized_product_), _Internal::kHasBitsOffset + 104, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2427 // optional bool mip_treat_high_magnitude_bounds_as_infinity = 278 [default = false];
2428 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.mip_treat_high_magnitude_bounds_as_infinity_), _Internal::kHasBitsOffset + 105, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2429 // optional bool add_rlt_cuts = 279 [default = true];
2430 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.add_rlt_cuts_), _Internal::kHasBitsOffset + 255, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2431 // optional int32 max_lin_max_size_for_expansion = 280 [default = 0];
2432 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_lin_max_size_for_expansion_), _Internal::kHasBitsOffset + 106, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2433 // optional double shared_tree_open_leaves_per_worker = 281 [default = 2];
2434 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_open_leaves_per_worker_), _Internal::kHasBitsOffset + 264, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2435 // optional int32 shared_tree_worker_min_restarts_per_subtree = 282 [default = 1];
2436 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_worker_min_restarts_per_subtree_), _Internal::kHasBitsOffset + 263, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2437 // optional bool use_lns = 283 [default = true];
2438 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_lns_), _Internal::kHasBitsOffset + 266, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2439 // optional bool save_lp_basis_in_lb_tree_search = 284 [default = false];
2440 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.save_lp_basis_in_lb_tree_search_), _Internal::kHasBitsOffset + 107, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2441 // optional bool share_glue_clauses = 285 [default = true];
2442 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_glue_clauses_), _Internal::kHasBitsOffset + 267, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2443 // optional bool use_conservative_scale_overload_checker = 286 [default = false];
2444 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_conservative_scale_overload_checker_), _Internal::kHasBitsOffset + 108, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2445 // optional bool encode_cumulative_as_reservoir = 287 [default = false];
2446 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.encode_cumulative_as_reservoir_), _Internal::kHasBitsOffset + 109, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2447 // optional bool expand_reservoir_using_circuit = 288 [default = false];
2448 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.expand_reservoir_using_circuit_), _Internal::kHasBitsOffset + 110, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2449 // optional int32 variables_shaving_level = 289 [default = -1];
2450 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.variables_shaving_level_), _Internal::kHasBitsOffset + 265, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2451 // optional int64 shaving_search_threshold = 290 [default = 64];
2452 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shaving_search_threshold_), _Internal::kHasBitsOffset + 270, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2453 // optional int32 max_num_deterministic_batches = 291 [default = 0];
2454 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_num_deterministic_batches_), _Internal::kHasBitsOffset + 111, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2455 // optional double feasibility_jump_batch_dtime = 292 [default = 0.1];
2456 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.feasibility_jump_batch_dtime_), _Internal::kHasBitsOffset + 271, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2457 // repeated string filter_subsolvers = 293;
2458 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.filter_subsolvers_), _Internal::kHasBitsOffset + 27, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
2459 // optional int32 num_full_subsolvers = 294 [default = 0];
2460 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.num_full_subsolvers_), _Internal::kHasBitsOffset + 112, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2461 // optional bool shared_tree_worker_enable_trail_sharing = 295 [default = true];
2462 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_worker_enable_trail_sharing_), _Internal::kHasBitsOffset + 268, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2463 // optional int32 lb_relax_num_workers_threshold = 296 [default = 16];
2464 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lb_relax_num_workers_threshold_), _Internal::kHasBitsOffset + 272, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2465 // optional bool inprocessing_minimization_use_conflict_analysis = 297 [default = true];
2466 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_minimization_use_conflict_analysis_), _Internal::kHasBitsOffset + 269, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2467 // optional bool inprocessing_minimization_use_all_orderings = 298 [default = false];
2468 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_minimization_use_all_orderings_), _Internal::kHasBitsOffset + 113, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2469 // optional bool use_try_edge_reasoning_in_no_overlap_2d = 299 [default = false];
2470 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_try_edge_reasoning_in_no_overlap_2d_), _Internal::kHasBitsOffset + 114, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2471 // optional bool minimize_shared_clauses = 300 [default = true];
2472 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.minimize_shared_clauses_), _Internal::kHasBitsOffset + 277, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2473 // optional bool use_symmetry_in_lp = 301 [default = false];
2474 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_symmetry_in_lp_), _Internal::kHasBitsOffset + 115, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2475 // optional double symmetry_detection_deterministic_time_limit = 302 [default = 1];
2476 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.symmetry_detection_deterministic_time_limit_), _Internal::kHasBitsOffset + 274, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2477 // optional bool keep_symmetry_in_presolve = 303 [default = false];
2478 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.keep_symmetry_in_presolve_), _Internal::kHasBitsOffset + 116, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2479 // optional bool shared_tree_worker_enable_phase_sharing = 304 [default = true];
2480 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_worker_enable_phase_sharing_), _Internal::kHasBitsOffset + 278, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2481 // optional int32 shared_tree_balance_tolerance = 305 [default = 1];
2482 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_balance_tolerance_), _Internal::kHasBitsOffset + 273, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2483 // optional bool debug_crash_if_presolve_breaks_hint = 306 [default = false];
2484 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.debug_crash_if_presolve_breaks_hint_), _Internal::kHasBitsOffset + 118, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2485 // optional double lns_initial_difficulty = 307 [default = 0.5];
2486 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lns_initial_difficulty_), _Internal::kHasBitsOffset + 275, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2487 // optional double lns_initial_deterministic_limit = 308 [default = 0.1];
2488 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.lns_initial_deterministic_limit_), _Internal::kHasBitsOffset + 276, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2489 // optional bool polarity_exploit_ls_hints = 309 [default = false];
2490 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.polarity_exploit_ls_hints_), _Internal::kHasBitsOffset + 119, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2491 // optional bool remove_fixed_variables_early = 310 [default = true];
2492 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.remove_fixed_variables_early_), _Internal::kHasBitsOffset + 279, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2493 // optional bool use_all_different_for_circuit = 311 [default = false];
2494 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_all_different_for_circuit_), _Internal::kHasBitsOffset + 120, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2495 // optional int32 routing_cut_subset_size_for_binary_relation_bound = 312 [default = 0];
2496 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_subset_size_for_binary_relation_bound_), _Internal::kHasBitsOffset + 117, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2497 // optional int32 routing_cut_subset_size_for_tight_binary_relation_bound = 313 [default = 0];
2498 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_subset_size_for_tight_binary_relation_bound_), _Internal::kHasBitsOffset + 122, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2499 // optional double routing_cut_dp_effort = 314 [default = 10000000];
2500 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_dp_effort_), _Internal::kHasBitsOffset + 282, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2501 // optional int32 maximum_regions_to_split_in_disconnected_no_overlap_2d = 315 [default = 0];
2502 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_), _Internal::kHasBitsOffset + 123, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2503 // optional int32 routing_cut_subset_size_for_exact_binary_relation_bound = 316 [default = 8];
2504 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_subset_size_for_exact_binary_relation_bound_), _Internal::kHasBitsOffset + 281, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2505 // optional int32 routing_cut_max_infeasible_path_length = 317 [default = 6];
2506 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_max_infeasible_path_length_), _Internal::kHasBitsOffset + 283, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2507 // optional int32 routing_cut_subset_size_for_shortest_paths_bound = 318 [default = 8];
2508 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.routing_cut_subset_size_for_shortest_paths_bound_), _Internal::kHasBitsOffset + 284, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2509 // optional int32 max_alldiff_domain_size = 320 [default = 256];
2510 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_alldiff_domain_size_), _Internal::kHasBitsOffset + 285, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2511 // optional int32 no_overlap_2d_boolean_relations_limit = 321 [default = 10];
2512 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.no_overlap_2d_boolean_relations_limit_), _Internal::kHasBitsOffset + 286, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2513 // optional double share_glue_clauses_dtime = 322 [default = 1];
2514 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_glue_clauses_dtime_), _Internal::kHasBitsOffset + 287, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2515 // optional bool use_linear3_for_no_overlap_2d_precedences = 323 [default = true];
2516 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_linear3_for_no_overlap_2d_precedences_), _Internal::kHasBitsOffset + 280, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2517 // optional bool filter_sat_postsolve_clauses = 324 [default = false];
2518 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.filter_sat_postsolve_clauses_), _Internal::kHasBitsOffset + 121, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2519 // optional int32 alternative_pool_size = 325 [default = 1];
2520 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.alternative_pool_size_), _Internal::kHasBitsOffset + 288, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2521 // optional bool share_linear2_bounds = 326 [default = false];
2522 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.share_linear2_bounds_), _Internal::kHasBitsOffset + 124, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2523 // optional int32 transitive_precedences_work_limit = 327 [default = 1000000];
2524 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.transitive_precedences_work_limit_), _Internal::kHasBitsOffset + 289, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2525 // optional double shared_tree_split_min_dtime = 328 [default = 0.1];
2526 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.shared_tree_split_min_dtime_), _Internal::kHasBitsOffset + 290, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2527 // optional int32 solution_pool_diversity_limit = 329 [default = 10];
2528 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.solution_pool_diversity_limit_), _Internal::kHasBitsOffset + 291, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2529 // optional bool use_chronological_backtracking = 330 [default = false];
2530 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_chronological_backtracking_), _Internal::kHasBitsOffset + 125, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2531 // optional int32 max_backjump_levels = 331 [default = 50];
2532 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_backjump_levels_), _Internal::kHasBitsOffset + 292, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2533 // optional int32 chronological_backtrack_min_conflicts = 332 [default = 1000];
2534 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.chronological_backtrack_min_conflicts_), _Internal::kHasBitsOffset + 293, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2535 // optional bool find_clauses_that_are_exactly_one = 333 [default = true];
2536 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.find_clauses_that_are_exactly_one_), _Internal::kHasBitsOffset + 295, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2537 // optional bool load_at_most_ones_in_sat_presolve = 335 [default = false];
2538 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.load_at_most_ones_in_sat_presolve_), _Internal::kHasBitsOffset + 126, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2539 // optional bool use_new_integer_conflict_resolution = 336 [default = false];
2540 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.use_new_integer_conflict_resolution_), _Internal::kHasBitsOffset + 127, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2541 // optional int32 clause_cleanup_period_increment = 337 [default = 0];
2542 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_period_increment_), _Internal::kHasBitsOffset + 128, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2543 // optional bool debug_crash_if_lrat_check_fails = 339 [default = false];
2544 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.debug_crash_if_lrat_check_fails_), _Internal::kHasBitsOffset + 129, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2545 // optional int32 max_domain_size_for_linear2_expansion = 340 [default = 8];
2546 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_domain_size_for_linear2_expansion_), _Internal::kHasBitsOffset + 294, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2547 // optional bool create_1uip_boolean_during_icr = 341 [default = true];
2548 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.create_1uip_boolean_during_icr_), _Internal::kHasBitsOffset + 296, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2549 // optional bool inprocessing_use_congruence_closure = 342 [default = true];
2550 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_use_congruence_closure_), _Internal::kHasBitsOffset + 297, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2551 // optional int32 eagerly_subsume_last_n_conflicts = 343 [default = 4];
2552 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.eagerly_subsume_last_n_conflicts_), _Internal::kHasBitsOffset + 299, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2553 // optional bool check_lrat_proof = 344 [default = false];
2554 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.check_lrat_proof_), _Internal::kHasBitsOffset + 130, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2555 // optional bool output_lrat_proof = 345 [default = false];
2556 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.output_lrat_proof_), _Internal::kHasBitsOffset + 131, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2557 // optional bool check_drat_proof = 346 [default = false];
2558 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.check_drat_proof_), _Internal::kHasBitsOffset + 132, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2559 // optional bool output_drat_proof = 347 [default = false];
2560 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.output_drat_proof_), _Internal::kHasBitsOffset + 135, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2561 // optional double max_drat_time_in_seconds = 348 [default = inf];
2562 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_drat_time_in_seconds_), _Internal::kHasBitsOffset + 300, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2563 // optional int32 clause_cleanup_lbd_tier1 = 349 [default = 0];
2564 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_lbd_tier1_), _Internal::kHasBitsOffset + 133, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2565 // optional int32 clause_cleanup_lbd_tier2 = 350 [default = 0];
2566 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.clause_cleanup_lbd_tier2_), _Internal::kHasBitsOffset + 134, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2567 // optional bool extra_subsumption_during_conflict_analysis = 351 [default = true];
2568 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.extra_subsumption_during_conflict_analysis_), _Internal::kHasBitsOffset + 298, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2569 // optional bool check_merged_lrat_proof = 352 [default = false];
2570 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.check_merged_lrat_proof_), _Internal::kHasBitsOffset + 136, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2571 // optional bool decision_subsumption_during_conflict_analysis = 353 [default = true];
2572 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.decision_subsumption_during_conflict_analysis_), _Internal::kHasBitsOffset + 301, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2573 // optional bool inprocessing_use_sat_sweeping = 354 [default = false];
2574 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.inprocessing_use_sat_sweeping_), _Internal::kHasBitsOffset + 137, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2575 // optional bool subsume_during_vivification = 355 [default = true];
2576 {PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsume_during_vivification_), _Internal::kHasBitsOffset + 302, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2577 }},
2578 {{
2579 {::_pbi::TcParser::GetTable<::operations_research::sat::SatParameters>()},
2580 {0, 2},
2581 {0, 2},
2582 {0, 2},
2584 {0, 2},
2585 {0, 2},
2586 {0, 1},
2587 {0, 4},
2588 {0, 8},
2589 {0, 3},
2590 {0, 4},
2591 }},
2592 {{
2593 }},
2594};
2595PROTOBUF_NOINLINE void SatParameters::Clear() {
2596// @@protoc_insertion_point(message_clear_start:operations_research.sat.SatParameters)
2597 ::google::protobuf::internal::TSanWrite(&_impl_);
2598 ::uint32_t cached_has_bits = 0;
2599 // Prevent compiler warnings about cached_has_bits being unused
2600 (void) cached_has_bits;
2601
2602 cached_has_bits = _impl_._has_bits_[0];
2603 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2604 ::memset(&_impl_.preferred_variable_order_, 0, static_cast<::size_t>(
2605 reinterpret_cast<char*>(&_impl_.use_pb_resolution_) -
2606 reinterpret_cast<char*>(&_impl_.preferred_variable_order_)) + sizeof(_impl_.use_pb_resolution_));
2607 _impl_.use_optimization_hints_ = true;
2608 _impl_.use_phase_saving_ = true;
2609 _impl_.use_precedences_in_disjunctive_constraint_ = true;
2610 }
2611 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2612 _impl_.initial_polarity_ = 1;
2613 _impl_.minimization_algorithm_ = 2;
2614 _impl_.variable_activity_decay_ = 0.8;
2615 _impl_.max_variable_activity_value_ = 1e+100;
2616 _impl_.clause_activity_decay_ = 0.999;
2617 _impl_.clause_cleanup_period_ = 10000;
2618 _impl_.glucose_decay_increment_period_ = 5000;
2619 _impl_.max_clause_activity_value_ = 1e+20;
2620 }
2621 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2622 _impl_.glucose_max_decay_ = 0.95;
2623 _impl_.glucose_decay_increment_ = 0.01;
2624 _impl_.restart_period_ = 50;
2625 _impl_.random_seed_ = 1;
2626 _impl_.max_time_in_seconds_ = std::numeric_limits<double>::infinity();
2627 _impl_.max_number_of_conflicts_ = ::int64_t{9223372036854775807};
2628 if (CheckHasBitForRepeated(cached_has_bits, 0x00400000U)) {
2629 _impl_.restart_algorithms_.Clear();
2630 }
2631 if (CheckHasBitForRepeated(cached_has_bits, 0x00800000U)) {
2632 _impl_.subsolvers_.Clear();
2633 }
2634 }
2635 if (BatchCheckHasBit(cached_has_bits, 0x7f000000U)) {
2636 if (CheckHasBitForRepeated(cached_has_bits, 0x01000000U)) {
2637 _impl_.ignore_subsolvers_.Clear();
2638 }
2639 if (CheckHasBitForRepeated(cached_has_bits, 0x02000000U)) {
2640 _impl_.subsolver_params_.Clear();
2641 }
2642 if (CheckHasBitForRepeated(cached_has_bits, 0x04000000U)) {
2643 _impl_.extra_subsolvers_.Clear();
2644 }
2645 if (CheckHasBitForRepeated(cached_has_bits, 0x08000000U)) {
2646 _impl_.filter_subsolvers_.Clear();
2647 }
2648 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
2649 _impl_.default_restart_algorithms_.ClearToDefault(::operations_research::sat::SatParameters::Impl_::_i_give_permission_to_break_this_code_default_default_restart_algorithms_, GetArena());
2650 }
2651 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
2652 _impl_.name_.ClearNonDefaultToEmpty();
2653 }
2654 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
2655 _impl_.log_prefix_.ClearNonDefaultToEmpty();
2656 }
2657 }
2658 _impl_.random_branches_ratio_ = 0;
2659 cached_has_bits = _impl_._has_bits_[1];
2660 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2661 ::memset(&_impl_.max_sat_assumption_order_, 0, static_cast<::size_t>(
2662 reinterpret_cast<char*>(&_impl_.strategy_change_increase_ratio_) -
2663 reinterpret_cast<char*>(&_impl_.max_sat_assumption_order_)) + sizeof(_impl_.strategy_change_increase_ratio_));
2664 }
2665 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2666 ::memset(&_impl_.initial_variables_activity_, 0, static_cast<::size_t>(
2667 reinterpret_cast<char*>(&_impl_.enumerate_all_solutions_) -
2668 reinterpret_cast<char*>(&_impl_.initial_variables_activity_)) + sizeof(_impl_.enumerate_all_solutions_));
2669 }
2670 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2671 ::memset(&_impl_.only_add_cuts_at_level_zero_, 0, static_cast<::size_t>(
2672 reinterpret_cast<char*>(&_impl_.exploit_best_solution_) -
2673 reinterpret_cast<char*>(&_impl_.only_add_cuts_at_level_zero_)) + sizeof(_impl_.exploit_best_solution_));
2674 }
2675 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
2676 ::memset(&_impl_.interleave_batch_size_, 0, static_cast<::size_t>(
2677 reinterpret_cast<char*>(&_impl_.stop_after_presolve_) -
2678 reinterpret_cast<char*>(&_impl_.interleave_batch_size_)) + sizeof(_impl_.stop_after_presolve_));
2679 }
2680 cached_has_bits = _impl_._has_bits_[2];
2681 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2682 ::memset(&_impl_.exploit_relaxation_solution_, 0, static_cast<::size_t>(
2683 reinterpret_cast<char*>(&_impl_.use_probing_search_) -
2684 reinterpret_cast<char*>(&_impl_.exploit_relaxation_solution_)) + sizeof(_impl_.use_probing_search_));
2685 }
2686 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2687 ::memset(&_impl_.permute_variable_randomly_, 0, static_cast<::size_t>(
2688 reinterpret_cast<char*>(&_impl_.fix_variables_to_their_hinted_value_) -
2689 reinterpret_cast<char*>(&_impl_.permute_variable_randomly_)) + sizeof(_impl_.fix_variables_to_their_hinted_value_));
2690 }
2691 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2692 ::memset(&_impl_.fill_additional_solutions_in_response_, 0, static_cast<::size_t>(
2693 reinterpret_cast<char*>(&_impl_.detect_table_with_cost_) -
2694 reinterpret_cast<char*>(&_impl_.fill_additional_solutions_in_response_)) + sizeof(_impl_.detect_table_with_cost_));
2695 }
2696 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
2697 ::memset(&_impl_.exploit_all_precedences_, 0, static_cast<::size_t>(
2698 reinterpret_cast<char*>(&_impl_.use_ls_only_) -
2699 reinterpret_cast<char*>(&_impl_.exploit_all_precedences_)) + sizeof(_impl_.use_ls_only_));
2700 }
2701 cached_has_bits = _impl_._has_bits_[3];
2702 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2703 ::memset(&_impl_.shared_tree_split_strategy_, 0, static_cast<::size_t>(
2704 reinterpret_cast<char*>(&_impl_.use_area_energetic_reasoning_in_no_overlap_2d_) -
2705 reinterpret_cast<char*>(&_impl_.shared_tree_split_strategy_)) + sizeof(_impl_.use_area_energetic_reasoning_in_no_overlap_2d_));
2706 }
2707 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2708 ::memset(&_impl_.detect_linearized_product_, 0, static_cast<::size_t>(
2709 reinterpret_cast<char*>(&_impl_.max_num_deterministic_batches_) -
2710 reinterpret_cast<char*>(&_impl_.detect_linearized_product_)) + sizeof(_impl_.max_num_deterministic_batches_));
2711 }
2712 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2713 ::memset(&_impl_.num_full_subsolvers_, 0, static_cast<::size_t>(
2714 reinterpret_cast<char*>(&_impl_.polarity_exploit_ls_hints_) -
2715 reinterpret_cast<char*>(&_impl_.num_full_subsolvers_)) + sizeof(_impl_.polarity_exploit_ls_hints_));
2716 }
2717 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
2718 ::memset(&_impl_.use_all_different_for_circuit_, 0, static_cast<::size_t>(
2719 reinterpret_cast<char*>(&_impl_.use_new_integer_conflict_resolution_) -
2720 reinterpret_cast<char*>(&_impl_.use_all_different_for_circuit_)) + sizeof(_impl_.use_new_integer_conflict_resolution_));
2721 }
2722 cached_has_bits = _impl_._has_bits_[4];
2723 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2724 ::memset(&_impl_.clause_cleanup_period_increment_, 0, static_cast<::size_t>(
2725 reinterpret_cast<char*>(&_impl_.output_drat_proof_) -
2726 reinterpret_cast<char*>(&_impl_.clause_cleanup_period_increment_)) + sizeof(_impl_.output_drat_proof_));
2727 }
2728 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2729 ::memset(&_impl_.check_merged_lrat_proof_, 0, static_cast<::size_t>(
2730 reinterpret_cast<char*>(&_impl_.inprocessing_use_sat_sweeping_) -
2731 reinterpret_cast<char*>(&_impl_.check_merged_lrat_proof_)) + sizeof(_impl_.inprocessing_use_sat_sweeping_));
2732 _impl_.max_memory_in_mb_ = ::int64_t{10000};
2733 _impl_.binary_minimization_algorithm_ = 5;
2734 _impl_.pb_cleanup_increment_ = 200;
2735 _impl_.pb_cleanup_ratio_ = 0.5;
2736 _impl_.core_minimization_level_ = 2;
2737 _impl_.max_sat_stratification_ = 1;
2738 }
2739 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2740 _impl_.presolve_bve_threshold_ = 500;
2741 _impl_.presolve_bve_clause_weight_ = 3;
2742 _impl_.presolve_probing_deterministic_time_limit_ = 30;
2743 _impl_.clause_cleanup_lbd_bound_ = 5;
2744 _impl_.restart_running_window_size_ = 50;
2745 _impl_.restart_dl_average_ratio_ = 1;
2746 _impl_.count_assumption_levels_in_lbd_ = true;
2747 _impl_.subsumption_during_conflict_analysis_ = true;
2748 }
2749 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
2750 _impl_.presolve_use_bva_ = true;
2751 _impl_.use_disjunctive_constraint_in_cumulative_ = true;
2752 _impl_.blocking_restart_window_size_ = 5000;
2753 _impl_.blocking_restart_multiplier_ = 1.4;
2754 _impl_.max_deterministic_time_ = std::numeric_limits<double>::infinity();
2755 _impl_.restart_lbd_average_ratio_ = 1;
2756 _impl_.presolve_bva_threshold_ = 1;
2757 _impl_.find_multiple_cores_ = true;
2758 }
2759 cached_has_bits = _impl_._has_bits_[5];
2760 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2761 _impl_.cp_model_presolve_ = true;
2762 _impl_.presolve_blocked_clause_ = true;
2763 _impl_.cover_optimization_ = true;
2764 _impl_.linearization_level_ = 1;
2765 _impl_.max_num_cuts_ = 10000;
2766 _impl_.cp_model_use_sat_presolve_ = true;
2767 _impl_.exploit_integer_lp_solution_ = true;
2768 _impl_.auto_detect_greater_than_at_least_one_of_ = true;
2769 }
2770 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2771 _impl_.instantiate_all_variables_ = true;
2772 _impl_.binary_search_num_conflicts_ = -1;
2773 _impl_.boolean_encoding_level_ = 1;
2774 _impl_.cp_model_probing_level_ = 2;
2775 _impl_.use_exact_lp_reason_ = true;
2776 _impl_.add_lp_constraints_lazily_ = true;
2777 _impl_.share_objective_bounds_ = true;
2778 _impl_.share_level_zero_bounds_ = true;
2779 }
2780 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2781 _impl_.max_integer_rounding_scaling_ = 600;
2782 _impl_.min_orthogonality_for_lp_constraints_ = 0.05;
2783 _impl_.exploit_all_lp_solution_ = true;
2784 _impl_.add_cg_cuts_ = true;
2785 _impl_.add_mir_cuts_ = true;
2786 _impl_.use_rins_lns_ = true;
2787 _impl_.max_consecutive_inactive_count_ = 100;
2788 _impl_.pseudo_cost_reliability_threshold_ = ::int64_t{100};
2789 }
2790 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
2791 _impl_.mip_max_bound_ = 10000000;
2792 _impl_.new_constraints_batch_size_ = 50;
2793 _impl_.mip_max_activity_exponent_ = 53;
2794 _impl_.mip_var_scaling_ = 1;
2795 _impl_.mip_wanted_precision_ = 1e-06;
2796 _impl_.mip_check_precision_ = 0.0001;
2797 _impl_.max_presolve_iterations_ = 3;
2798 _impl_.exploit_objective_ = true;
2799 }
2800 cached_has_bits = _impl_._has_bits_[6];
2801 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2802 _impl_.catch_sigint_signal_ = true;
2803 _impl_.use_implied_bounds_ = true;
2804 _impl_.add_lin_max_cuts_ = true;
2805 _impl_.merge_no_overlap_work_limit_ = 1000000000000;
2806 _impl_.merge_at_most_one_work_limit_ = 100000000;
2807 _impl_.presolve_substitution_level_ = 1;
2808 _impl_.max_all_diff_cut_size_ = 64;
2809 _impl_.hint_conflict_limit_ = 10;
2810 }
2811 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2812 _impl_.max_cut_rounds_at_level_zero_ = 1;
2813 _impl_.cut_max_active_count_value_ = 10000000000;
2814 _impl_.cut_active_count_decay_ = 0.8;
2815 _impl_.absolute_gap_limit_ = 0.0001;
2816 _impl_.cut_cleanup_target_ = 1000;
2817 _impl_.fp_rounding_ = 2;
2818 _impl_.use_sat_inprocessing_ = true;
2819 _impl_.use_feasibility_pump_ = true;
2820 }
2821 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2822 _impl_.mip_automatically_scale_variables_ = true;
2823 _impl_.add_zero_half_cuts_ = true;
2824 _impl_.polarity_rephase_increment_ = 1000;
2825 _impl_.add_clique_cuts_ = true;
2826 _impl_.convert_intervals_ = true;
2827 _impl_.expand_reservoir_constraints_ = true;
2828 _impl_.log_to_stdout_ = true;
2829 _impl_.symmetry_level_ = 2;
2830 }
2831 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
2832 _impl_.clause_cleanup_ratio_ = 0.5;
2833 _impl_.max_domain_size_when_encoding_eq_neq_constraints_ = 16;
2834 _impl_.solution_pool_size_ = 3;
2835 _impl_.mip_max_valid_magnitude_ = 1e+20;
2836 _impl_.presolve_inclusion_work_limit_ = ::int64_t{100000000};
2837 _impl_.cut_level_ = 1;
2838 _impl_.mip_compute_true_objective_bound_ = true;
2839 _impl_.ignore_names_ = true;
2840 }
2841 cached_has_bits = _impl_._has_bits_[7];
2842 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2843 _impl_.share_binary_clauses_ = true;
2844 _impl_.use_dual_scheduling_heuristics_ = true;
2845 _impl_.shaving_deterministic_time_in_probing_search_ = 0.001;
2846 _impl_.shaving_search_deterministic_time_ = 0.1;
2847 _impl_.propagation_loop_detection_factor_ = 10;
2848 _impl_.table_compression_level_ = 2;
2849 _impl_.root_lp_iterations_ = 2000;
2850 _impl_.probing_deterministic_time_limit_ = 1;
2851 }
2852 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2853 _impl_.mip_drop_tolerance_ = 1e-16;
2854 _impl_.max_size_to_create_precedence_literals_in_disjunctive_ = 60;
2855 _impl_.shared_tree_num_workers_ = -1;
2856 _impl_.new_linear_propagation_ = true;
2857 _impl_.infer_all_diffs_ = true;
2858 _impl_.find_big_linear_overlap_ = true;
2859 _impl_.feasibility_jump_enable_restarts_ = true;
2860 _impl_.shared_tree_max_nodes_per_worker_ = 10000;
2861 }
2862 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2863 _impl_.feasibility_jump_decay_ = 0.95;
2864 _impl_.feasibility_jump_var_randomization_probability_ = 0.05;
2865 _impl_.feasibility_jump_var_perburbation_range_ratio_ = 0.2;
2866 _impl_.violation_ls_perturbation_period_ = 100;
2867 _impl_.linear_split_size_ = 100;
2868 _impl_.feasibility_jump_linearization_level_ = 2;
2869 _impl_.feasibility_jump_restart_factor_ = 1;
2870 _impl_.violation_ls_compound_move_probability_ = 0.5;
2871 }
2872 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
2873 _impl_.max_num_intervals_for_timetable_edge_finding_ = 100;
2874 _impl_.mip_presolve_level_ = 2;
2875 _impl_.lp_primal_tolerance_ = 1e-07;
2876 _impl_.feasibility_jump_max_expanded_constraint_size_ = 500;
2877 _impl_.use_lb_relax_lns_ = true;
2878 _impl_.use_feasibility_jump_ = true;
2879 _impl_.use_extended_probing_ = true;
2880 _impl_.add_rlt_cuts_ = true;
2881 }
2882 cached_has_bits = _impl_._has_bits_[8];
2883 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2884 _impl_.lp_dual_tolerance_ = 1e-07;
2885 _impl_.at_most_one_max_expansion_size_ = 3;
2886 _impl_.probing_num_combinations_limit_ = 20000;
2887 _impl_.inprocessing_dtime_ratio_ = 0.2;
2888 _impl_.inprocessing_probing_dtime_ = 1;
2889 _impl_.inprocessing_minimization_dtime_ = 1;
2890 _impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_ = 1250;
2891 _impl_.shared_tree_worker_min_restarts_per_subtree_ = 1;
2892 }
2893 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2894 _impl_.shared_tree_open_leaves_per_worker_ = 2;
2895 _impl_.variables_shaving_level_ = -1;
2896 _impl_.use_lns_ = true;
2897 _impl_.share_glue_clauses_ = true;
2898 _impl_.shared_tree_worker_enable_trail_sharing_ = true;
2899 _impl_.inprocessing_minimization_use_conflict_analysis_ = true;
2900 _impl_.shaving_search_threshold_ = ::int64_t{64};
2901 _impl_.feasibility_jump_batch_dtime_ = 0.1;
2902 }
2903 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2904 _impl_.lb_relax_num_workers_threshold_ = 16;
2905 _impl_.shared_tree_balance_tolerance_ = 1;
2906 _impl_.symmetry_detection_deterministic_time_limit_ = 1;
2907 _impl_.lns_initial_difficulty_ = 0.5;
2908 _impl_.lns_initial_deterministic_limit_ = 0.1;
2909 _impl_.minimize_shared_clauses_ = true;
2910 _impl_.shared_tree_worker_enable_phase_sharing_ = true;
2911 _impl_.remove_fixed_variables_early_ = true;
2912 }
2913 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
2914 _impl_.use_linear3_for_no_overlap_2d_precedences_ = true;
2915 _impl_.routing_cut_subset_size_for_exact_binary_relation_bound_ = 8;
2916 _impl_.routing_cut_dp_effort_ = 10000000;
2917 _impl_.routing_cut_max_infeasible_path_length_ = 6;
2918 _impl_.routing_cut_subset_size_for_shortest_paths_bound_ = 8;
2919 _impl_.max_alldiff_domain_size_ = 256;
2920 _impl_.no_overlap_2d_boolean_relations_limit_ = 10;
2921 _impl_.share_glue_clauses_dtime_ = 1;
2922 }
2923 cached_has_bits = _impl_._has_bits_[9];
2924 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
2925 _impl_.alternative_pool_size_ = 1;
2926 _impl_.transitive_precedences_work_limit_ = 1000000;
2927 _impl_.shared_tree_split_min_dtime_ = 0.1;
2928 _impl_.solution_pool_diversity_limit_ = 10;
2929 _impl_.max_backjump_levels_ = 50;
2930 _impl_.chronological_backtrack_min_conflicts_ = 1000;
2931 _impl_.max_domain_size_for_linear2_expansion_ = 8;
2932 _impl_.find_clauses_that_are_exactly_one_ = true;
2933 }
2934 if (BatchCheckHasBit(cached_has_bits, 0x00007f00U)) {
2935 _impl_.create_1uip_boolean_during_icr_ = true;
2936 _impl_.inprocessing_use_congruence_closure_ = true;
2937 _impl_.extra_subsumption_during_conflict_analysis_ = true;
2938 _impl_.eagerly_subsume_last_n_conflicts_ = 4;
2939 _impl_.max_drat_time_in_seconds_ = std::numeric_limits<double>::infinity();
2940 _impl_.decision_subsumption_during_conflict_analysis_ = true;
2941 _impl_.subsume_during_vivification_ = true;
2942 }
2943 _impl_._has_bits_.Clear();
2944 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2945}
2946
2947#if defined(PROTOBUF_CUSTOM_VTABLE)
2948::uint8_t* PROTOBUF_NONNULL SatParameters::_InternalSerialize(
2949 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
2950 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2951 const SatParameters& this_ = static_cast<const SatParameters&>(base);
2952#else // PROTOBUF_CUSTOM_VTABLE
2953::uint8_t* PROTOBUF_NONNULL SatParameters::_InternalSerialize(
2954 ::uint8_t* PROTOBUF_NONNULL target,
2955 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
2956 const SatParameters& this_ = *this;
2957#endif // PROTOBUF_CUSTOM_VTABLE
2958 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2959 this_.CheckHasBitConsistency();
2960 }
2961 // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SatParameters)
2962 ::uint32_t cached_has_bits = 0;
2963 (void)cached_has_bits;
2964
2965 cached_has_bits = this_._impl_._has_bits_[0];
2966 // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
2967 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2968 target = stream->EnsureSpace(target);
2969 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2970 1, this_._internal_preferred_variable_order(), target);
2971 }
2972
2973 // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
2974 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
2975 target = stream->EnsureSpace(target);
2976 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2977 2, this_._internal_initial_polarity(), target);
2978 }
2979
2980 // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
2981 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
2982 target = stream->EnsureSpace(target);
2983 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2984 4, this_._internal_minimization_algorithm(), target);
2985 }
2986
2987 // optional int32 clause_cleanup_period = 11 [default = 10000];
2988 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
2989 target =
2990 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<11>(
2991 stream, this_._internal_clause_cleanup_period(), target);
2992 }
2993
2994 // optional int32 clause_cleanup_target = 13 [default = 0];
2995 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2996 target =
2997 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<13>(
2998 stream, this_._internal_clause_cleanup_target(), target);
2999 }
3000
3001 // optional double variable_activity_decay = 15 [default = 0.8];
3002 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3003 target = stream->EnsureSpace(target);
3004 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3005 15, this_._internal_variable_activity_decay(), target);
3006 }
3007
3008 // optional double max_variable_activity_value = 16 [default = 1e+100];
3009 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3010 target = stream->EnsureSpace(target);
3011 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3012 16, this_._internal_max_variable_activity_value(), target);
3013 }
3014
3015 // optional double clause_activity_decay = 17 [default = 0.999];
3016 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3017 target = stream->EnsureSpace(target);
3018 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3019 17, this_._internal_clause_activity_decay(), target);
3020 }
3021
3022 // optional double max_clause_activity_value = 18 [default = 1e+20];
3023 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3024 target = stream->EnsureSpace(target);
3025 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3026 18, this_._internal_max_clause_activity_value(), target);
3027 }
3028
3029 // optional double glucose_max_decay = 22 [default = 0.95];
3030 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3031 target = stream->EnsureSpace(target);
3032 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3033 22, this_._internal_glucose_max_decay(), target);
3034 }
3035
3036 // optional double glucose_decay_increment = 23 [default = 0.01];
3037 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3038 target = stream->EnsureSpace(target);
3039 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3040 23, this_._internal_glucose_decay_increment(), target);
3041 }
3042
3043 // optional int32 glucose_decay_increment_period = 24 [default = 5000];
3044 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3045 target = stream->EnsureSpace(target);
3046 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3047 24, this_._internal_glucose_decay_increment_period(), target);
3048 }
3049
3050 // optional int32 restart_period = 30 [default = 50];
3051 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3052 target = stream->EnsureSpace(target);
3053 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3054 30, this_._internal_restart_period(), target);
3055 }
3056
3057 // optional int32 random_seed = 31 [default = 1];
3058 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3059 target = stream->EnsureSpace(target);
3060 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3061 31, this_._internal_random_seed(), target);
3062 }
3063
3064 // optional double random_branches_ratio = 32 [default = 0];
3065 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
3066 target = stream->EnsureSpace(target);
3067 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3068 32, this_._internal_random_branches_ratio(), target);
3069 }
3070
3071 cached_has_bits = this_._impl_._has_bits_[4];
3072 // optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorithm = 34 [default = BINARY_MINIMIZATION_FROM_UIP_AND_DECISIONS];
3073 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3074 target = stream->EnsureSpace(target);
3075 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3076 34, this_._internal_binary_minimization_algorithm(), target);
3077 }
3078
3079 cached_has_bits = this_._impl_._has_bits_[0];
3080 // optional bool use_optimization_hints = 35 [default = true];
3081 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3082 target = stream->EnsureSpace(target);
3083 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3084 35, this_._internal_use_optimization_hints(), target);
3085 }
3086
3087 // optional double max_time_in_seconds = 36 [default = inf];
3088 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3089 target = stream->EnsureSpace(target);
3090 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3091 36, this_._internal_max_time_in_seconds(), target);
3092 }
3093
3094 // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
3095 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3096 target = stream->EnsureSpace(target);
3097 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
3098 37, this_._internal_max_number_of_conflicts(), target);
3099 }
3100
3101 cached_has_bits = this_._impl_._has_bits_[4];
3102 // optional int64 max_memory_in_mb = 40 [default = 10000];
3103 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3104 target = stream->EnsureSpace(target);
3105 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
3106 40, this_._internal_max_memory_in_mb(), target);
3107 }
3108
3109 cached_has_bits = this_._impl_._has_bits_[0];
3110 // optional bool log_search_progress = 41 [default = false];
3111 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3112 target = stream->EnsureSpace(target);
3113 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3114 41, this_._internal_log_search_progress(), target);
3115 }
3116
3117 // optional bool use_pb_resolution = 43 [default = false];
3118 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3119 target = stream->EnsureSpace(target);
3120 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3121 43, this_._internal_use_pb_resolution(), target);
3122 }
3123
3124 // optional bool use_phase_saving = 44 [default = true];
3125 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3126 target = stream->EnsureSpace(target);
3127 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3128 44, this_._internal_use_phase_saving(), target);
3129 }
3130
3131 // optional double random_polarity_ratio = 45 [default = 0];
3132 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3133 target = stream->EnsureSpace(target);
3134 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3135 45, this_._internal_random_polarity_ratio(), target);
3136 }
3137
3138 cached_has_bits = this_._impl_._has_bits_[4];
3139 // optional int32 pb_cleanup_increment = 46 [default = 200];
3140 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3141 target = stream->EnsureSpace(target);
3142 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3143 46, this_._internal_pb_cleanup_increment(), target);
3144 }
3145
3146 // optional double pb_cleanup_ratio = 47 [default = 0.5];
3147 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3148 target = stream->EnsureSpace(target);
3149 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3150 47, this_._internal_pb_cleanup_ratio(), target);
3151 }
3152
3153 cached_has_bits = this_._impl_._has_bits_[1];
3154 // optional bool minimize_reduction_during_pb_resolution = 48 [default = false];
3155 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3156 target = stream->EnsureSpace(target);
3157 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3158 48, this_._internal_minimize_reduction_during_pb_resolution(), target);
3159 }
3160
3161 cached_has_bits = this_._impl_._has_bits_[4];
3162 // optional bool count_assumption_levels_in_lbd = 49 [default = true];
3163 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3164 target = stream->EnsureSpace(target);
3165 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3166 49, this_._internal_count_assumption_levels_in_lbd(), target);
3167 }
3168
3169 // optional int32 core_minimization_level = 50 [default = 2];
3170 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3171 target = stream->EnsureSpace(target);
3172 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3173 50, this_._internal_core_minimization_level(), target);
3174 }
3175
3176 cached_has_bits = this_._impl_._has_bits_[1];
3177 // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
3178 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
3179 target = stream->EnsureSpace(target);
3180 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3181 51, this_._internal_max_sat_assumption_order(), target);
3182 }
3183
3184 // optional bool max_sat_reverse_assumption_order = 52 [default = false];
3185 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3186 target = stream->EnsureSpace(target);
3187 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3188 52, this_._internal_max_sat_reverse_assumption_order(), target);
3189 }
3190
3191 cached_has_bits = this_._impl_._has_bits_[4];
3192 // optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification = 53 [default = STRATIFICATION_DESCENT];
3193 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3194 target = stream->EnsureSpace(target);
3195 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3196 53, this_._internal_max_sat_stratification(), target);
3197 }
3198
3199 // optional int32 presolve_bve_threshold = 54 [default = 500];
3200 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3201 target = stream->EnsureSpace(target);
3202 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3203 54, this_._internal_presolve_bve_threshold(), target);
3204 }
3205
3206 // optional int32 presolve_bve_clause_weight = 55 [default = 3];
3207 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3208 target = stream->EnsureSpace(target);
3209 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3210 55, this_._internal_presolve_bve_clause_weight(), target);
3211 }
3212
3213 // optional bool subsumption_during_conflict_analysis = 56 [default = true];
3214 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3215 target = stream->EnsureSpace(target);
3216 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3217 56, this_._internal_subsumption_during_conflict_analysis(), target);
3218 }
3219
3220 // optional double presolve_probing_deterministic_time_limit = 57 [default = 30];
3221 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3222 target = stream->EnsureSpace(target);
3223 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3224 57, this_._internal_presolve_probing_deterministic_time_limit(), target);
3225 }
3226
3227 // optional int32 clause_cleanup_lbd_bound = 59 [default = 5];
3228 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3229 target = stream->EnsureSpace(target);
3230 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3231 59, this_._internal_clause_cleanup_lbd_bound(), target);
3232 }
3233
3234 cached_has_bits = this_._impl_._has_bits_[1];
3235 // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
3236 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3237 target = stream->EnsureSpace(target);
3238 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3239 60, this_._internal_clause_cleanup_ordering(), target);
3240 }
3241
3242 cached_has_bits = this_._impl_._has_bits_[0];
3243 // repeated .operations_research.sat.SatParameters.RestartAlgorithm restart_algorithms = 61;
3244 if (CheckHasBitForRepeated(cached_has_bits, 0x00400000U)) {
3245 for (int i = 0, n = this_._internal_restart_algorithms_size(); i < n; ++i) {
3246 target = stream->EnsureSpace(target);
3247 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3248 61, static_cast<::operations_research::sat::SatParameters_RestartAlgorithm>(this_._internal_restart_algorithms().Get(i)),
3249 target);
3250 }
3251 }
3252
3253 cached_has_bits = this_._impl_._has_bits_[4];
3254 // optional int32 restart_running_window_size = 62 [default = 50];
3255 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3256 target = stream->EnsureSpace(target);
3257 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3258 62, this_._internal_restart_running_window_size(), target);
3259 }
3260
3261 // optional double restart_dl_average_ratio = 63 [default = 1];
3262 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3263 target = stream->EnsureSpace(target);
3264 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3265 63, this_._internal_restart_dl_average_ratio(), target);
3266 }
3267
3268 cached_has_bits = this_._impl_._has_bits_[1];
3269 // optional bool use_blocking_restart = 64 [default = false];
3270 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3271 target = stream->EnsureSpace(target);
3272 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3273 64, this_._internal_use_blocking_restart(), target);
3274 }
3275
3276 cached_has_bits = this_._impl_._has_bits_[4];
3277 // optional int32 blocking_restart_window_size = 65 [default = 5000];
3278 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3279 target = stream->EnsureSpace(target);
3280 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3281 65, this_._internal_blocking_restart_window_size(), target);
3282 }
3283
3284 // optional double blocking_restart_multiplier = 66 [default = 1.4];
3285 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3286 target = stream->EnsureSpace(target);
3287 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3288 66, this_._internal_blocking_restart_multiplier(), target);
3289 }
3290
3291 // optional double max_deterministic_time = 67 [default = inf];
3292 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
3293 target = stream->EnsureSpace(target);
3294 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3295 67, this_._internal_max_deterministic_time(), target);
3296 }
3297
3298 cached_has_bits = this_._impl_._has_bits_[1];
3299 // optional int32 num_conflicts_before_strategy_changes = 68 [default = 0];
3300 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3301 target = stream->EnsureSpace(target);
3302 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3303 68, this_._internal_num_conflicts_before_strategy_changes(), target);
3304 }
3305
3306 // optional double strategy_change_increase_ratio = 69 [default = 0];
3307 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3308 target = stream->EnsureSpace(target);
3309 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3310 69, this_._internal_strategy_change_increase_ratio(), target);
3311 }
3312
3313 cached_has_bits = this_._impl_._has_bits_[0];
3314 // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
3315 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
3316 const ::std::string& _s = this_._internal_default_restart_algorithms();
3317 target = stream->WriteStringMaybeAliased(70, _s, target);
3318 }
3319
3320 cached_has_bits = this_._impl_._has_bits_[4];
3321 // optional double restart_lbd_average_ratio = 71 [default = 1];
3322 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
3323 target = stream->EnsureSpace(target);
3324 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3325 71, this_._internal_restart_lbd_average_ratio(), target);
3326 }
3327
3328 // optional bool presolve_use_bva = 72 [default = true];
3329 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3330 target = stream->EnsureSpace(target);
3331 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3332 72, this_._internal_presolve_use_bva(), target);
3333 }
3334
3335 // optional int32 presolve_bva_threshold = 73 [default = 1];
3336 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
3337 target = stream->EnsureSpace(target);
3338 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3339 73, this_._internal_presolve_bva_threshold(), target);
3340 }
3341
3342 cached_has_bits = this_._impl_._has_bits_[0];
3343 // optional bool use_precedences_in_disjunctive_constraint = 74 [default = true];
3344 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3345 target = stream->EnsureSpace(target);
3346 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3347 74, this_._internal_use_precedences_in_disjunctive_constraint(), target);
3348 }
3349
3350 cached_has_bits = this_._impl_._has_bits_[1];
3351 // optional bool use_erwa_heuristic = 75 [default = false];
3352 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3353 target = stream->EnsureSpace(target);
3354 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3355 75, this_._internal_use_erwa_heuristic(), target);
3356 }
3357
3358 // optional double initial_variables_activity = 76 [default = 0];
3359 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3360 target = stream->EnsureSpace(target);
3361 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3362 76, this_._internal_initial_variables_activity(), target);
3363 }
3364
3365 // optional bool also_bump_variables_in_conflict_reasons = 77 [default = false];
3366 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3367 target = stream->EnsureSpace(target);
3368 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3369 77, this_._internal_also_bump_variables_in_conflict_reasons(), target);
3370 }
3371
3372 // optional bool use_overload_checker_in_cumulative = 78 [default = false];
3373 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3374 target = stream->EnsureSpace(target);
3375 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3376 78, this_._internal_use_overload_checker_in_cumulative(), target);
3377 }
3378
3379 // optional bool use_timetable_edge_finding_in_cumulative = 79 [default = false];
3380 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3381 target = stream->EnsureSpace(target);
3382 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3383 79, this_._internal_use_timetable_edge_finding_in_cumulative(), target);
3384 }
3385
3386 cached_has_bits = this_._impl_._has_bits_[4];
3387 // optional bool use_disjunctive_constraint_in_cumulative = 80 [default = true];
3388 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3389 target = stream->EnsureSpace(target);
3390 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3391 80, this_._internal_use_disjunctive_constraint_in_cumulative(), target);
3392 }
3393
3394 cached_has_bits = this_._impl_._has_bits_[1];
3395 // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
3396 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3397 target = stream->EnsureSpace(target);
3398 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3399 82, this_._internal_search_branching(), target);
3400 }
3401
3402 // optional bool optimize_with_core = 83 [default = false];
3403 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3404 target = stream->EnsureSpace(target);
3405 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3406 83, this_._internal_optimize_with_core(), target);
3407 }
3408
3409 cached_has_bits = this_._impl_._has_bits_[4];
3410 // optional bool find_multiple_cores = 84 [default = true];
3411 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
3412 target = stream->EnsureSpace(target);
3413 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3414 84, this_._internal_find_multiple_cores(), target);
3415 }
3416
3417 cached_has_bits = this_._impl_._has_bits_[1];
3418 // optional bool optimize_with_max_hs = 85 [default = false];
3419 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3420 target = stream->EnsureSpace(target);
3421 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3422 85, this_._internal_optimize_with_max_hs(), target);
3423 }
3424
3425 cached_has_bits = this_._impl_._has_bits_[5];
3426 // optional bool cp_model_presolve = 86 [default = true];
3427 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
3428 target = stream->EnsureSpace(target);
3429 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3430 86, this_._internal_cp_model_presolve(), target);
3431 }
3432
3433 cached_has_bits = this_._impl_._has_bits_[1];
3434 // optional bool enumerate_all_solutions = 87 [default = false];
3435 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3436 target = stream->EnsureSpace(target);
3437 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3438 87, this_._internal_enumerate_all_solutions(), target);
3439 }
3440
3441 cached_has_bits = this_._impl_._has_bits_[5];
3442 // optional bool presolve_blocked_clause = 88 [default = true];
3443 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3444 target = stream->EnsureSpace(target);
3445 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3446 88, this_._internal_presolve_blocked_clause(), target);
3447 }
3448
3449 // optional bool cover_optimization = 89 [default = true];
3450 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3451 target = stream->EnsureSpace(target);
3452 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3453 89, this_._internal_cover_optimization(), target);
3454 }
3455
3456 // optional int32 linearization_level = 90 [default = 1];
3457 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3458 target = stream->EnsureSpace(target);
3459 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3460 90, this_._internal_linearization_level(), target);
3461 }
3462
3463 // optional int32 max_num_cuts = 91 [default = 10000];
3464 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3465 target = stream->EnsureSpace(target);
3466 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3467 91, this_._internal_max_num_cuts(), target);
3468 }
3469
3470 cached_has_bits = this_._impl_._has_bits_[1];
3471 // optional bool only_add_cuts_at_level_zero = 92 [default = false];
3472 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3473 target = stream->EnsureSpace(target);
3474 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3475 92, this_._internal_only_add_cuts_at_level_zero(), target);
3476 }
3477
3478 cached_has_bits = this_._impl_._has_bits_[5];
3479 // optional bool cp_model_use_sat_presolve = 93 [default = true];
3480 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3481 target = stream->EnsureSpace(target);
3482 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3483 93, this_._internal_cp_model_use_sat_presolve(), target);
3484 }
3485
3486 // optional bool exploit_integer_lp_solution = 94 [default = true];
3487 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3488 target = stream->EnsureSpace(target);
3489 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3490 94, this_._internal_exploit_integer_lp_solution(), target);
3491 }
3492
3493 // optional bool auto_detect_greater_than_at_least_one_of = 95 [default = true];
3494 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3495 target = stream->EnsureSpace(target);
3496 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3497 95, this_._internal_auto_detect_greater_than_at_least_one_of(), target);
3498 }
3499
3500 cached_has_bits = this_._impl_._has_bits_[1];
3501 // optional bool stop_after_first_solution = 98 [default = false];
3502 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3503 target = stream->EnsureSpace(target);
3504 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3505 98, this_._internal_stop_after_first_solution(), target);
3506 }
3507
3508 cached_has_bits = this_._impl_._has_bits_[5];
3509 // optional int32 binary_search_num_conflicts = 99 [default = -1];
3510 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3511 target = stream->EnsureSpace(target);
3512 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3513 99, this_._internal_binary_search_num_conflicts(), target);
3514 }
3515
3516 cached_has_bits = this_._impl_._has_bits_[1];
3517 // optional int32 num_search_workers = 100 [default = 0];
3518 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3519 target = stream->EnsureSpace(target);
3520 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3521 100, this_._internal_num_search_workers(), target);
3522 }
3523
3524 // optional bool use_lns_only = 101 [default = false];
3525 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3526 target = stream->EnsureSpace(target);
3527 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3528 101, this_._internal_use_lns_only(), target);
3529 }
3530
3531 // optional bool randomize_search = 103 [default = false];
3532 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3533 target = stream->EnsureSpace(target);
3534 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3535 103, this_._internal_randomize_search(), target);
3536 }
3537
3538 // optional int64 search_random_variable_pool_size = 104 [default = 0];
3539 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3540 target = stream->EnsureSpace(target);
3541 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
3542 104, this_._internal_search_random_variable_pool_size(), target);
3543 }
3544
3545 cached_has_bits = this_._impl_._has_bits_[5];
3546 // optional bool instantiate_all_variables = 106 [default = true];
3547 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3548 target = stream->EnsureSpace(target);
3549 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3550 106, this_._internal_instantiate_all_variables(), target);
3551 }
3552
3553 // optional int32 boolean_encoding_level = 107 [default = 1];
3554 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3555 target = stream->EnsureSpace(target);
3556 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3557 107, this_._internal_boolean_encoding_level(), target);
3558 }
3559
3560 cached_has_bits = this_._impl_._has_bits_[1];
3561 // optional bool use_optional_variables = 108 [default = false];
3562 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3563 target = stream->EnsureSpace(target);
3564 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3565 108, this_._internal_use_optional_variables(), target);
3566 }
3567
3568 cached_has_bits = this_._impl_._has_bits_[5];
3569 // optional bool use_exact_lp_reason = 109 [default = true];
3570 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3571 target = stream->EnsureSpace(target);
3572 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3573 109, this_._internal_use_exact_lp_reason(), target);
3574 }
3575
3576 // optional int32 cp_model_probing_level = 110 [default = 2];
3577 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3578 target = stream->EnsureSpace(target);
3579 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3580 110, this_._internal_cp_model_probing_level(), target);
3581 }
3582
3583 // optional bool add_lp_constraints_lazily = 112 [default = true];
3584 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3585 target = stream->EnsureSpace(target);
3586 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3587 112, this_._internal_add_lp_constraints_lazily(), target);
3588 }
3589
3590 // optional bool share_objective_bounds = 113 [default = true];
3591 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3592 target = stream->EnsureSpace(target);
3593 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3594 113, this_._internal_share_objective_bounds(), target);
3595 }
3596
3597 // optional bool share_level_zero_bounds = 114 [default = true];
3598 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3599 target = stream->EnsureSpace(target);
3600 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3601 114, this_._internal_share_level_zero_bounds(), target);
3602 }
3603
3604 // optional double min_orthogonality_for_lp_constraints = 115 [default = 0.05];
3605 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3606 target = stream->EnsureSpace(target);
3607 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3608 115, this_._internal_min_orthogonality_for_lp_constraints(), target);
3609 }
3610
3611 // optional bool exploit_all_lp_solution = 116 [default = true];
3612 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3613 target = stream->EnsureSpace(target);
3614 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3615 116, this_._internal_exploit_all_lp_solution(), target);
3616 }
3617
3618 // optional bool add_cg_cuts = 117 [default = true];
3619 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3620 target = stream->EnsureSpace(target);
3621 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3622 117, this_._internal_add_cg_cuts(), target);
3623 }
3624
3625 // optional int32 max_integer_rounding_scaling = 119 [default = 600];
3626 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3627 target = stream->EnsureSpace(target);
3628 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3629 119, this_._internal_max_integer_rounding_scaling(), target);
3630 }
3631
3632 // optional bool add_mir_cuts = 120 [default = true];
3633 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3634 target = stream->EnsureSpace(target);
3635 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3636 120, this_._internal_add_mir_cuts(), target);
3637 }
3638
3639 // optional int32 max_consecutive_inactive_count = 121 [default = 100];
3640 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3641 target = stream->EnsureSpace(target);
3642 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3643 121, this_._internal_max_consecutive_inactive_count(), target);
3644 }
3645
3646 // optional int32 new_constraints_batch_size = 122 [default = 50];
3647 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3648 target = stream->EnsureSpace(target);
3649 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3650 122, this_._internal_new_constraints_batch_size(), target);
3651 }
3652
3653 // optional int64 pseudo_cost_reliability_threshold = 123 [default = 100];
3654 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3655 target = stream->EnsureSpace(target);
3656 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
3657 123, this_._internal_pseudo_cost_reliability_threshold(), target);
3658 }
3659
3660 // optional double mip_max_bound = 124 [default = 10000000];
3661 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3662 target = stream->EnsureSpace(target);
3663 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3664 124, this_._internal_mip_max_bound(), target);
3665 }
3666
3667 // optional double mip_var_scaling = 125 [default = 1];
3668 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3669 target = stream->EnsureSpace(target);
3670 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3671 125, this_._internal_mip_var_scaling(), target);
3672 }
3673
3674 // optional double mip_wanted_precision = 126 [default = 1e-06];
3675 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
3676 target = stream->EnsureSpace(target);
3677 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3678 126, this_._internal_mip_wanted_precision(), target);
3679 }
3680
3681 // optional int32 mip_max_activity_exponent = 127 [default = 53];
3682 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3683 target = stream->EnsureSpace(target);
3684 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3685 127, this_._internal_mip_max_activity_exponent(), target);
3686 }
3687
3688 // optional double mip_check_precision = 128 [default = 0.0001];
3689 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
3690 target = stream->EnsureSpace(target);
3691 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3692 128, this_._internal_mip_check_precision(), target);
3693 }
3694
3695 // optional bool use_rins_lns = 129 [default = true];
3696 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3697 target = stream->EnsureSpace(target);
3698 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3699 129, this_._internal_use_rins_lns(), target);
3700 }
3701
3702 cached_has_bits = this_._impl_._has_bits_[1];
3703 // optional bool exploit_best_solution = 130 [default = false];
3704 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3705 target = stream->EnsureSpace(target);
3706 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3707 130, this_._internal_exploit_best_solution(), target);
3708 }
3709
3710 cached_has_bits = this_._impl_._has_bits_[5];
3711 // optional bool exploit_objective = 131 [default = true];
3712 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
3713 target = stream->EnsureSpace(target);
3714 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3715 131, this_._internal_exploit_objective(), target);
3716 }
3717
3718 cached_has_bits = this_._impl_._has_bits_[1];
3719 // optional bool fill_tightened_domains_in_response = 132 [default = false];
3720 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3721 target = stream->EnsureSpace(target);
3722 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3723 132, this_._internal_fill_tightened_domains_in_response(), target);
3724 }
3725
3726 // optional bool use_combined_no_overlap = 133 [default = false];
3727 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3728 target = stream->EnsureSpace(target);
3729 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3730 133, this_._internal_use_combined_no_overlap(), target);
3731 }
3732
3733 // optional int32 interleave_batch_size = 134 [default = 0];
3734 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3735 target = stream->EnsureSpace(target);
3736 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3737 134, this_._internal_interleave_batch_size(), target);
3738 }
3739
3740 cached_has_bits = this_._impl_._has_bits_[6];
3741 // optional bool catch_sigint_signal = 135 [default = true];
3742 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
3743 target = stream->EnsureSpace(target);
3744 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3745 135, this_._internal_catch_sigint_signal(), target);
3746 }
3747
3748 cached_has_bits = this_._impl_._has_bits_[1];
3749 // optional bool interleave_search = 136 [default = false];
3750 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3751 target = stream->EnsureSpace(target);
3752 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3753 136, this_._internal_interleave_search(), target);
3754 }
3755
3756 // optional bool diversify_lns_params = 137 [default = false];
3757 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
3758 target = stream->EnsureSpace(target);
3759 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3760 137, this_._internal_diversify_lns_params(), target);
3761 }
3762
3763 cached_has_bits = this_._impl_._has_bits_[5];
3764 // optional int32 max_presolve_iterations = 138 [default = 3];
3765 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
3766 target = stream->EnsureSpace(target);
3767 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3768 138, this_._internal_max_presolve_iterations(), target);
3769 }
3770
3771 cached_has_bits = this_._impl_._has_bits_[6];
3772 // optional bool use_implied_bounds = 144 [default = true];
3773 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3774 target = stream->EnsureSpace(target);
3775 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3776 144, this_._internal_use_implied_bounds(), target);
3777 }
3778
3779 // optional double merge_no_overlap_work_limit = 145 [default = 1000000000000];
3780 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3781 target = stream->EnsureSpace(target);
3782 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3783 145, this_._internal_merge_no_overlap_work_limit(), target);
3784 }
3785
3786 // optional double merge_at_most_one_work_limit = 146 [default = 100000000];
3787 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3788 target = stream->EnsureSpace(target);
3789 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3790 146, this_._internal_merge_at_most_one_work_limit(), target);
3791 }
3792
3793 // optional int32 presolve_substitution_level = 147 [default = 1];
3794 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3795 target = stream->EnsureSpace(target);
3796 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3797 147, this_._internal_presolve_substitution_level(), target);
3798 }
3799
3800 // optional int32 max_all_diff_cut_size = 148 [default = 64];
3801 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3802 target = stream->EnsureSpace(target);
3803 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3804 148, this_._internal_max_all_diff_cut_size(), target);
3805 }
3806
3807 cached_has_bits = this_._impl_._has_bits_[1];
3808 // optional bool stop_after_presolve = 149 [default = false];
3809 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
3810 target = stream->EnsureSpace(target);
3811 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3812 149, this_._internal_stop_after_presolve(), target);
3813 }
3814
3815 // optional int32 debug_max_num_presolve_operations = 151 [default = 0];
3816 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
3817 target = stream->EnsureSpace(target);
3818 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3819 151, this_._internal_debug_max_num_presolve_operations(), target);
3820 }
3821
3822 cached_has_bits = this_._impl_._has_bits_[6];
3823 // optional bool add_lin_max_cuts = 152 [default = true];
3824 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3825 target = stream->EnsureSpace(target);
3826 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3827 152, this_._internal_add_lin_max_cuts(), target);
3828 }
3829
3830 // optional int32 hint_conflict_limit = 153 [default = 10];
3831 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3832 target = stream->EnsureSpace(target);
3833 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3834 153, this_._internal_hint_conflict_limit(), target);
3835 }
3836
3837 // optional int32 max_cut_rounds_at_level_zero = 154 [default = 1];
3838 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3839 target = stream->EnsureSpace(target);
3840 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3841 154, this_._internal_max_cut_rounds_at_level_zero(), target);
3842 }
3843
3844 // optional double cut_max_active_count_value = 155 [default = 10000000000];
3845 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3846 target = stream->EnsureSpace(target);
3847 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3848 155, this_._internal_cut_max_active_count_value(), target);
3849 }
3850
3851 // optional double cut_active_count_decay = 156 [default = 0.8];
3852 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3853 target = stream->EnsureSpace(target);
3854 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3855 156, this_._internal_cut_active_count_decay(), target);
3856 }
3857
3858 // optional int32 cut_cleanup_target = 157 [default = 1000];
3859 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3860 target = stream->EnsureSpace(target);
3861 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3862 157, this_._internal_cut_cleanup_target(), target);
3863 }
3864
3865 // optional double absolute_gap_limit = 159 [default = 0.0001];
3866 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3867 target = stream->EnsureSpace(target);
3868 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3869 159, this_._internal_absolute_gap_limit(), target);
3870 }
3871
3872 cached_has_bits = this_._impl_._has_bits_[1];
3873 // optional double relative_gap_limit = 160 [default = 0];
3874 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
3875 target = stream->EnsureSpace(target);
3876 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3877 160, this_._internal_relative_gap_limit(), target);
3878 }
3879
3880 cached_has_bits = this_._impl_._has_bits_[2];
3881 // optional bool exploit_relaxation_solution = 161 [default = false];
3882 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
3883 target = stream->EnsureSpace(target);
3884 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3885 161, this_._internal_exploit_relaxation_solution(), target);
3886 }
3887
3888 // optional bool debug_postsolve_with_full_solver = 162 [default = false];
3889 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3890 target = stream->EnsureSpace(target);
3891 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3892 162, this_._internal_debug_postsolve_with_full_solver(), target);
3893 }
3894
3895 cached_has_bits = this_._impl_._has_bits_[6];
3896 // optional bool use_sat_inprocessing = 163 [default = true];
3897 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3898 target = stream->EnsureSpace(target);
3899 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3900 163, this_._internal_use_sat_inprocessing(), target);
3901 }
3902
3903 // optional bool use_feasibility_pump = 164 [default = true];
3904 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3905 target = stream->EnsureSpace(target);
3906 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3907 164, this_._internal_use_feasibility_pump(), target);
3908 }
3909
3910 // optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGATION_ASSISTED];
3911 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3912 target = stream->EnsureSpace(target);
3913 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3914 165, this_._internal_fp_rounding(), target);
3915 }
3916
3917 // optional bool mip_automatically_scale_variables = 166 [default = true];
3918 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3919 target = stream->EnsureSpace(target);
3920 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3921 166, this_._internal_mip_automatically_scale_variables(), target);
3922 }
3923
3924 cached_has_bits = this_._impl_._has_bits_[2];
3925 // optional bool repair_hint = 167 [default = false];
3926 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3927 target = stream->EnsureSpace(target);
3928 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3929 167, this_._internal_repair_hint(), target);
3930 }
3931
3932 cached_has_bits = this_._impl_._has_bits_[6];
3933 // optional int32 polarity_rephase_increment = 168 [default = 1000];
3934 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3935 target = stream->EnsureSpace(target);
3936 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3937 168, this_._internal_polarity_rephase_increment(), target);
3938 }
3939
3940 // optional bool add_zero_half_cuts = 169 [default = true];
3941 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3942 target = stream->EnsureSpace(target);
3943 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3944 169, this_._internal_add_zero_half_cuts(), target);
3945 }
3946
3947 cached_has_bits = this_._impl_._has_bits_[2];
3948 // optional bool expand_alldiff_constraints = 170 [default = false];
3949 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3950 target = stream->EnsureSpace(target);
3951 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3952 170, this_._internal_expand_alldiff_constraints(), target);
3953 }
3954
3955 cached_has_bits = this_._impl_._has_bits_[0];
3956 // optional string name = 171 [default = ""];
3957 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
3958 const ::std::string& _s = this_._internal_name();
3959 target = stream->WriteStringMaybeAliased(171, _s, target);
3960 }
3961
3962 cached_has_bits = this_._impl_._has_bits_[6];
3963 // optional bool add_clique_cuts = 172 [default = true];
3964 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3965 target = stream->EnsureSpace(target);
3966 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3967 172, this_._internal_add_clique_cuts(), target);
3968 }
3969
3970 cached_has_bits = this_._impl_._has_bits_[2];
3971 // optional bool keep_all_feasible_solutions_in_presolve = 173 [default = false];
3972 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3973 target = stream->EnsureSpace(target);
3974 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3975 173, this_._internal_keep_all_feasible_solutions_in_presolve(), target);
3976 }
3977
3978 // optional bool presolve_extract_integer_enforcement = 174 [default = false];
3979 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3980 target = stream->EnsureSpace(target);
3981 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3982 174, this_._internal_presolve_extract_integer_enforcement(), target);
3983 }
3984
3985 // optional bool polish_lp_solution = 175 [default = false];
3986 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3987 target = stream->EnsureSpace(target);
3988 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3989 175, this_._internal_polish_lp_solution(), target);
3990 }
3991
3992 // optional bool use_probing_search = 176 [default = false];
3993 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3994 target = stream->EnsureSpace(target);
3995 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3996 176, this_._internal_use_probing_search(), target);
3997 }
3998
3999 cached_has_bits = this_._impl_._has_bits_[6];
4000 // optional bool convert_intervals = 177 [default = true];
4001 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
4002 target = stream->EnsureSpace(target);
4003 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4004 177, this_._internal_convert_intervals(), target);
4005 }
4006
4007 cached_has_bits = this_._impl_._has_bits_[2];
4008 // optional bool permute_variable_randomly = 178 [default = false];
4009 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
4010 target = stream->EnsureSpace(target);
4011 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4012 178, this_._internal_permute_variable_randomly(), target);
4013 }
4014
4015 // optional bool permute_presolve_constraint_order = 179 [default = false];
4016 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
4017 target = stream->EnsureSpace(target);
4018 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4019 179, this_._internal_permute_presolve_constraint_order(), target);
4020 }
4021
4022 // optional bool use_absl_random = 180 [default = false];
4023 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
4024 target = stream->EnsureSpace(target);
4025 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4026 180, this_._internal_use_absl_random(), target);
4027 }
4028
4029 // optional bool disable_constraint_expansion = 181 [default = false];
4030 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
4031 target = stream->EnsureSpace(target);
4032 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4033 181, this_._internal_disable_constraint_expansion(), target);
4034 }
4035
4036 cached_has_bits = this_._impl_._has_bits_[6];
4037 // optional bool expand_reservoir_constraints = 182 [default = true];
4038 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
4039 target = stream->EnsureSpace(target);
4040 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4041 182, this_._internal_expand_reservoir_constraints(), target);
4042 }
4043
4044 // optional int32 symmetry_level = 183 [default = 2];
4045 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
4046 target = stream->EnsureSpace(target);
4047 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4048 183, this_._internal_symmetry_level(), target);
4049 }
4050
4051 cached_has_bits = this_._impl_._has_bits_[0];
4052 // optional string log_prefix = 185 [default = ""];
4053 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
4054 const ::std::string& _s = this_._internal_log_prefix();
4055 target = stream->WriteStringMaybeAliased(185, _s, target);
4056 }
4057
4058 cached_has_bits = this_._impl_._has_bits_[6];
4059 // optional bool log_to_stdout = 186 [default = true];
4060 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
4061 target = stream->EnsureSpace(target);
4062 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4063 186, this_._internal_log_to_stdout(), target);
4064 }
4065
4066 cached_has_bits = this_._impl_._has_bits_[2];
4067 // optional bool log_to_response = 187 [default = false];
4068 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
4069 target = stream->EnsureSpace(target);
4070 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4071 187, this_._internal_log_to_response(), target);
4072 }
4073
4074 // optional bool optimize_with_lb_tree_search = 188 [default = false];
4075 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
4076 target = stream->EnsureSpace(target);
4077 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4078 188, this_._internal_optimize_with_lb_tree_search(), target);
4079 }
4080
4081 // optional bool log_subsolver_statistics = 189 [default = false];
4082 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
4083 target = stream->EnsureSpace(target);
4084 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4085 189, this_._internal_log_subsolver_statistics(), target);
4086 }
4087
4088 cached_has_bits = this_._impl_._has_bits_[6];
4089 // optional double clause_cleanup_ratio = 190 [default = 0.5];
4090 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
4091 target = stream->EnsureSpace(target);
4092 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4093 190, this_._internal_clause_cleanup_ratio(), target);
4094 }
4095
4096 // optional int32 max_domain_size_when_encoding_eq_neq_constraints = 191 [default = 16];
4097 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
4098 target = stream->EnsureSpace(target);
4099 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4100 191, this_._internal_max_domain_size_when_encoding_eq_neq_constraints(), target);
4101 }
4102
4103 cached_has_bits = this_._impl_._has_bits_[2];
4104 // optional bool fix_variables_to_their_hinted_value = 192 [default = false];
4105 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
4106 target = stream->EnsureSpace(target);
4107 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4108 192, this_._internal_fix_variables_to_their_hinted_value(), target);
4109 }
4110
4111 cached_has_bits = this_._impl_._has_bits_[6];
4112 // optional int32 solution_pool_size = 193 [default = 3];
4113 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
4114 target = stream->EnsureSpace(target);
4115 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4116 193, this_._internal_solution_pool_size(), target);
4117 }
4118
4119 cached_has_bits = this_._impl_._has_bits_[2];
4120 // optional bool fill_additional_solutions_in_response = 194 [default = false];
4121 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
4122 target = stream->EnsureSpace(target);
4123 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4124 194, this_._internal_fill_additional_solutions_in_response(), target);
4125 }
4126
4127 // optional bool debug_crash_on_bad_hint = 195 [default = false];
4128 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
4129 target = stream->EnsureSpace(target);
4130 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4131 195, this_._internal_debug_crash_on_bad_hint(), target);
4132 }
4133
4134 cached_has_bits = this_._impl_._has_bits_[6];
4135 // optional int32 cut_level = 196 [default = 1];
4136 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
4137 target = stream->EnsureSpace(target);
4138 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4139 196, this_._internal_cut_level(), target);
4140 }
4141
4142 cached_has_bits = this_._impl_._has_bits_[2];
4143 // optional bool add_objective_cut = 197 [default = false];
4144 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
4145 target = stream->EnsureSpace(target);
4146 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4147 197, this_._internal_add_objective_cut(), target);
4148 }
4149
4150 cached_has_bits = this_._impl_._has_bits_[6];
4151 // optional bool mip_compute_true_objective_bound = 198 [default = true];
4152 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
4153 target = stream->EnsureSpace(target);
4154 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4155 198, this_._internal_mip_compute_true_objective_bound(), target);
4156 }
4157
4158 // optional double mip_max_valid_magnitude = 199 [default = 1e+20];
4159 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
4160 target = stream->EnsureSpace(target);
4161 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4162 199, this_._internal_mip_max_valid_magnitude(), target);
4163 }
4164
4165 cached_has_bits = this_._impl_._has_bits_[2];
4166 // optional bool use_timetabling_in_no_overlap_2d = 200 [default = false];
4167 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
4168 target = stream->EnsureSpace(target);
4169 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4170 200, this_._internal_use_timetabling_in_no_overlap_2d(), target);
4171 }
4172
4173 cached_has_bits = this_._impl_._has_bits_[6];
4174 // optional int64 presolve_inclusion_work_limit = 201 [default = 100000000];
4175 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
4176 target = stream->EnsureSpace(target);
4177 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
4178 201, this_._internal_presolve_inclusion_work_limit(), target);
4179 }
4180
4181 // optional bool ignore_names = 202 [default = true];
4182 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
4183 target = stream->EnsureSpace(target);
4184 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4185 202, this_._internal_ignore_names(), target);
4186 }
4187
4188 cached_has_bits = this_._impl_._has_bits_[7];
4189 // optional bool share_binary_clauses = 203 [default = true];
4190 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
4191 target = stream->EnsureSpace(target);
4192 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4193 203, this_._internal_share_binary_clauses(), target);
4194 }
4195
4196 // optional double shaving_deterministic_time_in_probing_search = 204 [default = 0.001];
4197 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
4198 target = stream->EnsureSpace(target);
4199 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4200 204, this_._internal_shaving_deterministic_time_in_probing_search(), target);
4201 }
4202
4203 // optional double shaving_search_deterministic_time = 205 [default = 0.1];
4204 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
4205 target = stream->EnsureSpace(target);
4206 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4207 205, this_._internal_shaving_search_deterministic_time(), target);
4208 }
4209
4210 cached_has_bits = this_._impl_._has_bits_[2];
4211 // optional int32 num_workers = 206 [default = 0];
4212 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
4213 target = stream->EnsureSpace(target);
4214 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4215 206, this_._internal_num_workers(), target);
4216 }
4217
4218 cached_has_bits = this_._impl_._has_bits_[0];
4219 // repeated string subsolvers = 207;
4220 if (CheckHasBitForRepeated(cached_has_bits, 0x00800000U)) {
4221 for (int i = 0, n = this_._internal_subsolvers_size(); i < n; ++i) {
4222 const auto& s = this_._internal_subsolvers().Get(i);
4223 target = stream->WriteString(207, s, target);
4224 }
4225 }
4226
4227 // repeated string ignore_subsolvers = 209;
4228 if (CheckHasBitForRepeated(cached_has_bits, 0x01000000U)) {
4229 for (int i = 0, n = this_._internal_ignore_subsolvers_size(); i < n; ++i) {
4230 const auto& s = this_._internal_ignore_subsolvers().Get(i);
4231 target = stream->WriteString(209, s, target);
4232 }
4233 }
4234
4235 // repeated .operations_research.sat.SatParameters subsolver_params = 210;
4236 if (CheckHasBitForRepeated(cached_has_bits, 0x02000000U)) {
4237 for (unsigned i = 0, n = static_cast<unsigned>(
4238 this_._internal_subsolver_params_size());
4239 i < n; i++) {
4240 const auto& repfield = this_._internal_subsolver_params().Get(i);
4241 target =
4242 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
4243 210, repfield, repfield.GetCachedSize(),
4244 target, stream);
4245 }
4246 }
4247
4248 cached_has_bits = this_._impl_._has_bits_[2];
4249 // optional bool use_energetic_reasoning_in_no_overlap_2d = 213 [default = false];
4250 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
4251 target = stream->EnsureSpace(target);
4252 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4253 213, this_._internal_use_energetic_reasoning_in_no_overlap_2d(), target);
4254 }
4255
4256 cached_has_bits = this_._impl_._has_bits_[7];
4257 // optional bool use_dual_scheduling_heuristics = 214 [default = true];
4258 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
4259 target = stream->EnsureSpace(target);
4260 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4261 214, this_._internal_use_dual_scheduling_heuristics(), target);
4262 }
4263
4264 cached_has_bits = this_._impl_._has_bits_[2];
4265 // optional bool use_hard_precedences_in_cumulative = 215 [default = false];
4266 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
4267 target = stream->EnsureSpace(target);
4268 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4269 215, this_._internal_use_hard_precedences_in_cumulative(), target);
4270 }
4271
4272 // optional bool detect_table_with_cost = 216 [default = false];
4273 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
4274 target = stream->EnsureSpace(target);
4275 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4276 216, this_._internal_detect_table_with_cost(), target);
4277 }
4278
4279 cached_has_bits = this_._impl_._has_bits_[7];
4280 // optional int32 table_compression_level = 217 [default = 2];
4281 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
4282 target = stream->EnsureSpace(target);
4283 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4284 217, this_._internal_table_compression_level(), target);
4285 }
4286
4287 cached_has_bits = this_._impl_._has_bits_[0];
4288 // repeated string extra_subsolvers = 219;
4289 if (CheckHasBitForRepeated(cached_has_bits, 0x04000000U)) {
4290 for (int i = 0, n = this_._internal_extra_subsolvers_size(); i < n; ++i) {
4291 const auto& s = this_._internal_extra_subsolvers().Get(i);
4292 target = stream->WriteString(219, s, target);
4293 }
4294 }
4295
4296 cached_has_bits = this_._impl_._has_bits_[2];
4297 // optional bool exploit_all_precedences = 220 [default = false];
4298 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
4299 target = stream->EnsureSpace(target);
4300 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4301 220, this_._internal_exploit_all_precedences(), target);
4302 }
4303
4304 cached_has_bits = this_._impl_._has_bits_[7];
4305 // optional double propagation_loop_detection_factor = 221 [default = 10];
4306 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
4307 target = stream->EnsureSpace(target);
4308 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4309 221, this_._internal_propagation_loop_detection_factor(), target);
4310 }
4311
4312 cached_has_bits = this_._impl_._has_bits_[2];
4313 // optional bool only_solve_ip = 222 [default = false];
4314 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
4315 target = stream->EnsureSpace(target);
4316 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4317 222, this_._internal_only_solve_ip(), target);
4318 }
4319
4320 // optional bool encode_complex_linear_constraint_with_integer = 223 [default = false];
4321 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
4322 target = stream->EnsureSpace(target);
4323 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4324 223, this_._internal_encode_complex_linear_constraint_with_integer(), target);
4325 }
4326
4327 cached_has_bits = this_._impl_._has_bits_[7];
4328 // optional bool new_linear_propagation = 224 [default = true];
4329 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
4330 target = stream->EnsureSpace(target);
4331 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4332 224, this_._internal_new_linear_propagation(), target);
4333 }
4334
4335 cached_has_bits = this_._impl_._has_bits_[2];
4336 // optional bool mip_scale_large_domain = 225 [default = false];
4337 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
4338 target = stream->EnsureSpace(target);
4339 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4340 225, this_._internal_mip_scale_large_domain(), target);
4341 }
4342
4343 cached_has_bits = this_._impl_._has_bits_[7];
4344 // optional double probing_deterministic_time_limit = 226 [default = 1];
4345 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
4346 target = stream->EnsureSpace(target);
4347 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4348 226, this_._internal_probing_deterministic_time_limit(), target);
4349 }
4350
4351 // optional int32 root_lp_iterations = 227 [default = 2000];
4352 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
4353 target = stream->EnsureSpace(target);
4354 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4355 227, this_._internal_root_lp_iterations(), target);
4356 }
4357
4358 cached_has_bits = this_._impl_._has_bits_[2];
4359 // optional bool use_objective_lb_search = 228 [default = false];
4360 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
4361 target = stream->EnsureSpace(target);
4362 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4363 228, this_._internal_use_objective_lb_search(), target);
4364 }
4365
4366 cached_has_bits = this_._impl_._has_bits_[7];
4367 // optional int32 max_size_to_create_precedence_literals_in_disjunctive = 229 [default = 60];
4368 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
4369 target = stream->EnsureSpace(target);
4370 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4371 229, this_._internal_max_size_to_create_precedence_literals_in_disjunctive(), target);
4372 }
4373
4374 cached_has_bits = this_._impl_._has_bits_[2];
4375 // optional bool use_strong_propagation_in_disjunctive = 230 [default = false];
4376 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
4377 target = stream->EnsureSpace(target);
4378 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4379 230, this_._internal_use_strong_propagation_in_disjunctive(), target);
4380 }
4381
4382 cached_has_bits = this_._impl_._has_bits_[7];
4383 // optional double mip_drop_tolerance = 232 [default = 1e-16];
4384 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
4385 target = stream->EnsureSpace(target);
4386 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4387 232, this_._internal_mip_drop_tolerance(), target);
4388 }
4389
4390 // optional bool infer_all_diffs = 233 [default = true];
4391 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
4392 target = stream->EnsureSpace(target);
4393 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4394 233, this_._internal_infer_all_diffs(), target);
4395 }
4396
4397 // optional bool find_big_linear_overlap = 234 [default = true];
4398 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
4399 target = stream->EnsureSpace(target);
4400 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4401 234, this_._internal_find_big_linear_overlap(), target);
4402 }
4403
4404 // optional int32 shared_tree_num_workers = 235 [default = -1];
4405 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
4406 target = stream->EnsureSpace(target);
4407 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4408 235, this_._internal_shared_tree_num_workers(), target);
4409 }
4410
4411 cached_has_bits = this_._impl_._has_bits_[2];
4412 // optional bool use_shared_tree_search = 236 [default = false];
4413 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
4414 target = stream->EnsureSpace(target);
4415 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4416 236, this_._internal_use_shared_tree_search(), target);
4417 }
4418
4419 cached_has_bits = this_._impl_._has_bits_[7];
4420 // optional int32 shared_tree_max_nodes_per_worker = 238 [default = 10000];
4421 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
4422 target = stream->EnsureSpace(target);
4423 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4424 238, this_._internal_shared_tree_max_nodes_per_worker(), target);
4425 }
4426
4427 cached_has_bits = this_._impl_._has_bits_[3];
4428 // optional .operations_research.sat.SatParameters.SharedTreeSplitStrategy shared_tree_split_strategy = 239 [default = SPLIT_STRATEGY_AUTO];
4429 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
4430 target = stream->EnsureSpace(target);
4431 target = ::_pbi::WireFormatLite::WriteEnumToArray(
4432 239, this_._internal_shared_tree_split_strategy(), target);
4433 }
4434
4435 cached_has_bits = this_._impl_._has_bits_[2];
4436 // optional bool use_ls_only = 240 [default = false];
4437 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
4438 target = stream->EnsureSpace(target);
4439 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4440 240, this_._internal_use_ls_only(), target);
4441 }
4442
4443 cached_has_bits = this_._impl_._has_bits_[7];
4444 // optional double feasibility_jump_decay = 242 [default = 0.95];
4445 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
4446 target = stream->EnsureSpace(target);
4447 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4448 242, this_._internal_feasibility_jump_decay(), target);
4449 }
4450
4451 cached_has_bits = this_._impl_._has_bits_[3];
4452 // optional int32 num_violation_ls = 244 [default = 0];
4453 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
4454 target = stream->EnsureSpace(target);
4455 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4456 244, this_._internal_num_violation_ls(), target);
4457 }
4458
4459 cached_has_bits = this_._impl_._has_bits_[7];
4460 // optional double feasibility_jump_var_randomization_probability = 247 [default = 0.05];
4461 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
4462 target = stream->EnsureSpace(target);
4463 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4464 247, this_._internal_feasibility_jump_var_randomization_probability(), target);
4465 }
4466
4467 // optional double feasibility_jump_var_perburbation_range_ratio = 248 [default = 0.2];
4468 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
4469 target = stream->EnsureSpace(target);
4470 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4471 248, this_._internal_feasibility_jump_var_perburbation_range_ratio(), target);
4472 }
4473
4474 // optional int32 violation_ls_perturbation_period = 249 [default = 100];
4475 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
4476 target = stream->EnsureSpace(target);
4477 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4478 249, this_._internal_violation_ls_perturbation_period(), target);
4479 }
4480
4481 // optional bool feasibility_jump_enable_restarts = 250 [default = true];
4482 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
4483 target = stream->EnsureSpace(target);
4484 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4485 250, this_._internal_feasibility_jump_enable_restarts(), target);
4486 }
4487
4488 cached_has_bits = this_._impl_._has_bits_[3];
4489 // optional bool stop_after_root_propagation = 252 [default = false];
4490 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
4491 target = stream->EnsureSpace(target);
4492 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4493 252, this_._internal_stop_after_root_propagation(), target);
4494 }
4495
4496 // optional bool use_objective_shaving_search = 253 [default = false];
4497 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
4498 target = stream->EnsureSpace(target);
4499 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4500 253, this_._internal_use_objective_shaving_search(), target);
4501 }
4502
4503 cached_has_bits = this_._impl_._has_bits_[7];
4504 // optional bool use_lb_relax_lns = 255 [default = true];
4505 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
4506 target = stream->EnsureSpace(target);
4507 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4508 255, this_._internal_use_lb_relax_lns(), target);
4509 }
4510
4511 // optional int32 linear_split_size = 256 [default = 100];
4512 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
4513 target = stream->EnsureSpace(target);
4514 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4515 256, this_._internal_linear_split_size(), target);
4516 }
4517
4518 // optional int32 feasibility_jump_linearization_level = 257 [default = 2];
4519 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
4520 target = stream->EnsureSpace(target);
4521 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4522 257, this_._internal_feasibility_jump_linearization_level(), target);
4523 }
4524
4525 // optional int32 feasibility_jump_restart_factor = 258 [default = 1];
4526 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
4527 target = stream->EnsureSpace(target);
4528 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4529 258, this_._internal_feasibility_jump_restart_factor(), target);
4530 }
4531
4532 // optional double violation_ls_compound_move_probability = 259 [default = 0.5];
4533 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
4534 target = stream->EnsureSpace(target);
4535 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4536 259, this_._internal_violation_ls_compound_move_probability(), target);
4537 }
4538
4539 // optional int32 max_num_intervals_for_timetable_edge_finding = 260 [default = 100];
4540 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
4541 target = stream->EnsureSpace(target);
4542 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4543 260, this_._internal_max_num_intervals_for_timetable_edge_finding(), target);
4544 }
4545
4546 // optional int32 mip_presolve_level = 261 [default = 2];
4547 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
4548 target = stream->EnsureSpace(target);
4549 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4550 261, this_._internal_mip_presolve_level(), target);
4551 }
4552
4553 cached_has_bits = this_._impl_._has_bits_[3];
4554 // optional bool push_all_tasks_toward_start = 262 [default = false];
4555 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
4556 target = stream->EnsureSpace(target);
4557 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4558 262, this_._internal_push_all_tasks_toward_start(), target);
4559 }
4560
4561 // optional bool use_dynamic_precedence_in_disjunctive = 263 [default = false];
4562 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
4563 target = stream->EnsureSpace(target);
4564 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4565 263, this_._internal_use_dynamic_precedence_in_disjunctive(), target);
4566 }
4567
4568 cached_has_bits = this_._impl_._has_bits_[7];
4569 // optional int32 feasibility_jump_max_expanded_constraint_size = 264 [default = 500];
4570 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
4571 target = stream->EnsureSpace(target);
4572 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4573 264, this_._internal_feasibility_jump_max_expanded_constraint_size(), target);
4574 }
4575
4576 // optional bool use_feasibility_jump = 265 [default = true];
4577 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
4578 target = stream->EnsureSpace(target);
4579 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4580 265, this_._internal_use_feasibility_jump(), target);
4581 }
4582
4583 // optional double lp_primal_tolerance = 266 [default = 1e-07];
4584 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
4585 target = stream->EnsureSpace(target);
4586 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4587 266, this_._internal_lp_primal_tolerance(), target);
4588 }
4589
4590 cached_has_bits = this_._impl_._has_bits_[8];
4591 // optional double lp_dual_tolerance = 267 [default = 1e-07];
4592 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
4593 target = stream->EnsureSpace(target);
4594 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4595 267, this_._internal_lp_dual_tolerance(), target);
4596 }
4597
4598 cached_has_bits = this_._impl_._has_bits_[3];
4599 // optional bool use_dynamic_precedence_in_cumulative = 268 [default = false];
4600 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
4601 target = stream->EnsureSpace(target);
4602 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4603 268, this_._internal_use_dynamic_precedence_in_cumulative(), target);
4604 }
4605
4606 cached_has_bits = this_._impl_._has_bits_[7];
4607 // optional bool use_extended_probing = 269 [default = true];
4608 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
4609 target = stream->EnsureSpace(target);
4610 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4611 269, this_._internal_use_extended_probing(), target);
4612 }
4613
4614 cached_has_bits = this_._impl_._has_bits_[8];
4615 // optional int32 at_most_one_max_expansion_size = 270 [default = 3];
4616 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
4617 target = stream->EnsureSpace(target);
4618 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4619 270, this_._internal_at_most_one_max_expansion_size(), target);
4620 }
4621
4622 cached_has_bits = this_._impl_._has_bits_[3];
4623 // optional bool use_area_energetic_reasoning_in_no_overlap_2d = 271 [default = false];
4624 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
4625 target = stream->EnsureSpace(target);
4626 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4627 271, this_._internal_use_area_energetic_reasoning_in_no_overlap_2d(), target);
4628 }
4629
4630 cached_has_bits = this_._impl_._has_bits_[8];
4631 // optional int32 probing_num_combinations_limit = 272 [default = 20000];
4632 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
4633 target = stream->EnsureSpace(target);
4634 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4635 272, this_._internal_probing_num_combinations_limit(), target);
4636 }
4637
4638 // optional double inprocessing_dtime_ratio = 273 [default = 0.2];
4639 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
4640 target = stream->EnsureSpace(target);
4641 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4642 273, this_._internal_inprocessing_dtime_ratio(), target);
4643 }
4644
4645 // optional double inprocessing_probing_dtime = 274 [default = 1];
4646 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
4647 target = stream->EnsureSpace(target);
4648 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4649 274, this_._internal_inprocessing_probing_dtime(), target);
4650 }
4651
4652 // optional double inprocessing_minimization_dtime = 275 [default = 1];
4653 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
4654 target = stream->EnsureSpace(target);
4655 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4656 275, this_._internal_inprocessing_minimization_dtime(), target);
4657 }
4658
4659 // optional int32 max_pairs_pairwise_reasoning_in_no_overlap_2d = 276 [default = 1250];
4660 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
4661 target = stream->EnsureSpace(target);
4662 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4663 276, this_._internal_max_pairs_pairwise_reasoning_in_no_overlap_2d(), target);
4664 }
4665
4666 cached_has_bits = this_._impl_._has_bits_[3];
4667 // optional bool detect_linearized_product = 277 [default = false];
4668 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
4669 target = stream->EnsureSpace(target);
4670 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4671 277, this_._internal_detect_linearized_product(), target);
4672 }
4673
4674 // optional bool mip_treat_high_magnitude_bounds_as_infinity = 278 [default = false];
4675 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
4676 target = stream->EnsureSpace(target);
4677 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4678 278, this_._internal_mip_treat_high_magnitude_bounds_as_infinity(), target);
4679 }
4680
4681 cached_has_bits = this_._impl_._has_bits_[7];
4682 // optional bool add_rlt_cuts = 279 [default = true];
4683 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
4684 target = stream->EnsureSpace(target);
4685 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4686 279, this_._internal_add_rlt_cuts(), target);
4687 }
4688
4689 cached_has_bits = this_._impl_._has_bits_[3];
4690 // optional int32 max_lin_max_size_for_expansion = 280 [default = 0];
4691 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
4692 target = stream->EnsureSpace(target);
4693 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4694 280, this_._internal_max_lin_max_size_for_expansion(), target);
4695 }
4696
4697 cached_has_bits = this_._impl_._has_bits_[8];
4698 // optional double shared_tree_open_leaves_per_worker = 281 [default = 2];
4699 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
4700 target = stream->EnsureSpace(target);
4701 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4702 281, this_._internal_shared_tree_open_leaves_per_worker(), target);
4703 }
4704
4705 // optional int32 shared_tree_worker_min_restarts_per_subtree = 282 [default = 1];
4706 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
4707 target = stream->EnsureSpace(target);
4708 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4709 282, this_._internal_shared_tree_worker_min_restarts_per_subtree(), target);
4710 }
4711
4712 // optional bool use_lns = 283 [default = true];
4713 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
4714 target = stream->EnsureSpace(target);
4715 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4716 283, this_._internal_use_lns(), target);
4717 }
4718
4719 cached_has_bits = this_._impl_._has_bits_[3];
4720 // optional bool save_lp_basis_in_lb_tree_search = 284 [default = false];
4721 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
4722 target = stream->EnsureSpace(target);
4723 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4724 284, this_._internal_save_lp_basis_in_lb_tree_search(), target);
4725 }
4726
4727 cached_has_bits = this_._impl_._has_bits_[8];
4728 // optional bool share_glue_clauses = 285 [default = true];
4729 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
4730 target = stream->EnsureSpace(target);
4731 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4732 285, this_._internal_share_glue_clauses(), target);
4733 }
4734
4735 cached_has_bits = this_._impl_._has_bits_[3];
4736 // optional bool use_conservative_scale_overload_checker = 286 [default = false];
4737 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
4738 target = stream->EnsureSpace(target);
4739 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4740 286, this_._internal_use_conservative_scale_overload_checker(), target);
4741 }
4742
4743 // optional bool encode_cumulative_as_reservoir = 287 [default = false];
4744 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
4745 target = stream->EnsureSpace(target);
4746 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4747 287, this_._internal_encode_cumulative_as_reservoir(), target);
4748 }
4749
4750 // optional bool expand_reservoir_using_circuit = 288 [default = false];
4751 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
4752 target = stream->EnsureSpace(target);
4753 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4754 288, this_._internal_expand_reservoir_using_circuit(), target);
4755 }
4756
4757 cached_has_bits = this_._impl_._has_bits_[8];
4758 // optional int32 variables_shaving_level = 289 [default = -1];
4759 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
4760 target = stream->EnsureSpace(target);
4761 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4762 289, this_._internal_variables_shaving_level(), target);
4763 }
4764
4765 // optional int64 shaving_search_threshold = 290 [default = 64];
4766 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
4767 target = stream->EnsureSpace(target);
4768 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
4769 290, this_._internal_shaving_search_threshold(), target);
4770 }
4771
4772 cached_has_bits = this_._impl_._has_bits_[3];
4773 // optional int32 max_num_deterministic_batches = 291 [default = 0];
4774 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
4775 target = stream->EnsureSpace(target);
4776 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4777 291, this_._internal_max_num_deterministic_batches(), target);
4778 }
4779
4780 cached_has_bits = this_._impl_._has_bits_[8];
4781 // optional double feasibility_jump_batch_dtime = 292 [default = 0.1];
4782 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
4783 target = stream->EnsureSpace(target);
4784 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4785 292, this_._internal_feasibility_jump_batch_dtime(), target);
4786 }
4787
4788 cached_has_bits = this_._impl_._has_bits_[0];
4789 // repeated string filter_subsolvers = 293;
4790 if (CheckHasBitForRepeated(cached_has_bits, 0x08000000U)) {
4791 for (int i = 0, n = this_._internal_filter_subsolvers_size(); i < n; ++i) {
4792 const auto& s = this_._internal_filter_subsolvers().Get(i);
4793 target = stream->WriteString(293, s, target);
4794 }
4795 }
4796
4797 cached_has_bits = this_._impl_._has_bits_[3];
4798 // optional int32 num_full_subsolvers = 294 [default = 0];
4799 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
4800 target = stream->EnsureSpace(target);
4801 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4802 294, this_._internal_num_full_subsolvers(), target);
4803 }
4804
4805 cached_has_bits = this_._impl_._has_bits_[8];
4806 // optional bool shared_tree_worker_enable_trail_sharing = 295 [default = true];
4807 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
4808 target = stream->EnsureSpace(target);
4809 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4810 295, this_._internal_shared_tree_worker_enable_trail_sharing(), target);
4811 }
4812
4813 // optional int32 lb_relax_num_workers_threshold = 296 [default = 16];
4814 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
4815 target = stream->EnsureSpace(target);
4816 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4817 296, this_._internal_lb_relax_num_workers_threshold(), target);
4818 }
4819
4820 // optional bool inprocessing_minimization_use_conflict_analysis = 297 [default = true];
4821 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
4822 target = stream->EnsureSpace(target);
4823 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4824 297, this_._internal_inprocessing_minimization_use_conflict_analysis(), target);
4825 }
4826
4827 cached_has_bits = this_._impl_._has_bits_[3];
4828 // optional bool inprocessing_minimization_use_all_orderings = 298 [default = false];
4829 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
4830 target = stream->EnsureSpace(target);
4831 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4832 298, this_._internal_inprocessing_minimization_use_all_orderings(), target);
4833 }
4834
4835 // optional bool use_try_edge_reasoning_in_no_overlap_2d = 299 [default = false];
4836 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
4837 target = stream->EnsureSpace(target);
4838 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4839 299, this_._internal_use_try_edge_reasoning_in_no_overlap_2d(), target);
4840 }
4841
4842 cached_has_bits = this_._impl_._has_bits_[8];
4843 // optional bool minimize_shared_clauses = 300 [default = true];
4844 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
4845 target = stream->EnsureSpace(target);
4846 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4847 300, this_._internal_minimize_shared_clauses(), target);
4848 }
4849
4850 cached_has_bits = this_._impl_._has_bits_[3];
4851 // optional bool use_symmetry_in_lp = 301 [default = false];
4852 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
4853 target = stream->EnsureSpace(target);
4854 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4855 301, this_._internal_use_symmetry_in_lp(), target);
4856 }
4857
4858 cached_has_bits = this_._impl_._has_bits_[8];
4859 // optional double symmetry_detection_deterministic_time_limit = 302 [default = 1];
4860 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
4861 target = stream->EnsureSpace(target);
4862 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4863 302, this_._internal_symmetry_detection_deterministic_time_limit(), target);
4864 }
4865
4866 cached_has_bits = this_._impl_._has_bits_[3];
4867 // optional bool keep_symmetry_in_presolve = 303 [default = false];
4868 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
4869 target = stream->EnsureSpace(target);
4870 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4871 303, this_._internal_keep_symmetry_in_presolve(), target);
4872 }
4873
4874 cached_has_bits = this_._impl_._has_bits_[8];
4875 // optional bool shared_tree_worker_enable_phase_sharing = 304 [default = true];
4876 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
4877 target = stream->EnsureSpace(target);
4878 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4879 304, this_._internal_shared_tree_worker_enable_phase_sharing(), target);
4880 }
4881
4882 // optional int32 shared_tree_balance_tolerance = 305 [default = 1];
4883 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
4884 target = stream->EnsureSpace(target);
4885 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4886 305, this_._internal_shared_tree_balance_tolerance(), target);
4887 }
4888
4889 cached_has_bits = this_._impl_._has_bits_[3];
4890 // optional bool debug_crash_if_presolve_breaks_hint = 306 [default = false];
4891 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
4892 target = stream->EnsureSpace(target);
4893 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4894 306, this_._internal_debug_crash_if_presolve_breaks_hint(), target);
4895 }
4896
4897 cached_has_bits = this_._impl_._has_bits_[8];
4898 // optional double lns_initial_difficulty = 307 [default = 0.5];
4899 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
4900 target = stream->EnsureSpace(target);
4901 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4902 307, this_._internal_lns_initial_difficulty(), target);
4903 }
4904
4905 // optional double lns_initial_deterministic_limit = 308 [default = 0.1];
4906 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
4907 target = stream->EnsureSpace(target);
4908 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4909 308, this_._internal_lns_initial_deterministic_limit(), target);
4910 }
4911
4912 cached_has_bits = this_._impl_._has_bits_[3];
4913 // optional bool polarity_exploit_ls_hints = 309 [default = false];
4914 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
4915 target = stream->EnsureSpace(target);
4916 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4917 309, this_._internal_polarity_exploit_ls_hints(), target);
4918 }
4919
4920 cached_has_bits = this_._impl_._has_bits_[8];
4921 // optional bool remove_fixed_variables_early = 310 [default = true];
4922 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
4923 target = stream->EnsureSpace(target);
4924 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4925 310, this_._internal_remove_fixed_variables_early(), target);
4926 }
4927
4928 cached_has_bits = this_._impl_._has_bits_[3];
4929 // optional bool use_all_different_for_circuit = 311 [default = false];
4930 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
4931 target = stream->EnsureSpace(target);
4932 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4933 311, this_._internal_use_all_different_for_circuit(), target);
4934 }
4935
4936 // optional int32 routing_cut_subset_size_for_binary_relation_bound = 312 [default = 0];
4937 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
4938 target = stream->EnsureSpace(target);
4939 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4940 312, this_._internal_routing_cut_subset_size_for_binary_relation_bound(), target);
4941 }
4942
4943 // optional int32 routing_cut_subset_size_for_tight_binary_relation_bound = 313 [default = 0];
4944 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
4945 target = stream->EnsureSpace(target);
4946 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4947 313, this_._internal_routing_cut_subset_size_for_tight_binary_relation_bound(), target);
4948 }
4949
4950 cached_has_bits = this_._impl_._has_bits_[8];
4951 // optional double routing_cut_dp_effort = 314 [default = 10000000];
4952 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
4953 target = stream->EnsureSpace(target);
4954 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
4955 314, this_._internal_routing_cut_dp_effort(), target);
4956 }
4957
4958 cached_has_bits = this_._impl_._has_bits_[3];
4959 // optional int32 maximum_regions_to_split_in_disconnected_no_overlap_2d = 315 [default = 0];
4960 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
4961 target = stream->EnsureSpace(target);
4962 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4963 315, this_._internal_maximum_regions_to_split_in_disconnected_no_overlap_2d(), target);
4964 }
4965
4966 cached_has_bits = this_._impl_._has_bits_[8];
4967 // optional int32 routing_cut_subset_size_for_exact_binary_relation_bound = 316 [default = 8];
4968 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
4969 target = stream->EnsureSpace(target);
4970 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4971 316, this_._internal_routing_cut_subset_size_for_exact_binary_relation_bound(), target);
4972 }
4973
4974 // optional int32 routing_cut_max_infeasible_path_length = 317 [default = 6];
4975 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
4976 target = stream->EnsureSpace(target);
4977 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4978 317, this_._internal_routing_cut_max_infeasible_path_length(), target);
4979 }
4980
4981 // optional int32 routing_cut_subset_size_for_shortest_paths_bound = 318 [default = 8];
4982 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
4983 target = stream->EnsureSpace(target);
4984 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4985 318, this_._internal_routing_cut_subset_size_for_shortest_paths_bound(), target);
4986 }
4987
4988 // optional int32 max_alldiff_domain_size = 320 [default = 256];
4989 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
4990 target = stream->EnsureSpace(target);
4991 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4992 320, this_._internal_max_alldiff_domain_size(), target);
4993 }
4994
4995 // optional int32 no_overlap_2d_boolean_relations_limit = 321 [default = 10];
4996 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
4997 target = stream->EnsureSpace(target);
4998 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
4999 321, this_._internal_no_overlap_2d_boolean_relations_limit(), target);
5000 }
5001
5002 // optional double share_glue_clauses_dtime = 322 [default = 1];
5003 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
5004 target = stream->EnsureSpace(target);
5005 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
5006 322, this_._internal_share_glue_clauses_dtime(), target);
5007 }
5008
5009 // optional bool use_linear3_for_no_overlap_2d_precedences = 323 [default = true];
5010 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
5011 target = stream->EnsureSpace(target);
5012 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5013 323, this_._internal_use_linear3_for_no_overlap_2d_precedences(), target);
5014 }
5015
5016 cached_has_bits = this_._impl_._has_bits_[3];
5017 // optional bool filter_sat_postsolve_clauses = 324 [default = false];
5018 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
5019 target = stream->EnsureSpace(target);
5020 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5021 324, this_._internal_filter_sat_postsolve_clauses(), target);
5022 }
5023
5024 cached_has_bits = this_._impl_._has_bits_[9];
5025 // optional int32 alternative_pool_size = 325 [default = 1];
5026 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
5027 target = stream->EnsureSpace(target);
5028 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5029 325, this_._internal_alternative_pool_size(), target);
5030 }
5031
5032 cached_has_bits = this_._impl_._has_bits_[3];
5033 // optional bool share_linear2_bounds = 326 [default = false];
5034 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
5035 target = stream->EnsureSpace(target);
5036 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5037 326, this_._internal_share_linear2_bounds(), target);
5038 }
5039
5040 cached_has_bits = this_._impl_._has_bits_[9];
5041 // optional int32 transitive_precedences_work_limit = 327 [default = 1000000];
5042 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
5043 target = stream->EnsureSpace(target);
5044 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5045 327, this_._internal_transitive_precedences_work_limit(), target);
5046 }
5047
5048 // optional double shared_tree_split_min_dtime = 328 [default = 0.1];
5049 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
5050 target = stream->EnsureSpace(target);
5051 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
5052 328, this_._internal_shared_tree_split_min_dtime(), target);
5053 }
5054
5055 // optional int32 solution_pool_diversity_limit = 329 [default = 10];
5056 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
5057 target = stream->EnsureSpace(target);
5058 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5059 329, this_._internal_solution_pool_diversity_limit(), target);
5060 }
5061
5062 cached_has_bits = this_._impl_._has_bits_[3];
5063 // optional bool use_chronological_backtracking = 330 [default = false];
5064 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
5065 target = stream->EnsureSpace(target);
5066 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5067 330, this_._internal_use_chronological_backtracking(), target);
5068 }
5069
5070 cached_has_bits = this_._impl_._has_bits_[9];
5071 // optional int32 max_backjump_levels = 331 [default = 50];
5072 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
5073 target = stream->EnsureSpace(target);
5074 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5075 331, this_._internal_max_backjump_levels(), target);
5076 }
5077
5078 // optional int32 chronological_backtrack_min_conflicts = 332 [default = 1000];
5079 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
5080 target = stream->EnsureSpace(target);
5081 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5082 332, this_._internal_chronological_backtrack_min_conflicts(), target);
5083 }
5084
5085 // optional bool find_clauses_that_are_exactly_one = 333 [default = true];
5086 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
5087 target = stream->EnsureSpace(target);
5088 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5089 333, this_._internal_find_clauses_that_are_exactly_one(), target);
5090 }
5091
5092 cached_has_bits = this_._impl_._has_bits_[3];
5093 // optional bool load_at_most_ones_in_sat_presolve = 335 [default = false];
5094 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
5095 target = stream->EnsureSpace(target);
5096 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5097 335, this_._internal_load_at_most_ones_in_sat_presolve(), target);
5098 }
5099
5100 // optional bool use_new_integer_conflict_resolution = 336 [default = false];
5101 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
5102 target = stream->EnsureSpace(target);
5103 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5104 336, this_._internal_use_new_integer_conflict_resolution(), target);
5105 }
5106
5107 cached_has_bits = this_._impl_._has_bits_[4];
5108 // optional int32 clause_cleanup_period_increment = 337 [default = 0];
5109 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
5110 target = stream->EnsureSpace(target);
5111 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5112 337, this_._internal_clause_cleanup_period_increment(), target);
5113 }
5114
5115 // optional bool debug_crash_if_lrat_check_fails = 339 [default = false];
5116 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
5117 target = stream->EnsureSpace(target);
5118 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5119 339, this_._internal_debug_crash_if_lrat_check_fails(), target);
5120 }
5121
5122 cached_has_bits = this_._impl_._has_bits_[9];
5123 // optional int32 max_domain_size_for_linear2_expansion = 340 [default = 8];
5124 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
5125 target = stream->EnsureSpace(target);
5126 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5127 340, this_._internal_max_domain_size_for_linear2_expansion(), target);
5128 }
5129
5130 // optional bool create_1uip_boolean_during_icr = 341 [default = true];
5131 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
5132 target = stream->EnsureSpace(target);
5133 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5134 341, this_._internal_create_1uip_boolean_during_icr(), target);
5135 }
5136
5137 // optional bool inprocessing_use_congruence_closure = 342 [default = true];
5138 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
5139 target = stream->EnsureSpace(target);
5140 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5141 342, this_._internal_inprocessing_use_congruence_closure(), target);
5142 }
5143
5144 // optional int32 eagerly_subsume_last_n_conflicts = 343 [default = 4];
5145 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
5146 target = stream->EnsureSpace(target);
5147 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5148 343, this_._internal_eagerly_subsume_last_n_conflicts(), target);
5149 }
5150
5151 cached_has_bits = this_._impl_._has_bits_[4];
5152 // optional bool check_lrat_proof = 344 [default = false];
5153 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
5154 target = stream->EnsureSpace(target);
5155 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5156 344, this_._internal_check_lrat_proof(), target);
5157 }
5158
5159 // optional bool output_lrat_proof = 345 [default = false];
5160 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
5161 target = stream->EnsureSpace(target);
5162 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5163 345, this_._internal_output_lrat_proof(), target);
5164 }
5165
5166 // optional bool check_drat_proof = 346 [default = false];
5167 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
5168 target = stream->EnsureSpace(target);
5169 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5170 346, this_._internal_check_drat_proof(), target);
5171 }
5172
5173 // optional bool output_drat_proof = 347 [default = false];
5174 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
5175 target = stream->EnsureSpace(target);
5176 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5177 347, this_._internal_output_drat_proof(), target);
5178 }
5179
5180 cached_has_bits = this_._impl_._has_bits_[9];
5181 // optional double max_drat_time_in_seconds = 348 [default = inf];
5182 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
5183 target = stream->EnsureSpace(target);
5184 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
5185 348, this_._internal_max_drat_time_in_seconds(), target);
5186 }
5187
5188 cached_has_bits = this_._impl_._has_bits_[4];
5189 // optional int32 clause_cleanup_lbd_tier1 = 349 [default = 0];
5190 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
5191 target = stream->EnsureSpace(target);
5192 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5193 349, this_._internal_clause_cleanup_lbd_tier1(), target);
5194 }
5195
5196 // optional int32 clause_cleanup_lbd_tier2 = 350 [default = 0];
5197 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
5198 target = stream->EnsureSpace(target);
5199 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
5200 350, this_._internal_clause_cleanup_lbd_tier2(), target);
5201 }
5202
5203 cached_has_bits = this_._impl_._has_bits_[9];
5204 // optional bool extra_subsumption_during_conflict_analysis = 351 [default = true];
5205 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
5206 target = stream->EnsureSpace(target);
5207 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5208 351, this_._internal_extra_subsumption_during_conflict_analysis(), target);
5209 }
5210
5211 cached_has_bits = this_._impl_._has_bits_[4];
5212 // optional bool check_merged_lrat_proof = 352 [default = false];
5213 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
5214 target = stream->EnsureSpace(target);
5215 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5216 352, this_._internal_check_merged_lrat_proof(), target);
5217 }
5218
5219 cached_has_bits = this_._impl_._has_bits_[9];
5220 // optional bool decision_subsumption_during_conflict_analysis = 353 [default = true];
5221 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
5222 target = stream->EnsureSpace(target);
5223 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5224 353, this_._internal_decision_subsumption_during_conflict_analysis(), target);
5225 }
5226
5227 cached_has_bits = this_._impl_._has_bits_[4];
5228 // optional bool inprocessing_use_sat_sweeping = 354 [default = false];
5229 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
5230 target = stream->EnsureSpace(target);
5231 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5232 354, this_._internal_inprocessing_use_sat_sweeping(), target);
5233 }
5234
5235 cached_has_bits = this_._impl_._has_bits_[9];
5236 // optional bool subsume_during_vivification = 355 [default = true];
5237 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
5238 target = stream->EnsureSpace(target);
5239 target = ::_pbi::WireFormatLite::WriteBoolToArray(
5240 355, this_._internal_subsume_during_vivification(), target);
5241 }
5242
5243 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
5244 target =
5245 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
5246 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
5247 }
5248 // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SatParameters)
5249 return target;
5250}
5251
5252#if defined(PROTOBUF_CUSTOM_VTABLE)
5254 const SatParameters& this_ = static_cast<const SatParameters&>(base);
5255#else // PROTOBUF_CUSTOM_VTABLE
5256::size_t SatParameters::ByteSizeLong() const {
5257 const SatParameters& this_ = *this;
5258#endif // PROTOBUF_CUSTOM_VTABLE
5259 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SatParameters)
5260 ::size_t total_size = 0;
5261
5262 ::uint32_t cached_has_bits = 0;
5263 // Prevent compiler warnings about cached_has_bits being unused
5264 (void)cached_has_bits;
5265
5266 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
5267 cached_has_bits = this_._impl_._has_bits_[0];
5268 total_size += ::absl::popcount(0x80139804U & cached_has_bits) * 10;
5269 total_size += static_cast<bool>(0x00000400U & cached_has_bits) * 9;
5270 total_size += ::absl::popcount(0x000000f8U & cached_has_bits) * 3;
5271 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
5272 // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
5273 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
5274 total_size += 1 +
5275 ::_pbi::WireFormatLite::EnumSize(this_._internal_preferred_variable_order());
5276 }
5277 // optional int32 clause_cleanup_target = 13 [default = 0];
5278 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
5279 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
5280 this_._internal_clause_cleanup_target());
5281 }
5282 }
5283 if (BatchCheckHasBit(cached_has_bits, 0x00006300U)) {
5284 // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
5285 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
5286 total_size += 1 +
5287 ::_pbi::WireFormatLite::EnumSize(this_._internal_initial_polarity());
5288 }
5289 // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
5290 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
5291 total_size += 1 +
5292 ::_pbi::WireFormatLite::EnumSize(this_._internal_minimization_algorithm());
5293 }
5294 // optional int32 clause_cleanup_period = 11 [default = 10000];
5295 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
5296 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
5297 this_._internal_clause_cleanup_period());
5298 }
5299 // optional int32 glucose_decay_increment_period = 24 [default = 5000];
5300 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
5301 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5302 this_._internal_glucose_decay_increment_period());
5303 }
5304 }
5305 if (BatchCheckHasBit(cached_has_bits, 0x00ec0000U)) {
5306 // optional int32 restart_period = 30 [default = 50];
5307 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
5308 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5309 this_._internal_restart_period());
5310 }
5311 // optional int32 random_seed = 31 [default = 1];
5312 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
5313 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5314 this_._internal_random_seed());
5315 }
5316 // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
5317 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
5318 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5319 this_._internal_max_number_of_conflicts());
5320 }
5321 // repeated .operations_research.sat.SatParameters.RestartAlgorithm restart_algorithms = 61;
5322 if (CheckHasBitForRepeated(cached_has_bits, 0x00400000U)) {
5323 ::size_t data_size =
5324 ::_pbi::WireFormatLite::EnumSize(this_._internal_restart_algorithms());
5325 ::size_t tag_size = ::size_t{2} *
5326 ::_pbi::FromIntSize(this_._internal_restart_algorithms_size());
5327 total_size += data_size + tag_size;
5328 }
5329 // repeated string subsolvers = 207;
5330 if (CheckHasBitForRepeated(cached_has_bits, 0x00800000U)) {
5331 total_size +=
5332 2 * ::google::protobuf::internal::FromIntSize(this_._internal_subsolvers().size());
5333 for (int i = 0, n = this_._internal_subsolvers().size(); i < n; ++i) {
5334 total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
5335 this_._internal_subsolvers().Get(i));
5336 }
5337 }
5338 }
5339 if (BatchCheckHasBit(cached_has_bits, 0x7f000000U)) {
5340 // repeated string ignore_subsolvers = 209;
5341 if (CheckHasBitForRepeated(cached_has_bits, 0x01000000U)) {
5342 total_size +=
5343 2 * ::google::protobuf::internal::FromIntSize(this_._internal_ignore_subsolvers().size());
5344 for (int i = 0, n = this_._internal_ignore_subsolvers().size(); i < n; ++i) {
5345 total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
5346 this_._internal_ignore_subsolvers().Get(i));
5347 }
5348 }
5349 // repeated .operations_research.sat.SatParameters subsolver_params = 210;
5350 if (CheckHasBitForRepeated(cached_has_bits, 0x02000000U)) {
5351 total_size += 2UL * this_._internal_subsolver_params_size();
5352 for (const auto& msg : this_._internal_subsolver_params()) {
5353 total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
5354 }
5355 }
5356 // repeated string extra_subsolvers = 219;
5357 if (CheckHasBitForRepeated(cached_has_bits, 0x04000000U)) {
5358 total_size +=
5359 2 * ::google::protobuf::internal::FromIntSize(this_._internal_extra_subsolvers().size());
5360 for (int i = 0, n = this_._internal_extra_subsolvers().size(); i < n; ++i) {
5361 total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
5362 this_._internal_extra_subsolvers().Get(i));
5363 }
5364 }
5365 // repeated string filter_subsolvers = 293;
5366 if (CheckHasBitForRepeated(cached_has_bits, 0x08000000U)) {
5367 total_size +=
5368 2 * ::google::protobuf::internal::FromIntSize(this_._internal_filter_subsolvers().size());
5369 for (int i = 0, n = this_._internal_filter_subsolvers().size(); i < n; ++i) {
5370 total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
5371 this_._internal_filter_subsolvers().Get(i));
5372 }
5373 }
5374 // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
5375 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
5376 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
5377 this_._internal_default_restart_algorithms());
5378 }
5379 // optional string name = 171 [default = ""];
5380 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
5381 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
5382 this_._internal_name());
5383 }
5384 // optional string log_prefix = 185 [default = ""];
5385 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
5386 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
5387 this_._internal_log_prefix());
5388 }
5389 }
5390 cached_has_bits = this_._impl_._has_bits_[1];
5391 total_size += ::absl::popcount(0x40000180U & cached_has_bits) * 10;
5392 total_size += ::absl::popcount(0x9ef3de1eU & cached_has_bits) * 3;
5393 if (BatchCheckHasBit(cached_has_bits, 0x00000061U)) {
5394 // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
5395 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
5396 total_size += 2 +
5397 ::_pbi::WireFormatLite::EnumSize(this_._internal_max_sat_assumption_order());
5398 }
5399 // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
5400 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
5401 total_size += 2 +
5402 ::_pbi::WireFormatLite::EnumSize(this_._internal_clause_cleanup_ordering());
5403 }
5404 // optional int32 num_conflicts_before_strategy_changes = 68 [default = 0];
5405 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
5406 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5407 this_._internal_num_conflicts_before_strategy_changes());
5408 }
5409 }
5410 {
5411 // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
5412 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
5413 total_size += 2 +
5414 ::_pbi::WireFormatLite::EnumSize(this_._internal_search_branching());
5415 }
5416 }
5417 if (BatchCheckHasBit(cached_has_bits, 0x000c0000U)) {
5418 // optional int32 num_search_workers = 100 [default = 0];
5419 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
5420 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5421 this_._internal_num_search_workers());
5422 }
5423 // optional int64 search_random_variable_pool_size = 104 [default = 0];
5424 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
5425 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5426 this_._internal_search_random_variable_pool_size());
5427 }
5428 }
5429 if (BatchCheckHasBit(cached_has_bits, 0x21000000U)) {
5430 // optional int32 interleave_batch_size = 134 [default = 0];
5431 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
5432 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5433 this_._internal_interleave_batch_size());
5434 }
5435 // optional int32 debug_max_num_presolve_operations = 151 [default = 0];
5436 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
5437 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5438 this_._internal_debug_max_num_presolve_operations());
5439 }
5440 }
5441 cached_has_bits = this_._impl_._has_bits_[2];
5442 total_size += ::absl::popcount(0xfff7ffffU & cached_has_bits) * 3;
5443 {
5444 // optional int32 num_workers = 206 [default = 0];
5445 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
5446 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5447 this_._internal_num_workers());
5448 }
5449 }
5450 cached_has_bits = this_._impl_._has_bits_[3];
5451 total_size += ::absl::popcount(0xf3de7bfcU & cached_has_bits) * 3;
5452 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
5453 // optional .operations_research.sat.SatParameters.SharedTreeSplitStrategy shared_tree_split_strategy = 239 [default = SPLIT_STRATEGY_AUTO];
5454 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
5455 total_size += 2 +
5456 ::_pbi::WireFormatLite::EnumSize(this_._internal_shared_tree_split_strategy());
5457 }
5458 // optional int32 num_violation_ls = 244 [default = 0];
5459 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
5460 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5461 this_._internal_num_violation_ls());
5462 }
5463 }
5464 if (BatchCheckHasBit(cached_has_bits, 0x00008400U)) {
5465 // optional int32 max_lin_max_size_for_expansion = 280 [default = 0];
5466 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
5467 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5468 this_._internal_max_lin_max_size_for_expansion());
5469 }
5470 // optional int32 max_num_deterministic_batches = 291 [default = 0];
5471 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
5472 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5473 this_._internal_max_num_deterministic_batches());
5474 }
5475 }
5476 if (BatchCheckHasBit(cached_has_bits, 0x00210000U)) {
5477 // optional int32 num_full_subsolvers = 294 [default = 0];
5478 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
5479 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5480 this_._internal_num_full_subsolvers());
5481 }
5482 // optional int32 routing_cut_subset_size_for_binary_relation_bound = 312 [default = 0];
5483 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
5484 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5485 this_._internal_routing_cut_subset_size_for_binary_relation_bound());
5486 }
5487 }
5488 if (BatchCheckHasBit(cached_has_bits, 0x0c000000U)) {
5489 // optional int32 routing_cut_subset_size_for_tight_binary_relation_bound = 313 [default = 0];
5490 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
5491 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5492 this_._internal_routing_cut_subset_size_for_tight_binary_relation_bound());
5493 }
5494 // optional int32 maximum_regions_to_split_in_disconnected_no_overlap_2d = 315 [default = 0];
5495 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
5496 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5497 this_._internal_maximum_regions_to_split_in_disconnected_no_overlap_2d());
5498 }
5499 }
5500 cached_has_bits = this_._impl_._has_bits_[4];
5501 total_size += ::absl::popcount(0x38242000U & cached_has_bits) * 10;
5502 total_size += ::absl::popcount(0x83c0039eU & cached_has_bits) * 3;
5503 if (BatchCheckHasBit(cached_has_bits, 0x00000061U)) {
5504 // optional int32 clause_cleanup_period_increment = 337 [default = 0];
5505 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
5506 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5507 this_._internal_clause_cleanup_period_increment());
5508 }
5509 // optional int32 clause_cleanup_lbd_tier1 = 349 [default = 0];
5510 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
5511 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5512 this_._internal_clause_cleanup_lbd_tier1());
5513 }
5514 // optional int32 clause_cleanup_lbd_tier2 = 350 [default = 0];
5515 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
5516 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5517 this_._internal_clause_cleanup_lbd_tier2());
5518 }
5519 }
5520 if (BatchCheckHasBit(cached_has_bits, 0x0000dc00U)) {
5521 // optional int64 max_memory_in_mb = 40 [default = 10000];
5522 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
5523 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5524 this_._internal_max_memory_in_mb());
5525 }
5526 // optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorithm = 34 [default = BINARY_MINIMIZATION_FROM_UIP_AND_DECISIONS];
5527 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
5528 total_size += 2 +
5529 ::_pbi::WireFormatLite::EnumSize(this_._internal_binary_minimization_algorithm());
5530 }
5531 // optional int32 pb_cleanup_increment = 46 [default = 200];
5532 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
5533 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5534 this_._internal_pb_cleanup_increment());
5535 }
5536 // optional int32 core_minimization_level = 50 [default = 2];
5537 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
5538 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5539 this_._internal_core_minimization_level());
5540 }
5541 // optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification = 53 [default = STRATIFICATION_DESCENT];
5542 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
5543 total_size += 2 +
5544 ::_pbi::WireFormatLite::EnumSize(this_._internal_max_sat_stratification());
5545 }
5546 }
5547 if (BatchCheckHasBit(cached_has_bits, 0x001b0000U)) {
5548 // optional int32 presolve_bve_threshold = 54 [default = 500];
5549 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
5550 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5551 this_._internal_presolve_bve_threshold());
5552 }
5553 // optional int32 presolve_bve_clause_weight = 55 [default = 3];
5554 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
5555 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5556 this_._internal_presolve_bve_clause_weight());
5557 }
5558 // optional int32 clause_cleanup_lbd_bound = 59 [default = 5];
5559 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
5560 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5561 this_._internal_clause_cleanup_lbd_bound());
5562 }
5563 // optional int32 restart_running_window_size = 62 [default = 50];
5564 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
5565 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5566 this_._internal_restart_running_window_size());
5567 }
5568 }
5569 if (BatchCheckHasBit(cached_has_bits, 0x44000000U)) {
5570 // optional int32 blocking_restart_window_size = 65 [default = 5000];
5571 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
5572 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5573 this_._internal_blocking_restart_window_size());
5574 }
5575 // optional int32 presolve_bva_threshold = 73 [default = 1];
5576 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
5577 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5578 this_._internal_presolve_bva_threshold());
5579 }
5580 }
5581 cached_has_bits = this_._impl_._has_bits_[5];
5582 total_size += ::absl::popcount(0x39020000U & cached_has_bits) * 10;
5583 total_size += ::absl::popcount(0x803cf1e7U & cached_has_bits) * 3;
5584 if (BatchCheckHasBit(cached_has_bits, 0x00000018U)) {
5585 // optional int32 linearization_level = 90 [default = 1];
5586 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
5587 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5588 this_._internal_linearization_level());
5589 }
5590 // optional int32 max_num_cuts = 91 [default = 10000];
5591 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
5592 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5593 this_._internal_max_num_cuts());
5594 }
5595 }
5596 if (BatchCheckHasBit(cached_has_bits, 0x00000e00U)) {
5597 // optional int32 binary_search_num_conflicts = 99 [default = -1];
5598 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
5599 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5600 this_._internal_binary_search_num_conflicts());
5601 }
5602 // optional int32 boolean_encoding_level = 107 [default = 1];
5603 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
5604 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5605 this_._internal_boolean_encoding_level());
5606 }
5607 // optional int32 cp_model_probing_level = 110 [default = 2];
5608 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
5609 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5610 this_._internal_cp_model_probing_level());
5611 }
5612 }
5613 if (BatchCheckHasBit(cached_has_bits, 0x00c10000U)) {
5614 // optional int32 max_integer_rounding_scaling = 119 [default = 600];
5615 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
5616 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5617 this_._internal_max_integer_rounding_scaling());
5618 }
5619 // optional int32 max_consecutive_inactive_count = 121 [default = 100];
5620 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
5621 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5622 this_._internal_max_consecutive_inactive_count());
5623 }
5624 // optional int64 pseudo_cost_reliability_threshold = 123 [default = 100];
5625 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
5626 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5627 this_._internal_pseudo_cost_reliability_threshold());
5628 }
5629 }
5630 if (BatchCheckHasBit(cached_has_bits, 0x46000000U)) {
5631 // optional int32 new_constraints_batch_size = 122 [default = 50];
5632 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
5633 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5634 this_._internal_new_constraints_batch_size());
5635 }
5636 // optional int32 mip_max_activity_exponent = 127 [default = 53];
5637 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
5638 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5639 this_._internal_mip_max_activity_exponent());
5640 }
5641 // optional int32 max_presolve_iterations = 138 [default = 3];
5642 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
5643 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5644 this_._internal_max_presolve_iterations());
5645 }
5646 }
5647 cached_has_bits = this_._impl_._has_bits_[6];
5648 total_size += ::absl::popcount(0x09000e18U & cached_has_bits) * 10;
5649 total_size += ::absl::popcount(0xc07bc007U & cached_has_bits) * 3;
5650 if (BatchCheckHasBit(cached_has_bits, 0x000000e0U)) {
5651 // optional int32 presolve_substitution_level = 147 [default = 1];
5652 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
5653 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5654 this_._internal_presolve_substitution_level());
5655 }
5656 // optional int32 max_all_diff_cut_size = 148 [default = 64];
5657 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
5658 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5659 this_._internal_max_all_diff_cut_size());
5660 }
5661 // optional int32 hint_conflict_limit = 153 [default = 10];
5662 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
5663 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5664 this_._internal_hint_conflict_limit());
5665 }
5666 }
5667 if (BatchCheckHasBit(cached_has_bits, 0x00003100U)) {
5668 // optional int32 max_cut_rounds_at_level_zero = 154 [default = 1];
5669 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
5670 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5671 this_._internal_max_cut_rounds_at_level_zero());
5672 }
5673 // optional int32 cut_cleanup_target = 157 [default = 1000];
5674 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
5675 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5676 this_._internal_cut_cleanup_target());
5677 }
5678 // optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGATION_ASSISTED];
5679 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
5680 total_size += 2 +
5681 ::_pbi::WireFormatLite::EnumSize(this_._internal_fp_rounding());
5682 }
5683 }
5684 if (BatchCheckHasBit(cached_has_bits, 0x00840000U)) {
5685 // optional int32 polarity_rephase_increment = 168 [default = 1000];
5686 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
5687 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5688 this_._internal_polarity_rephase_increment());
5689 }
5690 // optional int32 symmetry_level = 183 [default = 2];
5691 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
5692 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5693 this_._internal_symmetry_level());
5694 }
5695 }
5696 if (BatchCheckHasBit(cached_has_bits, 0x36000000U)) {
5697 // optional int32 max_domain_size_when_encoding_eq_neq_constraints = 191 [default = 16];
5698 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
5699 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5700 this_._internal_max_domain_size_when_encoding_eq_neq_constraints());
5701 }
5702 // optional int32 solution_pool_size = 193 [default = 3];
5703 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
5704 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5705 this_._internal_solution_pool_size());
5706 }
5707 // optional int64 presolve_inclusion_work_limit = 201 [default = 100000000];
5708 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
5709 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5710 this_._internal_presolve_inclusion_work_limit());
5711 }
5712 // optional int32 cut_level = 196 [default = 1];
5713 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
5714 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5715 this_._internal_cut_level());
5716 }
5717 }
5718 cached_has_bits = this_._impl_._has_bits_[7];
5719 total_size += ::absl::popcount(0x0487019cU & cached_has_bits) * 10;
5720 total_size += ::absl::popcount(0xf0007803U & cached_has_bits) * 3;
5721 if (BatchCheckHasBit(cached_has_bits, 0x00000060U)) {
5722 // optional int32 table_compression_level = 217 [default = 2];
5723 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
5724 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5725 this_._internal_table_compression_level());
5726 }
5727 // optional int32 root_lp_iterations = 227 [default = 2000];
5728 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
5729 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5730 this_._internal_root_lp_iterations());
5731 }
5732 }
5733 if (BatchCheckHasBit(cached_has_bits, 0x00008600U)) {
5734 // optional int32 max_size_to_create_precedence_literals_in_disjunctive = 229 [default = 60];
5735 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
5736 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5737 this_._internal_max_size_to_create_precedence_literals_in_disjunctive());
5738 }
5739 // optional int32 shared_tree_num_workers = 235 [default = -1];
5740 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
5741 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5742 this_._internal_shared_tree_num_workers());
5743 }
5744 // optional int32 shared_tree_max_nodes_per_worker = 238 [default = 10000];
5745 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
5746 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5747 this_._internal_shared_tree_max_nodes_per_worker());
5748 }
5749 }
5750 if (BatchCheckHasBit(cached_has_bits, 0x00780000U)) {
5751 // optional int32 violation_ls_perturbation_period = 249 [default = 100];
5752 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
5753 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5754 this_._internal_violation_ls_perturbation_period());
5755 }
5756 // optional int32 linear_split_size = 256 [default = 100];
5757 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
5758 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5759 this_._internal_linear_split_size());
5760 }
5761 // optional int32 feasibility_jump_linearization_level = 257 [default = 2];
5762 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
5763 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5764 this_._internal_feasibility_jump_linearization_level());
5765 }
5766 // optional int32 feasibility_jump_restart_factor = 258 [default = 1];
5767 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
5768 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5769 this_._internal_feasibility_jump_restart_factor());
5770 }
5771 }
5772 if (BatchCheckHasBit(cached_has_bits, 0x0b000000U)) {
5773 // optional int32 max_num_intervals_for_timetable_edge_finding = 260 [default = 100];
5774 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
5775 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5776 this_._internal_max_num_intervals_for_timetable_edge_finding());
5777 }
5778 // optional int32 mip_presolve_level = 261 [default = 2];
5779 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
5780 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5781 this_._internal_mip_presolve_level());
5782 }
5783 // optional int32 feasibility_jump_max_expanded_constraint_size = 264 [default = 500];
5784 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
5785 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5786 this_._internal_feasibility_jump_max_expanded_constraint_size());
5787 }
5788 }
5789 cached_has_bits = this_._impl_._has_bits_[8];
5790 total_size += ::absl::popcount(0x841c8139U & cached_has_bits) * 10;
5791 total_size += ::absl::popcount(0x01e03c00U & cached_has_bits) * 3;
5792 if (BatchCheckHasBit(cached_has_bits, 0x000000c6U)) {
5793 // optional int32 at_most_one_max_expansion_size = 270 [default = 3];
5794 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
5795 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5796 this_._internal_at_most_one_max_expansion_size());
5797 }
5798 // optional int32 probing_num_combinations_limit = 272 [default = 20000];
5799 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
5800 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5801 this_._internal_probing_num_combinations_limit());
5802 }
5803 // optional int32 max_pairs_pairwise_reasoning_in_no_overlap_2d = 276 [default = 1250];
5804 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
5805 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5806 this_._internal_max_pairs_pairwise_reasoning_in_no_overlap_2d());
5807 }
5808 // optional int32 shared_tree_worker_min_restarts_per_subtree = 282 [default = 1];
5809 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
5810 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5811 this_._internal_shared_tree_worker_min_restarts_per_subtree());
5812 }
5813 }
5814 if (BatchCheckHasBit(cached_has_bits, 0x00004200U)) {
5815 // optional int32 variables_shaving_level = 289 [default = -1];
5816 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
5817 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5818 this_._internal_variables_shaving_level());
5819 }
5820 // optional int64 shaving_search_threshold = 290 [default = 64];
5821 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
5822 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
5823 this_._internal_shaving_search_threshold());
5824 }
5825 }
5826 if (BatchCheckHasBit(cached_has_bits, 0x00030000U)) {
5827 // optional int32 lb_relax_num_workers_threshold = 296 [default = 16];
5828 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
5829 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5830 this_._internal_lb_relax_num_workers_threshold());
5831 }
5832 // optional int32 shared_tree_balance_tolerance = 305 [default = 1];
5833 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
5834 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5835 this_._internal_shared_tree_balance_tolerance());
5836 }
5837 }
5838 if (BatchCheckHasBit(cached_has_bits, 0x7a000000U)) {
5839 // optional int32 routing_cut_subset_size_for_exact_binary_relation_bound = 316 [default = 8];
5840 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
5841 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5842 this_._internal_routing_cut_subset_size_for_exact_binary_relation_bound());
5843 }
5844 // optional int32 routing_cut_max_infeasible_path_length = 317 [default = 6];
5845 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
5846 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5847 this_._internal_routing_cut_max_infeasible_path_length());
5848 }
5849 // optional int32 routing_cut_subset_size_for_shortest_paths_bound = 318 [default = 8];
5850 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
5851 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5852 this_._internal_routing_cut_subset_size_for_shortest_paths_bound());
5853 }
5854 // optional int32 max_alldiff_domain_size = 320 [default = 256];
5855 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
5856 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5857 this_._internal_max_alldiff_domain_size());
5858 }
5859 // optional int32 no_overlap_2d_boolean_relations_limit = 321 [default = 10];
5860 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
5861 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5862 this_._internal_no_overlap_2d_boolean_relations_limit());
5863 }
5864 }
5865 cached_has_bits = this_._impl_._has_bits_[9];
5866 total_size += ::absl::popcount(0x00001004U & cached_has_bits) * 10;
5867 total_size += ::absl::popcount(0x00006780U & cached_has_bits) * 3;
5868 if (BatchCheckHasBit(cached_has_bits, 0x0000007bU)) {
5869 // optional int32 alternative_pool_size = 325 [default = 1];
5870 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
5871 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5872 this_._internal_alternative_pool_size());
5873 }
5874 // optional int32 transitive_precedences_work_limit = 327 [default = 1000000];
5875 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
5876 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5877 this_._internal_transitive_precedences_work_limit());
5878 }
5879 // optional int32 solution_pool_diversity_limit = 329 [default = 10];
5880 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
5881 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5882 this_._internal_solution_pool_diversity_limit());
5883 }
5884 // optional int32 max_backjump_levels = 331 [default = 50];
5885 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
5886 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5887 this_._internal_max_backjump_levels());
5888 }
5889 // optional int32 chronological_backtrack_min_conflicts = 332 [default = 1000];
5890 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
5891 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5892 this_._internal_chronological_backtrack_min_conflicts());
5893 }
5894 // optional int32 max_domain_size_for_linear2_expansion = 340 [default = 8];
5895 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
5896 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5897 this_._internal_max_domain_size_for_linear2_expansion());
5898 }
5899 }
5900 {
5901 // optional int32 eagerly_subsume_last_n_conflicts = 343 [default = 4];
5902 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
5903 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
5904 this_._internal_eagerly_subsume_last_n_conflicts());
5905 }
5906 }
5907 return this_.MaybeComputeUnknownFieldsSize(total_size,
5908 &this_._impl_._cached_size_);
5909}
5910
5911void SatParameters::MergeImpl(::google::protobuf::MessageLite& to_msg,
5912 const ::google::protobuf::MessageLite& from_msg) {
5913 auto* const _this =
5914 static_cast<SatParameters*>(&to_msg);
5915 auto& from = static_cast<const SatParameters&>(from_msg);
5916 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
5917 from.CheckHasBitConsistency();
5918 }
5919 ::google::protobuf::Arena* arena = _this->GetArena();
5920 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SatParameters)
5921 ABSL_DCHECK_NE(&from, _this);
5922 ::uint32_t cached_has_bits = 0;
5923 (void)cached_has_bits;
5924
5925 cached_has_bits = from._impl_._has_bits_[0];
5926 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
5927 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
5928 _this->_impl_.preferred_variable_order_ = from._impl_.preferred_variable_order_;
5929 }
5930 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
5931 _this->_impl_.clause_cleanup_target_ = from._impl_.clause_cleanup_target_;
5932 }
5933 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
5934 _this->_impl_.random_polarity_ratio_ = from._impl_.random_polarity_ratio_;
5935 }
5936 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
5937 _this->_impl_.log_search_progress_ = from._impl_.log_search_progress_;
5938 }
5939 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
5940 _this->_impl_.use_pb_resolution_ = from._impl_.use_pb_resolution_;
5941 }
5942 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
5943 _this->_impl_.use_optimization_hints_ = from._impl_.use_optimization_hints_;
5944 }
5945 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
5946 _this->_impl_.use_phase_saving_ = from._impl_.use_phase_saving_;
5947 }
5948 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
5949 _this->_impl_.use_precedences_in_disjunctive_constraint_ = from._impl_.use_precedences_in_disjunctive_constraint_;
5950 }
5951 }
5952 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
5953 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
5954 _this->_impl_.initial_polarity_ = from._impl_.initial_polarity_;
5955 }
5956 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
5957 _this->_impl_.minimization_algorithm_ = from._impl_.minimization_algorithm_;
5958 }
5959 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
5960 _this->_impl_.variable_activity_decay_ = from._impl_.variable_activity_decay_;
5961 }
5962 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
5963 _this->_impl_.max_variable_activity_value_ = from._impl_.max_variable_activity_value_;
5964 }
5965 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
5966 _this->_impl_.clause_activity_decay_ = from._impl_.clause_activity_decay_;
5967 }
5968 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
5969 _this->_impl_.clause_cleanup_period_ = from._impl_.clause_cleanup_period_;
5970 }
5971 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
5972 _this->_impl_.glucose_decay_increment_period_ = from._impl_.glucose_decay_increment_period_;
5973 }
5974 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
5975 _this->_impl_.max_clause_activity_value_ = from._impl_.max_clause_activity_value_;
5976 }
5977 }
5978 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
5979 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
5980 _this->_impl_.glucose_max_decay_ = from._impl_.glucose_max_decay_;
5981 }
5982 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
5983 _this->_impl_.glucose_decay_increment_ = from._impl_.glucose_decay_increment_;
5984 }
5985 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
5986 _this->_impl_.restart_period_ = from._impl_.restart_period_;
5987 }
5988 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
5989 _this->_impl_.random_seed_ = from._impl_.random_seed_;
5990 }
5991 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
5992 _this->_impl_.max_time_in_seconds_ = from._impl_.max_time_in_seconds_;
5993 }
5994 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
5995 _this->_impl_.max_number_of_conflicts_ = from._impl_.max_number_of_conflicts_;
5996 }
5997 if (CheckHasBitForRepeated(cached_has_bits, 0x00400000U)) {
5998 _this->_internal_mutable_restart_algorithms()->MergeFrom(from._internal_restart_algorithms());
5999 }
6000 if (CheckHasBitForRepeated(cached_has_bits, 0x00800000U)) {
6001 _this->_internal_mutable_subsolvers()->InternalMergeFromWithArena(
6002 ::google::protobuf::MessageLite::internal_visibility(), arena,
6003 from._internal_subsolvers());
6004 }
6005 }
6006 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
6007 if (CheckHasBitForRepeated(cached_has_bits, 0x01000000U)) {
6008 _this->_internal_mutable_ignore_subsolvers()->InternalMergeFromWithArena(
6009 ::google::protobuf::MessageLite::internal_visibility(), arena,
6010 from._internal_ignore_subsolvers());
6011 }
6012 if (CheckHasBitForRepeated(cached_has_bits, 0x02000000U)) {
6013 _this->_internal_mutable_subsolver_params()->InternalMergeFromWithArena(
6014 ::google::protobuf::MessageLite::internal_visibility(), arena,
6015 from._internal_subsolver_params());
6016 }
6017 if (CheckHasBitForRepeated(cached_has_bits, 0x04000000U)) {
6018 _this->_internal_mutable_extra_subsolvers()->InternalMergeFromWithArena(
6019 ::google::protobuf::MessageLite::internal_visibility(), arena,
6020 from._internal_extra_subsolvers());
6021 }
6022 if (CheckHasBitForRepeated(cached_has_bits, 0x08000000U)) {
6023 _this->_internal_mutable_filter_subsolvers()->InternalMergeFromWithArena(
6024 ::google::protobuf::MessageLite::internal_visibility(), arena,
6025 from._internal_filter_subsolvers());
6026 }
6027 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
6028 _this->_internal_set_default_restart_algorithms(from._internal_default_restart_algorithms());
6029 }
6030 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
6031 _this->_internal_set_name(from._internal_name());
6032 }
6033 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
6034 _this->_internal_set_log_prefix(from._internal_log_prefix());
6035 }
6036 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
6037 _this->_impl_.random_branches_ratio_ = from._impl_.random_branches_ratio_;
6038 }
6039 }
6040 cached_has_bits = from._impl_._has_bits_[1];
6041 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
6042 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
6043 _this->_impl_.max_sat_assumption_order_ = from._impl_.max_sat_assumption_order_;
6044 }
6045 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
6046 _this->_impl_.minimize_reduction_during_pb_resolution_ = from._impl_.minimize_reduction_during_pb_resolution_;
6047 }
6048 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
6049 _this->_impl_.max_sat_reverse_assumption_order_ = from._impl_.max_sat_reverse_assumption_order_;
6050 }
6051 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
6052 _this->_impl_.use_blocking_restart_ = from._impl_.use_blocking_restart_;
6053 }
6054 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
6055 _this->_impl_.use_erwa_heuristic_ = from._impl_.use_erwa_heuristic_;
6056 }
6057 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
6058 _this->_impl_.clause_cleanup_ordering_ = from._impl_.clause_cleanup_ordering_;
6059 }
6060 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
6061 _this->_impl_.num_conflicts_before_strategy_changes_ = from._impl_.num_conflicts_before_strategy_changes_;
6062 }
6063 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
6064 _this->_impl_.strategy_change_increase_ratio_ = from._impl_.strategy_change_increase_ratio_;
6065 }
6066 }
6067 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
6068 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
6069 _this->_impl_.initial_variables_activity_ = from._impl_.initial_variables_activity_;
6070 }
6071 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
6072 _this->_impl_.also_bump_variables_in_conflict_reasons_ = from._impl_.also_bump_variables_in_conflict_reasons_;
6073 }
6074 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
6075 _this->_impl_.use_overload_checker_in_cumulative_ = from._impl_.use_overload_checker_in_cumulative_;
6076 }
6077 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
6078 _this->_impl_.use_timetable_edge_finding_in_cumulative_ = from._impl_.use_timetable_edge_finding_in_cumulative_;
6079 }
6080 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
6081 _this->_impl_.optimize_with_core_ = from._impl_.optimize_with_core_;
6082 }
6083 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
6084 _this->_impl_.search_branching_ = from._impl_.search_branching_;
6085 }
6086 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
6087 _this->_impl_.optimize_with_max_hs_ = from._impl_.optimize_with_max_hs_;
6088 }
6089 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
6090 _this->_impl_.enumerate_all_solutions_ = from._impl_.enumerate_all_solutions_;
6091 }
6092 }
6093 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
6094 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
6095 _this->_impl_.only_add_cuts_at_level_zero_ = from._impl_.only_add_cuts_at_level_zero_;
6096 }
6097 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
6098 _this->_impl_.stop_after_first_solution_ = from._impl_.stop_after_first_solution_;
6099 }
6100 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
6101 _this->_impl_.num_search_workers_ = from._impl_.num_search_workers_;
6102 }
6103 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
6104 _this->_impl_.search_random_variable_pool_size_ = from._impl_.search_random_variable_pool_size_;
6105 }
6106 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
6107 _this->_impl_.use_lns_only_ = from._impl_.use_lns_only_;
6108 }
6109 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
6110 _this->_impl_.randomize_search_ = from._impl_.randomize_search_;
6111 }
6112 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
6113 _this->_impl_.use_optional_variables_ = from._impl_.use_optional_variables_;
6114 }
6115 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
6116 _this->_impl_.exploit_best_solution_ = from._impl_.exploit_best_solution_;
6117 }
6118 }
6119 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
6120 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
6121 _this->_impl_.interleave_batch_size_ = from._impl_.interleave_batch_size_;
6122 }
6123 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
6124 _this->_impl_.fill_tightened_domains_in_response_ = from._impl_.fill_tightened_domains_in_response_;
6125 }
6126 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
6127 _this->_impl_.use_combined_no_overlap_ = from._impl_.use_combined_no_overlap_;
6128 }
6129 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
6130 _this->_impl_.interleave_search_ = from._impl_.interleave_search_;
6131 }
6132 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
6133 _this->_impl_.diversify_lns_params_ = from._impl_.diversify_lns_params_;
6134 }
6135 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
6136 _this->_impl_.debug_max_num_presolve_operations_ = from._impl_.debug_max_num_presolve_operations_;
6137 }
6138 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
6139 _this->_impl_.relative_gap_limit_ = from._impl_.relative_gap_limit_;
6140 }
6141 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
6142 _this->_impl_.stop_after_presolve_ = from._impl_.stop_after_presolve_;
6143 }
6144 }
6145 cached_has_bits = from._impl_._has_bits_[2];
6146 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
6147 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
6148 _this->_impl_.exploit_relaxation_solution_ = from._impl_.exploit_relaxation_solution_;
6149 }
6150 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
6151 _this->_impl_.debug_postsolve_with_full_solver_ = from._impl_.debug_postsolve_with_full_solver_;
6152 }
6153 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
6154 _this->_impl_.repair_hint_ = from._impl_.repair_hint_;
6155 }
6156 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
6157 _this->_impl_.expand_alldiff_constraints_ = from._impl_.expand_alldiff_constraints_;
6158 }
6159 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
6160 _this->_impl_.keep_all_feasible_solutions_in_presolve_ = from._impl_.keep_all_feasible_solutions_in_presolve_;
6161 }
6162 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
6163 _this->_impl_.presolve_extract_integer_enforcement_ = from._impl_.presolve_extract_integer_enforcement_;
6164 }
6165 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
6166 _this->_impl_.polish_lp_solution_ = from._impl_.polish_lp_solution_;
6167 }
6168 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
6169 _this->_impl_.use_probing_search_ = from._impl_.use_probing_search_;
6170 }
6171 }
6172 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
6173 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
6174 _this->_impl_.permute_variable_randomly_ = from._impl_.permute_variable_randomly_;
6175 }
6176 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
6177 _this->_impl_.permute_presolve_constraint_order_ = from._impl_.permute_presolve_constraint_order_;
6178 }
6179 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
6180 _this->_impl_.use_absl_random_ = from._impl_.use_absl_random_;
6181 }
6182 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
6183 _this->_impl_.disable_constraint_expansion_ = from._impl_.disable_constraint_expansion_;
6184 }
6185 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
6186 _this->_impl_.log_to_response_ = from._impl_.log_to_response_;
6187 }
6188 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
6189 _this->_impl_.optimize_with_lb_tree_search_ = from._impl_.optimize_with_lb_tree_search_;
6190 }
6191 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
6192 _this->_impl_.log_subsolver_statistics_ = from._impl_.log_subsolver_statistics_;
6193 }
6194 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
6195 _this->_impl_.fix_variables_to_their_hinted_value_ = from._impl_.fix_variables_to_their_hinted_value_;
6196 }
6197 }
6198 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
6199 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
6200 _this->_impl_.fill_additional_solutions_in_response_ = from._impl_.fill_additional_solutions_in_response_;
6201 }
6202 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
6203 _this->_impl_.debug_crash_on_bad_hint_ = from._impl_.debug_crash_on_bad_hint_;
6204 }
6205 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
6206 _this->_impl_.add_objective_cut_ = from._impl_.add_objective_cut_;
6207 }
6208 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
6209 _this->_impl_.num_workers_ = from._impl_.num_workers_;
6210 }
6211 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
6212 _this->_impl_.use_timetabling_in_no_overlap_2d_ = from._impl_.use_timetabling_in_no_overlap_2d_;
6213 }
6214 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
6215 _this->_impl_.use_energetic_reasoning_in_no_overlap_2d_ = from._impl_.use_energetic_reasoning_in_no_overlap_2d_;
6216 }
6217 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
6218 _this->_impl_.use_hard_precedences_in_cumulative_ = from._impl_.use_hard_precedences_in_cumulative_;
6219 }
6220 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
6221 _this->_impl_.detect_table_with_cost_ = from._impl_.detect_table_with_cost_;
6222 }
6223 }
6224 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
6225 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
6226 _this->_impl_.exploit_all_precedences_ = from._impl_.exploit_all_precedences_;
6227 }
6228 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
6229 _this->_impl_.only_solve_ip_ = from._impl_.only_solve_ip_;
6230 }
6231 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
6232 _this->_impl_.encode_complex_linear_constraint_with_integer_ = from._impl_.encode_complex_linear_constraint_with_integer_;
6233 }
6234 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
6235 _this->_impl_.mip_scale_large_domain_ = from._impl_.mip_scale_large_domain_;
6236 }
6237 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
6238 _this->_impl_.use_objective_lb_search_ = from._impl_.use_objective_lb_search_;
6239 }
6240 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
6241 _this->_impl_.use_strong_propagation_in_disjunctive_ = from._impl_.use_strong_propagation_in_disjunctive_;
6242 }
6243 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
6244 _this->_impl_.use_shared_tree_search_ = from._impl_.use_shared_tree_search_;
6245 }
6246 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
6247 _this->_impl_.use_ls_only_ = from._impl_.use_ls_only_;
6248 }
6249 }
6250 cached_has_bits = from._impl_._has_bits_[3];
6251 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
6252 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
6253 _this->_impl_.shared_tree_split_strategy_ = from._impl_.shared_tree_split_strategy_;
6254 }
6255 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
6256 _this->_impl_.num_violation_ls_ = from._impl_.num_violation_ls_;
6257 }
6258 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
6259 _this->_impl_.stop_after_root_propagation_ = from._impl_.stop_after_root_propagation_;
6260 }
6261 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
6262 _this->_impl_.use_objective_shaving_search_ = from._impl_.use_objective_shaving_search_;
6263 }
6264 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
6265 _this->_impl_.push_all_tasks_toward_start_ = from._impl_.push_all_tasks_toward_start_;
6266 }
6267 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
6268 _this->_impl_.use_dynamic_precedence_in_disjunctive_ = from._impl_.use_dynamic_precedence_in_disjunctive_;
6269 }
6270 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
6271 _this->_impl_.use_dynamic_precedence_in_cumulative_ = from._impl_.use_dynamic_precedence_in_cumulative_;
6272 }
6273 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
6274 _this->_impl_.use_area_energetic_reasoning_in_no_overlap_2d_ = from._impl_.use_area_energetic_reasoning_in_no_overlap_2d_;
6275 }
6276 }
6277 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
6278 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
6279 _this->_impl_.detect_linearized_product_ = from._impl_.detect_linearized_product_;
6280 }
6281 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
6282 _this->_impl_.mip_treat_high_magnitude_bounds_as_infinity_ = from._impl_.mip_treat_high_magnitude_bounds_as_infinity_;
6283 }
6284 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
6285 _this->_impl_.max_lin_max_size_for_expansion_ = from._impl_.max_lin_max_size_for_expansion_;
6286 }
6287 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
6288 _this->_impl_.save_lp_basis_in_lb_tree_search_ = from._impl_.save_lp_basis_in_lb_tree_search_;
6289 }
6290 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
6291 _this->_impl_.use_conservative_scale_overload_checker_ = from._impl_.use_conservative_scale_overload_checker_;
6292 }
6293 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
6294 _this->_impl_.encode_cumulative_as_reservoir_ = from._impl_.encode_cumulative_as_reservoir_;
6295 }
6296 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
6297 _this->_impl_.expand_reservoir_using_circuit_ = from._impl_.expand_reservoir_using_circuit_;
6298 }
6299 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
6300 _this->_impl_.max_num_deterministic_batches_ = from._impl_.max_num_deterministic_batches_;
6301 }
6302 }
6303 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
6304 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
6305 _this->_impl_.num_full_subsolvers_ = from._impl_.num_full_subsolvers_;
6306 }
6307 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
6308 _this->_impl_.inprocessing_minimization_use_all_orderings_ = from._impl_.inprocessing_minimization_use_all_orderings_;
6309 }
6310 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
6311 _this->_impl_.use_try_edge_reasoning_in_no_overlap_2d_ = from._impl_.use_try_edge_reasoning_in_no_overlap_2d_;
6312 }
6313 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
6314 _this->_impl_.use_symmetry_in_lp_ = from._impl_.use_symmetry_in_lp_;
6315 }
6316 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
6317 _this->_impl_.keep_symmetry_in_presolve_ = from._impl_.keep_symmetry_in_presolve_;
6318 }
6319 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
6320 _this->_impl_.routing_cut_subset_size_for_binary_relation_bound_ = from._impl_.routing_cut_subset_size_for_binary_relation_bound_;
6321 }
6322 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
6323 _this->_impl_.debug_crash_if_presolve_breaks_hint_ = from._impl_.debug_crash_if_presolve_breaks_hint_;
6324 }
6325 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
6326 _this->_impl_.polarity_exploit_ls_hints_ = from._impl_.polarity_exploit_ls_hints_;
6327 }
6328 }
6329 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
6330 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
6331 _this->_impl_.use_all_different_for_circuit_ = from._impl_.use_all_different_for_circuit_;
6332 }
6333 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
6334 _this->_impl_.filter_sat_postsolve_clauses_ = from._impl_.filter_sat_postsolve_clauses_;
6335 }
6336 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
6337 _this->_impl_.routing_cut_subset_size_for_tight_binary_relation_bound_ = from._impl_.routing_cut_subset_size_for_tight_binary_relation_bound_;
6338 }
6339 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
6340 _this->_impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_ = from._impl_.maximum_regions_to_split_in_disconnected_no_overlap_2d_;
6341 }
6342 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
6343 _this->_impl_.share_linear2_bounds_ = from._impl_.share_linear2_bounds_;
6344 }
6345 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
6346 _this->_impl_.use_chronological_backtracking_ = from._impl_.use_chronological_backtracking_;
6347 }
6348 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
6349 _this->_impl_.load_at_most_ones_in_sat_presolve_ = from._impl_.load_at_most_ones_in_sat_presolve_;
6350 }
6351 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
6352 _this->_impl_.use_new_integer_conflict_resolution_ = from._impl_.use_new_integer_conflict_resolution_;
6353 }
6354 }
6355 cached_has_bits = from._impl_._has_bits_[4];
6356 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
6357 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
6358 _this->_impl_.clause_cleanup_period_increment_ = from._impl_.clause_cleanup_period_increment_;
6359 }
6360 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
6361 _this->_impl_.debug_crash_if_lrat_check_fails_ = from._impl_.debug_crash_if_lrat_check_fails_;
6362 }
6363 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
6364 _this->_impl_.check_lrat_proof_ = from._impl_.check_lrat_proof_;
6365 }
6366 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
6367 _this->_impl_.output_lrat_proof_ = from._impl_.output_lrat_proof_;
6368 }
6369 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
6370 _this->_impl_.check_drat_proof_ = from._impl_.check_drat_proof_;
6371 }
6372 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
6373 _this->_impl_.clause_cleanup_lbd_tier1_ = from._impl_.clause_cleanup_lbd_tier1_;
6374 }
6375 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
6376 _this->_impl_.clause_cleanup_lbd_tier2_ = from._impl_.clause_cleanup_lbd_tier2_;
6377 }
6378 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
6379 _this->_impl_.output_drat_proof_ = from._impl_.output_drat_proof_;
6380 }
6381 }
6382 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
6383 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
6384 _this->_impl_.check_merged_lrat_proof_ = from._impl_.check_merged_lrat_proof_;
6385 }
6386 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
6387 _this->_impl_.inprocessing_use_sat_sweeping_ = from._impl_.inprocessing_use_sat_sweeping_;
6388 }
6389 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
6390 _this->_impl_.max_memory_in_mb_ = from._impl_.max_memory_in_mb_;
6391 }
6392 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
6393 _this->_impl_.binary_minimization_algorithm_ = from._impl_.binary_minimization_algorithm_;
6394 }
6395 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
6396 _this->_impl_.pb_cleanup_increment_ = from._impl_.pb_cleanup_increment_;
6397 }
6398 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
6399 _this->_impl_.pb_cleanup_ratio_ = from._impl_.pb_cleanup_ratio_;
6400 }
6401 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
6402 _this->_impl_.core_minimization_level_ = from._impl_.core_minimization_level_;
6403 }
6404 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
6405 _this->_impl_.max_sat_stratification_ = from._impl_.max_sat_stratification_;
6406 }
6407 }
6408 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
6409 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
6410 _this->_impl_.presolve_bve_threshold_ = from._impl_.presolve_bve_threshold_;
6411 }
6412 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
6413 _this->_impl_.presolve_bve_clause_weight_ = from._impl_.presolve_bve_clause_weight_;
6414 }
6415 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
6416 _this->_impl_.presolve_probing_deterministic_time_limit_ = from._impl_.presolve_probing_deterministic_time_limit_;
6417 }
6418 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
6419 _this->_impl_.clause_cleanup_lbd_bound_ = from._impl_.clause_cleanup_lbd_bound_;
6420 }
6421 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
6422 _this->_impl_.restart_running_window_size_ = from._impl_.restart_running_window_size_;
6423 }
6424 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
6425 _this->_impl_.restart_dl_average_ratio_ = from._impl_.restart_dl_average_ratio_;
6426 }
6427 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
6428 _this->_impl_.count_assumption_levels_in_lbd_ = from._impl_.count_assumption_levels_in_lbd_;
6429 }
6430 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
6431 _this->_impl_.subsumption_during_conflict_analysis_ = from._impl_.subsumption_during_conflict_analysis_;
6432 }
6433 }
6434 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
6435 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
6436 _this->_impl_.presolve_use_bva_ = from._impl_.presolve_use_bva_;
6437 }
6438 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
6439 _this->_impl_.use_disjunctive_constraint_in_cumulative_ = from._impl_.use_disjunctive_constraint_in_cumulative_;
6440 }
6441 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
6442 _this->_impl_.blocking_restart_window_size_ = from._impl_.blocking_restart_window_size_;
6443 }
6444 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
6445 _this->_impl_.blocking_restart_multiplier_ = from._impl_.blocking_restart_multiplier_;
6446 }
6447 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
6448 _this->_impl_.max_deterministic_time_ = from._impl_.max_deterministic_time_;
6449 }
6450 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
6451 _this->_impl_.restart_lbd_average_ratio_ = from._impl_.restart_lbd_average_ratio_;
6452 }
6453 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
6454 _this->_impl_.presolve_bva_threshold_ = from._impl_.presolve_bva_threshold_;
6455 }
6456 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
6457 _this->_impl_.find_multiple_cores_ = from._impl_.find_multiple_cores_;
6458 }
6459 }
6460 cached_has_bits = from._impl_._has_bits_[5];
6461 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
6462 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
6463 _this->_impl_.cp_model_presolve_ = from._impl_.cp_model_presolve_;
6464 }
6465 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
6466 _this->_impl_.presolve_blocked_clause_ = from._impl_.presolve_blocked_clause_;
6467 }
6468 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
6469 _this->_impl_.cover_optimization_ = from._impl_.cover_optimization_;
6470 }
6471 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
6472 _this->_impl_.linearization_level_ = from._impl_.linearization_level_;
6473 }
6474 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
6475 _this->_impl_.max_num_cuts_ = from._impl_.max_num_cuts_;
6476 }
6477 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
6478 _this->_impl_.cp_model_use_sat_presolve_ = from._impl_.cp_model_use_sat_presolve_;
6479 }
6480 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
6481 _this->_impl_.exploit_integer_lp_solution_ = from._impl_.exploit_integer_lp_solution_;
6482 }
6483 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
6484 _this->_impl_.auto_detect_greater_than_at_least_one_of_ = from._impl_.auto_detect_greater_than_at_least_one_of_;
6485 }
6486 }
6487 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
6488 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
6489 _this->_impl_.instantiate_all_variables_ = from._impl_.instantiate_all_variables_;
6490 }
6491 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
6492 _this->_impl_.binary_search_num_conflicts_ = from._impl_.binary_search_num_conflicts_;
6493 }
6494 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
6495 _this->_impl_.boolean_encoding_level_ = from._impl_.boolean_encoding_level_;
6496 }
6497 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
6498 _this->_impl_.cp_model_probing_level_ = from._impl_.cp_model_probing_level_;
6499 }
6500 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
6501 _this->_impl_.use_exact_lp_reason_ = from._impl_.use_exact_lp_reason_;
6502 }
6503 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
6504 _this->_impl_.add_lp_constraints_lazily_ = from._impl_.add_lp_constraints_lazily_;
6505 }
6506 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
6507 _this->_impl_.share_objective_bounds_ = from._impl_.share_objective_bounds_;
6508 }
6509 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
6510 _this->_impl_.share_level_zero_bounds_ = from._impl_.share_level_zero_bounds_;
6511 }
6512 }
6513 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
6514 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
6515 _this->_impl_.max_integer_rounding_scaling_ = from._impl_.max_integer_rounding_scaling_;
6516 }
6517 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
6518 _this->_impl_.min_orthogonality_for_lp_constraints_ = from._impl_.min_orthogonality_for_lp_constraints_;
6519 }
6520 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
6521 _this->_impl_.exploit_all_lp_solution_ = from._impl_.exploit_all_lp_solution_;
6522 }
6523 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
6524 _this->_impl_.add_cg_cuts_ = from._impl_.add_cg_cuts_;
6525 }
6526 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
6527 _this->_impl_.add_mir_cuts_ = from._impl_.add_mir_cuts_;
6528 }
6529 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
6530 _this->_impl_.use_rins_lns_ = from._impl_.use_rins_lns_;
6531 }
6532 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
6533 _this->_impl_.max_consecutive_inactive_count_ = from._impl_.max_consecutive_inactive_count_;
6534 }
6535 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
6536 _this->_impl_.pseudo_cost_reliability_threshold_ = from._impl_.pseudo_cost_reliability_threshold_;
6537 }
6538 }
6539 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
6540 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
6541 _this->_impl_.mip_max_bound_ = from._impl_.mip_max_bound_;
6542 }
6543 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
6544 _this->_impl_.new_constraints_batch_size_ = from._impl_.new_constraints_batch_size_;
6545 }
6546 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
6547 _this->_impl_.mip_max_activity_exponent_ = from._impl_.mip_max_activity_exponent_;
6548 }
6549 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
6550 _this->_impl_.mip_var_scaling_ = from._impl_.mip_var_scaling_;
6551 }
6552 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
6553 _this->_impl_.mip_wanted_precision_ = from._impl_.mip_wanted_precision_;
6554 }
6555 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
6556 _this->_impl_.mip_check_precision_ = from._impl_.mip_check_precision_;
6557 }
6558 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
6559 _this->_impl_.max_presolve_iterations_ = from._impl_.max_presolve_iterations_;
6560 }
6561 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
6562 _this->_impl_.exploit_objective_ = from._impl_.exploit_objective_;
6563 }
6564 }
6565 cached_has_bits = from._impl_._has_bits_[6];
6566 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
6567 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
6568 _this->_impl_.catch_sigint_signal_ = from._impl_.catch_sigint_signal_;
6569 }
6570 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
6571 _this->_impl_.use_implied_bounds_ = from._impl_.use_implied_bounds_;
6572 }
6573 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
6574 _this->_impl_.add_lin_max_cuts_ = from._impl_.add_lin_max_cuts_;
6575 }
6576 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
6577 _this->_impl_.merge_no_overlap_work_limit_ = from._impl_.merge_no_overlap_work_limit_;
6578 }
6579 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
6580 _this->_impl_.merge_at_most_one_work_limit_ = from._impl_.merge_at_most_one_work_limit_;
6581 }
6582 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
6583 _this->_impl_.presolve_substitution_level_ = from._impl_.presolve_substitution_level_;
6584 }
6585 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
6586 _this->_impl_.max_all_diff_cut_size_ = from._impl_.max_all_diff_cut_size_;
6587 }
6588 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
6589 _this->_impl_.hint_conflict_limit_ = from._impl_.hint_conflict_limit_;
6590 }
6591 }
6592 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
6593 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
6594 _this->_impl_.max_cut_rounds_at_level_zero_ = from._impl_.max_cut_rounds_at_level_zero_;
6595 }
6596 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
6597 _this->_impl_.cut_max_active_count_value_ = from._impl_.cut_max_active_count_value_;
6598 }
6599 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
6600 _this->_impl_.cut_active_count_decay_ = from._impl_.cut_active_count_decay_;
6601 }
6602 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
6603 _this->_impl_.absolute_gap_limit_ = from._impl_.absolute_gap_limit_;
6604 }
6605 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
6606 _this->_impl_.cut_cleanup_target_ = from._impl_.cut_cleanup_target_;
6607 }
6608 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
6609 _this->_impl_.fp_rounding_ = from._impl_.fp_rounding_;
6610 }
6611 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
6612 _this->_impl_.use_sat_inprocessing_ = from._impl_.use_sat_inprocessing_;
6613 }
6614 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
6615 _this->_impl_.use_feasibility_pump_ = from._impl_.use_feasibility_pump_;
6616 }
6617 }
6618 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
6619 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
6620 _this->_impl_.mip_automatically_scale_variables_ = from._impl_.mip_automatically_scale_variables_;
6621 }
6622 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
6623 _this->_impl_.add_zero_half_cuts_ = from._impl_.add_zero_half_cuts_;
6624 }
6625 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
6626 _this->_impl_.polarity_rephase_increment_ = from._impl_.polarity_rephase_increment_;
6627 }
6628 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
6629 _this->_impl_.add_clique_cuts_ = from._impl_.add_clique_cuts_;
6630 }
6631 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
6632 _this->_impl_.convert_intervals_ = from._impl_.convert_intervals_;
6633 }
6634 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
6635 _this->_impl_.expand_reservoir_constraints_ = from._impl_.expand_reservoir_constraints_;
6636 }
6637 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
6638 _this->_impl_.log_to_stdout_ = from._impl_.log_to_stdout_;
6639 }
6640 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
6641 _this->_impl_.symmetry_level_ = from._impl_.symmetry_level_;
6642 }
6643 }
6644 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
6645 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
6646 _this->_impl_.clause_cleanup_ratio_ = from._impl_.clause_cleanup_ratio_;
6647 }
6648 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
6649 _this->_impl_.max_domain_size_when_encoding_eq_neq_constraints_ = from._impl_.max_domain_size_when_encoding_eq_neq_constraints_;
6650 }
6651 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
6652 _this->_impl_.solution_pool_size_ = from._impl_.solution_pool_size_;
6653 }
6654 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
6655 _this->_impl_.mip_max_valid_magnitude_ = from._impl_.mip_max_valid_magnitude_;
6656 }
6657 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
6658 _this->_impl_.presolve_inclusion_work_limit_ = from._impl_.presolve_inclusion_work_limit_;
6659 }
6660 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
6661 _this->_impl_.cut_level_ = from._impl_.cut_level_;
6662 }
6663 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
6664 _this->_impl_.mip_compute_true_objective_bound_ = from._impl_.mip_compute_true_objective_bound_;
6665 }
6666 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
6667 _this->_impl_.ignore_names_ = from._impl_.ignore_names_;
6668 }
6669 }
6670 cached_has_bits = from._impl_._has_bits_[7];
6671 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
6672 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
6673 _this->_impl_.share_binary_clauses_ = from._impl_.share_binary_clauses_;
6674 }
6675 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
6676 _this->_impl_.use_dual_scheduling_heuristics_ = from._impl_.use_dual_scheduling_heuristics_;
6677 }
6678 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
6679 _this->_impl_.shaving_deterministic_time_in_probing_search_ = from._impl_.shaving_deterministic_time_in_probing_search_;
6680 }
6681 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
6682 _this->_impl_.shaving_search_deterministic_time_ = from._impl_.shaving_search_deterministic_time_;
6683 }
6684 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
6685 _this->_impl_.propagation_loop_detection_factor_ = from._impl_.propagation_loop_detection_factor_;
6686 }
6687 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
6688 _this->_impl_.table_compression_level_ = from._impl_.table_compression_level_;
6689 }
6690 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
6691 _this->_impl_.root_lp_iterations_ = from._impl_.root_lp_iterations_;
6692 }
6693 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
6694 _this->_impl_.probing_deterministic_time_limit_ = from._impl_.probing_deterministic_time_limit_;
6695 }
6696 }
6697 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
6698 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
6699 _this->_impl_.mip_drop_tolerance_ = from._impl_.mip_drop_tolerance_;
6700 }
6701 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
6702 _this->_impl_.max_size_to_create_precedence_literals_in_disjunctive_ = from._impl_.max_size_to_create_precedence_literals_in_disjunctive_;
6703 }
6704 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
6705 _this->_impl_.shared_tree_num_workers_ = from._impl_.shared_tree_num_workers_;
6706 }
6707 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
6708 _this->_impl_.new_linear_propagation_ = from._impl_.new_linear_propagation_;
6709 }
6710 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
6711 _this->_impl_.infer_all_diffs_ = from._impl_.infer_all_diffs_;
6712 }
6713 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
6714 _this->_impl_.find_big_linear_overlap_ = from._impl_.find_big_linear_overlap_;
6715 }
6716 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
6717 _this->_impl_.feasibility_jump_enable_restarts_ = from._impl_.feasibility_jump_enable_restarts_;
6718 }
6719 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
6720 _this->_impl_.shared_tree_max_nodes_per_worker_ = from._impl_.shared_tree_max_nodes_per_worker_;
6721 }
6722 }
6723 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
6724 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
6725 _this->_impl_.feasibility_jump_decay_ = from._impl_.feasibility_jump_decay_;
6726 }
6727 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
6728 _this->_impl_.feasibility_jump_var_randomization_probability_ = from._impl_.feasibility_jump_var_randomization_probability_;
6729 }
6730 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
6731 _this->_impl_.feasibility_jump_var_perburbation_range_ratio_ = from._impl_.feasibility_jump_var_perburbation_range_ratio_;
6732 }
6733 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
6734 _this->_impl_.violation_ls_perturbation_period_ = from._impl_.violation_ls_perturbation_period_;
6735 }
6736 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
6737 _this->_impl_.linear_split_size_ = from._impl_.linear_split_size_;
6738 }
6739 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
6740 _this->_impl_.feasibility_jump_linearization_level_ = from._impl_.feasibility_jump_linearization_level_;
6741 }
6742 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
6743 _this->_impl_.feasibility_jump_restart_factor_ = from._impl_.feasibility_jump_restart_factor_;
6744 }
6745 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
6746 _this->_impl_.violation_ls_compound_move_probability_ = from._impl_.violation_ls_compound_move_probability_;
6747 }
6748 }
6749 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
6750 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
6751 _this->_impl_.max_num_intervals_for_timetable_edge_finding_ = from._impl_.max_num_intervals_for_timetable_edge_finding_;
6752 }
6753 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
6754 _this->_impl_.mip_presolve_level_ = from._impl_.mip_presolve_level_;
6755 }
6756 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
6757 _this->_impl_.lp_primal_tolerance_ = from._impl_.lp_primal_tolerance_;
6758 }
6759 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
6760 _this->_impl_.feasibility_jump_max_expanded_constraint_size_ = from._impl_.feasibility_jump_max_expanded_constraint_size_;
6761 }
6762 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
6763 _this->_impl_.use_lb_relax_lns_ = from._impl_.use_lb_relax_lns_;
6764 }
6765 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
6766 _this->_impl_.use_feasibility_jump_ = from._impl_.use_feasibility_jump_;
6767 }
6768 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
6769 _this->_impl_.use_extended_probing_ = from._impl_.use_extended_probing_;
6770 }
6771 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
6772 _this->_impl_.add_rlt_cuts_ = from._impl_.add_rlt_cuts_;
6773 }
6774 }
6775 cached_has_bits = from._impl_._has_bits_[8];
6776 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
6777 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
6778 _this->_impl_.lp_dual_tolerance_ = from._impl_.lp_dual_tolerance_;
6779 }
6780 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
6781 _this->_impl_.at_most_one_max_expansion_size_ = from._impl_.at_most_one_max_expansion_size_;
6782 }
6783 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
6784 _this->_impl_.probing_num_combinations_limit_ = from._impl_.probing_num_combinations_limit_;
6785 }
6786 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
6787 _this->_impl_.inprocessing_dtime_ratio_ = from._impl_.inprocessing_dtime_ratio_;
6788 }
6789 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
6790 _this->_impl_.inprocessing_probing_dtime_ = from._impl_.inprocessing_probing_dtime_;
6791 }
6792 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
6793 _this->_impl_.inprocessing_minimization_dtime_ = from._impl_.inprocessing_minimization_dtime_;
6794 }
6795 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
6796 _this->_impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_ = from._impl_.max_pairs_pairwise_reasoning_in_no_overlap_2d_;
6797 }
6798 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
6799 _this->_impl_.shared_tree_worker_min_restarts_per_subtree_ = from._impl_.shared_tree_worker_min_restarts_per_subtree_;
6800 }
6801 }
6802 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
6803 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
6804 _this->_impl_.shared_tree_open_leaves_per_worker_ = from._impl_.shared_tree_open_leaves_per_worker_;
6805 }
6806 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
6807 _this->_impl_.variables_shaving_level_ = from._impl_.variables_shaving_level_;
6808 }
6809 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
6810 _this->_impl_.use_lns_ = from._impl_.use_lns_;
6811 }
6812 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
6813 _this->_impl_.share_glue_clauses_ = from._impl_.share_glue_clauses_;
6814 }
6815 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
6816 _this->_impl_.shared_tree_worker_enable_trail_sharing_ = from._impl_.shared_tree_worker_enable_trail_sharing_;
6817 }
6818 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
6819 _this->_impl_.inprocessing_minimization_use_conflict_analysis_ = from._impl_.inprocessing_minimization_use_conflict_analysis_;
6820 }
6821 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
6822 _this->_impl_.shaving_search_threshold_ = from._impl_.shaving_search_threshold_;
6823 }
6824 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
6825 _this->_impl_.feasibility_jump_batch_dtime_ = from._impl_.feasibility_jump_batch_dtime_;
6826 }
6827 }
6828 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
6829 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
6830 _this->_impl_.lb_relax_num_workers_threshold_ = from._impl_.lb_relax_num_workers_threshold_;
6831 }
6832 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
6833 _this->_impl_.shared_tree_balance_tolerance_ = from._impl_.shared_tree_balance_tolerance_;
6834 }
6835 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
6836 _this->_impl_.symmetry_detection_deterministic_time_limit_ = from._impl_.symmetry_detection_deterministic_time_limit_;
6837 }
6838 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
6839 _this->_impl_.lns_initial_difficulty_ = from._impl_.lns_initial_difficulty_;
6840 }
6841 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
6842 _this->_impl_.lns_initial_deterministic_limit_ = from._impl_.lns_initial_deterministic_limit_;
6843 }
6844 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
6845 _this->_impl_.minimize_shared_clauses_ = from._impl_.minimize_shared_clauses_;
6846 }
6847 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
6848 _this->_impl_.shared_tree_worker_enable_phase_sharing_ = from._impl_.shared_tree_worker_enable_phase_sharing_;
6849 }
6850 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
6851 _this->_impl_.remove_fixed_variables_early_ = from._impl_.remove_fixed_variables_early_;
6852 }
6853 }
6854 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
6855 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
6856 _this->_impl_.use_linear3_for_no_overlap_2d_precedences_ = from._impl_.use_linear3_for_no_overlap_2d_precedences_;
6857 }
6858 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
6859 _this->_impl_.routing_cut_subset_size_for_exact_binary_relation_bound_ = from._impl_.routing_cut_subset_size_for_exact_binary_relation_bound_;
6860 }
6861 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
6862 _this->_impl_.routing_cut_dp_effort_ = from._impl_.routing_cut_dp_effort_;
6863 }
6864 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
6865 _this->_impl_.routing_cut_max_infeasible_path_length_ = from._impl_.routing_cut_max_infeasible_path_length_;
6866 }
6867 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
6868 _this->_impl_.routing_cut_subset_size_for_shortest_paths_bound_ = from._impl_.routing_cut_subset_size_for_shortest_paths_bound_;
6869 }
6870 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
6871 _this->_impl_.max_alldiff_domain_size_ = from._impl_.max_alldiff_domain_size_;
6872 }
6873 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
6874 _this->_impl_.no_overlap_2d_boolean_relations_limit_ = from._impl_.no_overlap_2d_boolean_relations_limit_;
6875 }
6876 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
6877 _this->_impl_.share_glue_clauses_dtime_ = from._impl_.share_glue_clauses_dtime_;
6878 }
6879 }
6880 cached_has_bits = from._impl_._has_bits_[9];
6881 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
6882 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
6883 _this->_impl_.alternative_pool_size_ = from._impl_.alternative_pool_size_;
6884 }
6885 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
6886 _this->_impl_.transitive_precedences_work_limit_ = from._impl_.transitive_precedences_work_limit_;
6887 }
6888 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
6889 _this->_impl_.shared_tree_split_min_dtime_ = from._impl_.shared_tree_split_min_dtime_;
6890 }
6891 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
6892 _this->_impl_.solution_pool_diversity_limit_ = from._impl_.solution_pool_diversity_limit_;
6893 }
6894 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
6895 _this->_impl_.max_backjump_levels_ = from._impl_.max_backjump_levels_;
6896 }
6897 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
6898 _this->_impl_.chronological_backtrack_min_conflicts_ = from._impl_.chronological_backtrack_min_conflicts_;
6899 }
6900 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
6901 _this->_impl_.max_domain_size_for_linear2_expansion_ = from._impl_.max_domain_size_for_linear2_expansion_;
6902 }
6903 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
6904 _this->_impl_.find_clauses_that_are_exactly_one_ = from._impl_.find_clauses_that_are_exactly_one_;
6905 }
6906 }
6907 if (BatchCheckHasBit(cached_has_bits, 0x00007f00U)) {
6908 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
6909 _this->_impl_.create_1uip_boolean_during_icr_ = from._impl_.create_1uip_boolean_during_icr_;
6910 }
6911 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
6912 _this->_impl_.inprocessing_use_congruence_closure_ = from._impl_.inprocessing_use_congruence_closure_;
6913 }
6914 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
6915 _this->_impl_.extra_subsumption_during_conflict_analysis_ = from._impl_.extra_subsumption_during_conflict_analysis_;
6916 }
6917 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
6918 _this->_impl_.eagerly_subsume_last_n_conflicts_ = from._impl_.eagerly_subsume_last_n_conflicts_;
6919 }
6920 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
6921 _this->_impl_.max_drat_time_in_seconds_ = from._impl_.max_drat_time_in_seconds_;
6922 }
6923 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
6924 _this->_impl_.decision_subsumption_during_conflict_analysis_ = from._impl_.decision_subsumption_during_conflict_analysis_;
6925 }
6926 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
6927 _this->_impl_.subsume_during_vivification_ = from._impl_.subsume_during_vivification_;
6928 }
6929 }
6930 _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
6931 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
6932 from._internal_metadata_);
6933}
6934
6935void SatParameters::CopyFrom(const SatParameters& from) {
6936 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SatParameters)
6937 if (&from == this) return;
6938 Clear();
6939 MergeFrom(from);
6940}
6941
6942
6943void SatParameters::InternalSwap(SatParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
6944 using ::std::swap;
6945 auto* arena = GetArena();
6946 ABSL_DCHECK_EQ(arena, other->GetArena());
6947 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
6948 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
6949 swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
6950 swap(_impl_._has_bits_[2], other->_impl_._has_bits_[2]);
6951 swap(_impl_._has_bits_[3], other->_impl_._has_bits_[3]);
6952 swap(_impl_._has_bits_[4], other->_impl_._has_bits_[4]);
6953 swap(_impl_._has_bits_[5], other->_impl_._has_bits_[5]);
6954 swap(_impl_._has_bits_[6], other->_impl_._has_bits_[6]);
6955 swap(_impl_._has_bits_[7], other->_impl_._has_bits_[7]);
6956 swap(_impl_._has_bits_[8], other->_impl_._has_bits_[8]);
6957 swap(_impl_._has_bits_[9], other->_impl_._has_bits_[9]);
6958 ::google::protobuf::internal::memswap<
6959 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.max_number_of_conflicts_)
6960 + sizeof(SatParameters::_impl_.max_number_of_conflicts_)
6961 - PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.preferred_variable_order_)>(
6962 reinterpret_cast<char*>(&_impl_.preferred_variable_order_),
6963 reinterpret_cast<char*>(&other->_impl_.preferred_variable_order_));
6964 _impl_.restart_algorithms_.InternalSwap(&other->_impl_.restart_algorithms_);
6965 _impl_.subsolvers_.InternalSwap(&other->_impl_.subsolvers_);
6966 _impl_.ignore_subsolvers_.InternalSwap(&other->_impl_.ignore_subsolvers_);
6967 _impl_.subsolver_params_.InternalSwap(&other->_impl_.subsolver_params_);
6968 _impl_.extra_subsolvers_.InternalSwap(&other->_impl_.extra_subsolvers_);
6969 _impl_.filter_subsolvers_.InternalSwap(&other->_impl_.filter_subsolvers_);
6970 ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.default_restart_algorithms_, &other->_impl_.default_restart_algorithms_, arena);
6971 ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
6972 ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.log_prefix_, &other->_impl_.log_prefix_, arena);
6973 ::google::protobuf::internal::memswap<
6974 PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.subsume_during_vivification_)
6975 + sizeof(SatParameters::_impl_.subsume_during_vivification_)
6976 - PROTOBUF_FIELD_OFFSET(SatParameters, _impl_.random_branches_ratio_)>(
6977 reinterpret_cast<char*>(&_impl_.random_branches_ratio_),
6978 reinterpret_cast<char*>(&other->_impl_.random_branches_ratio_));
6979}
6980
6981::google::protobuf::Metadata SatParameters::GetMetadata() const {
6982 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
6983}
6984// @@protoc_insertion_point(namespace_scope)
6985} // namespace sat
6986} // namespace operations_research
6987namespace google {
6988namespace protobuf {
6989} // namespace protobuf
6990} // namespace google
6991// @@protoc_insertion_point(global_scope)
6992PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
6993 _static_init2_ [[maybe_unused]] =
6995 ::std::false_type{});
6996#include "google/protobuf/port_undef.inc"
static PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 ::std::false_type _static_init2_
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)
::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)
friend class ::google::protobuf::Arena
static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas
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_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_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()
OR-Tools root namespace.
false true
Definition numbers.cc:223
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[11]