8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
16 #include <google/protobuf/port_def.inc>
21 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SatParameters>
_instance;
26 GOOGLE_PROTOBUF_VERIFY_VERSION;
28 ::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.DefaultConstruct();
29 *::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get_mutable() = std::string(
"LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART", 65);
30 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyString(
31 ::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get_mutable());
35 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
37 ::operations_research::sat::SatParameters::InitAsDefaultInstance();
345 { 0, 150,
sizeof(::operations_research::sat::SatParameters)},
352 const char descriptor_table_protodef_ortools_2fsat_2fsat_5fparameters_2eproto[]
PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
353 "\n ortools/sat/sat_parameters.proto\022\027oper"
354 "ations_research.sat\"\227>\n\rSatParameters\022`\n"
355 "\030preferred_variable_order\030\001 \001(\01624.operat"
356 "ions_research.sat.SatParameters.Variable"
357 "Order:\010IN_ORDER\022Y\n\020initial_polarity\030\002 \001("
358 "\0162/.operations_research.sat.SatParameter"
359 "s.Polarity:\016POLARITY_FALSE\022\036\n\020use_phase_"
360 "saving\030, \001(\010:\004true\022)\n\032polarity_rephase_i"
361 "ncrement\030\250\001 \001(\005:\0041000\022 \n\025random_polarity"
362 "_ratio\030- \001(\001:\0010\022 \n\025random_branches_ratio"
363 "\030 \001(\001:\0010\022!\n\022use_erwa_heuristic\030K \001(\010:\005f"
364 "alse\022%\n\032initial_variables_activity\030L \001(\001"
365 ":\0010\0226\n\'also_bump_variables_in_conflict_r"
366 "easons\030M \001(\010:\005false\022o\n\026minimization_algo"
367 "rithm\030\004 \001(\0162D.operations_research.sat.Sa"
368 "tParameters.ConflictMinimizationAlgorith"
369 "m:\tRECURSIVE\022\202\001\n\035binary_minimization_alg"
370 "orithm\030\" \001(\0162@.operations_research.sat.S"
371 "atParameters.BinaryMinizationAlgorithm:\031"
372 "BINARY_MINIMIZATION_FIRST\0222\n$subsumption"
373 "_during_conflict_analysis\0308 \001(\010:\004true\022$\n"
374 "\025clause_cleanup_period\030\013 \001(\005:\00510000\022$\n\025c"
375 "lause_cleanup_target\030\r \001(\005:\00510000\022k\n\031cla"
376 "use_cleanup_protection\030: \001(\01627.operation"
377 "s_research.sat.SatParameters.ClauseProte"
378 "ction:\017PROTECTION_NONE\022#\n\030clause_cleanup"
379 "_lbd_bound\030; \001(\005:\0015\022g\n\027clause_cleanup_or"
380 "dering\030< \001(\01625.operations_research.sat.S"
381 "atParameters.ClauseOrdering:\017CLAUSE_ACTI"
382 "VITY\022!\n\024pb_cleanup_increment\030. \001(\005:\003200\022"
383 "\035\n\020pb_cleanup_ratio\030/ \001(\001:\0030.5\0224\n(minimi"
384 "ze_with_propagation_restart_period\030` \001(\005"
385 ":\00210\0225\n\'minimize_with_propagation_num_de"
386 "cisions\030a \001(\005:\0041000\022$\n\027variable_activity"
387 "_decay\030\017 \001(\001:\0030.8\022+\n\033max_variable_activi"
388 "ty_value\030\020 \001(\001:\0061e+100\022\037\n\021glucose_max_de"
389 "cay\030\026 \001(\001:\0040.95\022%\n\027glucose_decay_increme"
390 "nt\030\027 \001(\001:\0040.01\022,\n\036glucose_decay_incremen"
391 "t_period\030\030 \001(\005:\0045000\022$\n\025clause_activity_"
392 "decay\030\021 \001(\001:\0050.999\022(\n\031max_clause_activit"
393 "y_value\030\022 \001(\001:\0051e+20\022S\n\022restart_algorith"
394 "ms\030= \003(\01627.operations_research.sat.SatPa"
395 "rameters.RestartAlgorithm\022e\n\032default_res"
396 "tart_algorithms\030F \001(\t:ALUBY_RESTART,LBD_"
397 "MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE"
398 "_RESTART\022\032\n\016restart_period\030\036 \001(\005:\00250\022\'\n\033"
399 "restart_running_window_size\030> \001(\005:\00250\022#\n"
400 "\030restart_dl_average_ratio\030\? \001(\001:\0011\022$\n\031re"
401 "start_lbd_average_ratio\030G \001(\001:\0011\022#\n\024use_"
402 "blocking_restart\030@ \001(\010:\005false\022*\n\034blockin"
403 "g_restart_window_size\030A \001(\005:\0045000\022(\n\033blo"
404 "cking_restart_multiplier\030B \001(\001:\0031.4\0220\n%n"
405 "um_conflicts_before_strategy_changes\030D \001"
406 "(\005:\0010\022)\n\036strategy_change_increase_ratio\030"
407 "E \001(\001:\0010\022 \n\023max_time_in_seconds\030$ \001(\001:\003i"
408 "nf\022#\n\026max_deterministic_time\030C \001(\001:\003inf\022"
409 "4\n\027max_number_of_conflicts\030% \001(\003:\023922337"
410 "2036854775807\022\037\n\020max_memory_in_mb\030( \001(\003:"
411 "\00510000\022\036\n\022absolute_gap_limit\030\237\001 \001(\001:\0010\022\036"
412 "\n\022relative_gap_limit\030\240\001 \001(\001:\0010\022-\n\037treat_"
413 "binary_clauses_separately\030! \001(\010:\004true\022\026\n"
414 "\013random_seed\030\037 \001(\005:\0011\022\"\n\023log_search_prog"
415 "ress\030) \001(\010:\005false\022 \n\021use_pb_resolution\030+"
416 " \001(\010:\005false\0226\n\'minimize_reduction_during"
417 "_pb_resolution\0300 \001(\010:\005false\022,\n\036count_ass"
418 "umption_levels_in_lbd\0301 \001(\010:\004true\022#\n\026pre"
419 "solve_bve_threshold\0306 \001(\005:\003500\022%\n\032presol"
420 "ve_bve_clause_weight\0307 \001(\005:\0013\0225\n)presolv"
421 "e_probing_deterministic_time_limit\0309 \001(\001"
422 ":\00230\022%\n\027presolve_blocked_clause\030X \001(\010:\004t"
423 "rue\022\036\n\020presolve_use_bva\030H \001(\010:\004true\022!\n\026p"
424 "resolve_bva_threshold\030I \001(\005:\0011\022#\n\027max_pr"
425 "esolve_iterations\030\212\001 \001(\005:\0013\022\037\n\021cp_model_"
426 "presolve\030V \001(\010:\004true\0223\n#cp_model_postsol"
427 "ve_with_full_solver\030\242\001 \001(\010:\005false\0220\n$cp_"
428 "model_max_num_presolve_operations\030\227\001 \001(\005"
429 ":\0010\022!\n\026cp_model_probing_level\030n \001(\005:\0012\022\'"
430 "\n\031cp_model_use_sat_presolve\030] \001(\010:\004true\022"
431 "$\n\024use_sat_inprocessing\030\243\001 \001(\010:\005false\022)\n"
432 "\032expand_element_constraints\030\214\001 \001(\010:\004true"
433 "\022+\n\034expand_automaton_constraints\030\217\001 \001(\010:"
434 "\004true\022\'\n\030expand_table_constraints\030\236\001 \001(\010"
435 ":\004true\0223\n\033merge_no_overlap_work_limit\030\221\001"
436 " \001(\001:\r1000000000000\0220\n\034merge_at_most_one"
437 "_work_limit\030\222\001 \001(\001:\t100000000\022\'\n\033presolv"
438 "e_substitution_level\030\223\001 \001(\005:\0011\022$\n\026use_op"
439 "timization_hints\030# \001(\010:\004true\022\033\n\rminimize"
440 "_core\0302 \001(\010:\004true\022!\n\023find_multiple_cores"
441 "\030T \001(\010:\004true\022 \n\022cover_optimization\030Y \001(\010"
442 ":\004true\022x\n\030max_sat_assumption_order\0303 \001(\016"
443 "2<.operations_research.sat.SatParameters"
444 ".MaxSatAssumptionOrder:\030DEFAULT_ASSUMPTI"
445 "ON_ORDER\022/\n max_sat_reverse_assumption_o"
446 "rder\0304 \001(\010:\005false\022|\n\026max_sat_stratificat"
447 "ion\0305 \001(\0162D.operations_research.sat.SatP"
448 "arameters.MaxSatStratificationAlgorithm:"
449 "\026STRATIFICATION_DESCENT\0227\n)use_precedenc"
450 "es_in_disjunctive_constraint\030J \001(\010:\004true"
451 "\022<\n-use_overload_checker_in_cumulative_c"
452 "onstraint\030N \001(\010:\005false\022B\n3use_timetable_"
453 "edge_finding_in_cumulative_constraint\030O "
454 "\001(\010:\005false\022A\n3use_disjunctive_constraint"
455 "_in_cumulative_constraint\030P \001(\010:\004true\022\036\n"
456 "\023linearization_level\030Z \001(\005:\0011\022!\n\026boolean"
457 "_encoding_level\030k \001(\005:\0011\022\033\n\014max_num_cuts"
458 "\030[ \001(\005:\00510000\022*\n\033only_add_cuts_at_level_"
459 "zero\030\\ \001(\010:\005false\022 \n\021add_knapsack_cuts\030o"
460 " \001(\010:\005false\022\031\n\013add_cg_cuts\030u \001(\010:\004true\022\032"
461 "\n\014add_mir_cuts\030x \001(\010:\004true\022!\n\025max_all_di"
462 "ff_cut_size\030\224\001 \001(\005:\0017\022\037\n\020add_lin_max_cut"
463 "s\030\230\001 \001(\010:\004true\022)\n\034max_integer_rounding_s"
464 "caling\030w \001(\005:\003600\022\'\n\031add_lp_constraints_"
465 "lazily\030p \001(\010:\004true\0222\n$min_orthogonality_"
466 "for_lp_constraints\030s \001(\001:\0040.05\022(\n\034max_cu"
467 "t_rounds_at_level_zero\030\232\001 \001(\005:\0011\022+\n\036max_"
468 "consecutive_inactive_count\030y \001(\005:\003100\0220\n"
469 "\032cut_max_active_count_value\030\233\001 \001(\001:\0131000"
470 "0000000\022$\n\026cut_active_count_decay\030\234\001 \001(\001"
471 ":\0030.8\022!\n\022cut_cleanup_target\030\235\001 \001(\005:\0041000"
472 "\022&\n\032new_constraints_batch_size\030z \001(\005:\00250"
473 "\022b\n\020search_branching\030R \001(\01626.operations_"
474 "research.sat.SatParameters.SearchBranchi"
475 "ng:\020AUTOMATIC_SEARCH\022 \n\023hint_conflict_li"
476 "mit\030\231\001 \001(\005:\00210\022\033\n\013repair_hint\030\247\001 \001(\010:\005fa"
477 "lse\022)\n\033exploit_integer_lp_solution\030^ \001(\010"
478 ":\004true\022%\n\027exploit_all_lp_solution\030t \001(\010:"
479 "\004true\022%\n\025exploit_best_solution\030\202\001 \001(\010:\005f"
480 "alse\022+\n\033exploit_relaxation_solution\030\241\001 \001"
481 "(\010:\005false\022 \n\021exploit_objective\030\203\001 \001(\010:\004t"
482 "rue\022\"\n\026probing_period_at_root\030\216\001 \001(\003:\0010\022"
483 ".\n!pseudo_cost_reliability_threshold\030{ \001"
484 "(\003:\003100\022!\n\022optimize_with_core\030S \001(\010:\005fal"
485 "se\022\'\n\033binary_search_num_conflicts\030c \001(\005:"
486 "\002-1\022#\n\024optimize_with_max_hs\030U \001(\010:\005false"
487 "\022&\n\027enumerate_all_solutions\030W \001(\010:\005false"
488 "\0222\n\"fill_tightened_domains_in_response\030\204"
489 "\001 \001(\010:\005false\022\'\n\031instantiate_all_variable"
490 "s\030j \001(\010:\004true\0226\n(auto_detect_greater_tha"
491 "n_at_least_one_of\030_ \001(\010:\004true\022(\n\031stop_af"
492 "ter_first_solution\030b \001(\010:\005false\022#\n\023stop_"
493 "after_presolve\030\225\001 \001(\010:\005false\022\035\n\022num_sear"
494 "ch_workers\030d \001(\005:\0011\022!\n\021interleave_search"
495 "\030\210\001 \001(\010:\005false\022!\n\025interleave_batch_size\030"
496 "\206\001 \001(\005:\0011\0226\n&reduce_memory_usage_in_inte"
497 "rleave_mode\030\215\001 \001(\010:\005false\022$\n\026share_objec"
498 "tive_bounds\030q \001(\010:\004true\022%\n\027share_level_z"
499 "ero_bounds\030r \001(\010:\004true\022\033\n\014use_lns_only\030e"
500 " \001(\010:\005false\022.\n\037lns_focus_on_decision_var"
501 "iables\030i \001(\010:\005false\022\033\n\014use_rins_lns\030\201\001 \001"
502 "(\010:\004true\022#\n\024use_feasibility_pump\030\244\001 \001(\010:"
503 "\004true\022c\n\013fp_rounding\030\245\001 \001(\01627.operations"
504 "_research.sat.SatParameters.FPRoundingMe"
505 "thod:\024PROPAGATION_ASSISTED\022\"\n\022use_relaxa"
506 "tion_lns\030\226\001 \001(\010:\005false\022$\n\024diversify_lns_"
507 "params\030\211\001 \001(\010:\005false\022\037\n\020randomize_search"
508 "\030g \001(\010:\005false\022)\n\036search_randomization_to"
509 "lerance\030h \001(\003:\0010\022$\n\026use_optional_variabl"
510 "es\030l \001(\010:\004true\022!\n\023use_exact_lp_reason\030m "
511 "\001(\010:\004true\022#\n\023use_branching_in_lp\030\213\001 \001(\010:"
512 "\005false\022\'\n\027use_combined_no_overlap\030\205\001 \001(\010"
513 ":\005false\022\"\n\023catch_sigint_signal\030\207\001 \001(\010:\004t"
514 "rue\022!\n\022use_implied_bounds\030\220\001 \001(\010:\004true\022\037"
515 "\n\rmip_max_bound\030| \001(\001:\01010000000\022\032\n\017mip_v"
516 "ar_scaling\030} \001(\001:\0011\0220\n!mip_automatically"
517 "_scale_variables\030\246\001 \001(\010:\004true\022#\n\024mip_wan"
518 "ted_precision\030~ \001(\001:\0051e-06\022%\n\031mip_max_ac"
519 "tivity_exponent\030\177 \001(\005:\00253\022$\n\023mip_check_p"
520 "recision\030\200\001 \001(\001:\0060.0001\"H\n\rVariableOrder"
521 "\022\014\n\010IN_ORDER\020\000\022\024\n\020IN_REVERSE_ORDER\020\001\022\023\n\017"
522 "IN_RANDOM_ORDER\020\002\"\206\001\n\010Polarity\022\021\n\rPOLARI"
523 "TY_TRUE\020\000\022\022\n\016POLARITY_FALSE\020\001\022\023\n\017POLARIT"
524 "Y_RANDOM\020\002\022\032\n\026POLARITY_WEIGHTED_SIGN\020\003\022\""
525 "\n\036POLARITY_REVERSE_WEIGHTED_SIGN\020\004\"V\n\035Co"
526 "nflictMinimizationAlgorithm\022\010\n\004NONE\020\000\022\n\n"
527 "\006SIMPLE\020\001\022\r\n\tRECURSIVE\020\002\022\020\n\014EXPERIMENTAL"
528 "\020\003\"\340\001\n\031BinaryMinizationAlgorithm\022\032\n\026NO_B"
529 "INARY_MINIMIZATION\020\000\022\035\n\031BINARY_MINIMIZAT"
530 "ION_FIRST\020\001\0227\n3BINARY_MINIMIZATION_FIRST"
531 "_WITH_TRANSITIVE_REDUCTION\020\004\022)\n%BINARY_M"
532 "INIMIZATION_WITH_REACHABILITY\020\002\022$\n EXPER"
533 "IMENTAL_BINARY_MINIMIZATION\020\003\"R\n\020ClauseP"
534 "rotection\022\023\n\017PROTECTION_NONE\020\000\022\025\n\021PROTEC"
535 "TION_ALWAYS\020\001\022\022\n\016PROTECTION_LBD\020\002\"5\n\016Cla"
536 "useOrdering\022\023\n\017CLAUSE_ACTIVITY\020\000\022\016\n\nCLAU"
537 "SE_LBD\020\001\"\206\001\n\020RestartAlgorithm\022\016\n\nNO_REST"
538 "ART\020\000\022\020\n\014LUBY_RESTART\020\001\022\035\n\031DL_MOVING_AVE"
539 "RAGE_RESTART\020\002\022\036\n\032LBD_MOVING_AVERAGE_RES"
540 "TART\020\003\022\021\n\rFIXED_RESTART\020\004\"t\n\025MaxSatAssum"
541 "ptionOrder\022\034\n\030DEFAULT_ASSUMPTION_ORDER\020\000"
542 "\022\035\n\031ORDER_ASSUMPTION_BY_DEPTH\020\001\022\036\n\032ORDER"
543 "_ASSUMPTION_BY_WEIGHT\020\002\"o\n\035MaxSatStratif"
544 "icationAlgorithm\022\027\n\023STRATIFICATION_NONE\020"
545 "\000\022\032\n\026STRATIFICATION_DESCENT\020\001\022\031\n\025STRATIF"
546 "ICATION_ASCENT\020\002\"\260\001\n\017SearchBranching\022\024\n\020"
547 "AUTOMATIC_SEARCH\020\000\022\020\n\014FIXED_SEARCH\020\001\022\024\n\020"
548 "PORTFOLIO_SEARCH\020\002\022\r\n\tLP_SEARCH\020\003\022\026\n\022PSE"
549 "UDO_COST_SEARCH\020\004\022\'\n#PORTFOLIO_WITH_QUIC"
550 "K_RESTART_SEARCH\020\005\022\017\n\013HINT_SEARCH\020\006\"h\n\020F"
551 "PRoundingMethod\022\023\n\017NEAREST_INTEGER\020\000\022\016\n\n"
552 "LOCK_BASED\020\001\022\025\n\021ACTIVE_LOCK_BASED\020\003\022\030\n\024P"
553 "ROPAGATION_ASSISTED\020\002B\032\n\026com.google.orto"
563 false,
false, descriptor_table_protodef_ortools_2fsat_2fsat_5fparameters_2eproto,
"ortools/sat/sat_parameters.proto", 8049,
588 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
594 constexpr
int SatParameters::VariableOrder_ARRAYSIZE;
595 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
613 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
621 constexpr
int SatParameters::Polarity_ARRAYSIZE;
622 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
639 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
646 constexpr
int SatParameters::ConflictMinimizationAlgorithm_ARRAYSIZE;
647 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
665 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
673 constexpr
int SatParameters::BinaryMinizationAlgorithm_ARRAYSIZE;
674 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
690 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
696 constexpr
int SatParameters::ClauseProtection_ARRAYSIZE;
697 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
712 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
717 constexpr
int SatParameters::ClauseOrdering_ARRAYSIZE;
718 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
736 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
744 constexpr
int SatParameters::RestartAlgorithm_ARRAYSIZE;
745 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
761 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
767 constexpr
int SatParameters::MaxSatAssumptionOrder_ARRAYSIZE;
768 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
784 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
790 constexpr
int SatParameters::MaxSatStratificationAlgorithm_ARRAYSIZE;
791 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
811 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
821 constexpr
int SatParameters::SearchBranching_ARRAYSIZE;
822 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
839 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
846 constexpr
int SatParameters::FPRoundingMethod_ARRAYSIZE;
847 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
851 void SatParameters::InitAsDefaultInstance() {
855 using HasBits = decltype(std::declval<SatParameters>()._has_bits_);
857 (*has_bits)[0] |= 2u;
860 (*has_bits)[1] |= 32768u;
863 (*has_bits)[2] |= 1u;
866 (*has_bits)[4] |= 32768u;
869 (*has_bits)[0] |= 16u;
872 (*has_bits)[0] |= 8u;
875 (*has_bits)[0] |= 128u;
878 (*has_bits)[0] |= 8192u;
881 (*has_bits)[0] |= 256u;
884 (*has_bits)[1] |= 65536u;
887 (*has_bits)[1] |= 268435456u;
890 (*has_bits)[2] |= 2u;
893 (*has_bits)[1] |= 131072u;
896 (*has_bits)[1] |= 262144u;
899 (*has_bits)[0] |= 32u;
902 (*has_bits)[2] |= 1024u;
905 (*has_bits)[0] |= 64u;
908 (*has_bits)[2] |= 16u;
911 (*has_bits)[2] |= 32u;
914 (*has_bits)[2] |= 268435456u;
917 (*has_bits)[2] |= 536870912u;
920 (*has_bits)[1] |= 524288u;
923 (*has_bits)[1] |= 1048576u;
926 (*has_bits)[1] |= 8388608u;
929 (*has_bits)[1] |= 16777216u;
932 (*has_bits)[1] |= 33554432u;
935 (*has_bits)[1] |= 2097152u;
938 (*has_bits)[1] |= 4194304u;
941 (*has_bits)[0] |= 1u;
944 (*has_bits)[1] |= 67108864u;
947 (*has_bits)[2] |= 4096u;
950 (*has_bits)[2] |= 2048u;
953 (*has_bits)[2] |= 65536u;
956 (*has_bits)[0] |= 512u;
959 (*has_bits)[2] |= 8192u;
962 (*has_bits)[2] |= 16384u;
965 (*has_bits)[0] |= 2048u;
968 (*has_bits)[0] |= 4096u;
971 (*has_bits)[1] |= 536870912u;
974 (*has_bits)[2] |= 32768u;
977 (*has_bits)[1] |= 1073741824u;
980 (*has_bits)[1] |= 2147483648u;
983 (*has_bits)[1] |= 8192u;
986 (*has_bits)[1] |= 16384u;
989 (*has_bits)[2] |= 4u;
992 (*has_bits)[1] |= 134217728u;
995 (*has_bits)[0] |= 1024u;
998 (*has_bits)[0] |= 8388608u;
1001 (*has_bits)[0] |= 16777216u;
1004 (*has_bits)[2] |= 8u;
1007 (*has_bits)[2] |= 128u;
1010 (*has_bits)[2] |= 512u;
1013 (*has_bits)[2] |= 256u;
1016 (*has_bits)[2] |= 4194304u;
1019 (*has_bits)[2] |= 8388608u;
1022 (*has_bits)[2] |= 131072u;
1025 (*has_bits)[4] |= 2u;
1028 (*has_bits)[2] |= 16777216u;
1031 (*has_bits)[0] |= 33554432u;
1034 (*has_bits)[1] |= 4096u;
1037 (*has_bits)[3] |= 32u;
1040 (*has_bits)[2] |= 33554432u;
1043 (*has_bits)[0] |= 67108864u;
1046 (*has_bits)[3] |= 65536u;
1049 (*has_bits)[3] |= 131072u;
1052 (*has_bits)[3] |= 262144u;
1055 (*has_bits)[4] |= 4u;
1058 (*has_bits)[4] |= 8u;
1061 (*has_bits)[4] |= 16u;
1064 (*has_bits)[3] |= 524288u;
1067 (*has_bits)[2] |= 262144u;
1070 (*has_bits)[2] |= 524288u;
1073 (*has_bits)[2] |= 1048576u;
1076 (*has_bits)[0] |= 4u;
1079 (*has_bits)[0] |= 16384u;
1082 (*has_bits)[2] |= 64u;
1085 (*has_bits)[2] |= 2097152u;
1088 (*has_bits)[0] |= 32768u;
1091 (*has_bits)[0] |= 65536u;
1094 (*has_bits)[3] |= 2048u;
1097 (*has_bits)[2] |= 67108864u;
1100 (*has_bits)[3] |= 1u;
1103 (*has_bits)[2] |= 134217728u;
1106 (*has_bits)[0] |= 131072u;
1109 (*has_bits)[1] |= 128u;
1112 (*has_bits)[3] |= 4096u;
1115 (*has_bits)[3] |= 8192u;
1118 (*has_bits)[4] |= 32u;
1121 (*has_bits)[3] |= 16384u;
1124 (*has_bits)[3] |= 32768u;
1127 (*has_bits)[3] |= 128u;
1130 (*has_bits)[3] |= 64u;
1133 (*has_bits)[4] |= 2048u;
1136 (*has_bits)[3] |= 1048576u;
1139 (*has_bits)[4] |= 1024u;
1142 (*has_bits)[4] |= 8192u;
1145 (*has_bits)[4] |= 4096u;
1148 (*has_bits)[3] |= 2097152u;
1151 (*has_bits)[0] |= 262144u;
1154 (*has_bits)[4] |= 512u;
1157 (*has_bits)[1] |= 256u;
1160 (*has_bits)[3] |= 256u;
1163 (*has_bits)[3] |= 512u;
1166 (*has_bits)[1] |= 512u;
1169 (*has_bits)[1] |= 1024u;
1172 (*has_bits)[3] |= 1024u;
1175 (*has_bits)[1] |= 2048u;
1178 (*has_bits)[3] |= 4194304u;
1181 (*has_bits)[0] |= 524288u;
1184 (*has_bits)[2] |= 1073741824u;
1187 (*has_bits)[0] |= 1048576u;
1190 (*has_bits)[0] |= 2097152u;
1193 (*has_bits)[0] |= 4194304u;
1196 (*has_bits)[3] |= 2u;
1199 (*has_bits)[3] |= 4u;
1202 (*has_bits)[1] |= 8u;
1205 (*has_bits)[1] |= 16u;
1208 (*has_bits)[2] |= 2147483648u;
1211 (*has_bits)[1] |= 32u;
1214 (*has_bits)[4] |= 1u;
1217 (*has_bits)[1] |= 64u;
1220 (*has_bits)[3] |= 8u;
1223 (*has_bits)[3] |= 16u;
1226 (*has_bits)[0] |= 268435456u;
1229 (*has_bits)[0] |= 536870912u;
1232 (*has_bits)[3] |= 134217728u;
1235 (*has_bits)[3] |= 268435456u;
1238 (*has_bits)[4] |= 16384u;
1241 (*has_bits)[0] |= 1073741824u;
1244 (*has_bits)[0] |= 2147483648u;
1247 (*has_bits)[1] |= 1u;
1250 (*has_bits)[0] |= 134217728u;
1253 (*has_bits)[3] |= 536870912u;
1256 (*has_bits)[3] |= 1073741824u;
1259 (*has_bits)[1] |= 2u;
1262 (*has_bits)[1] |= 4u;
1265 (*has_bits)[4] |= 64u;
1268 (*has_bits)[4] |= 128u;
1271 (*has_bits)[3] |= 8388608u;
1274 (*has_bits)[3] |= 16777216u;
1277 (*has_bits)[4] |= 256u;
1280 (*has_bits)[3] |= 33554432u;
1283 (*has_bits)[3] |= 67108864u;
1286 (*has_bits)[3] |= 2147483648u;
1290 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_;
1291 SatParameters::SatParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1292 : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1293 restart_algorithms_(arena) {
1295 RegisterArenaDtor(arena);
1298 SatParameters::SatParameters(
const SatParameters& from)
1299 : ::PROTOBUF_NAMESPACE_ID::Message(),
1300 _has_bits_(from._has_bits_),
1301 restart_algorithms_(from.restart_algorithms_) {
1302 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1303 default_restart_algorithms_.UnsafeSetDefault(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get());
1304 if (from._internal_has_default_restart_algorithms()) {
1305 default_restart_algorithms_.Set(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get(), from._internal_default_restart_algorithms(),
1308 ::memcpy(&preferred_variable_order_, &from.preferred_variable_order_,
1309 static_cast<size_t>(
reinterpret_cast<char*
>(&polarity_rephase_increment_) -
1310 reinterpret_cast<char*
>(&preferred_variable_order_)) +
sizeof(polarity_rephase_increment_));
1314 void SatParameters::SharedCtor() {
1316 default_restart_algorithms_.UnsafeSetDefault(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get());
1317 ::memset(&preferred_variable_order_, 0,
static_cast<size_t>(
1318 reinterpret_cast<char*
>(&relative_gap_limit_) -
1319 reinterpret_cast<char*
>(&preferred_variable_order_)) +
sizeof(relative_gap_limit_));
1320 initial_polarity_ = 1;
1321 minimization_algorithm_ = 2;
1322 clause_cleanup_period_ = 10000;
1323 clause_cleanup_target_ = 10000;
1324 variable_activity_decay_ = 0.8;
1325 max_variable_activity_value_ = 1e+100;
1326 clause_activity_decay_ = 0.999;
1327 max_clause_activity_value_ = 1e+20;
1328 glucose_max_decay_ = 0.95;
1329 glucose_decay_increment_ = 0.01;
1330 glucose_decay_increment_period_ = 5000;
1331 restart_period_ = 50;
1333 binary_minimization_algorithm_ = 1;
1334 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
1335 max_number_of_conflicts_ = PROTOBUF_LONGLONG(9223372036854775807);
1336 max_memory_in_mb_ = PROTOBUF_LONGLONG(10000);
1337 use_phase_saving_ =
true;
1338 subsumption_during_conflict_analysis_ =
true;
1339 treat_binary_clauses_separately_ =
true;
1340 count_assumption_levels_in_lbd_ =
true;
1341 pb_cleanup_increment_ = 200;
1342 pb_cleanup_ratio_ = 0.5;
1343 max_sat_stratification_ = 1;
1344 presolve_bve_threshold_ = 500;
1345 presolve_probing_deterministic_time_limit_ = 30;
1346 presolve_bve_clause_weight_ = 3;
1347 clause_cleanup_lbd_bound_ = 5;
1348 restart_dl_average_ratio_ = 1;
1349 restart_running_window_size_ = 50;
1350 blocking_restart_window_size_ = 5000;
1351 blocking_restart_multiplier_ = 1.4;
1352 max_deterministic_time_ = std::numeric_limits<double>::infinity();
1353 restart_lbd_average_ratio_ = 1;
1354 presolve_bva_threshold_ = 1;
1355 minimize_core_ =
true;
1356 find_multiple_cores_ =
true;
1357 cover_optimization_ =
true;
1358 use_precedences_in_disjunctive_constraint_ =
true;
1359 presolve_blocked_clause_ =
true;
1360 presolve_use_bva_ =
true;
1361 cp_model_presolve_ =
true;
1362 cp_model_use_sat_presolve_ =
true;
1363 linearization_level_ = 1;
1364 max_num_cuts_ = 10000;
1365 minimize_with_propagation_restart_period_ = 10;
1366 minimize_with_propagation_num_decisions_ = 1000;
1367 binary_search_num_conflicts_ = -1;
1368 num_search_workers_ = 1;
1369 boolean_encoding_level_ = 1;
1370 instantiate_all_variables_ =
true;
1371 auto_detect_greater_than_at_least_one_of_ =
true;
1372 share_objective_bounds_ =
true;
1373 share_level_zero_bounds_ =
true;
1374 cp_model_probing_level_ = 2;
1375 min_orthogonality_for_lp_constraints_ = 0.05;
1376 add_lp_constraints_lazily_ =
true;
1377 exploit_integer_lp_solution_ =
true;
1378 exploit_all_lp_solution_ =
true;
1379 exploit_objective_ =
true;
1380 use_disjunctive_constraint_in_cumulative_constraint_ =
true;
1381 add_cg_cuts_ =
true;
1382 add_mir_cuts_ =
true;
1383 add_lin_max_cuts_ =
true;
1384 max_integer_rounding_scaling_ = 600;
1385 expand_element_constraints_ =
true;
1386 expand_automaton_constraints_ =
true;
1387 expand_table_constraints_ =
true;
1388 use_optimization_hints_ =
true;
1389 max_consecutive_inactive_count_ = 100;
1390 new_constraints_batch_size_ = 50;
1391 pseudo_cost_reliability_threshold_ = PROTOBUF_LONGLONG(100);
1392 mip_max_bound_ = 10000000;
1393 mip_var_scaling_ = 1;
1394 mip_wanted_precision_ = 1e-06;
1395 mip_max_activity_exponent_ = 53;
1396 use_rins_lns_ =
true;
1397 use_feasibility_pump_ =
true;
1398 use_optional_variables_ =
true;
1399 use_exact_lp_reason_ =
true;
1400 mip_check_precision_ = 0.0001;
1401 interleave_batch_size_ = 1;
1402 max_presolve_iterations_ = 3;
1403 merge_no_overlap_work_limit_ = 1000000000000;
1404 merge_at_most_one_work_limit_ = 100000000;
1405 presolve_substitution_level_ = 1;
1406 max_all_diff_cut_size_ = 7;
1407 catch_sigint_signal_ =
true;
1408 use_implied_bounds_ =
true;
1409 mip_automatically_scale_variables_ =
true;
1410 hint_conflict_limit_ = 10;
1411 cut_max_active_count_value_ = 10000000000;
1412 max_cut_rounds_at_level_zero_ = 1;
1413 cut_cleanup_target_ = 1000;
1414 cut_active_count_decay_ = 0.8;
1416 polarity_rephase_increment_ = 1000;
1419 SatParameters::~SatParameters() {
1422 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1425 void SatParameters::SharedDtor() {
1426 GOOGLE_DCHECK(GetArena() ==
nullptr);
1427 default_restart_algorithms_.DestroyNoArena(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get());
1430 void SatParameters::ArenaDtor(
void*
object) {
1431 SatParameters* _this =
reinterpret_cast< SatParameters*
>(object);
1434 void SatParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1436 void SatParameters::SetCachedSize(
int size)
const {
1437 _cached_size_.Set(size);
1439 const SatParameters& SatParameters::default_instance() {
1441 return *internal_default_instance();
1445 void SatParameters::Clear() {
1449 (void) cached_has_bits;
1451 restart_algorithms_.Clear();
1452 cached_has_bits = _has_bits_[0];
1453 if (cached_has_bits & 0x00000001u) {
1454 default_restart_algorithms_.ClearToDefault(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get(), GetArena());
1456 if (cached_has_bits & 0x000000feu) {
1457 ::memset(&preferred_variable_order_, 0,
static_cast<size_t>(
1458 reinterpret_cast<char*
>(&use_erwa_heuristic_) -
1459 reinterpret_cast<char*
>(&preferred_variable_order_)) +
sizeof(use_erwa_heuristic_));
1461 if (cached_has_bits & 0x0000ff00u) {
1462 ::memset(&also_bump_variables_in_conflict_reasons_, 0,
static_cast<size_t>(
1463 reinterpret_cast<char*
>(&use_overload_checker_in_cumulative_constraint_) -
1464 reinterpret_cast<char*
>(&also_bump_variables_in_conflict_reasons_)) +
sizeof(use_overload_checker_in_cumulative_constraint_));
1466 if (cached_has_bits & 0x00ff0000u) {
1467 ::memset(&use_timetable_edge_finding_in_cumulative_constraint_, 0,
static_cast<size_t>(
1468 reinterpret_cast<char*
>(&use_pb_resolution_) -
1469 reinterpret_cast<char*
>(&use_timetable_edge_finding_in_cumulative_constraint_)) +
sizeof(use_pb_resolution_));
1471 if (cached_has_bits & 0xff000000u) {
1472 ::memset(&minimize_reduction_during_pb_resolution_, 0,
static_cast<size_t>(
1473 reinterpret_cast<char*
>(&diversify_lns_params_) -
1474 reinterpret_cast<char*
>(&minimize_reduction_during_pb_resolution_)) +
sizeof(diversify_lns_params_));
1476 cached_has_bits = _has_bits_[1];
1477 if (cached_has_bits & 0x000000ffu) {
1478 ::memset(&randomize_search_, 0,
static_cast<size_t>(
1479 reinterpret_cast<char*
>(&add_knapsack_cuts_) -
1480 reinterpret_cast<char*
>(&randomize_search_)) +
sizeof(add_knapsack_cuts_));
1482 if (cached_has_bits & 0x0000ff00u) {
1483 ::memset(&repair_hint_, 0,
static_cast<size_t>(
1484 reinterpret_cast<char*
>(&relative_gap_limit_) -
1485 reinterpret_cast<char*
>(&repair_hint_)) +
sizeof(relative_gap_limit_));
1486 initial_polarity_ = 1;
1488 if (cached_has_bits & 0x00ff0000u) {
1489 minimization_algorithm_ = 2;
1490 clause_cleanup_period_ = 10000;
1491 clause_cleanup_target_ = 10000;
1492 variable_activity_decay_ = 0.8;
1493 max_variable_activity_value_ = 1e+100;
1494 clause_activity_decay_ = 0.999;
1495 max_clause_activity_value_ = 1e+20;
1496 glucose_max_decay_ = 0.95;
1498 if (cached_has_bits & 0xff000000u) {
1499 glucose_decay_increment_ = 0.01;
1500 glucose_decay_increment_period_ = 5000;
1501 restart_period_ = 50;
1503 binary_minimization_algorithm_ = 1;
1504 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
1505 max_number_of_conflicts_ = PROTOBUF_LONGLONG(9223372036854775807);
1506 max_memory_in_mb_ = PROTOBUF_LONGLONG(10000);
1508 cached_has_bits = _has_bits_[2];
1509 if (cached_has_bits & 0x000000ffu) {
1510 use_phase_saving_ =
true;
1511 subsumption_during_conflict_analysis_ =
true;
1512 treat_binary_clauses_separately_ =
true;
1513 count_assumption_levels_in_lbd_ =
true;
1514 pb_cleanup_increment_ = 200;
1515 pb_cleanup_ratio_ = 0.5;
1516 max_sat_stratification_ = 1;
1517 presolve_bve_threshold_ = 500;
1519 if (cached_has_bits & 0x0000ff00u) {
1520 presolve_probing_deterministic_time_limit_ = 30;
1521 presolve_bve_clause_weight_ = 3;
1522 clause_cleanup_lbd_bound_ = 5;
1523 restart_dl_average_ratio_ = 1;
1524 restart_running_window_size_ = 50;
1525 blocking_restart_window_size_ = 5000;
1526 blocking_restart_multiplier_ = 1.4;
1527 max_deterministic_time_ = std::numeric_limits<double>::infinity();
1529 if (cached_has_bits & 0x00ff0000u) {
1530 restart_lbd_average_ratio_ = 1;
1531 presolve_bva_threshold_ = 1;
1532 minimize_core_ =
true;
1533 find_multiple_cores_ =
true;
1534 cover_optimization_ =
true;
1535 use_precedences_in_disjunctive_constraint_ =
true;
1536 presolve_blocked_clause_ =
true;
1537 presolve_use_bva_ =
true;
1539 if (cached_has_bits & 0xff000000u) {
1540 cp_model_presolve_ =
true;
1541 cp_model_use_sat_presolve_ =
true;
1542 linearization_level_ = 1;
1543 max_num_cuts_ = 10000;
1544 minimize_with_propagation_restart_period_ = 10;
1545 minimize_with_propagation_num_decisions_ = 1000;
1546 binary_search_num_conflicts_ = -1;
1547 num_search_workers_ = 1;
1549 cached_has_bits = _has_bits_[3];
1550 if (cached_has_bits & 0x000000ffu) {
1551 boolean_encoding_level_ = 1;
1552 instantiate_all_variables_ =
true;
1553 auto_detect_greater_than_at_least_one_of_ =
true;
1554 share_objective_bounds_ =
true;
1555 share_level_zero_bounds_ =
true;
1556 cp_model_probing_level_ = 2;
1557 min_orthogonality_for_lp_constraints_ = 0.05;
1558 add_lp_constraints_lazily_ =
true;
1560 if (cached_has_bits & 0x0000ff00u) {
1561 exploit_integer_lp_solution_ =
true;
1562 exploit_all_lp_solution_ =
true;
1563 exploit_objective_ =
true;
1564 use_disjunctive_constraint_in_cumulative_constraint_ =
true;
1565 add_cg_cuts_ =
true;
1566 add_mir_cuts_ =
true;
1567 add_lin_max_cuts_ =
true;
1568 max_integer_rounding_scaling_ = 600;
1570 if (cached_has_bits & 0x00ff0000u) {
1571 expand_element_constraints_ =
true;
1572 expand_automaton_constraints_ =
true;
1573 expand_table_constraints_ =
true;
1574 use_optimization_hints_ =
true;
1575 max_consecutive_inactive_count_ = 100;
1576 new_constraints_batch_size_ = 50;
1577 pseudo_cost_reliability_threshold_ = PROTOBUF_LONGLONG(100);
1578 mip_max_bound_ = 10000000;
1580 if (cached_has_bits & 0xff000000u) {
1581 mip_var_scaling_ = 1;
1582 mip_wanted_precision_ = 1e-06;
1583 mip_max_activity_exponent_ = 53;
1584 use_rins_lns_ =
true;
1585 use_feasibility_pump_ =
true;
1586 use_optional_variables_ =
true;
1587 use_exact_lp_reason_ =
true;
1588 mip_check_precision_ = 0.0001;
1590 cached_has_bits = _has_bits_[4];
1591 if (cached_has_bits & 0x000000ffu) {
1592 interleave_batch_size_ = 1;
1593 max_presolve_iterations_ = 3;
1594 merge_no_overlap_work_limit_ = 1000000000000;
1595 merge_at_most_one_work_limit_ = 100000000;
1596 presolve_substitution_level_ = 1;
1597 max_all_diff_cut_size_ = 7;
1598 catch_sigint_signal_ =
true;
1599 use_implied_bounds_ =
true;
1601 if (cached_has_bits & 0x0000ff00u) {
1602 mip_automatically_scale_variables_ =
true;
1603 hint_conflict_limit_ = 10;
1604 cut_max_active_count_value_ = 10000000000;
1605 max_cut_rounds_at_level_zero_ = 1;
1606 cut_cleanup_target_ = 1000;
1607 cut_active_count_decay_ = 0.8;
1609 polarity_rephase_increment_ = 1000;
1612 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1615 const char* SatParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1616 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1617 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
1618 while (!ctx->Done(&ptr)) {
1620 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1631 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
1633 }
else goto handle_unusual;
1643 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(2, val, mutable_unknown_fields());
1645 }
else goto handle_unusual;
1655 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(4, val, mutable_unknown_fields());
1657 }
else goto handle_unusual;
1663 clause_cleanup_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1665 }
else goto handle_unusual;
1671 clause_cleanup_target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1673 }
else goto handle_unusual;
1679 variable_activity_decay_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1680 ptr +=
sizeof(double);
1681 }
else goto handle_unusual;
1687 max_variable_activity_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1688 ptr +=
sizeof(double);
1689 }
else goto handle_unusual;
1695 clause_activity_decay_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1696 ptr +=
sizeof(double);
1697 }
else goto handle_unusual;
1703 max_clause_activity_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1704 ptr +=
sizeof(double);
1705 }
else goto handle_unusual;
1711 glucose_max_decay_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1712 ptr +=
sizeof(double);
1713 }
else goto handle_unusual;
1719 glucose_decay_increment_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1720 ptr +=
sizeof(double);
1721 }
else goto handle_unusual;
1727 glucose_decay_increment_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1729 }
else goto handle_unusual;
1735 restart_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1737 }
else goto handle_unusual;
1743 random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1745 }
else goto handle_unusual;
1751 random_branches_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1752 ptr +=
sizeof(double);
1753 }
else goto handle_unusual;
1759 treat_binary_clauses_separately_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1761 }
else goto handle_unusual;
1771 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(34, val, mutable_unknown_fields());
1773 }
else goto handle_unusual;
1779 use_optimization_hints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1781 }
else goto handle_unusual;
1787 max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1788 ptr +=
sizeof(double);
1789 }
else goto handle_unusual;
1795 max_number_of_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1797 }
else goto handle_unusual;
1803 max_memory_in_mb_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1805 }
else goto handle_unusual;
1811 log_search_progress_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1813 }
else goto handle_unusual;
1819 use_pb_resolution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1821 }
else goto handle_unusual;
1827 use_phase_saving_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1829 }
else goto handle_unusual;
1835 random_polarity_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1836 ptr +=
sizeof(double);
1837 }
else goto handle_unusual;
1843 pb_cleanup_increment_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1845 }
else goto handle_unusual;
1851 pb_cleanup_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1852 ptr +=
sizeof(double);
1853 }
else goto handle_unusual;
1859 minimize_reduction_during_pb_resolution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1861 }
else goto handle_unusual;
1867 count_assumption_levels_in_lbd_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1869 }
else goto handle_unusual;
1875 minimize_core_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1877 }
else goto handle_unusual;
1887 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(51, val, mutable_unknown_fields());
1889 }
else goto handle_unusual;
1895 max_sat_reverse_assumption_order_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1897 }
else goto handle_unusual;
1907 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(53, val, mutable_unknown_fields());
1909 }
else goto handle_unusual;
1915 presolve_bve_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1917 }
else goto handle_unusual;
1923 presolve_bve_clause_weight_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1925 }
else goto handle_unusual;
1931 subsumption_during_conflict_analysis_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1933 }
else goto handle_unusual;
1939 presolve_probing_deterministic_time_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1940 ptr +=
sizeof(double);
1941 }
else goto handle_unusual;
1951 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(58, val, mutable_unknown_fields());
1953 }
else goto handle_unusual;
1959 clause_cleanup_lbd_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1961 }
else goto handle_unusual;
1971 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(60, val, mutable_unknown_fields());
1973 }
else goto handle_unusual;
1986 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(61, val, mutable_unknown_fields());
1988 if (!ctx->DataAvailable(ptr))
break;
1989 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<488>(ptr));
1993 }
else goto handle_unusual;
1999 restart_running_window_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2001 }
else goto handle_unusual;
2007 restart_dl_average_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2008 ptr +=
sizeof(double);
2009 }
else goto handle_unusual;
2015 use_blocking_restart_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2017 }
else goto handle_unusual;
2023 blocking_restart_window_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2025 }
else goto handle_unusual;
2031 blocking_restart_multiplier_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2032 ptr +=
sizeof(double);
2033 }
else goto handle_unusual;
2039 max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2040 ptr +=
sizeof(double);
2041 }
else goto handle_unusual;
2047 num_conflicts_before_strategy_changes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2049 }
else goto handle_unusual;
2055 strategy_change_increase_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2056 ptr +=
sizeof(double);
2057 }
else goto handle_unusual;
2062 auto str = _internal_mutable_default_restart_algorithms();
2063 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
2065 ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.sat.SatParameters.default_restart_algorithms");
2068 }
else goto handle_unusual;
2074 restart_lbd_average_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2075 ptr +=
sizeof(double);
2076 }
else goto handle_unusual;
2082 presolve_use_bva_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2084 }
else goto handle_unusual;
2090 presolve_bva_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2092 }
else goto handle_unusual;
2098 use_precedences_in_disjunctive_constraint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2100 }
else goto handle_unusual;
2106 use_erwa_heuristic_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2108 }
else goto handle_unusual;
2114 initial_variables_activity_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2115 ptr +=
sizeof(double);
2116 }
else goto handle_unusual;
2122 also_bump_variables_in_conflict_reasons_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2124 }
else goto handle_unusual;
2130 use_overload_checker_in_cumulative_constraint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2132 }
else goto handle_unusual;
2138 use_timetable_edge_finding_in_cumulative_constraint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2140 }
else goto handle_unusual;
2146 use_disjunctive_constraint_in_cumulative_constraint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2148 }
else goto handle_unusual;
2158 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(82, val, mutable_unknown_fields());
2160 }
else goto handle_unusual;
2166 optimize_with_core_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2168 }
else goto handle_unusual;
2174 find_multiple_cores_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2176 }
else goto handle_unusual;
2182 optimize_with_max_hs_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2184 }
else goto handle_unusual;
2190 cp_model_presolve_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2192 }
else goto handle_unusual;
2198 enumerate_all_solutions_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2200 }
else goto handle_unusual;
2206 presolve_blocked_clause_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2208 }
else goto handle_unusual;
2214 cover_optimization_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2216 }
else goto handle_unusual;
2222 linearization_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2224 }
else goto handle_unusual;
2230 max_num_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2232 }
else goto handle_unusual;
2238 only_add_cuts_at_level_zero_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2240 }
else goto handle_unusual;
2246 cp_model_use_sat_presolve_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2248 }
else goto handle_unusual;
2254 exploit_integer_lp_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2256 }
else goto handle_unusual;
2262 auto_detect_greater_than_at_least_one_of_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2264 }
else goto handle_unusual;
2270 minimize_with_propagation_restart_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2272 }
else goto handle_unusual;
2278 minimize_with_propagation_num_decisions_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2280 }
else goto handle_unusual;
2286 stop_after_first_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2288 }
else goto handle_unusual;
2294 binary_search_num_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2296 }
else goto handle_unusual;
2302 num_search_workers_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2304 }
else goto handle_unusual;
2310 use_lns_only_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2312 }
else goto handle_unusual;
2318 randomize_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2320 }
else goto handle_unusual;
2326 search_randomization_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2328 }
else goto handle_unusual;
2334 lns_focus_on_decision_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2336 }
else goto handle_unusual;
2342 instantiate_all_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2344 }
else goto handle_unusual;
2350 boolean_encoding_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2352 }
else goto handle_unusual;
2358 use_optional_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2360 }
else goto handle_unusual;
2366 use_exact_lp_reason_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2368 }
else goto handle_unusual;
2374 cp_model_probing_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2376 }
else goto handle_unusual;
2382 add_knapsack_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2384 }
else goto handle_unusual;
2390 add_lp_constraints_lazily_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2392 }
else goto handle_unusual;
2398 share_objective_bounds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2400 }
else goto handle_unusual;
2406 share_level_zero_bounds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2408 }
else goto handle_unusual;
2414 min_orthogonality_for_lp_constraints_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2415 ptr +=
sizeof(double);
2416 }
else goto handle_unusual;
2422 exploit_all_lp_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2424 }
else goto handle_unusual;
2430 add_cg_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2432 }
else goto handle_unusual;
2438 max_integer_rounding_scaling_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2440 }
else goto handle_unusual;
2446 add_mir_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2448 }
else goto handle_unusual;
2454 max_consecutive_inactive_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2456 }
else goto handle_unusual;
2462 new_constraints_batch_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2464 }
else goto handle_unusual;
2470 pseudo_cost_reliability_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2472 }
else goto handle_unusual;
2478 mip_max_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2479 ptr +=
sizeof(double);
2480 }
else goto handle_unusual;
2486 mip_var_scaling_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2487 ptr +=
sizeof(double);
2488 }
else goto handle_unusual;
2494 mip_wanted_precision_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2495 ptr +=
sizeof(double);
2496 }
else goto handle_unusual;
2502 mip_max_activity_exponent_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2504 }
else goto handle_unusual;
2510 mip_check_precision_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2511 ptr +=
sizeof(double);
2512 }
else goto handle_unusual;
2518 use_rins_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2520 }
else goto handle_unusual;
2526 exploit_best_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2528 }
else goto handle_unusual;
2534 exploit_objective_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2536 }
else goto handle_unusual;
2542 fill_tightened_domains_in_response_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2544 }
else goto handle_unusual;
2550 use_combined_no_overlap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2552 }
else goto handle_unusual;
2558 interleave_batch_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2560 }
else goto handle_unusual;
2566 catch_sigint_signal_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2568 }
else goto handle_unusual;
2574 interleave_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2576 }
else goto handle_unusual;
2582 diversify_lns_params_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2584 }
else goto handle_unusual;
2590 max_presolve_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2592 }
else goto handle_unusual;
2598 use_branching_in_lp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2600 }
else goto handle_unusual;
2606 expand_element_constraints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2608 }
else goto handle_unusual;
2614 reduce_memory_usage_in_interleave_mode_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2616 }
else goto handle_unusual;
2622 probing_period_at_root_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2624 }
else goto handle_unusual;
2630 expand_automaton_constraints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2632 }
else goto handle_unusual;
2638 use_implied_bounds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2640 }
else goto handle_unusual;
2646 merge_no_overlap_work_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2647 ptr +=
sizeof(double);
2648 }
else goto handle_unusual;
2654 merge_at_most_one_work_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2655 ptr +=
sizeof(double);
2656 }
else goto handle_unusual;
2662 presolve_substitution_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2664 }
else goto handle_unusual;
2670 max_all_diff_cut_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2672 }
else goto handle_unusual;
2678 stop_after_presolve_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2680 }
else goto handle_unusual;
2686 use_relaxation_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2688 }
else goto handle_unusual;
2694 cp_model_max_num_presolve_operations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2696 }
else goto handle_unusual;
2702 add_lin_max_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2704 }
else goto handle_unusual;
2710 hint_conflict_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2712 }
else goto handle_unusual;
2718 max_cut_rounds_at_level_zero_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2720 }
else goto handle_unusual;
2726 cut_max_active_count_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2727 ptr +=
sizeof(double);
2728 }
else goto handle_unusual;
2734 cut_active_count_decay_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2735 ptr +=
sizeof(double);
2736 }
else goto handle_unusual;
2742 cut_cleanup_target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2744 }
else goto handle_unusual;
2750 expand_table_constraints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2752 }
else goto handle_unusual;
2758 absolute_gap_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2759 ptr +=
sizeof(double);
2760 }
else goto handle_unusual;
2766 relative_gap_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2767 ptr +=
sizeof(double);
2768 }
else goto handle_unusual;
2774 exploit_relaxation_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2776 }
else goto handle_unusual;
2782 cp_model_postsolve_with_full_solver_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2784 }
else goto handle_unusual;
2790 use_sat_inprocessing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2792 }
else goto handle_unusual;
2798 use_feasibility_pump_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2800 }
else goto handle_unusual;
2810 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(165, val, mutable_unknown_fields());
2812 }
else goto handle_unusual;
2818 mip_automatically_scale_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2820 }
else goto handle_unusual;
2826 repair_hint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2828 }
else goto handle_unusual;
2834 polarity_rephase_increment_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2836 }
else goto handle_unusual;
2840 if ((tag & 7) == 4 || tag == 0) {
2841 ctx->SetLastTag(tag);
2844 ptr = UnknownFieldParse(tag,
2845 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2847 CHK_(ptr !=
nullptr);
2864 (void) cached_has_bits;
2866 cached_has_bits = _has_bits_[0];
2868 if (cached_has_bits & 0x00000002u) {
2869 target = stream->EnsureSpace(target);
2870 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2871 1, this->_internal_preferred_variable_order(), target);
2874 cached_has_bits = _has_bits_[1];
2876 if (cached_has_bits & 0x00008000u) {
2877 target = stream->EnsureSpace(target);
2878 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2879 2, this->_internal_initial_polarity(), target);
2883 if (cached_has_bits & 0x00010000u) {
2884 target = stream->EnsureSpace(target);
2885 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2886 4, this->_internal_minimization_algorithm(), target);
2890 if (cached_has_bits & 0x00020000u) {
2891 target = stream->EnsureSpace(target);
2892 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(11, this->_internal_clause_cleanup_period(), target);
2896 if (cached_has_bits & 0x00040000u) {
2897 target = stream->EnsureSpace(target);
2898 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(13, this->_internal_clause_cleanup_target(), target);
2902 if (cached_has_bits & 0x00080000u) {
2903 target = stream->EnsureSpace(target);
2904 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_variable_activity_decay(), target);
2908 if (cached_has_bits & 0x00100000u) {
2909 target = stream->EnsureSpace(target);
2910 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_max_variable_activity_value(), target);
2914 if (cached_has_bits & 0x00200000u) {
2915 target = stream->EnsureSpace(target);
2916 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(17, this->_internal_clause_activity_decay(), target);
2920 if (cached_has_bits & 0x00400000u) {
2921 target = stream->EnsureSpace(target);
2922 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(18, this->_internal_max_clause_activity_value(), target);
2926 if (cached_has_bits & 0x00800000u) {
2927 target = stream->EnsureSpace(target);
2928 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_glucose_max_decay(), target);
2932 if (cached_has_bits & 0x01000000u) {
2933 target = stream->EnsureSpace(target);
2934 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(23, this->_internal_glucose_decay_increment(), target);
2938 if (cached_has_bits & 0x02000000u) {
2939 target = stream->EnsureSpace(target);
2940 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(24, this->_internal_glucose_decay_increment_period(), target);
2944 if (cached_has_bits & 0x04000000u) {
2945 target = stream->EnsureSpace(target);
2946 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(30, this->_internal_restart_period(), target);
2950 if (cached_has_bits & 0x08000000u) {
2951 target = stream->EnsureSpace(target);
2952 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(31, this->_internal_random_seed(), target);
2955 cached_has_bits = _has_bits_[0];
2957 if (cached_has_bits & 0x00000008u) {
2958 target = stream->EnsureSpace(target);
2959 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(32, this->_internal_random_branches_ratio(), target);
2962 cached_has_bits = _has_bits_[2];
2964 if (cached_has_bits & 0x00000004u) {
2965 target = stream->EnsureSpace(target);
2966 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(33, this->_internal_treat_binary_clauses_separately(), target);
2969 cached_has_bits = _has_bits_[1];
2971 if (cached_has_bits & 0x10000000u) {
2972 target = stream->EnsureSpace(target);
2973 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2974 34, this->_internal_binary_minimization_algorithm(), target);
2977 cached_has_bits = _has_bits_[3];
2979 if (cached_has_bits & 0x00080000u) {
2980 target = stream->EnsureSpace(target);
2981 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(35, this->_internal_use_optimization_hints(), target);
2984 cached_has_bits = _has_bits_[1];
2986 if (cached_has_bits & 0x20000000u) {
2987 target = stream->EnsureSpace(target);
2988 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(36, this->_internal_max_time_in_seconds(), target);
2992 if (cached_has_bits & 0x40000000u) {
2993 target = stream->EnsureSpace(target);
2994 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(37, this->_internal_max_number_of_conflicts(), target);
2998 if (cached_has_bits & 0x80000000u) {
2999 target = stream->EnsureSpace(target);
3000 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(40, this->_internal_max_memory_in_mb(), target);
3003 cached_has_bits = _has_bits_[0];
3005 if (cached_has_bits & 0x00000400u) {
3006 target = stream->EnsureSpace(target);
3007 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(41, this->_internal_log_search_progress(), target);
3011 if (cached_has_bits & 0x00800000u) {
3012 target = stream->EnsureSpace(target);
3013 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(43, this->_internal_use_pb_resolution(), target);
3016 cached_has_bits = _has_bits_[2];
3018 if (cached_has_bits & 0x00000001u) {
3019 target = stream->EnsureSpace(target);
3020 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(44, this->_internal_use_phase_saving(), target);
3023 cached_has_bits = _has_bits_[0];
3025 if (cached_has_bits & 0x00000010u) {
3026 target = stream->EnsureSpace(target);
3027 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(45, this->_internal_random_polarity_ratio(), target);
3030 cached_has_bits = _has_bits_[2];
3032 if (cached_has_bits & 0x00000010u) {
3033 target = stream->EnsureSpace(target);
3034 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(46, this->_internal_pb_cleanup_increment(), target);
3038 if (cached_has_bits & 0x00000020u) {
3039 target = stream->EnsureSpace(target);
3040 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(47, this->_internal_pb_cleanup_ratio(), target);
3043 cached_has_bits = _has_bits_[0];
3045 if (cached_has_bits & 0x01000000u) {
3046 target = stream->EnsureSpace(target);
3047 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(48, this->_internal_minimize_reduction_during_pb_resolution(), target);
3050 cached_has_bits = _has_bits_[2];
3052 if (cached_has_bits & 0x00000008u) {
3053 target = stream->EnsureSpace(target);
3054 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(49, this->_internal_count_assumption_levels_in_lbd(), target);
3058 if (cached_has_bits & 0x00040000u) {
3059 target = stream->EnsureSpace(target);
3060 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(50, this->_internal_minimize_core(), target);
3063 cached_has_bits = _has_bits_[0];
3065 if (cached_has_bits & 0x00000004u) {
3066 target = stream->EnsureSpace(target);
3067 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3068 51, this->_internal_max_sat_assumption_order(), target);
3072 if (cached_has_bits & 0x00004000u) {
3073 target = stream->EnsureSpace(target);
3074 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(52, this->_internal_max_sat_reverse_assumption_order(), target);
3077 cached_has_bits = _has_bits_[2];
3079 if (cached_has_bits & 0x00000040u) {
3080 target = stream->EnsureSpace(target);
3081 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3082 53, this->_internal_max_sat_stratification(), target);
3086 if (cached_has_bits & 0x00000080u) {
3087 target = stream->EnsureSpace(target);
3088 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(54, this->_internal_presolve_bve_threshold(), target);
3092 if (cached_has_bits & 0x00000200u) {
3093 target = stream->EnsureSpace(target);
3094 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(55, this->_internal_presolve_bve_clause_weight(), target);
3098 if (cached_has_bits & 0x00000002u) {
3099 target = stream->EnsureSpace(target);
3100 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(56, this->_internal_subsumption_during_conflict_analysis(), target);
3104 if (cached_has_bits & 0x00000100u) {
3105 target = stream->EnsureSpace(target);
3106 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(57, this->_internal_presolve_probing_deterministic_time_limit(), target);
3109 cached_has_bits = _has_bits_[0];
3111 if (cached_has_bits & 0x00000020u) {
3112 target = stream->EnsureSpace(target);
3113 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3114 58, this->_internal_clause_cleanup_protection(), target);
3117 cached_has_bits = _has_bits_[2];
3119 if (cached_has_bits & 0x00000400u) {
3120 target = stream->EnsureSpace(target);
3121 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(59, this->_internal_clause_cleanup_lbd_bound(), target);
3124 cached_has_bits = _has_bits_[0];
3126 if (cached_has_bits & 0x00000040u) {
3127 target = stream->EnsureSpace(target);
3128 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3129 60, this->_internal_clause_cleanup_ordering(), target);
3133 for (
int i = 0, n = this->_internal_restart_algorithms_size(); i < n; i++) {
3134 target = stream->EnsureSpace(target);
3135 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3136 61, this->_internal_restart_algorithms(i), target);
3139 cached_has_bits = _has_bits_[2];
3141 if (cached_has_bits & 0x00001000u) {
3142 target = stream->EnsureSpace(target);
3143 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(62, this->_internal_restart_running_window_size(), target);
3147 if (cached_has_bits & 0x00000800u) {
3148 target = stream->EnsureSpace(target);
3149 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(63, this->_internal_restart_dl_average_ratio(), target);
3152 cached_has_bits = _has_bits_[0];
3154 if (cached_has_bits & 0x00000200u) {
3155 target = stream->EnsureSpace(target);
3156 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(64, this->_internal_use_blocking_restart(), target);
3159 cached_has_bits = _has_bits_[2];
3161 if (cached_has_bits & 0x00002000u) {
3162 target = stream->EnsureSpace(target);
3163 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(65, this->_internal_blocking_restart_window_size(), target);
3167 if (cached_has_bits & 0x00004000u) {
3168 target = stream->EnsureSpace(target);
3169 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(66, this->_internal_blocking_restart_multiplier(), target);
3173 if (cached_has_bits & 0x00008000u) {
3174 target = stream->EnsureSpace(target);
3175 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(67, this->_internal_max_deterministic_time(), target);
3178 cached_has_bits = _has_bits_[0];
3180 if (cached_has_bits & 0x00000800u) {
3181 target = stream->EnsureSpace(target);
3182 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(68, this->_internal_num_conflicts_before_strategy_changes(), target);
3186 if (cached_has_bits & 0x00001000u) {
3187 target = stream->EnsureSpace(target);
3188 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(69, this->_internal_strategy_change_increase_ratio(), target);
3192 if (cached_has_bits & 0x00000001u) {
3193 ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
3194 this->_internal_default_restart_algorithms().data(),
static_cast<int>(this->_internal_default_restart_algorithms().length()),
3195 ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
3196 "operations_research.sat.SatParameters.default_restart_algorithms");
3197 target = stream->WriteStringMaybeAliased(
3198 70, this->_internal_default_restart_algorithms(), target);
3201 cached_has_bits = _has_bits_[2];
3203 if (cached_has_bits & 0x00010000u) {
3204 target = stream->EnsureSpace(target);
3205 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(71, this->_internal_restart_lbd_average_ratio(), target);
3209 if (cached_has_bits & 0x00800000u) {
3210 target = stream->EnsureSpace(target);
3211 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(72, this->_internal_presolve_use_bva(), target);
3215 if (cached_has_bits & 0x00020000u) {
3216 target = stream->EnsureSpace(target);
3217 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(73, this->_internal_presolve_bva_threshold(), target);
3221 if (cached_has_bits & 0x00200000u) {
3222 target = stream->EnsureSpace(target);
3223 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(74, this->_internal_use_precedences_in_disjunctive_constraint(), target);
3226 cached_has_bits = _has_bits_[0];
3228 if (cached_has_bits & 0x00000080u) {
3229 target = stream->EnsureSpace(target);
3230 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(75, this->_internal_use_erwa_heuristic(), target);
3234 if (cached_has_bits & 0x00002000u) {
3235 target = stream->EnsureSpace(target);
3236 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(76, this->_internal_initial_variables_activity(), target);
3240 if (cached_has_bits & 0x00000100u) {
3241 target = stream->EnsureSpace(target);
3242 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(77, this->_internal_also_bump_variables_in_conflict_reasons(), target);
3246 if (cached_has_bits & 0x00008000u) {
3247 target = stream->EnsureSpace(target);
3248 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(78, this->_internal_use_overload_checker_in_cumulative_constraint(), target);
3252 if (cached_has_bits & 0x00010000u) {
3253 target = stream->EnsureSpace(target);
3254 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(79, this->_internal_use_timetable_edge_finding_in_cumulative_constraint(), target);
3257 cached_has_bits = _has_bits_[3];
3259 if (cached_has_bits & 0x00000800u) {
3260 target = stream->EnsureSpace(target);
3261 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(80, this->_internal_use_disjunctive_constraint_in_cumulative_constraint(), target);
3264 cached_has_bits = _has_bits_[0];
3266 if (cached_has_bits & 0x00040000u) {
3267 target = stream->EnsureSpace(target);
3268 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3269 82, this->_internal_search_branching(), target);
3273 if (cached_has_bits & 0x00080000u) {
3274 target = stream->EnsureSpace(target);
3275 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(83, this->_internal_optimize_with_core(), target);
3278 cached_has_bits = _has_bits_[2];
3280 if (cached_has_bits & 0x00080000u) {
3281 target = stream->EnsureSpace(target);
3282 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(84, this->_internal_find_multiple_cores(), target);
3285 cached_has_bits = _has_bits_[0];
3287 if (cached_has_bits & 0x00100000u) {
3288 target = stream->EnsureSpace(target);
3289 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(85, this->_internal_optimize_with_max_hs(), target);
3292 cached_has_bits = _has_bits_[2];
3294 if (cached_has_bits & 0x01000000u) {
3295 target = stream->EnsureSpace(target);
3296 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(86, this->_internal_cp_model_presolve(), target);
3299 cached_has_bits = _has_bits_[0];
3301 if (cached_has_bits & 0x00200000u) {
3302 target = stream->EnsureSpace(target);
3303 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(87, this->_internal_enumerate_all_solutions(), target);
3306 cached_has_bits = _has_bits_[2];
3308 if (cached_has_bits & 0x00400000u) {
3309 target = stream->EnsureSpace(target);
3310 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(88, this->_internal_presolve_blocked_clause(), target);
3314 if (cached_has_bits & 0x00100000u) {
3315 target = stream->EnsureSpace(target);
3316 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(89, this->_internal_cover_optimization(), target);
3320 if (cached_has_bits & 0x04000000u) {
3321 target = stream->EnsureSpace(target);
3322 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(90, this->_internal_linearization_level(), target);
3326 if (cached_has_bits & 0x08000000u) {
3327 target = stream->EnsureSpace(target);
3328 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(91, this->_internal_max_num_cuts(), target);
3331 cached_has_bits = _has_bits_[0];
3333 if (cached_has_bits & 0x00020000u) {
3334 target = stream->EnsureSpace(target);
3335 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(92, this->_internal_only_add_cuts_at_level_zero(), target);
3338 cached_has_bits = _has_bits_[2];
3340 if (cached_has_bits & 0x02000000u) {
3341 target = stream->EnsureSpace(target);
3342 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(93, this->_internal_cp_model_use_sat_presolve(), target);
3345 cached_has_bits = _has_bits_[3];
3347 if (cached_has_bits & 0x00000100u) {
3348 target = stream->EnsureSpace(target);
3349 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(94, this->_internal_exploit_integer_lp_solution(), target);
3353 if (cached_has_bits & 0x00000004u) {
3354 target = stream->EnsureSpace(target);
3355 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(95, this->_internal_auto_detect_greater_than_at_least_one_of(), target);
3358 cached_has_bits = _has_bits_[2];
3360 if (cached_has_bits & 0x10000000u) {
3361 target = stream->EnsureSpace(target);
3362 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(96, this->_internal_minimize_with_propagation_restart_period(), target);
3366 if (cached_has_bits & 0x20000000u) {
3367 target = stream->EnsureSpace(target);
3368 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(97, this->_internal_minimize_with_propagation_num_decisions(), target);
3371 cached_has_bits = _has_bits_[1];
3373 if (cached_has_bits & 0x00000008u) {
3374 target = stream->EnsureSpace(target);
3375 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(98, this->_internal_stop_after_first_solution(), target);
3378 cached_has_bits = _has_bits_[2];
3380 if (cached_has_bits & 0x40000000u) {
3381 target = stream->EnsureSpace(target);
3382 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(99, this->_internal_binary_search_num_conflicts(), target);
3386 if (cached_has_bits & 0x80000000u) {
3387 target = stream->EnsureSpace(target);
3388 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(100, this->_internal_num_search_workers(), target);
3391 cached_has_bits = _has_bits_[0];
3393 if (cached_has_bits & 0x10000000u) {
3394 target = stream->EnsureSpace(target);
3395 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(101, this->_internal_use_lns_only(), target);
3398 cached_has_bits = _has_bits_[1];
3400 if (cached_has_bits & 0x00000001u) {
3401 target = stream->EnsureSpace(target);
3402 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(103, this->_internal_randomize_search(), target);
3405 cached_has_bits = _has_bits_[0];
3407 if (cached_has_bits & 0x08000000u) {
3408 target = stream->EnsureSpace(target);
3409 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(104, this->_internal_search_randomization_tolerance(), target);
3413 if (cached_has_bits & 0x20000000u) {
3414 target = stream->EnsureSpace(target);
3415 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(105, this->_internal_lns_focus_on_decision_variables(), target);
3418 cached_has_bits = _has_bits_[3];
3420 if (cached_has_bits & 0x00000002u) {
3421 target = stream->EnsureSpace(target);
3422 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(106, this->_internal_instantiate_all_variables(), target);
3426 if (cached_has_bits & 0x00000001u) {
3427 target = stream->EnsureSpace(target);
3428 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(107, this->_internal_boolean_encoding_level(), target);
3432 if (cached_has_bits & 0x20000000u) {
3433 target = stream->EnsureSpace(target);
3434 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(108, this->_internal_use_optional_variables(), target);
3438 if (cached_has_bits & 0x40000000u) {
3439 target = stream->EnsureSpace(target);
3440 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(109, this->_internal_use_exact_lp_reason(), target);
3444 if (cached_has_bits & 0x00000020u) {
3445 target = stream->EnsureSpace(target);
3446 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(110, this->_internal_cp_model_probing_level(), target);
3449 cached_has_bits = _has_bits_[1];
3451 if (cached_has_bits & 0x00000080u) {
3452 target = stream->EnsureSpace(target);
3453 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(111, this->_internal_add_knapsack_cuts(), target);
3456 cached_has_bits = _has_bits_[3];
3458 if (cached_has_bits & 0x00000080u) {
3459 target = stream->EnsureSpace(target);
3460 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(112, this->_internal_add_lp_constraints_lazily(), target);
3464 if (cached_has_bits & 0x00000008u) {
3465 target = stream->EnsureSpace(target);
3466 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(113, this->_internal_share_objective_bounds(), target);
3470 if (cached_has_bits & 0x00000010u) {
3471 target = stream->EnsureSpace(target);
3472 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(114, this->_internal_share_level_zero_bounds(), target);
3476 if (cached_has_bits & 0x00000040u) {
3477 target = stream->EnsureSpace(target);
3478 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(115, this->_internal_min_orthogonality_for_lp_constraints(), target);
3482 if (cached_has_bits & 0x00000200u) {
3483 target = stream->EnsureSpace(target);
3484 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(116, this->_internal_exploit_all_lp_solution(), target);
3488 if (cached_has_bits & 0x00001000u) {
3489 target = stream->EnsureSpace(target);
3490 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(117, this->_internal_add_cg_cuts(), target);
3494 if (cached_has_bits & 0x00008000u) {
3495 target = stream->EnsureSpace(target);
3496 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(119, this->_internal_max_integer_rounding_scaling(), target);
3500 if (cached_has_bits & 0x00002000u) {
3501 target = stream->EnsureSpace(target);
3502 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(120, this->_internal_add_mir_cuts(), target);
3506 if (cached_has_bits & 0x00100000u) {
3507 target = stream->EnsureSpace(target);
3508 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(121, this->_internal_max_consecutive_inactive_count(), target);
3512 if (cached_has_bits & 0x00200000u) {
3513 target = stream->EnsureSpace(target);
3514 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(122, this->_internal_new_constraints_batch_size(), target);
3518 if (cached_has_bits & 0x00400000u) {
3519 target = stream->EnsureSpace(target);
3520 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(123, this->_internal_pseudo_cost_reliability_threshold(), target);
3524 if (cached_has_bits & 0x00800000u) {
3525 target = stream->EnsureSpace(target);
3526 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(124, this->_internal_mip_max_bound(), target);
3530 if (cached_has_bits & 0x01000000u) {
3531 target = stream->EnsureSpace(target);
3532 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(125, this->_internal_mip_var_scaling(), target);
3536 if (cached_has_bits & 0x02000000u) {
3537 target = stream->EnsureSpace(target);
3538 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(126, this->_internal_mip_wanted_precision(), target);
3542 if (cached_has_bits & 0x04000000u) {
3543 target = stream->EnsureSpace(target);
3544 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(127, this->_internal_mip_max_activity_exponent(), target);
3548 if (cached_has_bits & 0x80000000u) {
3549 target = stream->EnsureSpace(target);
3550 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(128, this->_internal_mip_check_precision(), target);
3554 if (cached_has_bits & 0x08000000u) {
3555 target = stream->EnsureSpace(target);
3556 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(129, this->_internal_use_rins_lns(), target);
3559 cached_has_bits = _has_bits_[1];
3561 if (cached_has_bits & 0x00000200u) {
3562 target = stream->EnsureSpace(target);
3563 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(130, this->_internal_exploit_best_solution(), target);
3566 cached_has_bits = _has_bits_[3];
3568 if (cached_has_bits & 0x00000400u) {
3569 target = stream->EnsureSpace(target);
3570 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(131, this->_internal_exploit_objective(), target);
3573 cached_has_bits = _has_bits_[0];
3575 if (cached_has_bits & 0x00400000u) {
3576 target = stream->EnsureSpace(target);
3577 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(132, this->_internal_fill_tightened_domains_in_response(), target);
3580 cached_has_bits = _has_bits_[1];
3582 if (cached_has_bits & 0x00000004u) {
3583 target = stream->EnsureSpace(target);
3584 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(133, this->_internal_use_combined_no_overlap(), target);
3587 cached_has_bits = _has_bits_[4];
3589 if (cached_has_bits & 0x00000001u) {
3590 target = stream->EnsureSpace(target);
3591 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(134, this->_internal_interleave_batch_size(), target);
3595 if (cached_has_bits & 0x00000040u) {
3596 target = stream->EnsureSpace(target);
3597 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(135, this->_internal_catch_sigint_signal(), target);
3600 cached_has_bits = _has_bits_[1];
3602 if (cached_has_bits & 0x00000020u) {
3603 target = stream->EnsureSpace(target);
3604 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(136, this->_internal_interleave_search(), target);
3607 cached_has_bits = _has_bits_[0];
3609 if (cached_has_bits & 0x80000000u) {
3610 target = stream->EnsureSpace(target);
3611 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(137, this->_internal_diversify_lns_params(), target);
3614 cached_has_bits = _has_bits_[4];
3616 if (cached_has_bits & 0x00000002u) {
3617 target = stream->EnsureSpace(target);
3618 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(138, this->_internal_max_presolve_iterations(), target);
3621 cached_has_bits = _has_bits_[1];
3623 if (cached_has_bits & 0x00000002u) {
3624 target = stream->EnsureSpace(target);
3625 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(139, this->_internal_use_branching_in_lp(), target);
3628 cached_has_bits = _has_bits_[3];
3630 if (cached_has_bits & 0x00010000u) {
3631 target = stream->EnsureSpace(target);
3632 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(140, this->_internal_expand_element_constraints(), target);
3635 cached_has_bits = _has_bits_[1];
3637 if (cached_has_bits & 0x00000040u) {
3638 target = stream->EnsureSpace(target);
3639 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(141, this->_internal_reduce_memory_usage_in_interleave_mode(), target);
3643 if (cached_has_bits & 0x00000800u) {
3644 target = stream->EnsureSpace(target);
3645 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(142, this->_internal_probing_period_at_root(), target);
3648 cached_has_bits = _has_bits_[3];
3650 if (cached_has_bits & 0x00020000u) {
3651 target = stream->EnsureSpace(target);
3652 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(143, this->_internal_expand_automaton_constraints(), target);
3655 cached_has_bits = _has_bits_[4];
3657 if (cached_has_bits & 0x00000080u) {
3658 target = stream->EnsureSpace(target);
3659 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(144, this->_internal_use_implied_bounds(), target);
3663 if (cached_has_bits & 0x00000004u) {
3664 target = stream->EnsureSpace(target);
3665 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(145, this->_internal_merge_no_overlap_work_limit(), target);
3669 if (cached_has_bits & 0x00000008u) {
3670 target = stream->EnsureSpace(target);
3671 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(146, this->_internal_merge_at_most_one_work_limit(), target);
3675 if (cached_has_bits & 0x00000010u) {
3676 target = stream->EnsureSpace(target);
3677 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(147, this->_internal_presolve_substitution_level(), target);
3681 if (cached_has_bits & 0x00000020u) {
3682 target = stream->EnsureSpace(target);
3683 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(148, this->_internal_max_all_diff_cut_size(), target);
3686 cached_has_bits = _has_bits_[1];
3688 if (cached_has_bits & 0x00000010u) {
3689 target = stream->EnsureSpace(target);
3690 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(149, this->_internal_stop_after_presolve(), target);
3693 cached_has_bits = _has_bits_[0];
3695 if (cached_has_bits & 0x40000000u) {
3696 target = stream->EnsureSpace(target);
3697 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(150, this->_internal_use_relaxation_lns(), target);
3700 cached_has_bits = _has_bits_[1];
3702 if (cached_has_bits & 0x00001000u) {
3703 target = stream->EnsureSpace(target);
3704 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(151, this->_internal_cp_model_max_num_presolve_operations(), target);
3707 cached_has_bits = _has_bits_[3];
3709 if (cached_has_bits & 0x00004000u) {
3710 target = stream->EnsureSpace(target);
3711 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(152, this->_internal_add_lin_max_cuts(), target);
3714 cached_has_bits = _has_bits_[4];
3716 if (cached_has_bits & 0x00000200u) {
3717 target = stream->EnsureSpace(target);
3718 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(153, this->_internal_hint_conflict_limit(), target);
3722 if (cached_has_bits & 0x00000800u) {
3723 target = stream->EnsureSpace(target);
3724 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(154, this->_internal_max_cut_rounds_at_level_zero(), target);
3728 if (cached_has_bits & 0x00000400u) {
3729 target = stream->EnsureSpace(target);
3730 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(155, this->_internal_cut_max_active_count_value(), target);
3734 if (cached_has_bits & 0x00002000u) {
3735 target = stream->EnsureSpace(target);
3736 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(156, this->_internal_cut_active_count_decay(), target);
3740 if (cached_has_bits & 0x00001000u) {
3741 target = stream->EnsureSpace(target);
3742 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(157, this->_internal_cut_cleanup_target(), target);
3745 cached_has_bits = _has_bits_[3];
3747 if (cached_has_bits & 0x00040000u) {
3748 target = stream->EnsureSpace(target);
3749 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(158, this->_internal_expand_table_constraints(), target);
3752 cached_has_bits = _has_bits_[1];
3754 if (cached_has_bits & 0x00002000u) {
3755 target = stream->EnsureSpace(target);
3756 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(159, this->_internal_absolute_gap_limit(), target);
3760 if (cached_has_bits & 0x00004000u) {
3761 target = stream->EnsureSpace(target);
3762 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(160, this->_internal_relative_gap_limit(), target);
3766 if (cached_has_bits & 0x00000400u) {
3767 target = stream->EnsureSpace(target);
3768 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(161, this->_internal_exploit_relaxation_solution(), target);
3771 cached_has_bits = _has_bits_[0];
3773 if (cached_has_bits & 0x02000000u) {
3774 target = stream->EnsureSpace(target);
3775 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(162, this->_internal_cp_model_postsolve_with_full_solver(), target);
3779 if (cached_has_bits & 0x04000000u) {
3780 target = stream->EnsureSpace(target);
3781 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(163, this->_internal_use_sat_inprocessing(), target);
3784 cached_has_bits = _has_bits_[3];
3786 if (cached_has_bits & 0x10000000u) {
3787 target = stream->EnsureSpace(target);
3788 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(164, this->_internal_use_feasibility_pump(), target);
3791 cached_has_bits = _has_bits_[4];
3793 if (cached_has_bits & 0x00004000u) {
3794 target = stream->EnsureSpace(target);
3795 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3796 165, this->_internal_fp_rounding(), target);
3800 if (cached_has_bits & 0x00000100u) {
3801 target = stream->EnsureSpace(target);
3802 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(166, this->_internal_mip_automatically_scale_variables(), target);
3805 cached_has_bits = _has_bits_[1];
3807 if (cached_has_bits & 0x00000100u) {
3808 target = stream->EnsureSpace(target);
3809 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(167, this->_internal_repair_hint(), target);
3812 cached_has_bits = _has_bits_[4];
3814 if (cached_has_bits & 0x00008000u) {
3815 target = stream->EnsureSpace(target);
3816 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(168, this->_internal_polarity_rephase_increment(), target);
3819 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3820 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3821 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3827 size_t SatParameters::ByteSizeLong()
const {
3829 size_t total_size = 0;
3833 (void) cached_has_bits;
3837 size_t data_size = 0;
3838 unsigned int count =
static_cast<unsigned int>(this->_internal_restart_algorithms_size());
for (
unsigned int i = 0; i < count; i++) {
3839 data_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(
3840 this->_internal_restart_algorithms(
static_cast<int>(i)));
3842 total_size += (2UL * count) + data_size;
3845 cached_has_bits = _has_bits_[0];
3846 if (cached_has_bits & 0x000000ffu) {
3848 if (cached_has_bits & 0x00000001u) {
3850 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
3851 this->_internal_default_restart_algorithms());
3855 if (cached_has_bits & 0x00000002u) {
3857 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_preferred_variable_order());
3861 if (cached_has_bits & 0x00000004u) {
3863 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_max_sat_assumption_order());
3867 if (cached_has_bits & 0x00000008u) {
3868 total_size += 2 + 8;
3872 if (cached_has_bits & 0x00000010u) {
3873 total_size += 2 + 8;
3877 if (cached_has_bits & 0x00000020u) {
3879 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_clause_cleanup_protection());
3883 if (cached_has_bits & 0x00000040u) {
3885 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_clause_cleanup_ordering());
3889 if (cached_has_bits & 0x00000080u) {
3890 total_size += 2 + 1;
3894 if (cached_has_bits & 0x0000ff00u) {
3896 if (cached_has_bits & 0x00000100u) {
3897 total_size += 2 + 1;
3901 if (cached_has_bits & 0x00000200u) {
3902 total_size += 2 + 1;
3906 if (cached_has_bits & 0x00000400u) {
3907 total_size += 2 + 1;
3911 if (cached_has_bits & 0x00000800u) {
3913 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3914 this->_internal_num_conflicts_before_strategy_changes());
3918 if (cached_has_bits & 0x00001000u) {
3919 total_size += 2 + 8;
3923 if (cached_has_bits & 0x00002000u) {
3924 total_size += 2 + 8;
3928 if (cached_has_bits & 0x00004000u) {
3929 total_size += 2 + 1;
3933 if (cached_has_bits & 0x00008000u) {
3934 total_size += 2 + 1;
3938 if (cached_has_bits & 0x00ff0000u) {
3940 if (cached_has_bits & 0x00010000u) {
3941 total_size += 2 + 1;
3945 if (cached_has_bits & 0x00020000u) {
3946 total_size += 2 + 1;
3950 if (cached_has_bits & 0x00040000u) {
3952 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_search_branching());
3956 if (cached_has_bits & 0x00080000u) {
3957 total_size += 2 + 1;
3961 if (cached_has_bits & 0x00100000u) {
3962 total_size += 2 + 1;
3966 if (cached_has_bits & 0x00200000u) {
3967 total_size += 2 + 1;
3971 if (cached_has_bits & 0x00400000u) {
3972 total_size += 2 + 1;
3976 if (cached_has_bits & 0x00800000u) {
3977 total_size += 2 + 1;
3981 if (cached_has_bits & 0xff000000u) {
3983 if (cached_has_bits & 0x01000000u) {
3984 total_size += 2 + 1;
3988 if (cached_has_bits & 0x02000000u) {
3989 total_size += 2 + 1;
3993 if (cached_has_bits & 0x04000000u) {
3994 total_size += 2 + 1;
3998 if (cached_has_bits & 0x08000000u) {
4000 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4001 this->_internal_search_randomization_tolerance());
4005 if (cached_has_bits & 0x10000000u) {
4006 total_size += 2 + 1;
4010 if (cached_has_bits & 0x20000000u) {
4011 total_size += 2 + 1;
4015 if (cached_has_bits & 0x40000000u) {
4016 total_size += 2 + 1;
4020 if (cached_has_bits & 0x80000000u) {
4021 total_size += 2 + 1;
4025 cached_has_bits = _has_bits_[1];
4026 if (cached_has_bits & 0x000000ffu) {
4028 if (cached_has_bits & 0x00000001u) {
4029 total_size += 2 + 1;
4033 if (cached_has_bits & 0x00000002u) {
4034 total_size += 2 + 1;
4038 if (cached_has_bits & 0x00000004u) {
4039 total_size += 2 + 1;
4043 if (cached_has_bits & 0x00000008u) {
4044 total_size += 2 + 1;
4048 if (cached_has_bits & 0x00000010u) {
4049 total_size += 2 + 1;
4053 if (cached_has_bits & 0x00000020u) {
4054 total_size += 2 + 1;
4058 if (cached_has_bits & 0x00000040u) {
4059 total_size += 2 + 1;
4063 if (cached_has_bits & 0x00000080u) {
4064 total_size += 2 + 1;
4068 if (cached_has_bits & 0x0000ff00u) {
4070 if (cached_has_bits & 0x00000100u) {
4071 total_size += 2 + 1;
4075 if (cached_has_bits & 0x00000200u) {
4076 total_size += 2 + 1;
4080 if (cached_has_bits & 0x00000400u) {
4081 total_size += 2 + 1;
4085 if (cached_has_bits & 0x00000800u) {
4087 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4088 this->_internal_probing_period_at_root());
4092 if (cached_has_bits & 0x00001000u) {
4094 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4095 this->_internal_cp_model_max_num_presolve_operations());
4099 if (cached_has_bits & 0x00002000u) {
4100 total_size += 2 + 8;
4104 if (cached_has_bits & 0x00004000u) {
4105 total_size += 2 + 8;
4109 if (cached_has_bits & 0x00008000u) {
4111 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_initial_polarity());
4115 if (cached_has_bits & 0x00ff0000u) {
4117 if (cached_has_bits & 0x00010000u) {
4119 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_minimization_algorithm());
4123 if (cached_has_bits & 0x00020000u) {
4125 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4126 this->_internal_clause_cleanup_period());
4130 if (cached_has_bits & 0x00040000u) {
4132 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4133 this->_internal_clause_cleanup_target());
4137 if (cached_has_bits & 0x00080000u) {
4138 total_size += 1 + 8;
4142 if (cached_has_bits & 0x00100000u) {
4143 total_size += 2 + 8;
4147 if (cached_has_bits & 0x00200000u) {
4148 total_size += 2 + 8;
4152 if (cached_has_bits & 0x00400000u) {
4153 total_size += 2 + 8;
4157 if (cached_has_bits & 0x00800000u) {
4158 total_size += 2 + 8;
4162 if (cached_has_bits & 0xff000000u) {
4164 if (cached_has_bits & 0x01000000u) {
4165 total_size += 2 + 8;
4169 if (cached_has_bits & 0x02000000u) {
4171 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4172 this->_internal_glucose_decay_increment_period());
4176 if (cached_has_bits & 0x04000000u) {
4178 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4179 this->_internal_restart_period());
4183 if (cached_has_bits & 0x08000000u) {
4185 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4186 this->_internal_random_seed());
4190 if (cached_has_bits & 0x10000000u) {
4192 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_binary_minimization_algorithm());
4196 if (cached_has_bits & 0x20000000u) {
4197 total_size += 2 + 8;
4201 if (cached_has_bits & 0x40000000u) {
4203 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4204 this->_internal_max_number_of_conflicts());
4208 if (cached_has_bits & 0x80000000u) {
4210 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4211 this->_internal_max_memory_in_mb());
4215 cached_has_bits = _has_bits_[2];
4216 if (cached_has_bits & 0x000000ffu) {
4218 if (cached_has_bits & 0x00000001u) {
4219 total_size += 2 + 1;
4223 if (cached_has_bits & 0x00000002u) {
4224 total_size += 2 + 1;
4228 if (cached_has_bits & 0x00000004u) {
4229 total_size += 2 + 1;
4233 if (cached_has_bits & 0x00000008u) {
4234 total_size += 2 + 1;
4238 if (cached_has_bits & 0x00000010u) {
4240 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4241 this->_internal_pb_cleanup_increment());
4245 if (cached_has_bits & 0x00000020u) {
4246 total_size += 2 + 8;
4250 if (cached_has_bits & 0x00000040u) {
4252 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_max_sat_stratification());
4256 if (cached_has_bits & 0x00000080u) {
4258 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4259 this->_internal_presolve_bve_threshold());
4263 if (cached_has_bits & 0x0000ff00u) {
4265 if (cached_has_bits & 0x00000100u) {
4266 total_size += 2 + 8;
4270 if (cached_has_bits & 0x00000200u) {
4272 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4273 this->_internal_presolve_bve_clause_weight());
4277 if (cached_has_bits & 0x00000400u) {
4279 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4280 this->_internal_clause_cleanup_lbd_bound());
4284 if (cached_has_bits & 0x00000800u) {
4285 total_size += 2 + 8;
4289 if (cached_has_bits & 0x00001000u) {
4291 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4292 this->_internal_restart_running_window_size());
4296 if (cached_has_bits & 0x00002000u) {
4298 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4299 this->_internal_blocking_restart_window_size());
4303 if (cached_has_bits & 0x00004000u) {
4304 total_size += 2 + 8;
4308 if (cached_has_bits & 0x00008000u) {
4309 total_size += 2 + 8;
4313 if (cached_has_bits & 0x00ff0000u) {
4315 if (cached_has_bits & 0x00010000u) {
4316 total_size += 2 + 8;
4320 if (cached_has_bits & 0x00020000u) {
4322 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4323 this->_internal_presolve_bva_threshold());
4327 if (cached_has_bits & 0x00040000u) {
4328 total_size += 2 + 1;
4332 if (cached_has_bits & 0x00080000u) {
4333 total_size += 2 + 1;
4337 if (cached_has_bits & 0x00100000u) {
4338 total_size += 2 + 1;
4342 if (cached_has_bits & 0x00200000u) {
4343 total_size += 2 + 1;
4347 if (cached_has_bits & 0x00400000u) {
4348 total_size += 2 + 1;
4352 if (cached_has_bits & 0x00800000u) {
4353 total_size += 2 + 1;
4357 if (cached_has_bits & 0xff000000u) {
4359 if (cached_has_bits & 0x01000000u) {
4360 total_size += 2 + 1;
4364 if (cached_has_bits & 0x02000000u) {
4365 total_size += 2 + 1;
4369 if (cached_has_bits & 0x04000000u) {
4371 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4372 this->_internal_linearization_level());
4376 if (cached_has_bits & 0x08000000u) {
4378 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4379 this->_internal_max_num_cuts());
4383 if (cached_has_bits & 0x10000000u) {
4385 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4386 this->_internal_minimize_with_propagation_restart_period());
4390 if (cached_has_bits & 0x20000000u) {
4392 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4393 this->_internal_minimize_with_propagation_num_decisions());
4397 if (cached_has_bits & 0x40000000u) {
4399 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4400 this->_internal_binary_search_num_conflicts());
4404 if (cached_has_bits & 0x80000000u) {
4406 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4407 this->_internal_num_search_workers());
4411 cached_has_bits = _has_bits_[3];
4412 if (cached_has_bits & 0x000000ffu) {
4414 if (cached_has_bits & 0x00000001u) {
4416 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4417 this->_internal_boolean_encoding_level());
4421 if (cached_has_bits & 0x00000002u) {
4422 total_size += 2 + 1;
4426 if (cached_has_bits & 0x00000004u) {
4427 total_size += 2 + 1;
4431 if (cached_has_bits & 0x00000008u) {
4432 total_size += 2 + 1;
4436 if (cached_has_bits & 0x00000010u) {
4437 total_size += 2 + 1;
4441 if (cached_has_bits & 0x00000020u) {
4443 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4444 this->_internal_cp_model_probing_level());
4448 if (cached_has_bits & 0x00000040u) {
4449 total_size += 2 + 8;
4453 if (cached_has_bits & 0x00000080u) {
4454 total_size += 2 + 1;
4458 if (cached_has_bits & 0x0000ff00u) {
4460 if (cached_has_bits & 0x00000100u) {
4461 total_size += 2 + 1;
4465 if (cached_has_bits & 0x00000200u) {
4466 total_size += 2 + 1;
4470 if (cached_has_bits & 0x00000400u) {
4471 total_size += 2 + 1;
4475 if (cached_has_bits & 0x00000800u) {
4476 total_size += 2 + 1;
4480 if (cached_has_bits & 0x00001000u) {
4481 total_size += 2 + 1;
4485 if (cached_has_bits & 0x00002000u) {
4486 total_size += 2 + 1;
4490 if (cached_has_bits & 0x00004000u) {
4491 total_size += 2 + 1;
4495 if (cached_has_bits & 0x00008000u) {
4497 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4498 this->_internal_max_integer_rounding_scaling());
4502 if (cached_has_bits & 0x00ff0000u) {
4504 if (cached_has_bits & 0x00010000u) {
4505 total_size += 2 + 1;
4509 if (cached_has_bits & 0x00020000u) {
4510 total_size += 2 + 1;
4514 if (cached_has_bits & 0x00040000u) {
4515 total_size += 2 + 1;
4519 if (cached_has_bits & 0x00080000u) {
4520 total_size += 2 + 1;
4524 if (cached_has_bits & 0x00100000u) {
4526 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4527 this->_internal_max_consecutive_inactive_count());
4531 if (cached_has_bits & 0x00200000u) {
4533 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4534 this->_internal_new_constraints_batch_size());
4538 if (cached_has_bits & 0x00400000u) {
4540 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4541 this->_internal_pseudo_cost_reliability_threshold());
4545 if (cached_has_bits & 0x00800000u) {
4546 total_size += 2 + 8;
4550 if (cached_has_bits & 0xff000000u) {
4552 if (cached_has_bits & 0x01000000u) {
4553 total_size += 2 + 8;
4557 if (cached_has_bits & 0x02000000u) {
4558 total_size += 2 + 8;
4562 if (cached_has_bits & 0x04000000u) {
4564 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4565 this->_internal_mip_max_activity_exponent());
4569 if (cached_has_bits & 0x08000000u) {
4570 total_size += 2 + 1;
4574 if (cached_has_bits & 0x10000000u) {
4575 total_size += 2 + 1;
4579 if (cached_has_bits & 0x20000000u) {
4580 total_size += 2 + 1;
4584 if (cached_has_bits & 0x40000000u) {
4585 total_size += 2 + 1;
4589 if (cached_has_bits & 0x80000000u) {
4590 total_size += 2 + 8;
4594 cached_has_bits = _has_bits_[4];
4595 if (cached_has_bits & 0x000000ffu) {
4597 if (cached_has_bits & 0x00000001u) {
4599 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4600 this->_internal_interleave_batch_size());
4604 if (cached_has_bits & 0x00000002u) {
4606 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4607 this->_internal_max_presolve_iterations());
4611 if (cached_has_bits & 0x00000004u) {
4612 total_size += 2 + 8;
4616 if (cached_has_bits & 0x00000008u) {
4617 total_size += 2 + 8;
4621 if (cached_has_bits & 0x00000010u) {
4623 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4624 this->_internal_presolve_substitution_level());
4628 if (cached_has_bits & 0x00000020u) {
4630 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4631 this->_internal_max_all_diff_cut_size());
4635 if (cached_has_bits & 0x00000040u) {
4636 total_size += 2 + 1;
4640 if (cached_has_bits & 0x00000080u) {
4641 total_size += 2 + 1;
4645 if (cached_has_bits & 0x0000ff00u) {
4647 if (cached_has_bits & 0x00000100u) {
4648 total_size += 2 + 1;
4652 if (cached_has_bits & 0x00000200u) {
4654 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4655 this->_internal_hint_conflict_limit());
4659 if (cached_has_bits & 0x00000400u) {
4660 total_size += 2 + 8;
4664 if (cached_has_bits & 0x00000800u) {
4666 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4667 this->_internal_max_cut_rounds_at_level_zero());
4671 if (cached_has_bits & 0x00001000u) {
4673 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4674 this->_internal_cut_cleanup_target());
4678 if (cached_has_bits & 0x00002000u) {
4679 total_size += 2 + 8;
4683 if (cached_has_bits & 0x00004000u) {
4685 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_fp_rounding());
4689 if (cached_has_bits & 0x00008000u) {
4691 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4692 this->_internal_polarity_rephase_increment());
4696 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4697 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4698 _internal_metadata_, total_size, &_cached_size_);
4700 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4701 SetCachedSize(cached_size);
4705 void SatParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4707 GOOGLE_DCHECK_NE(&from,
this);
4708 const SatParameters* source =
4709 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SatParameters>(
4711 if (source ==
nullptr) {
4713 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
4720 void SatParameters::MergeFrom(
const SatParameters& from) {
4722 GOOGLE_DCHECK_NE(&from,
this);
4723 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4725 (void) cached_has_bits;
4727 restart_algorithms_.MergeFrom(from.restart_algorithms_);
4728 cached_has_bits = from._has_bits_[0];
4729 if (cached_has_bits & 0x000000ffu) {
4730 if (cached_has_bits & 0x00000001u) {
4731 _internal_set_default_restart_algorithms(from._internal_default_restart_algorithms());
4733 if (cached_has_bits & 0x00000002u) {
4734 preferred_variable_order_ = from.preferred_variable_order_;
4736 if (cached_has_bits & 0x00000004u) {
4737 max_sat_assumption_order_ = from.max_sat_assumption_order_;
4739 if (cached_has_bits & 0x00000008u) {
4740 random_branches_ratio_ = from.random_branches_ratio_;
4742 if (cached_has_bits & 0x00000010u) {
4743 random_polarity_ratio_ = from.random_polarity_ratio_;
4745 if (cached_has_bits & 0x00000020u) {
4746 clause_cleanup_protection_ = from.clause_cleanup_protection_;
4748 if (cached_has_bits & 0x00000040u) {
4749 clause_cleanup_ordering_ = from.clause_cleanup_ordering_;
4751 if (cached_has_bits & 0x00000080u) {
4752 use_erwa_heuristic_ = from.use_erwa_heuristic_;
4754 _has_bits_[0] |= cached_has_bits;
4756 if (cached_has_bits & 0x0000ff00u) {
4757 if (cached_has_bits & 0x00000100u) {
4758 also_bump_variables_in_conflict_reasons_ = from.also_bump_variables_in_conflict_reasons_;
4760 if (cached_has_bits & 0x00000200u) {
4761 use_blocking_restart_ = from.use_blocking_restart_;
4763 if (cached_has_bits & 0x00000400u) {
4764 log_search_progress_ = from.log_search_progress_;
4766 if (cached_has_bits & 0x00000800u) {
4767 num_conflicts_before_strategy_changes_ = from.num_conflicts_before_strategy_changes_;
4769 if (cached_has_bits & 0x00001000u) {
4770 strategy_change_increase_ratio_ = from.strategy_change_increase_ratio_;
4772 if (cached_has_bits & 0x00002000u) {
4773 initial_variables_activity_ = from.initial_variables_activity_;
4775 if (cached_has_bits & 0x00004000u) {
4776 max_sat_reverse_assumption_order_ = from.max_sat_reverse_assumption_order_;
4778 if (cached_has_bits & 0x00008000u) {
4779 use_overload_checker_in_cumulative_constraint_ = from.use_overload_checker_in_cumulative_constraint_;
4781 _has_bits_[0] |= cached_has_bits;
4783 if (cached_has_bits & 0x00ff0000u) {
4784 if (cached_has_bits & 0x00010000u) {
4785 use_timetable_edge_finding_in_cumulative_constraint_ = from.use_timetable_edge_finding_in_cumulative_constraint_;
4787 if (cached_has_bits & 0x00020000u) {
4788 only_add_cuts_at_level_zero_ = from.only_add_cuts_at_level_zero_;
4790 if (cached_has_bits & 0x00040000u) {
4791 search_branching_ = from.search_branching_;
4793 if (cached_has_bits & 0x00080000u) {
4794 optimize_with_core_ = from.optimize_with_core_;
4796 if (cached_has_bits & 0x00100000u) {
4797 optimize_with_max_hs_ = from.optimize_with_max_hs_;
4799 if (cached_has_bits & 0x00200000u) {
4800 enumerate_all_solutions_ = from.enumerate_all_solutions_;
4802 if (cached_has_bits & 0x00400000u) {
4803 fill_tightened_domains_in_response_ = from.fill_tightened_domains_in_response_;
4805 if (cached_has_bits & 0x00800000u) {
4806 use_pb_resolution_ = from.use_pb_resolution_;
4808 _has_bits_[0] |= cached_has_bits;
4810 if (cached_has_bits & 0xff000000u) {
4811 if (cached_has_bits & 0x01000000u) {
4812 minimize_reduction_during_pb_resolution_ = from.minimize_reduction_during_pb_resolution_;
4814 if (cached_has_bits & 0x02000000u) {
4815 cp_model_postsolve_with_full_solver_ = from.cp_model_postsolve_with_full_solver_;
4817 if (cached_has_bits & 0x04000000u) {
4818 use_sat_inprocessing_ = from.use_sat_inprocessing_;
4820 if (cached_has_bits & 0x08000000u) {
4821 search_randomization_tolerance_ = from.search_randomization_tolerance_;
4823 if (cached_has_bits & 0x10000000u) {
4824 use_lns_only_ = from.use_lns_only_;
4826 if (cached_has_bits & 0x20000000u) {
4827 lns_focus_on_decision_variables_ = from.lns_focus_on_decision_variables_;
4829 if (cached_has_bits & 0x40000000u) {
4830 use_relaxation_lns_ = from.use_relaxation_lns_;
4832 if (cached_has_bits & 0x80000000u) {
4833 diversify_lns_params_ = from.diversify_lns_params_;
4835 _has_bits_[0] |= cached_has_bits;
4837 cached_has_bits = from._has_bits_[1];
4838 if (cached_has_bits & 0x000000ffu) {
4839 if (cached_has_bits & 0x00000001u) {
4840 randomize_search_ = from.randomize_search_;
4842 if (cached_has_bits & 0x00000002u) {
4843 use_branching_in_lp_ = from.use_branching_in_lp_;
4845 if (cached_has_bits & 0x00000004u) {
4846 use_combined_no_overlap_ = from.use_combined_no_overlap_;
4848 if (cached_has_bits & 0x00000008u) {
4849 stop_after_first_solution_ = from.stop_after_first_solution_;
4851 if (cached_has_bits & 0x00000010u) {
4852 stop_after_presolve_ = from.stop_after_presolve_;
4854 if (cached_has_bits & 0x00000020u) {
4855 interleave_search_ = from.interleave_search_;
4857 if (cached_has_bits & 0x00000040u) {
4858 reduce_memory_usage_in_interleave_mode_ = from.reduce_memory_usage_in_interleave_mode_;
4860 if (cached_has_bits & 0x00000080u) {
4861 add_knapsack_cuts_ = from.add_knapsack_cuts_;
4863 _has_bits_[1] |= cached_has_bits;
4865 if (cached_has_bits & 0x0000ff00u) {
4866 if (cached_has_bits & 0x00000100u) {
4867 repair_hint_ = from.repair_hint_;
4869 if (cached_has_bits & 0x00000200u) {
4870 exploit_best_solution_ = from.exploit_best_solution_;
4872 if (cached_has_bits & 0x00000400u) {
4873 exploit_relaxation_solution_ = from.exploit_relaxation_solution_;
4875 if (cached_has_bits & 0x00000800u) {
4876 probing_period_at_root_ = from.probing_period_at_root_;
4878 if (cached_has_bits & 0x00001000u) {
4879 cp_model_max_num_presolve_operations_ = from.cp_model_max_num_presolve_operations_;
4881 if (cached_has_bits & 0x00002000u) {
4882 absolute_gap_limit_ = from.absolute_gap_limit_;
4884 if (cached_has_bits & 0x00004000u) {
4885 relative_gap_limit_ = from.relative_gap_limit_;
4887 if (cached_has_bits & 0x00008000u) {
4888 initial_polarity_ = from.initial_polarity_;
4890 _has_bits_[1] |= cached_has_bits;
4892 if (cached_has_bits & 0x00ff0000u) {
4893 if (cached_has_bits & 0x00010000u) {
4894 minimization_algorithm_ = from.minimization_algorithm_;
4896 if (cached_has_bits & 0x00020000u) {
4897 clause_cleanup_period_ = from.clause_cleanup_period_;
4899 if (cached_has_bits & 0x00040000u) {
4900 clause_cleanup_target_ = from.clause_cleanup_target_;
4902 if (cached_has_bits & 0x00080000u) {
4903 variable_activity_decay_ = from.variable_activity_decay_;
4905 if (cached_has_bits & 0x00100000u) {
4906 max_variable_activity_value_ = from.max_variable_activity_value_;
4908 if (cached_has_bits & 0x00200000u) {
4909 clause_activity_decay_ = from.clause_activity_decay_;
4911 if (cached_has_bits & 0x00400000u) {
4912 max_clause_activity_value_ = from.max_clause_activity_value_;
4914 if (cached_has_bits & 0x00800000u) {
4915 glucose_max_decay_ = from.glucose_max_decay_;
4917 _has_bits_[1] |= cached_has_bits;
4919 if (cached_has_bits & 0xff000000u) {
4920 if (cached_has_bits & 0x01000000u) {
4921 glucose_decay_increment_ = from.glucose_decay_increment_;
4923 if (cached_has_bits & 0x02000000u) {
4924 glucose_decay_increment_period_ = from.glucose_decay_increment_period_;
4926 if (cached_has_bits & 0x04000000u) {
4927 restart_period_ = from.restart_period_;
4929 if (cached_has_bits & 0x08000000u) {
4930 random_seed_ = from.random_seed_;
4932 if (cached_has_bits & 0x10000000u) {
4933 binary_minimization_algorithm_ = from.binary_minimization_algorithm_;
4935 if (cached_has_bits & 0x20000000u) {
4936 max_time_in_seconds_ = from.max_time_in_seconds_;
4938 if (cached_has_bits & 0x40000000u) {
4939 max_number_of_conflicts_ = from.max_number_of_conflicts_;
4941 if (cached_has_bits & 0x80000000u) {
4942 max_memory_in_mb_ = from.max_memory_in_mb_;
4944 _has_bits_[1] |= cached_has_bits;
4946 cached_has_bits = from._has_bits_[2];
4947 if (cached_has_bits & 0x000000ffu) {
4948 if (cached_has_bits & 0x00000001u) {
4949 use_phase_saving_ = from.use_phase_saving_;
4951 if (cached_has_bits & 0x00000002u) {
4952 subsumption_during_conflict_analysis_ = from.subsumption_during_conflict_analysis_;
4954 if (cached_has_bits & 0x00000004u) {
4955 treat_binary_clauses_separately_ = from.treat_binary_clauses_separately_;
4957 if (cached_has_bits & 0x00000008u) {
4958 count_assumption_levels_in_lbd_ = from.count_assumption_levels_in_lbd_;
4960 if (cached_has_bits & 0x00000010u) {
4961 pb_cleanup_increment_ = from.pb_cleanup_increment_;
4963 if (cached_has_bits & 0x00000020u) {
4964 pb_cleanup_ratio_ = from.pb_cleanup_ratio_;
4966 if (cached_has_bits & 0x00000040u) {
4967 max_sat_stratification_ = from.max_sat_stratification_;
4969 if (cached_has_bits & 0x00000080u) {
4970 presolve_bve_threshold_ = from.presolve_bve_threshold_;
4972 _has_bits_[2] |= cached_has_bits;
4974 if (cached_has_bits & 0x0000ff00u) {
4975 if (cached_has_bits & 0x00000100u) {
4976 presolve_probing_deterministic_time_limit_ = from.presolve_probing_deterministic_time_limit_;
4978 if (cached_has_bits & 0x00000200u) {
4979 presolve_bve_clause_weight_ = from.presolve_bve_clause_weight_;
4981 if (cached_has_bits & 0x00000400u) {
4982 clause_cleanup_lbd_bound_ = from.clause_cleanup_lbd_bound_;
4984 if (cached_has_bits & 0x00000800u) {
4985 restart_dl_average_ratio_ = from.restart_dl_average_ratio_;
4987 if (cached_has_bits & 0x00001000u) {
4988 restart_running_window_size_ = from.restart_running_window_size_;
4990 if (cached_has_bits & 0x00002000u) {
4991 blocking_restart_window_size_ = from.blocking_restart_window_size_;
4993 if (cached_has_bits & 0x00004000u) {
4994 blocking_restart_multiplier_ = from.blocking_restart_multiplier_;
4996 if (cached_has_bits & 0x00008000u) {
4997 max_deterministic_time_ = from.max_deterministic_time_;
4999 _has_bits_[2] |= cached_has_bits;
5001 if (cached_has_bits & 0x00ff0000u) {
5002 if (cached_has_bits & 0x00010000u) {
5003 restart_lbd_average_ratio_ = from.restart_lbd_average_ratio_;
5005 if (cached_has_bits & 0x00020000u) {
5006 presolve_bva_threshold_ = from.presolve_bva_threshold_;
5008 if (cached_has_bits & 0x00040000u) {
5009 minimize_core_ = from.minimize_core_;
5011 if (cached_has_bits & 0x00080000u) {
5012 find_multiple_cores_ = from.find_multiple_cores_;
5014 if (cached_has_bits & 0x00100000u) {
5015 cover_optimization_ = from.cover_optimization_;
5017 if (cached_has_bits & 0x00200000u) {
5018 use_precedences_in_disjunctive_constraint_ = from.use_precedences_in_disjunctive_constraint_;
5020 if (cached_has_bits & 0x00400000u) {
5021 presolve_blocked_clause_ = from.presolve_blocked_clause_;
5023 if (cached_has_bits & 0x00800000u) {
5024 presolve_use_bva_ = from.presolve_use_bva_;
5026 _has_bits_[2] |= cached_has_bits;
5028 if (cached_has_bits & 0xff000000u) {
5029 if (cached_has_bits & 0x01000000u) {
5030 cp_model_presolve_ = from.cp_model_presolve_;
5032 if (cached_has_bits & 0x02000000u) {
5033 cp_model_use_sat_presolve_ = from.cp_model_use_sat_presolve_;
5035 if (cached_has_bits & 0x04000000u) {
5036 linearization_level_ = from.linearization_level_;
5038 if (cached_has_bits & 0x08000000u) {
5039 max_num_cuts_ = from.max_num_cuts_;
5041 if (cached_has_bits & 0x10000000u) {
5042 minimize_with_propagation_restart_period_ = from.minimize_with_propagation_restart_period_;
5044 if (cached_has_bits & 0x20000000u) {
5045 minimize_with_propagation_num_decisions_ = from.minimize_with_propagation_num_decisions_;
5047 if (cached_has_bits & 0x40000000u) {
5048 binary_search_num_conflicts_ = from.binary_search_num_conflicts_;
5050 if (cached_has_bits & 0x80000000u) {
5051 num_search_workers_ = from.num_search_workers_;
5053 _has_bits_[2] |= cached_has_bits;
5055 cached_has_bits = from._has_bits_[3];
5056 if (cached_has_bits & 0x000000ffu) {
5057 if (cached_has_bits & 0x00000001u) {
5058 boolean_encoding_level_ = from.boolean_encoding_level_;
5060 if (cached_has_bits & 0x00000002u) {
5061 instantiate_all_variables_ = from.instantiate_all_variables_;
5063 if (cached_has_bits & 0x00000004u) {
5064 auto_detect_greater_than_at_least_one_of_ = from.auto_detect_greater_than_at_least_one_of_;
5066 if (cached_has_bits & 0x00000008u) {
5067 share_objective_bounds_ = from.share_objective_bounds_;
5069 if (cached_has_bits & 0x00000010u) {
5070 share_level_zero_bounds_ = from.share_level_zero_bounds_;
5072 if (cached_has_bits & 0x00000020u) {
5073 cp_model_probing_level_ = from.cp_model_probing_level_;
5075 if (cached_has_bits & 0x00000040u) {
5076 min_orthogonality_for_lp_constraints_ = from.min_orthogonality_for_lp_constraints_;
5078 if (cached_has_bits & 0x00000080u) {
5079 add_lp_constraints_lazily_ = from.add_lp_constraints_lazily_;
5081 _has_bits_[3] |= cached_has_bits;
5083 if (cached_has_bits & 0x0000ff00u) {
5084 if (cached_has_bits & 0x00000100u) {
5085 exploit_integer_lp_solution_ = from.exploit_integer_lp_solution_;
5087 if (cached_has_bits & 0x00000200u) {
5088 exploit_all_lp_solution_ = from.exploit_all_lp_solution_;
5090 if (cached_has_bits & 0x00000400u) {
5091 exploit_objective_ = from.exploit_objective_;
5093 if (cached_has_bits & 0x00000800u) {
5094 use_disjunctive_constraint_in_cumulative_constraint_ = from.use_disjunctive_constraint_in_cumulative_constraint_;
5096 if (cached_has_bits & 0x00001000u) {
5097 add_cg_cuts_ = from.add_cg_cuts_;
5099 if (cached_has_bits & 0x00002000u) {
5100 add_mir_cuts_ = from.add_mir_cuts_;
5102 if (cached_has_bits & 0x00004000u) {
5103 add_lin_max_cuts_ = from.add_lin_max_cuts_;
5105 if (cached_has_bits & 0x00008000u) {
5106 max_integer_rounding_scaling_ = from.max_integer_rounding_scaling_;
5108 _has_bits_[3] |= cached_has_bits;
5110 if (cached_has_bits & 0x00ff0000u) {
5111 if (cached_has_bits & 0x00010000u) {
5112 expand_element_constraints_ = from.expand_element_constraints_;
5114 if (cached_has_bits & 0x00020000u) {
5115 expand_automaton_constraints_ = from.expand_automaton_constraints_;
5117 if (cached_has_bits & 0x00040000u) {
5118 expand_table_constraints_ = from.expand_table_constraints_;
5120 if (cached_has_bits & 0x00080000u) {
5121 use_optimization_hints_ = from.use_optimization_hints_;
5123 if (cached_has_bits & 0x00100000u) {
5124 max_consecutive_inactive_count_ = from.max_consecutive_inactive_count_;
5126 if (cached_has_bits & 0x00200000u) {
5127 new_constraints_batch_size_ = from.new_constraints_batch_size_;
5129 if (cached_has_bits & 0x00400000u) {
5130 pseudo_cost_reliability_threshold_ = from.pseudo_cost_reliability_threshold_;
5132 if (cached_has_bits & 0x00800000u) {
5133 mip_max_bound_ = from.mip_max_bound_;
5135 _has_bits_[3] |= cached_has_bits;
5137 if (cached_has_bits & 0xff000000u) {
5138 if (cached_has_bits & 0x01000000u) {
5139 mip_var_scaling_ = from.mip_var_scaling_;
5141 if (cached_has_bits & 0x02000000u) {
5142 mip_wanted_precision_ = from.mip_wanted_precision_;
5144 if (cached_has_bits & 0x04000000u) {
5145 mip_max_activity_exponent_ = from.mip_max_activity_exponent_;
5147 if (cached_has_bits & 0x08000000u) {
5148 use_rins_lns_ = from.use_rins_lns_;
5150 if (cached_has_bits & 0x10000000u) {
5151 use_feasibility_pump_ = from.use_feasibility_pump_;
5153 if (cached_has_bits & 0x20000000u) {
5154 use_optional_variables_ = from.use_optional_variables_;
5156 if (cached_has_bits & 0x40000000u) {
5157 use_exact_lp_reason_ = from.use_exact_lp_reason_;
5159 if (cached_has_bits & 0x80000000u) {
5160 mip_check_precision_ = from.mip_check_precision_;
5162 _has_bits_[3] |= cached_has_bits;
5164 cached_has_bits = from._has_bits_[4];
5165 if (cached_has_bits & 0x000000ffu) {
5166 if (cached_has_bits & 0x00000001u) {
5167 interleave_batch_size_ = from.interleave_batch_size_;
5169 if (cached_has_bits & 0x00000002u) {
5170 max_presolve_iterations_ = from.max_presolve_iterations_;
5172 if (cached_has_bits & 0x00000004u) {
5173 merge_no_overlap_work_limit_ = from.merge_no_overlap_work_limit_;
5175 if (cached_has_bits & 0x00000008u) {
5176 merge_at_most_one_work_limit_ = from.merge_at_most_one_work_limit_;
5178 if (cached_has_bits & 0x00000010u) {
5179 presolve_substitution_level_ = from.presolve_substitution_level_;
5181 if (cached_has_bits & 0x00000020u) {
5182 max_all_diff_cut_size_ = from.max_all_diff_cut_size_;
5184 if (cached_has_bits & 0x00000040u) {
5185 catch_sigint_signal_ = from.catch_sigint_signal_;
5187 if (cached_has_bits & 0x00000080u) {
5188 use_implied_bounds_ = from.use_implied_bounds_;
5190 _has_bits_[4] |= cached_has_bits;
5192 if (cached_has_bits & 0x0000ff00u) {
5193 if (cached_has_bits & 0x00000100u) {
5194 mip_automatically_scale_variables_ = from.mip_automatically_scale_variables_;
5196 if (cached_has_bits & 0x00000200u) {
5197 hint_conflict_limit_ = from.hint_conflict_limit_;
5199 if (cached_has_bits & 0x00000400u) {
5200 cut_max_active_count_value_ = from.cut_max_active_count_value_;
5202 if (cached_has_bits & 0x00000800u) {
5203 max_cut_rounds_at_level_zero_ = from.max_cut_rounds_at_level_zero_;
5205 if (cached_has_bits & 0x00001000u) {
5206 cut_cleanup_target_ = from.cut_cleanup_target_;
5208 if (cached_has_bits & 0x00002000u) {
5209 cut_active_count_decay_ = from.cut_active_count_decay_;
5211 if (cached_has_bits & 0x00004000u) {
5212 fp_rounding_ = from.fp_rounding_;
5214 if (cached_has_bits & 0x00008000u) {
5215 polarity_rephase_increment_ = from.polarity_rephase_increment_;
5217 _has_bits_[4] |= cached_has_bits;
5221 void SatParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5223 if (&from ==
this)
return;
5228 void SatParameters::CopyFrom(
const SatParameters& from) {
5230 if (&from ==
this)
return;
5235 bool SatParameters::IsInitialized()
const {
5239 void SatParameters::InternalSwap(SatParameters* other) {
5241 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5242 swap(_has_bits_[0], other->_has_bits_[0]);
5243 swap(_has_bits_[1], other->_has_bits_[1]);
5244 swap(_has_bits_[2], other->_has_bits_[2]);
5245 swap(_has_bits_[3], other->_has_bits_[3]);
5246 swap(_has_bits_[4], other->_has_bits_[4]);
5247 restart_algorithms_.InternalSwap(&other->restart_algorithms_);
5248 default_restart_algorithms_.Swap(&other->default_restart_algorithms_, &::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get(), GetArena());
5249 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
5250 PROTOBUF_FIELD_OFFSET(SatParameters, relative_gap_limit_)
5251 +
sizeof(SatParameters::relative_gap_limit_)
5252 - PROTOBUF_FIELD_OFFSET(SatParameters, preferred_variable_order_)>(
5253 reinterpret_cast<char*
>(&preferred_variable_order_),
5254 reinterpret_cast<char*
>(&other->preferred_variable_order_));
5255 swap(initial_polarity_, other->initial_polarity_);
5256 swap(minimization_algorithm_, other->minimization_algorithm_);
5257 swap(clause_cleanup_period_, other->clause_cleanup_period_);
5258 swap(clause_cleanup_target_, other->clause_cleanup_target_);
5259 swap(variable_activity_decay_, other->variable_activity_decay_);
5260 swap(max_variable_activity_value_, other->max_variable_activity_value_);
5261 swap(clause_activity_decay_, other->clause_activity_decay_);
5262 swap(max_clause_activity_value_, other->max_clause_activity_value_);
5263 swap(glucose_max_decay_, other->glucose_max_decay_);
5264 swap(glucose_decay_increment_, other->glucose_decay_increment_);
5265 swap(glucose_decay_increment_period_, other->glucose_decay_increment_period_);
5266 swap(restart_period_, other->restart_period_);
5267 swap(random_seed_, other->random_seed_);
5268 swap(binary_minimization_algorithm_, other->binary_minimization_algorithm_);
5269 swap(max_time_in_seconds_, other->max_time_in_seconds_);
5270 swap(max_number_of_conflicts_, other->max_number_of_conflicts_);
5271 swap(max_memory_in_mb_, other->max_memory_in_mb_);
5272 swap(use_phase_saving_, other->use_phase_saving_);
5273 swap(subsumption_during_conflict_analysis_, other->subsumption_during_conflict_analysis_);
5274 swap(treat_binary_clauses_separately_, other->treat_binary_clauses_separately_);
5275 swap(count_assumption_levels_in_lbd_, other->count_assumption_levels_in_lbd_);
5276 swap(pb_cleanup_increment_, other->pb_cleanup_increment_);
5277 swap(pb_cleanup_ratio_, other->pb_cleanup_ratio_);
5278 swap(max_sat_stratification_, other->max_sat_stratification_);
5279 swap(presolve_bve_threshold_, other->presolve_bve_threshold_);
5280 swap(presolve_probing_deterministic_time_limit_, other->presolve_probing_deterministic_time_limit_);
5281 swap(presolve_bve_clause_weight_, other->presolve_bve_clause_weight_);
5282 swap(clause_cleanup_lbd_bound_, other->clause_cleanup_lbd_bound_);
5283 swap(restart_dl_average_ratio_, other->restart_dl_average_ratio_);
5284 swap(restart_running_window_size_, other->restart_running_window_size_);
5285 swap(blocking_restart_window_size_, other->blocking_restart_window_size_);
5286 swap(blocking_restart_multiplier_, other->blocking_restart_multiplier_);
5287 swap(max_deterministic_time_, other->max_deterministic_time_);
5288 swap(restart_lbd_average_ratio_, other->restart_lbd_average_ratio_);
5289 swap(presolve_bva_threshold_, other->presolve_bva_threshold_);
5290 swap(minimize_core_, other->minimize_core_);
5291 swap(find_multiple_cores_, other->find_multiple_cores_);
5292 swap(cover_optimization_, other->cover_optimization_);
5293 swap(use_precedences_in_disjunctive_constraint_, other->use_precedences_in_disjunctive_constraint_);
5294 swap(presolve_blocked_clause_, other->presolve_blocked_clause_);
5295 swap(presolve_use_bva_, other->presolve_use_bva_);
5296 swap(cp_model_presolve_, other->cp_model_presolve_);
5297 swap(cp_model_use_sat_presolve_, other->cp_model_use_sat_presolve_);
5298 swap(linearization_level_, other->linearization_level_);
5299 swap(max_num_cuts_, other->max_num_cuts_);
5300 swap(minimize_with_propagation_restart_period_, other->minimize_with_propagation_restart_period_);
5301 swap(minimize_with_propagation_num_decisions_, other->minimize_with_propagation_num_decisions_);
5302 swap(binary_search_num_conflicts_, other->binary_search_num_conflicts_);
5303 swap(num_search_workers_, other->num_search_workers_);
5304 swap(boolean_encoding_level_, other->boolean_encoding_level_);
5305 swap(instantiate_all_variables_, other->instantiate_all_variables_);
5306 swap(auto_detect_greater_than_at_least_one_of_, other->auto_detect_greater_than_at_least_one_of_);
5307 swap(share_objective_bounds_, other->share_objective_bounds_);
5308 swap(share_level_zero_bounds_, other->share_level_zero_bounds_);
5309 swap(cp_model_probing_level_, other->cp_model_probing_level_);
5310 swap(min_orthogonality_for_lp_constraints_, other->min_orthogonality_for_lp_constraints_);
5311 swap(add_lp_constraints_lazily_, other->add_lp_constraints_lazily_);
5312 swap(exploit_integer_lp_solution_, other->exploit_integer_lp_solution_);
5313 swap(exploit_all_lp_solution_, other->exploit_all_lp_solution_);
5314 swap(exploit_objective_, other->exploit_objective_);
5315 swap(use_disjunctive_constraint_in_cumulative_constraint_, other->use_disjunctive_constraint_in_cumulative_constraint_);
5316 swap(add_cg_cuts_, other->add_cg_cuts_);
5317 swap(add_mir_cuts_, other->add_mir_cuts_);
5318 swap(add_lin_max_cuts_, other->add_lin_max_cuts_);
5319 swap(max_integer_rounding_scaling_, other->max_integer_rounding_scaling_);
5320 swap(expand_element_constraints_, other->expand_element_constraints_);
5321 swap(expand_automaton_constraints_, other->expand_automaton_constraints_);
5322 swap(expand_table_constraints_, other->expand_table_constraints_);
5323 swap(use_optimization_hints_, other->use_optimization_hints_);
5324 swap(max_consecutive_inactive_count_, other->max_consecutive_inactive_count_);
5325 swap(new_constraints_batch_size_, other->new_constraints_batch_size_);
5326 swap(pseudo_cost_reliability_threshold_, other->pseudo_cost_reliability_threshold_);
5327 swap(mip_max_bound_, other->mip_max_bound_);
5328 swap(mip_var_scaling_, other->mip_var_scaling_);
5329 swap(mip_wanted_precision_, other->mip_wanted_precision_);
5330 swap(mip_max_activity_exponent_, other->mip_max_activity_exponent_);
5331 swap(use_rins_lns_, other->use_rins_lns_);
5332 swap(use_feasibility_pump_, other->use_feasibility_pump_);
5333 swap(use_optional_variables_, other->use_optional_variables_);
5334 swap(use_exact_lp_reason_, other->use_exact_lp_reason_);
5335 swap(mip_check_precision_, other->mip_check_precision_);
5336 swap(interleave_batch_size_, other->interleave_batch_size_);
5337 swap(max_presolve_iterations_, other->max_presolve_iterations_);
5338 swap(merge_no_overlap_work_limit_, other->merge_no_overlap_work_limit_);
5339 swap(merge_at_most_one_work_limit_, other->merge_at_most_one_work_limit_);
5340 swap(presolve_substitution_level_, other->presolve_substitution_level_);
5341 swap(max_all_diff_cut_size_, other->max_all_diff_cut_size_);
5342 swap(catch_sigint_signal_, other->catch_sigint_signal_);
5343 swap(use_implied_bounds_, other->use_implied_bounds_);
5344 swap(mip_automatically_scale_variables_, other->mip_automatically_scale_variables_);
5345 swap(hint_conflict_limit_, other->hint_conflict_limit_);
5346 swap(cut_max_active_count_value_, other->cut_max_active_count_value_);
5347 swap(max_cut_rounds_at_level_zero_, other->max_cut_rounds_at_level_zero_);
5348 swap(cut_cleanup_target_, other->cut_cleanup_target_);
5349 swap(cut_active_count_decay_, other->cut_active_count_decay_);
5350 swap(fp_rounding_, other->fp_rounding_);
5351 swap(polarity_rephase_increment_, other->polarity_rephase_increment_);
5354 ::PROTOBUF_NAMESPACE_ID::Metadata SatParameters::GetMetadata()
const {
5355 return GetMetadataStatic();
5362 PROTOBUF_NAMESPACE_OPEN
5364 return Arena::CreateMessageInternal< ::operations_research::sat::SatParameters >(arena);
5366 PROTOBUF_NAMESPACE_CLOSE
5369 #include <google/protobuf/port_undef.inc>