Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
SatParameters.java
Go to the documentation of this file.
1// Generated by the protocol buffer compiler. DO NOT EDIT!
2// NO CHECKED-IN PROTOBUF GENCODE
3// source: ortools/sat/sat_parameters.proto
4// Protobuf Java Version: 4.29.3
5
6package com.google.ortools.sat;
7
18public final class SatParameters extends
19 com.google.protobuf.GeneratedMessage implements
20 // @@protoc_insertion_point(message_implements:operations_research.sat.SatParameters)
22private static final long serialVersionUID = 0L;
23 static {
24 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
25 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
26 /* major= */ 4,
27 /* minor= */ 29,
28 /* patch= */ 3,
29 /* suffix= */ "",
30 SatParameters.class.getName());
31 }
32 // Use SatParameters.newBuilder() to construct.
33 private SatParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
34 super(builder);
35 }
36 private SatParameters() {
37 name_ = "";
38 preferredVariableOrder_ = 0;
39 initialPolarity_ = 1;
40 usePhaseSaving_ = true;
41 polarityRephaseIncrement_ = 1000;
42 minimizationAlgorithm_ = 2;
43 binaryMinimizationAlgorithm_ = 1;
44 subsumptionDuringConflictAnalysis_ = true;
45 clauseCleanupPeriod_ = 10000;
46 clauseCleanupRatio_ = 0.5D;
47 clauseCleanupProtection_ = 0;
48 clauseCleanupLbdBound_ = 5;
49 clauseCleanupOrdering_ = 0;
50 pbCleanupIncrement_ = 200;
51 pbCleanupRatio_ = 0.5D;
52 variableActivityDecay_ = 0.8D;
53 maxVariableActivityValue_ = 1e+100D;
54 glucoseMaxDecay_ = 0.95D;
55 glucoseDecayIncrement_ = 0.01D;
56 glucoseDecayIncrementPeriod_ = 5000;
57 clauseActivityDecay_ = 0.999D;
58 maxClauseActivityValue_ = 1e+20D;
59 restartAlgorithms_ = emptyIntList();
60 defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
61 restartPeriod_ = 50;
62 restartRunningWindowSize_ = 50;
63 restartDlAverageRatio_ = 1D;
64 restartLbdAverageRatio_ = 1D;
65 blockingRestartWindowSize_ = 5000;
66 blockingRestartMultiplier_ = 1.4D;
67 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
68 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
69 maxNumberOfConflicts_ = 9223372036854775807L;
70 maxMemoryInMb_ = 10000L;
71 absoluteGapLimit_ = 0.0001D;
72 randomSeed_ = 1;
73 logPrefix_ = "";
74 logToStdout_ = true;
75 countAssumptionLevelsInLbd_ = true;
76 presolveBveThreshold_ = 500;
77 presolveBveClauseWeight_ = 3;
78 probingDeterministicTimeLimit_ = 1D;
79 presolveProbingDeterministicTimeLimit_ = 30D;
80 presolveBlockedClause_ = true;
81 presolveUseBva_ = true;
82 presolveBvaThreshold_ = 1;
83 maxPresolveIterations_ = 3;
84 cpModelPresolve_ = true;
85 cpModelProbingLevel_ = 2;
86 cpModelUseSatPresolve_ = true;
87 removeFixedVariablesEarly_ = true;
88 tableCompressionLevel_ = 2;
89 expandReservoirConstraints_ = true;
90 mergeNoOverlapWorkLimit_ = 1000000000000D;
91 mergeAtMostOneWorkLimit_ = 100000000D;
92 presolveSubstitutionLevel_ = 1;
93 presolveInclusionWorkLimit_ = 100000000L;
94 ignoreNames_ = true;
95 inferAllDiffs_ = true;
96 findBigLinearOverlap_ = true;
97 useSatInprocessing_ = true;
98 inprocessingDtimeRatio_ = 0.2D;
99 inprocessingProbingDtime_ = 1D;
100 inprocessingMinimizationDtime_ = 1D;
101 inprocessingMinimizationUseConflictAnalysis_ = true;
102 subsolvers_ =
103 com.google.protobuf.LazyStringArrayList.emptyList();
104 extraSubsolvers_ =
105 com.google.protobuf.LazyStringArrayList.emptyList();
106 ignoreSubsolvers_ =
107 com.google.protobuf.LazyStringArrayList.emptyList();
108 filterSubsolvers_ =
109 com.google.protobuf.LazyStringArrayList.emptyList();
110 subsolverParams_ = java.util.Collections.emptyList();
111 shareObjectiveBounds_ = true;
112 shareLevelZeroBounds_ = true;
113 shareBinaryClauses_ = true;
114 minimizeSharedClauses_ = true;
115 useOptimizationHints_ = true;
116 coreMinimizationLevel_ = 2;
117 findMultipleCores_ = true;
118 coverOptimization_ = true;
119 maxSatAssumptionOrder_ = 0;
120 maxSatStratification_ = 1;
121 propagationLoopDetectionFactor_ = 10D;
122 usePrecedencesInDisjunctiveConstraint_ = true;
123 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
124 maxNumIntervalsForTimetableEdgeFinding_ = 100;
125 useDisjunctiveConstraintInCumulative_ = true;
126 maxPairsPairwiseReasoningInNoOverlap2D_ = 1250;
127 useDualSchedulingHeuristics_ = true;
128 routingCutDpEffort_ = 10000000D;
129 searchBranching_ = 0;
130 hintConflictLimit_ = 10;
131 useExtendedProbing_ = true;
132 probingNumCombinationsLimit_ = 20000;
133 useShavingInProbingSearch_ = true;
134 shavingSearchDeterministicTime_ = 0.001D;
135 shavingSearchThreshold_ = 64L;
136 pseudoCostReliabilityThreshold_ = 100L;
137 binarySearchNumConflicts_ = -1;
138 useFeasibilityJump_ = true;
139 feasibilityJumpDecay_ = 0.95D;
140 feasibilityJumpLinearizationLevel_ = 2;
141 feasibilityJumpRestartFactor_ = 1;
142 feasibilityJumpBatchDtime_ = 0.1D;
143 feasibilityJumpVarRandomizationProbability_ = 0.05D;
144 feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
145 feasibilityJumpEnableRestarts_ = true;
146 feasibilityJumpMaxExpandedConstraintSize_ = 500;
147 violationLsPerturbationPeriod_ = 100;
148 violationLsCompoundMoveProbability_ = 0.5D;
149 sharedTreeWorkerMinRestartsPerSubtree_ = 1;
150 sharedTreeWorkerEnableTrailSharing_ = true;
151 sharedTreeWorkerEnablePhaseSharing_ = true;
152 sharedTreeOpenLeavesPerWorker_ = 2D;
153 sharedTreeMaxNodesPerWorker_ = 10000;
154 sharedTreeSplitStrategy_ = 0;
155 sharedTreeBalanceTolerance_ = 1;
156 instantiateAllVariables_ = true;
157 autoDetectGreaterThanAtLeastOneOf_ = true;
158 lnsInitialDifficulty_ = 0.5D;
159 lnsInitialDeterministicLimit_ = 0.1D;
160 useLns_ = true;
161 solutionPoolSize_ = 3;
162 useRinsLns_ = true;
163 useFeasibilityPump_ = true;
164 useLbRelaxLns_ = true;
165 lbRelaxNumWorkersThreshold_ = 16;
166 fpRounding_ = 2;
167 useExactLpReason_ = true;
168 atMostOneMaxExpansionSize_ = 3;
169 catchSigintSignal_ = true;
170 useImpliedBounds_ = true;
171 lpPrimalTolerance_ = 1e-07D;
172 lpDualTolerance_ = 1e-07D;
173 convertIntervals_ = true;
174 symmetryLevel_ = 2;
175 symmetryDetectionDeterministicTimeLimit_ = 1D;
176 newLinearPropagation_ = true;
177 linearSplitSize_ = 100;
178 linearizationLevel_ = 1;
179 booleanEncodingLevel_ = 1;
180 maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
181 maxNumCuts_ = 10000;
182 cutLevel_ = 1;
183 addCgCuts_ = true;
184 addMirCuts_ = true;
185 addZeroHalfCuts_ = true;
186 addCliqueCuts_ = true;
187 addRltCuts_ = true;
188 maxAllDiffCutSize_ = 64;
189 addLinMaxCuts_ = true;
190 maxIntegerRoundingScaling_ = 600;
191 addLpConstraintsLazily_ = true;
192 rootLpIterations_ = 2000;
193 minOrthogonalityForLpConstraints_ = 0.05D;
194 maxCutRoundsAtLevelZero_ = 1;
195 maxConsecutiveInactiveCount_ = 100;
196 cutMaxActiveCountValue_ = 10000000000D;
197 cutActiveCountDecay_ = 0.8D;
198 cutCleanupTarget_ = 1000;
199 newConstraintsBatchSize_ = 50;
200 exploitIntegerLpSolution_ = true;
201 exploitAllLpSolution_ = true;
202 exploitObjective_ = true;
203 mipMaxBound_ = 10000000D;
204 mipVarScaling_ = 1D;
205 mipAutomaticallyScaleVariables_ = true;
206 mipWantedPrecision_ = 1e-06D;
207 mipMaxActivityExponent_ = 53;
208 mipCheckPrecision_ = 0.0001D;
209 mipComputeTrueObjectiveBound_ = true;
210 mipMaxValidMagnitude_ = 1e+20D;
211 mipDropTolerance_ = 1e-16D;
212 mipPresolveLevel_ = 2;
213 }
214
215 public static final com.google.protobuf.Descriptors.Descriptor
217 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
218 }
219
220 @java.lang.Override
221 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
223 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
224 .ensureFieldAccessorsInitialized(
225 com.google.ortools.sat.SatParameters.class, com.google.ortools.sat.SatParameters.Builder.class);
226 }
227
236 public enum VariableOrder
237 implements com.google.protobuf.ProtocolMessageEnum {
254 ;
255
256 static {
257 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
258 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
259 /* major= */ 4,
260 /* minor= */ 29,
261 /* patch= */ 3,
262 /* suffix= */ "",
263 VariableOrder.class.getName());
264 }
272 public static final int IN_ORDER_VALUE = 0;
276 public static final int IN_REVERSE_ORDER_VALUE = 1;
280 public static final int IN_RANDOM_ORDER_VALUE = 2;
281
282
283 public final int getNumber() {
284 return value;
285 }
286
292 @java.lang.Deprecated
293 public static VariableOrder valueOf(int value) {
294 return forNumber(value);
295 }
296
301 public static VariableOrder forNumber(int value) {
302 switch (value) {
303 case 0: return IN_ORDER;
304 case 1: return IN_REVERSE_ORDER;
305 case 2: return IN_RANDOM_ORDER;
306 default: return null;
307 }
308 }
309
310 public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
312 return internalValueMap;
313 }
314 private static final com.google.protobuf.Internal.EnumLiteMap<
315 VariableOrder> internalValueMap =
316 new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
317 public VariableOrder findValueByNumber(int number) {
318 return VariableOrder.forNumber(number);
319 }
320 };
321
322 public final com.google.protobuf.Descriptors.EnumValueDescriptor
324 return getDescriptor().getValues().get(ordinal());
325 }
326 public final com.google.protobuf.Descriptors.EnumDescriptor
328 return getDescriptor();
329 }
330 public static final com.google.protobuf.Descriptors.EnumDescriptor
332 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
333 }
334
335 private static final VariableOrder[] VALUES = values();
336
337 public static VariableOrder valueOf(
338 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
339 if (desc.getType() != getDescriptor()) {
340 throw new java.lang.IllegalArgumentException(
341 "EnumValueDescriptor is not for this type.");
342 }
343 return VALUES[desc.getIndex()];
344 }
345
346 private final int value;
347
348 private VariableOrder(int value) {
349 this.value = value;
350 }
351
352 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
353 }
354
367 public enum Polarity
368 implements com.google.protobuf.ProtocolMessageEnum {
381 ;
382
383 static {
384 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
385 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
386 /* major= */ 4,
387 /* minor= */ 29,
388 /* patch= */ 3,
389 /* suffix= */ "",
390 Polarity.class.getName());
391 }
395 public static final int POLARITY_TRUE_VALUE = 0;
399 public static final int POLARITY_FALSE_VALUE = 1;
403 public static final int POLARITY_RANDOM_VALUE = 2;
404
405
406 public final int getNumber() {
407 return value;
408 }
409
415 @java.lang.Deprecated
416 public static Polarity valueOf(int value) {
417 return forNumber(value);
418 }
419
424 public static Polarity forNumber(int value) {
425 switch (value) {
426 case 0: return POLARITY_TRUE;
427 case 1: return POLARITY_FALSE;
428 case 2: return POLARITY_RANDOM;
429 default: return null;
430 }
431 }
432
433 public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
435 return internalValueMap;
436 }
437 private static final com.google.protobuf.Internal.EnumLiteMap<
438 Polarity> internalValueMap =
439 new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
440 public Polarity findValueByNumber(int number) {
441 return Polarity.forNumber(number);
442 }
443 };
444
445 public final com.google.protobuf.Descriptors.EnumValueDescriptor
447 return getDescriptor().getValues().get(ordinal());
448 }
449 public final com.google.protobuf.Descriptors.EnumDescriptor
451 return getDescriptor();
452 }
453 public static final com.google.protobuf.Descriptors.EnumDescriptor
455 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
456 }
457
458 private static final Polarity[] VALUES = values();
459
460 public static Polarity valueOf(
461 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
462 if (desc.getType() != getDescriptor()) {
463 throw new java.lang.IllegalArgumentException(
464 "EnumValueDescriptor is not for this type.");
465 }
466 return VALUES[desc.getIndex()];
467 }
468
469 private final int value;
470
471 private Polarity(int value) {
472 this.value = value;
473 }
474
475 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
476 }
477
485 public enum ConflictMinimizationAlgorithm
486 implements com.google.protobuf.ProtocolMessageEnum {
503 ;
504
505 static {
506 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
507 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
508 /* major= */ 4,
509 /* minor= */ 29,
510 /* patch= */ 3,
511 /* suffix= */ "",
512 ConflictMinimizationAlgorithm.class.getName());
513 }
517 public static final int NONE_VALUE = 0;
521 public static final int SIMPLE_VALUE = 1;
525 public static final int RECURSIVE_VALUE = 2;
529 public static final int EXPERIMENTAL_VALUE = 3;
530
531
532 public final int getNumber() {
533 return value;
534 }
535
541 @java.lang.Deprecated
542 public static ConflictMinimizationAlgorithm valueOf(int value) {
543 return forNumber(value);
544 }
545
550 public static ConflictMinimizationAlgorithm forNumber(int value) {
551 switch (value) {
552 case 0: return NONE;
553 case 1: return SIMPLE;
554 case 2: return RECURSIVE;
555 case 3: return EXPERIMENTAL;
556 default: return null;
557 }
558 }
559
560 public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
562 return internalValueMap;
563 }
564 private static final com.google.protobuf.Internal.EnumLiteMap<
565 ConflictMinimizationAlgorithm> internalValueMap =
566 new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
567 public ConflictMinimizationAlgorithm findValueByNumber(int number) {
569 }
570 };
571
572 public final com.google.protobuf.Descriptors.EnumValueDescriptor
574 return getDescriptor().getValues().get(ordinal());
575 }
576 public final com.google.protobuf.Descriptors.EnumDescriptor
578 return getDescriptor();
579 }
580 public static final com.google.protobuf.Descriptors.EnumDescriptor
582 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
583 }
584
585 private static final ConflictMinimizationAlgorithm[] VALUES = values();
586
587 public static ConflictMinimizationAlgorithm valueOf(
588 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
589 if (desc.getType() != getDescriptor()) {
590 throw new java.lang.IllegalArgumentException(
591 "EnumValueDescriptor is not for this type.");
592 }
593 return VALUES[desc.getIndex()];
594 }
595
596 private final int value;
597
598 private ConflictMinimizationAlgorithm(int value) {
599 this.value = value;
600 }
601
602 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
603 }
604
612 public enum BinaryMinizationAlgorithm
613 implements com.google.protobuf.ProtocolMessageEnum {
634 ;
635
636 static {
637 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
638 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
639 /* major= */ 4,
640 /* minor= */ 29,
641 /* patch= */ 3,
642 /* suffix= */ "",
643 BinaryMinizationAlgorithm.class.getName());
644 }
648 public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
652 public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
664 public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
665
666
667 public final int getNumber() {
668 return value;
669 }
670
676 @java.lang.Deprecated
677 public static BinaryMinizationAlgorithm valueOf(int value) {
678 return forNumber(value);
679 }
680
685 public static BinaryMinizationAlgorithm forNumber(int value) {
686 switch (value) {
687 case 0: return NO_BINARY_MINIMIZATION;
688 case 1: return BINARY_MINIMIZATION_FIRST;
692 default: return null;
693 }
694 }
695
696 public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
698 return internalValueMap;
699 }
700 private static final com.google.protobuf.Internal.EnumLiteMap<
701 BinaryMinizationAlgorithm> internalValueMap =
702 new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
703 public BinaryMinizationAlgorithm findValueByNumber(int number) {
705 }
706 };
707
708 public final com.google.protobuf.Descriptors.EnumValueDescriptor
710 return getDescriptor().getValues().get(ordinal());
711 }
712 public final com.google.protobuf.Descriptors.EnumDescriptor
714 return getDescriptor();
715 }
716 public static final com.google.protobuf.Descriptors.EnumDescriptor
718 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
719 }
720
721 private static final BinaryMinizationAlgorithm[] VALUES = values();
722
723 public static BinaryMinizationAlgorithm valueOf(
724 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
725 if (desc.getType() != getDescriptor()) {
726 throw new java.lang.IllegalArgumentException(
727 "EnumValueDescriptor is not for this type.");
728 }
729 return VALUES[desc.getIndex()];
730 }
731
732 private final int value;
733
734 private BinaryMinizationAlgorithm(int value) {
735 this.value = value;
736 }
737
738 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
739 }
740
750 public enum ClauseProtection
751 implements com.google.protobuf.ProtocolMessageEnum {
776 ;
777
778 static {
779 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
780 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
781 /* major= */ 4,
782 /* minor= */ 29,
783 /* patch= */ 3,
784 /* suffix= */ "",
785 ClauseProtection.class.getName());
786 }
794 public static final int PROTECTION_NONE_VALUE = 0;
802 public static final int PROTECTION_ALWAYS_VALUE = 1;
810 public static final int PROTECTION_LBD_VALUE = 2;
811
812
813 public final int getNumber() {
814 return value;
815 }
816
822 @java.lang.Deprecated
823 public static ClauseProtection valueOf(int value) {
824 return forNumber(value);
825 }
826
831 public static ClauseProtection forNumber(int value) {
832 switch (value) {
833 case 0: return PROTECTION_NONE;
834 case 1: return PROTECTION_ALWAYS;
835 case 2: return PROTECTION_LBD;
836 default: return null;
837 }
838 }
839
840 public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
842 return internalValueMap;
843 }
844 private static final com.google.protobuf.Internal.EnumLiteMap<
845 ClauseProtection> internalValueMap =
846 new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
847 public ClauseProtection findValueByNumber(int number) {
848 return ClauseProtection.forNumber(number);
849 }
850 };
851
852 public final com.google.protobuf.Descriptors.EnumValueDescriptor
854 return getDescriptor().getValues().get(ordinal());
855 }
856 public final com.google.protobuf.Descriptors.EnumDescriptor
858 return getDescriptor();
859 }
860 public static final com.google.protobuf.Descriptors.EnumDescriptor
862 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
863 }
864
865 private static final ClauseProtection[] VALUES = values();
866
867 public static ClauseProtection valueOf(
868 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
869 if (desc.getType() != getDescriptor()) {
870 throw new java.lang.IllegalArgumentException(
871 "EnumValueDescriptor is not for this type.");
872 }
873 return VALUES[desc.getIndex()];
874 }
875
876 private final int value;
877
878 private ClauseProtection(int value) {
879 this.value = value;
880 }
881
882 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
883 }
884
893 public enum ClauseOrdering
894 implements com.google.protobuf.ProtocolMessageEnum {
911 ;
912
913 static {
914 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
915 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
916 /* major= */ 4,
917 /* minor= */ 29,
918 /* patch= */ 3,
919 /* suffix= */ "",
920 ClauseOrdering.class.getName());
921 }
929 public static final int CLAUSE_ACTIVITY_VALUE = 0;
937 public static final int CLAUSE_LBD_VALUE = 1;
938
939
940 public final int getNumber() {
941 return value;
942 }
943
949 @java.lang.Deprecated
950 public static ClauseOrdering valueOf(int value) {
951 return forNumber(value);
952 }
953
958 public static ClauseOrdering forNumber(int value) {
959 switch (value) {
960 case 0: return CLAUSE_ACTIVITY;
961 case 1: return CLAUSE_LBD;
962 default: return null;
963 }
964 }
965
966 public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
968 return internalValueMap;
969 }
970 private static final com.google.protobuf.Internal.EnumLiteMap<
971 ClauseOrdering> internalValueMap =
972 new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
973 public ClauseOrdering findValueByNumber(int number) {
974 return ClauseOrdering.forNumber(number);
975 }
976 };
977
978 public final com.google.protobuf.Descriptors.EnumValueDescriptor
980 return getDescriptor().getValues().get(ordinal());
981 }
982 public final com.google.protobuf.Descriptors.EnumDescriptor
984 return getDescriptor();
985 }
986 public static final com.google.protobuf.Descriptors.EnumDescriptor
988 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
989 }
990
991 private static final ClauseOrdering[] VALUES = values();
992
993 public static ClauseOrdering valueOf(
994 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
995 if (desc.getType() != getDescriptor()) {
996 throw new java.lang.IllegalArgumentException(
997 "EnumValueDescriptor is not for this type.");
998 }
999 return VALUES[desc.getIndex()];
1000 }
1001
1002 private final int value;
1003
1004 private ClauseOrdering(int value) {
1005 this.value = value;
1006 }
1007
1008 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1009 }
1010
1023 public enum RestartAlgorithm
1024 implements com.google.protobuf.ProtocolMessageEnum {
1061 ;
1062
1063 static {
1064 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
1065 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
1066 /* major= */ 4,
1067 /* minor= */ 29,
1068 /* patch= */ 3,
1069 /* suffix= */ "",
1070 RestartAlgorithm.class.getName());
1071 }
1075 public static final int NO_RESTART_VALUE = 0;
1083 public static final int LUBY_RESTART_VALUE = 1;
1091 public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1099 public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1107 public static final int FIXED_RESTART_VALUE = 4;
1108
1109
1110 public final int getNumber() {
1111 return value;
1112 }
1113
1119 @java.lang.Deprecated
1120 public static RestartAlgorithm valueOf(int value) {
1121 return forNumber(value);
1122 }
1123
1128 public static RestartAlgorithm forNumber(int value) {
1129 switch (value) {
1130 case 0: return NO_RESTART;
1131 case 1: return LUBY_RESTART;
1132 case 2: return DL_MOVING_AVERAGE_RESTART;
1133 case 3: return LBD_MOVING_AVERAGE_RESTART;
1134 case 4: return FIXED_RESTART;
1135 default: return null;
1136 }
1137 }
1138
1139 public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1141 return internalValueMap;
1142 }
1143 private static final com.google.protobuf.Internal.EnumLiteMap<
1144 RestartAlgorithm> internalValueMap =
1145 new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1146 public RestartAlgorithm findValueByNumber(int number) {
1147 return RestartAlgorithm.forNumber(number);
1148 }
1149 };
1150
1151 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1153 return getDescriptor().getValues().get(ordinal());
1154 }
1155 public final com.google.protobuf.Descriptors.EnumDescriptor
1157 return getDescriptor();
1158 }
1159 public static final com.google.protobuf.Descriptors.EnumDescriptor
1161 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1162 }
1163
1164 private static final RestartAlgorithm[] VALUES = values();
1165
1166 public static RestartAlgorithm valueOf(
1167 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1168 if (desc.getType() != getDescriptor()) {
1169 throw new java.lang.IllegalArgumentException(
1170 "EnumValueDescriptor is not for this type.");
1171 }
1172 return VALUES[desc.getIndex()];
1173 }
1174
1175 private final int value;
1176
1177 private RestartAlgorithm(int value) {
1178 this.value = value;
1179 }
1180
1181 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1182 }
1183
1191 public enum MaxSatAssumptionOrder
1192 implements com.google.protobuf.ProtocolMessageEnum {
1205 ;
1206
1207 static {
1208 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
1209 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
1210 /* major= */ 4,
1211 /* minor= */ 29,
1212 /* patch= */ 3,
1213 /* suffix= */ "",
1214 MaxSatAssumptionOrder.class.getName());
1215 }
1219 public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1223 public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1227 public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1228
1229
1230 public final int getNumber() {
1231 return value;
1232 }
1233
1239 @java.lang.Deprecated
1240 public static MaxSatAssumptionOrder valueOf(int value) {
1241 return forNumber(value);
1242 }
1243
1248 public static MaxSatAssumptionOrder forNumber(int value) {
1249 switch (value) {
1250 case 0: return DEFAULT_ASSUMPTION_ORDER;
1251 case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1252 case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1253 default: return null;
1254 }
1255 }
1256
1257 public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1259 return internalValueMap;
1260 }
1261 private static final com.google.protobuf.Internal.EnumLiteMap<
1262 MaxSatAssumptionOrder> internalValueMap =
1263 new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1264 public MaxSatAssumptionOrder findValueByNumber(int number) {
1265 return MaxSatAssumptionOrder.forNumber(number);
1266 }
1267 };
1268
1269 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1271 return getDescriptor().getValues().get(ordinal());
1272 }
1273 public final com.google.protobuf.Descriptors.EnumDescriptor
1275 return getDescriptor();
1276 }
1277 public static final com.google.protobuf.Descriptors.EnumDescriptor
1279 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1280 }
1281
1282 private static final MaxSatAssumptionOrder[] VALUES = values();
1283
1284 public static MaxSatAssumptionOrder valueOf(
1285 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1286 if (desc.getType() != getDescriptor()) {
1287 throw new java.lang.IllegalArgumentException(
1288 "EnumValueDescriptor is not for this type.");
1289 }
1290 return VALUES[desc.getIndex()];
1291 }
1292
1293 private final int value;
1294
1295 private MaxSatAssumptionOrder(int value) {
1296 this.value = value;
1297 }
1298
1299 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1300 }
1301
1309 public enum MaxSatStratificationAlgorithm
1310 implements com.google.protobuf.ProtocolMessageEnum {
1339 ;
1340
1341 static {
1342 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
1343 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
1344 /* major= */ 4,
1345 /* minor= */ 29,
1346 /* patch= */ 3,
1347 /* suffix= */ "",
1348 MaxSatStratificationAlgorithm.class.getName());
1349 }
1357 public static final int STRATIFICATION_NONE_VALUE = 0;
1366 public static final int STRATIFICATION_DESCENT_VALUE = 1;
1377 public static final int STRATIFICATION_ASCENT_VALUE = 2;
1378
1379
1380 public final int getNumber() {
1381 return value;
1382 }
1383
1389 @java.lang.Deprecated
1390 public static MaxSatStratificationAlgorithm valueOf(int value) {
1391 return forNumber(value);
1392 }
1393
1398 public static MaxSatStratificationAlgorithm forNumber(int value) {
1399 switch (value) {
1400 case 0: return STRATIFICATION_NONE;
1401 case 1: return STRATIFICATION_DESCENT;
1402 case 2: return STRATIFICATION_ASCENT;
1403 default: return null;
1404 }
1405 }
1406
1407 public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1409 return internalValueMap;
1410 }
1411 private static final com.google.protobuf.Internal.EnumLiteMap<
1412 MaxSatStratificationAlgorithm> internalValueMap =
1413 new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1414 public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1416 }
1417 };
1418
1419 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1421 return getDescriptor().getValues().get(ordinal());
1422 }
1423 public final com.google.protobuf.Descriptors.EnumDescriptor
1425 return getDescriptor();
1426 }
1427 public static final com.google.protobuf.Descriptors.EnumDescriptor
1429 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1430 }
1431
1432 private static final MaxSatStratificationAlgorithm[] VALUES = values();
1433
1434 public static MaxSatStratificationAlgorithm valueOf(
1435 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1436 if (desc.getType() != getDescriptor()) {
1437 throw new java.lang.IllegalArgumentException(
1438 "EnumValueDescriptor is not for this type.");
1439 }
1440 return VALUES[desc.getIndex()];
1441 }
1442
1443 private final int value;
1444
1446 this.value = value;
1447 }
1448
1449 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1450 }
1451
1459 public enum SearchBranching
1460 implements com.google.protobuf.ProtocolMessageEnum {
1548 ;
1549
1550 static {
1551 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
1552 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
1553 /* major= */ 4,
1554 /* minor= */ 29,
1555 /* patch= */ 3,
1556 /* suffix= */ "",
1557 SearchBranching.class.getName());
1558 }
1569 public static final int AUTOMATIC_SEARCH_VALUE = 0;
1579 public static final int FIXED_SEARCH_VALUE = 1;
1587 public static final int PORTFOLIO_SEARCH_VALUE = 2;
1596 public static final int LP_SEARCH_VALUE = 3;
1606 public static final int PSEUDO_COST_SEARCH_VALUE = 4;
1626 public static final int HINT_SEARCH_VALUE = 6;
1637 public static final int PARTIAL_FIXED_SEARCH_VALUE = 7;
1645 public static final int RANDOMIZED_SEARCH_VALUE = 8;
1646
1647
1648 public final int getNumber() {
1649 return value;
1650 }
1651
1657 @java.lang.Deprecated
1658 public static SearchBranching valueOf(int value) {
1659 return forNumber(value);
1660 }
1661
1666 public static SearchBranching forNumber(int value) {
1667 switch (value) {
1668 case 0: return AUTOMATIC_SEARCH;
1669 case 1: return FIXED_SEARCH;
1670 case 2: return PORTFOLIO_SEARCH;
1671 case 3: return LP_SEARCH;
1672 case 4: return PSEUDO_COST_SEARCH;
1674 case 6: return HINT_SEARCH;
1675 case 7: return PARTIAL_FIXED_SEARCH;
1676 case 8: return RANDOMIZED_SEARCH;
1677 default: return null;
1678 }
1679 }
1680
1681 public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
1683 return internalValueMap;
1684 }
1685 private static final com.google.protobuf.Internal.EnumLiteMap<
1686 SearchBranching> internalValueMap =
1687 new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
1688 public SearchBranching findValueByNumber(int number) {
1689 return SearchBranching.forNumber(number);
1690 }
1691 };
1692
1693 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1695 return getDescriptor().getValues().get(ordinal());
1696 }
1697 public final com.google.protobuf.Descriptors.EnumDescriptor
1699 return getDescriptor();
1700 }
1701 public static final com.google.protobuf.Descriptors.EnumDescriptor
1703 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
1704 }
1705
1706 private static final SearchBranching[] VALUES = values();
1707
1708 public static SearchBranching valueOf(
1709 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1710 if (desc.getType() != getDescriptor()) {
1711 throw new java.lang.IllegalArgumentException(
1712 "EnumValueDescriptor is not for this type.");
1713 }
1714 return VALUES[desc.getIndex()];
1715 }
1716
1717 private final int value;
1718
1719 private SearchBranching(int value) {
1720 this.value = value;
1721 }
1722
1723 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
1724 }
1725
1729 public enum SharedTreeSplitStrategy
1730 implements com.google.protobuf.ProtocolMessageEnum {
1778 ;
1779
1780 static {
1781 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
1782 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
1783 /* major= */ 4,
1784 /* minor= */ 29,
1785 /* patch= */ 3,
1786 /* suffix= */ "",
1787 SharedTreeSplitStrategy.class.getName());
1788 }
1797 public static final int SPLIT_STRATEGY_AUTO_VALUE = 0;
1810 public static final int SPLIT_STRATEGY_DISCREPANCY_VALUE = 1;
1819 public static final int SPLIT_STRATEGY_OBJECTIVE_LB_VALUE = 2;
1827 public static final int SPLIT_STRATEGY_BALANCED_TREE_VALUE = 3;
1835 public static final int SPLIT_STRATEGY_FIRST_PROPOSAL_VALUE = 4;
1836
1837
1838 public final int getNumber() {
1839 return value;
1840 }
1841
1847 @java.lang.Deprecated
1848 public static SharedTreeSplitStrategy valueOf(int value) {
1849 return forNumber(value);
1850 }
1851
1856 public static SharedTreeSplitStrategy forNumber(int value) {
1857 switch (value) {
1858 case 0: return SPLIT_STRATEGY_AUTO;
1859 case 1: return SPLIT_STRATEGY_DISCREPANCY;
1860 case 2: return SPLIT_STRATEGY_OBJECTIVE_LB;
1861 case 3: return SPLIT_STRATEGY_BALANCED_TREE;
1862 case 4: return SPLIT_STRATEGY_FIRST_PROPOSAL;
1863 default: return null;
1864 }
1865 }
1866
1867 public static com.google.protobuf.Internal.EnumLiteMap<SharedTreeSplitStrategy>
1869 return internalValueMap;
1870 }
1871 private static final com.google.protobuf.Internal.EnumLiteMap<
1872 SharedTreeSplitStrategy> internalValueMap =
1873 new com.google.protobuf.Internal.EnumLiteMap<SharedTreeSplitStrategy>() {
1874 public SharedTreeSplitStrategy findValueByNumber(int number) {
1875 return SharedTreeSplitStrategy.forNumber(number);
1876 }
1877 };
1878
1879 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1881 return getDescriptor().getValues().get(ordinal());
1882 }
1883 public final com.google.protobuf.Descriptors.EnumDescriptor
1885 return getDescriptor();
1886 }
1887 public static final com.google.protobuf.Descriptors.EnumDescriptor
1889 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(10);
1890 }
1891
1892 private static final SharedTreeSplitStrategy[] VALUES = values();
1893
1894 public static SharedTreeSplitStrategy valueOf(
1895 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1896 if (desc.getType() != getDescriptor()) {
1897 throw new java.lang.IllegalArgumentException(
1898 "EnumValueDescriptor is not for this type.");
1899 }
1900 return VALUES[desc.getIndex()];
1901 }
1902
1903 private final int value;
1904
1905 private SharedTreeSplitStrategy(int value) {
1906 this.value = value;
1907 }
1908
1909 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SharedTreeSplitStrategy)
1910 }
1911
1919 public enum FPRoundingMethod
1920 implements com.google.protobuf.ProtocolMessageEnum {
1961 ;
1962
1963 static {
1964 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
1965 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
1966 /* major= */ 4,
1967 /* minor= */ 29,
1968 /* patch= */ 3,
1969 /* suffix= */ "",
1970 FPRoundingMethod.class.getName());
1971 }
1979 public static final int NEAREST_INTEGER_VALUE = 0;
1989 public static final int LOCK_BASED_VALUE = 1;
1998 public static final int ACTIVE_LOCK_BASED_VALUE = 3;
2011 public static final int PROPAGATION_ASSISTED_VALUE = 2;
2012
2013
2014 public final int getNumber() {
2015 return value;
2016 }
2017
2023 @java.lang.Deprecated
2024 public static FPRoundingMethod valueOf(int value) {
2025 return forNumber(value);
2026 }
2027
2032 public static FPRoundingMethod forNumber(int value) {
2033 switch (value) {
2034 case 0: return NEAREST_INTEGER;
2035 case 1: return LOCK_BASED;
2036 case 3: return ACTIVE_LOCK_BASED;
2037 case 2: return PROPAGATION_ASSISTED;
2038 default: return null;
2039 }
2040 }
2041
2042 public static com.google.protobuf.Internal.EnumLiteMap<FPRoundingMethod>
2044 return internalValueMap;
2045 }
2046 private static final com.google.protobuf.Internal.EnumLiteMap<
2047 FPRoundingMethod> internalValueMap =
2048 new com.google.protobuf.Internal.EnumLiteMap<FPRoundingMethod>() {
2049 public FPRoundingMethod findValueByNumber(int number) {
2050 return FPRoundingMethod.forNumber(number);
2051 }
2052 };
2053
2054 public final com.google.protobuf.Descriptors.EnumValueDescriptor
2056 return getDescriptor().getValues().get(ordinal());
2057 }
2058 public final com.google.protobuf.Descriptors.EnumDescriptor
2060 return getDescriptor();
2061 }
2062 public static final com.google.protobuf.Descriptors.EnumDescriptor
2064 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(11);
2065 }
2066
2067 private static final FPRoundingMethod[] VALUES = values();
2068
2069 public static FPRoundingMethod valueOf(
2070 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2071 if (desc.getType() != getDescriptor()) {
2072 throw new java.lang.IllegalArgumentException(
2073 "EnumValueDescriptor is not for this type.");
2074 }
2075 return VALUES[desc.getIndex()];
2076 }
2077
2078 private final int value;
2079
2080 private FPRoundingMethod(int value) {
2081 this.value = value;
2082 }
2083
2084 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.FPRoundingMethod)
2085 }
2086
2087 private int bitField0_;
2088 private int bitField1_;
2089 private int bitField2_;
2090 private int bitField3_;
2091 private int bitField4_;
2092 private int bitField5_;
2093 private int bitField6_;
2094 private int bitField7_;
2095 private int bitField8_;
2096 public static final int NAME_FIELD_NUMBER = 171;
2097 @SuppressWarnings("serial")
2098 private volatile java.lang.Object name_ = "";
2108 @java.lang.Override
2109 public boolean hasName() {
2110 return ((bitField0_ & 0x00000001) != 0);
2111 }
2112
2121 @java.lang.Override
2122 public java.lang.String getName() {
2123 java.lang.Object ref = name_;
2124 if (ref instanceof java.lang.String) {
2125 return (java.lang.String) ref;
2126 } else {
2127 com.google.protobuf.ByteString bs =
2128 (com.google.protobuf.ByteString) ref;
2129 java.lang.String s = bs.toStringUtf8();
2130 if (bs.isValidUtf8()) {
2131 name_ = s;
2132 }
2133 return s;
2134 }
2135 }
2136
2145 @java.lang.Override
2146 public com.google.protobuf.ByteString
2148 java.lang.Object ref = name_;
2149 if (ref instanceof java.lang.String) {
2150 com.google.protobuf.ByteString b =
2151 com.google.protobuf.ByteString.copyFromUtf8(
2152 (java.lang.String) ref);
2153 name_ = b;
2154 return b;
2155 } else {
2156 return (com.google.protobuf.ByteString) ref;
2157 }
2158 }
2159
2160 public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2161 private int preferredVariableOrder_ = 0;
2166 @java.lang.Override public boolean hasPreferredVariableOrder() {
2167 return ((bitField0_ & 0x00000002) != 0);
2168 }
2169
2174 com.google.ortools.sat.SatParameters.VariableOrder result = com.google.ortools.sat.SatParameters.VariableOrder.forNumber(preferredVariableOrder_);
2175 return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2176 }
2177
2178 public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2179 private int initialPolarity_ = 1;
2184 @java.lang.Override public boolean hasInitialPolarity() {
2185 return ((bitField0_ & 0x00000004) != 0);
2186 }
2187
2192 com.google.ortools.sat.SatParameters.Polarity result = com.google.ortools.sat.SatParameters.Polarity.forNumber(initialPolarity_);
2193 return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2194 }
2195
2196 public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2197 private boolean usePhaseSaving_ = true;
2216 @java.lang.Override
2217 public boolean hasUsePhaseSaving() {
2218 return ((bitField0_ & 0x00000008) != 0);
2219 }
2220
2238 @java.lang.Override
2239 public boolean getUsePhaseSaving() {
2240 return usePhaseSaving_;
2241 }
2242
2243 public static final int POLARITY_REPHASE_INCREMENT_FIELD_NUMBER = 168;
2244 private int polarityRephaseIncrement_ = 1000;
2255 @java.lang.Override
2257 return ((bitField0_ & 0x00000010) != 0);
2258 }
2259
2269 @java.lang.Override
2271 return polarityRephaseIncrement_;
2272 }
2273
2274 public static final int POLARITY_EXPLOIT_LS_HINTS_FIELD_NUMBER = 309;
2275 private boolean polarityExploitLsHints_ = false;
2285 @java.lang.Override
2286 public boolean hasPolarityExploitLsHints() {
2287 return ((bitField0_ & 0x00000020) != 0);
2288 }
2289
2298 @java.lang.Override
2299 public boolean getPolarityExploitLsHints() {
2300 return polarityExploitLsHints_;
2301 }
2302
2303 public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2304 private double randomPolarityRatio_ = 0D;
2317 @java.lang.Override
2318 public boolean hasRandomPolarityRatio() {
2319 return ((bitField0_ & 0x00000040) != 0);
2320 }
2321
2333 @java.lang.Override
2334 public double getRandomPolarityRatio() {
2335 return randomPolarityRatio_;
2336 }
2337
2338 public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2339 private double randomBranchesRatio_ = 0D;
2350 @java.lang.Override
2351 public boolean hasRandomBranchesRatio() {
2352 return ((bitField0_ & 0x00000080) != 0);
2353 }
2354
2364 @java.lang.Override
2365 public double getRandomBranchesRatio() {
2366 return randomBranchesRatio_;
2367 }
2368
2369 public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2370 private boolean useErwaHeuristic_ = false;
2381 @java.lang.Override
2382 public boolean hasUseErwaHeuristic() {
2383 return ((bitField0_ & 0x00000100) != 0);
2384 }
2385
2395 @java.lang.Override
2396 public boolean getUseErwaHeuristic() {
2397 return useErwaHeuristic_;
2398 }
2399
2400 public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2401 private double initialVariablesActivity_ = 0D;
2415 @java.lang.Override
2417 return ((bitField0_ & 0x00000200) != 0);
2418 }
2419
2432 @java.lang.Override
2434 return initialVariablesActivity_;
2435 }
2436
2438 private boolean alsoBumpVariablesInConflictReasons_ = false;
2450 @java.lang.Override
2452 return ((bitField0_ & 0x00000400) != 0);
2453 }
2454
2465 @java.lang.Override
2467 return alsoBumpVariablesInConflictReasons_;
2468 }
2469
2470 public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2471 private int minimizationAlgorithm_ = 2;
2476 @java.lang.Override public boolean hasMinimizationAlgorithm() {
2477 return ((bitField0_ & 0x00000800) != 0);
2478 }
2479
2484 com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm result = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.forNumber(minimizationAlgorithm_);
2486 }
2487
2489 private int binaryMinimizationAlgorithm_ = 1;
2494 @java.lang.Override public boolean hasBinaryMinimizationAlgorithm() {
2495 return ((bitField0_ & 0x00001000) != 0);
2496 }
2497
2502 com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm result = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.forNumber(binaryMinimizationAlgorithm_);
2504 }
2505
2507 private boolean subsumptionDuringConflictAnalysis_ = true;
2519 @java.lang.Override
2521 return ((bitField0_ & 0x00002000) != 0);
2522 }
2523
2534 @java.lang.Override
2536 return subsumptionDuringConflictAnalysis_;
2537 }
2538
2539 public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2540 private int clauseCleanupPeriod_ = 10000;
2549 @java.lang.Override
2550 public boolean hasClauseCleanupPeriod() {
2551 return ((bitField0_ & 0x00004000) != 0);
2552 }
2553
2561 @java.lang.Override
2563 return clauseCleanupPeriod_;
2564 }
2565
2566 public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2567 private int clauseCleanupTarget_ = 0;
2577 @java.lang.Override
2578 public boolean hasClauseCleanupTarget() {
2579 return ((bitField0_ & 0x00008000) != 0);
2580 }
2581
2590 @java.lang.Override
2592 return clauseCleanupTarget_;
2593 }
2594
2595 public static final int CLAUSE_CLEANUP_RATIO_FIELD_NUMBER = 190;
2596 private double clauseCleanupRatio_ = 0.5D;
2607 @java.lang.Override
2608 public boolean hasClauseCleanupRatio() {
2609 return ((bitField0_ & 0x00010000) != 0);
2610 }
2611
2621 @java.lang.Override
2622 public double getClauseCleanupRatio() {
2623 return clauseCleanupRatio_;
2624 }
2625
2626 public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2627 private int clauseCleanupProtection_ = 0;
2632 @java.lang.Override public boolean hasClauseCleanupProtection() {
2633 return ((bitField0_ & 0x00020000) != 0);
2634 }
2635
2640 com.google.ortools.sat.SatParameters.ClauseProtection result = com.google.ortools.sat.SatParameters.ClauseProtection.forNumber(clauseCleanupProtection_);
2642 }
2643
2644 public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2645 private int clauseCleanupLbdBound_ = 5;
2655 @java.lang.Override
2656 public boolean hasClauseCleanupLbdBound() {
2657 return ((bitField0_ & 0x00040000) != 0);
2658 }
2659
2668 @java.lang.Override
2670 return clauseCleanupLbdBound_;
2671 }
2672
2673 public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2674 private int clauseCleanupOrdering_ = 0;
2679 @java.lang.Override public boolean hasClauseCleanupOrdering() {
2680 return ((bitField0_ & 0x00080000) != 0);
2681 }
2682
2687 com.google.ortools.sat.SatParameters.ClauseOrdering result = com.google.ortools.sat.SatParameters.ClauseOrdering.forNumber(clauseCleanupOrdering_);
2689 }
2690
2691 public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2692 private int pbCleanupIncrement_ = 200;
2701 @java.lang.Override
2702 public boolean hasPbCleanupIncrement() {
2703 return ((bitField0_ & 0x00100000) != 0);
2704 }
2705
2713 @java.lang.Override
2715 return pbCleanupIncrement_;
2716 }
2717
2718 public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2719 private double pbCleanupRatio_ = 0.5D;
2724 @java.lang.Override
2725 public boolean hasPbCleanupRatio() {
2726 return ((bitField0_ & 0x00200000) != 0);
2727 }
2728
2732 @java.lang.Override
2733 public double getPbCleanupRatio() {
2734 return pbCleanupRatio_;
2735 }
2736
2737 public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2738 private double variableActivityDecay_ = 0.8D;
2754 @java.lang.Override
2755 public boolean hasVariableActivityDecay() {
2756 return ((bitField0_ & 0x00400000) != 0);
2757 }
2758
2773 @java.lang.Override
2775 return variableActivityDecay_;
2776 }
2777
2778 public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2779 private double maxVariableActivityValue_ = 1e+100D;
2784 @java.lang.Override
2786 return ((bitField0_ & 0x00800000) != 0);
2787 }
2788
2792 @java.lang.Override
2794 return maxVariableActivityValue_;
2795 }
2796
2797 public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2798 private double glucoseMaxDecay_ = 0.95D;
2811 @java.lang.Override
2812 public boolean hasGlucoseMaxDecay() {
2813 return ((bitField0_ & 0x01000000) != 0);
2814 }
2815
2827 @java.lang.Override
2828 public double getGlucoseMaxDecay() {
2829 return glucoseMaxDecay_;
2830 }
2831
2832 public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2833 private double glucoseDecayIncrement_ = 0.01D;
2838 @java.lang.Override
2839 public boolean hasGlucoseDecayIncrement() {
2840 return ((bitField0_ & 0x02000000) != 0);
2841 }
2842
2846 @java.lang.Override
2848 return glucoseDecayIncrement_;
2849 }
2850
2852 private int glucoseDecayIncrementPeriod_ = 5000;
2857 @java.lang.Override
2859 return ((bitField0_ & 0x04000000) != 0);
2860 }
2861
2865 @java.lang.Override
2867 return glucoseDecayIncrementPeriod_;
2868 }
2869
2870 public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2871 private double clauseActivityDecay_ = 0.999D;
2880 @java.lang.Override
2881 public boolean hasClauseActivityDecay() {
2882 return ((bitField0_ & 0x08000000) != 0);
2883 }
2884
2892 @java.lang.Override
2893 public double getClauseActivityDecay() {
2894 return clauseActivityDecay_;
2895 }
2896
2897 public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2898 private double maxClauseActivityValue_ = 1e+20D;
2903 @java.lang.Override
2904 public boolean hasMaxClauseActivityValue() {
2905 return ((bitField0_ & 0x10000000) != 0);
2906 }
2907
2911 @java.lang.Override
2913 return maxClauseActivityValue_;
2914 }
2915
2916 public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2917 @SuppressWarnings("serial")
2918 private com.google.protobuf.Internal.IntList restartAlgorithms_;
2919 private static final com.google.protobuf.Internal.IntListAdapter.IntConverter<
2920 com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2921 new com.google.protobuf.Internal.IntListAdapter.IntConverter<
2922 com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2924 com.google.ortools.sat.SatParameters.RestartAlgorithm result = com.google.ortools.sat.SatParameters.RestartAlgorithm.forNumber(from);
2926 }
2927 };
2944 @java.lang.Override
2945 public java.util.List<com.google.ortools.sat.SatParameters.RestartAlgorithm> getRestartAlgorithmsList() {
2946 return new com.google.protobuf.Internal.IntListAdapter<
2947 com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2948 }
2949
2965 @java.lang.Override
2967 return restartAlgorithms_.size();
2968 }
2969
2986 @java.lang.Override
2988 return restartAlgorithms_converter_.convert(restartAlgorithms_.getInt(index));
2989 }
2990
2991 public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2992 @SuppressWarnings("serial")
2993 private volatile java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
2998 @java.lang.Override
3000 return ((bitField0_ & 0x20000000) != 0);
3001 }
3002
3006 @java.lang.Override
3007 public java.lang.String getDefaultRestartAlgorithms() {
3008 java.lang.Object ref = defaultRestartAlgorithms_;
3009 if (ref instanceof java.lang.String) {
3010 return (java.lang.String) ref;
3011 } else {
3012 com.google.protobuf.ByteString bs =
3013 (com.google.protobuf.ByteString) ref;
3014 java.lang.String s = bs.toStringUtf8();
3015 if (bs.isValidUtf8()) {
3016 defaultRestartAlgorithms_ = s;
3017 }
3018 return s;
3019 }
3020 }
3021
3025 @java.lang.Override
3026 public com.google.protobuf.ByteString
3028 java.lang.Object ref = defaultRestartAlgorithms_;
3029 if (ref instanceof java.lang.String) {
3030 com.google.protobuf.ByteString b =
3031 com.google.protobuf.ByteString.copyFromUtf8(
3032 (java.lang.String) ref);
3033 defaultRestartAlgorithms_ = b;
3034 return b;
3035 } else {
3036 return (com.google.protobuf.ByteString) ref;
3037 }
3038 }
3039
3040 public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
3041 private int restartPeriod_ = 50;
3051 @java.lang.Override
3052 public boolean hasRestartPeriod() {
3053 return ((bitField0_ & 0x40000000) != 0);
3054 }
3055
3064 @java.lang.Override
3065 public int getRestartPeriod() {
3066 return restartPeriod_;
3067 }
3068
3069 public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
3070 private int restartRunningWindowSize_ = 50;
3079 @java.lang.Override
3081 return ((bitField0_ & 0x80000000) != 0);
3082 }
3083
3091 @java.lang.Override
3093 return restartRunningWindowSize_;
3094 }
3095
3096 public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
3097 private double restartDlAverageRatio_ = 1D;
3107 @java.lang.Override
3108 public boolean hasRestartDlAverageRatio() {
3109 return ((bitField1_ & 0x00000001) != 0);
3110 }
3111
3120 @java.lang.Override
3122 return restartDlAverageRatio_;
3123 }
3124
3125 public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3126 private double restartLbdAverageRatio_ = 1D;
3131 @java.lang.Override
3132 public boolean hasRestartLbdAverageRatio() {
3133 return ((bitField1_ & 0x00000002) != 0);
3134 }
3135
3139 @java.lang.Override
3141 return restartLbdAverageRatio_;
3142 }
3143
3144 public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3145 private boolean useBlockingRestart_ = false;
3156 @java.lang.Override
3157 public boolean hasUseBlockingRestart() {
3158 return ((bitField1_ & 0x00000004) != 0);
3159 }
3160
3170 @java.lang.Override
3171 public boolean getUseBlockingRestart() {
3172 return useBlockingRestart_;
3173 }
3174
3175 public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3176 private int blockingRestartWindowSize_ = 5000;
3181 @java.lang.Override
3183 return ((bitField1_ & 0x00000008) != 0);
3184 }
3185
3189 @java.lang.Override
3191 return blockingRestartWindowSize_;
3192 }
3193
3194 public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3195 private double blockingRestartMultiplier_ = 1.4D;
3200 @java.lang.Override
3202 return ((bitField1_ & 0x00000010) != 0);
3203 }
3204
3208 @java.lang.Override
3210 return blockingRestartMultiplier_;
3211 }
3212
3214 private int numConflictsBeforeStrategyChanges_ = 0;
3225 @java.lang.Override
3227 return ((bitField1_ & 0x00000020) != 0);
3228 }
3229
3239 @java.lang.Override
3241 return numConflictsBeforeStrategyChanges_;
3242 }
3243
3245 private double strategyChangeIncreaseRatio_ = 0D;
3255 @java.lang.Override
3257 return ((bitField1_ & 0x00000040) != 0);
3258 }
3259
3268 @java.lang.Override
3270 return strategyChangeIncreaseRatio_;
3271 }
3272
3273 public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3274 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
3284 @java.lang.Override
3285 public boolean hasMaxTimeInSeconds() {
3286 return ((bitField1_ & 0x00000080) != 0);
3287 }
3288
3297 @java.lang.Override
3298 public double getMaxTimeInSeconds() {
3299 return maxTimeInSeconds_;
3300 }
3301
3302 public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3303 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
3314 @java.lang.Override
3315 public boolean hasMaxDeterministicTime() {
3316 return ((bitField1_ & 0x00000100) != 0);
3317 }
3318
3328 @java.lang.Override
3329 public double getMaxDeterministicTime() {
3330 return maxDeterministicTime_;
3331 }
3332
3333 public static final int MAX_NUM_DETERMINISTIC_BATCHES_FIELD_NUMBER = 291;
3334 private int maxNumDeterministicBatches_ = 0;
3344 @java.lang.Override
3346 return ((bitField1_ & 0x00000200) != 0);
3347 }
3348
3357 @java.lang.Override
3359 return maxNumDeterministicBatches_;
3360 }
3361
3362 public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3363 private long maxNumberOfConflicts_ = 9223372036854775807L;
3378 @java.lang.Override
3379 public boolean hasMaxNumberOfConflicts() {
3380 return ((bitField1_ & 0x00000400) != 0);
3381 }
3382
3396 @java.lang.Override
3398 return maxNumberOfConflicts_;
3399 }
3400
3401 public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3402 private long maxMemoryInMb_ = 10000L;
3416 @java.lang.Override
3417 public boolean hasMaxMemoryInMb() {
3418 return ((bitField1_ & 0x00000800) != 0);
3419 }
3420
3433 @java.lang.Override
3434 public long getMaxMemoryInMb() {
3435 return maxMemoryInMb_;
3436 }
3437
3438 public static final int ABSOLUTE_GAP_LIMIT_FIELD_NUMBER = 159;
3439 private double absoluteGapLimit_ = 0.0001D;
3465 @java.lang.Override
3466 public boolean hasAbsoluteGapLimit() {
3467 return ((bitField1_ & 0x00001000) != 0);
3468 }
3469
3494 @java.lang.Override
3495 public double getAbsoluteGapLimit() {
3496 return absoluteGapLimit_;
3497 }
3498
3499 public static final int RELATIVE_GAP_LIMIT_FIELD_NUMBER = 160;
3500 private double relativeGapLimit_ = 0D;
3505 @java.lang.Override
3506 public boolean hasRelativeGapLimit() {
3507 return ((bitField1_ & 0x00002000) != 0);
3508 }
3509
3513 @java.lang.Override
3514 public double getRelativeGapLimit() {
3515 return relativeGapLimit_;
3516 }
3517
3518 public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3519 private int randomSeed_ = 1;
3534 @java.lang.Override
3535 public boolean hasRandomSeed() {
3536 return ((bitField1_ & 0x00004000) != 0);
3537 }
3538
3552 @java.lang.Override
3553 public int getRandomSeed() {
3554 return randomSeed_;
3555 }
3556
3557 public static final int PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER = 178;
3558 private boolean permuteVariableRandomly_ = false;
3570 @java.lang.Override
3572 return ((bitField1_ & 0x00008000) != 0);
3573 }
3574
3585 @java.lang.Override
3587 return permuteVariableRandomly_;
3588 }
3589
3591 private boolean permutePresolveConstraintOrder_ = false;
3596 @java.lang.Override
3598 return ((bitField1_ & 0x00010000) != 0);
3599 }
3600
3604 @java.lang.Override
3606 return permutePresolveConstraintOrder_;
3607 }
3608
3609 public static final int USE_ABSL_RANDOM_FIELD_NUMBER = 180;
3610 private boolean useAbslRandom_ = false;
3615 @java.lang.Override
3616 public boolean hasUseAbslRandom() {
3617 return ((bitField1_ & 0x00020000) != 0);
3618 }
3619
3623 @java.lang.Override
3624 public boolean getUseAbslRandom() {
3625 return useAbslRandom_;
3626 }
3627
3628 public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3629 private boolean logSearchProgress_ = false;
3640 @java.lang.Override
3641 public boolean hasLogSearchProgress() {
3642 return ((bitField1_ & 0x00040000) != 0);
3643 }
3644
3654 @java.lang.Override
3655 public boolean getLogSearchProgress() {
3656 return logSearchProgress_;
3657 }
3658
3659 public static final int LOG_SUBSOLVER_STATISTICS_FIELD_NUMBER = 189;
3660 private boolean logSubsolverStatistics_ = false;
3672 @java.lang.Override
3673 public boolean hasLogSubsolverStatistics() {
3674 return ((bitField1_ & 0x00080000) != 0);
3675 }
3676
3687 @java.lang.Override
3688 public boolean getLogSubsolverStatistics() {
3689 return logSubsolverStatistics_;
3690 }
3691
3692 public static final int LOG_PREFIX_FIELD_NUMBER = 185;
3693 @SuppressWarnings("serial")
3694 private volatile java.lang.Object logPrefix_ = "";
3703 @java.lang.Override
3704 public boolean hasLogPrefix() {
3705 return ((bitField1_ & 0x00100000) != 0);
3706 }
3707
3715 @java.lang.Override
3716 public java.lang.String getLogPrefix() {
3717 java.lang.Object ref = logPrefix_;
3718 if (ref instanceof java.lang.String) {
3719 return (java.lang.String) ref;
3720 } else {
3721 com.google.protobuf.ByteString bs =
3722 (com.google.protobuf.ByteString) ref;
3723 java.lang.String s = bs.toStringUtf8();
3724 if (bs.isValidUtf8()) {
3725 logPrefix_ = s;
3726 }
3727 return s;
3728 }
3729 }
3730
3738 @java.lang.Override
3739 public com.google.protobuf.ByteString
3741 java.lang.Object ref = logPrefix_;
3742 if (ref instanceof java.lang.String) {
3743 com.google.protobuf.ByteString b =
3744 com.google.protobuf.ByteString.copyFromUtf8(
3745 (java.lang.String) ref);
3746 logPrefix_ = b;
3747 return b;
3748 } else {
3749 return (com.google.protobuf.ByteString) ref;
3750 }
3751 }
3752
3753 public static final int LOG_TO_STDOUT_FIELD_NUMBER = 186;
3754 private boolean logToStdout_ = true;
3763 @java.lang.Override
3764 public boolean hasLogToStdout() {
3765 return ((bitField1_ & 0x00200000) != 0);
3766 }
3767
3775 @java.lang.Override
3776 public boolean getLogToStdout() {
3777 return logToStdout_;
3778 }
3779
3780 public static final int LOG_TO_RESPONSE_FIELD_NUMBER = 187;
3781 private boolean logToResponse_ = false;
3790 @java.lang.Override
3791 public boolean hasLogToResponse() {
3792 return ((bitField1_ & 0x00400000) != 0);
3793 }
3794
3802 @java.lang.Override
3803 public boolean getLogToResponse() {
3804 return logToResponse_;
3805 }
3806
3807 public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3808 private boolean usePbResolution_ = false;
3820 @java.lang.Override
3821 public boolean hasUsePbResolution() {
3822 return ((bitField1_ & 0x00800000) != 0);
3823 }
3824
3835 @java.lang.Override
3836 public boolean getUsePbResolution() {
3837 return usePbResolution_;
3838 }
3839
3841 private boolean minimizeReductionDuringPbResolution_ = false;
3853 @java.lang.Override
3855 return ((bitField1_ & 0x01000000) != 0);
3856 }
3857
3868 @java.lang.Override
3870 return minimizeReductionDuringPbResolution_;
3871 }
3872
3874 private boolean countAssumptionLevelsInLbd_ = true;
3891 @java.lang.Override
3893 return ((bitField1_ & 0x02000000) != 0);
3894 }
3895
3911 @java.lang.Override
3913 return countAssumptionLevelsInLbd_;
3914 }
3915
3916 public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3917 private int presolveBveThreshold_ = 500;
3928 @java.lang.Override
3929 public boolean hasPresolveBveThreshold() {
3930 return ((bitField1_ & 0x04000000) != 0);
3931 }
3932
3942 @java.lang.Override
3944 return presolveBveThreshold_;
3945 }
3946
3947 public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3948 private int presolveBveClauseWeight_ = 3;
3958 @java.lang.Override
3960 return ((bitField1_ & 0x08000000) != 0);
3961 }
3962
3971 @java.lang.Override
3973 return presolveBveClauseWeight_;
3974 }
3975
3977 private double probingDeterministicTimeLimit_ = 1D;
3990 @java.lang.Override
3992 return ((bitField1_ & 0x10000000) != 0);
3993 }
3994
4006 @java.lang.Override
4008 return probingDeterministicTimeLimit_;
4009 }
4010
4012 private double presolveProbingDeterministicTimeLimit_ = 30D;
4017 @java.lang.Override
4019 return ((bitField1_ & 0x20000000) != 0);
4020 }
4021
4025 @java.lang.Override
4027 return presolveProbingDeterministicTimeLimit_;
4028 }
4029
4030 public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
4031 private boolean presolveBlockedClause_ = true;
4041 @java.lang.Override
4042 public boolean hasPresolveBlockedClause() {
4043 return ((bitField1_ & 0x40000000) != 0);
4044 }
4045
4054 @java.lang.Override
4055 public boolean getPresolveBlockedClause() {
4056 return presolveBlockedClause_;
4057 }
4058
4059 public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
4060 private boolean presolveUseBva_ = true;
4069 @java.lang.Override
4070 public boolean hasPresolveUseBva() {
4071 return ((bitField1_ & 0x80000000) != 0);
4072 }
4073
4081 @java.lang.Override
4082 public boolean getPresolveUseBva() {
4083 return presolveUseBva_;
4084 }
4085
4086 public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
4087 private int presolveBvaThreshold_ = 1;
4099 @java.lang.Override
4100 public boolean hasPresolveBvaThreshold() {
4101 return ((bitField2_ & 0x00000001) != 0);
4102 }
4103
4114 @java.lang.Override
4116 return presolveBvaThreshold_;
4117 }
4118
4119 public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
4120 private int maxPresolveIterations_ = 3;
4131 @java.lang.Override
4132 public boolean hasMaxPresolveIterations() {
4133 return ((bitField2_ & 0x00000002) != 0);
4134 }
4135
4145 @java.lang.Override
4147 return maxPresolveIterations_;
4148 }
4149
4150 public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4151 private boolean cpModelPresolve_ = true;
4160 @java.lang.Override
4161 public boolean hasCpModelPresolve() {
4162 return ((bitField2_ & 0x00000004) != 0);
4163 }
4164
4172 @java.lang.Override
4173 public boolean getCpModelPresolve() {
4174 return cpModelPresolve_;
4175 }
4176
4177 public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4178 private int cpModelProbingLevel_ = 2;
4187 @java.lang.Override
4188 public boolean hasCpModelProbingLevel() {
4189 return ((bitField2_ & 0x00000008) != 0);
4190 }
4191
4199 @java.lang.Override
4201 return cpModelProbingLevel_;
4202 }
4203
4204 public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4205 private boolean cpModelUseSatPresolve_ = true;
4214 @java.lang.Override
4215 public boolean hasCpModelUseSatPresolve() {
4216 return ((bitField2_ & 0x00000010) != 0);
4217 }
4218
4226 @java.lang.Override
4227 public boolean getCpModelUseSatPresolve() {
4228 return cpModelUseSatPresolve_;
4229 }
4230
4231 public static final int REMOVE_FIXED_VARIABLES_EARLY_FIELD_NUMBER = 310;
4232 private boolean removeFixedVariablesEarly_ = true;
4244 @java.lang.Override
4246 return ((bitField2_ & 0x00000020) != 0);
4247 }
4248
4259 @java.lang.Override
4261 return removeFixedVariablesEarly_;
4262 }
4263
4264 public static final int DETECT_TABLE_WITH_COST_FIELD_NUMBER = 216;
4265 private boolean detectTableWithCost_ = false;
4279 @java.lang.Override
4280 public boolean hasDetectTableWithCost() {
4281 return ((bitField2_ & 0x00000040) != 0);
4282 }
4283
4296 @java.lang.Override
4297 public boolean getDetectTableWithCost() {
4298 return detectTableWithCost_;
4299 }
4300
4301 public static final int TABLE_COMPRESSION_LEVEL_FIELD_NUMBER = 217;
4302 private int tableCompressionLevel_ = 2;
4314 @java.lang.Override
4315 public boolean hasTableCompressionLevel() {
4316 return ((bitField2_ & 0x00000080) != 0);
4317 }
4318
4329 @java.lang.Override
4331 return tableCompressionLevel_;
4332 }
4333
4334 public static final int EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER = 170;
4335 private boolean expandAlldiffConstraints_ = false;
4345 @java.lang.Override
4347 return ((bitField2_ & 0x00000100) != 0);
4348 }
4349
4358 @java.lang.Override
4360 return expandAlldiffConstraints_;
4361 }
4362
4363 public static final int EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER = 182;
4364 private boolean expandReservoirConstraints_ = true;
4374 @java.lang.Override
4376 return ((bitField2_ & 0x00000200) != 0);
4377 }
4378
4387 @java.lang.Override
4389 return expandReservoirConstraints_;
4390 }
4391
4392 public static final int EXPAND_RESERVOIR_USING_CIRCUIT_FIELD_NUMBER = 288;
4393 private boolean expandReservoirUsingCircuit_ = false;
4415 @java.lang.Override
4417 return ((bitField2_ & 0x00000400) != 0);
4418 }
4419
4440 @java.lang.Override
4442 return expandReservoirUsingCircuit_;
4443 }
4444
4445 public static final int ENCODE_CUMULATIVE_AS_RESERVOIR_FIELD_NUMBER = 287;
4446 private boolean encodeCumulativeAsReservoir_ = false;
4457 @java.lang.Override
4459 return ((bitField2_ & 0x00000800) != 0);
4460 }
4461
4471 @java.lang.Override
4473 return encodeCumulativeAsReservoir_;
4474 }
4475
4476 public static final int MAX_LIN_MAX_SIZE_FOR_EXPANSION_FIELD_NUMBER = 280;
4477 private int maxLinMaxSizeForExpansion_ = 0;
4490 @java.lang.Override
4492 return ((bitField2_ & 0x00001000) != 0);
4493 }
4494
4506 @java.lang.Override
4508 return maxLinMaxSizeForExpansion_;
4509 }
4510
4511 public static final int DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER = 181;
4512 private boolean disableConstraintExpansion_ = false;
4522 @java.lang.Override
4524 return ((bitField2_ & 0x00002000) != 0);
4525 }
4526
4535 @java.lang.Override
4537 return disableConstraintExpansion_;
4538 }
4539
4541 private boolean encodeComplexLinearConstraintWithInteger_ = false;
4551 @java.lang.Override
4553 return ((bitField2_ & 0x00004000) != 0);
4554 }
4555
4564 @java.lang.Override
4566 return encodeComplexLinearConstraintWithInteger_;
4567 }
4568
4569 public static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER = 145;
4570 private double mergeNoOverlapWorkLimit_ = 1000000000000D;
4583 @java.lang.Override
4585 return ((bitField2_ & 0x00008000) != 0);
4586 }
4587
4599 @java.lang.Override
4601 return mergeNoOverlapWorkLimit_;
4602 }
4603
4604 public static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER = 146;
4605 private double mergeAtMostOneWorkLimit_ = 100000000D;
4610 @java.lang.Override
4612 return ((bitField2_ & 0x00010000) != 0);
4613 }
4614
4618 @java.lang.Override
4620 return mergeAtMostOneWorkLimit_;
4621 }
4622
4623 public static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER = 147;
4624 private int presolveSubstitutionLevel_ = 1;
4636 @java.lang.Override
4638 return ((bitField2_ & 0x00020000) != 0);
4639 }
4640
4651 @java.lang.Override
4653 return presolveSubstitutionLevel_;
4654 }
4655
4657 private boolean presolveExtractIntegerEnforcement_ = false;
4671 @java.lang.Override
4673 return ((bitField2_ & 0x00040000) != 0);
4674 }
4675
4688 @java.lang.Override
4690 return presolveExtractIntegerEnforcement_;
4691 }
4692
4693 public static final int PRESOLVE_INCLUSION_WORK_LIMIT_FIELD_NUMBER = 201;
4694 private long presolveInclusionWorkLimit_ = 100000000L;
4709 @java.lang.Override
4711 return ((bitField2_ & 0x00080000) != 0);
4712 }
4713
4727 @java.lang.Override
4729 return presolveInclusionWorkLimit_;
4730 }
4731
4732 public static final int IGNORE_NAMES_FIELD_NUMBER = 202;
4733 private boolean ignoreNames_ = true;
4742 @java.lang.Override
4743 public boolean hasIgnoreNames() {
4744 return ((bitField2_ & 0x00100000) != 0);
4745 }
4746
4754 @java.lang.Override
4755 public boolean getIgnoreNames() {
4756 return ignoreNames_;
4757 }
4758
4759 public static final int INFER_ALL_DIFFS_FIELD_NUMBER = 233;
4760 private boolean inferAllDiffs_ = true;
4776 @java.lang.Override
4777 public boolean hasInferAllDiffs() {
4778 return ((bitField2_ & 0x00200000) != 0);
4779 }
4780
4795 @java.lang.Override
4796 public boolean getInferAllDiffs() {
4797 return inferAllDiffs_;
4798 }
4799
4800 public static final int FIND_BIG_LINEAR_OVERLAP_FIELD_NUMBER = 234;
4801 private boolean findBigLinearOverlap_ = true;
4813 @java.lang.Override
4814 public boolean hasFindBigLinearOverlap() {
4815 return ((bitField2_ & 0x00400000) != 0);
4816 }
4817
4828 @java.lang.Override
4829 public boolean getFindBigLinearOverlap() {
4830 return findBigLinearOverlap_;
4831 }
4832
4833 public static final int USE_SAT_INPROCESSING_FIELD_NUMBER = 163;
4834 private boolean useSatInprocessing_ = true;
4844 @java.lang.Override
4845 public boolean hasUseSatInprocessing() {
4846 return ((bitField2_ & 0x00800000) != 0);
4847 }
4848
4857 @java.lang.Override
4858 public boolean getUseSatInprocessing() {
4859 return useSatInprocessing_;
4860 }
4861
4862 public static final int INPROCESSING_DTIME_RATIO_FIELD_NUMBER = 273;
4863 private double inprocessingDtimeRatio_ = 0.2D;
4874 @java.lang.Override
4875 public boolean hasInprocessingDtimeRatio() {
4876 return ((bitField2_ & 0x01000000) != 0);
4877 }
4878
4888 @java.lang.Override
4890 return inprocessingDtimeRatio_;
4891 }
4892
4893 public static final int INPROCESSING_PROBING_DTIME_FIELD_NUMBER = 274;
4894 private double inprocessingProbingDtime_ = 1D;
4903 @java.lang.Override
4905 return ((bitField2_ & 0x02000000) != 0);
4906 }
4907
4915 @java.lang.Override
4917 return inprocessingProbingDtime_;
4918 }
4919
4921 private double inprocessingMinimizationDtime_ = 1D;
4939 @java.lang.Override
4941 return ((bitField2_ & 0x04000000) != 0);
4942 }
4943
4960 @java.lang.Override
4962 return inprocessingMinimizationDtime_;
4963 }
4964
4966 private boolean inprocessingMinimizationUseConflictAnalysis_ = true;
4971 @java.lang.Override
4973 return ((bitField2_ & 0x08000000) != 0);
4974 }
4975
4979 @java.lang.Override
4981 return inprocessingMinimizationUseConflictAnalysis_;
4982 }
4983
4985 private boolean inprocessingMinimizationUseAllOrderings_ = false;
4990 @java.lang.Override
4992 return ((bitField2_ & 0x10000000) != 0);
4993 }
4994
4998 @java.lang.Override
5000 return inprocessingMinimizationUseAllOrderings_;
5001 }
5002
5003 public static final int NUM_WORKERS_FIELD_NUMBER = 206;
5004 private int numWorkers_ = 0;
5026 @java.lang.Override
5027 public boolean hasNumWorkers() {
5028 return ((bitField2_ & 0x20000000) != 0);
5029 }
5030
5051 @java.lang.Override
5052 public int getNumWorkers() {
5053 return numWorkers_;
5054 }
5055
5056 public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
5057 private int numSearchWorkers_ = 0;
5062 @java.lang.Override
5063 public boolean hasNumSearchWorkers() {
5064 return ((bitField2_ & 0x40000000) != 0);
5065 }
5066
5070 @java.lang.Override
5071 public int getNumSearchWorkers() {
5072 return numSearchWorkers_;
5073 }
5074
5075 public static final int NUM_FULL_SUBSOLVERS_FIELD_NUMBER = 294;
5076 private int numFullSubsolvers_ = 0;
5089 @java.lang.Override
5090 public boolean hasNumFullSubsolvers() {
5091 return ((bitField2_ & 0x80000000) != 0);
5092 }
5093
5105 @java.lang.Override
5107 return numFullSubsolvers_;
5108 }
5109
5110 public static final int SUBSOLVERS_FIELD_NUMBER = 207;
5111 @SuppressWarnings("serial")
5112 private com.google.protobuf.LazyStringArrayList subsolvers_ =
5113 com.google.protobuf.LazyStringArrayList.emptyList();
5146 public com.google.protobuf.ProtocolStringList
5148 return subsolvers_;
5149 }
5150
5182 public int getSubsolversCount() {
5183 return subsolvers_.size();
5184 }
5185
5218 public java.lang.String getSubsolvers(int index) {
5219 return subsolvers_.get(index);
5220 }
5221
5254 public com.google.protobuf.ByteString
5256 return subsolvers_.getByteString(index);
5257 }
5258
5259 public static final int EXTRA_SUBSOLVERS_FIELD_NUMBER = 219;
5260 @SuppressWarnings("serial")
5261 private com.google.protobuf.LazyStringArrayList extraSubsolvers_ =
5262 com.google.protobuf.LazyStringArrayList.emptyList();
5272 public com.google.protobuf.ProtocolStringList
5274 return extraSubsolvers_;
5275 }
5276
5286 return extraSubsolvers_.size();
5287 }
5288
5298 public java.lang.String getExtraSubsolvers(int index) {
5299 return extraSubsolvers_.get(index);
5300 }
5301
5311 public com.google.protobuf.ByteString
5313 return extraSubsolvers_.getByteString(index);
5314 }
5315
5316 public static final int IGNORE_SUBSOLVERS_FIELD_NUMBER = 209;
5317 @SuppressWarnings("serial")
5318 private com.google.protobuf.LazyStringArrayList ignoreSubsolvers_ =
5319 com.google.protobuf.LazyStringArrayList.emptyList();
5336 public com.google.protobuf.ProtocolStringList
5338 return ignoreSubsolvers_;
5339 }
5340
5357 return ignoreSubsolvers_.size();
5358 }
5359
5376 public java.lang.String getIgnoreSubsolvers(int index) {
5377 return ignoreSubsolvers_.get(index);
5378 }
5379
5396 public com.google.protobuf.ByteString
5398 return ignoreSubsolvers_.getByteString(index);
5399 }
5400
5401 public static final int FILTER_SUBSOLVERS_FIELD_NUMBER = 293;
5402 @SuppressWarnings("serial")
5403 private com.google.protobuf.LazyStringArrayList filterSubsolvers_ =
5404 com.google.protobuf.LazyStringArrayList.emptyList();
5409 public com.google.protobuf.ProtocolStringList
5411 return filterSubsolvers_;
5412 }
5413
5418 return filterSubsolvers_.size();
5419 }
5420
5425 public java.lang.String getFilterSubsolvers(int index) {
5426 return filterSubsolvers_.get(index);
5427 }
5428
5433 public com.google.protobuf.ByteString
5435 return filterSubsolvers_.getByteString(index);
5436 }
5437
5438 public static final int SUBSOLVER_PARAMS_FIELD_NUMBER = 210;
5439 @SuppressWarnings("serial")
5440 private java.util.List<com.google.ortools.sat.SatParameters> subsolverParams_;
5452 @java.lang.Override
5453 public java.util.List<com.google.ortools.sat.SatParameters> getSubsolverParamsList() {
5454 return subsolverParams_;
5455 }
5456
5467 @java.lang.Override
5468 public java.util.List<? extends com.google.ortools.sat.SatParametersOrBuilder>
5470 return subsolverParams_;
5471 }
5472
5483 @java.lang.Override
5485 return subsolverParams_.size();
5486 }
5487
5498 @java.lang.Override
5500 return subsolverParams_.get(index);
5501 }
5502
5513 @java.lang.Override
5515 int index) {
5516 return subsolverParams_.get(index);
5517 }
5518
5519 public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
5520 private boolean interleaveSearch_ = false;
5534 @java.lang.Override
5535 public boolean hasInterleaveSearch() {
5536 return ((bitField3_ & 0x00000001) != 0);
5537 }
5538
5551 @java.lang.Override
5552 public boolean getInterleaveSearch() {
5553 return interleaveSearch_;
5554 }
5555
5556 public static final int INTERLEAVE_BATCH_SIZE_FIELD_NUMBER = 134;
5557 private int interleaveBatchSize_ = 0;
5562 @java.lang.Override
5563 public boolean hasInterleaveBatchSize() {
5564 return ((bitField3_ & 0x00000002) != 0);
5565 }
5566
5570 @java.lang.Override
5572 return interleaveBatchSize_;
5573 }
5574
5575 public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
5576 private boolean shareObjectiveBounds_ = true;
5585 @java.lang.Override
5586 public boolean hasShareObjectiveBounds() {
5587 return ((bitField3_ & 0x00000004) != 0);
5588 }
5589
5597 @java.lang.Override
5598 public boolean getShareObjectiveBounds() {
5599 return shareObjectiveBounds_;
5600 }
5601
5602 public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
5603 private boolean shareLevelZeroBounds_ = true;
5612 @java.lang.Override
5613 public boolean hasShareLevelZeroBounds() {
5614 return ((bitField3_ & 0x00000008) != 0);
5615 }
5616
5624 @java.lang.Override
5625 public boolean getShareLevelZeroBounds() {
5626 return shareLevelZeroBounds_;
5627 }
5628
5629 public static final int SHARE_BINARY_CLAUSES_FIELD_NUMBER = 203;
5630 private boolean shareBinaryClauses_ = true;
5639 @java.lang.Override
5640 public boolean hasShareBinaryClauses() {
5641 return ((bitField3_ & 0x00000010) != 0);
5642 }
5643
5651 @java.lang.Override
5652 public boolean getShareBinaryClauses() {
5653 return shareBinaryClauses_;
5654 }
5655
5656 public static final int SHARE_GLUE_CLAUSES_FIELD_NUMBER = 285;
5657 private boolean shareGlueClauses_ = false;
5667 @java.lang.Override
5668 public boolean hasShareGlueClauses() {
5669 return ((bitField3_ & 0x00000020) != 0);
5670 }
5671
5680 @java.lang.Override
5681 public boolean getShareGlueClauses() {
5682 return shareGlueClauses_;
5683 }
5684
5685 public static final int MINIMIZE_SHARED_CLAUSES_FIELD_NUMBER = 300;
5686 private boolean minimizeSharedClauses_ = true;
5696 @java.lang.Override
5697 public boolean hasMinimizeSharedClauses() {
5698 return ((bitField3_ & 0x00000040) != 0);
5699 }
5700
5709 @java.lang.Override
5710 public boolean getMinimizeSharedClauses() {
5711 return minimizeSharedClauses_;
5712 }
5713
5715 private boolean debugPostsolveWithFullSolver_ = false;
5726 @java.lang.Override
5728 return ((bitField3_ & 0x00000080) != 0);
5729 }
5730
5740 @java.lang.Override
5742 return debugPostsolveWithFullSolver_;
5743 }
5744
5746 private int debugMaxNumPresolveOperations_ = 0;
5756 @java.lang.Override
5758 return ((bitField3_ & 0x00000100) != 0);
5759 }
5760
5769 @java.lang.Override
5771 return debugMaxNumPresolveOperations_;
5772 }
5773
5774 public static final int DEBUG_CRASH_ON_BAD_HINT_FIELD_NUMBER = 195;
5775 private boolean debugCrashOnBadHint_ = false;
5784 @java.lang.Override
5785 public boolean hasDebugCrashOnBadHint() {
5786 return ((bitField3_ & 0x00000200) != 0);
5787 }
5788
5796 @java.lang.Override
5797 public boolean getDebugCrashOnBadHint() {
5798 return debugCrashOnBadHint_;
5799 }
5800
5802 private boolean debugCrashIfPresolveBreaksHint_ = false;
5811 @java.lang.Override
5813 return ((bitField3_ & 0x00000400) != 0);
5814 }
5815
5823 @java.lang.Override
5825 return debugCrashIfPresolveBreaksHint_;
5826 }
5827
5828 public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
5829 private boolean useOptimizationHints_ = true;
5841 @java.lang.Override
5842 public boolean hasUseOptimizationHints() {
5843 return ((bitField3_ & 0x00000800) != 0);
5844 }
5845
5856 @java.lang.Override
5857 public boolean getUseOptimizationHints() {
5858 return useOptimizationHints_;
5859 }
5860
5861 public static final int CORE_MINIMIZATION_LEVEL_FIELD_NUMBER = 50;
5862 private int coreMinimizationLevel_ = 2;
5874 @java.lang.Override
5875 public boolean hasCoreMinimizationLevel() {
5876 return ((bitField3_ & 0x00001000) != 0);
5877 }
5878
5889 @java.lang.Override
5891 return coreMinimizationLevel_;
5892 }
5893
5894 public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
5895 private boolean findMultipleCores_ = true;
5905 @java.lang.Override
5906 public boolean hasFindMultipleCores() {
5907 return ((bitField3_ & 0x00002000) != 0);
5908 }
5909
5918 @java.lang.Override
5919 public boolean getFindMultipleCores() {
5920 return findMultipleCores_;
5921 }
5922
5923 public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
5924 private boolean coverOptimization_ = true;
5935 @java.lang.Override
5936 public boolean hasCoverOptimization() {
5937 return ((bitField3_ & 0x00004000) != 0);
5938 }
5939
5949 @java.lang.Override
5950 public boolean getCoverOptimization() {
5951 return coverOptimization_;
5952 }
5953
5954 public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
5955 private int maxSatAssumptionOrder_ = 0;
5960 @java.lang.Override public boolean hasMaxSatAssumptionOrder() {
5961 return ((bitField3_ & 0x00008000) != 0);
5962 }
5963
5968 com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder result = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.forNumber(maxSatAssumptionOrder_);
5970 }
5971
5973 private boolean maxSatReverseAssumptionOrder_ = false;
5983 @java.lang.Override
5985 return ((bitField3_ & 0x00010000) != 0);
5986 }
5987
5996 @java.lang.Override
5998 return maxSatReverseAssumptionOrder_;
5999 }
6000
6001 public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
6002 private int maxSatStratification_ = 1;
6007 @java.lang.Override public boolean hasMaxSatStratification() {
6008 return ((bitField3_ & 0x00020000) != 0);
6009 }
6010
6015 com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm result = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.forNumber(maxSatStratification_);
6017 }
6018
6020 private double propagationLoopDetectionFactor_ = 10D;
6037 @java.lang.Override
6039 return ((bitField3_ & 0x00040000) != 0);
6040 }
6041
6057 @java.lang.Override
6059 return propagationLoopDetectionFactor_;
6060 }
6061
6063 private boolean usePrecedencesInDisjunctiveConstraint_ = true;
6080 @java.lang.Override
6082 return ((bitField3_ & 0x00080000) != 0);
6083 }
6084
6100 @java.lang.Override
6102 return usePrecedencesInDisjunctiveConstraint_;
6103 }
6104
6106 private int maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
6119 @java.lang.Override
6121 return ((bitField3_ & 0x00100000) != 0);
6122 }
6123
6135 @java.lang.Override
6137 return maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
6138 }
6139
6141 private boolean useStrongPropagationInDisjunctive_ = false;
6150 @java.lang.Override
6152 return ((bitField3_ & 0x00200000) != 0);
6153 }
6154
6162 @java.lang.Override
6164 return useStrongPropagationInDisjunctive_;
6165 }
6166
6168 private boolean useDynamicPrecedenceInDisjunctive_ = false;
6182 @java.lang.Override
6184 return ((bitField3_ & 0x00400000) != 0);
6185 }
6186
6199 @java.lang.Override
6201 return useDynamicPrecedenceInDisjunctive_;
6202 }
6203
6205 private boolean useDynamicPrecedenceInCumulative_ = false;
6210 @java.lang.Override
6212 return ((bitField3_ & 0x00800000) != 0);
6213 }
6214
6218 @java.lang.Override
6220 return useDynamicPrecedenceInCumulative_;
6221 }
6222
6224 private boolean useOverloadCheckerInCumulative_ = false;
6239 @java.lang.Override
6241 return ((bitField3_ & 0x01000000) != 0);
6242 }
6243
6257 @java.lang.Override
6259 return useOverloadCheckerInCumulative_;
6260 }
6261
6263 private boolean useConservativeScaleOverloadChecker_ = false;
6278 @java.lang.Override
6280 return ((bitField3_ & 0x02000000) != 0);
6281 }
6282
6296 @java.lang.Override
6298 return useConservativeScaleOverloadChecker_;
6299 }
6300
6302 private boolean useTimetableEdgeFindingInCumulative_ = false;
6317 @java.lang.Override
6319 return ((bitField3_ & 0x04000000) != 0);
6320 }
6321
6335 @java.lang.Override
6337 return useTimetableEdgeFindingInCumulative_;
6338 }
6339
6341 private int maxNumIntervalsForTimetableEdgeFinding_ = 100;
6351 @java.lang.Override
6353 return ((bitField3_ & 0x08000000) != 0);
6354 }
6355
6364 @java.lang.Override
6366 return maxNumIntervalsForTimetableEdgeFinding_;
6367 }
6368
6370 private boolean useHardPrecedencesInCumulative_ = false;
6384 @java.lang.Override
6386 return ((bitField3_ & 0x10000000) != 0);
6387 }
6388
6401 @java.lang.Override
6403 return useHardPrecedencesInCumulative_;
6404 }
6405
6406 public static final int EXPLOIT_ALL_PRECEDENCES_FIELD_NUMBER = 220;
6407 private boolean exploitAllPrecedences_ = false;
6412 @java.lang.Override
6413 public boolean hasExploitAllPrecedences() {
6414 return ((bitField3_ & 0x20000000) != 0);
6415 }
6416
6420 @java.lang.Override
6421 public boolean getExploitAllPrecedences() {
6422 return exploitAllPrecedences_;
6423 }
6424
6426 private boolean useDisjunctiveConstraintInCumulative_ = true;
6444 @java.lang.Override
6446 return ((bitField3_ & 0x40000000) != 0);
6447 }
6448
6465 @java.lang.Override
6467 return useDisjunctiveConstraintInCumulative_;
6468 }
6469
6471 private boolean useTimetablingInNoOverlap2D_ = false;
6484 @java.lang.Override
6486 return ((bitField3_ & 0x80000000) != 0);
6487 }
6488
6500 @java.lang.Override
6502 return useTimetablingInNoOverlap2D_;
6503 }
6504
6506 private boolean useEnergeticReasoningInNoOverlap2D_ = false;
6517 @java.lang.Override
6519 return ((bitField4_ & 0x00000001) != 0);
6520 }
6521
6531 @java.lang.Override
6533 return useEnergeticReasoningInNoOverlap2D_;
6534 }
6535
6537 private boolean useAreaEnergeticReasoningInNoOverlap2D_ = false;
6548 @java.lang.Override
6550 return ((bitField4_ & 0x00000002) != 0);
6551 }
6552
6562 @java.lang.Override
6564 return useAreaEnergeticReasoningInNoOverlap2D_;
6565 }
6566
6568 private boolean useTryEdgeReasoningInNoOverlap2D_ = false;
6573 @java.lang.Override
6575 return ((bitField4_ & 0x00000004) != 0);
6576 }
6577
6581 @java.lang.Override
6583 return useTryEdgeReasoningInNoOverlap2D_;
6584 }
6585
6587 private int maxPairsPairwiseReasoningInNoOverlap2D_ = 1250;
6598 @java.lang.Override
6600 return ((bitField4_ & 0x00000008) != 0);
6601 }
6602
6612 @java.lang.Override
6614 return maxPairsPairwiseReasoningInNoOverlap2D_;
6615 }
6616
6618 private int maximumRegionsToSplitInDisconnectedNoOverlap2D_ = 0;
6636 @java.lang.Override
6638 return ((bitField4_ & 0x00000010) != 0);
6639 }
6640
6657 @java.lang.Override
6659 return maximumRegionsToSplitInDisconnectedNoOverlap2D_;
6660 }
6661
6662 public static final int USE_DUAL_SCHEDULING_HEURISTICS_FIELD_NUMBER = 214;
6663 private boolean useDualSchedulingHeuristics_ = true;
6674 @java.lang.Override
6676 return ((bitField4_ & 0x00000020) != 0);
6677 }
6678
6688 @java.lang.Override
6690 return useDualSchedulingHeuristics_;
6691 }
6692
6693 public static final int USE_ALL_DIFFERENT_FOR_CIRCUIT_FIELD_NUMBER = 311;
6694 private boolean useAllDifferentForCircuit_ = false;
6704 @java.lang.Override
6706 return ((bitField4_ & 0x00000040) != 0);
6707 }
6708
6717 @java.lang.Override
6719 return useAllDifferentForCircuit_;
6720 }
6721
6723 private int routingCutSubsetSizeForBinaryRelationBound_ = 0;
6739 @java.lang.Override
6741 return ((bitField4_ & 0x00000080) != 0);
6742 }
6743
6758 @java.lang.Override
6760 return routingCutSubsetSizeForBinaryRelationBound_;
6761 }
6762
6764 private int routingCutSubsetSizeForTightBinaryRelationBound_ = 0;
6775 @java.lang.Override
6777 return ((bitField4_ & 0x00000100) != 0);
6778 }
6779
6789 @java.lang.Override
6791 return routingCutSubsetSizeForTightBinaryRelationBound_;
6792 }
6793
6794 public static final int ROUTING_CUT_DP_EFFORT_FIELD_NUMBER = 314;
6795 private double routingCutDpEffort_ = 10000000D;
6807 @java.lang.Override
6808 public boolean hasRoutingCutDpEffort() {
6809 return ((bitField4_ & 0x00000200) != 0);
6810 }
6811
6822 @java.lang.Override
6823 public double getRoutingCutDpEffort() {
6824 return routingCutDpEffort_;
6825 }
6826
6827 public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
6828 private int searchBranching_ = 0;
6833 @java.lang.Override public boolean hasSearchBranching() {
6834 return ((bitField4_ & 0x00000400) != 0);
6835 }
6836
6841 com.google.ortools.sat.SatParameters.SearchBranching result = com.google.ortools.sat.SatParameters.SearchBranching.forNumber(searchBranching_);
6843 }
6844
6845 public static final int HINT_CONFLICT_LIMIT_FIELD_NUMBER = 153;
6846 private int hintConflictLimit_ = 10;
6855 @java.lang.Override
6856 public boolean hasHintConflictLimit() {
6857 return ((bitField4_ & 0x00000800) != 0);
6858 }
6859
6867 @java.lang.Override
6869 return hintConflictLimit_;
6870 }
6871
6872 public static final int REPAIR_HINT_FIELD_NUMBER = 167;
6873 private boolean repairHint_ = false;
6885 @java.lang.Override
6886 public boolean hasRepairHint() {
6887 return ((bitField4_ & 0x00001000) != 0);
6888 }
6889
6900 @java.lang.Override
6901 public boolean getRepairHint() {
6902 return repairHint_;
6903 }
6904
6906 private boolean fixVariablesToTheirHintedValue_ = false;
6916 @java.lang.Override
6918 return ((bitField4_ & 0x00002000) != 0);
6919 }
6920
6929 @java.lang.Override
6931 return fixVariablesToTheirHintedValue_;
6932 }
6933
6934 public static final int USE_PROBING_SEARCH_FIELD_NUMBER = 176;
6935 private boolean useProbingSearch_ = false;
6946 @java.lang.Override
6947 public boolean hasUseProbingSearch() {
6948 return ((bitField4_ & 0x00004000) != 0);
6949 }
6950
6960 @java.lang.Override
6961 public boolean getUseProbingSearch() {
6962 return useProbingSearch_;
6963 }
6964
6965 public static final int USE_EXTENDED_PROBING_FIELD_NUMBER = 269;
6966 private boolean useExtendedProbing_ = true;
6975 @java.lang.Override
6976 public boolean hasUseExtendedProbing() {
6977 return ((bitField4_ & 0x00008000) != 0);
6978 }
6979
6987 @java.lang.Override
6988 public boolean getUseExtendedProbing() {
6989 return useExtendedProbing_;
6990 }
6991
6992 public static final int PROBING_NUM_COMBINATIONS_LIMIT_FIELD_NUMBER = 272;
6993 private int probingNumCombinationsLimit_ = 20000;
7002 @java.lang.Override
7004 return ((bitField4_ & 0x00010000) != 0);
7005 }
7006
7014 @java.lang.Override
7016 return probingNumCombinationsLimit_;
7017 }
7018
7019 public static final int USE_SHAVING_IN_PROBING_SEARCH_FIELD_NUMBER = 204;
7020 private boolean useShavingInProbingSearch_ = true;
7030 @java.lang.Override
7032 return ((bitField4_ & 0x00020000) != 0);
7033 }
7034
7043 @java.lang.Override
7045 return useShavingInProbingSearch_;
7046 }
7047
7049 private double shavingSearchDeterministicTime_ = 0.001D;
7059 @java.lang.Override
7061 return ((bitField4_ & 0x00040000) != 0);
7062 }
7063
7072 @java.lang.Override
7074 return shavingSearchDeterministicTime_;
7075 }
7076
7077 public static final int SHAVING_SEARCH_THRESHOLD_FIELD_NUMBER = 290;
7078 private long shavingSearchThreshold_ = 64L;
7090 @java.lang.Override
7091 public boolean hasShavingSearchThreshold() {
7092 return ((bitField4_ & 0x00080000) != 0);
7093 }
7094
7105 @java.lang.Override
7107 return shavingSearchThreshold_;
7108 }
7109
7110 public static final int USE_OBJECTIVE_LB_SEARCH_FIELD_NUMBER = 228;
7111 private boolean useObjectiveLbSearch_ = false;
7121 @java.lang.Override
7122 public boolean hasUseObjectiveLbSearch() {
7123 return ((bitField4_ & 0x00100000) != 0);
7124 }
7125
7134 @java.lang.Override
7135 public boolean getUseObjectiveLbSearch() {
7136 return useObjectiveLbSearch_;
7137 }
7138
7139 public static final int USE_OBJECTIVE_SHAVING_SEARCH_FIELD_NUMBER = 253;
7140 private boolean useObjectiveShavingSearch_ = false;
7151 @java.lang.Override
7153 return ((bitField4_ & 0x00200000) != 0);
7154 }
7155
7165 @java.lang.Override
7167 return useObjectiveShavingSearch_;
7168 }
7169
7170 public static final int USE_VARIABLES_SHAVING_SEARCH_FIELD_NUMBER = 289;
7171 private boolean useVariablesShavingSearch_ = false;
7181 @java.lang.Override
7183 return ((bitField4_ & 0x00400000) != 0);
7184 }
7185
7194 @java.lang.Override
7196 return useVariablesShavingSearch_;
7197 }
7198
7200 private long pseudoCostReliabilityThreshold_ = 100L;
7210 @java.lang.Override
7212 return ((bitField4_ & 0x00800000) != 0);
7213 }
7214
7223 @java.lang.Override
7225 return pseudoCostReliabilityThreshold_;
7226 }
7227
7228 public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
7229 private boolean optimizeWithCore_ = false;
7241 @java.lang.Override
7242 public boolean hasOptimizeWithCore() {
7243 return ((bitField4_ & 0x01000000) != 0);
7244 }
7245
7256 @java.lang.Override
7257 public boolean getOptimizeWithCore() {
7258 return optimizeWithCore_;
7259 }
7260
7261 public static final int OPTIMIZE_WITH_LB_TREE_SEARCH_FIELD_NUMBER = 188;
7262 private boolean optimizeWithLbTreeSearch_ = false;
7275 @java.lang.Override
7277 return ((bitField4_ & 0x02000000) != 0);
7278 }
7279
7291 @java.lang.Override
7293 return optimizeWithLbTreeSearch_;
7294 }
7295
7297 private boolean saveLpBasisInLbTreeSearch_ = false;
7311 @java.lang.Override
7313 return ((bitField4_ & 0x04000000) != 0);
7314 }
7315
7328 @java.lang.Override
7330 return saveLpBasisInLbTreeSearch_;
7331 }
7332
7333 public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
7334 private int binarySearchNumConflicts_ = -1;
7346 @java.lang.Override
7348 return ((bitField4_ & 0x08000000) != 0);
7349 }
7350
7361 @java.lang.Override
7363 return binarySearchNumConflicts_;
7364 }
7365
7366 public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
7367 private boolean optimizeWithMaxHs_ = false;
7381 @java.lang.Override
7382 public boolean hasOptimizeWithMaxHs() {
7383 return ((bitField4_ & 0x10000000) != 0);
7384 }
7385
7398 @java.lang.Override
7399 public boolean getOptimizeWithMaxHs() {
7400 return optimizeWithMaxHs_;
7401 }
7402
7403 public static final int USE_FEASIBILITY_JUMP_FIELD_NUMBER = 265;
7404 private boolean useFeasibilityJump_ = true;
7415 @java.lang.Override
7416 public boolean hasUseFeasibilityJump() {
7417 return ((bitField4_ & 0x20000000) != 0);
7418 }
7419
7429 @java.lang.Override
7430 public boolean getUseFeasibilityJump() {
7431 return useFeasibilityJump_;
7432 }
7433
7434 public static final int USE_LS_ONLY_FIELD_NUMBER = 240;
7435 private boolean useLsOnly_ = false;
7445 @java.lang.Override
7446 public boolean hasUseLsOnly() {
7447 return ((bitField4_ & 0x40000000) != 0);
7448 }
7449
7458 @java.lang.Override
7459 public boolean getUseLsOnly() {
7460 return useLsOnly_;
7461 }
7462
7463 public static final int FEASIBILITY_JUMP_DECAY_FIELD_NUMBER = 242;
7464 private double feasibilityJumpDecay_ = 0.95D;
7474 @java.lang.Override
7475 public boolean hasFeasibilityJumpDecay() {
7476 return ((bitField4_ & 0x80000000) != 0);
7477 }
7478
7487 @java.lang.Override
7488 public double getFeasibilityJumpDecay() {
7489 return feasibilityJumpDecay_;
7490 }
7491
7493 private int feasibilityJumpLinearizationLevel_ = 2;
7502 @java.lang.Override
7504 return ((bitField5_ & 0x00000001) != 0);
7505 }
7506
7514 @java.lang.Override
7516 return feasibilityJumpLinearizationLevel_;
7517 }
7518
7520 private int feasibilityJumpRestartFactor_ = 1;
7530 @java.lang.Override
7532 return ((bitField5_ & 0x00000002) != 0);
7533 }
7534
7543 @java.lang.Override
7545 return feasibilityJumpRestartFactor_;
7546 }
7547
7548 public static final int FEASIBILITY_JUMP_BATCH_DTIME_FIELD_NUMBER = 292;
7549 private double feasibilityJumpBatchDtime_ = 0.1D;
7558 @java.lang.Override
7560 return ((bitField5_ & 0x00000004) != 0);
7561 }
7562
7570 @java.lang.Override
7572 return feasibilityJumpBatchDtime_;
7573 }
7574
7576 private double feasibilityJumpVarRandomizationProbability_ = 0.05D;
7586 @java.lang.Override
7588 return ((bitField5_ & 0x00000008) != 0);
7589 }
7590
7599 @java.lang.Override
7601 return feasibilityJumpVarRandomizationProbability_;
7602 }
7603
7605 private double feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
7615 @java.lang.Override
7617 return ((bitField5_ & 0x00000010) != 0);
7618 }
7619
7628 @java.lang.Override
7630 return feasibilityJumpVarPerburbationRangeRatio_;
7631 }
7632
7634 private boolean feasibilityJumpEnableRestarts_ = true;
7645 @java.lang.Override
7647 return ((bitField5_ & 0x00000020) != 0);
7648 }
7649
7659 @java.lang.Override
7661 return feasibilityJumpEnableRestarts_;
7662 }
7663
7665 private int feasibilityJumpMaxExpandedConstraintSize_ = 500;
7677 @java.lang.Override
7679 return ((bitField5_ & 0x00000040) != 0);
7680 }
7681
7692 @java.lang.Override
7694 return feasibilityJumpMaxExpandedConstraintSize_;
7695 }
7696
7697 public static final int NUM_VIOLATION_LS_FIELD_NUMBER = 244;
7698 private int numViolationLs_ = 0;
7709 @java.lang.Override
7710 public boolean hasNumViolationLs() {
7711 return ((bitField5_ & 0x00000080) != 0);
7712 }
7713
7723 @java.lang.Override
7724 public int getNumViolationLs() {
7725 return numViolationLs_;
7726 }
7727
7729 private int violationLsPerturbationPeriod_ = 100;
7738 @java.lang.Override
7740 return ((bitField5_ & 0x00000100) != 0);
7741 }
7742
7750 @java.lang.Override
7752 return violationLsPerturbationPeriod_;
7753 }
7754
7756 private double violationLsCompoundMoveProbability_ = 0.5D;
7766 @java.lang.Override
7768 return ((bitField5_ & 0x00000200) != 0);
7769 }
7770
7779 @java.lang.Override
7781 return violationLsCompoundMoveProbability_;
7782 }
7783
7784 public static final int SHARED_TREE_NUM_WORKERS_FIELD_NUMBER = 235;
7785 private int sharedTreeNumWorkers_ = 0;
7800 @java.lang.Override
7801 public boolean hasSharedTreeNumWorkers() {
7802 return ((bitField5_ & 0x00000400) != 0);
7803 }
7804
7818 @java.lang.Override
7820 return sharedTreeNumWorkers_;
7821 }
7822
7823 public static final int USE_SHARED_TREE_SEARCH_FIELD_NUMBER = 236;
7824 private boolean useSharedTreeSearch_ = false;
7833 @java.lang.Override
7834 public boolean hasUseSharedTreeSearch() {
7835 return ((bitField5_ & 0x00000800) != 0);
7836 }
7837
7845 @java.lang.Override
7846 public boolean getUseSharedTreeSearch() {
7847 return useSharedTreeSearch_;
7848 }
7849
7851 private int sharedTreeWorkerMinRestartsPerSubtree_ = 1;
7861 @java.lang.Override
7863 return ((bitField5_ & 0x00001000) != 0);
7864 }
7865
7874 @java.lang.Override
7876 return sharedTreeWorkerMinRestartsPerSubtree_;
7877 }
7878
7880 private boolean sharedTreeWorkerEnableTrailSharing_ = true;
7890 @java.lang.Override
7892 return ((bitField5_ & 0x00002000) != 0);
7893 }
7894
7903 @java.lang.Override
7905 return sharedTreeWorkerEnableTrailSharing_;
7906 }
7907
7909 private boolean sharedTreeWorkerEnablePhaseSharing_ = true;
7919 @java.lang.Override
7921 return ((bitField5_ & 0x00004000) != 0);
7922 }
7923
7932 @java.lang.Override
7934 return sharedTreeWorkerEnablePhaseSharing_;
7935 }
7936
7938 private double sharedTreeOpenLeavesPerWorker_ = 2D;
7947 @java.lang.Override
7949 return ((bitField5_ & 0x00008000) != 0);
7950 }
7951
7959 @java.lang.Override
7961 return sharedTreeOpenLeavesPerWorker_;
7962 }
7963
7965 private int sharedTreeMaxNodesPerWorker_ = 10000;
7977 @java.lang.Override
7979 return ((bitField5_ & 0x00010000) != 0);
7980 }
7981
7992 @java.lang.Override
7994 return sharedTreeMaxNodesPerWorker_;
7995 }
7996
7997 public static final int SHARED_TREE_SPLIT_STRATEGY_FIELD_NUMBER = 239;
7998 private int sharedTreeSplitStrategy_ = 0;
8003 @java.lang.Override public boolean hasSharedTreeSplitStrategy() {
8004 return ((bitField5_ & 0x00020000) != 0);
8005 }
8006
8011 com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy result = com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy.forNumber(sharedTreeSplitStrategy_);
8013 }
8014
8015 public static final int SHARED_TREE_BALANCE_TOLERANCE_FIELD_NUMBER = 305;
8016 private int sharedTreeBalanceTolerance_ = 1;
8031 @java.lang.Override
8033 return ((bitField5_ & 0x00040000) != 0);
8034 }
8035
8049 @java.lang.Override
8051 return sharedTreeBalanceTolerance_;
8052 }
8053
8054 public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
8055 private boolean enumerateAllSolutions_ = false;
8070 @java.lang.Override
8071 public boolean hasEnumerateAllSolutions() {
8072 return ((bitField5_ & 0x00080000) != 0);
8073 }
8074
8088 @java.lang.Override
8089 public boolean getEnumerateAllSolutions() {
8090 return enumerateAllSolutions_;
8091 }
8092
8094 private boolean keepAllFeasibleSolutionsInPresolve_ = false;
8110 @java.lang.Override
8112 return ((bitField5_ & 0x00100000) != 0);
8113 }
8114
8129 @java.lang.Override
8131 return keepAllFeasibleSolutionsInPresolve_;
8132 }
8133
8135 private boolean fillTightenedDomainsInResponse_ = false;
8148 @java.lang.Override
8150 return ((bitField5_ & 0x00200000) != 0);
8151 }
8152
8164 @java.lang.Override
8166 return fillTightenedDomainsInResponse_;
8167 }
8168
8170 private boolean fillAdditionalSolutionsInResponse_ = false;
8188 @java.lang.Override
8190 return ((bitField5_ & 0x00400000) != 0);
8191 }
8192
8209 @java.lang.Override
8211 return fillAdditionalSolutionsInResponse_;
8212 }
8213
8214 public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
8215 private boolean instantiateAllVariables_ = true;
8227 @java.lang.Override
8229 return ((bitField5_ & 0x00800000) != 0);
8230 }
8231
8242 @java.lang.Override
8244 return instantiateAllVariables_;
8245 }
8246
8248 private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
8260 @java.lang.Override
8262 return ((bitField5_ & 0x01000000) != 0);
8263 }
8264
8275 @java.lang.Override
8277 return autoDetectGreaterThanAtLeastOneOf_;
8278 }
8279
8280 public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
8281 private boolean stopAfterFirstSolution_ = false;
8290 @java.lang.Override
8291 public boolean hasStopAfterFirstSolution() {
8292 return ((bitField5_ & 0x02000000) != 0);
8293 }
8294
8302 @java.lang.Override
8303 public boolean getStopAfterFirstSolution() {
8304 return stopAfterFirstSolution_;
8305 }
8306
8307 public static final int STOP_AFTER_PRESOLVE_FIELD_NUMBER = 149;
8308 private boolean stopAfterPresolve_ = false;
8318 @java.lang.Override
8319 public boolean hasStopAfterPresolve() {
8320 return ((bitField5_ & 0x04000000) != 0);
8321 }
8322
8331 @java.lang.Override
8332 public boolean getStopAfterPresolve() {
8333 return stopAfterPresolve_;
8334 }
8335
8336 public static final int STOP_AFTER_ROOT_PROPAGATION_FIELD_NUMBER = 252;
8337 private boolean stopAfterRootPropagation_ = false;
8342 @java.lang.Override
8344 return ((bitField5_ & 0x08000000) != 0);
8345 }
8346
8350 @java.lang.Override
8352 return stopAfterRootPropagation_;
8353 }
8354
8355 public static final int LNS_INITIAL_DIFFICULTY_FIELD_NUMBER = 307;
8356 private double lnsInitialDifficulty_ = 0.5D;
8365 @java.lang.Override
8366 public boolean hasLnsInitialDifficulty() {
8367 return ((bitField5_ & 0x10000000) != 0);
8368 }
8369
8377 @java.lang.Override
8378 public double getLnsInitialDifficulty() {
8379 return lnsInitialDifficulty_;
8380 }
8381
8383 private double lnsInitialDeterministicLimit_ = 0.1D;
8388 @java.lang.Override
8390 return ((bitField5_ & 0x20000000) != 0);
8391 }
8392
8396 @java.lang.Override
8398 return lnsInitialDeterministicLimit_;
8399 }
8400
8401 public static final int USE_LNS_FIELD_NUMBER = 283;
8402 private boolean useLns_ = true;
8411 @java.lang.Override
8412 public boolean hasUseLns() {
8413 return ((bitField5_ & 0x40000000) != 0);
8414 }
8415
8423 @java.lang.Override
8424 public boolean getUseLns() {
8425 return useLns_;
8426 }
8427
8428 public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
8429 private boolean useLnsOnly_ = false;
8438 @java.lang.Override
8439 public boolean hasUseLnsOnly() {
8440 return ((bitField5_ & 0x80000000) != 0);
8441 }
8442
8450 @java.lang.Override
8451 public boolean getUseLnsOnly() {
8452 return useLnsOnly_;
8453 }
8454
8455 public static final int SOLUTION_POOL_SIZE_FIELD_NUMBER = 193;
8456 private int solutionPoolSize_ = 3;
8467 @java.lang.Override
8468 public boolean hasSolutionPoolSize() {
8469 return ((bitField6_ & 0x00000001) != 0);
8470 }
8471
8481 @java.lang.Override
8482 public int getSolutionPoolSize() {
8483 return solutionPoolSize_;
8484 }
8485
8486 public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
8487 private boolean useRinsLns_ = true;
8496 @java.lang.Override
8497 public boolean hasUseRinsLns() {
8498 return ((bitField6_ & 0x00000002) != 0);
8499 }
8500
8508 @java.lang.Override
8509 public boolean getUseRinsLns() {
8510 return useRinsLns_;
8511 }
8512
8513 public static final int USE_FEASIBILITY_PUMP_FIELD_NUMBER = 164;
8514 private boolean useFeasibilityPump_ = true;
8523 @java.lang.Override
8524 public boolean hasUseFeasibilityPump() {
8525 return ((bitField6_ & 0x00000004) != 0);
8526 }
8527
8535 @java.lang.Override
8536 public boolean getUseFeasibilityPump() {
8537 return useFeasibilityPump_;
8538 }
8539
8540 public static final int USE_LB_RELAX_LNS_FIELD_NUMBER = 255;
8541 private boolean useLbRelaxLns_ = true;
8552 @java.lang.Override
8553 public boolean hasUseLbRelaxLns() {
8554 return ((bitField6_ & 0x00000008) != 0);
8555 }
8556
8566 @java.lang.Override
8567 public boolean getUseLbRelaxLns() {
8568 return useLbRelaxLns_;
8569 }
8570
8571 public static final int LB_RELAX_NUM_WORKERS_THRESHOLD_FIELD_NUMBER = 296;
8572 private int lbRelaxNumWorkersThreshold_ = 16;
8581 @java.lang.Override
8583 return ((bitField6_ & 0x00000010) != 0);
8584 }
8585
8593 @java.lang.Override
8595 return lbRelaxNumWorkersThreshold_;
8596 }
8597
8598 public static final int FP_ROUNDING_FIELD_NUMBER = 165;
8599 private int fpRounding_ = 2;
8604 @java.lang.Override public boolean hasFpRounding() {
8605 return ((bitField6_ & 0x00000020) != 0);
8606 }
8607
8612 com.google.ortools.sat.SatParameters.FPRoundingMethod result = com.google.ortools.sat.SatParameters.FPRoundingMethod.forNumber(fpRounding_);
8614 }
8615
8616 public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
8617 private boolean diversifyLnsParams_ = false;
8626 @java.lang.Override
8627 public boolean hasDiversifyLnsParams() {
8628 return ((bitField6_ & 0x00000040) != 0);
8629 }
8630
8638 @java.lang.Override
8639 public boolean getDiversifyLnsParams() {
8640 return diversifyLnsParams_;
8641 }
8642
8643 public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
8644 private boolean randomizeSearch_ = false;
8653 @java.lang.Override
8654 public boolean hasRandomizeSearch() {
8655 return ((bitField6_ & 0x00000080) != 0);
8656 }
8657
8665 @java.lang.Override
8666 public boolean getRandomizeSearch() {
8667 return randomizeSearch_;
8668 }
8669
8671 private long searchRandomVariablePoolSize_ = 0L;
8682 @java.lang.Override
8684 return ((bitField6_ & 0x00000100) != 0);
8685 }
8686
8696 @java.lang.Override
8698 return searchRandomVariablePoolSize_;
8699 }
8700
8701 public static final int PUSH_ALL_TASKS_TOWARD_START_FIELD_NUMBER = 262;
8702 private boolean pushAllTasksTowardStart_ = false;
8712 @java.lang.Override
8714 return ((bitField6_ & 0x00000200) != 0);
8715 }
8716
8725 @java.lang.Override
8727 return pushAllTasksTowardStart_;
8728 }
8729
8730 public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
8731 private boolean useOptionalVariables_ = false;
8745 @java.lang.Override
8746 public boolean hasUseOptionalVariables() {
8747 return ((bitField6_ & 0x00000400) != 0);
8748 }
8749
8762 @java.lang.Override
8763 public boolean getUseOptionalVariables() {
8764 return useOptionalVariables_;
8765 }
8766
8767 public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
8768 private boolean useExactLpReason_ = true;
8780 @java.lang.Override
8781 public boolean hasUseExactLpReason() {
8782 return ((bitField6_ & 0x00000800) != 0);
8783 }
8784
8795 @java.lang.Override
8796 public boolean getUseExactLpReason() {
8797 return useExactLpReason_;
8798 }
8799
8800 public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
8801 private boolean useCombinedNoOverlap_ = false;
8812 @java.lang.Override
8813 public boolean hasUseCombinedNoOverlap() {
8814 return ((bitField6_ & 0x00001000) != 0);
8815 }
8816
8826 @java.lang.Override
8827 public boolean getUseCombinedNoOverlap() {
8828 return useCombinedNoOverlap_;
8829 }
8830
8831 public static final int AT_MOST_ONE_MAX_EXPANSION_SIZE_FIELD_NUMBER = 270;
8832 private int atMostOneMaxExpansionSize_ = 3;
8842 @java.lang.Override
8844 return ((bitField6_ & 0x00002000) != 0);
8845 }
8846
8855 @java.lang.Override
8857 return atMostOneMaxExpansionSize_;
8858 }
8859
8860 public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
8861 private boolean catchSigintSignal_ = true;
8872 @java.lang.Override
8873 public boolean hasCatchSigintSignal() {
8874 return ((bitField6_ & 0x00004000) != 0);
8875 }
8876
8886 @java.lang.Override
8887 public boolean getCatchSigintSignal() {
8888 return catchSigintSignal_;
8889 }
8890
8891 public static final int USE_IMPLIED_BOUNDS_FIELD_NUMBER = 144;
8892 private boolean useImpliedBounds_ = true;
8903 @java.lang.Override
8904 public boolean hasUseImpliedBounds() {
8905 return ((bitField6_ & 0x00008000) != 0);
8906 }
8907
8917 @java.lang.Override
8918 public boolean getUseImpliedBounds() {
8919 return useImpliedBounds_;
8920 }
8921
8922 public static final int POLISH_LP_SOLUTION_FIELD_NUMBER = 175;
8923 private boolean polishLpSolution_ = false;
8935 @java.lang.Override
8936 public boolean hasPolishLpSolution() {
8937 return ((bitField6_ & 0x00010000) != 0);
8938 }
8939
8950 @java.lang.Override
8951 public boolean getPolishLpSolution() {
8952 return polishLpSolution_;
8953 }
8954
8955 public static final int LP_PRIMAL_TOLERANCE_FIELD_NUMBER = 266;
8956 private double lpPrimalTolerance_ = 1e-07D;
8969 @java.lang.Override
8970 public boolean hasLpPrimalTolerance() {
8971 return ((bitField6_ & 0x00020000) != 0);
8972 }
8973
8985 @java.lang.Override
8986 public double getLpPrimalTolerance() {
8987 return lpPrimalTolerance_;
8988 }
8989
8990 public static final int LP_DUAL_TOLERANCE_FIELD_NUMBER = 267;
8991 private double lpDualTolerance_ = 1e-07D;
8996 @java.lang.Override
8997 public boolean hasLpDualTolerance() {
8998 return ((bitField6_ & 0x00040000) != 0);
8999 }
9000
9004 @java.lang.Override
9005 public double getLpDualTolerance() {
9006 return lpDualTolerance_;
9007 }
9008
9009 public static final int CONVERT_INTERVALS_FIELD_NUMBER = 177;
9010 private boolean convertIntervals_ = true;
9021 @java.lang.Override
9022 public boolean hasConvertIntervals() {
9023 return ((bitField6_ & 0x00080000) != 0);
9024 }
9025
9035 @java.lang.Override
9036 public boolean getConvertIntervals() {
9037 return convertIntervals_;
9038 }
9039
9040 public static final int SYMMETRY_LEVEL_FIELD_NUMBER = 183;
9041 private int symmetryLevel_ = 2;
9055 @java.lang.Override
9056 public boolean hasSymmetryLevel() {
9057 return ((bitField6_ & 0x00100000) != 0);
9058 }
9059
9072 @java.lang.Override
9073 public int getSymmetryLevel() {
9074 return symmetryLevel_;
9075 }
9076
9077 public static final int USE_SYMMETRY_IN_LP_FIELD_NUMBER = 301;
9078 private boolean useSymmetryInLp_ = false;
9091 @java.lang.Override
9092 public boolean hasUseSymmetryInLp() {
9093 return ((bitField6_ & 0x00200000) != 0);
9094 }
9095
9107 @java.lang.Override
9108 public boolean getUseSymmetryInLp() {
9109 return useSymmetryInLp_;
9110 }
9111
9112 public static final int KEEP_SYMMETRY_IN_PRESOLVE_FIELD_NUMBER = 303;
9113 private boolean keepSymmetryInPresolve_ = false;
9125 @java.lang.Override
9126 public boolean hasKeepSymmetryInPresolve() {
9127 return ((bitField6_ & 0x00400000) != 0);
9128 }
9129
9140 @java.lang.Override
9141 public boolean getKeepSymmetryInPresolve() {
9142 return keepSymmetryInPresolve_;
9143 }
9144
9146 private double symmetryDetectionDeterministicTimeLimit_ = 1D;
9155 @java.lang.Override
9157 return ((bitField6_ & 0x00800000) != 0);
9158 }
9159
9167 @java.lang.Override
9169 return symmetryDetectionDeterministicTimeLimit_;
9170 }
9171
9172 public static final int NEW_LINEAR_PROPAGATION_FIELD_NUMBER = 224;
9173 private boolean newLinearPropagation_ = true;
9184 @java.lang.Override
9185 public boolean hasNewLinearPropagation() {
9186 return ((bitField6_ & 0x01000000) != 0);
9187 }
9188
9198 @java.lang.Override
9199 public boolean getNewLinearPropagation() {
9200 return newLinearPropagation_;
9201 }
9202
9203 public static final int LINEAR_SPLIT_SIZE_FIELD_NUMBER = 256;
9204 private int linearSplitSize_ = 100;
9215 @java.lang.Override
9216 public boolean hasLinearSplitSize() {
9217 return ((bitField6_ & 0x02000000) != 0);
9218 }
9219
9229 @java.lang.Override
9230 public int getLinearSplitSize() {
9231 return linearSplitSize_;
9232 }
9233
9234 public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
9235 private int linearizationLevel_ = 1;
9247 @java.lang.Override
9248 public boolean hasLinearizationLevel() {
9249 return ((bitField6_ & 0x04000000) != 0);
9250 }
9251
9262 @java.lang.Override
9264 return linearizationLevel_;
9265 }
9266
9267 public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
9268 private int booleanEncodingLevel_ = 1;
9278 @java.lang.Override
9279 public boolean hasBooleanEncodingLevel() {
9280 return ((bitField6_ & 0x08000000) != 0);
9281 }
9282
9291 @java.lang.Override
9293 return booleanEncodingLevel_;
9294 }
9295
9297 private int maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
9309 @java.lang.Override
9311 return ((bitField6_ & 0x10000000) != 0);
9312 }
9313
9324 @java.lang.Override
9326 return maxDomainSizeWhenEncodingEqNeqConstraints_;
9327 }
9328
9329 public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
9330 private int maxNumCuts_ = 10000;
9343 @java.lang.Override
9344 public boolean hasMaxNumCuts() {
9345 return ((bitField6_ & 0x20000000) != 0);
9346 }
9347
9359 @java.lang.Override
9360 public int getMaxNumCuts() {
9361 return maxNumCuts_;
9362 }
9363
9364 public static final int CUT_LEVEL_FIELD_NUMBER = 196;
9365 private int cutLevel_ = 1;
9376 @java.lang.Override
9377 public boolean hasCutLevel() {
9378 return ((bitField6_ & 0x40000000) != 0);
9379 }
9380
9390 @java.lang.Override
9391 public int getCutLevel() {
9392 return cutLevel_;
9393 }
9394
9395 public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
9396 private boolean onlyAddCutsAtLevelZero_ = false;
9406 @java.lang.Override
9407 public boolean hasOnlyAddCutsAtLevelZero() {
9408 return ((bitField6_ & 0x80000000) != 0);
9409 }
9410
9419 @java.lang.Override
9420 public boolean getOnlyAddCutsAtLevelZero() {
9421 return onlyAddCutsAtLevelZero_;
9422 }
9423
9424 public static final int ADD_OBJECTIVE_CUT_FIELD_NUMBER = 197;
9425 private boolean addObjectiveCut_ = false;
9438 @java.lang.Override
9439 public boolean hasAddObjectiveCut() {
9440 return ((bitField7_ & 0x00000001) != 0);
9441 }
9442
9454 @java.lang.Override
9455 public boolean getAddObjectiveCut() {
9456 return addObjectiveCut_;
9457 }
9458
9459 public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
9460 private boolean addCgCuts_ = true;
9470 @java.lang.Override
9471 public boolean hasAddCgCuts() {
9472 return ((bitField7_ & 0x00000002) != 0);
9473 }
9474
9483 @java.lang.Override
9484 public boolean getAddCgCuts() {
9485 return addCgCuts_;
9486 }
9487
9488 public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
9489 private boolean addMirCuts_ = true;
9499 @java.lang.Override
9500 public boolean hasAddMirCuts() {
9501 return ((bitField7_ & 0x00000004) != 0);
9502 }
9503
9512 @java.lang.Override
9513 public boolean getAddMirCuts() {
9514 return addMirCuts_;
9515 }
9516
9517 public static final int ADD_ZERO_HALF_CUTS_FIELD_NUMBER = 169;
9518 private boolean addZeroHalfCuts_ = true;
9528 @java.lang.Override
9529 public boolean hasAddZeroHalfCuts() {
9530 return ((bitField7_ & 0x00000008) != 0);
9531 }
9532
9541 @java.lang.Override
9542 public boolean getAddZeroHalfCuts() {
9543 return addZeroHalfCuts_;
9544 }
9545
9546 public static final int ADD_CLIQUE_CUTS_FIELD_NUMBER = 172;
9547 private boolean addCliqueCuts_ = true;
9558 @java.lang.Override
9559 public boolean hasAddCliqueCuts() {
9560 return ((bitField7_ & 0x00000010) != 0);
9561 }
9562
9572 @java.lang.Override
9573 public boolean getAddCliqueCuts() {
9574 return addCliqueCuts_;
9575 }
9576
9577 public static final int ADD_RLT_CUTS_FIELD_NUMBER = 279;
9578 private boolean addRltCuts_ = true;
9588 @java.lang.Override
9589 public boolean hasAddRltCuts() {
9590 return ((bitField7_ & 0x00000020) != 0);
9591 }
9592
9601 @java.lang.Override
9602 public boolean getAddRltCuts() {
9603 return addRltCuts_;
9604 }
9605
9606 public static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER = 148;
9607 private int maxAllDiffCutSize_ = 64;
9618 @java.lang.Override
9619 public boolean hasMaxAllDiffCutSize() {
9620 return ((bitField7_ & 0x00000040) != 0);
9621 }
9622
9632 @java.lang.Override
9634 return maxAllDiffCutSize_;
9635 }
9636
9637 public static final int ADD_LIN_MAX_CUTS_FIELD_NUMBER = 152;
9638 private boolean addLinMaxCuts_ = true;
9649 @java.lang.Override
9650 public boolean hasAddLinMaxCuts() {
9651 return ((bitField7_ & 0x00000080) != 0);
9652 }
9653
9663 @java.lang.Override
9664 public boolean getAddLinMaxCuts() {
9665 return addLinMaxCuts_;
9666 }
9667
9668 public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
9669 private int maxIntegerRoundingScaling_ = 600;
9685 @java.lang.Override
9687 return ((bitField7_ & 0x00000100) != 0);
9688 }
9689
9704 @java.lang.Override
9706 return maxIntegerRoundingScaling_;
9707 }
9708
9709 public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
9710 private boolean addLpConstraintsLazily_ = true;
9722 @java.lang.Override
9723 public boolean hasAddLpConstraintsLazily() {
9724 return ((bitField7_ & 0x00000200) != 0);
9725 }
9726
9737 @java.lang.Override
9738 public boolean getAddLpConstraintsLazily() {
9739 return addLpConstraintsLazily_;
9740 }
9741
9742 public static final int ROOT_LP_ITERATIONS_FIELD_NUMBER = 227;
9743 private int rootLpIterations_ = 2000;
9755 @java.lang.Override
9756 public boolean hasRootLpIterations() {
9757 return ((bitField7_ & 0x00000400) != 0);
9758 }
9759
9770 @java.lang.Override
9771 public int getRootLpIterations() {
9772 return rootLpIterations_;
9773 }
9774
9776 private double minOrthogonalityForLpConstraints_ = 0.05D;
9789 @java.lang.Override
9791 return ((bitField7_ & 0x00000800) != 0);
9792 }
9793
9805 @java.lang.Override
9807 return minOrthogonalityForLpConstraints_;
9808 }
9809
9810 public static final int MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER = 154;
9811 private int maxCutRoundsAtLevelZero_ = 1;
9820 @java.lang.Override
9822 return ((bitField7_ & 0x00001000) != 0);
9823 }
9824
9832 @java.lang.Override
9834 return maxCutRoundsAtLevelZero_;
9835 }
9836
9837 public static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER = 121;
9838 private int maxConsecutiveInactiveCount_ = 100;
9849 @java.lang.Override
9851 return ((bitField7_ & 0x00002000) != 0);
9852 }
9853
9863 @java.lang.Override
9865 return maxConsecutiveInactiveCount_;
9866 }
9867
9868 public static final int CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER = 155;
9869 private double cutMaxActiveCountValue_ = 10000000000D;
9880 @java.lang.Override
9881 public boolean hasCutMaxActiveCountValue() {
9882 return ((bitField7_ & 0x00004000) != 0);
9883 }
9884
9894 @java.lang.Override
9896 return cutMaxActiveCountValue_;
9897 }
9898
9899 public static final int CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER = 156;
9900 private double cutActiveCountDecay_ = 0.8D;
9905 @java.lang.Override
9906 public boolean hasCutActiveCountDecay() {
9907 return ((bitField7_ & 0x00008000) != 0);
9908 }
9909
9913 @java.lang.Override
9914 public double getCutActiveCountDecay() {
9915 return cutActiveCountDecay_;
9916 }
9917
9918 public static final int CUT_CLEANUP_TARGET_FIELD_NUMBER = 157;
9919 private int cutCleanupTarget_ = 1000;
9928 @java.lang.Override
9929 public boolean hasCutCleanupTarget() {
9930 return ((bitField7_ & 0x00010000) != 0);
9931 }
9932
9940 @java.lang.Override
9941 public int getCutCleanupTarget() {
9942 return cutCleanupTarget_;
9943 }
9944
9945 public static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER = 122;
9946 private int newConstraintsBatchSize_ = 50;
9956 @java.lang.Override
9958 return ((bitField7_ & 0x00020000) != 0);
9959 }
9960
9969 @java.lang.Override
9971 return newConstraintsBatchSize_;
9972 }
9973
9974 public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
9975 private boolean exploitIntegerLpSolution_ = true;
9987 @java.lang.Override
9989 return ((bitField7_ & 0x00040000) != 0);
9990 }
9991
10002 @java.lang.Override
10004 return exploitIntegerLpSolution_;
10005 }
10006
10007 public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
10008 private boolean exploitAllLpSolution_ = true;
10019 @java.lang.Override
10020 public boolean hasExploitAllLpSolution() {
10021 return ((bitField7_ & 0x00080000) != 0);
10022 }
10023
10033 @java.lang.Override
10034 public boolean getExploitAllLpSolution() {
10035 return exploitAllLpSolution_;
10036 }
10037
10038 public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
10039 private boolean exploitBestSolution_ = false;
10048 @java.lang.Override
10049 public boolean hasExploitBestSolution() {
10050 return ((bitField7_ & 0x00100000) != 0);
10051 }
10052
10060 @java.lang.Override
10061 public boolean getExploitBestSolution() {
10062 return exploitBestSolution_;
10063 }
10064
10065 public static final int EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER = 161;
10066 private boolean exploitRelaxationSolution_ = false;
10077 @java.lang.Override
10079 return ((bitField7_ & 0x00200000) != 0);
10080 }
10081
10091 @java.lang.Override
10093 return exploitRelaxationSolution_;
10094 }
10095
10096 public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
10097 private boolean exploitObjective_ = true;
10107 @java.lang.Override
10108 public boolean hasExploitObjective() {
10109 return ((bitField7_ & 0x00400000) != 0);
10110 }
10111
10120 @java.lang.Override
10121 public boolean getExploitObjective() {
10122 return exploitObjective_;
10123 }
10124
10125 public static final int DETECT_LINEARIZED_PRODUCT_FIELD_NUMBER = 277;
10126 private boolean detectLinearizedProduct_ = false;
10137 @java.lang.Override
10139 return ((bitField7_ & 0x00800000) != 0);
10140 }
10141
10151 @java.lang.Override
10153 return detectLinearizedProduct_;
10154 }
10155
10156 public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
10157 private double mipMaxBound_ = 10000000D;
10168 @java.lang.Override
10169 public boolean hasMipMaxBound() {
10170 return ((bitField7_ & 0x01000000) != 0);
10171 }
10172
10182 @java.lang.Override
10183 public double getMipMaxBound() {
10184 return mipMaxBound_;
10185 }
10186
10187 public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
10188 private double mipVarScaling_ = 1D;
10199 @java.lang.Override
10200 public boolean hasMipVarScaling() {
10201 return ((bitField7_ & 0x02000000) != 0);
10202 }
10203
10213 @java.lang.Override
10214 public double getMipVarScaling() {
10215 return mipVarScaling_;
10216 }
10217
10218 public static final int MIP_SCALE_LARGE_DOMAIN_FIELD_NUMBER = 225;
10219 private boolean mipScaleLargeDomain_ = false;
10230 @java.lang.Override
10231 public boolean hasMipScaleLargeDomain() {
10232 return ((bitField7_ & 0x04000000) != 0);
10233 }
10234
10244 @java.lang.Override
10245 public boolean getMipScaleLargeDomain() {
10246 return mipScaleLargeDomain_;
10247 }
10248
10250 private boolean mipAutomaticallyScaleVariables_ = true;
10263 @java.lang.Override
10265 return ((bitField7_ & 0x08000000) != 0);
10266 }
10267
10279 @java.lang.Override
10281 return mipAutomaticallyScaleVariables_;
10282 }
10283
10284 public static final int ONLY_SOLVE_IP_FIELD_NUMBER = 222;
10285 private boolean onlySolveIp_ = false;
10305 @java.lang.Override
10306 public boolean hasOnlySolveIp() {
10307 return ((bitField7_ & 0x10000000) != 0);
10308 }
10309
10328 @java.lang.Override
10329 public boolean getOnlySolveIp() {
10330 return onlySolveIp_;
10331 }
10332
10333 public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
10334 private double mipWantedPrecision_ = 1e-06D;
10359 @java.lang.Override
10360 public boolean hasMipWantedPrecision() {
10361 return ((bitField7_ & 0x20000000) != 0);
10362 }
10363
10387 @java.lang.Override
10388 public double getMipWantedPrecision() {
10389 return mipWantedPrecision_;
10390 }
10391
10392 public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
10393 private int mipMaxActivityExponent_ = 53;
10409 @java.lang.Override
10410 public boolean hasMipMaxActivityExponent() {
10411 return ((bitField7_ & 0x40000000) != 0);
10412 }
10413
10428 @java.lang.Override
10430 return mipMaxActivityExponent_;
10431 }
10432
10433 public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
10434 private double mipCheckPrecision_ = 0.0001D;
10445 @java.lang.Override
10446 public boolean hasMipCheckPrecision() {
10447 return ((bitField7_ & 0x80000000) != 0);
10448 }
10449
10459 @java.lang.Override
10460 public double getMipCheckPrecision() {
10461 return mipCheckPrecision_;
10462 }
10463
10465 private boolean mipComputeTrueObjectiveBound_ = true;
10478 @java.lang.Override
10480 return ((bitField8_ & 0x00000001) != 0);
10481 }
10482
10494 @java.lang.Override
10496 return mipComputeTrueObjectiveBound_;
10497 }
10498
10499 public static final int MIP_MAX_VALID_MAGNITUDE_FIELD_NUMBER = 199;
10500 private double mipMaxValidMagnitude_ = 1e+20D;
10513 @java.lang.Override
10514 public boolean hasMipMaxValidMagnitude() {
10515 return ((bitField8_ & 0x00000002) != 0);
10516 }
10517
10529 @java.lang.Override
10530 public double getMipMaxValidMagnitude() {
10531 return mipMaxValidMagnitude_;
10532 }
10533
10535 private boolean mipTreatHighMagnitudeBoundsAsInfinity_ = false;
10549 @java.lang.Override
10551 return ((bitField8_ & 0x00000004) != 0);
10552 }
10553
10566 @java.lang.Override
10568 return mipTreatHighMagnitudeBoundsAsInfinity_;
10569 }
10570
10571 public static final int MIP_DROP_TOLERANCE_FIELD_NUMBER = 232;
10572 private double mipDropTolerance_ = 1e-16D;
10582 @java.lang.Override
10583 public boolean hasMipDropTolerance() {
10584 return ((bitField8_ & 0x00000008) != 0);
10585 }
10586
10595 @java.lang.Override
10596 public double getMipDropTolerance() {
10597 return mipDropTolerance_;
10598 }
10599
10600 public static final int MIP_PRESOLVE_LEVEL_FIELD_NUMBER = 261;
10601 private int mipPresolveLevel_ = 2;
10613 @java.lang.Override
10614 public boolean hasMipPresolveLevel() {
10615 return ((bitField8_ & 0x00000010) != 0);
10616 }
10617
10628 @java.lang.Override
10629 public int getMipPresolveLevel() {
10630 return mipPresolveLevel_;
10631 }
10632
10633 private byte memoizedIsInitialized = -1;
10634 @java.lang.Override
10635 public final boolean isInitialized() {
10636 byte isInitialized = memoizedIsInitialized;
10637 if (isInitialized == 1) return true;
10638 if (isInitialized == 0) return false;
10639
10640 memoizedIsInitialized = 1;
10641 return true;
10642 }
10643
10644 @java.lang.Override
10645 public void writeTo(com.google.protobuf.CodedOutputStream output)
10646 throws java.io.IOException {
10647 if (((bitField0_ & 0x00000002) != 0)) {
10648 output.writeEnum(1, preferredVariableOrder_);
10649 }
10650 if (((bitField0_ & 0x00000004) != 0)) {
10651 output.writeEnum(2, initialPolarity_);
10652 }
10653 if (((bitField0_ & 0x00000800) != 0)) {
10654 output.writeEnum(4, minimizationAlgorithm_);
10655 }
10656 if (((bitField0_ & 0x00004000) != 0)) {
10657 output.writeInt32(11, clauseCleanupPeriod_);
10658 }
10659 if (((bitField0_ & 0x00008000) != 0)) {
10660 output.writeInt32(13, clauseCleanupTarget_);
10661 }
10662 if (((bitField0_ & 0x00400000) != 0)) {
10663 output.writeDouble(15, variableActivityDecay_);
10664 }
10665 if (((bitField0_ & 0x00800000) != 0)) {
10666 output.writeDouble(16, maxVariableActivityValue_);
10667 }
10668 if (((bitField0_ & 0x08000000) != 0)) {
10669 output.writeDouble(17, clauseActivityDecay_);
10670 }
10671 if (((bitField0_ & 0x10000000) != 0)) {
10672 output.writeDouble(18, maxClauseActivityValue_);
10673 }
10674 if (((bitField0_ & 0x01000000) != 0)) {
10675 output.writeDouble(22, glucoseMaxDecay_);
10676 }
10677 if (((bitField0_ & 0x02000000) != 0)) {
10678 output.writeDouble(23, glucoseDecayIncrement_);
10679 }
10680 if (((bitField0_ & 0x04000000) != 0)) {
10681 output.writeInt32(24, glucoseDecayIncrementPeriod_);
10682 }
10683 if (((bitField0_ & 0x40000000) != 0)) {
10684 output.writeInt32(30, restartPeriod_);
10685 }
10686 if (((bitField1_ & 0x00004000) != 0)) {
10687 output.writeInt32(31, randomSeed_);
10688 }
10689 if (((bitField0_ & 0x00000080) != 0)) {
10690 output.writeDouble(32, randomBranchesRatio_);
10691 }
10692 if (((bitField0_ & 0x00001000) != 0)) {
10693 output.writeEnum(34, binaryMinimizationAlgorithm_);
10694 }
10695 if (((bitField3_ & 0x00000800) != 0)) {
10696 output.writeBool(35, useOptimizationHints_);
10697 }
10698 if (((bitField1_ & 0x00000080) != 0)) {
10699 output.writeDouble(36, maxTimeInSeconds_);
10700 }
10701 if (((bitField1_ & 0x00000400) != 0)) {
10702 output.writeInt64(37, maxNumberOfConflicts_);
10703 }
10704 if (((bitField1_ & 0x00000800) != 0)) {
10705 output.writeInt64(40, maxMemoryInMb_);
10706 }
10707 if (((bitField1_ & 0x00040000) != 0)) {
10708 output.writeBool(41, logSearchProgress_);
10709 }
10710 if (((bitField1_ & 0x00800000) != 0)) {
10711 output.writeBool(43, usePbResolution_);
10712 }
10713 if (((bitField0_ & 0x00000008) != 0)) {
10714 output.writeBool(44, usePhaseSaving_);
10715 }
10716 if (((bitField0_ & 0x00000040) != 0)) {
10717 output.writeDouble(45, randomPolarityRatio_);
10718 }
10719 if (((bitField0_ & 0x00100000) != 0)) {
10720 output.writeInt32(46, pbCleanupIncrement_);
10721 }
10722 if (((bitField0_ & 0x00200000) != 0)) {
10723 output.writeDouble(47, pbCleanupRatio_);
10724 }
10725 if (((bitField1_ & 0x01000000) != 0)) {
10726 output.writeBool(48, minimizeReductionDuringPbResolution_);
10727 }
10728 if (((bitField1_ & 0x02000000) != 0)) {
10729 output.writeBool(49, countAssumptionLevelsInLbd_);
10730 }
10731 if (((bitField3_ & 0x00001000) != 0)) {
10732 output.writeInt32(50, coreMinimizationLevel_);
10733 }
10734 if (((bitField3_ & 0x00008000) != 0)) {
10735 output.writeEnum(51, maxSatAssumptionOrder_);
10736 }
10737 if (((bitField3_ & 0x00010000) != 0)) {
10738 output.writeBool(52, maxSatReverseAssumptionOrder_);
10739 }
10740 if (((bitField3_ & 0x00020000) != 0)) {
10741 output.writeEnum(53, maxSatStratification_);
10742 }
10743 if (((bitField1_ & 0x04000000) != 0)) {
10744 output.writeInt32(54, presolveBveThreshold_);
10745 }
10746 if (((bitField1_ & 0x08000000) != 0)) {
10747 output.writeInt32(55, presolveBveClauseWeight_);
10748 }
10749 if (((bitField0_ & 0x00002000) != 0)) {
10750 output.writeBool(56, subsumptionDuringConflictAnalysis_);
10751 }
10752 if (((bitField1_ & 0x20000000) != 0)) {
10753 output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
10754 }
10755 if (((bitField0_ & 0x00020000) != 0)) {
10756 output.writeEnum(58, clauseCleanupProtection_);
10757 }
10758 if (((bitField0_ & 0x00040000) != 0)) {
10759 output.writeInt32(59, clauseCleanupLbdBound_);
10760 }
10761 if (((bitField0_ & 0x00080000) != 0)) {
10762 output.writeEnum(60, clauseCleanupOrdering_);
10763 }
10764 for (int i = 0; i < restartAlgorithms_.size(); i++) {
10765 output.writeEnum(61, restartAlgorithms_.getInt(i));
10766 }
10767 if (((bitField0_ & 0x80000000) != 0)) {
10768 output.writeInt32(62, restartRunningWindowSize_);
10769 }
10770 if (((bitField1_ & 0x00000001) != 0)) {
10771 output.writeDouble(63, restartDlAverageRatio_);
10772 }
10773 if (((bitField1_ & 0x00000004) != 0)) {
10774 output.writeBool(64, useBlockingRestart_);
10775 }
10776 if (((bitField1_ & 0x00000008) != 0)) {
10777 output.writeInt32(65, blockingRestartWindowSize_);
10778 }
10779 if (((bitField1_ & 0x00000010) != 0)) {
10780 output.writeDouble(66, blockingRestartMultiplier_);
10781 }
10782 if (((bitField1_ & 0x00000100) != 0)) {
10783 output.writeDouble(67, maxDeterministicTime_);
10784 }
10785 if (((bitField1_ & 0x00000020) != 0)) {
10786 output.writeInt32(68, numConflictsBeforeStrategyChanges_);
10787 }
10788 if (((bitField1_ & 0x00000040) != 0)) {
10789 output.writeDouble(69, strategyChangeIncreaseRatio_);
10790 }
10791 if (((bitField0_ & 0x20000000) != 0)) {
10792 com.google.protobuf.GeneratedMessage.writeString(output, 70, defaultRestartAlgorithms_);
10793 }
10794 if (((bitField1_ & 0x00000002) != 0)) {
10795 output.writeDouble(71, restartLbdAverageRatio_);
10796 }
10797 if (((bitField1_ & 0x80000000) != 0)) {
10798 output.writeBool(72, presolveUseBva_);
10799 }
10800 if (((bitField2_ & 0x00000001) != 0)) {
10801 output.writeInt32(73, presolveBvaThreshold_);
10802 }
10803 if (((bitField3_ & 0x00080000) != 0)) {
10804 output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
10805 }
10806 if (((bitField0_ & 0x00000100) != 0)) {
10807 output.writeBool(75, useErwaHeuristic_);
10808 }
10809 if (((bitField0_ & 0x00000200) != 0)) {
10810 output.writeDouble(76, initialVariablesActivity_);
10811 }
10812 if (((bitField0_ & 0x00000400) != 0)) {
10813 output.writeBool(77, alsoBumpVariablesInConflictReasons_);
10814 }
10815 if (((bitField3_ & 0x01000000) != 0)) {
10816 output.writeBool(78, useOverloadCheckerInCumulative_);
10817 }
10818 if (((bitField3_ & 0x04000000) != 0)) {
10819 output.writeBool(79, useTimetableEdgeFindingInCumulative_);
10820 }
10821 if (((bitField3_ & 0x40000000) != 0)) {
10822 output.writeBool(80, useDisjunctiveConstraintInCumulative_);
10823 }
10824 if (((bitField4_ & 0x00000400) != 0)) {
10825 output.writeEnum(82, searchBranching_);
10826 }
10827 if (((bitField4_ & 0x01000000) != 0)) {
10828 output.writeBool(83, optimizeWithCore_);
10829 }
10830 if (((bitField3_ & 0x00002000) != 0)) {
10831 output.writeBool(84, findMultipleCores_);
10832 }
10833 if (((bitField4_ & 0x10000000) != 0)) {
10834 output.writeBool(85, optimizeWithMaxHs_);
10835 }
10836 if (((bitField2_ & 0x00000004) != 0)) {
10837 output.writeBool(86, cpModelPresolve_);
10838 }
10839 if (((bitField5_ & 0x00080000) != 0)) {
10840 output.writeBool(87, enumerateAllSolutions_);
10841 }
10842 if (((bitField1_ & 0x40000000) != 0)) {
10843 output.writeBool(88, presolveBlockedClause_);
10844 }
10845 if (((bitField3_ & 0x00004000) != 0)) {
10846 output.writeBool(89, coverOptimization_);
10847 }
10848 if (((bitField6_ & 0x04000000) != 0)) {
10849 output.writeInt32(90, linearizationLevel_);
10850 }
10851 if (((bitField6_ & 0x20000000) != 0)) {
10852 output.writeInt32(91, maxNumCuts_);
10853 }
10854 if (((bitField6_ & 0x80000000) != 0)) {
10855 output.writeBool(92, onlyAddCutsAtLevelZero_);
10856 }
10857 if (((bitField2_ & 0x00000010) != 0)) {
10858 output.writeBool(93, cpModelUseSatPresolve_);
10859 }
10860 if (((bitField7_ & 0x00040000) != 0)) {
10861 output.writeBool(94, exploitIntegerLpSolution_);
10862 }
10863 if (((bitField5_ & 0x01000000) != 0)) {
10864 output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
10865 }
10866 if (((bitField5_ & 0x02000000) != 0)) {
10867 output.writeBool(98, stopAfterFirstSolution_);
10868 }
10869 if (((bitField4_ & 0x08000000) != 0)) {
10870 output.writeInt32(99, binarySearchNumConflicts_);
10871 }
10872 if (((bitField2_ & 0x40000000) != 0)) {
10873 output.writeInt32(100, numSearchWorkers_);
10874 }
10875 if (((bitField5_ & 0x80000000) != 0)) {
10876 output.writeBool(101, useLnsOnly_);
10877 }
10878 if (((bitField6_ & 0x00000080) != 0)) {
10879 output.writeBool(103, randomizeSearch_);
10880 }
10881 if (((bitField6_ & 0x00000100) != 0)) {
10882 output.writeInt64(104, searchRandomVariablePoolSize_);
10883 }
10884 if (((bitField5_ & 0x00800000) != 0)) {
10885 output.writeBool(106, instantiateAllVariables_);
10886 }
10887 if (((bitField6_ & 0x08000000) != 0)) {
10888 output.writeInt32(107, booleanEncodingLevel_);
10889 }
10890 if (((bitField6_ & 0x00000400) != 0)) {
10891 output.writeBool(108, useOptionalVariables_);
10892 }
10893 if (((bitField6_ & 0x00000800) != 0)) {
10894 output.writeBool(109, useExactLpReason_);
10895 }
10896 if (((bitField2_ & 0x00000008) != 0)) {
10897 output.writeInt32(110, cpModelProbingLevel_);
10898 }
10899 if (((bitField7_ & 0x00000200) != 0)) {
10900 output.writeBool(112, addLpConstraintsLazily_);
10901 }
10902 if (((bitField3_ & 0x00000004) != 0)) {
10903 output.writeBool(113, shareObjectiveBounds_);
10904 }
10905 if (((bitField3_ & 0x00000008) != 0)) {
10906 output.writeBool(114, shareLevelZeroBounds_);
10907 }
10908 if (((bitField7_ & 0x00000800) != 0)) {
10909 output.writeDouble(115, minOrthogonalityForLpConstraints_);
10910 }
10911 if (((bitField7_ & 0x00080000) != 0)) {
10912 output.writeBool(116, exploitAllLpSolution_);
10913 }
10914 if (((bitField7_ & 0x00000002) != 0)) {
10915 output.writeBool(117, addCgCuts_);
10916 }
10917 if (((bitField7_ & 0x00000100) != 0)) {
10918 output.writeInt32(119, maxIntegerRoundingScaling_);
10919 }
10920 if (((bitField7_ & 0x00000004) != 0)) {
10921 output.writeBool(120, addMirCuts_);
10922 }
10923 if (((bitField7_ & 0x00002000) != 0)) {
10924 output.writeInt32(121, maxConsecutiveInactiveCount_);
10925 }
10926 if (((bitField7_ & 0x00020000) != 0)) {
10927 output.writeInt32(122, newConstraintsBatchSize_);
10928 }
10929 if (((bitField4_ & 0x00800000) != 0)) {
10930 output.writeInt64(123, pseudoCostReliabilityThreshold_);
10931 }
10932 if (((bitField7_ & 0x01000000) != 0)) {
10933 output.writeDouble(124, mipMaxBound_);
10934 }
10935 if (((bitField7_ & 0x02000000) != 0)) {
10936 output.writeDouble(125, mipVarScaling_);
10937 }
10938 if (((bitField7_ & 0x20000000) != 0)) {
10939 output.writeDouble(126, mipWantedPrecision_);
10940 }
10941 if (((bitField7_ & 0x40000000) != 0)) {
10942 output.writeInt32(127, mipMaxActivityExponent_);
10943 }
10944 if (((bitField7_ & 0x80000000) != 0)) {
10945 output.writeDouble(128, mipCheckPrecision_);
10946 }
10947 if (((bitField6_ & 0x00000002) != 0)) {
10948 output.writeBool(129, useRinsLns_);
10949 }
10950 if (((bitField7_ & 0x00100000) != 0)) {
10951 output.writeBool(130, exploitBestSolution_);
10952 }
10953 if (((bitField7_ & 0x00400000) != 0)) {
10954 output.writeBool(131, exploitObjective_);
10955 }
10956 if (((bitField5_ & 0x00200000) != 0)) {
10957 output.writeBool(132, fillTightenedDomainsInResponse_);
10958 }
10959 if (((bitField6_ & 0x00001000) != 0)) {
10960 output.writeBool(133, useCombinedNoOverlap_);
10961 }
10962 if (((bitField3_ & 0x00000002) != 0)) {
10963 output.writeInt32(134, interleaveBatchSize_);
10964 }
10965 if (((bitField6_ & 0x00004000) != 0)) {
10966 output.writeBool(135, catchSigintSignal_);
10967 }
10968 if (((bitField3_ & 0x00000001) != 0)) {
10969 output.writeBool(136, interleaveSearch_);
10970 }
10971 if (((bitField6_ & 0x00000040) != 0)) {
10972 output.writeBool(137, diversifyLnsParams_);
10973 }
10974 if (((bitField2_ & 0x00000002) != 0)) {
10975 output.writeInt32(138, maxPresolveIterations_);
10976 }
10977 if (((bitField6_ & 0x00008000) != 0)) {
10978 output.writeBool(144, useImpliedBounds_);
10979 }
10980 if (((bitField2_ & 0x00008000) != 0)) {
10981 output.writeDouble(145, mergeNoOverlapWorkLimit_);
10982 }
10983 if (((bitField2_ & 0x00010000) != 0)) {
10984 output.writeDouble(146, mergeAtMostOneWorkLimit_);
10985 }
10986 if (((bitField2_ & 0x00020000) != 0)) {
10987 output.writeInt32(147, presolveSubstitutionLevel_);
10988 }
10989 if (((bitField7_ & 0x00000040) != 0)) {
10990 output.writeInt32(148, maxAllDiffCutSize_);
10991 }
10992 if (((bitField5_ & 0x04000000) != 0)) {
10993 output.writeBool(149, stopAfterPresolve_);
10994 }
10995 if (((bitField3_ & 0x00000100) != 0)) {
10996 output.writeInt32(151, debugMaxNumPresolveOperations_);
10997 }
10998 if (((bitField7_ & 0x00000080) != 0)) {
10999 output.writeBool(152, addLinMaxCuts_);
11000 }
11001 if (((bitField4_ & 0x00000800) != 0)) {
11002 output.writeInt32(153, hintConflictLimit_);
11003 }
11004 if (((bitField7_ & 0x00001000) != 0)) {
11005 output.writeInt32(154, maxCutRoundsAtLevelZero_);
11006 }
11007 if (((bitField7_ & 0x00004000) != 0)) {
11008 output.writeDouble(155, cutMaxActiveCountValue_);
11009 }
11010 if (((bitField7_ & 0x00008000) != 0)) {
11011 output.writeDouble(156, cutActiveCountDecay_);
11012 }
11013 if (((bitField7_ & 0x00010000) != 0)) {
11014 output.writeInt32(157, cutCleanupTarget_);
11015 }
11016 if (((bitField1_ & 0x00001000) != 0)) {
11017 output.writeDouble(159, absoluteGapLimit_);
11018 }
11019 if (((bitField1_ & 0x00002000) != 0)) {
11020 output.writeDouble(160, relativeGapLimit_);
11021 }
11022 if (((bitField7_ & 0x00200000) != 0)) {
11023 output.writeBool(161, exploitRelaxationSolution_);
11024 }
11025 if (((bitField3_ & 0x00000080) != 0)) {
11026 output.writeBool(162, debugPostsolveWithFullSolver_);
11027 }
11028 if (((bitField2_ & 0x00800000) != 0)) {
11029 output.writeBool(163, useSatInprocessing_);
11030 }
11031 if (((bitField6_ & 0x00000004) != 0)) {
11032 output.writeBool(164, useFeasibilityPump_);
11033 }
11034 if (((bitField6_ & 0x00000020) != 0)) {
11035 output.writeEnum(165, fpRounding_);
11036 }
11037 if (((bitField7_ & 0x08000000) != 0)) {
11038 output.writeBool(166, mipAutomaticallyScaleVariables_);
11039 }
11040 if (((bitField4_ & 0x00001000) != 0)) {
11041 output.writeBool(167, repairHint_);
11042 }
11043 if (((bitField0_ & 0x00000010) != 0)) {
11044 output.writeInt32(168, polarityRephaseIncrement_);
11045 }
11046 if (((bitField7_ & 0x00000008) != 0)) {
11047 output.writeBool(169, addZeroHalfCuts_);
11048 }
11049 if (((bitField2_ & 0x00000100) != 0)) {
11050 output.writeBool(170, expandAlldiffConstraints_);
11051 }
11052 if (((bitField0_ & 0x00000001) != 0)) {
11053 com.google.protobuf.GeneratedMessage.writeString(output, 171, name_);
11054 }
11055 if (((bitField7_ & 0x00000010) != 0)) {
11056 output.writeBool(172, addCliqueCuts_);
11057 }
11058 if (((bitField5_ & 0x00100000) != 0)) {
11059 output.writeBool(173, keepAllFeasibleSolutionsInPresolve_);
11060 }
11061 if (((bitField2_ & 0x00040000) != 0)) {
11062 output.writeBool(174, presolveExtractIntegerEnforcement_);
11063 }
11064 if (((bitField6_ & 0x00010000) != 0)) {
11065 output.writeBool(175, polishLpSolution_);
11066 }
11067 if (((bitField4_ & 0x00004000) != 0)) {
11068 output.writeBool(176, useProbingSearch_);
11069 }
11070 if (((bitField6_ & 0x00080000) != 0)) {
11071 output.writeBool(177, convertIntervals_);
11072 }
11073 if (((bitField1_ & 0x00008000) != 0)) {
11074 output.writeBool(178, permuteVariableRandomly_);
11075 }
11076 if (((bitField1_ & 0x00010000) != 0)) {
11077 output.writeBool(179, permutePresolveConstraintOrder_);
11078 }
11079 if (((bitField1_ & 0x00020000) != 0)) {
11080 output.writeBool(180, useAbslRandom_);
11081 }
11082 if (((bitField2_ & 0x00002000) != 0)) {
11083 output.writeBool(181, disableConstraintExpansion_);
11084 }
11085 if (((bitField2_ & 0x00000200) != 0)) {
11086 output.writeBool(182, expandReservoirConstraints_);
11087 }
11088 if (((bitField6_ & 0x00100000) != 0)) {
11089 output.writeInt32(183, symmetryLevel_);
11090 }
11091 if (((bitField1_ & 0x00100000) != 0)) {
11092 com.google.protobuf.GeneratedMessage.writeString(output, 185, logPrefix_);
11093 }
11094 if (((bitField1_ & 0x00200000) != 0)) {
11095 output.writeBool(186, logToStdout_);
11096 }
11097 if (((bitField1_ & 0x00400000) != 0)) {
11098 output.writeBool(187, logToResponse_);
11099 }
11100 if (((bitField4_ & 0x02000000) != 0)) {
11101 output.writeBool(188, optimizeWithLbTreeSearch_);
11102 }
11103 if (((bitField1_ & 0x00080000) != 0)) {
11104 output.writeBool(189, logSubsolverStatistics_);
11105 }
11106 if (((bitField0_ & 0x00010000) != 0)) {
11107 output.writeDouble(190, clauseCleanupRatio_);
11108 }
11109 if (((bitField6_ & 0x10000000) != 0)) {
11110 output.writeInt32(191, maxDomainSizeWhenEncodingEqNeqConstraints_);
11111 }
11112 if (((bitField4_ & 0x00002000) != 0)) {
11113 output.writeBool(192, fixVariablesToTheirHintedValue_);
11114 }
11115 if (((bitField6_ & 0x00000001) != 0)) {
11116 output.writeInt32(193, solutionPoolSize_);
11117 }
11118 if (((bitField5_ & 0x00400000) != 0)) {
11119 output.writeBool(194, fillAdditionalSolutionsInResponse_);
11120 }
11121 if (((bitField3_ & 0x00000200) != 0)) {
11122 output.writeBool(195, debugCrashOnBadHint_);
11123 }
11124 if (((bitField6_ & 0x40000000) != 0)) {
11125 output.writeInt32(196, cutLevel_);
11126 }
11127 if (((bitField7_ & 0x00000001) != 0)) {
11128 output.writeBool(197, addObjectiveCut_);
11129 }
11130 if (((bitField8_ & 0x00000001) != 0)) {
11131 output.writeBool(198, mipComputeTrueObjectiveBound_);
11132 }
11133 if (((bitField8_ & 0x00000002) != 0)) {
11134 output.writeDouble(199, mipMaxValidMagnitude_);
11135 }
11136 if (((bitField3_ & 0x80000000) != 0)) {
11137 output.writeBool(200, useTimetablingInNoOverlap2D_);
11138 }
11139 if (((bitField2_ & 0x00080000) != 0)) {
11140 output.writeInt64(201, presolveInclusionWorkLimit_);
11141 }
11142 if (((bitField2_ & 0x00100000) != 0)) {
11143 output.writeBool(202, ignoreNames_);
11144 }
11145 if (((bitField3_ & 0x00000010) != 0)) {
11146 output.writeBool(203, shareBinaryClauses_);
11147 }
11148 if (((bitField4_ & 0x00020000) != 0)) {
11149 output.writeBool(204, useShavingInProbingSearch_);
11150 }
11151 if (((bitField4_ & 0x00040000) != 0)) {
11152 output.writeDouble(205, shavingSearchDeterministicTime_);
11153 }
11154 if (((bitField2_ & 0x20000000) != 0)) {
11155 output.writeInt32(206, numWorkers_);
11156 }
11157 for (int i = 0; i < subsolvers_.size(); i++) {
11158 com.google.protobuf.GeneratedMessage.writeString(output, 207, subsolvers_.getRaw(i));
11159 }
11160 for (int i = 0; i < ignoreSubsolvers_.size(); i++) {
11161 com.google.protobuf.GeneratedMessage.writeString(output, 209, ignoreSubsolvers_.getRaw(i));
11162 }
11163 for (int i = 0; i < subsolverParams_.size(); i++) {
11164 output.writeMessage(210, subsolverParams_.get(i));
11165 }
11166 if (((bitField4_ & 0x00000001) != 0)) {
11167 output.writeBool(213, useEnergeticReasoningInNoOverlap2D_);
11168 }
11169 if (((bitField4_ & 0x00000020) != 0)) {
11170 output.writeBool(214, useDualSchedulingHeuristics_);
11171 }
11172 if (((bitField3_ & 0x10000000) != 0)) {
11173 output.writeBool(215, useHardPrecedencesInCumulative_);
11174 }
11175 if (((bitField2_ & 0x00000040) != 0)) {
11176 output.writeBool(216, detectTableWithCost_);
11177 }
11178 if (((bitField2_ & 0x00000080) != 0)) {
11179 output.writeInt32(217, tableCompressionLevel_);
11180 }
11181 for (int i = 0; i < extraSubsolvers_.size(); i++) {
11182 com.google.protobuf.GeneratedMessage.writeString(output, 219, extraSubsolvers_.getRaw(i));
11183 }
11184 if (((bitField3_ & 0x20000000) != 0)) {
11185 output.writeBool(220, exploitAllPrecedences_);
11186 }
11187 if (((bitField3_ & 0x00040000) != 0)) {
11188 output.writeDouble(221, propagationLoopDetectionFactor_);
11189 }
11190 if (((bitField7_ & 0x10000000) != 0)) {
11191 output.writeBool(222, onlySolveIp_);
11192 }
11193 if (((bitField2_ & 0x00004000) != 0)) {
11194 output.writeBool(223, encodeComplexLinearConstraintWithInteger_);
11195 }
11196 if (((bitField6_ & 0x01000000) != 0)) {
11197 output.writeBool(224, newLinearPropagation_);
11198 }
11199 if (((bitField7_ & 0x04000000) != 0)) {
11200 output.writeBool(225, mipScaleLargeDomain_);
11201 }
11202 if (((bitField1_ & 0x10000000) != 0)) {
11203 output.writeDouble(226, probingDeterministicTimeLimit_);
11204 }
11205 if (((bitField7_ & 0x00000400) != 0)) {
11206 output.writeInt32(227, rootLpIterations_);
11207 }
11208 if (((bitField4_ & 0x00100000) != 0)) {
11209 output.writeBool(228, useObjectiveLbSearch_);
11210 }
11211 if (((bitField3_ & 0x00100000) != 0)) {
11212 output.writeInt32(229, maxSizeToCreatePrecedenceLiteralsInDisjunctive_);
11213 }
11214 if (((bitField3_ & 0x00200000) != 0)) {
11215 output.writeBool(230, useStrongPropagationInDisjunctive_);
11216 }
11217 if (((bitField8_ & 0x00000008) != 0)) {
11218 output.writeDouble(232, mipDropTolerance_);
11219 }
11220 if (((bitField2_ & 0x00200000) != 0)) {
11221 output.writeBool(233, inferAllDiffs_);
11222 }
11223 if (((bitField2_ & 0x00400000) != 0)) {
11224 output.writeBool(234, findBigLinearOverlap_);
11225 }
11226 if (((bitField5_ & 0x00000400) != 0)) {
11227 output.writeInt32(235, sharedTreeNumWorkers_);
11228 }
11229 if (((bitField5_ & 0x00000800) != 0)) {
11230 output.writeBool(236, useSharedTreeSearch_);
11231 }
11232 if (((bitField5_ & 0x00010000) != 0)) {
11233 output.writeInt32(238, sharedTreeMaxNodesPerWorker_);
11234 }
11235 if (((bitField5_ & 0x00020000) != 0)) {
11236 output.writeEnum(239, sharedTreeSplitStrategy_);
11237 }
11238 if (((bitField4_ & 0x40000000) != 0)) {
11239 output.writeBool(240, useLsOnly_);
11240 }
11241 if (((bitField4_ & 0x80000000) != 0)) {
11242 output.writeDouble(242, feasibilityJumpDecay_);
11243 }
11244 if (((bitField5_ & 0x00000080) != 0)) {
11245 output.writeInt32(244, numViolationLs_);
11246 }
11247 if (((bitField5_ & 0x00000008) != 0)) {
11248 output.writeDouble(247, feasibilityJumpVarRandomizationProbability_);
11249 }
11250 if (((bitField5_ & 0x00000010) != 0)) {
11251 output.writeDouble(248, feasibilityJumpVarPerburbationRangeRatio_);
11252 }
11253 if (((bitField5_ & 0x00000100) != 0)) {
11254 output.writeInt32(249, violationLsPerturbationPeriod_);
11255 }
11256 if (((bitField5_ & 0x00000020) != 0)) {
11257 output.writeBool(250, feasibilityJumpEnableRestarts_);
11258 }
11259 if (((bitField5_ & 0x08000000) != 0)) {
11260 output.writeBool(252, stopAfterRootPropagation_);
11261 }
11262 if (((bitField4_ & 0x00200000) != 0)) {
11263 output.writeBool(253, useObjectiveShavingSearch_);
11264 }
11265 if (((bitField6_ & 0x00000008) != 0)) {
11266 output.writeBool(255, useLbRelaxLns_);
11267 }
11268 if (((bitField6_ & 0x02000000) != 0)) {
11269 output.writeInt32(256, linearSplitSize_);
11270 }
11271 if (((bitField5_ & 0x00000001) != 0)) {
11272 output.writeInt32(257, feasibilityJumpLinearizationLevel_);
11273 }
11274 if (((bitField5_ & 0x00000002) != 0)) {
11275 output.writeInt32(258, feasibilityJumpRestartFactor_);
11276 }
11277 if (((bitField5_ & 0x00000200) != 0)) {
11278 output.writeDouble(259, violationLsCompoundMoveProbability_);
11279 }
11280 if (((bitField3_ & 0x08000000) != 0)) {
11281 output.writeInt32(260, maxNumIntervalsForTimetableEdgeFinding_);
11282 }
11283 if (((bitField8_ & 0x00000010) != 0)) {
11284 output.writeInt32(261, mipPresolveLevel_);
11285 }
11286 if (((bitField6_ & 0x00000200) != 0)) {
11287 output.writeBool(262, pushAllTasksTowardStart_);
11288 }
11289 if (((bitField3_ & 0x00400000) != 0)) {
11290 output.writeBool(263, useDynamicPrecedenceInDisjunctive_);
11291 }
11292 if (((bitField5_ & 0x00000040) != 0)) {
11293 output.writeInt32(264, feasibilityJumpMaxExpandedConstraintSize_);
11294 }
11295 if (((bitField4_ & 0x20000000) != 0)) {
11296 output.writeBool(265, useFeasibilityJump_);
11297 }
11298 if (((bitField6_ & 0x00020000) != 0)) {
11299 output.writeDouble(266, lpPrimalTolerance_);
11300 }
11301 if (((bitField6_ & 0x00040000) != 0)) {
11302 output.writeDouble(267, lpDualTolerance_);
11303 }
11304 if (((bitField3_ & 0x00800000) != 0)) {
11305 output.writeBool(268, useDynamicPrecedenceInCumulative_);
11306 }
11307 if (((bitField4_ & 0x00008000) != 0)) {
11308 output.writeBool(269, useExtendedProbing_);
11309 }
11310 if (((bitField6_ & 0x00002000) != 0)) {
11311 output.writeInt32(270, atMostOneMaxExpansionSize_);
11312 }
11313 if (((bitField4_ & 0x00000002) != 0)) {
11314 output.writeBool(271, useAreaEnergeticReasoningInNoOverlap2D_);
11315 }
11316 if (((bitField4_ & 0x00010000) != 0)) {
11317 output.writeInt32(272, probingNumCombinationsLimit_);
11318 }
11319 if (((bitField2_ & 0x01000000) != 0)) {
11320 output.writeDouble(273, inprocessingDtimeRatio_);
11321 }
11322 if (((bitField2_ & 0x02000000) != 0)) {
11323 output.writeDouble(274, inprocessingProbingDtime_);
11324 }
11325 if (((bitField2_ & 0x04000000) != 0)) {
11326 output.writeDouble(275, inprocessingMinimizationDtime_);
11327 }
11328 if (((bitField4_ & 0x00000008) != 0)) {
11329 output.writeInt32(276, maxPairsPairwiseReasoningInNoOverlap2D_);
11330 }
11331 if (((bitField7_ & 0x00800000) != 0)) {
11332 output.writeBool(277, detectLinearizedProduct_);
11333 }
11334 if (((bitField8_ & 0x00000004) != 0)) {
11335 output.writeBool(278, mipTreatHighMagnitudeBoundsAsInfinity_);
11336 }
11337 if (((bitField7_ & 0x00000020) != 0)) {
11338 output.writeBool(279, addRltCuts_);
11339 }
11340 if (((bitField2_ & 0x00001000) != 0)) {
11341 output.writeInt32(280, maxLinMaxSizeForExpansion_);
11342 }
11343 if (((bitField5_ & 0x00008000) != 0)) {
11344 output.writeDouble(281, sharedTreeOpenLeavesPerWorker_);
11345 }
11346 if (((bitField5_ & 0x00001000) != 0)) {
11347 output.writeInt32(282, sharedTreeWorkerMinRestartsPerSubtree_);
11348 }
11349 if (((bitField5_ & 0x40000000) != 0)) {
11350 output.writeBool(283, useLns_);
11351 }
11352 if (((bitField4_ & 0x04000000) != 0)) {
11353 output.writeBool(284, saveLpBasisInLbTreeSearch_);
11354 }
11355 if (((bitField3_ & 0x00000020) != 0)) {
11356 output.writeBool(285, shareGlueClauses_);
11357 }
11358 if (((bitField3_ & 0x02000000) != 0)) {
11359 output.writeBool(286, useConservativeScaleOverloadChecker_);
11360 }
11361 if (((bitField2_ & 0x00000800) != 0)) {
11362 output.writeBool(287, encodeCumulativeAsReservoir_);
11363 }
11364 if (((bitField2_ & 0x00000400) != 0)) {
11365 output.writeBool(288, expandReservoirUsingCircuit_);
11366 }
11367 if (((bitField4_ & 0x00400000) != 0)) {
11368 output.writeBool(289, useVariablesShavingSearch_);
11369 }
11370 if (((bitField4_ & 0x00080000) != 0)) {
11371 output.writeInt64(290, shavingSearchThreshold_);
11372 }
11373 if (((bitField1_ & 0x00000200) != 0)) {
11374 output.writeInt32(291, maxNumDeterministicBatches_);
11375 }
11376 if (((bitField5_ & 0x00000004) != 0)) {
11377 output.writeDouble(292, feasibilityJumpBatchDtime_);
11378 }
11379 for (int i = 0; i < filterSubsolvers_.size(); i++) {
11380 com.google.protobuf.GeneratedMessage.writeString(output, 293, filterSubsolvers_.getRaw(i));
11381 }
11382 if (((bitField2_ & 0x80000000) != 0)) {
11383 output.writeInt32(294, numFullSubsolvers_);
11384 }
11385 if (((bitField5_ & 0x00002000) != 0)) {
11386 output.writeBool(295, sharedTreeWorkerEnableTrailSharing_);
11387 }
11388 if (((bitField6_ & 0x00000010) != 0)) {
11389 output.writeInt32(296, lbRelaxNumWorkersThreshold_);
11390 }
11391 if (((bitField2_ & 0x08000000) != 0)) {
11392 output.writeBool(297, inprocessingMinimizationUseConflictAnalysis_);
11393 }
11394 if (((bitField2_ & 0x10000000) != 0)) {
11395 output.writeBool(298, inprocessingMinimizationUseAllOrderings_);
11396 }
11397 if (((bitField4_ & 0x00000004) != 0)) {
11398 output.writeBool(299, useTryEdgeReasoningInNoOverlap2D_);
11399 }
11400 if (((bitField3_ & 0x00000040) != 0)) {
11401 output.writeBool(300, minimizeSharedClauses_);
11402 }
11403 if (((bitField6_ & 0x00200000) != 0)) {
11404 output.writeBool(301, useSymmetryInLp_);
11405 }
11406 if (((bitField6_ & 0x00800000) != 0)) {
11407 output.writeDouble(302, symmetryDetectionDeterministicTimeLimit_);
11408 }
11409 if (((bitField6_ & 0x00400000) != 0)) {
11410 output.writeBool(303, keepSymmetryInPresolve_);
11411 }
11412 if (((bitField5_ & 0x00004000) != 0)) {
11413 output.writeBool(304, sharedTreeWorkerEnablePhaseSharing_);
11414 }
11415 if (((bitField5_ & 0x00040000) != 0)) {
11416 output.writeInt32(305, sharedTreeBalanceTolerance_);
11417 }
11418 if (((bitField3_ & 0x00000400) != 0)) {
11419 output.writeBool(306, debugCrashIfPresolveBreaksHint_);
11420 }
11421 if (((bitField5_ & 0x10000000) != 0)) {
11422 output.writeDouble(307, lnsInitialDifficulty_);
11423 }
11424 if (((bitField5_ & 0x20000000) != 0)) {
11425 output.writeDouble(308, lnsInitialDeterministicLimit_);
11426 }
11427 if (((bitField0_ & 0x00000020) != 0)) {
11428 output.writeBool(309, polarityExploitLsHints_);
11429 }
11430 if (((bitField2_ & 0x00000020) != 0)) {
11431 output.writeBool(310, removeFixedVariablesEarly_);
11432 }
11433 if (((bitField4_ & 0x00000040) != 0)) {
11434 output.writeBool(311, useAllDifferentForCircuit_);
11435 }
11436 if (((bitField4_ & 0x00000080) != 0)) {
11437 output.writeInt32(312, routingCutSubsetSizeForBinaryRelationBound_);
11438 }
11439 if (((bitField4_ & 0x00000100) != 0)) {
11440 output.writeInt32(313, routingCutSubsetSizeForTightBinaryRelationBound_);
11441 }
11442 if (((bitField4_ & 0x00000200) != 0)) {
11443 output.writeDouble(314, routingCutDpEffort_);
11444 }
11445 if (((bitField4_ & 0x00000010) != 0)) {
11446 output.writeInt32(315, maximumRegionsToSplitInDisconnectedNoOverlap2D_);
11447 }
11448 getUnknownFields().writeTo(output);
11449 }
11450
11451 @java.lang.Override
11452 public int getSerializedSize() {
11453 int size = memoizedSize;
11454 if (size != -1) return size;
11455
11456 size = 0;
11457 if (((bitField0_ & 0x00000002) != 0)) {
11458 size += com.google.protobuf.CodedOutputStream
11459 .computeEnumSize(1, preferredVariableOrder_);
11460 }
11461 if (((bitField0_ & 0x00000004) != 0)) {
11462 size += com.google.protobuf.CodedOutputStream
11463 .computeEnumSize(2, initialPolarity_);
11464 }
11465 if (((bitField0_ & 0x00000800) != 0)) {
11466 size += com.google.protobuf.CodedOutputStream
11467 .computeEnumSize(4, minimizationAlgorithm_);
11468 }
11469 if (((bitField0_ & 0x00004000) != 0)) {
11470 size += com.google.protobuf.CodedOutputStream
11471 .computeInt32Size(11, clauseCleanupPeriod_);
11472 }
11473 if (((bitField0_ & 0x00008000) != 0)) {
11474 size += com.google.protobuf.CodedOutputStream
11475 .computeInt32Size(13, clauseCleanupTarget_);
11476 }
11477 if (((bitField0_ & 0x00400000) != 0)) {
11478 size += com.google.protobuf.CodedOutputStream
11479 .computeDoubleSize(15, variableActivityDecay_);
11480 }
11481 if (((bitField0_ & 0x00800000) != 0)) {
11482 size += com.google.protobuf.CodedOutputStream
11483 .computeDoubleSize(16, maxVariableActivityValue_);
11484 }
11485 if (((bitField0_ & 0x08000000) != 0)) {
11486 size += com.google.protobuf.CodedOutputStream
11487 .computeDoubleSize(17, clauseActivityDecay_);
11488 }
11489 if (((bitField0_ & 0x10000000) != 0)) {
11490 size += com.google.protobuf.CodedOutputStream
11491 .computeDoubleSize(18, maxClauseActivityValue_);
11492 }
11493 if (((bitField0_ & 0x01000000) != 0)) {
11494 size += com.google.protobuf.CodedOutputStream
11495 .computeDoubleSize(22, glucoseMaxDecay_);
11496 }
11497 if (((bitField0_ & 0x02000000) != 0)) {
11498 size += com.google.protobuf.CodedOutputStream
11499 .computeDoubleSize(23, glucoseDecayIncrement_);
11500 }
11501 if (((bitField0_ & 0x04000000) != 0)) {
11502 size += com.google.protobuf.CodedOutputStream
11503 .computeInt32Size(24, glucoseDecayIncrementPeriod_);
11504 }
11505 if (((bitField0_ & 0x40000000) != 0)) {
11506 size += com.google.protobuf.CodedOutputStream
11507 .computeInt32Size(30, restartPeriod_);
11508 }
11509 if (((bitField1_ & 0x00004000) != 0)) {
11510 size += com.google.protobuf.CodedOutputStream
11511 .computeInt32Size(31, randomSeed_);
11512 }
11513 if (((bitField0_ & 0x00000080) != 0)) {
11514 size += com.google.protobuf.CodedOutputStream
11515 .computeDoubleSize(32, randomBranchesRatio_);
11516 }
11517 if (((bitField0_ & 0x00001000) != 0)) {
11518 size += com.google.protobuf.CodedOutputStream
11519 .computeEnumSize(34, binaryMinimizationAlgorithm_);
11520 }
11521 if (((bitField3_ & 0x00000800) != 0)) {
11522 size += com.google.protobuf.CodedOutputStream
11523 .computeBoolSize(35, useOptimizationHints_);
11524 }
11525 if (((bitField1_ & 0x00000080) != 0)) {
11526 size += com.google.protobuf.CodedOutputStream
11527 .computeDoubleSize(36, maxTimeInSeconds_);
11528 }
11529 if (((bitField1_ & 0x00000400) != 0)) {
11530 size += com.google.protobuf.CodedOutputStream
11531 .computeInt64Size(37, maxNumberOfConflicts_);
11532 }
11533 if (((bitField1_ & 0x00000800) != 0)) {
11534 size += com.google.protobuf.CodedOutputStream
11535 .computeInt64Size(40, maxMemoryInMb_);
11536 }
11537 if (((bitField1_ & 0x00040000) != 0)) {
11538 size += com.google.protobuf.CodedOutputStream
11539 .computeBoolSize(41, logSearchProgress_);
11540 }
11541 if (((bitField1_ & 0x00800000) != 0)) {
11542 size += com.google.protobuf.CodedOutputStream
11543 .computeBoolSize(43, usePbResolution_);
11544 }
11545 if (((bitField0_ & 0x00000008) != 0)) {
11546 size += com.google.protobuf.CodedOutputStream
11547 .computeBoolSize(44, usePhaseSaving_);
11548 }
11549 if (((bitField0_ & 0x00000040) != 0)) {
11550 size += com.google.protobuf.CodedOutputStream
11551 .computeDoubleSize(45, randomPolarityRatio_);
11552 }
11553 if (((bitField0_ & 0x00100000) != 0)) {
11554 size += com.google.protobuf.CodedOutputStream
11555 .computeInt32Size(46, pbCleanupIncrement_);
11556 }
11557 if (((bitField0_ & 0x00200000) != 0)) {
11558 size += com.google.protobuf.CodedOutputStream
11559 .computeDoubleSize(47, pbCleanupRatio_);
11560 }
11561 if (((bitField1_ & 0x01000000) != 0)) {
11562 size += com.google.protobuf.CodedOutputStream
11563 .computeBoolSize(48, minimizeReductionDuringPbResolution_);
11564 }
11565 if (((bitField1_ & 0x02000000) != 0)) {
11566 size += com.google.protobuf.CodedOutputStream
11567 .computeBoolSize(49, countAssumptionLevelsInLbd_);
11568 }
11569 if (((bitField3_ & 0x00001000) != 0)) {
11570 size += com.google.protobuf.CodedOutputStream
11571 .computeInt32Size(50, coreMinimizationLevel_);
11572 }
11573 if (((bitField3_ & 0x00008000) != 0)) {
11574 size += com.google.protobuf.CodedOutputStream
11575 .computeEnumSize(51, maxSatAssumptionOrder_);
11576 }
11577 if (((bitField3_ & 0x00010000) != 0)) {
11578 size += com.google.protobuf.CodedOutputStream
11579 .computeBoolSize(52, maxSatReverseAssumptionOrder_);
11580 }
11581 if (((bitField3_ & 0x00020000) != 0)) {
11582 size += com.google.protobuf.CodedOutputStream
11583 .computeEnumSize(53, maxSatStratification_);
11584 }
11585 if (((bitField1_ & 0x04000000) != 0)) {
11586 size += com.google.protobuf.CodedOutputStream
11587 .computeInt32Size(54, presolveBveThreshold_);
11588 }
11589 if (((bitField1_ & 0x08000000) != 0)) {
11590 size += com.google.protobuf.CodedOutputStream
11591 .computeInt32Size(55, presolveBveClauseWeight_);
11592 }
11593 if (((bitField0_ & 0x00002000) != 0)) {
11594 size += com.google.protobuf.CodedOutputStream
11595 .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
11596 }
11597 if (((bitField1_ & 0x20000000) != 0)) {
11598 size += com.google.protobuf.CodedOutputStream
11599 .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
11600 }
11601 if (((bitField0_ & 0x00020000) != 0)) {
11602 size += com.google.protobuf.CodedOutputStream
11603 .computeEnumSize(58, clauseCleanupProtection_);
11604 }
11605 if (((bitField0_ & 0x00040000) != 0)) {
11606 size += com.google.protobuf.CodedOutputStream
11607 .computeInt32Size(59, clauseCleanupLbdBound_);
11608 }
11609 if (((bitField0_ & 0x00080000) != 0)) {
11610 size += com.google.protobuf.CodedOutputStream
11611 .computeEnumSize(60, clauseCleanupOrdering_);
11612 }
11613 {
11614 int dataSize = 0;
11615 for (int i = 0; i < restartAlgorithms_.size(); i++) {
11616 dataSize += com.google.protobuf.CodedOutputStream
11617 .computeEnumSizeNoTag(restartAlgorithms_.getInt(i));
11618 }
11619 size += dataSize;
11620 size += 2 * restartAlgorithms_.size();
11621 }
11622 if (((bitField0_ & 0x80000000) != 0)) {
11623 size += com.google.protobuf.CodedOutputStream
11624 .computeInt32Size(62, restartRunningWindowSize_);
11625 }
11626 if (((bitField1_ & 0x00000001) != 0)) {
11627 size += com.google.protobuf.CodedOutputStream
11628 .computeDoubleSize(63, restartDlAverageRatio_);
11629 }
11630 if (((bitField1_ & 0x00000004) != 0)) {
11631 size += com.google.protobuf.CodedOutputStream
11632 .computeBoolSize(64, useBlockingRestart_);
11633 }
11634 if (((bitField1_ & 0x00000008) != 0)) {
11635 size += com.google.protobuf.CodedOutputStream
11636 .computeInt32Size(65, blockingRestartWindowSize_);
11637 }
11638 if (((bitField1_ & 0x00000010) != 0)) {
11639 size += com.google.protobuf.CodedOutputStream
11640 .computeDoubleSize(66, blockingRestartMultiplier_);
11641 }
11642 if (((bitField1_ & 0x00000100) != 0)) {
11643 size += com.google.protobuf.CodedOutputStream
11644 .computeDoubleSize(67, maxDeterministicTime_);
11645 }
11646 if (((bitField1_ & 0x00000020) != 0)) {
11647 size += com.google.protobuf.CodedOutputStream
11648 .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
11649 }
11650 if (((bitField1_ & 0x00000040) != 0)) {
11651 size += com.google.protobuf.CodedOutputStream
11652 .computeDoubleSize(69, strategyChangeIncreaseRatio_);
11653 }
11654 if (((bitField0_ & 0x20000000) != 0)) {
11655 size += com.google.protobuf.GeneratedMessage.computeStringSize(70, defaultRestartAlgorithms_);
11656 }
11657 if (((bitField1_ & 0x00000002) != 0)) {
11658 size += com.google.protobuf.CodedOutputStream
11659 .computeDoubleSize(71, restartLbdAverageRatio_);
11660 }
11661 if (((bitField1_ & 0x80000000) != 0)) {
11662 size += com.google.protobuf.CodedOutputStream
11663 .computeBoolSize(72, presolveUseBva_);
11664 }
11665 if (((bitField2_ & 0x00000001) != 0)) {
11666 size += com.google.protobuf.CodedOutputStream
11667 .computeInt32Size(73, presolveBvaThreshold_);
11668 }
11669 if (((bitField3_ & 0x00080000) != 0)) {
11670 size += com.google.protobuf.CodedOutputStream
11671 .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
11672 }
11673 if (((bitField0_ & 0x00000100) != 0)) {
11674 size += com.google.protobuf.CodedOutputStream
11675 .computeBoolSize(75, useErwaHeuristic_);
11676 }
11677 if (((bitField0_ & 0x00000200) != 0)) {
11678 size += com.google.protobuf.CodedOutputStream
11679 .computeDoubleSize(76, initialVariablesActivity_);
11680 }
11681 if (((bitField0_ & 0x00000400) != 0)) {
11682 size += com.google.protobuf.CodedOutputStream
11683 .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
11684 }
11685 if (((bitField3_ & 0x01000000) != 0)) {
11686 size += com.google.protobuf.CodedOutputStream
11687 .computeBoolSize(78, useOverloadCheckerInCumulative_);
11688 }
11689 if (((bitField3_ & 0x04000000) != 0)) {
11690 size += com.google.protobuf.CodedOutputStream
11691 .computeBoolSize(79, useTimetableEdgeFindingInCumulative_);
11692 }
11693 if (((bitField3_ & 0x40000000) != 0)) {
11694 size += com.google.protobuf.CodedOutputStream
11695 .computeBoolSize(80, useDisjunctiveConstraintInCumulative_);
11696 }
11697 if (((bitField4_ & 0x00000400) != 0)) {
11698 size += com.google.protobuf.CodedOutputStream
11699 .computeEnumSize(82, searchBranching_);
11700 }
11701 if (((bitField4_ & 0x01000000) != 0)) {
11702 size += com.google.protobuf.CodedOutputStream
11703 .computeBoolSize(83, optimizeWithCore_);
11704 }
11705 if (((bitField3_ & 0x00002000) != 0)) {
11706 size += com.google.protobuf.CodedOutputStream
11707 .computeBoolSize(84, findMultipleCores_);
11708 }
11709 if (((bitField4_ & 0x10000000) != 0)) {
11710 size += com.google.protobuf.CodedOutputStream
11711 .computeBoolSize(85, optimizeWithMaxHs_);
11712 }
11713 if (((bitField2_ & 0x00000004) != 0)) {
11714 size += com.google.protobuf.CodedOutputStream
11715 .computeBoolSize(86, cpModelPresolve_);
11716 }
11717 if (((bitField5_ & 0x00080000) != 0)) {
11718 size += com.google.protobuf.CodedOutputStream
11719 .computeBoolSize(87, enumerateAllSolutions_);
11720 }
11721 if (((bitField1_ & 0x40000000) != 0)) {
11722 size += com.google.protobuf.CodedOutputStream
11723 .computeBoolSize(88, presolveBlockedClause_);
11724 }
11725 if (((bitField3_ & 0x00004000) != 0)) {
11726 size += com.google.protobuf.CodedOutputStream
11727 .computeBoolSize(89, coverOptimization_);
11728 }
11729 if (((bitField6_ & 0x04000000) != 0)) {
11730 size += com.google.protobuf.CodedOutputStream
11731 .computeInt32Size(90, linearizationLevel_);
11732 }
11733 if (((bitField6_ & 0x20000000) != 0)) {
11734 size += com.google.protobuf.CodedOutputStream
11735 .computeInt32Size(91, maxNumCuts_);
11736 }
11737 if (((bitField6_ & 0x80000000) != 0)) {
11738 size += com.google.protobuf.CodedOutputStream
11739 .computeBoolSize(92, onlyAddCutsAtLevelZero_);
11740 }
11741 if (((bitField2_ & 0x00000010) != 0)) {
11742 size += com.google.protobuf.CodedOutputStream
11743 .computeBoolSize(93, cpModelUseSatPresolve_);
11744 }
11745 if (((bitField7_ & 0x00040000) != 0)) {
11746 size += com.google.protobuf.CodedOutputStream
11747 .computeBoolSize(94, exploitIntegerLpSolution_);
11748 }
11749 if (((bitField5_ & 0x01000000) != 0)) {
11750 size += com.google.protobuf.CodedOutputStream
11751 .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
11752 }
11753 if (((bitField5_ & 0x02000000) != 0)) {
11754 size += com.google.protobuf.CodedOutputStream
11755 .computeBoolSize(98, stopAfterFirstSolution_);
11756 }
11757 if (((bitField4_ & 0x08000000) != 0)) {
11758 size += com.google.protobuf.CodedOutputStream
11759 .computeInt32Size(99, binarySearchNumConflicts_);
11760 }
11761 if (((bitField2_ & 0x40000000) != 0)) {
11762 size += com.google.protobuf.CodedOutputStream
11763 .computeInt32Size(100, numSearchWorkers_);
11764 }
11765 if (((bitField5_ & 0x80000000) != 0)) {
11766 size += com.google.protobuf.CodedOutputStream
11767 .computeBoolSize(101, useLnsOnly_);
11768 }
11769 if (((bitField6_ & 0x00000080) != 0)) {
11770 size += com.google.protobuf.CodedOutputStream
11771 .computeBoolSize(103, randomizeSearch_);
11772 }
11773 if (((bitField6_ & 0x00000100) != 0)) {
11774 size += com.google.protobuf.CodedOutputStream
11775 .computeInt64Size(104, searchRandomVariablePoolSize_);
11776 }
11777 if (((bitField5_ & 0x00800000) != 0)) {
11778 size += com.google.protobuf.CodedOutputStream
11779 .computeBoolSize(106, instantiateAllVariables_);
11780 }
11781 if (((bitField6_ & 0x08000000) != 0)) {
11782 size += com.google.protobuf.CodedOutputStream
11783 .computeInt32Size(107, booleanEncodingLevel_);
11784 }
11785 if (((bitField6_ & 0x00000400) != 0)) {
11786 size += com.google.protobuf.CodedOutputStream
11787 .computeBoolSize(108, useOptionalVariables_);
11788 }
11789 if (((bitField6_ & 0x00000800) != 0)) {
11790 size += com.google.protobuf.CodedOutputStream
11791 .computeBoolSize(109, useExactLpReason_);
11792 }
11793 if (((bitField2_ & 0x00000008) != 0)) {
11794 size += com.google.protobuf.CodedOutputStream
11795 .computeInt32Size(110, cpModelProbingLevel_);
11796 }
11797 if (((bitField7_ & 0x00000200) != 0)) {
11798 size += com.google.protobuf.CodedOutputStream
11799 .computeBoolSize(112, addLpConstraintsLazily_);
11800 }
11801 if (((bitField3_ & 0x00000004) != 0)) {
11802 size += com.google.protobuf.CodedOutputStream
11803 .computeBoolSize(113, shareObjectiveBounds_);
11804 }
11805 if (((bitField3_ & 0x00000008) != 0)) {
11806 size += com.google.protobuf.CodedOutputStream
11807 .computeBoolSize(114, shareLevelZeroBounds_);
11808 }
11809 if (((bitField7_ & 0x00000800) != 0)) {
11810 size += com.google.protobuf.CodedOutputStream
11811 .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
11812 }
11813 if (((bitField7_ & 0x00080000) != 0)) {
11814 size += com.google.protobuf.CodedOutputStream
11815 .computeBoolSize(116, exploitAllLpSolution_);
11816 }
11817 if (((bitField7_ & 0x00000002) != 0)) {
11818 size += com.google.protobuf.CodedOutputStream
11819 .computeBoolSize(117, addCgCuts_);
11820 }
11821 if (((bitField7_ & 0x00000100) != 0)) {
11822 size += com.google.protobuf.CodedOutputStream
11823 .computeInt32Size(119, maxIntegerRoundingScaling_);
11824 }
11825 if (((bitField7_ & 0x00000004) != 0)) {
11826 size += com.google.protobuf.CodedOutputStream
11827 .computeBoolSize(120, addMirCuts_);
11828 }
11829 if (((bitField7_ & 0x00002000) != 0)) {
11830 size += com.google.protobuf.CodedOutputStream
11831 .computeInt32Size(121, maxConsecutiveInactiveCount_);
11832 }
11833 if (((bitField7_ & 0x00020000) != 0)) {
11834 size += com.google.protobuf.CodedOutputStream
11835 .computeInt32Size(122, newConstraintsBatchSize_);
11836 }
11837 if (((bitField4_ & 0x00800000) != 0)) {
11838 size += com.google.protobuf.CodedOutputStream
11839 .computeInt64Size(123, pseudoCostReliabilityThreshold_);
11840 }
11841 if (((bitField7_ & 0x01000000) != 0)) {
11842 size += com.google.protobuf.CodedOutputStream
11843 .computeDoubleSize(124, mipMaxBound_);
11844 }
11845 if (((bitField7_ & 0x02000000) != 0)) {
11846 size += com.google.protobuf.CodedOutputStream
11847 .computeDoubleSize(125, mipVarScaling_);
11848 }
11849 if (((bitField7_ & 0x20000000) != 0)) {
11850 size += com.google.protobuf.CodedOutputStream
11851 .computeDoubleSize(126, mipWantedPrecision_);
11852 }
11853 if (((bitField7_ & 0x40000000) != 0)) {
11854 size += com.google.protobuf.CodedOutputStream
11855 .computeInt32Size(127, mipMaxActivityExponent_);
11856 }
11857 if (((bitField7_ & 0x80000000) != 0)) {
11858 size += com.google.protobuf.CodedOutputStream
11859 .computeDoubleSize(128, mipCheckPrecision_);
11860 }
11861 if (((bitField6_ & 0x00000002) != 0)) {
11862 size += com.google.protobuf.CodedOutputStream
11863 .computeBoolSize(129, useRinsLns_);
11864 }
11865 if (((bitField7_ & 0x00100000) != 0)) {
11866 size += com.google.protobuf.CodedOutputStream
11867 .computeBoolSize(130, exploitBestSolution_);
11868 }
11869 if (((bitField7_ & 0x00400000) != 0)) {
11870 size += com.google.protobuf.CodedOutputStream
11871 .computeBoolSize(131, exploitObjective_);
11872 }
11873 if (((bitField5_ & 0x00200000) != 0)) {
11874 size += com.google.protobuf.CodedOutputStream
11875 .computeBoolSize(132, fillTightenedDomainsInResponse_);
11876 }
11877 if (((bitField6_ & 0x00001000) != 0)) {
11878 size += com.google.protobuf.CodedOutputStream
11879 .computeBoolSize(133, useCombinedNoOverlap_);
11880 }
11881 if (((bitField3_ & 0x00000002) != 0)) {
11882 size += com.google.protobuf.CodedOutputStream
11883 .computeInt32Size(134, interleaveBatchSize_);
11884 }
11885 if (((bitField6_ & 0x00004000) != 0)) {
11886 size += com.google.protobuf.CodedOutputStream
11887 .computeBoolSize(135, catchSigintSignal_);
11888 }
11889 if (((bitField3_ & 0x00000001) != 0)) {
11890 size += com.google.protobuf.CodedOutputStream
11891 .computeBoolSize(136, interleaveSearch_);
11892 }
11893 if (((bitField6_ & 0x00000040) != 0)) {
11894 size += com.google.protobuf.CodedOutputStream
11895 .computeBoolSize(137, diversifyLnsParams_);
11896 }
11897 if (((bitField2_ & 0x00000002) != 0)) {
11898 size += com.google.protobuf.CodedOutputStream
11899 .computeInt32Size(138, maxPresolveIterations_);
11900 }
11901 if (((bitField6_ & 0x00008000) != 0)) {
11902 size += com.google.protobuf.CodedOutputStream
11903 .computeBoolSize(144, useImpliedBounds_);
11904 }
11905 if (((bitField2_ & 0x00008000) != 0)) {
11906 size += com.google.protobuf.CodedOutputStream
11907 .computeDoubleSize(145, mergeNoOverlapWorkLimit_);
11908 }
11909 if (((bitField2_ & 0x00010000) != 0)) {
11910 size += com.google.protobuf.CodedOutputStream
11911 .computeDoubleSize(146, mergeAtMostOneWorkLimit_);
11912 }
11913 if (((bitField2_ & 0x00020000) != 0)) {
11914 size += com.google.protobuf.CodedOutputStream
11915 .computeInt32Size(147, presolveSubstitutionLevel_);
11916 }
11917 if (((bitField7_ & 0x00000040) != 0)) {
11918 size += com.google.protobuf.CodedOutputStream
11919 .computeInt32Size(148, maxAllDiffCutSize_);
11920 }
11921 if (((bitField5_ & 0x04000000) != 0)) {
11922 size += com.google.protobuf.CodedOutputStream
11923 .computeBoolSize(149, stopAfterPresolve_);
11924 }
11925 if (((bitField3_ & 0x00000100) != 0)) {
11926 size += com.google.protobuf.CodedOutputStream
11927 .computeInt32Size(151, debugMaxNumPresolveOperations_);
11928 }
11929 if (((bitField7_ & 0x00000080) != 0)) {
11930 size += com.google.protobuf.CodedOutputStream
11931 .computeBoolSize(152, addLinMaxCuts_);
11932 }
11933 if (((bitField4_ & 0x00000800) != 0)) {
11934 size += com.google.protobuf.CodedOutputStream
11935 .computeInt32Size(153, hintConflictLimit_);
11936 }
11937 if (((bitField7_ & 0x00001000) != 0)) {
11938 size += com.google.protobuf.CodedOutputStream
11939 .computeInt32Size(154, maxCutRoundsAtLevelZero_);
11940 }
11941 if (((bitField7_ & 0x00004000) != 0)) {
11942 size += com.google.protobuf.CodedOutputStream
11943 .computeDoubleSize(155, cutMaxActiveCountValue_);
11944 }
11945 if (((bitField7_ & 0x00008000) != 0)) {
11946 size += com.google.protobuf.CodedOutputStream
11947 .computeDoubleSize(156, cutActiveCountDecay_);
11948 }
11949 if (((bitField7_ & 0x00010000) != 0)) {
11950 size += com.google.protobuf.CodedOutputStream
11951 .computeInt32Size(157, cutCleanupTarget_);
11952 }
11953 if (((bitField1_ & 0x00001000) != 0)) {
11954 size += com.google.protobuf.CodedOutputStream
11955 .computeDoubleSize(159, absoluteGapLimit_);
11956 }
11957 if (((bitField1_ & 0x00002000) != 0)) {
11958 size += com.google.protobuf.CodedOutputStream
11959 .computeDoubleSize(160, relativeGapLimit_);
11960 }
11961 if (((bitField7_ & 0x00200000) != 0)) {
11962 size += com.google.protobuf.CodedOutputStream
11963 .computeBoolSize(161, exploitRelaxationSolution_);
11964 }
11965 if (((bitField3_ & 0x00000080) != 0)) {
11966 size += com.google.protobuf.CodedOutputStream
11967 .computeBoolSize(162, debugPostsolveWithFullSolver_);
11968 }
11969 if (((bitField2_ & 0x00800000) != 0)) {
11970 size += com.google.protobuf.CodedOutputStream
11971 .computeBoolSize(163, useSatInprocessing_);
11972 }
11973 if (((bitField6_ & 0x00000004) != 0)) {
11974 size += com.google.protobuf.CodedOutputStream
11975 .computeBoolSize(164, useFeasibilityPump_);
11976 }
11977 if (((bitField6_ & 0x00000020) != 0)) {
11978 size += com.google.protobuf.CodedOutputStream
11979 .computeEnumSize(165, fpRounding_);
11980 }
11981 if (((bitField7_ & 0x08000000) != 0)) {
11982 size += com.google.protobuf.CodedOutputStream
11983 .computeBoolSize(166, mipAutomaticallyScaleVariables_);
11984 }
11985 if (((bitField4_ & 0x00001000) != 0)) {
11986 size += com.google.protobuf.CodedOutputStream
11987 .computeBoolSize(167, repairHint_);
11988 }
11989 if (((bitField0_ & 0x00000010) != 0)) {
11990 size += com.google.protobuf.CodedOutputStream
11991 .computeInt32Size(168, polarityRephaseIncrement_);
11992 }
11993 if (((bitField7_ & 0x00000008) != 0)) {
11994 size += com.google.protobuf.CodedOutputStream
11995 .computeBoolSize(169, addZeroHalfCuts_);
11996 }
11997 if (((bitField2_ & 0x00000100) != 0)) {
11998 size += com.google.protobuf.CodedOutputStream
11999 .computeBoolSize(170, expandAlldiffConstraints_);
12000 }
12001 if (((bitField0_ & 0x00000001) != 0)) {
12002 size += com.google.protobuf.GeneratedMessage.computeStringSize(171, name_);
12003 }
12004 if (((bitField7_ & 0x00000010) != 0)) {
12005 size += com.google.protobuf.CodedOutputStream
12006 .computeBoolSize(172, addCliqueCuts_);
12007 }
12008 if (((bitField5_ & 0x00100000) != 0)) {
12009 size += com.google.protobuf.CodedOutputStream
12010 .computeBoolSize(173, keepAllFeasibleSolutionsInPresolve_);
12011 }
12012 if (((bitField2_ & 0x00040000) != 0)) {
12013 size += com.google.protobuf.CodedOutputStream
12014 .computeBoolSize(174, presolveExtractIntegerEnforcement_);
12015 }
12016 if (((bitField6_ & 0x00010000) != 0)) {
12017 size += com.google.protobuf.CodedOutputStream
12018 .computeBoolSize(175, polishLpSolution_);
12019 }
12020 if (((bitField4_ & 0x00004000) != 0)) {
12021 size += com.google.protobuf.CodedOutputStream
12022 .computeBoolSize(176, useProbingSearch_);
12023 }
12024 if (((bitField6_ & 0x00080000) != 0)) {
12025 size += com.google.protobuf.CodedOutputStream
12026 .computeBoolSize(177, convertIntervals_);
12027 }
12028 if (((bitField1_ & 0x00008000) != 0)) {
12029 size += com.google.protobuf.CodedOutputStream
12030 .computeBoolSize(178, permuteVariableRandomly_);
12031 }
12032 if (((bitField1_ & 0x00010000) != 0)) {
12033 size += com.google.protobuf.CodedOutputStream
12034 .computeBoolSize(179, permutePresolveConstraintOrder_);
12035 }
12036 if (((bitField1_ & 0x00020000) != 0)) {
12037 size += com.google.protobuf.CodedOutputStream
12038 .computeBoolSize(180, useAbslRandom_);
12039 }
12040 if (((bitField2_ & 0x00002000) != 0)) {
12041 size += com.google.protobuf.CodedOutputStream
12042 .computeBoolSize(181, disableConstraintExpansion_);
12043 }
12044 if (((bitField2_ & 0x00000200) != 0)) {
12045 size += com.google.protobuf.CodedOutputStream
12046 .computeBoolSize(182, expandReservoirConstraints_);
12047 }
12048 if (((bitField6_ & 0x00100000) != 0)) {
12049 size += com.google.protobuf.CodedOutputStream
12050 .computeInt32Size(183, symmetryLevel_);
12051 }
12052 if (((bitField1_ & 0x00100000) != 0)) {
12053 size += com.google.protobuf.GeneratedMessage.computeStringSize(185, logPrefix_);
12054 }
12055 if (((bitField1_ & 0x00200000) != 0)) {
12056 size += com.google.protobuf.CodedOutputStream
12057 .computeBoolSize(186, logToStdout_);
12058 }
12059 if (((bitField1_ & 0x00400000) != 0)) {
12060 size += com.google.protobuf.CodedOutputStream
12061 .computeBoolSize(187, logToResponse_);
12062 }
12063 if (((bitField4_ & 0x02000000) != 0)) {
12064 size += com.google.protobuf.CodedOutputStream
12065 .computeBoolSize(188, optimizeWithLbTreeSearch_);
12066 }
12067 if (((bitField1_ & 0x00080000) != 0)) {
12068 size += com.google.protobuf.CodedOutputStream
12069 .computeBoolSize(189, logSubsolverStatistics_);
12070 }
12071 if (((bitField0_ & 0x00010000) != 0)) {
12072 size += com.google.protobuf.CodedOutputStream
12073 .computeDoubleSize(190, clauseCleanupRatio_);
12074 }
12075 if (((bitField6_ & 0x10000000) != 0)) {
12076 size += com.google.protobuf.CodedOutputStream
12077 .computeInt32Size(191, maxDomainSizeWhenEncodingEqNeqConstraints_);
12078 }
12079 if (((bitField4_ & 0x00002000) != 0)) {
12080 size += com.google.protobuf.CodedOutputStream
12081 .computeBoolSize(192, fixVariablesToTheirHintedValue_);
12082 }
12083 if (((bitField6_ & 0x00000001) != 0)) {
12084 size += com.google.protobuf.CodedOutputStream
12085 .computeInt32Size(193, solutionPoolSize_);
12086 }
12087 if (((bitField5_ & 0x00400000) != 0)) {
12088 size += com.google.protobuf.CodedOutputStream
12089 .computeBoolSize(194, fillAdditionalSolutionsInResponse_);
12090 }
12091 if (((bitField3_ & 0x00000200) != 0)) {
12092 size += com.google.protobuf.CodedOutputStream
12093 .computeBoolSize(195, debugCrashOnBadHint_);
12094 }
12095 if (((bitField6_ & 0x40000000) != 0)) {
12096 size += com.google.protobuf.CodedOutputStream
12097 .computeInt32Size(196, cutLevel_);
12098 }
12099 if (((bitField7_ & 0x00000001) != 0)) {
12100 size += com.google.protobuf.CodedOutputStream
12101 .computeBoolSize(197, addObjectiveCut_);
12102 }
12103 if (((bitField8_ & 0x00000001) != 0)) {
12104 size += com.google.protobuf.CodedOutputStream
12105 .computeBoolSize(198, mipComputeTrueObjectiveBound_);
12106 }
12107 if (((bitField8_ & 0x00000002) != 0)) {
12108 size += com.google.protobuf.CodedOutputStream
12109 .computeDoubleSize(199, mipMaxValidMagnitude_);
12110 }
12111 if (((bitField3_ & 0x80000000) != 0)) {
12112 size += com.google.protobuf.CodedOutputStream
12113 .computeBoolSize(200, useTimetablingInNoOverlap2D_);
12114 }
12115 if (((bitField2_ & 0x00080000) != 0)) {
12116 size += com.google.protobuf.CodedOutputStream
12117 .computeInt64Size(201, presolveInclusionWorkLimit_);
12118 }
12119 if (((bitField2_ & 0x00100000) != 0)) {
12120 size += com.google.protobuf.CodedOutputStream
12121 .computeBoolSize(202, ignoreNames_);
12122 }
12123 if (((bitField3_ & 0x00000010) != 0)) {
12124 size += com.google.protobuf.CodedOutputStream
12125 .computeBoolSize(203, shareBinaryClauses_);
12126 }
12127 if (((bitField4_ & 0x00020000) != 0)) {
12128 size += com.google.protobuf.CodedOutputStream
12129 .computeBoolSize(204, useShavingInProbingSearch_);
12130 }
12131 if (((bitField4_ & 0x00040000) != 0)) {
12132 size += com.google.protobuf.CodedOutputStream
12133 .computeDoubleSize(205, shavingSearchDeterministicTime_);
12134 }
12135 if (((bitField2_ & 0x20000000) != 0)) {
12136 size += com.google.protobuf.CodedOutputStream
12137 .computeInt32Size(206, numWorkers_);
12138 }
12139 {
12140 int dataSize = 0;
12141 for (int i = 0; i < subsolvers_.size(); i++) {
12142 dataSize += computeStringSizeNoTag(subsolvers_.getRaw(i));
12143 }
12144 size += dataSize;
12145 size += 2 * getSubsolversList().size();
12146 }
12147 {
12148 int dataSize = 0;
12149 for (int i = 0; i < ignoreSubsolvers_.size(); i++) {
12150 dataSize += computeStringSizeNoTag(ignoreSubsolvers_.getRaw(i));
12151 }
12152 size += dataSize;
12153 size += 2 * getIgnoreSubsolversList().size();
12154 }
12155 for (int i = 0; i < subsolverParams_.size(); i++) {
12156 size += com.google.protobuf.CodedOutputStream
12157 .computeMessageSize(210, subsolverParams_.get(i));
12158 }
12159 if (((bitField4_ & 0x00000001) != 0)) {
12160 size += com.google.protobuf.CodedOutputStream
12161 .computeBoolSize(213, useEnergeticReasoningInNoOverlap2D_);
12162 }
12163 if (((bitField4_ & 0x00000020) != 0)) {
12164 size += com.google.protobuf.CodedOutputStream
12165 .computeBoolSize(214, useDualSchedulingHeuristics_);
12166 }
12167 if (((bitField3_ & 0x10000000) != 0)) {
12168 size += com.google.protobuf.CodedOutputStream
12169 .computeBoolSize(215, useHardPrecedencesInCumulative_);
12170 }
12171 if (((bitField2_ & 0x00000040) != 0)) {
12172 size += com.google.protobuf.CodedOutputStream
12173 .computeBoolSize(216, detectTableWithCost_);
12174 }
12175 if (((bitField2_ & 0x00000080) != 0)) {
12176 size += com.google.protobuf.CodedOutputStream
12177 .computeInt32Size(217, tableCompressionLevel_);
12178 }
12179 {
12180 int dataSize = 0;
12181 for (int i = 0; i < extraSubsolvers_.size(); i++) {
12182 dataSize += computeStringSizeNoTag(extraSubsolvers_.getRaw(i));
12183 }
12184 size += dataSize;
12185 size += 2 * getExtraSubsolversList().size();
12186 }
12187 if (((bitField3_ & 0x20000000) != 0)) {
12188 size += com.google.protobuf.CodedOutputStream
12189 .computeBoolSize(220, exploitAllPrecedences_);
12190 }
12191 if (((bitField3_ & 0x00040000) != 0)) {
12192 size += com.google.protobuf.CodedOutputStream
12193 .computeDoubleSize(221, propagationLoopDetectionFactor_);
12194 }
12195 if (((bitField7_ & 0x10000000) != 0)) {
12196 size += com.google.protobuf.CodedOutputStream
12197 .computeBoolSize(222, onlySolveIp_);
12198 }
12199 if (((bitField2_ & 0x00004000) != 0)) {
12200 size += com.google.protobuf.CodedOutputStream
12201 .computeBoolSize(223, encodeComplexLinearConstraintWithInteger_);
12202 }
12203 if (((bitField6_ & 0x01000000) != 0)) {
12204 size += com.google.protobuf.CodedOutputStream
12205 .computeBoolSize(224, newLinearPropagation_);
12206 }
12207 if (((bitField7_ & 0x04000000) != 0)) {
12208 size += com.google.protobuf.CodedOutputStream
12209 .computeBoolSize(225, mipScaleLargeDomain_);
12210 }
12211 if (((bitField1_ & 0x10000000) != 0)) {
12212 size += com.google.protobuf.CodedOutputStream
12213 .computeDoubleSize(226, probingDeterministicTimeLimit_);
12214 }
12215 if (((bitField7_ & 0x00000400) != 0)) {
12216 size += com.google.protobuf.CodedOutputStream
12217 .computeInt32Size(227, rootLpIterations_);
12218 }
12219 if (((bitField4_ & 0x00100000) != 0)) {
12220 size += com.google.protobuf.CodedOutputStream
12221 .computeBoolSize(228, useObjectiveLbSearch_);
12222 }
12223 if (((bitField3_ & 0x00100000) != 0)) {
12224 size += com.google.protobuf.CodedOutputStream
12225 .computeInt32Size(229, maxSizeToCreatePrecedenceLiteralsInDisjunctive_);
12226 }
12227 if (((bitField3_ & 0x00200000) != 0)) {
12228 size += com.google.protobuf.CodedOutputStream
12229 .computeBoolSize(230, useStrongPropagationInDisjunctive_);
12230 }
12231 if (((bitField8_ & 0x00000008) != 0)) {
12232 size += com.google.protobuf.CodedOutputStream
12233 .computeDoubleSize(232, mipDropTolerance_);
12234 }
12235 if (((bitField2_ & 0x00200000) != 0)) {
12236 size += com.google.protobuf.CodedOutputStream
12237 .computeBoolSize(233, inferAllDiffs_);
12238 }
12239 if (((bitField2_ & 0x00400000) != 0)) {
12240 size += com.google.protobuf.CodedOutputStream
12241 .computeBoolSize(234, findBigLinearOverlap_);
12242 }
12243 if (((bitField5_ & 0x00000400) != 0)) {
12244 size += com.google.protobuf.CodedOutputStream
12245 .computeInt32Size(235, sharedTreeNumWorkers_);
12246 }
12247 if (((bitField5_ & 0x00000800) != 0)) {
12248 size += com.google.protobuf.CodedOutputStream
12249 .computeBoolSize(236, useSharedTreeSearch_);
12250 }
12251 if (((bitField5_ & 0x00010000) != 0)) {
12252 size += com.google.protobuf.CodedOutputStream
12253 .computeInt32Size(238, sharedTreeMaxNodesPerWorker_);
12254 }
12255 if (((bitField5_ & 0x00020000) != 0)) {
12256 size += com.google.protobuf.CodedOutputStream
12257 .computeEnumSize(239, sharedTreeSplitStrategy_);
12258 }
12259 if (((bitField4_ & 0x40000000) != 0)) {
12260 size += com.google.protobuf.CodedOutputStream
12261 .computeBoolSize(240, useLsOnly_);
12262 }
12263 if (((bitField4_ & 0x80000000) != 0)) {
12264 size += com.google.protobuf.CodedOutputStream
12265 .computeDoubleSize(242, feasibilityJumpDecay_);
12266 }
12267 if (((bitField5_ & 0x00000080) != 0)) {
12268 size += com.google.protobuf.CodedOutputStream
12269 .computeInt32Size(244, numViolationLs_);
12270 }
12271 if (((bitField5_ & 0x00000008) != 0)) {
12272 size += com.google.protobuf.CodedOutputStream
12273 .computeDoubleSize(247, feasibilityJumpVarRandomizationProbability_);
12274 }
12275 if (((bitField5_ & 0x00000010) != 0)) {
12276 size += com.google.protobuf.CodedOutputStream
12277 .computeDoubleSize(248, feasibilityJumpVarPerburbationRangeRatio_);
12278 }
12279 if (((bitField5_ & 0x00000100) != 0)) {
12280 size += com.google.protobuf.CodedOutputStream
12281 .computeInt32Size(249, violationLsPerturbationPeriod_);
12282 }
12283 if (((bitField5_ & 0x00000020) != 0)) {
12284 size += com.google.protobuf.CodedOutputStream
12285 .computeBoolSize(250, feasibilityJumpEnableRestarts_);
12286 }
12287 if (((bitField5_ & 0x08000000) != 0)) {
12288 size += com.google.protobuf.CodedOutputStream
12289 .computeBoolSize(252, stopAfterRootPropagation_);
12290 }
12291 if (((bitField4_ & 0x00200000) != 0)) {
12292 size += com.google.protobuf.CodedOutputStream
12293 .computeBoolSize(253, useObjectiveShavingSearch_);
12294 }
12295 if (((bitField6_ & 0x00000008) != 0)) {
12296 size += com.google.protobuf.CodedOutputStream
12297 .computeBoolSize(255, useLbRelaxLns_);
12298 }
12299 if (((bitField6_ & 0x02000000) != 0)) {
12300 size += com.google.protobuf.CodedOutputStream
12301 .computeInt32Size(256, linearSplitSize_);
12302 }
12303 if (((bitField5_ & 0x00000001) != 0)) {
12304 size += com.google.protobuf.CodedOutputStream
12305 .computeInt32Size(257, feasibilityJumpLinearizationLevel_);
12306 }
12307 if (((bitField5_ & 0x00000002) != 0)) {
12308 size += com.google.protobuf.CodedOutputStream
12309 .computeInt32Size(258, feasibilityJumpRestartFactor_);
12310 }
12311 if (((bitField5_ & 0x00000200) != 0)) {
12312 size += com.google.protobuf.CodedOutputStream
12313 .computeDoubleSize(259, violationLsCompoundMoveProbability_);
12314 }
12315 if (((bitField3_ & 0x08000000) != 0)) {
12316 size += com.google.protobuf.CodedOutputStream
12317 .computeInt32Size(260, maxNumIntervalsForTimetableEdgeFinding_);
12318 }
12319 if (((bitField8_ & 0x00000010) != 0)) {
12320 size += com.google.protobuf.CodedOutputStream
12321 .computeInt32Size(261, mipPresolveLevel_);
12322 }
12323 if (((bitField6_ & 0x00000200) != 0)) {
12324 size += com.google.protobuf.CodedOutputStream
12325 .computeBoolSize(262, pushAllTasksTowardStart_);
12326 }
12327 if (((bitField3_ & 0x00400000) != 0)) {
12328 size += com.google.protobuf.CodedOutputStream
12329 .computeBoolSize(263, useDynamicPrecedenceInDisjunctive_);
12330 }
12331 if (((bitField5_ & 0x00000040) != 0)) {
12332 size += com.google.protobuf.CodedOutputStream
12333 .computeInt32Size(264, feasibilityJumpMaxExpandedConstraintSize_);
12334 }
12335 if (((bitField4_ & 0x20000000) != 0)) {
12336 size += com.google.protobuf.CodedOutputStream
12337 .computeBoolSize(265, useFeasibilityJump_);
12338 }
12339 if (((bitField6_ & 0x00020000) != 0)) {
12340 size += com.google.protobuf.CodedOutputStream
12341 .computeDoubleSize(266, lpPrimalTolerance_);
12342 }
12343 if (((bitField6_ & 0x00040000) != 0)) {
12344 size += com.google.protobuf.CodedOutputStream
12345 .computeDoubleSize(267, lpDualTolerance_);
12346 }
12347 if (((bitField3_ & 0x00800000) != 0)) {
12348 size += com.google.protobuf.CodedOutputStream
12349 .computeBoolSize(268, useDynamicPrecedenceInCumulative_);
12350 }
12351 if (((bitField4_ & 0x00008000) != 0)) {
12352 size += com.google.protobuf.CodedOutputStream
12353 .computeBoolSize(269, useExtendedProbing_);
12354 }
12355 if (((bitField6_ & 0x00002000) != 0)) {
12356 size += com.google.protobuf.CodedOutputStream
12357 .computeInt32Size(270, atMostOneMaxExpansionSize_);
12358 }
12359 if (((bitField4_ & 0x00000002) != 0)) {
12360 size += com.google.protobuf.CodedOutputStream
12361 .computeBoolSize(271, useAreaEnergeticReasoningInNoOverlap2D_);
12362 }
12363 if (((bitField4_ & 0x00010000) != 0)) {
12364 size += com.google.protobuf.CodedOutputStream
12365 .computeInt32Size(272, probingNumCombinationsLimit_);
12366 }
12367 if (((bitField2_ & 0x01000000) != 0)) {
12368 size += com.google.protobuf.CodedOutputStream
12369 .computeDoubleSize(273, inprocessingDtimeRatio_);
12370 }
12371 if (((bitField2_ & 0x02000000) != 0)) {
12372 size += com.google.protobuf.CodedOutputStream
12373 .computeDoubleSize(274, inprocessingProbingDtime_);
12374 }
12375 if (((bitField2_ & 0x04000000) != 0)) {
12376 size += com.google.protobuf.CodedOutputStream
12377 .computeDoubleSize(275, inprocessingMinimizationDtime_);
12378 }
12379 if (((bitField4_ & 0x00000008) != 0)) {
12380 size += com.google.protobuf.CodedOutputStream
12381 .computeInt32Size(276, maxPairsPairwiseReasoningInNoOverlap2D_);
12382 }
12383 if (((bitField7_ & 0x00800000) != 0)) {
12384 size += com.google.protobuf.CodedOutputStream
12385 .computeBoolSize(277, detectLinearizedProduct_);
12386 }
12387 if (((bitField8_ & 0x00000004) != 0)) {
12388 size += com.google.protobuf.CodedOutputStream
12389 .computeBoolSize(278, mipTreatHighMagnitudeBoundsAsInfinity_);
12390 }
12391 if (((bitField7_ & 0x00000020) != 0)) {
12392 size += com.google.protobuf.CodedOutputStream
12393 .computeBoolSize(279, addRltCuts_);
12394 }
12395 if (((bitField2_ & 0x00001000) != 0)) {
12396 size += com.google.protobuf.CodedOutputStream
12397 .computeInt32Size(280, maxLinMaxSizeForExpansion_);
12398 }
12399 if (((bitField5_ & 0x00008000) != 0)) {
12400 size += com.google.protobuf.CodedOutputStream
12401 .computeDoubleSize(281, sharedTreeOpenLeavesPerWorker_);
12402 }
12403 if (((bitField5_ & 0x00001000) != 0)) {
12404 size += com.google.protobuf.CodedOutputStream
12405 .computeInt32Size(282, sharedTreeWorkerMinRestartsPerSubtree_);
12406 }
12407 if (((bitField5_ & 0x40000000) != 0)) {
12408 size += com.google.protobuf.CodedOutputStream
12409 .computeBoolSize(283, useLns_);
12410 }
12411 if (((bitField4_ & 0x04000000) != 0)) {
12412 size += com.google.protobuf.CodedOutputStream
12413 .computeBoolSize(284, saveLpBasisInLbTreeSearch_);
12414 }
12415 if (((bitField3_ & 0x00000020) != 0)) {
12416 size += com.google.protobuf.CodedOutputStream
12417 .computeBoolSize(285, shareGlueClauses_);
12418 }
12419 if (((bitField3_ & 0x02000000) != 0)) {
12420 size += com.google.protobuf.CodedOutputStream
12421 .computeBoolSize(286, useConservativeScaleOverloadChecker_);
12422 }
12423 if (((bitField2_ & 0x00000800) != 0)) {
12424 size += com.google.protobuf.CodedOutputStream
12425 .computeBoolSize(287, encodeCumulativeAsReservoir_);
12426 }
12427 if (((bitField2_ & 0x00000400) != 0)) {
12428 size += com.google.protobuf.CodedOutputStream
12429 .computeBoolSize(288, expandReservoirUsingCircuit_);
12430 }
12431 if (((bitField4_ & 0x00400000) != 0)) {
12432 size += com.google.protobuf.CodedOutputStream
12433 .computeBoolSize(289, useVariablesShavingSearch_);
12434 }
12435 if (((bitField4_ & 0x00080000) != 0)) {
12436 size += com.google.protobuf.CodedOutputStream
12437 .computeInt64Size(290, shavingSearchThreshold_);
12438 }
12439 if (((bitField1_ & 0x00000200) != 0)) {
12440 size += com.google.protobuf.CodedOutputStream
12441 .computeInt32Size(291, maxNumDeterministicBatches_);
12442 }
12443 if (((bitField5_ & 0x00000004) != 0)) {
12444 size += com.google.protobuf.CodedOutputStream
12445 .computeDoubleSize(292, feasibilityJumpBatchDtime_);
12446 }
12447 {
12448 int dataSize = 0;
12449 for (int i = 0; i < filterSubsolvers_.size(); i++) {
12450 dataSize += computeStringSizeNoTag(filterSubsolvers_.getRaw(i));
12451 }
12452 size += dataSize;
12453 size += 2 * getFilterSubsolversList().size();
12454 }
12455 if (((bitField2_ & 0x80000000) != 0)) {
12456 size += com.google.protobuf.CodedOutputStream
12457 .computeInt32Size(294, numFullSubsolvers_);
12458 }
12459 if (((bitField5_ & 0x00002000) != 0)) {
12460 size += com.google.protobuf.CodedOutputStream
12461 .computeBoolSize(295, sharedTreeWorkerEnableTrailSharing_);
12462 }
12463 if (((bitField6_ & 0x00000010) != 0)) {
12464 size += com.google.protobuf.CodedOutputStream
12465 .computeInt32Size(296, lbRelaxNumWorkersThreshold_);
12466 }
12467 if (((bitField2_ & 0x08000000) != 0)) {
12468 size += com.google.protobuf.CodedOutputStream
12469 .computeBoolSize(297, inprocessingMinimizationUseConflictAnalysis_);
12470 }
12471 if (((bitField2_ & 0x10000000) != 0)) {
12472 size += com.google.protobuf.CodedOutputStream
12473 .computeBoolSize(298, inprocessingMinimizationUseAllOrderings_);
12474 }
12475 if (((bitField4_ & 0x00000004) != 0)) {
12476 size += com.google.protobuf.CodedOutputStream
12477 .computeBoolSize(299, useTryEdgeReasoningInNoOverlap2D_);
12478 }
12479 if (((bitField3_ & 0x00000040) != 0)) {
12480 size += com.google.protobuf.CodedOutputStream
12481 .computeBoolSize(300, minimizeSharedClauses_);
12482 }
12483 if (((bitField6_ & 0x00200000) != 0)) {
12484 size += com.google.protobuf.CodedOutputStream
12485 .computeBoolSize(301, useSymmetryInLp_);
12486 }
12487 if (((bitField6_ & 0x00800000) != 0)) {
12488 size += com.google.protobuf.CodedOutputStream
12489 .computeDoubleSize(302, symmetryDetectionDeterministicTimeLimit_);
12490 }
12491 if (((bitField6_ & 0x00400000) != 0)) {
12492 size += com.google.protobuf.CodedOutputStream
12493 .computeBoolSize(303, keepSymmetryInPresolve_);
12494 }
12495 if (((bitField5_ & 0x00004000) != 0)) {
12496 size += com.google.protobuf.CodedOutputStream
12497 .computeBoolSize(304, sharedTreeWorkerEnablePhaseSharing_);
12498 }
12499 if (((bitField5_ & 0x00040000) != 0)) {
12500 size += com.google.protobuf.CodedOutputStream
12501 .computeInt32Size(305, sharedTreeBalanceTolerance_);
12502 }
12503 if (((bitField3_ & 0x00000400) != 0)) {
12504 size += com.google.protobuf.CodedOutputStream
12505 .computeBoolSize(306, debugCrashIfPresolveBreaksHint_);
12506 }
12507 if (((bitField5_ & 0x10000000) != 0)) {
12508 size += com.google.protobuf.CodedOutputStream
12509 .computeDoubleSize(307, lnsInitialDifficulty_);
12510 }
12511 if (((bitField5_ & 0x20000000) != 0)) {
12512 size += com.google.protobuf.CodedOutputStream
12513 .computeDoubleSize(308, lnsInitialDeterministicLimit_);
12514 }
12515 if (((bitField0_ & 0x00000020) != 0)) {
12516 size += com.google.protobuf.CodedOutputStream
12517 .computeBoolSize(309, polarityExploitLsHints_);
12518 }
12519 if (((bitField2_ & 0x00000020) != 0)) {
12520 size += com.google.protobuf.CodedOutputStream
12521 .computeBoolSize(310, removeFixedVariablesEarly_);
12522 }
12523 if (((bitField4_ & 0x00000040) != 0)) {
12524 size += com.google.protobuf.CodedOutputStream
12525 .computeBoolSize(311, useAllDifferentForCircuit_);
12526 }
12527 if (((bitField4_ & 0x00000080) != 0)) {
12528 size += com.google.protobuf.CodedOutputStream
12529 .computeInt32Size(312, routingCutSubsetSizeForBinaryRelationBound_);
12530 }
12531 if (((bitField4_ & 0x00000100) != 0)) {
12532 size += com.google.protobuf.CodedOutputStream
12533 .computeInt32Size(313, routingCutSubsetSizeForTightBinaryRelationBound_);
12534 }
12535 if (((bitField4_ & 0x00000200) != 0)) {
12536 size += com.google.protobuf.CodedOutputStream
12537 .computeDoubleSize(314, routingCutDpEffort_);
12538 }
12539 if (((bitField4_ & 0x00000010) != 0)) {
12540 size += com.google.protobuf.CodedOutputStream
12541 .computeInt32Size(315, maximumRegionsToSplitInDisconnectedNoOverlap2D_);
12542 }
12543 size += getUnknownFields().getSerializedSize();
12544 memoizedSize = size;
12545 return size;
12546 }
12547
12548 @java.lang.Override
12549 public boolean equals(final java.lang.Object obj) {
12550 if (obj == this) {
12551 return true;
12552 }
12553 if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
12554 return super.equals(obj);
12555 }
12556 com.google.ortools.sat.SatParameters other = (com.google.ortools.sat.SatParameters) obj;
12557
12558 if (hasName() != other.hasName()) return false;
12559 if (hasName()) {
12560 if (!getName()
12561 .equals(other.getName())) return false;
12562 }
12563 if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
12565 if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
12566 }
12567 if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
12568 if (hasInitialPolarity()) {
12569 if (initialPolarity_ != other.initialPolarity_) return false;
12570 }
12571 if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
12572 if (hasUsePhaseSaving()) {
12573 if (getUsePhaseSaving()
12574 != other.getUsePhaseSaving()) return false;
12575 }
12576 if (hasPolarityRephaseIncrement() != other.hasPolarityRephaseIncrement()) return false;
12579 != other.getPolarityRephaseIncrement()) return false;
12580 }
12581 if (hasPolarityExploitLsHints() != other.hasPolarityExploitLsHints()) return false;
12584 != other.getPolarityExploitLsHints()) return false;
12585 }
12586 if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
12587 if (hasRandomPolarityRatio()) {
12588 if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
12589 != java.lang.Double.doubleToLongBits(
12590 other.getRandomPolarityRatio())) return false;
12591 }
12592 if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
12593 if (hasRandomBranchesRatio()) {
12594 if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
12595 != java.lang.Double.doubleToLongBits(
12596 other.getRandomBranchesRatio())) return false;
12597 }
12598 if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
12599 if (hasUseErwaHeuristic()) {
12601 != other.getUseErwaHeuristic()) return false;
12602 }
12603 if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
12605 if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
12606 != java.lang.Double.doubleToLongBits(
12607 other.getInitialVariablesActivity())) return false;
12608 }
12612 != other.getAlsoBumpVariablesInConflictReasons()) return false;
12613 }
12614 if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
12616 if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
12617 }
12620 if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
12621 }
12625 != other.getSubsumptionDuringConflictAnalysis()) return false;
12626 }
12627 if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
12628 if (hasClauseCleanupPeriod()) {
12630 != other.getClauseCleanupPeriod()) return false;
12631 }
12632 if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
12633 if (hasClauseCleanupTarget()) {
12635 != other.getClauseCleanupTarget()) return false;
12636 }
12637 if (hasClauseCleanupRatio() != other.hasClauseCleanupRatio()) return false;
12638 if (hasClauseCleanupRatio()) {
12639 if (java.lang.Double.doubleToLongBits(getClauseCleanupRatio())
12640 != java.lang.Double.doubleToLongBits(
12641 other.getClauseCleanupRatio())) return false;
12642 }
12643 if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
12645 if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
12646 }
12647 if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
12650 != other.getClauseCleanupLbdBound()) return false;
12651 }
12652 if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
12654 if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
12655 }
12656 if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
12657 if (hasPbCleanupIncrement()) {
12659 != other.getPbCleanupIncrement()) return false;
12660 }
12661 if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
12662 if (hasPbCleanupRatio()) {
12663 if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
12664 != java.lang.Double.doubleToLongBits(
12665 other.getPbCleanupRatio())) return false;
12666 }
12667 if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
12669 if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
12670 != java.lang.Double.doubleToLongBits(
12671 other.getVariableActivityDecay())) return false;
12672 }
12673 if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
12675 if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
12676 != java.lang.Double.doubleToLongBits(
12677 other.getMaxVariableActivityValue())) return false;
12678 }
12679 if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
12680 if (hasGlucoseMaxDecay()) {
12681 if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
12682 != java.lang.Double.doubleToLongBits(
12683 other.getGlucoseMaxDecay())) return false;
12684 }
12685 if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
12687 if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
12688 != java.lang.Double.doubleToLongBits(
12689 other.getGlucoseDecayIncrement())) return false;
12690 }
12694 != other.getGlucoseDecayIncrementPeriod()) return false;
12695 }
12696 if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
12697 if (hasClauseActivityDecay()) {
12698 if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
12699 != java.lang.Double.doubleToLongBits(
12700 other.getClauseActivityDecay())) return false;
12701 }
12702 if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
12704 if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
12705 != java.lang.Double.doubleToLongBits(
12706 other.getMaxClauseActivityValue())) return false;
12707 }
12708 if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
12709 if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
12712 .equals(other.getDefaultRestartAlgorithms())) return false;
12713 }
12714 if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
12715 if (hasRestartPeriod()) {
12716 if (getRestartPeriod()
12717 != other.getRestartPeriod()) return false;
12718 }
12719 if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
12722 != other.getRestartRunningWindowSize()) return false;
12723 }
12724 if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
12726 if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
12727 != java.lang.Double.doubleToLongBits(
12728 other.getRestartDlAverageRatio())) return false;
12729 }
12730 if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
12732 if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
12733 != java.lang.Double.doubleToLongBits(
12734 other.getRestartLbdAverageRatio())) return false;
12735 }
12736 if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
12737 if (hasUseBlockingRestart()) {
12739 != other.getUseBlockingRestart()) return false;
12740 }
12741 if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
12744 != other.getBlockingRestartWindowSize()) return false;
12745 }
12746 if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
12748 if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
12749 != java.lang.Double.doubleToLongBits(
12750 other.getBlockingRestartMultiplier())) return false;
12751 }
12755 != other.getNumConflictsBeforeStrategyChanges()) return false;
12756 }
12759 if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
12760 != java.lang.Double.doubleToLongBits(
12761 other.getStrategyChangeIncreaseRatio())) return false;
12762 }
12763 if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
12764 if (hasMaxTimeInSeconds()) {
12765 if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
12766 != java.lang.Double.doubleToLongBits(
12767 other.getMaxTimeInSeconds())) return false;
12768 }
12769 if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
12771 if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
12772 != java.lang.Double.doubleToLongBits(
12773 other.getMaxDeterministicTime())) return false;
12774 }
12775 if (hasMaxNumDeterministicBatches() != other.hasMaxNumDeterministicBatches()) return false;
12778 != other.getMaxNumDeterministicBatches()) return false;
12779 }
12780 if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
12783 != other.getMaxNumberOfConflicts()) return false;
12784 }
12785 if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
12786 if (hasMaxMemoryInMb()) {
12787 if (getMaxMemoryInMb()
12788 != other.getMaxMemoryInMb()) return false;
12789 }
12790 if (hasAbsoluteGapLimit() != other.hasAbsoluteGapLimit()) return false;
12791 if (hasAbsoluteGapLimit()) {
12792 if (java.lang.Double.doubleToLongBits(getAbsoluteGapLimit())
12793 != java.lang.Double.doubleToLongBits(
12794 other.getAbsoluteGapLimit())) return false;
12795 }
12796 if (hasRelativeGapLimit() != other.hasRelativeGapLimit()) return false;
12797 if (hasRelativeGapLimit()) {
12798 if (java.lang.Double.doubleToLongBits(getRelativeGapLimit())
12799 != java.lang.Double.doubleToLongBits(
12800 other.getRelativeGapLimit())) return false;
12801 }
12802 if (hasRandomSeed() != other.hasRandomSeed()) return false;
12803 if (hasRandomSeed()) {
12804 if (getRandomSeed()
12805 != other.getRandomSeed()) return false;
12806 }
12807 if (hasPermuteVariableRandomly() != other.hasPermuteVariableRandomly()) return false;
12810 != other.getPermuteVariableRandomly()) return false;
12811 }
12815 != other.getPermutePresolveConstraintOrder()) return false;
12816 }
12817 if (hasUseAbslRandom() != other.hasUseAbslRandom()) return false;
12818 if (hasUseAbslRandom()) {
12819 if (getUseAbslRandom()
12820 != other.getUseAbslRandom()) return false;
12821 }
12822 if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
12823 if (hasLogSearchProgress()) {
12825 != other.getLogSearchProgress()) return false;
12826 }
12827 if (hasLogSubsolverStatistics() != other.hasLogSubsolverStatistics()) return false;
12830 != other.getLogSubsolverStatistics()) return false;
12831 }
12832 if (hasLogPrefix() != other.hasLogPrefix()) return false;
12833 if (hasLogPrefix()) {
12834 if (!getLogPrefix()
12835 .equals(other.getLogPrefix())) return false;
12836 }
12837 if (hasLogToStdout() != other.hasLogToStdout()) return false;
12838 if (hasLogToStdout()) {
12839 if (getLogToStdout()
12840 != other.getLogToStdout()) return false;
12841 }
12842 if (hasLogToResponse() != other.hasLogToResponse()) return false;
12843 if (hasLogToResponse()) {
12844 if (getLogToResponse()
12845 != other.getLogToResponse()) return false;
12846 }
12847 if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
12848 if (hasUsePbResolution()) {
12849 if (getUsePbResolution()
12850 != other.getUsePbResolution()) return false;
12851 }
12855 != other.getMinimizeReductionDuringPbResolution()) return false;
12856 }
12857 if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
12860 != other.getCountAssumptionLevelsInLbd()) return false;
12861 }
12862 if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
12865 != other.getPresolveBveThreshold()) return false;
12866 }
12867 if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
12870 != other.getPresolveBveClauseWeight()) return false;
12871 }
12874 if (java.lang.Double.doubleToLongBits(getProbingDeterministicTimeLimit())
12875 != java.lang.Double.doubleToLongBits(
12876 other.getProbingDeterministicTimeLimit())) return false;
12877 }
12880 if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
12881 != java.lang.Double.doubleToLongBits(
12882 other.getPresolveProbingDeterministicTimeLimit())) return false;
12883 }
12884 if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
12887 != other.getPresolveBlockedClause()) return false;
12888 }
12889 if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
12890 if (hasPresolveUseBva()) {
12891 if (getPresolveUseBva()
12892 != other.getPresolveUseBva()) return false;
12893 }
12894 if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
12897 != other.getPresolveBvaThreshold()) return false;
12898 }
12899 if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
12902 != other.getMaxPresolveIterations()) return false;
12903 }
12904 if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
12905 if (hasCpModelPresolve()) {
12906 if (getCpModelPresolve()
12907 != other.getCpModelPresolve()) return false;
12908 }
12909 if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
12910 if (hasCpModelProbingLevel()) {
12912 != other.getCpModelProbingLevel()) return false;
12913 }
12914 if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
12917 != other.getCpModelUseSatPresolve()) return false;
12918 }
12919 if (hasRemoveFixedVariablesEarly() != other.hasRemoveFixedVariablesEarly()) return false;
12922 != other.getRemoveFixedVariablesEarly()) return false;
12923 }
12924 if (hasDetectTableWithCost() != other.hasDetectTableWithCost()) return false;
12925 if (hasDetectTableWithCost()) {
12927 != other.getDetectTableWithCost()) return false;
12928 }
12929 if (hasTableCompressionLevel() != other.hasTableCompressionLevel()) return false;
12932 != other.getTableCompressionLevel()) return false;
12933 }
12934 if (hasExpandAlldiffConstraints() != other.hasExpandAlldiffConstraints()) return false;
12937 != other.getExpandAlldiffConstraints()) return false;
12938 }
12939 if (hasExpandReservoirConstraints() != other.hasExpandReservoirConstraints()) return false;
12942 != other.getExpandReservoirConstraints()) return false;
12943 }
12947 != other.getExpandReservoirUsingCircuit()) return false;
12948 }
12952 != other.getEncodeCumulativeAsReservoir()) return false;
12953 }
12954 if (hasMaxLinMaxSizeForExpansion() != other.hasMaxLinMaxSizeForExpansion()) return false;
12957 != other.getMaxLinMaxSizeForExpansion()) return false;
12958 }
12959 if (hasDisableConstraintExpansion() != other.hasDisableConstraintExpansion()) return false;
12962 != other.getDisableConstraintExpansion()) return false;
12963 }
12967 != other.getEncodeComplexLinearConstraintWithInteger()) return false;
12968 }
12969 if (hasMergeNoOverlapWorkLimit() != other.hasMergeNoOverlapWorkLimit()) return false;
12971 if (java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit())
12972 != java.lang.Double.doubleToLongBits(
12973 other.getMergeNoOverlapWorkLimit())) return false;
12974 }
12975 if (hasMergeAtMostOneWorkLimit() != other.hasMergeAtMostOneWorkLimit()) return false;
12977 if (java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit())
12978 != java.lang.Double.doubleToLongBits(
12979 other.getMergeAtMostOneWorkLimit())) return false;
12980 }
12981 if (hasPresolveSubstitutionLevel() != other.hasPresolveSubstitutionLevel()) return false;
12984 != other.getPresolveSubstitutionLevel()) return false;
12985 }
12989 != other.getPresolveExtractIntegerEnforcement()) return false;
12990 }
12991 if (hasPresolveInclusionWorkLimit() != other.hasPresolveInclusionWorkLimit()) return false;
12994 != other.getPresolveInclusionWorkLimit()) return false;
12995 }
12996 if (hasIgnoreNames() != other.hasIgnoreNames()) return false;
12997 if (hasIgnoreNames()) {
12998 if (getIgnoreNames()
12999 != other.getIgnoreNames()) return false;
13000 }
13001 if (hasInferAllDiffs() != other.hasInferAllDiffs()) return false;
13002 if (hasInferAllDiffs()) {
13003 if (getInferAllDiffs()
13004 != other.getInferAllDiffs()) return false;
13005 }
13006 if (hasFindBigLinearOverlap() != other.hasFindBigLinearOverlap()) return false;
13009 != other.getFindBigLinearOverlap()) return false;
13010 }
13011 if (hasUseSatInprocessing() != other.hasUseSatInprocessing()) return false;
13012 if (hasUseSatInprocessing()) {
13014 != other.getUseSatInprocessing()) return false;
13015 }
13016 if (hasInprocessingDtimeRatio() != other.hasInprocessingDtimeRatio()) return false;
13018 if (java.lang.Double.doubleToLongBits(getInprocessingDtimeRatio())
13019 != java.lang.Double.doubleToLongBits(
13020 other.getInprocessingDtimeRatio())) return false;
13021 }
13022 if (hasInprocessingProbingDtime() != other.hasInprocessingProbingDtime()) return false;
13024 if (java.lang.Double.doubleToLongBits(getInprocessingProbingDtime())
13025 != java.lang.Double.doubleToLongBits(
13026 other.getInprocessingProbingDtime())) return false;
13027 }
13030 if (java.lang.Double.doubleToLongBits(getInprocessingMinimizationDtime())
13031 != java.lang.Double.doubleToLongBits(
13032 other.getInprocessingMinimizationDtime())) return false;
13033 }
13037 != other.getInprocessingMinimizationUseConflictAnalysis()) return false;
13038 }
13042 != other.getInprocessingMinimizationUseAllOrderings()) return false;
13043 }
13044 if (hasNumWorkers() != other.hasNumWorkers()) return false;
13045 if (hasNumWorkers()) {
13046 if (getNumWorkers()
13047 != other.getNumWorkers()) return false;
13048 }
13049 if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
13050 if (hasNumSearchWorkers()) {
13052 != other.getNumSearchWorkers()) return false;
13053 }
13054 if (hasNumFullSubsolvers() != other.hasNumFullSubsolvers()) return false;
13055 if (hasNumFullSubsolvers()) {
13057 != other.getNumFullSubsolvers()) return false;
13058 }
13059 if (!getSubsolversList()
13060 .equals(other.getSubsolversList())) return false;
13062 .equals(other.getExtraSubsolversList())) return false;
13064 .equals(other.getIgnoreSubsolversList())) return false;
13066 .equals(other.getFilterSubsolversList())) return false;
13068 .equals(other.getSubsolverParamsList())) return false;
13069 if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
13070 if (hasInterleaveSearch()) {
13072 != other.getInterleaveSearch()) return false;
13073 }
13074 if (hasInterleaveBatchSize() != other.hasInterleaveBatchSize()) return false;
13075 if (hasInterleaveBatchSize()) {
13077 != other.getInterleaveBatchSize()) return false;
13078 }
13079 if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
13082 != other.getShareObjectiveBounds()) return false;
13083 }
13084 if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
13087 != other.getShareLevelZeroBounds()) return false;
13088 }
13089 if (hasShareBinaryClauses() != other.hasShareBinaryClauses()) return false;
13090 if (hasShareBinaryClauses()) {
13092 != other.getShareBinaryClauses()) return false;
13093 }
13094 if (hasShareGlueClauses() != other.hasShareGlueClauses()) return false;
13095 if (hasShareGlueClauses()) {
13097 != other.getShareGlueClauses()) return false;
13098 }
13099 if (hasMinimizeSharedClauses() != other.hasMinimizeSharedClauses()) return false;
13102 != other.getMinimizeSharedClauses()) return false;
13103 }
13107 != other.getDebugPostsolveWithFullSolver()) return false;
13108 }
13112 != other.getDebugMaxNumPresolveOperations()) return false;
13113 }
13114 if (hasDebugCrashOnBadHint() != other.hasDebugCrashOnBadHint()) return false;
13115 if (hasDebugCrashOnBadHint()) {
13117 != other.getDebugCrashOnBadHint()) return false;
13118 }
13122 != other.getDebugCrashIfPresolveBreaksHint()) return false;
13123 }
13124 if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
13127 != other.getUseOptimizationHints()) return false;
13128 }
13129 if (hasCoreMinimizationLevel() != other.hasCoreMinimizationLevel()) return false;
13132 != other.getCoreMinimizationLevel()) return false;
13133 }
13134 if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
13135 if (hasFindMultipleCores()) {
13137 != other.getFindMultipleCores()) return false;
13138 }
13139 if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
13140 if (hasCoverOptimization()) {
13142 != other.getCoverOptimization()) return false;
13143 }
13144 if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
13146 if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
13147 }
13151 != other.getMaxSatReverseAssumptionOrder()) return false;
13152 }
13153 if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
13155 if (maxSatStratification_ != other.maxSatStratification_) return false;
13156 }
13159 if (java.lang.Double.doubleToLongBits(getPropagationLoopDetectionFactor())
13160 != java.lang.Double.doubleToLongBits(
13161 other.getPropagationLoopDetectionFactor())) return false;
13162 }
13166 != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
13167 }
13172 }
13176 != other.getUseStrongPropagationInDisjunctive()) return false;
13177 }
13181 != other.getUseDynamicPrecedenceInDisjunctive()) return false;
13182 }
13186 != other.getUseDynamicPrecedenceInCumulative()) return false;
13187 }
13191 != other.getUseOverloadCheckerInCumulative()) return false;
13192 }
13196 != other.getUseConservativeScaleOverloadChecker()) return false;
13197 }
13201 != other.getUseTimetableEdgeFindingInCumulative()) return false;
13202 }
13206 != other.getMaxNumIntervalsForTimetableEdgeFinding()) return false;
13207 }
13211 != other.getUseHardPrecedencesInCumulative()) return false;
13212 }
13213 if (hasExploitAllPrecedences() != other.hasExploitAllPrecedences()) return false;
13216 != other.getExploitAllPrecedences()) return false;
13217 }
13221 != other.getUseDisjunctiveConstraintInCumulative()) return false;
13222 }
13226 != other.getUseTimetablingInNoOverlap2D()) return false;
13227 }
13231 != other.getUseEnergeticReasoningInNoOverlap2D()) return false;
13232 }
13236 != other.getUseAreaEnergeticReasoningInNoOverlap2D()) return false;
13237 }
13241 != other.getUseTryEdgeReasoningInNoOverlap2D()) return false;
13242 }
13246 != other.getMaxPairsPairwiseReasoningInNoOverlap2D()) return false;
13247 }
13252 }
13256 != other.getUseDualSchedulingHeuristics()) return false;
13257 }
13258 if (hasUseAllDifferentForCircuit() != other.hasUseAllDifferentForCircuit()) return false;
13261 != other.getUseAllDifferentForCircuit()) return false;
13262 }
13266 != other.getRoutingCutSubsetSizeForBinaryRelationBound()) return false;
13267 }
13272 }
13273 if (hasRoutingCutDpEffort() != other.hasRoutingCutDpEffort()) return false;
13274 if (hasRoutingCutDpEffort()) {
13275 if (java.lang.Double.doubleToLongBits(getRoutingCutDpEffort())
13276 != java.lang.Double.doubleToLongBits(
13277 other.getRoutingCutDpEffort())) return false;
13278 }
13279 if (hasSearchBranching() != other.hasSearchBranching()) return false;
13280 if (hasSearchBranching()) {
13281 if (searchBranching_ != other.searchBranching_) return false;
13282 }
13283 if (hasHintConflictLimit() != other.hasHintConflictLimit()) return false;
13284 if (hasHintConflictLimit()) {
13286 != other.getHintConflictLimit()) return false;
13287 }
13288 if (hasRepairHint() != other.hasRepairHint()) return false;
13289 if (hasRepairHint()) {
13290 if (getRepairHint()
13291 != other.getRepairHint()) return false;
13292 }
13296 != other.getFixVariablesToTheirHintedValue()) return false;
13297 }
13298 if (hasUseProbingSearch() != other.hasUseProbingSearch()) return false;
13299 if (hasUseProbingSearch()) {
13301 != other.getUseProbingSearch()) return false;
13302 }
13303 if (hasUseExtendedProbing() != other.hasUseExtendedProbing()) return false;
13304 if (hasUseExtendedProbing()) {
13306 != other.getUseExtendedProbing()) return false;
13307 }
13311 != other.getProbingNumCombinationsLimit()) return false;
13312 }
13313 if (hasUseShavingInProbingSearch() != other.hasUseShavingInProbingSearch()) return false;
13316 != other.getUseShavingInProbingSearch()) return false;
13317 }
13320 if (java.lang.Double.doubleToLongBits(getShavingSearchDeterministicTime())
13321 != java.lang.Double.doubleToLongBits(
13322 other.getShavingSearchDeterministicTime())) return false;
13323 }
13324 if (hasShavingSearchThreshold() != other.hasShavingSearchThreshold()) return false;
13327 != other.getShavingSearchThreshold()) return false;
13328 }
13329 if (hasUseObjectiveLbSearch() != other.hasUseObjectiveLbSearch()) return false;
13332 != other.getUseObjectiveLbSearch()) return false;
13333 }
13334 if (hasUseObjectiveShavingSearch() != other.hasUseObjectiveShavingSearch()) return false;
13337 != other.getUseObjectiveShavingSearch()) return false;
13338 }
13339 if (hasUseVariablesShavingSearch() != other.hasUseVariablesShavingSearch()) return false;
13342 != other.getUseVariablesShavingSearch()) return false;
13343 }
13347 != other.getPseudoCostReliabilityThreshold()) return false;
13348 }
13349 if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
13350 if (hasOptimizeWithCore()) {
13352 != other.getOptimizeWithCore()) return false;
13353 }
13354 if (hasOptimizeWithLbTreeSearch() != other.hasOptimizeWithLbTreeSearch()) return false;
13357 != other.getOptimizeWithLbTreeSearch()) return false;
13358 }
13359 if (hasSaveLpBasisInLbTreeSearch() != other.hasSaveLpBasisInLbTreeSearch()) return false;
13362 != other.getSaveLpBasisInLbTreeSearch()) return false;
13363 }
13364 if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
13367 != other.getBinarySearchNumConflicts()) return false;
13368 }
13369 if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
13370 if (hasOptimizeWithMaxHs()) {
13372 != other.getOptimizeWithMaxHs()) return false;
13373 }
13374 if (hasUseFeasibilityJump() != other.hasUseFeasibilityJump()) return false;
13375 if (hasUseFeasibilityJump()) {
13377 != other.getUseFeasibilityJump()) return false;
13378 }
13379 if (hasUseLsOnly() != other.hasUseLsOnly()) return false;
13380 if (hasUseLsOnly()) {
13381 if (getUseLsOnly()
13382 != other.getUseLsOnly()) return false;
13383 }
13384 if (hasFeasibilityJumpDecay() != other.hasFeasibilityJumpDecay()) return false;
13386 if (java.lang.Double.doubleToLongBits(getFeasibilityJumpDecay())
13387 != java.lang.Double.doubleToLongBits(
13388 other.getFeasibilityJumpDecay())) return false;
13389 }
13393 != other.getFeasibilityJumpLinearizationLevel()) return false;
13394 }
13398 != other.getFeasibilityJumpRestartFactor()) return false;
13399 }
13400 if (hasFeasibilityJumpBatchDtime() != other.hasFeasibilityJumpBatchDtime()) return false;
13402 if (java.lang.Double.doubleToLongBits(getFeasibilityJumpBatchDtime())
13403 != java.lang.Double.doubleToLongBits(
13404 other.getFeasibilityJumpBatchDtime())) return false;
13405 }
13408 if (java.lang.Double.doubleToLongBits(getFeasibilityJumpVarRandomizationProbability())
13409 != java.lang.Double.doubleToLongBits(
13410 other.getFeasibilityJumpVarRandomizationProbability())) return false;
13411 }
13414 if (java.lang.Double.doubleToLongBits(getFeasibilityJumpVarPerburbationRangeRatio())
13415 != java.lang.Double.doubleToLongBits(
13416 other.getFeasibilityJumpVarPerburbationRangeRatio())) return false;
13417 }
13421 != other.getFeasibilityJumpEnableRestarts()) return false;
13422 }
13426 != other.getFeasibilityJumpMaxExpandedConstraintSize()) return false;
13427 }
13428 if (hasNumViolationLs() != other.hasNumViolationLs()) return false;
13429 if (hasNumViolationLs()) {
13430 if (getNumViolationLs()
13431 != other.getNumViolationLs()) return false;
13432 }
13436 != other.getViolationLsPerturbationPeriod()) return false;
13437 }
13440 if (java.lang.Double.doubleToLongBits(getViolationLsCompoundMoveProbability())
13441 != java.lang.Double.doubleToLongBits(
13442 other.getViolationLsCompoundMoveProbability())) return false;
13443 }
13444 if (hasSharedTreeNumWorkers() != other.hasSharedTreeNumWorkers()) return false;
13447 != other.getSharedTreeNumWorkers()) return false;
13448 }
13449 if (hasUseSharedTreeSearch() != other.hasUseSharedTreeSearch()) return false;
13450 if (hasUseSharedTreeSearch()) {
13452 != other.getUseSharedTreeSearch()) return false;
13453 }
13457 != other.getSharedTreeWorkerMinRestartsPerSubtree()) return false;
13458 }
13462 != other.getSharedTreeWorkerEnableTrailSharing()) return false;
13463 }
13467 != other.getSharedTreeWorkerEnablePhaseSharing()) return false;
13468 }
13471 if (java.lang.Double.doubleToLongBits(getSharedTreeOpenLeavesPerWorker())
13472 != java.lang.Double.doubleToLongBits(
13473 other.getSharedTreeOpenLeavesPerWorker())) return false;
13474 }
13478 != other.getSharedTreeMaxNodesPerWorker()) return false;
13479 }
13480 if (hasSharedTreeSplitStrategy() != other.hasSharedTreeSplitStrategy()) return false;
13482 if (sharedTreeSplitStrategy_ != other.sharedTreeSplitStrategy_) return false;
13483 }
13484 if (hasSharedTreeBalanceTolerance() != other.hasSharedTreeBalanceTolerance()) return false;
13487 != other.getSharedTreeBalanceTolerance()) return false;
13488 }
13489 if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
13492 != other.getEnumerateAllSolutions()) return false;
13493 }
13497 != other.getKeepAllFeasibleSolutionsInPresolve()) return false;
13498 }
13502 != other.getFillTightenedDomainsInResponse()) return false;
13503 }
13507 != other.getFillAdditionalSolutionsInResponse()) return false;
13508 }
13509 if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
13512 != other.getInstantiateAllVariables()) return false;
13513 }
13517 != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
13518 }
13519 if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
13522 != other.getStopAfterFirstSolution()) return false;
13523 }
13524 if (hasStopAfterPresolve() != other.hasStopAfterPresolve()) return false;
13525 if (hasStopAfterPresolve()) {
13527 != other.getStopAfterPresolve()) return false;
13528 }
13529 if (hasStopAfterRootPropagation() != other.hasStopAfterRootPropagation()) return false;
13532 != other.getStopAfterRootPropagation()) return false;
13533 }
13534 if (hasLnsInitialDifficulty() != other.hasLnsInitialDifficulty()) return false;
13536 if (java.lang.Double.doubleToLongBits(getLnsInitialDifficulty())
13537 != java.lang.Double.doubleToLongBits(
13538 other.getLnsInitialDifficulty())) return false;
13539 }
13542 if (java.lang.Double.doubleToLongBits(getLnsInitialDeterministicLimit())
13543 != java.lang.Double.doubleToLongBits(
13544 other.getLnsInitialDeterministicLimit())) return false;
13545 }
13546 if (hasUseLns() != other.hasUseLns()) return false;
13547 if (hasUseLns()) {
13548 if (getUseLns()
13549 != other.getUseLns()) return false;
13550 }
13551 if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
13552 if (hasUseLnsOnly()) {
13553 if (getUseLnsOnly()
13554 != other.getUseLnsOnly()) return false;
13555 }
13556 if (hasSolutionPoolSize() != other.hasSolutionPoolSize()) return false;
13557 if (hasSolutionPoolSize()) {
13559 != other.getSolutionPoolSize()) return false;
13560 }
13561 if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
13562 if (hasUseRinsLns()) {
13563 if (getUseRinsLns()
13564 != other.getUseRinsLns()) return false;
13565 }
13566 if (hasUseFeasibilityPump() != other.hasUseFeasibilityPump()) return false;
13567 if (hasUseFeasibilityPump()) {
13569 != other.getUseFeasibilityPump()) return false;
13570 }
13571 if (hasUseLbRelaxLns() != other.hasUseLbRelaxLns()) return false;
13572 if (hasUseLbRelaxLns()) {
13573 if (getUseLbRelaxLns()
13574 != other.getUseLbRelaxLns()) return false;
13575 }
13576 if (hasLbRelaxNumWorkersThreshold() != other.hasLbRelaxNumWorkersThreshold()) return false;
13579 != other.getLbRelaxNumWorkersThreshold()) return false;
13580 }
13581 if (hasFpRounding() != other.hasFpRounding()) return false;
13582 if (hasFpRounding()) {
13583 if (fpRounding_ != other.fpRounding_) return false;
13584 }
13585 if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
13586 if (hasDiversifyLnsParams()) {
13588 != other.getDiversifyLnsParams()) return false;
13589 }
13590 if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
13591 if (hasRandomizeSearch()) {
13592 if (getRandomizeSearch()
13593 != other.getRandomizeSearch()) return false;
13594 }
13598 != other.getSearchRandomVariablePoolSize()) return false;
13599 }
13600 if (hasPushAllTasksTowardStart() != other.hasPushAllTasksTowardStart()) return false;
13603 != other.getPushAllTasksTowardStart()) return false;
13604 }
13605 if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
13608 != other.getUseOptionalVariables()) return false;
13609 }
13610 if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
13611 if (hasUseExactLpReason()) {
13613 != other.getUseExactLpReason()) return false;
13614 }
13615 if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
13618 != other.getUseCombinedNoOverlap()) return false;
13619 }
13620 if (hasAtMostOneMaxExpansionSize() != other.hasAtMostOneMaxExpansionSize()) return false;
13623 != other.getAtMostOneMaxExpansionSize()) return false;
13624 }
13625 if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
13626 if (hasCatchSigintSignal()) {
13628 != other.getCatchSigintSignal()) return false;
13629 }
13630 if (hasUseImpliedBounds() != other.hasUseImpliedBounds()) return false;
13631 if (hasUseImpliedBounds()) {
13633 != other.getUseImpliedBounds()) return false;
13634 }
13635 if (hasPolishLpSolution() != other.hasPolishLpSolution()) return false;
13636 if (hasPolishLpSolution()) {
13638 != other.getPolishLpSolution()) return false;
13639 }
13640 if (hasLpPrimalTolerance() != other.hasLpPrimalTolerance()) return false;
13641 if (hasLpPrimalTolerance()) {
13642 if (java.lang.Double.doubleToLongBits(getLpPrimalTolerance())
13643 != java.lang.Double.doubleToLongBits(
13644 other.getLpPrimalTolerance())) return false;
13645 }
13646 if (hasLpDualTolerance() != other.hasLpDualTolerance()) return false;
13647 if (hasLpDualTolerance()) {
13648 if (java.lang.Double.doubleToLongBits(getLpDualTolerance())
13649 != java.lang.Double.doubleToLongBits(
13650 other.getLpDualTolerance())) return false;
13651 }
13652 if (hasConvertIntervals() != other.hasConvertIntervals()) return false;
13653 if (hasConvertIntervals()) {
13655 != other.getConvertIntervals()) return false;
13656 }
13657 if (hasSymmetryLevel() != other.hasSymmetryLevel()) return false;
13658 if (hasSymmetryLevel()) {
13659 if (getSymmetryLevel()
13660 != other.getSymmetryLevel()) return false;
13661 }
13662 if (hasUseSymmetryInLp() != other.hasUseSymmetryInLp()) return false;
13663 if (hasUseSymmetryInLp()) {
13664 if (getUseSymmetryInLp()
13665 != other.getUseSymmetryInLp()) return false;
13666 }
13667 if (hasKeepSymmetryInPresolve() != other.hasKeepSymmetryInPresolve()) return false;
13670 != other.getKeepSymmetryInPresolve()) return false;
13671 }
13674 if (java.lang.Double.doubleToLongBits(getSymmetryDetectionDeterministicTimeLimit())
13675 != java.lang.Double.doubleToLongBits(
13676 other.getSymmetryDetectionDeterministicTimeLimit())) return false;
13677 }
13678 if (hasNewLinearPropagation() != other.hasNewLinearPropagation()) return false;
13681 != other.getNewLinearPropagation()) return false;
13682 }
13683 if (hasLinearSplitSize() != other.hasLinearSplitSize()) return false;
13684 if (hasLinearSplitSize()) {
13685 if (getLinearSplitSize()
13686 != other.getLinearSplitSize()) return false;
13687 }
13688 if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
13689 if (hasLinearizationLevel()) {
13691 != other.getLinearizationLevel()) return false;
13692 }
13693 if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
13696 != other.getBooleanEncodingLevel()) return false;
13697 }
13701 != other.getMaxDomainSizeWhenEncodingEqNeqConstraints()) return false;
13702 }
13703 if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
13704 if (hasMaxNumCuts()) {
13705 if (getMaxNumCuts()
13706 != other.getMaxNumCuts()) return false;
13707 }
13708 if (hasCutLevel() != other.hasCutLevel()) return false;
13709 if (hasCutLevel()) {
13710 if (getCutLevel()
13711 != other.getCutLevel()) return false;
13712 }
13713 if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
13716 != other.getOnlyAddCutsAtLevelZero()) return false;
13717 }
13718 if (hasAddObjectiveCut() != other.hasAddObjectiveCut()) return false;
13719 if (hasAddObjectiveCut()) {
13720 if (getAddObjectiveCut()
13721 != other.getAddObjectiveCut()) return false;
13722 }
13723 if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
13724 if (hasAddCgCuts()) {
13725 if (getAddCgCuts()
13726 != other.getAddCgCuts()) return false;
13727 }
13728 if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
13729 if (hasAddMirCuts()) {
13730 if (getAddMirCuts()
13731 != other.getAddMirCuts()) return false;
13732 }
13733 if (hasAddZeroHalfCuts() != other.hasAddZeroHalfCuts()) return false;
13734 if (hasAddZeroHalfCuts()) {
13735 if (getAddZeroHalfCuts()
13736 != other.getAddZeroHalfCuts()) return false;
13737 }
13738 if (hasAddCliqueCuts() != other.hasAddCliqueCuts()) return false;
13739 if (hasAddCliqueCuts()) {
13740 if (getAddCliqueCuts()
13741 != other.getAddCliqueCuts()) return false;
13742 }
13743 if (hasAddRltCuts() != other.hasAddRltCuts()) return false;
13744 if (hasAddRltCuts()) {
13745 if (getAddRltCuts()
13746 != other.getAddRltCuts()) return false;
13747 }
13748 if (hasMaxAllDiffCutSize() != other.hasMaxAllDiffCutSize()) return false;
13749 if (hasMaxAllDiffCutSize()) {
13751 != other.getMaxAllDiffCutSize()) return false;
13752 }
13753 if (hasAddLinMaxCuts() != other.hasAddLinMaxCuts()) return false;
13754 if (hasAddLinMaxCuts()) {
13755 if (getAddLinMaxCuts()
13756 != other.getAddLinMaxCuts()) return false;
13757 }
13758 if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
13761 != other.getMaxIntegerRoundingScaling()) return false;
13762 }
13763 if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
13766 != other.getAddLpConstraintsLazily()) return false;
13767 }
13768 if (hasRootLpIterations() != other.hasRootLpIterations()) return false;
13769 if (hasRootLpIterations()) {
13771 != other.getRootLpIterations()) return false;
13772 }
13775 if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
13776 != java.lang.Double.doubleToLongBits(
13777 other.getMinOrthogonalityForLpConstraints())) return false;
13778 }
13779 if (hasMaxCutRoundsAtLevelZero() != other.hasMaxCutRoundsAtLevelZero()) return false;
13782 != other.getMaxCutRoundsAtLevelZero()) return false;
13783 }
13787 != other.getMaxConsecutiveInactiveCount()) return false;
13788 }
13789 if (hasCutMaxActiveCountValue() != other.hasCutMaxActiveCountValue()) return false;
13791 if (java.lang.Double.doubleToLongBits(getCutMaxActiveCountValue())
13792 != java.lang.Double.doubleToLongBits(
13793 other.getCutMaxActiveCountValue())) return false;
13794 }
13795 if (hasCutActiveCountDecay() != other.hasCutActiveCountDecay()) return false;
13796 if (hasCutActiveCountDecay()) {
13797 if (java.lang.Double.doubleToLongBits(getCutActiveCountDecay())
13798 != java.lang.Double.doubleToLongBits(
13799 other.getCutActiveCountDecay())) return false;
13800 }
13801 if (hasCutCleanupTarget() != other.hasCutCleanupTarget()) return false;
13802 if (hasCutCleanupTarget()) {
13804 != other.getCutCleanupTarget()) return false;
13805 }
13806 if (hasNewConstraintsBatchSize() != other.hasNewConstraintsBatchSize()) return false;
13809 != other.getNewConstraintsBatchSize()) return false;
13810 }
13811 if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
13814 != other.getExploitIntegerLpSolution()) return false;
13815 }
13816 if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
13819 != other.getExploitAllLpSolution()) return false;
13820 }
13821 if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
13822 if (hasExploitBestSolution()) {
13824 != other.getExploitBestSolution()) return false;
13825 }
13826 if (hasExploitRelaxationSolution() != other.hasExploitRelaxationSolution()) return false;
13829 != other.getExploitRelaxationSolution()) return false;
13830 }
13831 if (hasExploitObjective() != other.hasExploitObjective()) return false;
13832 if (hasExploitObjective()) {
13834 != other.getExploitObjective()) return false;
13835 }
13836 if (hasDetectLinearizedProduct() != other.hasDetectLinearizedProduct()) return false;
13839 != other.getDetectLinearizedProduct()) return false;
13840 }
13841 if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
13842 if (hasMipMaxBound()) {
13843 if (java.lang.Double.doubleToLongBits(getMipMaxBound())
13844 != java.lang.Double.doubleToLongBits(
13845 other.getMipMaxBound())) return false;
13846 }
13847 if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
13848 if (hasMipVarScaling()) {
13849 if (java.lang.Double.doubleToLongBits(getMipVarScaling())
13850 != java.lang.Double.doubleToLongBits(
13851 other.getMipVarScaling())) return false;
13852 }
13853 if (hasMipScaleLargeDomain() != other.hasMipScaleLargeDomain()) return false;
13854 if (hasMipScaleLargeDomain()) {
13856 != other.getMipScaleLargeDomain()) return false;
13857 }
13861 != other.getMipAutomaticallyScaleVariables()) return false;
13862 }
13863 if (hasOnlySolveIp() != other.hasOnlySolveIp()) return false;
13864 if (hasOnlySolveIp()) {
13865 if (getOnlySolveIp()
13866 != other.getOnlySolveIp()) return false;
13867 }
13868 if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
13869 if (hasMipWantedPrecision()) {
13870 if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
13871 != java.lang.Double.doubleToLongBits(
13872 other.getMipWantedPrecision())) return false;
13873 }
13874 if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
13877 != other.getMipMaxActivityExponent()) return false;
13878 }
13879 if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
13880 if (hasMipCheckPrecision()) {
13881 if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
13882 != java.lang.Double.doubleToLongBits(
13883 other.getMipCheckPrecision())) return false;
13884 }
13888 != other.getMipComputeTrueObjectiveBound()) return false;
13889 }
13890 if (hasMipMaxValidMagnitude() != other.hasMipMaxValidMagnitude()) return false;
13892 if (java.lang.Double.doubleToLongBits(getMipMaxValidMagnitude())
13893 != java.lang.Double.doubleToLongBits(
13894 other.getMipMaxValidMagnitude())) return false;
13895 }
13899 != other.getMipTreatHighMagnitudeBoundsAsInfinity()) return false;
13900 }
13901 if (hasMipDropTolerance() != other.hasMipDropTolerance()) return false;
13902 if (hasMipDropTolerance()) {
13903 if (java.lang.Double.doubleToLongBits(getMipDropTolerance())
13904 != java.lang.Double.doubleToLongBits(
13905 other.getMipDropTolerance())) return false;
13906 }
13907 if (hasMipPresolveLevel() != other.hasMipPresolveLevel()) return false;
13908 if (hasMipPresolveLevel()) {
13910 != other.getMipPresolveLevel()) return false;
13911 }
13912 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
13913 return true;
13914 }
13915
13916 @java.lang.Override
13917 public int hashCode() {
13918 if (memoizedHashCode != 0) {
13919 return memoizedHashCode;
13920 }
13921 int hash = 41;
13922 hash = (19 * hash) + getDescriptor().hashCode();
13923 if (hasName()) {
13924 hash = (37 * hash) + NAME_FIELD_NUMBER;
13925 hash = (53 * hash) + getName().hashCode();
13926 }
13928 hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
13929 hash = (53 * hash) + preferredVariableOrder_;
13930 }
13931 if (hasInitialPolarity()) {
13932 hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
13933 hash = (53 * hash) + initialPolarity_;
13934 }
13935 if (hasUsePhaseSaving()) {
13936 hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
13937 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
13939 }
13941 hash = (37 * hash) + POLARITY_REPHASE_INCREMENT_FIELD_NUMBER;
13942 hash = (53 * hash) + getPolarityRephaseIncrement();
13943 }
13945 hash = (37 * hash) + POLARITY_EXPLOIT_LS_HINTS_FIELD_NUMBER;
13946 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
13948 }
13949 if (hasRandomPolarityRatio()) {
13950 hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
13951 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
13952 java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
13953 }
13954 if (hasRandomBranchesRatio()) {
13955 hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
13956 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
13957 java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
13958 }
13959 if (hasUseErwaHeuristic()) {
13960 hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
13961 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
13963 }
13965 hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
13966 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
13967 java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
13968 }
13971 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
13973 }
13975 hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
13976 hash = (53 * hash) + minimizationAlgorithm_;
13977 }
13979 hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
13980 hash = (53 * hash) + binaryMinimizationAlgorithm_;
13981 }
13984 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
13986 }
13987 if (hasClauseCleanupPeriod()) {
13988 hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
13989 hash = (53 * hash) + getClauseCleanupPeriod();
13990 }
13991 if (hasClauseCleanupTarget()) {
13992 hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
13993 hash = (53 * hash) + getClauseCleanupTarget();
13994 }
13995 if (hasClauseCleanupRatio()) {
13996 hash = (37 * hash) + CLAUSE_CLEANUP_RATIO_FIELD_NUMBER;
13997 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
13998 java.lang.Double.doubleToLongBits(getClauseCleanupRatio()));
13999 }
14001 hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
14002 hash = (53 * hash) + clauseCleanupProtection_;
14003 }
14005 hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
14006 hash = (53 * hash) + getClauseCleanupLbdBound();
14007 }
14009 hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
14010 hash = (53 * hash) + clauseCleanupOrdering_;
14011 }
14012 if (hasPbCleanupIncrement()) {
14013 hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
14014 hash = (53 * hash) + getPbCleanupIncrement();
14015 }
14016 if (hasPbCleanupRatio()) {
14017 hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
14018 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14019 java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
14020 }
14022 hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
14023 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14024 java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
14025 }
14027 hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
14028 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14029 java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
14030 }
14031 if (hasGlucoseMaxDecay()) {
14032 hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
14033 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14034 java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
14035 }
14037 hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
14038 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14039 java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
14040 }
14043 hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
14044 }
14045 if (hasClauseActivityDecay()) {
14046 hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
14047 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14048 java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
14049 }
14051 hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
14052 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14053 java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
14054 }
14055 if (getRestartAlgorithmsCount() > 0) {
14056 hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
14057 hash = (53 * hash) + restartAlgorithms_.hashCode();
14058 }
14060 hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
14061 hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
14062 }
14063 if (hasRestartPeriod()) {
14064 hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
14065 hash = (53 * hash) + getRestartPeriod();
14066 }
14068 hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
14069 hash = (53 * hash) + getRestartRunningWindowSize();
14070 }
14072 hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
14073 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14074 java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
14075 }
14077 hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
14078 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14079 java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
14080 }
14081 if (hasUseBlockingRestart()) {
14082 hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
14083 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14085 }
14087 hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
14088 hash = (53 * hash) + getBlockingRestartWindowSize();
14089 }
14091 hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
14092 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14093 java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
14094 }
14097 hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
14098 }
14101 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14102 java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
14103 }
14104 if (hasMaxTimeInSeconds()) {
14105 hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
14106 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14107 java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
14108 }
14110 hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
14111 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14112 java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
14113 }
14115 hash = (37 * hash) + MAX_NUM_DETERMINISTIC_BATCHES_FIELD_NUMBER;
14116 hash = (53 * hash) + getMaxNumDeterministicBatches();
14117 }
14119 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
14120 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14122 }
14123 if (hasMaxMemoryInMb()) {
14124 hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
14125 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14127 }
14128 if (hasAbsoluteGapLimit()) {
14129 hash = (37 * hash) + ABSOLUTE_GAP_LIMIT_FIELD_NUMBER;
14130 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14131 java.lang.Double.doubleToLongBits(getAbsoluteGapLimit()));
14132 }
14133 if (hasRelativeGapLimit()) {
14134 hash = (37 * hash) + RELATIVE_GAP_LIMIT_FIELD_NUMBER;
14135 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14136 java.lang.Double.doubleToLongBits(getRelativeGapLimit()));
14137 }
14138 if (hasRandomSeed()) {
14139 hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
14140 hash = (53 * hash) + getRandomSeed();
14141 }
14143 hash = (37 * hash) + PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER;
14144 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14146 }
14149 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14151 }
14152 if (hasUseAbslRandom()) {
14153 hash = (37 * hash) + USE_ABSL_RANDOM_FIELD_NUMBER;
14154 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14156 }
14157 if (hasLogSearchProgress()) {
14158 hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
14159 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14161 }
14163 hash = (37 * hash) + LOG_SUBSOLVER_STATISTICS_FIELD_NUMBER;
14164 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14166 }
14167 if (hasLogPrefix()) {
14168 hash = (37 * hash) + LOG_PREFIX_FIELD_NUMBER;
14169 hash = (53 * hash) + getLogPrefix().hashCode();
14170 }
14171 if (hasLogToStdout()) {
14172 hash = (37 * hash) + LOG_TO_STDOUT_FIELD_NUMBER;
14173 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14174 getLogToStdout());
14175 }
14176 if (hasLogToResponse()) {
14177 hash = (37 * hash) + LOG_TO_RESPONSE_FIELD_NUMBER;
14178 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14180 }
14181 if (hasUsePbResolution()) {
14182 hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
14183 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14185 }
14188 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14190 }
14193 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14195 }
14197 hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
14198 hash = (53 * hash) + getPresolveBveThreshold();
14199 }
14201 hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
14202 hash = (53 * hash) + getPresolveBveClauseWeight();
14203 }
14206 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14207 java.lang.Double.doubleToLongBits(getProbingDeterministicTimeLimit()));
14208 }
14211 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14212 java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
14213 }
14215 hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
14216 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14218 }
14219 if (hasPresolveUseBva()) {
14220 hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
14221 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14223 }
14225 hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
14226 hash = (53 * hash) + getPresolveBvaThreshold();
14227 }
14229 hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
14230 hash = (53 * hash) + getMaxPresolveIterations();
14231 }
14232 if (hasCpModelPresolve()) {
14233 hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
14234 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14236 }
14237 if (hasCpModelProbingLevel()) {
14238 hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
14239 hash = (53 * hash) + getCpModelProbingLevel();
14240 }
14242 hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
14243 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14245 }
14247 hash = (37 * hash) + REMOVE_FIXED_VARIABLES_EARLY_FIELD_NUMBER;
14248 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14250 }
14251 if (hasDetectTableWithCost()) {
14252 hash = (37 * hash) + DETECT_TABLE_WITH_COST_FIELD_NUMBER;
14253 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14255 }
14257 hash = (37 * hash) + TABLE_COMPRESSION_LEVEL_FIELD_NUMBER;
14258 hash = (53 * hash) + getTableCompressionLevel();
14259 }
14261 hash = (37 * hash) + EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER;
14262 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14264 }
14266 hash = (37 * hash) + EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER;
14267 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14269 }
14272 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14274 }
14277 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14279 }
14282 hash = (53 * hash) + getMaxLinMaxSizeForExpansion();
14283 }
14285 hash = (37 * hash) + DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER;
14286 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14288 }
14291 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14293 }
14295 hash = (37 * hash) + MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER;
14296 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14297 java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit()));
14298 }
14300 hash = (37 * hash) + MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER;
14301 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14302 java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit()));
14303 }
14305 hash = (37 * hash) + PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER;
14306 hash = (53 * hash) + getPresolveSubstitutionLevel();
14307 }
14310 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14312 }
14314 hash = (37 * hash) + PRESOLVE_INCLUSION_WORK_LIMIT_FIELD_NUMBER;
14315 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14317 }
14318 if (hasIgnoreNames()) {
14319 hash = (37 * hash) + IGNORE_NAMES_FIELD_NUMBER;
14320 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14321 getIgnoreNames());
14322 }
14323 if (hasInferAllDiffs()) {
14324 hash = (37 * hash) + INFER_ALL_DIFFS_FIELD_NUMBER;
14325 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14327 }
14329 hash = (37 * hash) + FIND_BIG_LINEAR_OVERLAP_FIELD_NUMBER;
14330 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14332 }
14333 if (hasUseSatInprocessing()) {
14334 hash = (37 * hash) + USE_SAT_INPROCESSING_FIELD_NUMBER;
14335 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14337 }
14339 hash = (37 * hash) + INPROCESSING_DTIME_RATIO_FIELD_NUMBER;
14340 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14341 java.lang.Double.doubleToLongBits(getInprocessingDtimeRatio()));
14342 }
14344 hash = (37 * hash) + INPROCESSING_PROBING_DTIME_FIELD_NUMBER;
14345 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14346 java.lang.Double.doubleToLongBits(getInprocessingProbingDtime()));
14347 }
14350 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14351 java.lang.Double.doubleToLongBits(getInprocessingMinimizationDtime()));
14352 }
14355 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14357 }
14360 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14362 }
14363 if (hasNumWorkers()) {
14364 hash = (37 * hash) + NUM_WORKERS_FIELD_NUMBER;
14365 hash = (53 * hash) + getNumWorkers();
14366 }
14367 if (hasNumSearchWorkers()) {
14368 hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
14369 hash = (53 * hash) + getNumSearchWorkers();
14370 }
14371 if (hasNumFullSubsolvers()) {
14372 hash = (37 * hash) + NUM_FULL_SUBSOLVERS_FIELD_NUMBER;
14373 hash = (53 * hash) + getNumFullSubsolvers();
14374 }
14375 if (getSubsolversCount() > 0) {
14376 hash = (37 * hash) + SUBSOLVERS_FIELD_NUMBER;
14377 hash = (53 * hash) + getSubsolversList().hashCode();
14378 }
14379 if (getExtraSubsolversCount() > 0) {
14380 hash = (37 * hash) + EXTRA_SUBSOLVERS_FIELD_NUMBER;
14381 hash = (53 * hash) + getExtraSubsolversList().hashCode();
14382 }
14383 if (getIgnoreSubsolversCount() > 0) {
14384 hash = (37 * hash) + IGNORE_SUBSOLVERS_FIELD_NUMBER;
14385 hash = (53 * hash) + getIgnoreSubsolversList().hashCode();
14386 }
14387 if (getFilterSubsolversCount() > 0) {
14388 hash = (37 * hash) + FILTER_SUBSOLVERS_FIELD_NUMBER;
14389 hash = (53 * hash) + getFilterSubsolversList().hashCode();
14390 }
14391 if (getSubsolverParamsCount() > 0) {
14392 hash = (37 * hash) + SUBSOLVER_PARAMS_FIELD_NUMBER;
14393 hash = (53 * hash) + getSubsolverParamsList().hashCode();
14394 }
14395 if (hasInterleaveSearch()) {
14396 hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
14397 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14399 }
14400 if (hasInterleaveBatchSize()) {
14401 hash = (37 * hash) + INTERLEAVE_BATCH_SIZE_FIELD_NUMBER;
14402 hash = (53 * hash) + getInterleaveBatchSize();
14403 }
14405 hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
14406 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14408 }
14410 hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
14411 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14413 }
14414 if (hasShareBinaryClauses()) {
14415 hash = (37 * hash) + SHARE_BINARY_CLAUSES_FIELD_NUMBER;
14416 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14418 }
14419 if (hasShareGlueClauses()) {
14420 hash = (37 * hash) + SHARE_GLUE_CLAUSES_FIELD_NUMBER;
14421 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14423 }
14425 hash = (37 * hash) + MINIMIZE_SHARED_CLAUSES_FIELD_NUMBER;
14426 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14428 }
14431 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14433 }
14436 hash = (53 * hash) + getDebugMaxNumPresolveOperations();
14437 }
14438 if (hasDebugCrashOnBadHint()) {
14439 hash = (37 * hash) + DEBUG_CRASH_ON_BAD_HINT_FIELD_NUMBER;
14440 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14442 }
14445 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14447 }
14449 hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
14450 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14452 }
14454 hash = (37 * hash) + CORE_MINIMIZATION_LEVEL_FIELD_NUMBER;
14455 hash = (53 * hash) + getCoreMinimizationLevel();
14456 }
14457 if (hasFindMultipleCores()) {
14458 hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
14459 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14461 }
14462 if (hasCoverOptimization()) {
14463 hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
14464 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14466 }
14468 hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
14469 hash = (53 * hash) + maxSatAssumptionOrder_;
14470 }
14473 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14475 }
14477 hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
14478 hash = (53 * hash) + maxSatStratification_;
14479 }
14482 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14483 java.lang.Double.doubleToLongBits(getPropagationLoopDetectionFactor()));
14484 }
14487 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14489 }
14493 }
14496 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14498 }
14501 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14503 }
14506 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14508 }
14511 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14513 }
14516 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14518 }
14521 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14523 }
14526 hash = (53 * hash) + getMaxNumIntervalsForTimetableEdgeFinding();
14527 }
14530 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14532 }
14534 hash = (37 * hash) + EXPLOIT_ALL_PRECEDENCES_FIELD_NUMBER;
14535 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14537 }
14540 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14542 }
14545 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14547 }
14550 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14552 }
14555 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14557 }
14560 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14562 }
14565 hash = (53 * hash) + getMaxPairsPairwiseReasoningInNoOverlap2D();
14566 }
14570 }
14573 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14575 }
14577 hash = (37 * hash) + USE_ALL_DIFFERENT_FOR_CIRCUIT_FIELD_NUMBER;
14578 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14580 }
14583 hash = (53 * hash) + getRoutingCutSubsetSizeForBinaryRelationBound();
14584 }
14588 }
14589 if (hasRoutingCutDpEffort()) {
14590 hash = (37 * hash) + ROUTING_CUT_DP_EFFORT_FIELD_NUMBER;
14591 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14592 java.lang.Double.doubleToLongBits(getRoutingCutDpEffort()));
14593 }
14594 if (hasSearchBranching()) {
14595 hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
14596 hash = (53 * hash) + searchBranching_;
14597 }
14598 if (hasHintConflictLimit()) {
14599 hash = (37 * hash) + HINT_CONFLICT_LIMIT_FIELD_NUMBER;
14600 hash = (53 * hash) + getHintConflictLimit();
14601 }
14602 if (hasRepairHint()) {
14603 hash = (37 * hash) + REPAIR_HINT_FIELD_NUMBER;
14604 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14605 getRepairHint());
14606 }
14609 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14611 }
14612 if (hasUseProbingSearch()) {
14613 hash = (37 * hash) + USE_PROBING_SEARCH_FIELD_NUMBER;
14614 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14616 }
14617 if (hasUseExtendedProbing()) {
14618 hash = (37 * hash) + USE_EXTENDED_PROBING_FIELD_NUMBER;
14619 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14621 }
14624 hash = (53 * hash) + getProbingNumCombinationsLimit();
14625 }
14627 hash = (37 * hash) + USE_SHAVING_IN_PROBING_SEARCH_FIELD_NUMBER;
14628 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14630 }
14633 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14634 java.lang.Double.doubleToLongBits(getShavingSearchDeterministicTime()));
14635 }
14637 hash = (37 * hash) + SHAVING_SEARCH_THRESHOLD_FIELD_NUMBER;
14638 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14640 }
14642 hash = (37 * hash) + USE_OBJECTIVE_LB_SEARCH_FIELD_NUMBER;
14643 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14645 }
14647 hash = (37 * hash) + USE_OBJECTIVE_SHAVING_SEARCH_FIELD_NUMBER;
14648 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14650 }
14652 hash = (37 * hash) + USE_VARIABLES_SHAVING_SEARCH_FIELD_NUMBER;
14653 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14655 }
14658 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14660 }
14661 if (hasOptimizeWithCore()) {
14662 hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
14663 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14665 }
14667 hash = (37 * hash) + OPTIMIZE_WITH_LB_TREE_SEARCH_FIELD_NUMBER;
14668 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14670 }
14673 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14675 }
14677 hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
14678 hash = (53 * hash) + getBinarySearchNumConflicts();
14679 }
14680 if (hasOptimizeWithMaxHs()) {
14681 hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
14682 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14684 }
14685 if (hasUseFeasibilityJump()) {
14686 hash = (37 * hash) + USE_FEASIBILITY_JUMP_FIELD_NUMBER;
14687 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14689 }
14690 if (hasUseLsOnly()) {
14691 hash = (37 * hash) + USE_LS_ONLY_FIELD_NUMBER;
14692 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14693 getUseLsOnly());
14694 }
14696 hash = (37 * hash) + FEASIBILITY_JUMP_DECAY_FIELD_NUMBER;
14697 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14698 java.lang.Double.doubleToLongBits(getFeasibilityJumpDecay()));
14699 }
14702 hash = (53 * hash) + getFeasibilityJumpLinearizationLevel();
14703 }
14706 hash = (53 * hash) + getFeasibilityJumpRestartFactor();
14707 }
14709 hash = (37 * hash) + FEASIBILITY_JUMP_BATCH_DTIME_FIELD_NUMBER;
14710 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14711 java.lang.Double.doubleToLongBits(getFeasibilityJumpBatchDtime()));
14712 }
14715 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14716 java.lang.Double.doubleToLongBits(getFeasibilityJumpVarRandomizationProbability()));
14717 }
14720 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14721 java.lang.Double.doubleToLongBits(getFeasibilityJumpVarPerburbationRangeRatio()));
14722 }
14725 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14727 }
14730 hash = (53 * hash) + getFeasibilityJumpMaxExpandedConstraintSize();
14731 }
14732 if (hasNumViolationLs()) {
14733 hash = (37 * hash) + NUM_VIOLATION_LS_FIELD_NUMBER;
14734 hash = (53 * hash) + getNumViolationLs();
14735 }
14738 hash = (53 * hash) + getViolationLsPerturbationPeriod();
14739 }
14742 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14743 java.lang.Double.doubleToLongBits(getViolationLsCompoundMoveProbability()));
14744 }
14746 hash = (37 * hash) + SHARED_TREE_NUM_WORKERS_FIELD_NUMBER;
14747 hash = (53 * hash) + getSharedTreeNumWorkers();
14748 }
14749 if (hasUseSharedTreeSearch()) {
14750 hash = (37 * hash) + USE_SHARED_TREE_SEARCH_FIELD_NUMBER;
14751 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14753 }
14756 hash = (53 * hash) + getSharedTreeWorkerMinRestartsPerSubtree();
14757 }
14760 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14762 }
14765 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14767 }
14770 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14771 java.lang.Double.doubleToLongBits(getSharedTreeOpenLeavesPerWorker()));
14772 }
14775 hash = (53 * hash) + getSharedTreeMaxNodesPerWorker();
14776 }
14778 hash = (37 * hash) + SHARED_TREE_SPLIT_STRATEGY_FIELD_NUMBER;
14779 hash = (53 * hash) + sharedTreeSplitStrategy_;
14780 }
14782 hash = (37 * hash) + SHARED_TREE_BALANCE_TOLERANCE_FIELD_NUMBER;
14783 hash = (53 * hash) + getSharedTreeBalanceTolerance();
14784 }
14786 hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
14787 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14789 }
14792 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14794 }
14797 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14799 }
14802 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14804 }
14806 hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
14807 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14809 }
14812 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14814 }
14816 hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
14817 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14819 }
14820 if (hasStopAfterPresolve()) {
14821 hash = (37 * hash) + STOP_AFTER_PRESOLVE_FIELD_NUMBER;
14822 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14824 }
14826 hash = (37 * hash) + STOP_AFTER_ROOT_PROPAGATION_FIELD_NUMBER;
14827 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14829 }
14831 hash = (37 * hash) + LNS_INITIAL_DIFFICULTY_FIELD_NUMBER;
14832 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14833 java.lang.Double.doubleToLongBits(getLnsInitialDifficulty()));
14834 }
14837 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14838 java.lang.Double.doubleToLongBits(getLnsInitialDeterministicLimit()));
14839 }
14840 if (hasUseLns()) {
14841 hash = (37 * hash) + USE_LNS_FIELD_NUMBER;
14842 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14843 getUseLns());
14844 }
14845 if (hasUseLnsOnly()) {
14846 hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
14847 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14848 getUseLnsOnly());
14849 }
14850 if (hasSolutionPoolSize()) {
14851 hash = (37 * hash) + SOLUTION_POOL_SIZE_FIELD_NUMBER;
14852 hash = (53 * hash) + getSolutionPoolSize();
14853 }
14854 if (hasUseRinsLns()) {
14855 hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
14856 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14857 getUseRinsLns());
14858 }
14859 if (hasUseFeasibilityPump()) {
14860 hash = (37 * hash) + USE_FEASIBILITY_PUMP_FIELD_NUMBER;
14861 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14863 }
14864 if (hasUseLbRelaxLns()) {
14865 hash = (37 * hash) + USE_LB_RELAX_LNS_FIELD_NUMBER;
14866 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14868 }
14871 hash = (53 * hash) + getLbRelaxNumWorkersThreshold();
14872 }
14873 if (hasFpRounding()) {
14874 hash = (37 * hash) + FP_ROUNDING_FIELD_NUMBER;
14875 hash = (53 * hash) + fpRounding_;
14876 }
14877 if (hasDiversifyLnsParams()) {
14878 hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
14879 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14881 }
14882 if (hasRandomizeSearch()) {
14883 hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
14884 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14886 }
14889 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14891 }
14893 hash = (37 * hash) + PUSH_ALL_TASKS_TOWARD_START_FIELD_NUMBER;
14894 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14896 }
14898 hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
14899 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14901 }
14902 if (hasUseExactLpReason()) {
14903 hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
14904 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14906 }
14908 hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
14909 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14911 }
14914 hash = (53 * hash) + getAtMostOneMaxExpansionSize();
14915 }
14916 if (hasCatchSigintSignal()) {
14917 hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
14918 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14920 }
14921 if (hasUseImpliedBounds()) {
14922 hash = (37 * hash) + USE_IMPLIED_BOUNDS_FIELD_NUMBER;
14923 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14925 }
14926 if (hasPolishLpSolution()) {
14927 hash = (37 * hash) + POLISH_LP_SOLUTION_FIELD_NUMBER;
14928 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14930 }
14931 if (hasLpPrimalTolerance()) {
14932 hash = (37 * hash) + LP_PRIMAL_TOLERANCE_FIELD_NUMBER;
14933 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14934 java.lang.Double.doubleToLongBits(getLpPrimalTolerance()));
14935 }
14936 if (hasLpDualTolerance()) {
14937 hash = (37 * hash) + LP_DUAL_TOLERANCE_FIELD_NUMBER;
14938 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14939 java.lang.Double.doubleToLongBits(getLpDualTolerance()));
14940 }
14941 if (hasConvertIntervals()) {
14942 hash = (37 * hash) + CONVERT_INTERVALS_FIELD_NUMBER;
14943 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14945 }
14946 if (hasSymmetryLevel()) {
14947 hash = (37 * hash) + SYMMETRY_LEVEL_FIELD_NUMBER;
14948 hash = (53 * hash) + getSymmetryLevel();
14949 }
14950 if (hasUseSymmetryInLp()) {
14951 hash = (37 * hash) + USE_SYMMETRY_IN_LP_FIELD_NUMBER;
14952 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14954 }
14956 hash = (37 * hash) + KEEP_SYMMETRY_IN_PRESOLVE_FIELD_NUMBER;
14957 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14959 }
14962 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
14963 java.lang.Double.doubleToLongBits(getSymmetryDetectionDeterministicTimeLimit()));
14964 }
14966 hash = (37 * hash) + NEW_LINEAR_PROPAGATION_FIELD_NUMBER;
14967 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14969 }
14970 if (hasLinearSplitSize()) {
14971 hash = (37 * hash) + LINEAR_SPLIT_SIZE_FIELD_NUMBER;
14972 hash = (53 * hash) + getLinearSplitSize();
14973 }
14974 if (hasLinearizationLevel()) {
14975 hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
14976 hash = (53 * hash) + getLinearizationLevel();
14977 }
14979 hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
14980 hash = (53 * hash) + getBooleanEncodingLevel();
14981 }
14984 hash = (53 * hash) + getMaxDomainSizeWhenEncodingEqNeqConstraints();
14985 }
14986 if (hasMaxNumCuts()) {
14987 hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
14988 hash = (53 * hash) + getMaxNumCuts();
14989 }
14990 if (hasCutLevel()) {
14991 hash = (37 * hash) + CUT_LEVEL_FIELD_NUMBER;
14992 hash = (53 * hash) + getCutLevel();
14993 }
14995 hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
14996 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
14998 }
14999 if (hasAddObjectiveCut()) {
15000 hash = (37 * hash) + ADD_OBJECTIVE_CUT_FIELD_NUMBER;
15001 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15003 }
15004 if (hasAddCgCuts()) {
15005 hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
15006 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15007 getAddCgCuts());
15008 }
15009 if (hasAddMirCuts()) {
15010 hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
15011 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15012 getAddMirCuts());
15013 }
15014 if (hasAddZeroHalfCuts()) {
15015 hash = (37 * hash) + ADD_ZERO_HALF_CUTS_FIELD_NUMBER;
15016 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15018 }
15019 if (hasAddCliqueCuts()) {
15020 hash = (37 * hash) + ADD_CLIQUE_CUTS_FIELD_NUMBER;
15021 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15023 }
15024 if (hasAddRltCuts()) {
15025 hash = (37 * hash) + ADD_RLT_CUTS_FIELD_NUMBER;
15026 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15027 getAddRltCuts());
15028 }
15029 if (hasMaxAllDiffCutSize()) {
15030 hash = (37 * hash) + MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER;
15031 hash = (53 * hash) + getMaxAllDiffCutSize();
15032 }
15033 if (hasAddLinMaxCuts()) {
15034 hash = (37 * hash) + ADD_LIN_MAX_CUTS_FIELD_NUMBER;
15035 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15037 }
15039 hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
15040 hash = (53 * hash) + getMaxIntegerRoundingScaling();
15041 }
15043 hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
15044 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15046 }
15047 if (hasRootLpIterations()) {
15048 hash = (37 * hash) + ROOT_LP_ITERATIONS_FIELD_NUMBER;
15049 hash = (53 * hash) + getRootLpIterations();
15050 }
15053 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
15054 java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
15055 }
15057 hash = (37 * hash) + MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER;
15058 hash = (53 * hash) + getMaxCutRoundsAtLevelZero();
15059 }
15062 hash = (53 * hash) + getMaxConsecutiveInactiveCount();
15063 }
15065 hash = (37 * hash) + CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER;
15066 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
15067 java.lang.Double.doubleToLongBits(getCutMaxActiveCountValue()));
15068 }
15069 if (hasCutActiveCountDecay()) {
15070 hash = (37 * hash) + CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER;
15071 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
15072 java.lang.Double.doubleToLongBits(getCutActiveCountDecay()));
15073 }
15074 if (hasCutCleanupTarget()) {
15075 hash = (37 * hash) + CUT_CLEANUP_TARGET_FIELD_NUMBER;
15076 hash = (53 * hash) + getCutCleanupTarget();
15077 }
15079 hash = (37 * hash) + NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER;
15080 hash = (53 * hash) + getNewConstraintsBatchSize();
15081 }
15083 hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
15084 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15086 }
15088 hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
15089 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15091 }
15092 if (hasExploitBestSolution()) {
15093 hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
15094 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15096 }
15098 hash = (37 * hash) + EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER;
15099 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15101 }
15102 if (hasExploitObjective()) {
15103 hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
15104 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15106 }
15108 hash = (37 * hash) + DETECT_LINEARIZED_PRODUCT_FIELD_NUMBER;
15109 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15111 }
15112 if (hasMipMaxBound()) {
15113 hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
15114 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
15115 java.lang.Double.doubleToLongBits(getMipMaxBound()));
15116 }
15117 if (hasMipVarScaling()) {
15118 hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
15119 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
15120 java.lang.Double.doubleToLongBits(getMipVarScaling()));
15121 }
15122 if (hasMipScaleLargeDomain()) {
15123 hash = (37 * hash) + MIP_SCALE_LARGE_DOMAIN_FIELD_NUMBER;
15124 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15126 }
15129 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15131 }
15132 if (hasOnlySolveIp()) {
15133 hash = (37 * hash) + ONLY_SOLVE_IP_FIELD_NUMBER;
15134 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15135 getOnlySolveIp());
15136 }
15137 if (hasMipWantedPrecision()) {
15138 hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
15139 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
15140 java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
15141 }
15143 hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
15144 hash = (53 * hash) + getMipMaxActivityExponent();
15145 }
15146 if (hasMipCheckPrecision()) {
15147 hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
15148 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
15149 java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
15150 }
15153 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15155 }
15157 hash = (37 * hash) + MIP_MAX_VALID_MAGNITUDE_FIELD_NUMBER;
15158 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
15159 java.lang.Double.doubleToLongBits(getMipMaxValidMagnitude()));
15160 }
15163 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15165 }
15166 if (hasMipDropTolerance()) {
15167 hash = (37 * hash) + MIP_DROP_TOLERANCE_FIELD_NUMBER;
15168 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
15169 java.lang.Double.doubleToLongBits(getMipDropTolerance()));
15170 }
15171 if (hasMipPresolveLevel()) {
15172 hash = (37 * hash) + MIP_PRESOLVE_LEVEL_FIELD_NUMBER;
15173 hash = (53 * hash) + getMipPresolveLevel();
15174 }
15175 hash = (29 * hash) + getUnknownFields().hashCode();
15176 memoizedHashCode = hash;
15177 return hash;
15178 }
15179
15181 java.nio.ByteBuffer data)
15182 throws com.google.protobuf.InvalidProtocolBufferException {
15183 return PARSER.parseFrom(data);
15184 }
15186 java.nio.ByteBuffer data,
15187 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15188 throws com.google.protobuf.InvalidProtocolBufferException {
15189 return PARSER.parseFrom(data, extensionRegistry);
15190 }
15192 com.google.protobuf.ByteString data)
15193 throws com.google.protobuf.InvalidProtocolBufferException {
15194 return PARSER.parseFrom(data);
15195 }
15197 com.google.protobuf.ByteString data,
15198 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15199 throws com.google.protobuf.InvalidProtocolBufferException {
15200 return PARSER.parseFrom(data, extensionRegistry);
15201 }
15203 throws com.google.protobuf.InvalidProtocolBufferException {
15204 return PARSER.parseFrom(data);
15205 }
15207 byte[] data,
15208 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15209 throws com.google.protobuf.InvalidProtocolBufferException {
15210 return PARSER.parseFrom(data, extensionRegistry);
15211 }
15212 public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
15213 throws java.io.IOException {
15214 return com.google.protobuf.GeneratedMessage
15215 .parseWithIOException(PARSER, input);
15216 }
15218 java.io.InputStream input,
15219 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15220 throws java.io.IOException {
15221 return com.google.protobuf.GeneratedMessage
15222 .parseWithIOException(PARSER, input, extensionRegistry);
15223 }
15224
15225 public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
15226 throws java.io.IOException {
15227 return com.google.protobuf.GeneratedMessage
15228 .parseDelimitedWithIOException(PARSER, input);
15229 }
15230
15232 java.io.InputStream input,
15233 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15234 throws java.io.IOException {
15235 return com.google.protobuf.GeneratedMessage
15236 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
15237 }
15239 com.google.protobuf.CodedInputStream input)
15240 throws java.io.IOException {
15241 return com.google.protobuf.GeneratedMessage
15242 .parseWithIOException(PARSER, input);
15243 }
15245 com.google.protobuf.CodedInputStream input,
15246 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15247 throws java.io.IOException {
15248 return com.google.protobuf.GeneratedMessage
15249 .parseWithIOException(PARSER, input, extensionRegistry);
15250 }
15251
15252 @java.lang.Override
15253 public Builder newBuilderForType() { return newBuilder(); }
15254 public static Builder newBuilder() {
15255 return DEFAULT_INSTANCE.toBuilder();
15256 }
15257 public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
15258 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
15259 }
15260 @java.lang.Override
15262 return this == DEFAULT_INSTANCE
15263 ? new Builder() : new Builder().mergeFrom(this);
15264 }
15265
15266 @java.lang.Override
15268 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
15269 Builder builder = new Builder(parent);
15270 return builder;
15271 }
15272
15282 public static final class Builder extends
15283 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
15284 // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
15286 public static final com.google.protobuf.Descriptors.Descriptor
15288 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
15289 }
15290
15291 @java.lang.Override
15292 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
15294 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
15295 .ensureFieldAccessorsInitialized(
15296 com.google.ortools.sat.SatParameters.class, com.google.ortools.sat.SatParameters.Builder.class);
15297 }
15298
15299 // Construct using com.google.ortools.sat.SatParameters.newBuilder()
15300 private Builder() {
15301
15302 }
15303
15304 private Builder(
15305 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
15306 super(parent);
15307
15308 }
15309 @java.lang.Override
15310 public Builder clear() {
15311 super.clear();
15312 bitField0_ = 0;
15313 bitField1_ = 0;
15314 bitField2_ = 0;
15315 bitField3_ = 0;
15316 bitField4_ = 0;
15317 bitField5_ = 0;
15318 bitField6_ = 0;
15319 bitField7_ = 0;
15320 bitField8_ = 0;
15321 name_ = "";
15322 preferredVariableOrder_ = 0;
15323 initialPolarity_ = 1;
15324 usePhaseSaving_ = true;
15325 polarityRephaseIncrement_ = 1000;
15326 polarityExploitLsHints_ = false;
15327 randomPolarityRatio_ = 0D;
15328 randomBranchesRatio_ = 0D;
15329 useErwaHeuristic_ = false;
15330 initialVariablesActivity_ = 0D;
15331 alsoBumpVariablesInConflictReasons_ = false;
15332 minimizationAlgorithm_ = 2;
15333 binaryMinimizationAlgorithm_ = 1;
15334 subsumptionDuringConflictAnalysis_ = true;
15335 clauseCleanupPeriod_ = 10000;
15336 clauseCleanupTarget_ = 0;
15337 clauseCleanupRatio_ = 0.5D;
15338 clauseCleanupProtection_ = 0;
15339 clauseCleanupLbdBound_ = 5;
15340 clauseCleanupOrdering_ = 0;
15341 pbCleanupIncrement_ = 200;
15342 pbCleanupRatio_ = 0.5D;
15343 variableActivityDecay_ = 0.8D;
15344 maxVariableActivityValue_ = 1e+100D;
15345 glucoseMaxDecay_ = 0.95D;
15346 glucoseDecayIncrement_ = 0.01D;
15347 glucoseDecayIncrementPeriod_ = 5000;
15348 clauseActivityDecay_ = 0.999D;
15349 maxClauseActivityValue_ = 1e+20D;
15350 restartAlgorithms_ = emptyIntList();
15351 bitField0_ = (bitField0_ & ~0x20000000);
15352 defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
15353 restartPeriod_ = 50;
15354 restartRunningWindowSize_ = 50;
15355 restartDlAverageRatio_ = 1D;
15356 restartLbdAverageRatio_ = 1D;
15357 useBlockingRestart_ = false;
15358 blockingRestartWindowSize_ = 5000;
15359 blockingRestartMultiplier_ = 1.4D;
15360 numConflictsBeforeStrategyChanges_ = 0;
15361 strategyChangeIncreaseRatio_ = 0D;
15362 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
15363 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
15364 maxNumDeterministicBatches_ = 0;
15365 maxNumberOfConflicts_ = 9223372036854775807L;
15366 maxMemoryInMb_ = 10000L;
15367 absoluteGapLimit_ = 0.0001D;
15368 relativeGapLimit_ = 0D;
15369 randomSeed_ = 1;
15370 permuteVariableRandomly_ = false;
15371 permutePresolveConstraintOrder_ = false;
15372 useAbslRandom_ = false;
15373 logSearchProgress_ = false;
15374 logSubsolverStatistics_ = false;
15375 logPrefix_ = "";
15376 logToStdout_ = true;
15377 logToResponse_ = false;
15378 usePbResolution_ = false;
15379 minimizeReductionDuringPbResolution_ = false;
15380 countAssumptionLevelsInLbd_ = true;
15381 presolveBveThreshold_ = 500;
15382 presolveBveClauseWeight_ = 3;
15383 probingDeterministicTimeLimit_ = 1D;
15384 presolveProbingDeterministicTimeLimit_ = 30D;
15385 presolveBlockedClause_ = true;
15386 presolveUseBva_ = true;
15387 presolveBvaThreshold_ = 1;
15388 maxPresolveIterations_ = 3;
15389 cpModelPresolve_ = true;
15390 cpModelProbingLevel_ = 2;
15391 cpModelUseSatPresolve_ = true;
15392 removeFixedVariablesEarly_ = true;
15393 detectTableWithCost_ = false;
15394 tableCompressionLevel_ = 2;
15395 expandAlldiffConstraints_ = false;
15396 expandReservoirConstraints_ = true;
15397 expandReservoirUsingCircuit_ = false;
15398 encodeCumulativeAsReservoir_ = false;
15399 maxLinMaxSizeForExpansion_ = 0;
15400 disableConstraintExpansion_ = false;
15401 encodeComplexLinearConstraintWithInteger_ = false;
15402 mergeNoOverlapWorkLimit_ = 1000000000000D;
15403 mergeAtMostOneWorkLimit_ = 100000000D;
15404 presolveSubstitutionLevel_ = 1;
15405 presolveExtractIntegerEnforcement_ = false;
15406 presolveInclusionWorkLimit_ = 100000000L;
15407 ignoreNames_ = true;
15408 inferAllDiffs_ = true;
15409 findBigLinearOverlap_ = true;
15410 useSatInprocessing_ = true;
15411 inprocessingDtimeRatio_ = 0.2D;
15412 inprocessingProbingDtime_ = 1D;
15413 inprocessingMinimizationDtime_ = 1D;
15414 inprocessingMinimizationUseConflictAnalysis_ = true;
15415 inprocessingMinimizationUseAllOrderings_ = false;
15416 numWorkers_ = 0;
15417 numSearchWorkers_ = 0;
15418 numFullSubsolvers_ = 0;
15419 subsolvers_ =
15420 com.google.protobuf.LazyStringArrayList.emptyList();
15421 extraSubsolvers_ =
15422 com.google.protobuf.LazyStringArrayList.emptyList();
15423 ignoreSubsolvers_ =
15424 com.google.protobuf.LazyStringArrayList.emptyList();
15425 filterSubsolvers_ =
15426 com.google.protobuf.LazyStringArrayList.emptyList();
15427 if (subsolverParamsBuilder_ == null) {
15428 subsolverParams_ = java.util.Collections.emptyList();
15429 } else {
15430 subsolverParams_ = null;
15431 subsolverParamsBuilder_.clear();
15432 }
15433 bitField3_ = (bitField3_ & ~0x00000020);
15434 interleaveSearch_ = false;
15435 interleaveBatchSize_ = 0;
15436 shareObjectiveBounds_ = true;
15437 shareLevelZeroBounds_ = true;
15438 shareBinaryClauses_ = true;
15439 shareGlueClauses_ = false;
15440 minimizeSharedClauses_ = true;
15441 debugPostsolveWithFullSolver_ = false;
15442 debugMaxNumPresolveOperations_ = 0;
15443 debugCrashOnBadHint_ = false;
15444 debugCrashIfPresolveBreaksHint_ = false;
15445 useOptimizationHints_ = true;
15446 coreMinimizationLevel_ = 2;
15447 findMultipleCores_ = true;
15448 coverOptimization_ = true;
15449 maxSatAssumptionOrder_ = 0;
15450 maxSatReverseAssumptionOrder_ = false;
15451 maxSatStratification_ = 1;
15452 propagationLoopDetectionFactor_ = 10D;
15453 usePrecedencesInDisjunctiveConstraint_ = true;
15454 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
15455 useStrongPropagationInDisjunctive_ = false;
15456 useDynamicPrecedenceInDisjunctive_ = false;
15457 useDynamicPrecedenceInCumulative_ = false;
15458 useOverloadCheckerInCumulative_ = false;
15459 useConservativeScaleOverloadChecker_ = false;
15460 useTimetableEdgeFindingInCumulative_ = false;
15461 maxNumIntervalsForTimetableEdgeFinding_ = 100;
15462 useHardPrecedencesInCumulative_ = false;
15463 exploitAllPrecedences_ = false;
15464 useDisjunctiveConstraintInCumulative_ = true;
15465 useTimetablingInNoOverlap2D_ = false;
15466 useEnergeticReasoningInNoOverlap2D_ = false;
15467 useAreaEnergeticReasoningInNoOverlap2D_ = false;
15468 useTryEdgeReasoningInNoOverlap2D_ = false;
15469 maxPairsPairwiseReasoningInNoOverlap2D_ = 1250;
15470 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = 0;
15471 useDualSchedulingHeuristics_ = true;
15472 useAllDifferentForCircuit_ = false;
15473 routingCutSubsetSizeForBinaryRelationBound_ = 0;
15474 routingCutSubsetSizeForTightBinaryRelationBound_ = 0;
15475 routingCutDpEffort_ = 10000000D;
15476 searchBranching_ = 0;
15477 hintConflictLimit_ = 10;
15478 repairHint_ = false;
15479 fixVariablesToTheirHintedValue_ = false;
15480 useProbingSearch_ = false;
15481 useExtendedProbing_ = true;
15482 probingNumCombinationsLimit_ = 20000;
15483 useShavingInProbingSearch_ = true;
15484 shavingSearchDeterministicTime_ = 0.001D;
15485 shavingSearchThreshold_ = 64L;
15486 useObjectiveLbSearch_ = false;
15487 useObjectiveShavingSearch_ = false;
15488 useVariablesShavingSearch_ = false;
15489 pseudoCostReliabilityThreshold_ = 100L;
15490 optimizeWithCore_ = false;
15491 optimizeWithLbTreeSearch_ = false;
15492 saveLpBasisInLbTreeSearch_ = false;
15493 binarySearchNumConflicts_ = -1;
15494 optimizeWithMaxHs_ = false;
15495 useFeasibilityJump_ = true;
15496 useLsOnly_ = false;
15497 feasibilityJumpDecay_ = 0.95D;
15498 feasibilityJumpLinearizationLevel_ = 2;
15499 feasibilityJumpRestartFactor_ = 1;
15500 feasibilityJumpBatchDtime_ = 0.1D;
15501 feasibilityJumpVarRandomizationProbability_ = 0.05D;
15502 feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
15503 feasibilityJumpEnableRestarts_ = true;
15504 feasibilityJumpMaxExpandedConstraintSize_ = 500;
15505 numViolationLs_ = 0;
15506 violationLsPerturbationPeriod_ = 100;
15507 violationLsCompoundMoveProbability_ = 0.5D;
15508 sharedTreeNumWorkers_ = 0;
15509 useSharedTreeSearch_ = false;
15510 sharedTreeWorkerMinRestartsPerSubtree_ = 1;
15511 sharedTreeWorkerEnableTrailSharing_ = true;
15512 sharedTreeWorkerEnablePhaseSharing_ = true;
15513 sharedTreeOpenLeavesPerWorker_ = 2D;
15514 sharedTreeMaxNodesPerWorker_ = 10000;
15515 sharedTreeSplitStrategy_ = 0;
15516 sharedTreeBalanceTolerance_ = 1;
15517 enumerateAllSolutions_ = false;
15518 keepAllFeasibleSolutionsInPresolve_ = false;
15519 fillTightenedDomainsInResponse_ = false;
15520 fillAdditionalSolutionsInResponse_ = false;
15521 instantiateAllVariables_ = true;
15522 autoDetectGreaterThanAtLeastOneOf_ = true;
15523 stopAfterFirstSolution_ = false;
15524 stopAfterPresolve_ = false;
15525 stopAfterRootPropagation_ = false;
15526 lnsInitialDifficulty_ = 0.5D;
15527 lnsInitialDeterministicLimit_ = 0.1D;
15528 useLns_ = true;
15529 useLnsOnly_ = false;
15530 solutionPoolSize_ = 3;
15531 useRinsLns_ = true;
15532 useFeasibilityPump_ = true;
15533 useLbRelaxLns_ = true;
15534 lbRelaxNumWorkersThreshold_ = 16;
15535 fpRounding_ = 2;
15536 diversifyLnsParams_ = false;
15537 randomizeSearch_ = false;
15538 searchRandomVariablePoolSize_ = 0L;
15539 pushAllTasksTowardStart_ = false;
15540 useOptionalVariables_ = false;
15541 useExactLpReason_ = true;
15542 useCombinedNoOverlap_ = false;
15543 atMostOneMaxExpansionSize_ = 3;
15544 catchSigintSignal_ = true;
15545 useImpliedBounds_ = true;
15546 polishLpSolution_ = false;
15547 lpPrimalTolerance_ = 1e-07D;
15548 lpDualTolerance_ = 1e-07D;
15549 convertIntervals_ = true;
15550 symmetryLevel_ = 2;
15551 useSymmetryInLp_ = false;
15552 keepSymmetryInPresolve_ = false;
15553 symmetryDetectionDeterministicTimeLimit_ = 1D;
15554 newLinearPropagation_ = true;
15555 linearSplitSize_ = 100;
15556 linearizationLevel_ = 1;
15557 booleanEncodingLevel_ = 1;
15558 maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
15559 maxNumCuts_ = 10000;
15560 cutLevel_ = 1;
15561 onlyAddCutsAtLevelZero_ = false;
15562 addObjectiveCut_ = false;
15563 addCgCuts_ = true;
15564 addMirCuts_ = true;
15565 addZeroHalfCuts_ = true;
15566 addCliqueCuts_ = true;
15567 addRltCuts_ = true;
15568 maxAllDiffCutSize_ = 64;
15569 addLinMaxCuts_ = true;
15570 maxIntegerRoundingScaling_ = 600;
15571 addLpConstraintsLazily_ = true;
15572 rootLpIterations_ = 2000;
15573 minOrthogonalityForLpConstraints_ = 0.05D;
15574 maxCutRoundsAtLevelZero_ = 1;
15575 maxConsecutiveInactiveCount_ = 100;
15576 cutMaxActiveCountValue_ = 10000000000D;
15577 cutActiveCountDecay_ = 0.8D;
15578 cutCleanupTarget_ = 1000;
15579 newConstraintsBatchSize_ = 50;
15580 exploitIntegerLpSolution_ = true;
15581 exploitAllLpSolution_ = true;
15582 exploitBestSolution_ = false;
15583 exploitRelaxationSolution_ = false;
15584 exploitObjective_ = true;
15585 detectLinearizedProduct_ = false;
15586 mipMaxBound_ = 10000000D;
15587 mipVarScaling_ = 1D;
15588 mipScaleLargeDomain_ = false;
15589 mipAutomaticallyScaleVariables_ = true;
15590 onlySolveIp_ = false;
15591 mipWantedPrecision_ = 1e-06D;
15592 mipMaxActivityExponent_ = 53;
15593 mipCheckPrecision_ = 0.0001D;
15594 mipComputeTrueObjectiveBound_ = true;
15595 mipMaxValidMagnitude_ = 1e+20D;
15596 mipTreatHighMagnitudeBoundsAsInfinity_ = false;
15597 mipDropTolerance_ = 1e-16D;
15598 mipPresolveLevel_ = 2;
15599 return this;
15600 }
15601
15602 @java.lang.Override
15603 public com.google.protobuf.Descriptors.Descriptor
15605 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
15606 }
15607
15608 @java.lang.Override
15610 return com.google.ortools.sat.SatParameters.getDefaultInstance();
15611 }
15612
15613 @java.lang.Override
15616 if (!result.isInitialized()) {
15617 throw newUninitializedMessageException(result);
15618 }
15619 return result;
15620 }
15621
15622 @java.lang.Override
15624 com.google.ortools.sat.SatParameters result = new com.google.ortools.sat.SatParameters(this);
15625 buildPartialRepeatedFields(result);
15626 if (bitField0_ != 0) { buildPartial0(result); }
15627 if (bitField1_ != 0) { buildPartial1(result); }
15628 if (bitField2_ != 0) { buildPartial2(result); }
15629 if (bitField3_ != 0) { buildPartial3(result); }
15630 if (bitField4_ != 0) { buildPartial4(result); }
15631 if (bitField5_ != 0) { buildPartial5(result); }
15632 if (bitField6_ != 0) { buildPartial6(result); }
15633 if (bitField7_ != 0) { buildPartial7(result); }
15634 if (bitField8_ != 0) { buildPartial8(result); }
15635 onBuilt();
15636 return result;
15637 }
15638
15639 private void buildPartialRepeatedFields(com.google.ortools.sat.SatParameters result) {
15640 if (((bitField0_ & 0x20000000) != 0)) {
15641 restartAlgorithms_.makeImmutable();
15642 bitField0_ = (bitField0_ & ~0x20000000);
15643 }
15644 result.restartAlgorithms_ = restartAlgorithms_;
15645 if (subsolverParamsBuilder_ == null) {
15646 if (((bitField3_ & 0x00000020) != 0)) {
15647 subsolverParams_ = java.util.Collections.unmodifiableList(subsolverParams_);
15648 bitField3_ = (bitField3_ & ~0x00000020);
15649 }
15650 result.subsolverParams_ = subsolverParams_;
15651 } else {
15652 result.subsolverParams_ = subsolverParamsBuilder_.build();
15653 }
15654 }
15655
15656 private void buildPartial0(com.google.ortools.sat.SatParameters result) {
15657 int from_bitField0_ = bitField0_;
15658 int to_bitField0_ = 0;
15659 if (((from_bitField0_ & 0x00000001) != 0)) {
15660 result.name_ = name_;
15661 to_bitField0_ |= 0x00000001;
15662 }
15663 if (((from_bitField0_ & 0x00000002) != 0)) {
15664 result.preferredVariableOrder_ = preferredVariableOrder_;
15665 to_bitField0_ |= 0x00000002;
15666 }
15667 if (((from_bitField0_ & 0x00000004) != 0)) {
15668 result.initialPolarity_ = initialPolarity_;
15669 to_bitField0_ |= 0x00000004;
15670 }
15671 if (((from_bitField0_ & 0x00000008) != 0)) {
15672 result.usePhaseSaving_ = usePhaseSaving_;
15673 to_bitField0_ |= 0x00000008;
15674 }
15675 if (((from_bitField0_ & 0x00000010) != 0)) {
15676 result.polarityRephaseIncrement_ = polarityRephaseIncrement_;
15677 to_bitField0_ |= 0x00000010;
15678 }
15679 if (((from_bitField0_ & 0x00000020) != 0)) {
15680 result.polarityExploitLsHints_ = polarityExploitLsHints_;
15681 to_bitField0_ |= 0x00000020;
15682 }
15683 if (((from_bitField0_ & 0x00000040) != 0)) {
15684 result.randomPolarityRatio_ = randomPolarityRatio_;
15685 to_bitField0_ |= 0x00000040;
15686 }
15687 if (((from_bitField0_ & 0x00000080) != 0)) {
15688 result.randomBranchesRatio_ = randomBranchesRatio_;
15689 to_bitField0_ |= 0x00000080;
15690 }
15691 if (((from_bitField0_ & 0x00000100) != 0)) {
15692 result.useErwaHeuristic_ = useErwaHeuristic_;
15693 to_bitField0_ |= 0x00000100;
15694 }
15695 if (((from_bitField0_ & 0x00000200) != 0)) {
15696 result.initialVariablesActivity_ = initialVariablesActivity_;
15697 to_bitField0_ |= 0x00000200;
15698 }
15699 if (((from_bitField0_ & 0x00000400) != 0)) {
15700 result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
15701 to_bitField0_ |= 0x00000400;
15702 }
15703 if (((from_bitField0_ & 0x00000800) != 0)) {
15704 result.minimizationAlgorithm_ = minimizationAlgorithm_;
15705 to_bitField0_ |= 0x00000800;
15706 }
15707 if (((from_bitField0_ & 0x00001000) != 0)) {
15708 result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
15709 to_bitField0_ |= 0x00001000;
15710 }
15711 if (((from_bitField0_ & 0x00002000) != 0)) {
15712 result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
15713 to_bitField0_ |= 0x00002000;
15714 }
15715 if (((from_bitField0_ & 0x00004000) != 0)) {
15716 result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
15717 to_bitField0_ |= 0x00004000;
15718 }
15719 if (((from_bitField0_ & 0x00008000) != 0)) {
15720 result.clauseCleanupTarget_ = clauseCleanupTarget_;
15721 to_bitField0_ |= 0x00008000;
15722 }
15723 if (((from_bitField0_ & 0x00010000) != 0)) {
15724 result.clauseCleanupRatio_ = clauseCleanupRatio_;
15725 to_bitField0_ |= 0x00010000;
15726 }
15727 if (((from_bitField0_ & 0x00020000) != 0)) {
15728 result.clauseCleanupProtection_ = clauseCleanupProtection_;
15729 to_bitField0_ |= 0x00020000;
15730 }
15731 if (((from_bitField0_ & 0x00040000) != 0)) {
15732 result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
15733 to_bitField0_ |= 0x00040000;
15734 }
15735 if (((from_bitField0_ & 0x00080000) != 0)) {
15736 result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
15737 to_bitField0_ |= 0x00080000;
15738 }
15739 if (((from_bitField0_ & 0x00100000) != 0)) {
15740 result.pbCleanupIncrement_ = pbCleanupIncrement_;
15741 to_bitField0_ |= 0x00100000;
15742 }
15743 if (((from_bitField0_ & 0x00200000) != 0)) {
15744 result.pbCleanupRatio_ = pbCleanupRatio_;
15745 to_bitField0_ |= 0x00200000;
15746 }
15747 if (((from_bitField0_ & 0x00400000) != 0)) {
15748 result.variableActivityDecay_ = variableActivityDecay_;
15749 to_bitField0_ |= 0x00400000;
15750 }
15751 if (((from_bitField0_ & 0x00800000) != 0)) {
15752 result.maxVariableActivityValue_ = maxVariableActivityValue_;
15753 to_bitField0_ |= 0x00800000;
15754 }
15755 if (((from_bitField0_ & 0x01000000) != 0)) {
15756 result.glucoseMaxDecay_ = glucoseMaxDecay_;
15757 to_bitField0_ |= 0x01000000;
15758 }
15759 if (((from_bitField0_ & 0x02000000) != 0)) {
15760 result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
15761 to_bitField0_ |= 0x02000000;
15762 }
15763 if (((from_bitField0_ & 0x04000000) != 0)) {
15764 result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
15765 to_bitField0_ |= 0x04000000;
15766 }
15767 if (((from_bitField0_ & 0x08000000) != 0)) {
15768 result.clauseActivityDecay_ = clauseActivityDecay_;
15769 to_bitField0_ |= 0x08000000;
15770 }
15771 if (((from_bitField0_ & 0x10000000) != 0)) {
15772 result.maxClauseActivityValue_ = maxClauseActivityValue_;
15773 to_bitField0_ |= 0x10000000;
15774 }
15775 if (((from_bitField0_ & 0x40000000) != 0)) {
15776 result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
15777 to_bitField0_ |= 0x20000000;
15778 }
15779 if (((from_bitField0_ & 0x80000000) != 0)) {
15780 result.restartPeriod_ = restartPeriod_;
15781 to_bitField0_ |= 0x40000000;
15782 }
15783 result.bitField0_ |= to_bitField0_;
15784 }
15785
15786 private void buildPartial1(com.google.ortools.sat.SatParameters result) {
15787 int from_bitField1_ = bitField1_;
15788 int to_bitField0_ = 0;
15789 if (((from_bitField1_ & 0x00000001) != 0)) {
15790 result.restartRunningWindowSize_ = restartRunningWindowSize_;
15791 to_bitField0_ |= 0x80000000;
15792 }
15793 int to_bitField1_ = 0;
15794 if (((from_bitField1_ & 0x00000002) != 0)) {
15795 result.restartDlAverageRatio_ = restartDlAverageRatio_;
15796 to_bitField1_ |= 0x00000001;
15797 }
15798 if (((from_bitField1_ & 0x00000004) != 0)) {
15799 result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
15800 to_bitField1_ |= 0x00000002;
15801 }
15802 if (((from_bitField1_ & 0x00000008) != 0)) {
15803 result.useBlockingRestart_ = useBlockingRestart_;
15804 to_bitField1_ |= 0x00000004;
15805 }
15806 if (((from_bitField1_ & 0x00000010) != 0)) {
15807 result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
15808 to_bitField1_ |= 0x00000008;
15809 }
15810 if (((from_bitField1_ & 0x00000020) != 0)) {
15811 result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
15812 to_bitField1_ |= 0x00000010;
15813 }
15814 if (((from_bitField1_ & 0x00000040) != 0)) {
15815 result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
15816 to_bitField1_ |= 0x00000020;
15817 }
15818 if (((from_bitField1_ & 0x00000080) != 0)) {
15819 result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
15820 to_bitField1_ |= 0x00000040;
15821 }
15822 if (((from_bitField1_ & 0x00000100) != 0)) {
15823 result.maxTimeInSeconds_ = maxTimeInSeconds_;
15824 to_bitField1_ |= 0x00000080;
15825 }
15826 if (((from_bitField1_ & 0x00000200) != 0)) {
15827 result.maxDeterministicTime_ = maxDeterministicTime_;
15828 to_bitField1_ |= 0x00000100;
15829 }
15830 if (((from_bitField1_ & 0x00000400) != 0)) {
15831 result.maxNumDeterministicBatches_ = maxNumDeterministicBatches_;
15832 to_bitField1_ |= 0x00000200;
15833 }
15834 if (((from_bitField1_ & 0x00000800) != 0)) {
15835 result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
15836 to_bitField1_ |= 0x00000400;
15837 }
15838 if (((from_bitField1_ & 0x00001000) != 0)) {
15839 result.maxMemoryInMb_ = maxMemoryInMb_;
15840 to_bitField1_ |= 0x00000800;
15841 }
15842 if (((from_bitField1_ & 0x00002000) != 0)) {
15843 result.absoluteGapLimit_ = absoluteGapLimit_;
15844 to_bitField1_ |= 0x00001000;
15845 }
15846 if (((from_bitField1_ & 0x00004000) != 0)) {
15847 result.relativeGapLimit_ = relativeGapLimit_;
15848 to_bitField1_ |= 0x00002000;
15849 }
15850 if (((from_bitField1_ & 0x00008000) != 0)) {
15851 result.randomSeed_ = randomSeed_;
15852 to_bitField1_ |= 0x00004000;
15853 }
15854 if (((from_bitField1_ & 0x00010000) != 0)) {
15855 result.permuteVariableRandomly_ = permuteVariableRandomly_;
15856 to_bitField1_ |= 0x00008000;
15857 }
15858 if (((from_bitField1_ & 0x00020000) != 0)) {
15859 result.permutePresolveConstraintOrder_ = permutePresolveConstraintOrder_;
15860 to_bitField1_ |= 0x00010000;
15861 }
15862 if (((from_bitField1_ & 0x00040000) != 0)) {
15863 result.useAbslRandom_ = useAbslRandom_;
15864 to_bitField1_ |= 0x00020000;
15865 }
15866 if (((from_bitField1_ & 0x00080000) != 0)) {
15867 result.logSearchProgress_ = logSearchProgress_;
15868 to_bitField1_ |= 0x00040000;
15869 }
15870 if (((from_bitField1_ & 0x00100000) != 0)) {
15871 result.logSubsolverStatistics_ = logSubsolverStatistics_;
15872 to_bitField1_ |= 0x00080000;
15873 }
15874 if (((from_bitField1_ & 0x00200000) != 0)) {
15875 result.logPrefix_ = logPrefix_;
15876 to_bitField1_ |= 0x00100000;
15877 }
15878 if (((from_bitField1_ & 0x00400000) != 0)) {
15879 result.logToStdout_ = logToStdout_;
15880 to_bitField1_ |= 0x00200000;
15881 }
15882 if (((from_bitField1_ & 0x00800000) != 0)) {
15883 result.logToResponse_ = logToResponse_;
15884 to_bitField1_ |= 0x00400000;
15885 }
15886 if (((from_bitField1_ & 0x01000000) != 0)) {
15887 result.usePbResolution_ = usePbResolution_;
15888 to_bitField1_ |= 0x00800000;
15889 }
15890 if (((from_bitField1_ & 0x02000000) != 0)) {
15891 result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
15892 to_bitField1_ |= 0x01000000;
15893 }
15894 if (((from_bitField1_ & 0x04000000) != 0)) {
15895 result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
15896 to_bitField1_ |= 0x02000000;
15897 }
15898 if (((from_bitField1_ & 0x08000000) != 0)) {
15899 result.presolveBveThreshold_ = presolveBveThreshold_;
15900 to_bitField1_ |= 0x04000000;
15901 }
15902 if (((from_bitField1_ & 0x10000000) != 0)) {
15903 result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
15904 to_bitField1_ |= 0x08000000;
15905 }
15906 if (((from_bitField1_ & 0x20000000) != 0)) {
15907 result.probingDeterministicTimeLimit_ = probingDeterministicTimeLimit_;
15908 to_bitField1_ |= 0x10000000;
15909 }
15910 if (((from_bitField1_ & 0x40000000) != 0)) {
15911 result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
15912 to_bitField1_ |= 0x20000000;
15913 }
15914 if (((from_bitField1_ & 0x80000000) != 0)) {
15915 result.presolveBlockedClause_ = presolveBlockedClause_;
15916 to_bitField1_ |= 0x40000000;
15917 }
15918 result.bitField0_ |= to_bitField0_;
15919 result.bitField1_ |= to_bitField1_;
15920 }
15921
15922 private void buildPartial2(com.google.ortools.sat.SatParameters result) {
15923 int from_bitField2_ = bitField2_;
15924 int to_bitField1_ = 0;
15925 if (((from_bitField2_ & 0x00000001) != 0)) {
15926 result.presolveUseBva_ = presolveUseBva_;
15927 to_bitField1_ |= 0x80000000;
15928 }
15929 int to_bitField2_ = 0;
15930 if (((from_bitField2_ & 0x00000002) != 0)) {
15931 result.presolveBvaThreshold_ = presolveBvaThreshold_;
15932 to_bitField2_ |= 0x00000001;
15933 }
15934 if (((from_bitField2_ & 0x00000004) != 0)) {
15935 result.maxPresolveIterations_ = maxPresolveIterations_;
15936 to_bitField2_ |= 0x00000002;
15937 }
15938 if (((from_bitField2_ & 0x00000008) != 0)) {
15939 result.cpModelPresolve_ = cpModelPresolve_;
15940 to_bitField2_ |= 0x00000004;
15941 }
15942 if (((from_bitField2_ & 0x00000010) != 0)) {
15943 result.cpModelProbingLevel_ = cpModelProbingLevel_;
15944 to_bitField2_ |= 0x00000008;
15945 }
15946 if (((from_bitField2_ & 0x00000020) != 0)) {
15947 result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
15948 to_bitField2_ |= 0x00000010;
15949 }
15950 if (((from_bitField2_ & 0x00000040) != 0)) {
15951 result.removeFixedVariablesEarly_ = removeFixedVariablesEarly_;
15952 to_bitField2_ |= 0x00000020;
15953 }
15954 if (((from_bitField2_ & 0x00000080) != 0)) {
15955 result.detectTableWithCost_ = detectTableWithCost_;
15956 to_bitField2_ |= 0x00000040;
15957 }
15958 if (((from_bitField2_ & 0x00000100) != 0)) {
15959 result.tableCompressionLevel_ = tableCompressionLevel_;
15960 to_bitField2_ |= 0x00000080;
15961 }
15962 if (((from_bitField2_ & 0x00000200) != 0)) {
15963 result.expandAlldiffConstraints_ = expandAlldiffConstraints_;
15964 to_bitField2_ |= 0x00000100;
15965 }
15966 if (((from_bitField2_ & 0x00000400) != 0)) {
15967 result.expandReservoirConstraints_ = expandReservoirConstraints_;
15968 to_bitField2_ |= 0x00000200;
15969 }
15970 if (((from_bitField2_ & 0x00000800) != 0)) {
15971 result.expandReservoirUsingCircuit_ = expandReservoirUsingCircuit_;
15972 to_bitField2_ |= 0x00000400;
15973 }
15974 if (((from_bitField2_ & 0x00001000) != 0)) {
15975 result.encodeCumulativeAsReservoir_ = encodeCumulativeAsReservoir_;
15976 to_bitField2_ |= 0x00000800;
15977 }
15978 if (((from_bitField2_ & 0x00002000) != 0)) {
15979 result.maxLinMaxSizeForExpansion_ = maxLinMaxSizeForExpansion_;
15980 to_bitField2_ |= 0x00001000;
15981 }
15982 if (((from_bitField2_ & 0x00004000) != 0)) {
15983 result.disableConstraintExpansion_ = disableConstraintExpansion_;
15984 to_bitField2_ |= 0x00002000;
15985 }
15986 if (((from_bitField2_ & 0x00008000) != 0)) {
15987 result.encodeComplexLinearConstraintWithInteger_ = encodeComplexLinearConstraintWithInteger_;
15988 to_bitField2_ |= 0x00004000;
15989 }
15990 if (((from_bitField2_ & 0x00010000) != 0)) {
15991 result.mergeNoOverlapWorkLimit_ = mergeNoOverlapWorkLimit_;
15992 to_bitField2_ |= 0x00008000;
15993 }
15994 if (((from_bitField2_ & 0x00020000) != 0)) {
15995 result.mergeAtMostOneWorkLimit_ = mergeAtMostOneWorkLimit_;
15996 to_bitField2_ |= 0x00010000;
15997 }
15998 if (((from_bitField2_ & 0x00040000) != 0)) {
15999 result.presolveSubstitutionLevel_ = presolveSubstitutionLevel_;
16000 to_bitField2_ |= 0x00020000;
16001 }
16002 if (((from_bitField2_ & 0x00080000) != 0)) {
16003 result.presolveExtractIntegerEnforcement_ = presolveExtractIntegerEnforcement_;
16004 to_bitField2_ |= 0x00040000;
16005 }
16006 if (((from_bitField2_ & 0x00100000) != 0)) {
16007 result.presolveInclusionWorkLimit_ = presolveInclusionWorkLimit_;
16008 to_bitField2_ |= 0x00080000;
16009 }
16010 if (((from_bitField2_ & 0x00200000) != 0)) {
16011 result.ignoreNames_ = ignoreNames_;
16012 to_bitField2_ |= 0x00100000;
16013 }
16014 if (((from_bitField2_ & 0x00400000) != 0)) {
16015 result.inferAllDiffs_ = inferAllDiffs_;
16016 to_bitField2_ |= 0x00200000;
16017 }
16018 if (((from_bitField2_ & 0x00800000) != 0)) {
16019 result.findBigLinearOverlap_ = findBigLinearOverlap_;
16020 to_bitField2_ |= 0x00400000;
16021 }
16022 if (((from_bitField2_ & 0x01000000) != 0)) {
16023 result.useSatInprocessing_ = useSatInprocessing_;
16024 to_bitField2_ |= 0x00800000;
16025 }
16026 if (((from_bitField2_ & 0x02000000) != 0)) {
16027 result.inprocessingDtimeRatio_ = inprocessingDtimeRatio_;
16028 to_bitField2_ |= 0x01000000;
16029 }
16030 if (((from_bitField2_ & 0x04000000) != 0)) {
16031 result.inprocessingProbingDtime_ = inprocessingProbingDtime_;
16032 to_bitField2_ |= 0x02000000;
16033 }
16034 if (((from_bitField2_ & 0x08000000) != 0)) {
16035 result.inprocessingMinimizationDtime_ = inprocessingMinimizationDtime_;
16036 to_bitField2_ |= 0x04000000;
16037 }
16038 if (((from_bitField2_ & 0x10000000) != 0)) {
16039 result.inprocessingMinimizationUseConflictAnalysis_ = inprocessingMinimizationUseConflictAnalysis_;
16040 to_bitField2_ |= 0x08000000;
16041 }
16042 if (((from_bitField2_ & 0x20000000) != 0)) {
16043 result.inprocessingMinimizationUseAllOrderings_ = inprocessingMinimizationUseAllOrderings_;
16044 to_bitField2_ |= 0x10000000;
16045 }
16046 if (((from_bitField2_ & 0x40000000) != 0)) {
16047 result.numWorkers_ = numWorkers_;
16048 to_bitField2_ |= 0x20000000;
16049 }
16050 if (((from_bitField2_ & 0x80000000) != 0)) {
16051 result.numSearchWorkers_ = numSearchWorkers_;
16052 to_bitField2_ |= 0x40000000;
16053 }
16054 result.bitField1_ |= to_bitField1_;
16055 result.bitField2_ |= to_bitField2_;
16056 }
16057
16058 private void buildPartial3(com.google.ortools.sat.SatParameters result) {
16059 int from_bitField3_ = bitField3_;
16060 int to_bitField2_ = 0;
16061 if (((from_bitField3_ & 0x00000001) != 0)) {
16062 result.numFullSubsolvers_ = numFullSubsolvers_;
16063 to_bitField2_ |= 0x80000000;
16064 }
16065 if (((from_bitField3_ & 0x00000002) != 0)) {
16066 subsolvers_.makeImmutable();
16067 result.subsolvers_ = subsolvers_;
16068 }
16069 if (((from_bitField3_ & 0x00000004) != 0)) {
16070 extraSubsolvers_.makeImmutable();
16071 result.extraSubsolvers_ = extraSubsolvers_;
16072 }
16073 if (((from_bitField3_ & 0x00000008) != 0)) {
16074 ignoreSubsolvers_.makeImmutable();
16075 result.ignoreSubsolvers_ = ignoreSubsolvers_;
16076 }
16077 if (((from_bitField3_ & 0x00000010) != 0)) {
16078 filterSubsolvers_.makeImmutable();
16079 result.filterSubsolvers_ = filterSubsolvers_;
16080 }
16081 int to_bitField3_ = 0;
16082 if (((from_bitField3_ & 0x00000040) != 0)) {
16083 result.interleaveSearch_ = interleaveSearch_;
16084 to_bitField3_ |= 0x00000001;
16085 }
16086 if (((from_bitField3_ & 0x00000080) != 0)) {
16087 result.interleaveBatchSize_ = interleaveBatchSize_;
16088 to_bitField3_ |= 0x00000002;
16089 }
16090 if (((from_bitField3_ & 0x00000100) != 0)) {
16091 result.shareObjectiveBounds_ = shareObjectiveBounds_;
16092 to_bitField3_ |= 0x00000004;
16093 }
16094 if (((from_bitField3_ & 0x00000200) != 0)) {
16095 result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
16096 to_bitField3_ |= 0x00000008;
16097 }
16098 if (((from_bitField3_ & 0x00000400) != 0)) {
16099 result.shareBinaryClauses_ = shareBinaryClauses_;
16100 to_bitField3_ |= 0x00000010;
16101 }
16102 if (((from_bitField3_ & 0x00000800) != 0)) {
16103 result.shareGlueClauses_ = shareGlueClauses_;
16104 to_bitField3_ |= 0x00000020;
16105 }
16106 if (((from_bitField3_ & 0x00001000) != 0)) {
16107 result.minimizeSharedClauses_ = minimizeSharedClauses_;
16108 to_bitField3_ |= 0x00000040;
16109 }
16110 if (((from_bitField3_ & 0x00002000) != 0)) {
16111 result.debugPostsolveWithFullSolver_ = debugPostsolveWithFullSolver_;
16112 to_bitField3_ |= 0x00000080;
16113 }
16114 if (((from_bitField3_ & 0x00004000) != 0)) {
16115 result.debugMaxNumPresolveOperations_ = debugMaxNumPresolveOperations_;
16116 to_bitField3_ |= 0x00000100;
16117 }
16118 if (((from_bitField3_ & 0x00008000) != 0)) {
16119 result.debugCrashOnBadHint_ = debugCrashOnBadHint_;
16120 to_bitField3_ |= 0x00000200;
16121 }
16122 if (((from_bitField3_ & 0x00010000) != 0)) {
16123 result.debugCrashIfPresolveBreaksHint_ = debugCrashIfPresolveBreaksHint_;
16124 to_bitField3_ |= 0x00000400;
16125 }
16126 if (((from_bitField3_ & 0x00020000) != 0)) {
16127 result.useOptimizationHints_ = useOptimizationHints_;
16128 to_bitField3_ |= 0x00000800;
16129 }
16130 if (((from_bitField3_ & 0x00040000) != 0)) {
16131 result.coreMinimizationLevel_ = coreMinimizationLevel_;
16132 to_bitField3_ |= 0x00001000;
16133 }
16134 if (((from_bitField3_ & 0x00080000) != 0)) {
16135 result.findMultipleCores_ = findMultipleCores_;
16136 to_bitField3_ |= 0x00002000;
16137 }
16138 if (((from_bitField3_ & 0x00100000) != 0)) {
16139 result.coverOptimization_ = coverOptimization_;
16140 to_bitField3_ |= 0x00004000;
16141 }
16142 if (((from_bitField3_ & 0x00200000) != 0)) {
16143 result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
16144 to_bitField3_ |= 0x00008000;
16145 }
16146 if (((from_bitField3_ & 0x00400000) != 0)) {
16147 result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
16148 to_bitField3_ |= 0x00010000;
16149 }
16150 if (((from_bitField3_ & 0x00800000) != 0)) {
16151 result.maxSatStratification_ = maxSatStratification_;
16152 to_bitField3_ |= 0x00020000;
16153 }
16154 if (((from_bitField3_ & 0x01000000) != 0)) {
16155 result.propagationLoopDetectionFactor_ = propagationLoopDetectionFactor_;
16156 to_bitField3_ |= 0x00040000;
16157 }
16158 if (((from_bitField3_ & 0x02000000) != 0)) {
16159 result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
16160 to_bitField3_ |= 0x00080000;
16161 }
16162 if (((from_bitField3_ & 0x04000000) != 0)) {
16163 result.maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
16164 to_bitField3_ |= 0x00100000;
16165 }
16166 if (((from_bitField3_ & 0x08000000) != 0)) {
16167 result.useStrongPropagationInDisjunctive_ = useStrongPropagationInDisjunctive_;
16168 to_bitField3_ |= 0x00200000;
16169 }
16170 if (((from_bitField3_ & 0x10000000) != 0)) {
16171 result.useDynamicPrecedenceInDisjunctive_ = useDynamicPrecedenceInDisjunctive_;
16172 to_bitField3_ |= 0x00400000;
16173 }
16174 if (((from_bitField3_ & 0x20000000) != 0)) {
16175 result.useDynamicPrecedenceInCumulative_ = useDynamicPrecedenceInCumulative_;
16176 to_bitField3_ |= 0x00800000;
16177 }
16178 if (((from_bitField3_ & 0x40000000) != 0)) {
16179 result.useOverloadCheckerInCumulative_ = useOverloadCheckerInCumulative_;
16180 to_bitField3_ |= 0x01000000;
16181 }
16182 if (((from_bitField3_ & 0x80000000) != 0)) {
16183 result.useConservativeScaleOverloadChecker_ = useConservativeScaleOverloadChecker_;
16184 to_bitField3_ |= 0x02000000;
16185 }
16186 result.bitField2_ |= to_bitField2_;
16187 result.bitField3_ |= to_bitField3_;
16188 }
16189
16190 private void buildPartial4(com.google.ortools.sat.SatParameters result) {
16191 int from_bitField4_ = bitField4_;
16192 int to_bitField3_ = 0;
16193 if (((from_bitField4_ & 0x00000001) != 0)) {
16194 result.useTimetableEdgeFindingInCumulative_ = useTimetableEdgeFindingInCumulative_;
16195 to_bitField3_ |= 0x04000000;
16196 }
16197 if (((from_bitField4_ & 0x00000002) != 0)) {
16198 result.maxNumIntervalsForTimetableEdgeFinding_ = maxNumIntervalsForTimetableEdgeFinding_;
16199 to_bitField3_ |= 0x08000000;
16200 }
16201 if (((from_bitField4_ & 0x00000004) != 0)) {
16202 result.useHardPrecedencesInCumulative_ = useHardPrecedencesInCumulative_;
16203 to_bitField3_ |= 0x10000000;
16204 }
16205 if (((from_bitField4_ & 0x00000008) != 0)) {
16206 result.exploitAllPrecedences_ = exploitAllPrecedences_;
16207 to_bitField3_ |= 0x20000000;
16208 }
16209 if (((from_bitField4_ & 0x00000010) != 0)) {
16210 result.useDisjunctiveConstraintInCumulative_ = useDisjunctiveConstraintInCumulative_;
16211 to_bitField3_ |= 0x40000000;
16212 }
16213 if (((from_bitField4_ & 0x00000020) != 0)) {
16214 result.useTimetablingInNoOverlap2D_ = useTimetablingInNoOverlap2D_;
16215 to_bitField3_ |= 0x80000000;
16216 }
16217 int to_bitField4_ = 0;
16218 if (((from_bitField4_ & 0x00000040) != 0)) {
16219 result.useEnergeticReasoningInNoOverlap2D_ = useEnergeticReasoningInNoOverlap2D_;
16220 to_bitField4_ |= 0x00000001;
16221 }
16222 if (((from_bitField4_ & 0x00000080) != 0)) {
16223 result.useAreaEnergeticReasoningInNoOverlap2D_ = useAreaEnergeticReasoningInNoOverlap2D_;
16224 to_bitField4_ |= 0x00000002;
16225 }
16226 if (((from_bitField4_ & 0x00000100) != 0)) {
16227 result.useTryEdgeReasoningInNoOverlap2D_ = useTryEdgeReasoningInNoOverlap2D_;
16228 to_bitField4_ |= 0x00000004;
16229 }
16230 if (((from_bitField4_ & 0x00000200) != 0)) {
16231 result.maxPairsPairwiseReasoningInNoOverlap2D_ = maxPairsPairwiseReasoningInNoOverlap2D_;
16232 to_bitField4_ |= 0x00000008;
16233 }
16234 if (((from_bitField4_ & 0x00000400) != 0)) {
16235 result.maximumRegionsToSplitInDisconnectedNoOverlap2D_ = maximumRegionsToSplitInDisconnectedNoOverlap2D_;
16236 to_bitField4_ |= 0x00000010;
16237 }
16238 if (((from_bitField4_ & 0x00000800) != 0)) {
16239 result.useDualSchedulingHeuristics_ = useDualSchedulingHeuristics_;
16240 to_bitField4_ |= 0x00000020;
16241 }
16242 if (((from_bitField4_ & 0x00001000) != 0)) {
16243 result.useAllDifferentForCircuit_ = useAllDifferentForCircuit_;
16244 to_bitField4_ |= 0x00000040;
16245 }
16246 if (((from_bitField4_ & 0x00002000) != 0)) {
16247 result.routingCutSubsetSizeForBinaryRelationBound_ = routingCutSubsetSizeForBinaryRelationBound_;
16248 to_bitField4_ |= 0x00000080;
16249 }
16250 if (((from_bitField4_ & 0x00004000) != 0)) {
16251 result.routingCutSubsetSizeForTightBinaryRelationBound_ = routingCutSubsetSizeForTightBinaryRelationBound_;
16252 to_bitField4_ |= 0x00000100;
16253 }
16254 if (((from_bitField4_ & 0x00008000) != 0)) {
16255 result.routingCutDpEffort_ = routingCutDpEffort_;
16256 to_bitField4_ |= 0x00000200;
16257 }
16258 if (((from_bitField4_ & 0x00010000) != 0)) {
16259 result.searchBranching_ = searchBranching_;
16260 to_bitField4_ |= 0x00000400;
16261 }
16262 if (((from_bitField4_ & 0x00020000) != 0)) {
16263 result.hintConflictLimit_ = hintConflictLimit_;
16264 to_bitField4_ |= 0x00000800;
16265 }
16266 if (((from_bitField4_ & 0x00040000) != 0)) {
16267 result.repairHint_ = repairHint_;
16268 to_bitField4_ |= 0x00001000;
16269 }
16270 if (((from_bitField4_ & 0x00080000) != 0)) {
16271 result.fixVariablesToTheirHintedValue_ = fixVariablesToTheirHintedValue_;
16272 to_bitField4_ |= 0x00002000;
16273 }
16274 if (((from_bitField4_ & 0x00100000) != 0)) {
16275 result.useProbingSearch_ = useProbingSearch_;
16276 to_bitField4_ |= 0x00004000;
16277 }
16278 if (((from_bitField4_ & 0x00200000) != 0)) {
16279 result.useExtendedProbing_ = useExtendedProbing_;
16280 to_bitField4_ |= 0x00008000;
16281 }
16282 if (((from_bitField4_ & 0x00400000) != 0)) {
16283 result.probingNumCombinationsLimit_ = probingNumCombinationsLimit_;
16284 to_bitField4_ |= 0x00010000;
16285 }
16286 if (((from_bitField4_ & 0x00800000) != 0)) {
16287 result.useShavingInProbingSearch_ = useShavingInProbingSearch_;
16288 to_bitField4_ |= 0x00020000;
16289 }
16290 if (((from_bitField4_ & 0x01000000) != 0)) {
16291 result.shavingSearchDeterministicTime_ = shavingSearchDeterministicTime_;
16292 to_bitField4_ |= 0x00040000;
16293 }
16294 if (((from_bitField4_ & 0x02000000) != 0)) {
16295 result.shavingSearchThreshold_ = shavingSearchThreshold_;
16296 to_bitField4_ |= 0x00080000;
16297 }
16298 if (((from_bitField4_ & 0x04000000) != 0)) {
16299 result.useObjectiveLbSearch_ = useObjectiveLbSearch_;
16300 to_bitField4_ |= 0x00100000;
16301 }
16302 if (((from_bitField4_ & 0x08000000) != 0)) {
16303 result.useObjectiveShavingSearch_ = useObjectiveShavingSearch_;
16304 to_bitField4_ |= 0x00200000;
16305 }
16306 if (((from_bitField4_ & 0x10000000) != 0)) {
16307 result.useVariablesShavingSearch_ = useVariablesShavingSearch_;
16308 to_bitField4_ |= 0x00400000;
16309 }
16310 if (((from_bitField4_ & 0x20000000) != 0)) {
16311 result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
16312 to_bitField4_ |= 0x00800000;
16313 }
16314 if (((from_bitField4_ & 0x40000000) != 0)) {
16315 result.optimizeWithCore_ = optimizeWithCore_;
16316 to_bitField4_ |= 0x01000000;
16317 }
16318 if (((from_bitField4_ & 0x80000000) != 0)) {
16319 result.optimizeWithLbTreeSearch_ = optimizeWithLbTreeSearch_;
16320 to_bitField4_ |= 0x02000000;
16321 }
16322 result.bitField3_ |= to_bitField3_;
16323 result.bitField4_ |= to_bitField4_;
16324 }
16325
16326 private void buildPartial5(com.google.ortools.sat.SatParameters result) {
16327 int from_bitField5_ = bitField5_;
16328 int to_bitField4_ = 0;
16329 if (((from_bitField5_ & 0x00000001) != 0)) {
16330 result.saveLpBasisInLbTreeSearch_ = saveLpBasisInLbTreeSearch_;
16331 to_bitField4_ |= 0x04000000;
16332 }
16333 if (((from_bitField5_ & 0x00000002) != 0)) {
16334 result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
16335 to_bitField4_ |= 0x08000000;
16336 }
16337 if (((from_bitField5_ & 0x00000004) != 0)) {
16338 result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
16339 to_bitField4_ |= 0x10000000;
16340 }
16341 if (((from_bitField5_ & 0x00000008) != 0)) {
16342 result.useFeasibilityJump_ = useFeasibilityJump_;
16343 to_bitField4_ |= 0x20000000;
16344 }
16345 if (((from_bitField5_ & 0x00000010) != 0)) {
16346 result.useLsOnly_ = useLsOnly_;
16347 to_bitField4_ |= 0x40000000;
16348 }
16349 if (((from_bitField5_ & 0x00000020) != 0)) {
16350 result.feasibilityJumpDecay_ = feasibilityJumpDecay_;
16351 to_bitField4_ |= 0x80000000;
16352 }
16353 int to_bitField5_ = 0;
16354 if (((from_bitField5_ & 0x00000040) != 0)) {
16355 result.feasibilityJumpLinearizationLevel_ = feasibilityJumpLinearizationLevel_;
16356 to_bitField5_ |= 0x00000001;
16357 }
16358 if (((from_bitField5_ & 0x00000080) != 0)) {
16359 result.feasibilityJumpRestartFactor_ = feasibilityJumpRestartFactor_;
16360 to_bitField5_ |= 0x00000002;
16361 }
16362 if (((from_bitField5_ & 0x00000100) != 0)) {
16363 result.feasibilityJumpBatchDtime_ = feasibilityJumpBatchDtime_;
16364 to_bitField5_ |= 0x00000004;
16365 }
16366 if (((from_bitField5_ & 0x00000200) != 0)) {
16367 result.feasibilityJumpVarRandomizationProbability_ = feasibilityJumpVarRandomizationProbability_;
16368 to_bitField5_ |= 0x00000008;
16369 }
16370 if (((from_bitField5_ & 0x00000400) != 0)) {
16371 result.feasibilityJumpVarPerburbationRangeRatio_ = feasibilityJumpVarPerburbationRangeRatio_;
16372 to_bitField5_ |= 0x00000010;
16373 }
16374 if (((from_bitField5_ & 0x00000800) != 0)) {
16375 result.feasibilityJumpEnableRestarts_ = feasibilityJumpEnableRestarts_;
16376 to_bitField5_ |= 0x00000020;
16377 }
16378 if (((from_bitField5_ & 0x00001000) != 0)) {
16379 result.feasibilityJumpMaxExpandedConstraintSize_ = feasibilityJumpMaxExpandedConstraintSize_;
16380 to_bitField5_ |= 0x00000040;
16381 }
16382 if (((from_bitField5_ & 0x00002000) != 0)) {
16383 result.numViolationLs_ = numViolationLs_;
16384 to_bitField5_ |= 0x00000080;
16385 }
16386 if (((from_bitField5_ & 0x00004000) != 0)) {
16387 result.violationLsPerturbationPeriod_ = violationLsPerturbationPeriod_;
16388 to_bitField5_ |= 0x00000100;
16389 }
16390 if (((from_bitField5_ & 0x00008000) != 0)) {
16391 result.violationLsCompoundMoveProbability_ = violationLsCompoundMoveProbability_;
16392 to_bitField5_ |= 0x00000200;
16393 }
16394 if (((from_bitField5_ & 0x00010000) != 0)) {
16395 result.sharedTreeNumWorkers_ = sharedTreeNumWorkers_;
16396 to_bitField5_ |= 0x00000400;
16397 }
16398 if (((from_bitField5_ & 0x00020000) != 0)) {
16399 result.useSharedTreeSearch_ = useSharedTreeSearch_;
16400 to_bitField5_ |= 0x00000800;
16401 }
16402 if (((from_bitField5_ & 0x00040000) != 0)) {
16403 result.sharedTreeWorkerMinRestartsPerSubtree_ = sharedTreeWorkerMinRestartsPerSubtree_;
16404 to_bitField5_ |= 0x00001000;
16405 }
16406 if (((from_bitField5_ & 0x00080000) != 0)) {
16407 result.sharedTreeWorkerEnableTrailSharing_ = sharedTreeWorkerEnableTrailSharing_;
16408 to_bitField5_ |= 0x00002000;
16409 }
16410 if (((from_bitField5_ & 0x00100000) != 0)) {
16411 result.sharedTreeWorkerEnablePhaseSharing_ = sharedTreeWorkerEnablePhaseSharing_;
16412 to_bitField5_ |= 0x00004000;
16413 }
16414 if (((from_bitField5_ & 0x00200000) != 0)) {
16415 result.sharedTreeOpenLeavesPerWorker_ = sharedTreeOpenLeavesPerWorker_;
16416 to_bitField5_ |= 0x00008000;
16417 }
16418 if (((from_bitField5_ & 0x00400000) != 0)) {
16419 result.sharedTreeMaxNodesPerWorker_ = sharedTreeMaxNodesPerWorker_;
16420 to_bitField5_ |= 0x00010000;
16421 }
16422 if (((from_bitField5_ & 0x00800000) != 0)) {
16423 result.sharedTreeSplitStrategy_ = sharedTreeSplitStrategy_;
16424 to_bitField5_ |= 0x00020000;
16425 }
16426 if (((from_bitField5_ & 0x01000000) != 0)) {
16427 result.sharedTreeBalanceTolerance_ = sharedTreeBalanceTolerance_;
16428 to_bitField5_ |= 0x00040000;
16429 }
16430 if (((from_bitField5_ & 0x02000000) != 0)) {
16431 result.enumerateAllSolutions_ = enumerateAllSolutions_;
16432 to_bitField5_ |= 0x00080000;
16433 }
16434 if (((from_bitField5_ & 0x04000000) != 0)) {
16435 result.keepAllFeasibleSolutionsInPresolve_ = keepAllFeasibleSolutionsInPresolve_;
16436 to_bitField5_ |= 0x00100000;
16437 }
16438 if (((from_bitField5_ & 0x08000000) != 0)) {
16439 result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
16440 to_bitField5_ |= 0x00200000;
16441 }
16442 if (((from_bitField5_ & 0x10000000) != 0)) {
16443 result.fillAdditionalSolutionsInResponse_ = fillAdditionalSolutionsInResponse_;
16444 to_bitField5_ |= 0x00400000;
16445 }
16446 if (((from_bitField5_ & 0x20000000) != 0)) {
16447 result.instantiateAllVariables_ = instantiateAllVariables_;
16448 to_bitField5_ |= 0x00800000;
16449 }
16450 if (((from_bitField5_ & 0x40000000) != 0)) {
16451 result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
16452 to_bitField5_ |= 0x01000000;
16453 }
16454 if (((from_bitField5_ & 0x80000000) != 0)) {
16455 result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
16456 to_bitField5_ |= 0x02000000;
16457 }
16458 result.bitField4_ |= to_bitField4_;
16459 result.bitField5_ |= to_bitField5_;
16460 }
16461
16462 private void buildPartial6(com.google.ortools.sat.SatParameters result) {
16463 int from_bitField6_ = bitField6_;
16464 int to_bitField5_ = 0;
16465 if (((from_bitField6_ & 0x00000001) != 0)) {
16466 result.stopAfterPresolve_ = stopAfterPresolve_;
16467 to_bitField5_ |= 0x04000000;
16468 }
16469 if (((from_bitField6_ & 0x00000002) != 0)) {
16470 result.stopAfterRootPropagation_ = stopAfterRootPropagation_;
16471 to_bitField5_ |= 0x08000000;
16472 }
16473 if (((from_bitField6_ & 0x00000004) != 0)) {
16474 result.lnsInitialDifficulty_ = lnsInitialDifficulty_;
16475 to_bitField5_ |= 0x10000000;
16476 }
16477 if (((from_bitField6_ & 0x00000008) != 0)) {
16478 result.lnsInitialDeterministicLimit_ = lnsInitialDeterministicLimit_;
16479 to_bitField5_ |= 0x20000000;
16480 }
16481 if (((from_bitField6_ & 0x00000010) != 0)) {
16482 result.useLns_ = useLns_;
16483 to_bitField5_ |= 0x40000000;
16484 }
16485 if (((from_bitField6_ & 0x00000020) != 0)) {
16486 result.useLnsOnly_ = useLnsOnly_;
16487 to_bitField5_ |= 0x80000000;
16488 }
16489 int to_bitField6_ = 0;
16490 if (((from_bitField6_ & 0x00000040) != 0)) {
16491 result.solutionPoolSize_ = solutionPoolSize_;
16492 to_bitField6_ |= 0x00000001;
16493 }
16494 if (((from_bitField6_ & 0x00000080) != 0)) {
16495 result.useRinsLns_ = useRinsLns_;
16496 to_bitField6_ |= 0x00000002;
16497 }
16498 if (((from_bitField6_ & 0x00000100) != 0)) {
16499 result.useFeasibilityPump_ = useFeasibilityPump_;
16500 to_bitField6_ |= 0x00000004;
16501 }
16502 if (((from_bitField6_ & 0x00000200) != 0)) {
16503 result.useLbRelaxLns_ = useLbRelaxLns_;
16504 to_bitField6_ |= 0x00000008;
16505 }
16506 if (((from_bitField6_ & 0x00000400) != 0)) {
16507 result.lbRelaxNumWorkersThreshold_ = lbRelaxNumWorkersThreshold_;
16508 to_bitField6_ |= 0x00000010;
16509 }
16510 if (((from_bitField6_ & 0x00000800) != 0)) {
16511 result.fpRounding_ = fpRounding_;
16512 to_bitField6_ |= 0x00000020;
16513 }
16514 if (((from_bitField6_ & 0x00001000) != 0)) {
16515 result.diversifyLnsParams_ = diversifyLnsParams_;
16516 to_bitField6_ |= 0x00000040;
16517 }
16518 if (((from_bitField6_ & 0x00002000) != 0)) {
16519 result.randomizeSearch_ = randomizeSearch_;
16520 to_bitField6_ |= 0x00000080;
16521 }
16522 if (((from_bitField6_ & 0x00004000) != 0)) {
16523 result.searchRandomVariablePoolSize_ = searchRandomVariablePoolSize_;
16524 to_bitField6_ |= 0x00000100;
16525 }
16526 if (((from_bitField6_ & 0x00008000) != 0)) {
16527 result.pushAllTasksTowardStart_ = pushAllTasksTowardStart_;
16528 to_bitField6_ |= 0x00000200;
16529 }
16530 if (((from_bitField6_ & 0x00010000) != 0)) {
16531 result.useOptionalVariables_ = useOptionalVariables_;
16532 to_bitField6_ |= 0x00000400;
16533 }
16534 if (((from_bitField6_ & 0x00020000) != 0)) {
16535 result.useExactLpReason_ = useExactLpReason_;
16536 to_bitField6_ |= 0x00000800;
16537 }
16538 if (((from_bitField6_ & 0x00040000) != 0)) {
16539 result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
16540 to_bitField6_ |= 0x00001000;
16541 }
16542 if (((from_bitField6_ & 0x00080000) != 0)) {
16543 result.atMostOneMaxExpansionSize_ = atMostOneMaxExpansionSize_;
16544 to_bitField6_ |= 0x00002000;
16545 }
16546 if (((from_bitField6_ & 0x00100000) != 0)) {
16547 result.catchSigintSignal_ = catchSigintSignal_;
16548 to_bitField6_ |= 0x00004000;
16549 }
16550 if (((from_bitField6_ & 0x00200000) != 0)) {
16551 result.useImpliedBounds_ = useImpliedBounds_;
16552 to_bitField6_ |= 0x00008000;
16553 }
16554 if (((from_bitField6_ & 0x00400000) != 0)) {
16555 result.polishLpSolution_ = polishLpSolution_;
16556 to_bitField6_ |= 0x00010000;
16557 }
16558 if (((from_bitField6_ & 0x00800000) != 0)) {
16559 result.lpPrimalTolerance_ = lpPrimalTolerance_;
16560 to_bitField6_ |= 0x00020000;
16561 }
16562 if (((from_bitField6_ & 0x01000000) != 0)) {
16563 result.lpDualTolerance_ = lpDualTolerance_;
16564 to_bitField6_ |= 0x00040000;
16565 }
16566 if (((from_bitField6_ & 0x02000000) != 0)) {
16567 result.convertIntervals_ = convertIntervals_;
16568 to_bitField6_ |= 0x00080000;
16569 }
16570 if (((from_bitField6_ & 0x04000000) != 0)) {
16571 result.symmetryLevel_ = symmetryLevel_;
16572 to_bitField6_ |= 0x00100000;
16573 }
16574 if (((from_bitField6_ & 0x08000000) != 0)) {
16575 result.useSymmetryInLp_ = useSymmetryInLp_;
16576 to_bitField6_ |= 0x00200000;
16577 }
16578 if (((from_bitField6_ & 0x10000000) != 0)) {
16579 result.keepSymmetryInPresolve_ = keepSymmetryInPresolve_;
16580 to_bitField6_ |= 0x00400000;
16581 }
16582 if (((from_bitField6_ & 0x20000000) != 0)) {
16583 result.symmetryDetectionDeterministicTimeLimit_ = symmetryDetectionDeterministicTimeLimit_;
16584 to_bitField6_ |= 0x00800000;
16585 }
16586 if (((from_bitField6_ & 0x40000000) != 0)) {
16587 result.newLinearPropagation_ = newLinearPropagation_;
16588 to_bitField6_ |= 0x01000000;
16589 }
16590 if (((from_bitField6_ & 0x80000000) != 0)) {
16591 result.linearSplitSize_ = linearSplitSize_;
16592 to_bitField6_ |= 0x02000000;
16593 }
16594 result.bitField5_ |= to_bitField5_;
16595 result.bitField6_ |= to_bitField6_;
16596 }
16597
16598 private void buildPartial7(com.google.ortools.sat.SatParameters result) {
16599 int from_bitField7_ = bitField7_;
16600 int to_bitField6_ = 0;
16601 if (((from_bitField7_ & 0x00000001) != 0)) {
16602 result.linearizationLevel_ = linearizationLevel_;
16603 to_bitField6_ |= 0x04000000;
16604 }
16605 if (((from_bitField7_ & 0x00000002) != 0)) {
16606 result.booleanEncodingLevel_ = booleanEncodingLevel_;
16607 to_bitField6_ |= 0x08000000;
16608 }
16609 if (((from_bitField7_ & 0x00000004) != 0)) {
16610 result.maxDomainSizeWhenEncodingEqNeqConstraints_ = maxDomainSizeWhenEncodingEqNeqConstraints_;
16611 to_bitField6_ |= 0x10000000;
16612 }
16613 if (((from_bitField7_ & 0x00000008) != 0)) {
16614 result.maxNumCuts_ = maxNumCuts_;
16615 to_bitField6_ |= 0x20000000;
16616 }
16617 if (((from_bitField7_ & 0x00000010) != 0)) {
16618 result.cutLevel_ = cutLevel_;
16619 to_bitField6_ |= 0x40000000;
16620 }
16621 if (((from_bitField7_ & 0x00000020) != 0)) {
16622 result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
16623 to_bitField6_ |= 0x80000000;
16624 }
16625 int to_bitField7_ = 0;
16626 if (((from_bitField7_ & 0x00000040) != 0)) {
16627 result.addObjectiveCut_ = addObjectiveCut_;
16628 to_bitField7_ |= 0x00000001;
16629 }
16630 if (((from_bitField7_ & 0x00000080) != 0)) {
16631 result.addCgCuts_ = addCgCuts_;
16632 to_bitField7_ |= 0x00000002;
16633 }
16634 if (((from_bitField7_ & 0x00000100) != 0)) {
16635 result.addMirCuts_ = addMirCuts_;
16636 to_bitField7_ |= 0x00000004;
16637 }
16638 if (((from_bitField7_ & 0x00000200) != 0)) {
16639 result.addZeroHalfCuts_ = addZeroHalfCuts_;
16640 to_bitField7_ |= 0x00000008;
16641 }
16642 if (((from_bitField7_ & 0x00000400) != 0)) {
16643 result.addCliqueCuts_ = addCliqueCuts_;
16644 to_bitField7_ |= 0x00000010;
16645 }
16646 if (((from_bitField7_ & 0x00000800) != 0)) {
16647 result.addRltCuts_ = addRltCuts_;
16648 to_bitField7_ |= 0x00000020;
16649 }
16650 if (((from_bitField7_ & 0x00001000) != 0)) {
16651 result.maxAllDiffCutSize_ = maxAllDiffCutSize_;
16652 to_bitField7_ |= 0x00000040;
16653 }
16654 if (((from_bitField7_ & 0x00002000) != 0)) {
16655 result.addLinMaxCuts_ = addLinMaxCuts_;
16656 to_bitField7_ |= 0x00000080;
16657 }
16658 if (((from_bitField7_ & 0x00004000) != 0)) {
16659 result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
16660 to_bitField7_ |= 0x00000100;
16661 }
16662 if (((from_bitField7_ & 0x00008000) != 0)) {
16663 result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
16664 to_bitField7_ |= 0x00000200;
16665 }
16666 if (((from_bitField7_ & 0x00010000) != 0)) {
16667 result.rootLpIterations_ = rootLpIterations_;
16668 to_bitField7_ |= 0x00000400;
16669 }
16670 if (((from_bitField7_ & 0x00020000) != 0)) {
16671 result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
16672 to_bitField7_ |= 0x00000800;
16673 }
16674 if (((from_bitField7_ & 0x00040000) != 0)) {
16675 result.maxCutRoundsAtLevelZero_ = maxCutRoundsAtLevelZero_;
16676 to_bitField7_ |= 0x00001000;
16677 }
16678 if (((from_bitField7_ & 0x00080000) != 0)) {
16679 result.maxConsecutiveInactiveCount_ = maxConsecutiveInactiveCount_;
16680 to_bitField7_ |= 0x00002000;
16681 }
16682 if (((from_bitField7_ & 0x00100000) != 0)) {
16683 result.cutMaxActiveCountValue_ = cutMaxActiveCountValue_;
16684 to_bitField7_ |= 0x00004000;
16685 }
16686 if (((from_bitField7_ & 0x00200000) != 0)) {
16687 result.cutActiveCountDecay_ = cutActiveCountDecay_;
16688 to_bitField7_ |= 0x00008000;
16689 }
16690 if (((from_bitField7_ & 0x00400000) != 0)) {
16691 result.cutCleanupTarget_ = cutCleanupTarget_;
16692 to_bitField7_ |= 0x00010000;
16693 }
16694 if (((from_bitField7_ & 0x00800000) != 0)) {
16695 result.newConstraintsBatchSize_ = newConstraintsBatchSize_;
16696 to_bitField7_ |= 0x00020000;
16697 }
16698 if (((from_bitField7_ & 0x01000000) != 0)) {
16699 result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
16700 to_bitField7_ |= 0x00040000;
16701 }
16702 if (((from_bitField7_ & 0x02000000) != 0)) {
16703 result.exploitAllLpSolution_ = exploitAllLpSolution_;
16704 to_bitField7_ |= 0x00080000;
16705 }
16706 if (((from_bitField7_ & 0x04000000) != 0)) {
16707 result.exploitBestSolution_ = exploitBestSolution_;
16708 to_bitField7_ |= 0x00100000;
16709 }
16710 if (((from_bitField7_ & 0x08000000) != 0)) {
16711 result.exploitRelaxationSolution_ = exploitRelaxationSolution_;
16712 to_bitField7_ |= 0x00200000;
16713 }
16714 if (((from_bitField7_ & 0x10000000) != 0)) {
16715 result.exploitObjective_ = exploitObjective_;
16716 to_bitField7_ |= 0x00400000;
16717 }
16718 if (((from_bitField7_ & 0x20000000) != 0)) {
16719 result.detectLinearizedProduct_ = detectLinearizedProduct_;
16720 to_bitField7_ |= 0x00800000;
16721 }
16722 if (((from_bitField7_ & 0x40000000) != 0)) {
16723 result.mipMaxBound_ = mipMaxBound_;
16724 to_bitField7_ |= 0x01000000;
16725 }
16726 if (((from_bitField7_ & 0x80000000) != 0)) {
16727 result.mipVarScaling_ = mipVarScaling_;
16728 to_bitField7_ |= 0x02000000;
16729 }
16730 result.bitField6_ |= to_bitField6_;
16731 result.bitField7_ |= to_bitField7_;
16732 }
16733
16734 private void buildPartial8(com.google.ortools.sat.SatParameters result) {
16735 int from_bitField8_ = bitField8_;
16736 int to_bitField7_ = 0;
16737 if (((from_bitField8_ & 0x00000001) != 0)) {
16738 result.mipScaleLargeDomain_ = mipScaleLargeDomain_;
16739 to_bitField7_ |= 0x04000000;
16740 }
16741 if (((from_bitField8_ & 0x00000002) != 0)) {
16742 result.mipAutomaticallyScaleVariables_ = mipAutomaticallyScaleVariables_;
16743 to_bitField7_ |= 0x08000000;
16744 }
16745 if (((from_bitField8_ & 0x00000004) != 0)) {
16746 result.onlySolveIp_ = onlySolveIp_;
16747 to_bitField7_ |= 0x10000000;
16748 }
16749 if (((from_bitField8_ & 0x00000008) != 0)) {
16750 result.mipWantedPrecision_ = mipWantedPrecision_;
16751 to_bitField7_ |= 0x20000000;
16752 }
16753 if (((from_bitField8_ & 0x00000010) != 0)) {
16754 result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
16755 to_bitField7_ |= 0x40000000;
16756 }
16757 if (((from_bitField8_ & 0x00000020) != 0)) {
16758 result.mipCheckPrecision_ = mipCheckPrecision_;
16759 to_bitField7_ |= 0x80000000;
16760 }
16761 int to_bitField8_ = 0;
16762 if (((from_bitField8_ & 0x00000040) != 0)) {
16763 result.mipComputeTrueObjectiveBound_ = mipComputeTrueObjectiveBound_;
16764 to_bitField8_ |= 0x00000001;
16765 }
16766 if (((from_bitField8_ & 0x00000080) != 0)) {
16767 result.mipMaxValidMagnitude_ = mipMaxValidMagnitude_;
16768 to_bitField8_ |= 0x00000002;
16769 }
16770 if (((from_bitField8_ & 0x00000100) != 0)) {
16771 result.mipTreatHighMagnitudeBoundsAsInfinity_ = mipTreatHighMagnitudeBoundsAsInfinity_;
16772 to_bitField8_ |= 0x00000004;
16773 }
16774 if (((from_bitField8_ & 0x00000200) != 0)) {
16775 result.mipDropTolerance_ = mipDropTolerance_;
16776 to_bitField8_ |= 0x00000008;
16777 }
16778 if (((from_bitField8_ & 0x00000400) != 0)) {
16779 result.mipPresolveLevel_ = mipPresolveLevel_;
16780 to_bitField8_ |= 0x00000010;
16781 }
16782 result.bitField7_ |= to_bitField7_;
16783 result.bitField8_ |= to_bitField8_;
16784 }
16785
16786 @java.lang.Override
16787 public Builder mergeFrom(com.google.protobuf.Message other) {
16788 if (other instanceof com.google.ortools.sat.SatParameters) {
16789 return mergeFrom((com.google.ortools.sat.SatParameters)other);
16790 } else {
16791 super.mergeFrom(other);
16792 return this;
16793 }
16794 }
16795
16796 public Builder mergeFrom(com.google.ortools.sat.SatParameters other) {
16797 if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
16798 if (other.hasName()) {
16799 name_ = other.name_;
16800 bitField0_ |= 0x00000001;
16801 onChanged();
16802 }
16803 if (other.hasPreferredVariableOrder()) {
16804 setPreferredVariableOrder(other.getPreferredVariableOrder());
16805 }
16806 if (other.hasInitialPolarity()) {
16807 setInitialPolarity(other.getInitialPolarity());
16808 }
16809 if (other.hasUsePhaseSaving()) {
16810 setUsePhaseSaving(other.getUsePhaseSaving());
16811 }
16812 if (other.hasPolarityRephaseIncrement()) {
16813 setPolarityRephaseIncrement(other.getPolarityRephaseIncrement());
16814 }
16815 if (other.hasPolarityExploitLsHints()) {
16816 setPolarityExploitLsHints(other.getPolarityExploitLsHints());
16817 }
16818 if (other.hasRandomPolarityRatio()) {
16819 setRandomPolarityRatio(other.getRandomPolarityRatio());
16820 }
16821 if (other.hasRandomBranchesRatio()) {
16822 setRandomBranchesRatio(other.getRandomBranchesRatio());
16823 }
16824 if (other.hasUseErwaHeuristic()) {
16825 setUseErwaHeuristic(other.getUseErwaHeuristic());
16826 }
16827 if (other.hasInitialVariablesActivity()) {
16828 setInitialVariablesActivity(other.getInitialVariablesActivity());
16829 }
16830 if (other.hasAlsoBumpVariablesInConflictReasons()) {
16831 setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
16832 }
16833 if (other.hasMinimizationAlgorithm()) {
16834 setMinimizationAlgorithm(other.getMinimizationAlgorithm());
16835 }
16836 if (other.hasBinaryMinimizationAlgorithm()) {
16837 setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
16838 }
16839 if (other.hasSubsumptionDuringConflictAnalysis()) {
16840 setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
16841 }
16842 if (other.hasClauseCleanupPeriod()) {
16843 setClauseCleanupPeriod(other.getClauseCleanupPeriod());
16844 }
16845 if (other.hasClauseCleanupTarget()) {
16846 setClauseCleanupTarget(other.getClauseCleanupTarget());
16847 }
16848 if (other.hasClauseCleanupRatio()) {
16849 setClauseCleanupRatio(other.getClauseCleanupRatio());
16850 }
16851 if (other.hasClauseCleanupProtection()) {
16852 setClauseCleanupProtection(other.getClauseCleanupProtection());
16853 }
16854 if (other.hasClauseCleanupLbdBound()) {
16855 setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
16856 }
16857 if (other.hasClauseCleanupOrdering()) {
16858 setClauseCleanupOrdering(other.getClauseCleanupOrdering());
16859 }
16860 if (other.hasPbCleanupIncrement()) {
16861 setPbCleanupIncrement(other.getPbCleanupIncrement());
16862 }
16863 if (other.hasPbCleanupRatio()) {
16864 setPbCleanupRatio(other.getPbCleanupRatio());
16865 }
16866 if (other.hasVariableActivityDecay()) {
16867 setVariableActivityDecay(other.getVariableActivityDecay());
16868 }
16869 if (other.hasMaxVariableActivityValue()) {
16870 setMaxVariableActivityValue(other.getMaxVariableActivityValue());
16871 }
16872 if (other.hasGlucoseMaxDecay()) {
16873 setGlucoseMaxDecay(other.getGlucoseMaxDecay());
16874 }
16875 if (other.hasGlucoseDecayIncrement()) {
16876 setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
16877 }
16878 if (other.hasGlucoseDecayIncrementPeriod()) {
16879 setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
16880 }
16881 if (other.hasClauseActivityDecay()) {
16882 setClauseActivityDecay(other.getClauseActivityDecay());
16883 }
16884 if (other.hasMaxClauseActivityValue()) {
16885 setMaxClauseActivityValue(other.getMaxClauseActivityValue());
16886 }
16887 if (!other.restartAlgorithms_.isEmpty()) {
16888 if (restartAlgorithms_.isEmpty()) {
16889 restartAlgorithms_ = other.restartAlgorithms_;
16890 bitField0_ = (bitField0_ & ~0x20000000);
16891 } else {
16892 ensureRestartAlgorithmsIsMutable();
16893 restartAlgorithms_.addAll(other.restartAlgorithms_);
16894 }
16895 onChanged();
16896 }
16897 if (other.hasDefaultRestartAlgorithms()) {
16898 defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
16899 bitField0_ |= 0x40000000;
16900 onChanged();
16901 }
16902 if (other.hasRestartPeriod()) {
16903 setRestartPeriod(other.getRestartPeriod());
16904 }
16905 if (other.hasRestartRunningWindowSize()) {
16906 setRestartRunningWindowSize(other.getRestartRunningWindowSize());
16907 }
16908 if (other.hasRestartDlAverageRatio()) {
16909 setRestartDlAverageRatio(other.getRestartDlAverageRatio());
16910 }
16911 if (other.hasRestartLbdAverageRatio()) {
16912 setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
16913 }
16914 if (other.hasUseBlockingRestart()) {
16915 setUseBlockingRestart(other.getUseBlockingRestart());
16916 }
16917 if (other.hasBlockingRestartWindowSize()) {
16918 setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
16919 }
16920 if (other.hasBlockingRestartMultiplier()) {
16921 setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
16922 }
16923 if (other.hasNumConflictsBeforeStrategyChanges()) {
16924 setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
16925 }
16926 if (other.hasStrategyChangeIncreaseRatio()) {
16927 setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
16928 }
16929 if (other.hasMaxTimeInSeconds()) {
16930 setMaxTimeInSeconds(other.getMaxTimeInSeconds());
16931 }
16932 if (other.hasMaxDeterministicTime()) {
16933 setMaxDeterministicTime(other.getMaxDeterministicTime());
16934 }
16935 if (other.hasMaxNumDeterministicBatches()) {
16936 setMaxNumDeterministicBatches(other.getMaxNumDeterministicBatches());
16937 }
16938 if (other.hasMaxNumberOfConflicts()) {
16939 setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
16940 }
16941 if (other.hasMaxMemoryInMb()) {
16942 setMaxMemoryInMb(other.getMaxMemoryInMb());
16943 }
16944 if (other.hasAbsoluteGapLimit()) {
16945 setAbsoluteGapLimit(other.getAbsoluteGapLimit());
16946 }
16947 if (other.hasRelativeGapLimit()) {
16948 setRelativeGapLimit(other.getRelativeGapLimit());
16949 }
16950 if (other.hasRandomSeed()) {
16951 setRandomSeed(other.getRandomSeed());
16952 }
16953 if (other.hasPermuteVariableRandomly()) {
16954 setPermuteVariableRandomly(other.getPermuteVariableRandomly());
16955 }
16956 if (other.hasPermutePresolveConstraintOrder()) {
16957 setPermutePresolveConstraintOrder(other.getPermutePresolveConstraintOrder());
16958 }
16959 if (other.hasUseAbslRandom()) {
16960 setUseAbslRandom(other.getUseAbslRandom());
16961 }
16962 if (other.hasLogSearchProgress()) {
16963 setLogSearchProgress(other.getLogSearchProgress());
16964 }
16965 if (other.hasLogSubsolverStatistics()) {
16966 setLogSubsolverStatistics(other.getLogSubsolverStatistics());
16967 }
16968 if (other.hasLogPrefix()) {
16969 logPrefix_ = other.logPrefix_;
16970 bitField1_ |= 0x00200000;
16971 onChanged();
16972 }
16973 if (other.hasLogToStdout()) {
16974 setLogToStdout(other.getLogToStdout());
16975 }
16976 if (other.hasLogToResponse()) {
16977 setLogToResponse(other.getLogToResponse());
16978 }
16979 if (other.hasUsePbResolution()) {
16980 setUsePbResolution(other.getUsePbResolution());
16981 }
16982 if (other.hasMinimizeReductionDuringPbResolution()) {
16983 setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
16984 }
16985 if (other.hasCountAssumptionLevelsInLbd()) {
16986 setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
16987 }
16988 if (other.hasPresolveBveThreshold()) {
16989 setPresolveBveThreshold(other.getPresolveBveThreshold());
16990 }
16991 if (other.hasPresolveBveClauseWeight()) {
16992 setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
16993 }
16994 if (other.hasProbingDeterministicTimeLimit()) {
16995 setProbingDeterministicTimeLimit(other.getProbingDeterministicTimeLimit());
16996 }
16997 if (other.hasPresolveProbingDeterministicTimeLimit()) {
16998 setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
16999 }
17000 if (other.hasPresolveBlockedClause()) {
17001 setPresolveBlockedClause(other.getPresolveBlockedClause());
17002 }
17003 if (other.hasPresolveUseBva()) {
17004 setPresolveUseBva(other.getPresolveUseBva());
17005 }
17006 if (other.hasPresolveBvaThreshold()) {
17007 setPresolveBvaThreshold(other.getPresolveBvaThreshold());
17008 }
17009 if (other.hasMaxPresolveIterations()) {
17010 setMaxPresolveIterations(other.getMaxPresolveIterations());
17011 }
17012 if (other.hasCpModelPresolve()) {
17013 setCpModelPresolve(other.getCpModelPresolve());
17014 }
17015 if (other.hasCpModelProbingLevel()) {
17016 setCpModelProbingLevel(other.getCpModelProbingLevel());
17017 }
17018 if (other.hasCpModelUseSatPresolve()) {
17019 setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
17020 }
17021 if (other.hasRemoveFixedVariablesEarly()) {
17022 setRemoveFixedVariablesEarly(other.getRemoveFixedVariablesEarly());
17023 }
17024 if (other.hasDetectTableWithCost()) {
17025 setDetectTableWithCost(other.getDetectTableWithCost());
17026 }
17027 if (other.hasTableCompressionLevel()) {
17028 setTableCompressionLevel(other.getTableCompressionLevel());
17029 }
17030 if (other.hasExpandAlldiffConstraints()) {
17031 setExpandAlldiffConstraints(other.getExpandAlldiffConstraints());
17032 }
17033 if (other.hasExpandReservoirConstraints()) {
17034 setExpandReservoirConstraints(other.getExpandReservoirConstraints());
17035 }
17036 if (other.hasExpandReservoirUsingCircuit()) {
17037 setExpandReservoirUsingCircuit(other.getExpandReservoirUsingCircuit());
17038 }
17039 if (other.hasEncodeCumulativeAsReservoir()) {
17040 setEncodeCumulativeAsReservoir(other.getEncodeCumulativeAsReservoir());
17041 }
17042 if (other.hasMaxLinMaxSizeForExpansion()) {
17043 setMaxLinMaxSizeForExpansion(other.getMaxLinMaxSizeForExpansion());
17044 }
17045 if (other.hasDisableConstraintExpansion()) {
17046 setDisableConstraintExpansion(other.getDisableConstraintExpansion());
17047 }
17048 if (other.hasEncodeComplexLinearConstraintWithInteger()) {
17049 setEncodeComplexLinearConstraintWithInteger(other.getEncodeComplexLinearConstraintWithInteger());
17050 }
17051 if (other.hasMergeNoOverlapWorkLimit()) {
17052 setMergeNoOverlapWorkLimit(other.getMergeNoOverlapWorkLimit());
17053 }
17054 if (other.hasMergeAtMostOneWorkLimit()) {
17055 setMergeAtMostOneWorkLimit(other.getMergeAtMostOneWorkLimit());
17056 }
17057 if (other.hasPresolveSubstitutionLevel()) {
17058 setPresolveSubstitutionLevel(other.getPresolveSubstitutionLevel());
17059 }
17060 if (other.hasPresolveExtractIntegerEnforcement()) {
17061 setPresolveExtractIntegerEnforcement(other.getPresolveExtractIntegerEnforcement());
17062 }
17063 if (other.hasPresolveInclusionWorkLimit()) {
17064 setPresolveInclusionWorkLimit(other.getPresolveInclusionWorkLimit());
17065 }
17066 if (other.hasIgnoreNames()) {
17067 setIgnoreNames(other.getIgnoreNames());
17068 }
17069 if (other.hasInferAllDiffs()) {
17070 setInferAllDiffs(other.getInferAllDiffs());
17071 }
17072 if (other.hasFindBigLinearOverlap()) {
17073 setFindBigLinearOverlap(other.getFindBigLinearOverlap());
17074 }
17075 if (other.hasUseSatInprocessing()) {
17076 setUseSatInprocessing(other.getUseSatInprocessing());
17077 }
17078 if (other.hasInprocessingDtimeRatio()) {
17079 setInprocessingDtimeRatio(other.getInprocessingDtimeRatio());
17080 }
17081 if (other.hasInprocessingProbingDtime()) {
17082 setInprocessingProbingDtime(other.getInprocessingProbingDtime());
17083 }
17084 if (other.hasInprocessingMinimizationDtime()) {
17085 setInprocessingMinimizationDtime(other.getInprocessingMinimizationDtime());
17086 }
17087 if (other.hasInprocessingMinimizationUseConflictAnalysis()) {
17088 setInprocessingMinimizationUseConflictAnalysis(other.getInprocessingMinimizationUseConflictAnalysis());
17089 }
17090 if (other.hasInprocessingMinimizationUseAllOrderings()) {
17091 setInprocessingMinimizationUseAllOrderings(other.getInprocessingMinimizationUseAllOrderings());
17092 }
17093 if (other.hasNumWorkers()) {
17094 setNumWorkers(other.getNumWorkers());
17095 }
17096 if (other.hasNumSearchWorkers()) {
17097 setNumSearchWorkers(other.getNumSearchWorkers());
17098 }
17099 if (other.hasNumFullSubsolvers()) {
17100 setNumFullSubsolvers(other.getNumFullSubsolvers());
17101 }
17102 if (!other.subsolvers_.isEmpty()) {
17103 if (subsolvers_.isEmpty()) {
17104 subsolvers_ = other.subsolvers_;
17105 bitField3_ |= 0x00000002;
17106 } else {
17107 ensureSubsolversIsMutable();
17108 subsolvers_.addAll(other.subsolvers_);
17109 }
17110 onChanged();
17111 }
17112 if (!other.extraSubsolvers_.isEmpty()) {
17113 if (extraSubsolvers_.isEmpty()) {
17114 extraSubsolvers_ = other.extraSubsolvers_;
17115 bitField3_ |= 0x00000004;
17116 } else {
17117 ensureExtraSubsolversIsMutable();
17118 extraSubsolvers_.addAll(other.extraSubsolvers_);
17119 }
17120 onChanged();
17121 }
17122 if (!other.ignoreSubsolvers_.isEmpty()) {
17123 if (ignoreSubsolvers_.isEmpty()) {
17124 ignoreSubsolvers_ = other.ignoreSubsolvers_;
17125 bitField3_ |= 0x00000008;
17126 } else {
17127 ensureIgnoreSubsolversIsMutable();
17128 ignoreSubsolvers_.addAll(other.ignoreSubsolvers_);
17129 }
17130 onChanged();
17131 }
17132 if (!other.filterSubsolvers_.isEmpty()) {
17133 if (filterSubsolvers_.isEmpty()) {
17134 filterSubsolvers_ = other.filterSubsolvers_;
17135 bitField3_ |= 0x00000010;
17136 } else {
17137 ensureFilterSubsolversIsMutable();
17138 filterSubsolvers_.addAll(other.filterSubsolvers_);
17139 }
17140 onChanged();
17141 }
17142 if (subsolverParamsBuilder_ == null) {
17143 if (!other.subsolverParams_.isEmpty()) {
17144 if (subsolverParams_.isEmpty()) {
17145 subsolverParams_ = other.subsolverParams_;
17146 bitField3_ = (bitField3_ & ~0x00000020);
17147 } else {
17148 ensureSubsolverParamsIsMutable();
17149 subsolverParams_.addAll(other.subsolverParams_);
17150 }
17151 onChanged();
17152 }
17153 } else {
17154 if (!other.subsolverParams_.isEmpty()) {
17155 if (subsolverParamsBuilder_.isEmpty()) {
17156 subsolverParamsBuilder_.dispose();
17157 subsolverParamsBuilder_ = null;
17158 subsolverParams_ = other.subsolverParams_;
17159 bitField3_ = (bitField3_ & ~0x00000020);
17160 subsolverParamsBuilder_ =
17161 com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
17162 getSubsolverParamsFieldBuilder() : null;
17163 } else {
17164 subsolverParamsBuilder_.addAllMessages(other.subsolverParams_);
17165 }
17166 }
17167 }
17168 if (other.hasInterleaveSearch()) {
17169 setInterleaveSearch(other.getInterleaveSearch());
17170 }
17171 if (other.hasInterleaveBatchSize()) {
17172 setInterleaveBatchSize(other.getInterleaveBatchSize());
17173 }
17174 if (other.hasShareObjectiveBounds()) {
17175 setShareObjectiveBounds(other.getShareObjectiveBounds());
17176 }
17177 if (other.hasShareLevelZeroBounds()) {
17178 setShareLevelZeroBounds(other.getShareLevelZeroBounds());
17179 }
17180 if (other.hasShareBinaryClauses()) {
17181 setShareBinaryClauses(other.getShareBinaryClauses());
17182 }
17183 if (other.hasShareGlueClauses()) {
17184 setShareGlueClauses(other.getShareGlueClauses());
17185 }
17186 if (other.hasMinimizeSharedClauses()) {
17187 setMinimizeSharedClauses(other.getMinimizeSharedClauses());
17188 }
17189 if (other.hasDebugPostsolveWithFullSolver()) {
17190 setDebugPostsolveWithFullSolver(other.getDebugPostsolveWithFullSolver());
17191 }
17192 if (other.hasDebugMaxNumPresolveOperations()) {
17193 setDebugMaxNumPresolveOperations(other.getDebugMaxNumPresolveOperations());
17194 }
17195 if (other.hasDebugCrashOnBadHint()) {
17196 setDebugCrashOnBadHint(other.getDebugCrashOnBadHint());
17197 }
17198 if (other.hasDebugCrashIfPresolveBreaksHint()) {
17199 setDebugCrashIfPresolveBreaksHint(other.getDebugCrashIfPresolveBreaksHint());
17200 }
17201 if (other.hasUseOptimizationHints()) {
17202 setUseOptimizationHints(other.getUseOptimizationHints());
17203 }
17204 if (other.hasCoreMinimizationLevel()) {
17205 setCoreMinimizationLevel(other.getCoreMinimizationLevel());
17206 }
17207 if (other.hasFindMultipleCores()) {
17208 setFindMultipleCores(other.getFindMultipleCores());
17209 }
17210 if (other.hasCoverOptimization()) {
17211 setCoverOptimization(other.getCoverOptimization());
17212 }
17213 if (other.hasMaxSatAssumptionOrder()) {
17214 setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
17215 }
17216 if (other.hasMaxSatReverseAssumptionOrder()) {
17217 setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
17218 }
17219 if (other.hasMaxSatStratification()) {
17220 setMaxSatStratification(other.getMaxSatStratification());
17221 }
17222 if (other.hasPropagationLoopDetectionFactor()) {
17223 setPropagationLoopDetectionFactor(other.getPropagationLoopDetectionFactor());
17224 }
17225 if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
17226 setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
17227 }
17228 if (other.hasMaxSizeToCreatePrecedenceLiteralsInDisjunctive()) {
17229 setMaxSizeToCreatePrecedenceLiteralsInDisjunctive(other.getMaxSizeToCreatePrecedenceLiteralsInDisjunctive());
17230 }
17231 if (other.hasUseStrongPropagationInDisjunctive()) {
17232 setUseStrongPropagationInDisjunctive(other.getUseStrongPropagationInDisjunctive());
17233 }
17234 if (other.hasUseDynamicPrecedenceInDisjunctive()) {
17235 setUseDynamicPrecedenceInDisjunctive(other.getUseDynamicPrecedenceInDisjunctive());
17236 }
17237 if (other.hasUseDynamicPrecedenceInCumulative()) {
17238 setUseDynamicPrecedenceInCumulative(other.getUseDynamicPrecedenceInCumulative());
17239 }
17240 if (other.hasUseOverloadCheckerInCumulative()) {
17241 setUseOverloadCheckerInCumulative(other.getUseOverloadCheckerInCumulative());
17242 }
17243 if (other.hasUseConservativeScaleOverloadChecker()) {
17244 setUseConservativeScaleOverloadChecker(other.getUseConservativeScaleOverloadChecker());
17245 }
17246 if (other.hasUseTimetableEdgeFindingInCumulative()) {
17247 setUseTimetableEdgeFindingInCumulative(other.getUseTimetableEdgeFindingInCumulative());
17248 }
17249 if (other.hasMaxNumIntervalsForTimetableEdgeFinding()) {
17250 setMaxNumIntervalsForTimetableEdgeFinding(other.getMaxNumIntervalsForTimetableEdgeFinding());
17251 }
17252 if (other.hasUseHardPrecedencesInCumulative()) {
17253 setUseHardPrecedencesInCumulative(other.getUseHardPrecedencesInCumulative());
17254 }
17255 if (other.hasExploitAllPrecedences()) {
17256 setExploitAllPrecedences(other.getExploitAllPrecedences());
17257 }
17258 if (other.hasUseDisjunctiveConstraintInCumulative()) {
17259 setUseDisjunctiveConstraintInCumulative(other.getUseDisjunctiveConstraintInCumulative());
17260 }
17261 if (other.hasUseTimetablingInNoOverlap2D()) {
17262 setUseTimetablingInNoOverlap2D(other.getUseTimetablingInNoOverlap2D());
17263 }
17264 if (other.hasUseEnergeticReasoningInNoOverlap2D()) {
17265 setUseEnergeticReasoningInNoOverlap2D(other.getUseEnergeticReasoningInNoOverlap2D());
17266 }
17267 if (other.hasUseAreaEnergeticReasoningInNoOverlap2D()) {
17268 setUseAreaEnergeticReasoningInNoOverlap2D(other.getUseAreaEnergeticReasoningInNoOverlap2D());
17269 }
17270 if (other.hasUseTryEdgeReasoningInNoOverlap2D()) {
17271 setUseTryEdgeReasoningInNoOverlap2D(other.getUseTryEdgeReasoningInNoOverlap2D());
17272 }
17273 if (other.hasMaxPairsPairwiseReasoningInNoOverlap2D()) {
17274 setMaxPairsPairwiseReasoningInNoOverlap2D(other.getMaxPairsPairwiseReasoningInNoOverlap2D());
17275 }
17276 if (other.hasMaximumRegionsToSplitInDisconnectedNoOverlap2D()) {
17277 setMaximumRegionsToSplitInDisconnectedNoOverlap2D(other.getMaximumRegionsToSplitInDisconnectedNoOverlap2D());
17278 }
17279 if (other.hasUseDualSchedulingHeuristics()) {
17280 setUseDualSchedulingHeuristics(other.getUseDualSchedulingHeuristics());
17281 }
17282 if (other.hasUseAllDifferentForCircuit()) {
17283 setUseAllDifferentForCircuit(other.getUseAllDifferentForCircuit());
17284 }
17285 if (other.hasRoutingCutSubsetSizeForBinaryRelationBound()) {
17286 setRoutingCutSubsetSizeForBinaryRelationBound(other.getRoutingCutSubsetSizeForBinaryRelationBound());
17287 }
17288 if (other.hasRoutingCutSubsetSizeForTightBinaryRelationBound()) {
17289 setRoutingCutSubsetSizeForTightBinaryRelationBound(other.getRoutingCutSubsetSizeForTightBinaryRelationBound());
17290 }
17291 if (other.hasRoutingCutDpEffort()) {
17292 setRoutingCutDpEffort(other.getRoutingCutDpEffort());
17293 }
17294 if (other.hasSearchBranching()) {
17295 setSearchBranching(other.getSearchBranching());
17296 }
17297 if (other.hasHintConflictLimit()) {
17298 setHintConflictLimit(other.getHintConflictLimit());
17299 }
17300 if (other.hasRepairHint()) {
17301 setRepairHint(other.getRepairHint());
17302 }
17303 if (other.hasFixVariablesToTheirHintedValue()) {
17304 setFixVariablesToTheirHintedValue(other.getFixVariablesToTheirHintedValue());
17305 }
17306 if (other.hasUseProbingSearch()) {
17307 setUseProbingSearch(other.getUseProbingSearch());
17308 }
17309 if (other.hasUseExtendedProbing()) {
17310 setUseExtendedProbing(other.getUseExtendedProbing());
17311 }
17312 if (other.hasProbingNumCombinationsLimit()) {
17313 setProbingNumCombinationsLimit(other.getProbingNumCombinationsLimit());
17314 }
17315 if (other.hasUseShavingInProbingSearch()) {
17316 setUseShavingInProbingSearch(other.getUseShavingInProbingSearch());
17317 }
17318 if (other.hasShavingSearchDeterministicTime()) {
17319 setShavingSearchDeterministicTime(other.getShavingSearchDeterministicTime());
17320 }
17321 if (other.hasShavingSearchThreshold()) {
17322 setShavingSearchThreshold(other.getShavingSearchThreshold());
17323 }
17324 if (other.hasUseObjectiveLbSearch()) {
17325 setUseObjectiveLbSearch(other.getUseObjectiveLbSearch());
17326 }
17327 if (other.hasUseObjectiveShavingSearch()) {
17328 setUseObjectiveShavingSearch(other.getUseObjectiveShavingSearch());
17329 }
17330 if (other.hasUseVariablesShavingSearch()) {
17331 setUseVariablesShavingSearch(other.getUseVariablesShavingSearch());
17332 }
17333 if (other.hasPseudoCostReliabilityThreshold()) {
17334 setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
17335 }
17336 if (other.hasOptimizeWithCore()) {
17337 setOptimizeWithCore(other.getOptimizeWithCore());
17338 }
17339 if (other.hasOptimizeWithLbTreeSearch()) {
17340 setOptimizeWithLbTreeSearch(other.getOptimizeWithLbTreeSearch());
17341 }
17342 if (other.hasSaveLpBasisInLbTreeSearch()) {
17343 setSaveLpBasisInLbTreeSearch(other.getSaveLpBasisInLbTreeSearch());
17344 }
17345 if (other.hasBinarySearchNumConflicts()) {
17346 setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
17347 }
17348 if (other.hasOptimizeWithMaxHs()) {
17349 setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
17350 }
17351 if (other.hasUseFeasibilityJump()) {
17352 setUseFeasibilityJump(other.getUseFeasibilityJump());
17353 }
17354 if (other.hasUseLsOnly()) {
17355 setUseLsOnly(other.getUseLsOnly());
17356 }
17357 if (other.hasFeasibilityJumpDecay()) {
17358 setFeasibilityJumpDecay(other.getFeasibilityJumpDecay());
17359 }
17360 if (other.hasFeasibilityJumpLinearizationLevel()) {
17361 setFeasibilityJumpLinearizationLevel(other.getFeasibilityJumpLinearizationLevel());
17362 }
17363 if (other.hasFeasibilityJumpRestartFactor()) {
17364 setFeasibilityJumpRestartFactor(other.getFeasibilityJumpRestartFactor());
17365 }
17366 if (other.hasFeasibilityJumpBatchDtime()) {
17367 setFeasibilityJumpBatchDtime(other.getFeasibilityJumpBatchDtime());
17368 }
17369 if (other.hasFeasibilityJumpVarRandomizationProbability()) {
17370 setFeasibilityJumpVarRandomizationProbability(other.getFeasibilityJumpVarRandomizationProbability());
17371 }
17372 if (other.hasFeasibilityJumpVarPerburbationRangeRatio()) {
17373 setFeasibilityJumpVarPerburbationRangeRatio(other.getFeasibilityJumpVarPerburbationRangeRatio());
17374 }
17375 if (other.hasFeasibilityJumpEnableRestarts()) {
17376 setFeasibilityJumpEnableRestarts(other.getFeasibilityJumpEnableRestarts());
17377 }
17378 if (other.hasFeasibilityJumpMaxExpandedConstraintSize()) {
17379 setFeasibilityJumpMaxExpandedConstraintSize(other.getFeasibilityJumpMaxExpandedConstraintSize());
17380 }
17381 if (other.hasNumViolationLs()) {
17382 setNumViolationLs(other.getNumViolationLs());
17383 }
17384 if (other.hasViolationLsPerturbationPeriod()) {
17385 setViolationLsPerturbationPeriod(other.getViolationLsPerturbationPeriod());
17386 }
17387 if (other.hasViolationLsCompoundMoveProbability()) {
17388 setViolationLsCompoundMoveProbability(other.getViolationLsCompoundMoveProbability());
17389 }
17390 if (other.hasSharedTreeNumWorkers()) {
17391 setSharedTreeNumWorkers(other.getSharedTreeNumWorkers());
17392 }
17393 if (other.hasUseSharedTreeSearch()) {
17394 setUseSharedTreeSearch(other.getUseSharedTreeSearch());
17395 }
17396 if (other.hasSharedTreeWorkerMinRestartsPerSubtree()) {
17397 setSharedTreeWorkerMinRestartsPerSubtree(other.getSharedTreeWorkerMinRestartsPerSubtree());
17398 }
17399 if (other.hasSharedTreeWorkerEnableTrailSharing()) {
17400 setSharedTreeWorkerEnableTrailSharing(other.getSharedTreeWorkerEnableTrailSharing());
17401 }
17402 if (other.hasSharedTreeWorkerEnablePhaseSharing()) {
17403 setSharedTreeWorkerEnablePhaseSharing(other.getSharedTreeWorkerEnablePhaseSharing());
17404 }
17405 if (other.hasSharedTreeOpenLeavesPerWorker()) {
17406 setSharedTreeOpenLeavesPerWorker(other.getSharedTreeOpenLeavesPerWorker());
17407 }
17408 if (other.hasSharedTreeMaxNodesPerWorker()) {
17409 setSharedTreeMaxNodesPerWorker(other.getSharedTreeMaxNodesPerWorker());
17410 }
17411 if (other.hasSharedTreeSplitStrategy()) {
17412 setSharedTreeSplitStrategy(other.getSharedTreeSplitStrategy());
17413 }
17414 if (other.hasSharedTreeBalanceTolerance()) {
17415 setSharedTreeBalanceTolerance(other.getSharedTreeBalanceTolerance());
17416 }
17417 if (other.hasEnumerateAllSolutions()) {
17418 setEnumerateAllSolutions(other.getEnumerateAllSolutions());
17419 }
17420 if (other.hasKeepAllFeasibleSolutionsInPresolve()) {
17421 setKeepAllFeasibleSolutionsInPresolve(other.getKeepAllFeasibleSolutionsInPresolve());
17422 }
17423 if (other.hasFillTightenedDomainsInResponse()) {
17424 setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
17425 }
17426 if (other.hasFillAdditionalSolutionsInResponse()) {
17427 setFillAdditionalSolutionsInResponse(other.getFillAdditionalSolutionsInResponse());
17428 }
17429 if (other.hasInstantiateAllVariables()) {
17430 setInstantiateAllVariables(other.getInstantiateAllVariables());
17431 }
17432 if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
17433 setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
17434 }
17435 if (other.hasStopAfterFirstSolution()) {
17436 setStopAfterFirstSolution(other.getStopAfterFirstSolution());
17437 }
17438 if (other.hasStopAfterPresolve()) {
17439 setStopAfterPresolve(other.getStopAfterPresolve());
17440 }
17441 if (other.hasStopAfterRootPropagation()) {
17442 setStopAfterRootPropagation(other.getStopAfterRootPropagation());
17443 }
17444 if (other.hasLnsInitialDifficulty()) {
17445 setLnsInitialDifficulty(other.getLnsInitialDifficulty());
17446 }
17447 if (other.hasLnsInitialDeterministicLimit()) {
17448 setLnsInitialDeterministicLimit(other.getLnsInitialDeterministicLimit());
17449 }
17450 if (other.hasUseLns()) {
17451 setUseLns(other.getUseLns());
17452 }
17453 if (other.hasUseLnsOnly()) {
17454 setUseLnsOnly(other.getUseLnsOnly());
17455 }
17456 if (other.hasSolutionPoolSize()) {
17457 setSolutionPoolSize(other.getSolutionPoolSize());
17458 }
17459 if (other.hasUseRinsLns()) {
17460 setUseRinsLns(other.getUseRinsLns());
17461 }
17462 if (other.hasUseFeasibilityPump()) {
17463 setUseFeasibilityPump(other.getUseFeasibilityPump());
17464 }
17465 if (other.hasUseLbRelaxLns()) {
17466 setUseLbRelaxLns(other.getUseLbRelaxLns());
17467 }
17468 if (other.hasLbRelaxNumWorkersThreshold()) {
17469 setLbRelaxNumWorkersThreshold(other.getLbRelaxNumWorkersThreshold());
17470 }
17471 if (other.hasFpRounding()) {
17472 setFpRounding(other.getFpRounding());
17473 }
17474 if (other.hasDiversifyLnsParams()) {
17475 setDiversifyLnsParams(other.getDiversifyLnsParams());
17476 }
17477 if (other.hasRandomizeSearch()) {
17478 setRandomizeSearch(other.getRandomizeSearch());
17479 }
17480 if (other.hasSearchRandomVariablePoolSize()) {
17481 setSearchRandomVariablePoolSize(other.getSearchRandomVariablePoolSize());
17482 }
17483 if (other.hasPushAllTasksTowardStart()) {
17484 setPushAllTasksTowardStart(other.getPushAllTasksTowardStart());
17485 }
17486 if (other.hasUseOptionalVariables()) {
17487 setUseOptionalVariables(other.getUseOptionalVariables());
17488 }
17489 if (other.hasUseExactLpReason()) {
17490 setUseExactLpReason(other.getUseExactLpReason());
17491 }
17492 if (other.hasUseCombinedNoOverlap()) {
17493 setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
17494 }
17495 if (other.hasAtMostOneMaxExpansionSize()) {
17496 setAtMostOneMaxExpansionSize(other.getAtMostOneMaxExpansionSize());
17497 }
17498 if (other.hasCatchSigintSignal()) {
17499 setCatchSigintSignal(other.getCatchSigintSignal());
17500 }
17501 if (other.hasUseImpliedBounds()) {
17502 setUseImpliedBounds(other.getUseImpliedBounds());
17503 }
17504 if (other.hasPolishLpSolution()) {
17505 setPolishLpSolution(other.getPolishLpSolution());
17506 }
17507 if (other.hasLpPrimalTolerance()) {
17508 setLpPrimalTolerance(other.getLpPrimalTolerance());
17509 }
17510 if (other.hasLpDualTolerance()) {
17511 setLpDualTolerance(other.getLpDualTolerance());
17512 }
17513 if (other.hasConvertIntervals()) {
17514 setConvertIntervals(other.getConvertIntervals());
17515 }
17516 if (other.hasSymmetryLevel()) {
17517 setSymmetryLevel(other.getSymmetryLevel());
17518 }
17519 if (other.hasUseSymmetryInLp()) {
17520 setUseSymmetryInLp(other.getUseSymmetryInLp());
17521 }
17522 if (other.hasKeepSymmetryInPresolve()) {
17523 setKeepSymmetryInPresolve(other.getKeepSymmetryInPresolve());
17524 }
17525 if (other.hasSymmetryDetectionDeterministicTimeLimit()) {
17526 setSymmetryDetectionDeterministicTimeLimit(other.getSymmetryDetectionDeterministicTimeLimit());
17527 }
17528 if (other.hasNewLinearPropagation()) {
17529 setNewLinearPropagation(other.getNewLinearPropagation());
17530 }
17531 if (other.hasLinearSplitSize()) {
17532 setLinearSplitSize(other.getLinearSplitSize());
17533 }
17534 if (other.hasLinearizationLevel()) {
17535 setLinearizationLevel(other.getLinearizationLevel());
17536 }
17537 if (other.hasBooleanEncodingLevel()) {
17538 setBooleanEncodingLevel(other.getBooleanEncodingLevel());
17539 }
17540 if (other.hasMaxDomainSizeWhenEncodingEqNeqConstraints()) {
17541 setMaxDomainSizeWhenEncodingEqNeqConstraints(other.getMaxDomainSizeWhenEncodingEqNeqConstraints());
17542 }
17543 if (other.hasMaxNumCuts()) {
17544 setMaxNumCuts(other.getMaxNumCuts());
17545 }
17546 if (other.hasCutLevel()) {
17547 setCutLevel(other.getCutLevel());
17548 }
17549 if (other.hasOnlyAddCutsAtLevelZero()) {
17550 setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
17551 }
17552 if (other.hasAddObjectiveCut()) {
17553 setAddObjectiveCut(other.getAddObjectiveCut());
17554 }
17555 if (other.hasAddCgCuts()) {
17556 setAddCgCuts(other.getAddCgCuts());
17557 }
17558 if (other.hasAddMirCuts()) {
17559 setAddMirCuts(other.getAddMirCuts());
17560 }
17561 if (other.hasAddZeroHalfCuts()) {
17562 setAddZeroHalfCuts(other.getAddZeroHalfCuts());
17563 }
17564 if (other.hasAddCliqueCuts()) {
17565 setAddCliqueCuts(other.getAddCliqueCuts());
17566 }
17567 if (other.hasAddRltCuts()) {
17568 setAddRltCuts(other.getAddRltCuts());
17569 }
17570 if (other.hasMaxAllDiffCutSize()) {
17571 setMaxAllDiffCutSize(other.getMaxAllDiffCutSize());
17572 }
17573 if (other.hasAddLinMaxCuts()) {
17574 setAddLinMaxCuts(other.getAddLinMaxCuts());
17575 }
17576 if (other.hasMaxIntegerRoundingScaling()) {
17577 setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
17578 }
17579 if (other.hasAddLpConstraintsLazily()) {
17580 setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
17581 }
17582 if (other.hasRootLpIterations()) {
17583 setRootLpIterations(other.getRootLpIterations());
17584 }
17585 if (other.hasMinOrthogonalityForLpConstraints()) {
17586 setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
17587 }
17588 if (other.hasMaxCutRoundsAtLevelZero()) {
17589 setMaxCutRoundsAtLevelZero(other.getMaxCutRoundsAtLevelZero());
17590 }
17591 if (other.hasMaxConsecutiveInactiveCount()) {
17592 setMaxConsecutiveInactiveCount(other.getMaxConsecutiveInactiveCount());
17593 }
17594 if (other.hasCutMaxActiveCountValue()) {
17595 setCutMaxActiveCountValue(other.getCutMaxActiveCountValue());
17596 }
17597 if (other.hasCutActiveCountDecay()) {
17598 setCutActiveCountDecay(other.getCutActiveCountDecay());
17599 }
17600 if (other.hasCutCleanupTarget()) {
17601 setCutCleanupTarget(other.getCutCleanupTarget());
17602 }
17603 if (other.hasNewConstraintsBatchSize()) {
17604 setNewConstraintsBatchSize(other.getNewConstraintsBatchSize());
17605 }
17606 if (other.hasExploitIntegerLpSolution()) {
17607 setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
17608 }
17609 if (other.hasExploitAllLpSolution()) {
17610 setExploitAllLpSolution(other.getExploitAllLpSolution());
17611 }
17612 if (other.hasExploitBestSolution()) {
17613 setExploitBestSolution(other.getExploitBestSolution());
17614 }
17615 if (other.hasExploitRelaxationSolution()) {
17616 setExploitRelaxationSolution(other.getExploitRelaxationSolution());
17617 }
17618 if (other.hasExploitObjective()) {
17619 setExploitObjective(other.getExploitObjective());
17620 }
17621 if (other.hasDetectLinearizedProduct()) {
17622 setDetectLinearizedProduct(other.getDetectLinearizedProduct());
17623 }
17624 if (other.hasMipMaxBound()) {
17625 setMipMaxBound(other.getMipMaxBound());
17626 }
17627 if (other.hasMipVarScaling()) {
17628 setMipVarScaling(other.getMipVarScaling());
17629 }
17630 if (other.hasMipScaleLargeDomain()) {
17631 setMipScaleLargeDomain(other.getMipScaleLargeDomain());
17632 }
17633 if (other.hasMipAutomaticallyScaleVariables()) {
17634 setMipAutomaticallyScaleVariables(other.getMipAutomaticallyScaleVariables());
17635 }
17636 if (other.hasOnlySolveIp()) {
17637 setOnlySolveIp(other.getOnlySolveIp());
17638 }
17639 if (other.hasMipWantedPrecision()) {
17640 setMipWantedPrecision(other.getMipWantedPrecision());
17641 }
17642 if (other.hasMipMaxActivityExponent()) {
17643 setMipMaxActivityExponent(other.getMipMaxActivityExponent());
17644 }
17645 if (other.hasMipCheckPrecision()) {
17646 setMipCheckPrecision(other.getMipCheckPrecision());
17647 }
17648 if (other.hasMipComputeTrueObjectiveBound()) {
17649 setMipComputeTrueObjectiveBound(other.getMipComputeTrueObjectiveBound());
17650 }
17651 if (other.hasMipMaxValidMagnitude()) {
17652 setMipMaxValidMagnitude(other.getMipMaxValidMagnitude());
17653 }
17654 if (other.hasMipTreatHighMagnitudeBoundsAsInfinity()) {
17655 setMipTreatHighMagnitudeBoundsAsInfinity(other.getMipTreatHighMagnitudeBoundsAsInfinity());
17656 }
17657 if (other.hasMipDropTolerance()) {
17658 setMipDropTolerance(other.getMipDropTolerance());
17659 }
17660 if (other.hasMipPresolveLevel()) {
17661 setMipPresolveLevel(other.getMipPresolveLevel());
17662 }
17663 this.mergeUnknownFields(other.getUnknownFields());
17664 onChanged();
17665 return this;
17666 }
17667
17668 @java.lang.Override
17669 public final boolean isInitialized() {
17670 return true;
17671 }
17672
17673 @java.lang.Override
17674 public Builder mergeFrom(
17675 com.google.protobuf.CodedInputStream input,
17676 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17677 throws java.io.IOException {
17678 if (extensionRegistry == null) {
17679 throw new java.lang.NullPointerException();
17680 }
17681 try {
17682 boolean done = false;
17683 while (!done) {
17684 int tag = input.readTag();
17685 switch (tag) {
17686 case 0:
17687 done = true;
17688 break;
17689 case 8: {
17690 int tmpRaw = input.readEnum();
17692 com.google.ortools.sat.SatParameters.VariableOrder.forNumber(tmpRaw);
17693 if (tmpValue == null) {
17694 mergeUnknownVarintField(1, tmpRaw);
17695 } else {
17696 preferredVariableOrder_ = tmpRaw;
17697 bitField0_ |= 0x00000002;
17698 }
17699 break;
17700 } // case 8
17701 case 16: {
17702 int tmpRaw = input.readEnum();
17704 com.google.ortools.sat.SatParameters.Polarity.forNumber(tmpRaw);
17705 if (tmpValue == null) {
17706 mergeUnknownVarintField(2, tmpRaw);
17707 } else {
17708 initialPolarity_ = tmpRaw;
17709 bitField0_ |= 0x00000004;
17710 }
17711 break;
17712 } // case 16
17713 case 32: {
17714 int tmpRaw = input.readEnum();
17716 com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.forNumber(tmpRaw);
17717 if (tmpValue == null) {
17718 mergeUnknownVarintField(4, tmpRaw);
17719 } else {
17720 minimizationAlgorithm_ = tmpRaw;
17721 bitField0_ |= 0x00000800;
17722 }
17723 break;
17724 } // case 32
17725 case 88: {
17726 clauseCleanupPeriod_ = input.readInt32();
17727 bitField0_ |= 0x00004000;
17728 break;
17729 } // case 88
17730 case 104: {
17731 clauseCleanupTarget_ = input.readInt32();
17732 bitField0_ |= 0x00008000;
17733 break;
17734 } // case 104
17735 case 121: {
17736 variableActivityDecay_ = input.readDouble();
17737 bitField0_ |= 0x00400000;
17738 break;
17739 } // case 121
17740 case 129: {
17741 maxVariableActivityValue_ = input.readDouble();
17742 bitField0_ |= 0x00800000;
17743 break;
17744 } // case 129
17745 case 137: {
17746 clauseActivityDecay_ = input.readDouble();
17747 bitField0_ |= 0x08000000;
17748 break;
17749 } // case 137
17750 case 145: {
17751 maxClauseActivityValue_ = input.readDouble();
17752 bitField0_ |= 0x10000000;
17753 break;
17754 } // case 145
17755 case 177: {
17756 glucoseMaxDecay_ = input.readDouble();
17757 bitField0_ |= 0x01000000;
17758 break;
17759 } // case 177
17760 case 185: {
17761 glucoseDecayIncrement_ = input.readDouble();
17762 bitField0_ |= 0x02000000;
17763 break;
17764 } // case 185
17765 case 192: {
17766 glucoseDecayIncrementPeriod_ = input.readInt32();
17767 bitField0_ |= 0x04000000;
17768 break;
17769 } // case 192
17770 case 240: {
17771 restartPeriod_ = input.readInt32();
17772 bitField0_ |= 0x80000000;
17773 break;
17774 } // case 240
17775 case 248: {
17776 randomSeed_ = input.readInt32();
17777 bitField1_ |= 0x00008000;
17778 break;
17779 } // case 248
17780 case 257: {
17781 randomBranchesRatio_ = input.readDouble();
17782 bitField0_ |= 0x00000080;
17783 break;
17784 } // case 257
17785 case 272: {
17786 int tmpRaw = input.readEnum();
17788 com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.forNumber(tmpRaw);
17789 if (tmpValue == null) {
17790 mergeUnknownVarintField(34, tmpRaw);
17791 } else {
17792 binaryMinimizationAlgorithm_ = tmpRaw;
17793 bitField0_ |= 0x00001000;
17794 }
17795 break;
17796 } // case 272
17797 case 280: {
17798 useOptimizationHints_ = input.readBool();
17799 bitField3_ |= 0x00020000;
17800 break;
17801 } // case 280
17802 case 289: {
17803 maxTimeInSeconds_ = input.readDouble();
17804 bitField1_ |= 0x00000100;
17805 break;
17806 } // case 289
17807 case 296: {
17808 maxNumberOfConflicts_ = input.readInt64();
17809 bitField1_ |= 0x00000800;
17810 break;
17811 } // case 296
17812 case 320: {
17813 maxMemoryInMb_ = input.readInt64();
17814 bitField1_ |= 0x00001000;
17815 break;
17816 } // case 320
17817 case 328: {
17818 logSearchProgress_ = input.readBool();
17819 bitField1_ |= 0x00080000;
17820 break;
17821 } // case 328
17822 case 344: {
17823 usePbResolution_ = input.readBool();
17824 bitField1_ |= 0x01000000;
17825 break;
17826 } // case 344
17827 case 352: {
17828 usePhaseSaving_ = input.readBool();
17829 bitField0_ |= 0x00000008;
17830 break;
17831 } // case 352
17832 case 361: {
17833 randomPolarityRatio_ = input.readDouble();
17834 bitField0_ |= 0x00000040;
17835 break;
17836 } // case 361
17837 case 368: {
17838 pbCleanupIncrement_ = input.readInt32();
17839 bitField0_ |= 0x00100000;
17840 break;
17841 } // case 368
17842 case 377: {
17843 pbCleanupRatio_ = input.readDouble();
17844 bitField0_ |= 0x00200000;
17845 break;
17846 } // case 377
17847 case 384: {
17848 minimizeReductionDuringPbResolution_ = input.readBool();
17849 bitField1_ |= 0x02000000;
17850 break;
17851 } // case 384
17852 case 392: {
17853 countAssumptionLevelsInLbd_ = input.readBool();
17854 bitField1_ |= 0x04000000;
17855 break;
17856 } // case 392
17857 case 400: {
17858 coreMinimizationLevel_ = input.readInt32();
17859 bitField3_ |= 0x00040000;
17860 break;
17861 } // case 400
17862 case 408: {
17863 int tmpRaw = input.readEnum();
17865 com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.forNumber(tmpRaw);
17866 if (tmpValue == null) {
17867 mergeUnknownVarintField(51, tmpRaw);
17868 } else {
17869 maxSatAssumptionOrder_ = tmpRaw;
17870 bitField3_ |= 0x00200000;
17871 }
17872 break;
17873 } // case 408
17874 case 416: {
17875 maxSatReverseAssumptionOrder_ = input.readBool();
17876 bitField3_ |= 0x00400000;
17877 break;
17878 } // case 416
17879 case 424: {
17880 int tmpRaw = input.readEnum();
17882 com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.forNumber(tmpRaw);
17883 if (tmpValue == null) {
17884 mergeUnknownVarintField(53, tmpRaw);
17885 } else {
17886 maxSatStratification_ = tmpRaw;
17887 bitField3_ |= 0x00800000;
17888 }
17889 break;
17890 } // case 424
17891 case 432: {
17892 presolveBveThreshold_ = input.readInt32();
17893 bitField1_ |= 0x08000000;
17894 break;
17895 } // case 432
17896 case 440: {
17897 presolveBveClauseWeight_ = input.readInt32();
17898 bitField1_ |= 0x10000000;
17899 break;
17900 } // case 440
17901 case 448: {
17902 subsumptionDuringConflictAnalysis_ = input.readBool();
17903 bitField0_ |= 0x00002000;
17904 break;
17905 } // case 448
17906 case 457: {
17907 presolveProbingDeterministicTimeLimit_ = input.readDouble();
17908 bitField1_ |= 0x40000000;
17909 break;
17910 } // case 457
17911 case 464: {
17912 int tmpRaw = input.readEnum();
17914 com.google.ortools.sat.SatParameters.ClauseProtection.forNumber(tmpRaw);
17915 if (tmpValue == null) {
17916 mergeUnknownVarintField(58, tmpRaw);
17917 } else {
17918 clauseCleanupProtection_ = tmpRaw;
17919 bitField0_ |= 0x00020000;
17920 }
17921 break;
17922 } // case 464
17923 case 472: {
17924 clauseCleanupLbdBound_ = input.readInt32();
17925 bitField0_ |= 0x00040000;
17926 break;
17927 } // case 472
17928 case 480: {
17929 int tmpRaw = input.readEnum();
17931 com.google.ortools.sat.SatParameters.ClauseOrdering.forNumber(tmpRaw);
17932 if (tmpValue == null) {
17933 mergeUnknownVarintField(60, tmpRaw);
17934 } else {
17935 clauseCleanupOrdering_ = tmpRaw;
17936 bitField0_ |= 0x00080000;
17937 }
17938 break;
17939 } // case 480
17940 case 488: {
17941 int tmpRaw = input.readEnum();
17943 com.google.ortools.sat.SatParameters.RestartAlgorithm.forNumber(tmpRaw);
17944 if (tmpValue == null) {
17945 mergeUnknownVarintField(61, tmpRaw);
17946 } else {
17947 ensureRestartAlgorithmsIsMutable();
17948 restartAlgorithms_.addInt(tmpRaw);
17949 }
17950 break;
17951 } // case 488
17952 case 490: {
17953 int length = input.readRawVarint32();
17954 int oldLimit = input.pushLimit(length);
17955 while(input.getBytesUntilLimit() > 0) {
17956 int tmpRaw = input.readEnum();
17958 com.google.ortools.sat.SatParameters.RestartAlgorithm.forNumber(tmpRaw);
17959 if (tmpValue == null) {
17960 mergeUnknownVarintField(61, tmpRaw);
17961 } else {
17962 ensureRestartAlgorithmsIsMutable();
17963 restartAlgorithms_.addInt(tmpRaw);
17964 }
17965 }
17966 input.popLimit(oldLimit);
17967 break;
17968 } // case 490
17969 case 496: {
17970 restartRunningWindowSize_ = input.readInt32();
17971 bitField1_ |= 0x00000001;
17972 break;
17973 } // case 496
17974 case 505: {
17975 restartDlAverageRatio_ = input.readDouble();
17976 bitField1_ |= 0x00000002;
17977 break;
17978 } // case 505
17979 case 512: {
17980 useBlockingRestart_ = input.readBool();
17981 bitField1_ |= 0x00000008;
17982 break;
17983 } // case 512
17984 case 520: {
17985 blockingRestartWindowSize_ = input.readInt32();
17986 bitField1_ |= 0x00000010;
17987 break;
17988 } // case 520
17989 case 529: {
17990 blockingRestartMultiplier_ = input.readDouble();
17991 bitField1_ |= 0x00000020;
17992 break;
17993 } // case 529
17994 case 537: {
17995 maxDeterministicTime_ = input.readDouble();
17996 bitField1_ |= 0x00000200;
17997 break;
17998 } // case 537
17999 case 544: {
18000 numConflictsBeforeStrategyChanges_ = input.readInt32();
18001 bitField1_ |= 0x00000040;
18002 break;
18003 } // case 544
18004 case 553: {
18005 strategyChangeIncreaseRatio_ = input.readDouble();
18006 bitField1_ |= 0x00000080;
18007 break;
18008 } // case 553
18009 case 562: {
18010 defaultRestartAlgorithms_ = input.readBytes();
18011 bitField0_ |= 0x40000000;
18012 break;
18013 } // case 562
18014 case 569: {
18015 restartLbdAverageRatio_ = input.readDouble();
18016 bitField1_ |= 0x00000004;
18017 break;
18018 } // case 569
18019 case 576: {
18020 presolveUseBva_ = input.readBool();
18021 bitField2_ |= 0x00000001;
18022 break;
18023 } // case 576
18024 case 584: {
18025 presolveBvaThreshold_ = input.readInt32();
18026 bitField2_ |= 0x00000002;
18027 break;
18028 } // case 584
18029 case 592: {
18030 usePrecedencesInDisjunctiveConstraint_ = input.readBool();
18031 bitField3_ |= 0x02000000;
18032 break;
18033 } // case 592
18034 case 600: {
18035 useErwaHeuristic_ = input.readBool();
18036 bitField0_ |= 0x00000100;
18037 break;
18038 } // case 600
18039 case 609: {
18040 initialVariablesActivity_ = input.readDouble();
18041 bitField0_ |= 0x00000200;
18042 break;
18043 } // case 609
18044 case 616: {
18045 alsoBumpVariablesInConflictReasons_ = input.readBool();
18046 bitField0_ |= 0x00000400;
18047 break;
18048 } // case 616
18049 case 624: {
18050 useOverloadCheckerInCumulative_ = input.readBool();
18051 bitField3_ |= 0x40000000;
18052 break;
18053 } // case 624
18054 case 632: {
18055 useTimetableEdgeFindingInCumulative_ = input.readBool();
18056 bitField4_ |= 0x00000001;
18057 break;
18058 } // case 632
18059 case 640: {
18060 useDisjunctiveConstraintInCumulative_ = input.readBool();
18061 bitField4_ |= 0x00000010;
18062 break;
18063 } // case 640
18064 case 656: {
18065 int tmpRaw = input.readEnum();
18067 com.google.ortools.sat.SatParameters.SearchBranching.forNumber(tmpRaw);
18068 if (tmpValue == null) {
18069 mergeUnknownVarintField(82, tmpRaw);
18070 } else {
18071 searchBranching_ = tmpRaw;
18072 bitField4_ |= 0x00010000;
18073 }
18074 break;
18075 } // case 656
18076 case 664: {
18077 optimizeWithCore_ = input.readBool();
18078 bitField4_ |= 0x40000000;
18079 break;
18080 } // case 664
18081 case 672: {
18082 findMultipleCores_ = input.readBool();
18083 bitField3_ |= 0x00080000;
18084 break;
18085 } // case 672
18086 case 680: {
18087 optimizeWithMaxHs_ = input.readBool();
18088 bitField5_ |= 0x00000004;
18089 break;
18090 } // case 680
18091 case 688: {
18092 cpModelPresolve_ = input.readBool();
18093 bitField2_ |= 0x00000008;
18094 break;
18095 } // case 688
18096 case 696: {
18097 enumerateAllSolutions_ = input.readBool();
18098 bitField5_ |= 0x02000000;
18099 break;
18100 } // case 696
18101 case 704: {
18102 presolveBlockedClause_ = input.readBool();
18103 bitField1_ |= 0x80000000;
18104 break;
18105 } // case 704
18106 case 712: {
18107 coverOptimization_ = input.readBool();
18108 bitField3_ |= 0x00100000;
18109 break;
18110 } // case 712
18111 case 720: {
18112 linearizationLevel_ = input.readInt32();
18113 bitField7_ |= 0x00000001;
18114 break;
18115 } // case 720
18116 case 728: {
18117 maxNumCuts_ = input.readInt32();
18118 bitField7_ |= 0x00000008;
18119 break;
18120 } // case 728
18121 case 736: {
18122 onlyAddCutsAtLevelZero_ = input.readBool();
18123 bitField7_ |= 0x00000020;
18124 break;
18125 } // case 736
18126 case 744: {
18127 cpModelUseSatPresolve_ = input.readBool();
18128 bitField2_ |= 0x00000020;
18129 break;
18130 } // case 744
18131 case 752: {
18132 exploitIntegerLpSolution_ = input.readBool();
18133 bitField7_ |= 0x01000000;
18134 break;
18135 } // case 752
18136 case 760: {
18137 autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
18138 bitField5_ |= 0x40000000;
18139 break;
18140 } // case 760
18141 case 784: {
18142 stopAfterFirstSolution_ = input.readBool();
18143 bitField5_ |= 0x80000000;
18144 break;
18145 } // case 784
18146 case 792: {
18147 binarySearchNumConflicts_ = input.readInt32();
18148 bitField5_ |= 0x00000002;
18149 break;
18150 } // case 792
18151 case 800: {
18152 numSearchWorkers_ = input.readInt32();
18153 bitField2_ |= 0x80000000;
18154 break;
18155 } // case 800
18156 case 808: {
18157 useLnsOnly_ = input.readBool();
18158 bitField6_ |= 0x00000020;
18159 break;
18160 } // case 808
18161 case 824: {
18162 randomizeSearch_ = input.readBool();
18163 bitField6_ |= 0x00002000;
18164 break;
18165 } // case 824
18166 case 832: {
18167 searchRandomVariablePoolSize_ = input.readInt64();
18168 bitField6_ |= 0x00004000;
18169 break;
18170 } // case 832
18171 case 848: {
18172 instantiateAllVariables_ = input.readBool();
18173 bitField5_ |= 0x20000000;
18174 break;
18175 } // case 848
18176 case 856: {
18177 booleanEncodingLevel_ = input.readInt32();
18178 bitField7_ |= 0x00000002;
18179 break;
18180 } // case 856
18181 case 864: {
18182 useOptionalVariables_ = input.readBool();
18183 bitField6_ |= 0x00010000;
18184 break;
18185 } // case 864
18186 case 872: {
18187 useExactLpReason_ = input.readBool();
18188 bitField6_ |= 0x00020000;
18189 break;
18190 } // case 872
18191 case 880: {
18192 cpModelProbingLevel_ = input.readInt32();
18193 bitField2_ |= 0x00000010;
18194 break;
18195 } // case 880
18196 case 896: {
18197 addLpConstraintsLazily_ = input.readBool();
18198 bitField7_ |= 0x00008000;
18199 break;
18200 } // case 896
18201 case 904: {
18202 shareObjectiveBounds_ = input.readBool();
18203 bitField3_ |= 0x00000100;
18204 break;
18205 } // case 904
18206 case 912: {
18207 shareLevelZeroBounds_ = input.readBool();
18208 bitField3_ |= 0x00000200;
18209 break;
18210 } // case 912
18211 case 921: {
18212 minOrthogonalityForLpConstraints_ = input.readDouble();
18213 bitField7_ |= 0x00020000;
18214 break;
18215 } // case 921
18216 case 928: {
18217 exploitAllLpSolution_ = input.readBool();
18218 bitField7_ |= 0x02000000;
18219 break;
18220 } // case 928
18221 case 936: {
18222 addCgCuts_ = input.readBool();
18223 bitField7_ |= 0x00000080;
18224 break;
18225 } // case 936
18226 case 952: {
18227 maxIntegerRoundingScaling_ = input.readInt32();
18228 bitField7_ |= 0x00004000;
18229 break;
18230 } // case 952
18231 case 960: {
18232 addMirCuts_ = input.readBool();
18233 bitField7_ |= 0x00000100;
18234 break;
18235 } // case 960
18236 case 968: {
18237 maxConsecutiveInactiveCount_ = input.readInt32();
18238 bitField7_ |= 0x00080000;
18239 break;
18240 } // case 968
18241 case 976: {
18242 newConstraintsBatchSize_ = input.readInt32();
18243 bitField7_ |= 0x00800000;
18244 break;
18245 } // case 976
18246 case 984: {
18247 pseudoCostReliabilityThreshold_ = input.readInt64();
18248 bitField4_ |= 0x20000000;
18249 break;
18250 } // case 984
18251 case 993: {
18252 mipMaxBound_ = input.readDouble();
18253 bitField7_ |= 0x40000000;
18254 break;
18255 } // case 993
18256 case 1001: {
18257 mipVarScaling_ = input.readDouble();
18258 bitField7_ |= 0x80000000;
18259 break;
18260 } // case 1001
18261 case 1009: {
18262 mipWantedPrecision_ = input.readDouble();
18263 bitField8_ |= 0x00000008;
18264 break;
18265 } // case 1009
18266 case 1016: {
18267 mipMaxActivityExponent_ = input.readInt32();
18268 bitField8_ |= 0x00000010;
18269 break;
18270 } // case 1016
18271 case 1025: {
18272 mipCheckPrecision_ = input.readDouble();
18273 bitField8_ |= 0x00000020;
18274 break;
18275 } // case 1025
18276 case 1032: {
18277 useRinsLns_ = input.readBool();
18278 bitField6_ |= 0x00000080;
18279 break;
18280 } // case 1032
18281 case 1040: {
18282 exploitBestSolution_ = input.readBool();
18283 bitField7_ |= 0x04000000;
18284 break;
18285 } // case 1040
18286 case 1048: {
18287 exploitObjective_ = input.readBool();
18288 bitField7_ |= 0x10000000;
18289 break;
18290 } // case 1048
18291 case 1056: {
18292 fillTightenedDomainsInResponse_ = input.readBool();
18293 bitField5_ |= 0x08000000;
18294 break;
18295 } // case 1056
18296 case 1064: {
18297 useCombinedNoOverlap_ = input.readBool();
18298 bitField6_ |= 0x00040000;
18299 break;
18300 } // case 1064
18301 case 1072: {
18302 interleaveBatchSize_ = input.readInt32();
18303 bitField3_ |= 0x00000080;
18304 break;
18305 } // case 1072
18306 case 1080: {
18307 catchSigintSignal_ = input.readBool();
18308 bitField6_ |= 0x00100000;
18309 break;
18310 } // case 1080
18311 case 1088: {
18312 interleaveSearch_ = input.readBool();
18313 bitField3_ |= 0x00000040;
18314 break;
18315 } // case 1088
18316 case 1096: {
18317 diversifyLnsParams_ = input.readBool();
18318 bitField6_ |= 0x00001000;
18319 break;
18320 } // case 1096
18321 case 1104: {
18322 maxPresolveIterations_ = input.readInt32();
18323 bitField2_ |= 0x00000004;
18324 break;
18325 } // case 1104
18326 case 1152: {
18327 useImpliedBounds_ = input.readBool();
18328 bitField6_ |= 0x00200000;
18329 break;
18330 } // case 1152
18331 case 1161: {
18332 mergeNoOverlapWorkLimit_ = input.readDouble();
18333 bitField2_ |= 0x00010000;
18334 break;
18335 } // case 1161
18336 case 1169: {
18337 mergeAtMostOneWorkLimit_ = input.readDouble();
18338 bitField2_ |= 0x00020000;
18339 break;
18340 } // case 1169
18341 case 1176: {
18342 presolveSubstitutionLevel_ = input.readInt32();
18343 bitField2_ |= 0x00040000;
18344 break;
18345 } // case 1176
18346 case 1184: {
18347 maxAllDiffCutSize_ = input.readInt32();
18348 bitField7_ |= 0x00001000;
18349 break;
18350 } // case 1184
18351 case 1192: {
18352 stopAfterPresolve_ = input.readBool();
18353 bitField6_ |= 0x00000001;
18354 break;
18355 } // case 1192
18356 case 1208: {
18357 debugMaxNumPresolveOperations_ = input.readInt32();
18358 bitField3_ |= 0x00004000;
18359 break;
18360 } // case 1208
18361 case 1216: {
18362 addLinMaxCuts_ = input.readBool();
18363 bitField7_ |= 0x00002000;
18364 break;
18365 } // case 1216
18366 case 1224: {
18367 hintConflictLimit_ = input.readInt32();
18368 bitField4_ |= 0x00020000;
18369 break;
18370 } // case 1224
18371 case 1232: {
18372 maxCutRoundsAtLevelZero_ = input.readInt32();
18373 bitField7_ |= 0x00040000;
18374 break;
18375 } // case 1232
18376 case 1241: {
18377 cutMaxActiveCountValue_ = input.readDouble();
18378 bitField7_ |= 0x00100000;
18379 break;
18380 } // case 1241
18381 case 1249: {
18382 cutActiveCountDecay_ = input.readDouble();
18383 bitField7_ |= 0x00200000;
18384 break;
18385 } // case 1249
18386 case 1256: {
18387 cutCleanupTarget_ = input.readInt32();
18388 bitField7_ |= 0x00400000;
18389 break;
18390 } // case 1256
18391 case 1273: {
18392 absoluteGapLimit_ = input.readDouble();
18393 bitField1_ |= 0x00002000;
18394 break;
18395 } // case 1273
18396 case 1281: {
18397 relativeGapLimit_ = input.readDouble();
18398 bitField1_ |= 0x00004000;
18399 break;
18400 } // case 1281
18401 case 1288: {
18402 exploitRelaxationSolution_ = input.readBool();
18403 bitField7_ |= 0x08000000;
18404 break;
18405 } // case 1288
18406 case 1296: {
18407 debugPostsolveWithFullSolver_ = input.readBool();
18408 bitField3_ |= 0x00002000;
18409 break;
18410 } // case 1296
18411 case 1304: {
18412 useSatInprocessing_ = input.readBool();
18413 bitField2_ |= 0x01000000;
18414 break;
18415 } // case 1304
18416 case 1312: {
18417 useFeasibilityPump_ = input.readBool();
18418 bitField6_ |= 0x00000100;
18419 break;
18420 } // case 1312
18421 case 1320: {
18422 int tmpRaw = input.readEnum();
18424 com.google.ortools.sat.SatParameters.FPRoundingMethod.forNumber(tmpRaw);
18425 if (tmpValue == null) {
18426 mergeUnknownVarintField(165, tmpRaw);
18427 } else {
18428 fpRounding_ = tmpRaw;
18429 bitField6_ |= 0x00000800;
18430 }
18431 break;
18432 } // case 1320
18433 case 1328: {
18434 mipAutomaticallyScaleVariables_ = input.readBool();
18435 bitField8_ |= 0x00000002;
18436 break;
18437 } // case 1328
18438 case 1336: {
18439 repairHint_ = input.readBool();
18440 bitField4_ |= 0x00040000;
18441 break;
18442 } // case 1336
18443 case 1344: {
18444 polarityRephaseIncrement_ = input.readInt32();
18445 bitField0_ |= 0x00000010;
18446 break;
18447 } // case 1344
18448 case 1352: {
18449 addZeroHalfCuts_ = input.readBool();
18450 bitField7_ |= 0x00000200;
18451 break;
18452 } // case 1352
18453 case 1360: {
18454 expandAlldiffConstraints_ = input.readBool();
18455 bitField2_ |= 0x00000200;
18456 break;
18457 } // case 1360
18458 case 1370: {
18459 name_ = input.readBytes();
18460 bitField0_ |= 0x00000001;
18461 break;
18462 } // case 1370
18463 case 1376: {
18464 addCliqueCuts_ = input.readBool();
18465 bitField7_ |= 0x00000400;
18466 break;
18467 } // case 1376
18468 case 1384: {
18469 keepAllFeasibleSolutionsInPresolve_ = input.readBool();
18470 bitField5_ |= 0x04000000;
18471 break;
18472 } // case 1384
18473 case 1392: {
18474 presolveExtractIntegerEnforcement_ = input.readBool();
18475 bitField2_ |= 0x00080000;
18476 break;
18477 } // case 1392
18478 case 1400: {
18479 polishLpSolution_ = input.readBool();
18480 bitField6_ |= 0x00400000;
18481 break;
18482 } // case 1400
18483 case 1408: {
18484 useProbingSearch_ = input.readBool();
18485 bitField4_ |= 0x00100000;
18486 break;
18487 } // case 1408
18488 case 1416: {
18489 convertIntervals_ = input.readBool();
18490 bitField6_ |= 0x02000000;
18491 break;
18492 } // case 1416
18493 case 1424: {
18494 permuteVariableRandomly_ = input.readBool();
18495 bitField1_ |= 0x00010000;
18496 break;
18497 } // case 1424
18498 case 1432: {
18499 permutePresolveConstraintOrder_ = input.readBool();
18500 bitField1_ |= 0x00020000;
18501 break;
18502 } // case 1432
18503 case 1440: {
18504 useAbslRandom_ = input.readBool();
18505 bitField1_ |= 0x00040000;
18506 break;
18507 } // case 1440
18508 case 1448: {
18509 disableConstraintExpansion_ = input.readBool();
18510 bitField2_ |= 0x00004000;
18511 break;
18512 } // case 1448
18513 case 1456: {
18514 expandReservoirConstraints_ = input.readBool();
18515 bitField2_ |= 0x00000400;
18516 break;
18517 } // case 1456
18518 case 1464: {
18519 symmetryLevel_ = input.readInt32();
18520 bitField6_ |= 0x04000000;
18521 break;
18522 } // case 1464
18523 case 1482: {
18524 logPrefix_ = input.readBytes();
18525 bitField1_ |= 0x00200000;
18526 break;
18527 } // case 1482
18528 case 1488: {
18529 logToStdout_ = input.readBool();
18530 bitField1_ |= 0x00400000;
18531 break;
18532 } // case 1488
18533 case 1496: {
18534 logToResponse_ = input.readBool();
18535 bitField1_ |= 0x00800000;
18536 break;
18537 } // case 1496
18538 case 1504: {
18539 optimizeWithLbTreeSearch_ = input.readBool();
18540 bitField4_ |= 0x80000000;
18541 break;
18542 } // case 1504
18543 case 1512: {
18544 logSubsolverStatistics_ = input.readBool();
18545 bitField1_ |= 0x00100000;
18546 break;
18547 } // case 1512
18548 case 1521: {
18549 clauseCleanupRatio_ = input.readDouble();
18550 bitField0_ |= 0x00010000;
18551 break;
18552 } // case 1521
18553 case 1528: {
18554 maxDomainSizeWhenEncodingEqNeqConstraints_ = input.readInt32();
18555 bitField7_ |= 0x00000004;
18556 break;
18557 } // case 1528
18558 case 1536: {
18559 fixVariablesToTheirHintedValue_ = input.readBool();
18560 bitField4_ |= 0x00080000;
18561 break;
18562 } // case 1536
18563 case 1544: {
18564 solutionPoolSize_ = input.readInt32();
18565 bitField6_ |= 0x00000040;
18566 break;
18567 } // case 1544
18568 case 1552: {
18569 fillAdditionalSolutionsInResponse_ = input.readBool();
18570 bitField5_ |= 0x10000000;
18571 break;
18572 } // case 1552
18573 case 1560: {
18574 debugCrashOnBadHint_ = input.readBool();
18575 bitField3_ |= 0x00008000;
18576 break;
18577 } // case 1560
18578 case 1568: {
18579 cutLevel_ = input.readInt32();
18580 bitField7_ |= 0x00000010;
18581 break;
18582 } // case 1568
18583 case 1576: {
18584 addObjectiveCut_ = input.readBool();
18585 bitField7_ |= 0x00000040;
18586 break;
18587 } // case 1576
18588 case 1584: {
18589 mipComputeTrueObjectiveBound_ = input.readBool();
18590 bitField8_ |= 0x00000040;
18591 break;
18592 } // case 1584
18593 case 1593: {
18594 mipMaxValidMagnitude_ = input.readDouble();
18595 bitField8_ |= 0x00000080;
18596 break;
18597 } // case 1593
18598 case 1600: {
18599 useTimetablingInNoOverlap2D_ = input.readBool();
18600 bitField4_ |= 0x00000020;
18601 break;
18602 } // case 1600
18603 case 1608: {
18604 presolveInclusionWorkLimit_ = input.readInt64();
18605 bitField2_ |= 0x00100000;
18606 break;
18607 } // case 1608
18608 case 1616: {
18609 ignoreNames_ = input.readBool();
18610 bitField2_ |= 0x00200000;
18611 break;
18612 } // case 1616
18613 case 1624: {
18614 shareBinaryClauses_ = input.readBool();
18615 bitField3_ |= 0x00000400;
18616 break;
18617 } // case 1624
18618 case 1632: {
18619 useShavingInProbingSearch_ = input.readBool();
18620 bitField4_ |= 0x00800000;
18621 break;
18622 } // case 1632
18623 case 1641: {
18624 shavingSearchDeterministicTime_ = input.readDouble();
18625 bitField4_ |= 0x01000000;
18626 break;
18627 } // case 1641
18628 case 1648: {
18629 numWorkers_ = input.readInt32();
18630 bitField2_ |= 0x40000000;
18631 break;
18632 } // case 1648
18633 case 1658: {
18634 com.google.protobuf.ByteString bs = input.readBytes();
18635 ensureSubsolversIsMutable();
18636 subsolvers_.add(bs);
18637 break;
18638 } // case 1658
18639 case 1674: {
18640 com.google.protobuf.ByteString bs = input.readBytes();
18641 ensureIgnoreSubsolversIsMutable();
18642 ignoreSubsolvers_.add(bs);
18643 break;
18644 } // case 1674
18645 case 1682: {
18647 input.readMessage(
18648 com.google.ortools.sat.SatParameters.parser(),
18649 extensionRegistry);
18650 if (subsolverParamsBuilder_ == null) {
18651 ensureSubsolverParamsIsMutable();
18652 subsolverParams_.add(m);
18653 } else {
18654 subsolverParamsBuilder_.addMessage(m);
18655 }
18656 break;
18657 } // case 1682
18658 case 1704: {
18659 useEnergeticReasoningInNoOverlap2D_ = input.readBool();
18660 bitField4_ |= 0x00000040;
18661 break;
18662 } // case 1704
18663 case 1712: {
18664 useDualSchedulingHeuristics_ = input.readBool();
18665 bitField4_ |= 0x00000800;
18666 break;
18667 } // case 1712
18668 case 1720: {
18669 useHardPrecedencesInCumulative_ = input.readBool();
18670 bitField4_ |= 0x00000004;
18671 break;
18672 } // case 1720
18673 case 1728: {
18674 detectTableWithCost_ = input.readBool();
18675 bitField2_ |= 0x00000080;
18676 break;
18677 } // case 1728
18678 case 1736: {
18679 tableCompressionLevel_ = input.readInt32();
18680 bitField2_ |= 0x00000100;
18681 break;
18682 } // case 1736
18683 case 1754: {
18684 com.google.protobuf.ByteString bs = input.readBytes();
18685 ensureExtraSubsolversIsMutable();
18686 extraSubsolvers_.add(bs);
18687 break;
18688 } // case 1754
18689 case 1760: {
18690 exploitAllPrecedences_ = input.readBool();
18691 bitField4_ |= 0x00000008;
18692 break;
18693 } // case 1760
18694 case 1769: {
18695 propagationLoopDetectionFactor_ = input.readDouble();
18696 bitField3_ |= 0x01000000;
18697 break;
18698 } // case 1769
18699 case 1776: {
18700 onlySolveIp_ = input.readBool();
18701 bitField8_ |= 0x00000004;
18702 break;
18703 } // case 1776
18704 case 1784: {
18705 encodeComplexLinearConstraintWithInteger_ = input.readBool();
18706 bitField2_ |= 0x00008000;
18707 break;
18708 } // case 1784
18709 case 1792: {
18710 newLinearPropagation_ = input.readBool();
18711 bitField6_ |= 0x40000000;
18712 break;
18713 } // case 1792
18714 case 1800: {
18715 mipScaleLargeDomain_ = input.readBool();
18716 bitField8_ |= 0x00000001;
18717 break;
18718 } // case 1800
18719 case 1809: {
18720 probingDeterministicTimeLimit_ = input.readDouble();
18721 bitField1_ |= 0x20000000;
18722 break;
18723 } // case 1809
18724 case 1816: {
18725 rootLpIterations_ = input.readInt32();
18726 bitField7_ |= 0x00010000;
18727 break;
18728 } // case 1816
18729 case 1824: {
18730 useObjectiveLbSearch_ = input.readBool();
18731 bitField4_ |= 0x04000000;
18732 break;
18733 } // case 1824
18734 case 1832: {
18735 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = input.readInt32();
18736 bitField3_ |= 0x04000000;
18737 break;
18738 } // case 1832
18739 case 1840: {
18740 useStrongPropagationInDisjunctive_ = input.readBool();
18741 bitField3_ |= 0x08000000;
18742 break;
18743 } // case 1840
18744 case 1857: {
18745 mipDropTolerance_ = input.readDouble();
18746 bitField8_ |= 0x00000200;
18747 break;
18748 } // case 1857
18749 case 1864: {
18750 inferAllDiffs_ = input.readBool();
18751 bitField2_ |= 0x00400000;
18752 break;
18753 } // case 1864
18754 case 1872: {
18755 findBigLinearOverlap_ = input.readBool();
18756 bitField2_ |= 0x00800000;
18757 break;
18758 } // case 1872
18759 case 1880: {
18760 sharedTreeNumWorkers_ = input.readInt32();
18761 bitField5_ |= 0x00010000;
18762 break;
18763 } // case 1880
18764 case 1888: {
18765 useSharedTreeSearch_ = input.readBool();
18766 bitField5_ |= 0x00020000;
18767 break;
18768 } // case 1888
18769 case 1904: {
18770 sharedTreeMaxNodesPerWorker_ = input.readInt32();
18771 bitField5_ |= 0x00400000;
18772 break;
18773 } // case 1904
18774 case 1912: {
18775 int tmpRaw = input.readEnum();
18777 com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy.forNumber(tmpRaw);
18778 if (tmpValue == null) {
18779 mergeUnknownVarintField(239, tmpRaw);
18780 } else {
18781 sharedTreeSplitStrategy_ = tmpRaw;
18782 bitField5_ |= 0x00800000;
18783 }
18784 break;
18785 } // case 1912
18786 case 1920: {
18787 useLsOnly_ = input.readBool();
18788 bitField5_ |= 0x00000010;
18789 break;
18790 } // case 1920
18791 case 1937: {
18792 feasibilityJumpDecay_ = input.readDouble();
18793 bitField5_ |= 0x00000020;
18794 break;
18795 } // case 1937
18796 case 1952: {
18797 numViolationLs_ = input.readInt32();
18798 bitField5_ |= 0x00002000;
18799 break;
18800 } // case 1952
18801 case 1977: {
18802 feasibilityJumpVarRandomizationProbability_ = input.readDouble();
18803 bitField5_ |= 0x00000200;
18804 break;
18805 } // case 1977
18806 case 1985: {
18807 feasibilityJumpVarPerburbationRangeRatio_ = input.readDouble();
18808 bitField5_ |= 0x00000400;
18809 break;
18810 } // case 1985
18811 case 1992: {
18812 violationLsPerturbationPeriod_ = input.readInt32();
18813 bitField5_ |= 0x00004000;
18814 break;
18815 } // case 1992
18816 case 2000: {
18817 feasibilityJumpEnableRestarts_ = input.readBool();
18818 bitField5_ |= 0x00000800;
18819 break;
18820 } // case 2000
18821 case 2016: {
18822 stopAfterRootPropagation_ = input.readBool();
18823 bitField6_ |= 0x00000002;
18824 break;
18825 } // case 2016
18826 case 2024: {
18827 useObjectiveShavingSearch_ = input.readBool();
18828 bitField4_ |= 0x08000000;
18829 break;
18830 } // case 2024
18831 case 2040: {
18832 useLbRelaxLns_ = input.readBool();
18833 bitField6_ |= 0x00000200;
18834 break;
18835 } // case 2040
18836 case 2048: {
18837 linearSplitSize_ = input.readInt32();
18838 bitField6_ |= 0x80000000;
18839 break;
18840 } // case 2048
18841 case 2056: {
18842 feasibilityJumpLinearizationLevel_ = input.readInt32();
18843 bitField5_ |= 0x00000040;
18844 break;
18845 } // case 2056
18846 case 2064: {
18847 feasibilityJumpRestartFactor_ = input.readInt32();
18848 bitField5_ |= 0x00000080;
18849 break;
18850 } // case 2064
18851 case 2073: {
18852 violationLsCompoundMoveProbability_ = input.readDouble();
18853 bitField5_ |= 0x00008000;
18854 break;
18855 } // case 2073
18856 case 2080: {
18857 maxNumIntervalsForTimetableEdgeFinding_ = input.readInt32();
18858 bitField4_ |= 0x00000002;
18859 break;
18860 } // case 2080
18861 case 2088: {
18862 mipPresolveLevel_ = input.readInt32();
18863 bitField8_ |= 0x00000400;
18864 break;
18865 } // case 2088
18866 case 2096: {
18867 pushAllTasksTowardStart_ = input.readBool();
18868 bitField6_ |= 0x00008000;
18869 break;
18870 } // case 2096
18871 case 2104: {
18872 useDynamicPrecedenceInDisjunctive_ = input.readBool();
18873 bitField3_ |= 0x10000000;
18874 break;
18875 } // case 2104
18876 case 2112: {
18877 feasibilityJumpMaxExpandedConstraintSize_ = input.readInt32();
18878 bitField5_ |= 0x00001000;
18879 break;
18880 } // case 2112
18881 case 2120: {
18882 useFeasibilityJump_ = input.readBool();
18883 bitField5_ |= 0x00000008;
18884 break;
18885 } // case 2120
18886 case 2129: {
18887 lpPrimalTolerance_ = input.readDouble();
18888 bitField6_ |= 0x00800000;
18889 break;
18890 } // case 2129
18891 case 2137: {
18892 lpDualTolerance_ = input.readDouble();
18893 bitField6_ |= 0x01000000;
18894 break;
18895 } // case 2137
18896 case 2144: {
18897 useDynamicPrecedenceInCumulative_ = input.readBool();
18898 bitField3_ |= 0x20000000;
18899 break;
18900 } // case 2144
18901 case 2152: {
18902 useExtendedProbing_ = input.readBool();
18903 bitField4_ |= 0x00200000;
18904 break;
18905 } // case 2152
18906 case 2160: {
18907 atMostOneMaxExpansionSize_ = input.readInt32();
18908 bitField6_ |= 0x00080000;
18909 break;
18910 } // case 2160
18911 case 2168: {
18912 useAreaEnergeticReasoningInNoOverlap2D_ = input.readBool();
18913 bitField4_ |= 0x00000080;
18914 break;
18915 } // case 2168
18916 case 2176: {
18917 probingNumCombinationsLimit_ = input.readInt32();
18918 bitField4_ |= 0x00400000;
18919 break;
18920 } // case 2176
18921 case 2185: {
18922 inprocessingDtimeRatio_ = input.readDouble();
18923 bitField2_ |= 0x02000000;
18924 break;
18925 } // case 2185
18926 case 2193: {
18927 inprocessingProbingDtime_ = input.readDouble();
18928 bitField2_ |= 0x04000000;
18929 break;
18930 } // case 2193
18931 case 2201: {
18932 inprocessingMinimizationDtime_ = input.readDouble();
18933 bitField2_ |= 0x08000000;
18934 break;
18935 } // case 2201
18936 case 2208: {
18937 maxPairsPairwiseReasoningInNoOverlap2D_ = input.readInt32();
18938 bitField4_ |= 0x00000200;
18939 break;
18940 } // case 2208
18941 case 2216: {
18942 detectLinearizedProduct_ = input.readBool();
18943 bitField7_ |= 0x20000000;
18944 break;
18945 } // case 2216
18946 case 2224: {
18947 mipTreatHighMagnitudeBoundsAsInfinity_ = input.readBool();
18948 bitField8_ |= 0x00000100;
18949 break;
18950 } // case 2224
18951 case 2232: {
18952 addRltCuts_ = input.readBool();
18953 bitField7_ |= 0x00000800;
18954 break;
18955 } // case 2232
18956 case 2240: {
18957 maxLinMaxSizeForExpansion_ = input.readInt32();
18958 bitField2_ |= 0x00002000;
18959 break;
18960 } // case 2240
18961 case 2249: {
18962 sharedTreeOpenLeavesPerWorker_ = input.readDouble();
18963 bitField5_ |= 0x00200000;
18964 break;
18965 } // case 2249
18966 case 2256: {
18967 sharedTreeWorkerMinRestartsPerSubtree_ = input.readInt32();
18968 bitField5_ |= 0x00040000;
18969 break;
18970 } // case 2256
18971 case 2264: {
18972 useLns_ = input.readBool();
18973 bitField6_ |= 0x00000010;
18974 break;
18975 } // case 2264
18976 case 2272: {
18977 saveLpBasisInLbTreeSearch_ = input.readBool();
18978 bitField5_ |= 0x00000001;
18979 break;
18980 } // case 2272
18981 case 2280: {
18982 shareGlueClauses_ = input.readBool();
18983 bitField3_ |= 0x00000800;
18984 break;
18985 } // case 2280
18986 case 2288: {
18987 useConservativeScaleOverloadChecker_ = input.readBool();
18988 bitField3_ |= 0x80000000;
18989 break;
18990 } // case 2288
18991 case 2296: {
18992 encodeCumulativeAsReservoir_ = input.readBool();
18993 bitField2_ |= 0x00001000;
18994 break;
18995 } // case 2296
18996 case 2304: {
18997 expandReservoirUsingCircuit_ = input.readBool();
18998 bitField2_ |= 0x00000800;
18999 break;
19000 } // case 2304
19001 case 2312: {
19002 useVariablesShavingSearch_ = input.readBool();
19003 bitField4_ |= 0x10000000;
19004 break;
19005 } // case 2312
19006 case 2320: {
19007 shavingSearchThreshold_ = input.readInt64();
19008 bitField4_ |= 0x02000000;
19009 break;
19010 } // case 2320
19011 case 2328: {
19012 maxNumDeterministicBatches_ = input.readInt32();
19013 bitField1_ |= 0x00000400;
19014 break;
19015 } // case 2328
19016 case 2337: {
19017 feasibilityJumpBatchDtime_ = input.readDouble();
19018 bitField5_ |= 0x00000100;
19019 break;
19020 } // case 2337
19021 case 2346: {
19022 com.google.protobuf.ByteString bs = input.readBytes();
19023 ensureFilterSubsolversIsMutable();
19024 filterSubsolvers_.add(bs);
19025 break;
19026 } // case 2346
19027 case 2352: {
19028 numFullSubsolvers_ = input.readInt32();
19029 bitField3_ |= 0x00000001;
19030 break;
19031 } // case 2352
19032 case 2360: {
19033 sharedTreeWorkerEnableTrailSharing_ = input.readBool();
19034 bitField5_ |= 0x00080000;
19035 break;
19036 } // case 2360
19037 case 2368: {
19038 lbRelaxNumWorkersThreshold_ = input.readInt32();
19039 bitField6_ |= 0x00000400;
19040 break;
19041 } // case 2368
19042 case 2376: {
19043 inprocessingMinimizationUseConflictAnalysis_ = input.readBool();
19044 bitField2_ |= 0x10000000;
19045 break;
19046 } // case 2376
19047 case 2384: {
19048 inprocessingMinimizationUseAllOrderings_ = input.readBool();
19049 bitField2_ |= 0x20000000;
19050 break;
19051 } // case 2384
19052 case 2392: {
19053 useTryEdgeReasoningInNoOverlap2D_ = input.readBool();
19054 bitField4_ |= 0x00000100;
19055 break;
19056 } // case 2392
19057 case 2400: {
19058 minimizeSharedClauses_ = input.readBool();
19059 bitField3_ |= 0x00001000;
19060 break;
19061 } // case 2400
19062 case 2408: {
19063 useSymmetryInLp_ = input.readBool();
19064 bitField6_ |= 0x08000000;
19065 break;
19066 } // case 2408
19067 case 2417: {
19068 symmetryDetectionDeterministicTimeLimit_ = input.readDouble();
19069 bitField6_ |= 0x20000000;
19070 break;
19071 } // case 2417
19072 case 2424: {
19073 keepSymmetryInPresolve_ = input.readBool();
19074 bitField6_ |= 0x10000000;
19075 break;
19076 } // case 2424
19077 case 2432: {
19078 sharedTreeWorkerEnablePhaseSharing_ = input.readBool();
19079 bitField5_ |= 0x00100000;
19080 break;
19081 } // case 2432
19082 case 2440: {
19083 sharedTreeBalanceTolerance_ = input.readInt32();
19084 bitField5_ |= 0x01000000;
19085 break;
19086 } // case 2440
19087 case 2448: {
19088 debugCrashIfPresolveBreaksHint_ = input.readBool();
19089 bitField3_ |= 0x00010000;
19090 break;
19091 } // case 2448
19092 case 2457: {
19093 lnsInitialDifficulty_ = input.readDouble();
19094 bitField6_ |= 0x00000004;
19095 break;
19096 } // case 2457
19097 case 2465: {
19098 lnsInitialDeterministicLimit_ = input.readDouble();
19099 bitField6_ |= 0x00000008;
19100 break;
19101 } // case 2465
19102 case 2472: {
19103 polarityExploitLsHints_ = input.readBool();
19104 bitField0_ |= 0x00000020;
19105 break;
19106 } // case 2472
19107 case 2480: {
19108 removeFixedVariablesEarly_ = input.readBool();
19109 bitField2_ |= 0x00000040;
19110 break;
19111 } // case 2480
19112 case 2488: {
19113 useAllDifferentForCircuit_ = input.readBool();
19114 bitField4_ |= 0x00001000;
19115 break;
19116 } // case 2488
19117 case 2496: {
19118 routingCutSubsetSizeForBinaryRelationBound_ = input.readInt32();
19119 bitField4_ |= 0x00002000;
19120 break;
19121 } // case 2496
19122 case 2504: {
19123 routingCutSubsetSizeForTightBinaryRelationBound_ = input.readInt32();
19124 bitField4_ |= 0x00004000;
19125 break;
19126 } // case 2504
19127 case 2513: {
19128 routingCutDpEffort_ = input.readDouble();
19129 bitField4_ |= 0x00008000;
19130 break;
19131 } // case 2513
19132 case 2520: {
19133 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = input.readInt32();
19134 bitField4_ |= 0x00000400;
19135 break;
19136 } // case 2520
19137 default: {
19138 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
19139 done = true; // was an endgroup tag
19140 }
19141 break;
19142 } // default:
19143 } // switch (tag)
19144 } // while (!done)
19145 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
19146 throw e.unwrapIOException();
19147 } finally {
19148 onChanged();
19149 } // finally
19150 return this;
19151 }
19152 private int bitField0_;
19153 private int bitField1_;
19154 private int bitField2_;
19155 private int bitField3_;
19156 private int bitField4_;
19157 private int bitField5_;
19158 private int bitField6_;
19159 private int bitField7_;
19160 private int bitField8_;
19161
19162 private java.lang.Object name_ = "";
19172 public boolean hasName() {
19173 return ((bitField0_ & 0x00000001) != 0);
19174 }
19175
19184 public java.lang.String getName() {
19185 java.lang.Object ref = name_;
19186 if (!(ref instanceof java.lang.String)) {
19187 com.google.protobuf.ByteString bs =
19188 (com.google.protobuf.ByteString) ref;
19189 java.lang.String s = bs.toStringUtf8();
19190 if (bs.isValidUtf8()) {
19191 name_ = s;
19192 }
19193 return s;
19194 } else {
19195 return (java.lang.String) ref;
19196 }
19197 }
19198
19207 public com.google.protobuf.ByteString
19209 java.lang.Object ref = name_;
19210 if (ref instanceof String) {
19211 com.google.protobuf.ByteString b =
19212 com.google.protobuf.ByteString.copyFromUtf8(
19213 (java.lang.String) ref);
19214 name_ = b;
19215 return b;
19216 } else {
19217 return (com.google.protobuf.ByteString) ref;
19218 }
19219 }
19220
19230 public Builder setName(
19231 java.lang.String value) {
19232 if (value == null) { throw new NullPointerException(); }
19233 name_ = value;
19234 bitField0_ |= 0x00000001;
19235 onChanged();
19236 return this;
19237 }
19238
19247 public Builder clearName() {
19248 name_ = getDefaultInstance().getName();
19249 bitField0_ = (bitField0_ & ~0x00000001);
19250 onChanged();
19251 return this;
19252 }
19253
19263 public Builder setNameBytes(
19264 com.google.protobuf.ByteString value) {
19265 if (value == null) { throw new NullPointerException(); }
19266 name_ = value;
19267 bitField0_ |= 0x00000001;
19268 onChanged();
19269 return this;
19270 }
19271
19272 private int preferredVariableOrder_ = 0;
19277 @java.lang.Override public boolean hasPreferredVariableOrder() {
19278 return ((bitField0_ & 0x00000002) != 0);
19279 }
19280
19284 @java.lang.Override
19286 com.google.ortools.sat.SatParameters.VariableOrder result = com.google.ortools.sat.SatParameters.VariableOrder.forNumber(preferredVariableOrder_);
19287 return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
19288 }
19289
19294 public Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value) {
19295 if (value == null) {
19296 throw new NullPointerException();
19297 }
19298 bitField0_ |= 0x00000002;
19299 preferredVariableOrder_ = value.getNumber();
19300 onChanged();
19301 return this;
19302 }
19303
19308 bitField0_ = (bitField0_ & ~0x00000002);
19309 preferredVariableOrder_ = 0;
19310 onChanged();
19311 return this;
19312 }
19313
19314 private int initialPolarity_ = 1;
19319 @java.lang.Override public boolean hasInitialPolarity() {
19320 return ((bitField0_ & 0x00000004) != 0);
19321 }
19322
19326 @java.lang.Override
19328 com.google.ortools.sat.SatParameters.Polarity result = com.google.ortools.sat.SatParameters.Polarity.forNumber(initialPolarity_);
19329 return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
19330 }
19331
19336 public Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value) {
19337 if (value == null) {
19338 throw new NullPointerException();
19339 }
19340 bitField0_ |= 0x00000004;
19341 initialPolarity_ = value.getNumber();
19342 onChanged();
19343 return this;
19344 }
19345
19349 public Builder clearInitialPolarity() {
19350 bitField0_ = (bitField0_ & ~0x00000004);
19351 initialPolarity_ = 1;
19352 onChanged();
19353 return this;
19354 }
19355
19356 private boolean usePhaseSaving_ = true;
19375 @java.lang.Override
19376 public boolean hasUsePhaseSaving() {
19377 return ((bitField0_ & 0x00000008) != 0);
19378 }
19379
19397 @java.lang.Override
19398 public boolean getUsePhaseSaving() {
19399 return usePhaseSaving_;
19400 }
19401
19420 public Builder setUsePhaseSaving(boolean value) {
19421
19422 usePhaseSaving_ = value;
19423 bitField0_ |= 0x00000008;
19424 onChanged();
19425 return this;
19426 }
19427
19445 public Builder clearUsePhaseSaving() {
19446 bitField0_ = (bitField0_ & ~0x00000008);
19447 usePhaseSaving_ = true;
19448 onChanged();
19449 return this;
19450 }
19451
19452 private int polarityRephaseIncrement_ = 1000;
19463 @java.lang.Override
19465 return ((bitField0_ & 0x00000010) != 0);
19466 }
19467
19477 @java.lang.Override
19479 return polarityRephaseIncrement_;
19480 }
19481
19492 public Builder setPolarityRephaseIncrement(int value) {
19493
19494 polarityRephaseIncrement_ = value;
19495 bitField0_ |= 0x00000010;
19496 onChanged();
19497 return this;
19498 }
19499
19510 bitField0_ = (bitField0_ & ~0x00000010);
19511 polarityRephaseIncrement_ = 1000;
19512 onChanged();
19513 return this;
19514 }
19515
19516 private boolean polarityExploitLsHints_ ;
19526 @java.lang.Override
19527 public boolean hasPolarityExploitLsHints() {
19528 return ((bitField0_ & 0x00000020) != 0);
19529 }
19530
19539 @java.lang.Override
19540 public boolean getPolarityExploitLsHints() {
19541 return polarityExploitLsHints_;
19542 }
19543
19553 public Builder setPolarityExploitLsHints(boolean value) {
19554
19555 polarityExploitLsHints_ = value;
19556 bitField0_ |= 0x00000020;
19557 onChanged();
19558 return this;
19559 }
19560
19570 bitField0_ = (bitField0_ & ~0x00000020);
19571 polarityExploitLsHints_ = false;
19572 onChanged();
19573 return this;
19574 }
19575
19576 private double randomPolarityRatio_ ;
19589 @java.lang.Override
19590 public boolean hasRandomPolarityRatio() {
19591 return ((bitField0_ & 0x00000040) != 0);
19592 }
19593
19605 @java.lang.Override
19606 public double getRandomPolarityRatio() {
19607 return randomPolarityRatio_;
19608 }
19609
19622 public Builder setRandomPolarityRatio(double value) {
19623
19624 randomPolarityRatio_ = value;
19625 bitField0_ |= 0x00000040;
19626 onChanged();
19627 return this;
19628 }
19629
19641 public Builder clearRandomPolarityRatio() {
19642 bitField0_ = (bitField0_ & ~0x00000040);
19643 randomPolarityRatio_ = 0D;
19644 onChanged();
19645 return this;
19646 }
19647
19648 private double randomBranchesRatio_ ;
19659 @java.lang.Override
19660 public boolean hasRandomBranchesRatio() {
19661 return ((bitField0_ & 0x00000080) != 0);
19662 }
19663
19673 @java.lang.Override
19674 public double getRandomBranchesRatio() {
19675 return randomBranchesRatio_;
19676 }
19677
19688 public Builder setRandomBranchesRatio(double value) {
19689
19690 randomBranchesRatio_ = value;
19691 bitField0_ |= 0x00000080;
19692 onChanged();
19693 return this;
19694 }
19695
19705 public Builder clearRandomBranchesRatio() {
19706 bitField0_ = (bitField0_ & ~0x00000080);
19707 randomBranchesRatio_ = 0D;
19708 onChanged();
19709 return this;
19710 }
19711
19712 private boolean useErwaHeuristic_ ;
19723 @java.lang.Override
19724 public boolean hasUseErwaHeuristic() {
19725 return ((bitField0_ & 0x00000100) != 0);
19726 }
19727
19737 @java.lang.Override
19738 public boolean getUseErwaHeuristic() {
19739 return useErwaHeuristic_;
19740 }
19741
19752 public Builder setUseErwaHeuristic(boolean value) {
19753
19754 useErwaHeuristic_ = value;
19755 bitField0_ |= 0x00000100;
19756 onChanged();
19757 return this;
19758 }
19759
19769 public Builder clearUseErwaHeuristic() {
19770 bitField0_ = (bitField0_ & ~0x00000100);
19771 useErwaHeuristic_ = false;
19772 onChanged();
19773 return this;
19774 }
19775
19776 private double initialVariablesActivity_ ;
19790 @java.lang.Override
19792 return ((bitField0_ & 0x00000200) != 0);
19793 }
19794
19807 @java.lang.Override
19809 return initialVariablesActivity_;
19810 }
19811
19825 public Builder setInitialVariablesActivity(double value) {
19826
19827 initialVariablesActivity_ = value;
19828 bitField0_ |= 0x00000200;
19829 onChanged();
19830 return this;
19831 }
19832
19846 bitField0_ = (bitField0_ & ~0x00000200);
19847 initialVariablesActivity_ = 0D;
19848 onChanged();
19849 return this;
19850 }
19851
19852 private boolean alsoBumpVariablesInConflictReasons_ ;
19864 @java.lang.Override
19866 return ((bitField0_ & 0x00000400) != 0);
19867 }
19868
19879 @java.lang.Override
19881 return alsoBumpVariablesInConflictReasons_;
19882 }
19883
19895 public Builder setAlsoBumpVariablesInConflictReasons(boolean value) {
19896
19897 alsoBumpVariablesInConflictReasons_ = value;
19898 bitField0_ |= 0x00000400;
19899 onChanged();
19900 return this;
19901 }
19902
19914 bitField0_ = (bitField0_ & ~0x00000400);
19915 alsoBumpVariablesInConflictReasons_ = false;
19916 onChanged();
19917 return this;
19918 }
19919
19920 private int minimizationAlgorithm_ = 2;
19925 @java.lang.Override public boolean hasMinimizationAlgorithm() {
19926 return ((bitField0_ & 0x00000800) != 0);
19927 }
19928
19932 @java.lang.Override
19934 com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm result = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.forNumber(minimizationAlgorithm_);
19936 }
19937
19942 public Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value) {
19943 if (value == null) {
19944 throw new NullPointerException();
19945 }
19946 bitField0_ |= 0x00000800;
19947 minimizationAlgorithm_ = value.getNumber();
19948 onChanged();
19949 return this;
19950 }
19951
19956 bitField0_ = (bitField0_ & ~0x00000800);
19957 minimizationAlgorithm_ = 2;
19958 onChanged();
19959 return this;
19960 }
19961
19962 private int binaryMinimizationAlgorithm_ = 1;
19967 @java.lang.Override public boolean hasBinaryMinimizationAlgorithm() {
19968 return ((bitField0_ & 0x00001000) != 0);
19969 }
19970
19974 @java.lang.Override
19976 com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm result = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.forNumber(binaryMinimizationAlgorithm_);
19978 }
19979
19984 public Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value) {
19985 if (value == null) {
19986 throw new NullPointerException();
19987 }
19988 bitField0_ |= 0x00001000;
19989 binaryMinimizationAlgorithm_ = value.getNumber();
19990 onChanged();
19991 return this;
19992 }
19993
19998 bitField0_ = (bitField0_ & ~0x00001000);
19999 binaryMinimizationAlgorithm_ = 1;
20000 onChanged();
20001 return this;
20002 }
20003
20004 private boolean subsumptionDuringConflictAnalysis_ = true;
20016 @java.lang.Override
20018 return ((bitField0_ & 0x00002000) != 0);
20019 }
20020
20031 @java.lang.Override
20033 return subsumptionDuringConflictAnalysis_;
20034 }
20035
20047 public Builder setSubsumptionDuringConflictAnalysis(boolean value) {
20048
20049 subsumptionDuringConflictAnalysis_ = value;
20050 bitField0_ |= 0x00002000;
20051 onChanged();
20052 return this;
20053 }
20054
20066 bitField0_ = (bitField0_ & ~0x00002000);
20067 subsumptionDuringConflictAnalysis_ = true;
20068 onChanged();
20069 return this;
20070 }
20071
20072 private int clauseCleanupPeriod_ = 10000;
20081 @java.lang.Override
20082 public boolean hasClauseCleanupPeriod() {
20083 return ((bitField0_ & 0x00004000) != 0);
20084 }
20085
20093 @java.lang.Override
20095 return clauseCleanupPeriod_;
20096 }
20097
20106 public Builder setClauseCleanupPeriod(int value) {
20107
20108 clauseCleanupPeriod_ = value;
20109 bitField0_ |= 0x00004000;
20110 onChanged();
20111 return this;
20112 }
20113
20121 public Builder clearClauseCleanupPeriod() {
20122 bitField0_ = (bitField0_ & ~0x00004000);
20123 clauseCleanupPeriod_ = 10000;
20124 onChanged();
20125 return this;
20126 }
20127
20128 private int clauseCleanupTarget_ ;
20138 @java.lang.Override
20139 public boolean hasClauseCleanupTarget() {
20140 return ((bitField0_ & 0x00008000) != 0);
20141 }
20142
20151 @java.lang.Override
20153 return clauseCleanupTarget_;
20154 }
20155
20165 public Builder setClauseCleanupTarget(int value) {
20166
20167 clauseCleanupTarget_ = value;
20168 bitField0_ |= 0x00008000;
20169 onChanged();
20170 return this;
20171 }
20172
20181 public Builder clearClauseCleanupTarget() {
20182 bitField0_ = (bitField0_ & ~0x00008000);
20183 clauseCleanupTarget_ = 0;
20184 onChanged();
20185 return this;
20186 }
20187
20188 private double clauseCleanupRatio_ = 0.5D;
20199 @java.lang.Override
20200 public boolean hasClauseCleanupRatio() {
20201 return ((bitField0_ & 0x00010000) != 0);
20202 }
20203
20213 @java.lang.Override
20214 public double getClauseCleanupRatio() {
20215 return clauseCleanupRatio_;
20216 }
20217
20228 public Builder setClauseCleanupRatio(double value) {
20229
20230 clauseCleanupRatio_ = value;
20231 bitField0_ |= 0x00010000;
20232 onChanged();
20233 return this;
20234 }
20235
20245 public Builder clearClauseCleanupRatio() {
20246 bitField0_ = (bitField0_ & ~0x00010000);
20247 clauseCleanupRatio_ = 0.5D;
20248 onChanged();
20249 return this;
20250 }
20251
20252 private int clauseCleanupProtection_ = 0;
20257 @java.lang.Override public boolean hasClauseCleanupProtection() {
20258 return ((bitField0_ & 0x00020000) != 0);
20259 }
20260
20264 @java.lang.Override
20266 com.google.ortools.sat.SatParameters.ClauseProtection result = com.google.ortools.sat.SatParameters.ClauseProtection.forNumber(clauseCleanupProtection_);
20268 }
20269
20274 public Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value) {
20275 if (value == null) {
20276 throw new NullPointerException();
20277 }
20278 bitField0_ |= 0x00020000;
20279 clauseCleanupProtection_ = value.getNumber();
20280 onChanged();
20281 return this;
20282 }
20283
20288 bitField0_ = (bitField0_ & ~0x00020000);
20289 clauseCleanupProtection_ = 0;
20290 onChanged();
20291 return this;
20292 }
20293
20294 private int clauseCleanupLbdBound_ = 5;
20304 @java.lang.Override
20305 public boolean hasClauseCleanupLbdBound() {
20306 return ((bitField0_ & 0x00040000) != 0);
20307 }
20308
20317 @java.lang.Override
20319 return clauseCleanupLbdBound_;
20320 }
20321
20331 public Builder setClauseCleanupLbdBound(int value) {
20332
20333 clauseCleanupLbdBound_ = value;
20334 bitField0_ |= 0x00040000;
20335 onChanged();
20336 return this;
20337 }
20338
20348 bitField0_ = (bitField0_ & ~0x00040000);
20349 clauseCleanupLbdBound_ = 5;
20350 onChanged();
20351 return this;
20352 }
20353
20354 private int clauseCleanupOrdering_ = 0;
20359 @java.lang.Override public boolean hasClauseCleanupOrdering() {
20360 return ((bitField0_ & 0x00080000) != 0);
20361 }
20362
20366 @java.lang.Override
20368 com.google.ortools.sat.SatParameters.ClauseOrdering result = com.google.ortools.sat.SatParameters.ClauseOrdering.forNumber(clauseCleanupOrdering_);
20370 }
20371
20376 public Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value) {
20377 if (value == null) {
20378 throw new NullPointerException();
20379 }
20380 bitField0_ |= 0x00080000;
20381 clauseCleanupOrdering_ = value.getNumber();
20382 onChanged();
20383 return this;
20384 }
20385
20390 bitField0_ = (bitField0_ & ~0x00080000);
20391 clauseCleanupOrdering_ = 0;
20392 onChanged();
20393 return this;
20394 }
20395
20396 private int pbCleanupIncrement_ = 200;
20405 @java.lang.Override
20406 public boolean hasPbCleanupIncrement() {
20407 return ((bitField0_ & 0x00100000) != 0);
20408 }
20409
20417 @java.lang.Override
20419 return pbCleanupIncrement_;
20420 }
20421
20430 public Builder setPbCleanupIncrement(int value) {
20431
20432 pbCleanupIncrement_ = value;
20433 bitField0_ |= 0x00100000;
20434 onChanged();
20435 return this;
20436 }
20437
20445 public Builder clearPbCleanupIncrement() {
20446 bitField0_ = (bitField0_ & ~0x00100000);
20447 pbCleanupIncrement_ = 200;
20448 onChanged();
20449 return this;
20450 }
20451
20452 private double pbCleanupRatio_ = 0.5D;
20457 @java.lang.Override
20458 public boolean hasPbCleanupRatio() {
20459 return ((bitField0_ & 0x00200000) != 0);
20460 }
20461
20465 @java.lang.Override
20466 public double getPbCleanupRatio() {
20467 return pbCleanupRatio_;
20468 }
20469
20474 public Builder setPbCleanupRatio(double value) {
20475
20476 pbCleanupRatio_ = value;
20477 bitField0_ |= 0x00200000;
20478 onChanged();
20479 return this;
20480 }
20481
20485 public Builder clearPbCleanupRatio() {
20486 bitField0_ = (bitField0_ & ~0x00200000);
20487 pbCleanupRatio_ = 0.5D;
20488 onChanged();
20489 return this;
20490 }
20491
20492 private double variableActivityDecay_ = 0.8D;
20508 @java.lang.Override
20509 public boolean hasVariableActivityDecay() {
20510 return ((bitField0_ & 0x00400000) != 0);
20511 }
20512
20527 @java.lang.Override
20529 return variableActivityDecay_;
20530 }
20531
20547 public Builder setVariableActivityDecay(double value) {
20548
20549 variableActivityDecay_ = value;
20550 bitField0_ |= 0x00400000;
20551 onChanged();
20552 return this;
20553 }
20554
20570 bitField0_ = (bitField0_ & ~0x00400000);
20571 variableActivityDecay_ = 0.8D;
20572 onChanged();
20573 return this;
20574 }
20575
20576 private double maxVariableActivityValue_ = 1e+100D;
20581 @java.lang.Override
20583 return ((bitField0_ & 0x00800000) != 0);
20584 }
20585
20589 @java.lang.Override
20591 return maxVariableActivityValue_;
20592 }
20593
20598 public Builder setMaxVariableActivityValue(double value) {
20599
20600 maxVariableActivityValue_ = value;
20601 bitField0_ |= 0x00800000;
20602 onChanged();
20603 return this;
20604 }
20605
20610 bitField0_ = (bitField0_ & ~0x00800000);
20611 maxVariableActivityValue_ = 1e+100D;
20612 onChanged();
20613 return this;
20614 }
20615
20616 private double glucoseMaxDecay_ = 0.95D;
20629 @java.lang.Override
20630 public boolean hasGlucoseMaxDecay() {
20631 return ((bitField0_ & 0x01000000) != 0);
20632 }
20633
20645 @java.lang.Override
20646 public double getGlucoseMaxDecay() {
20647 return glucoseMaxDecay_;
20648 }
20649
20662 public Builder setGlucoseMaxDecay(double value) {
20663
20664 glucoseMaxDecay_ = value;
20665 bitField0_ |= 0x01000000;
20666 onChanged();
20667 return this;
20668 }
20669
20681 public Builder clearGlucoseMaxDecay() {
20682 bitField0_ = (bitField0_ & ~0x01000000);
20683 glucoseMaxDecay_ = 0.95D;
20684 onChanged();
20685 return this;
20686 }
20687
20688 private double glucoseDecayIncrement_ = 0.01D;
20693 @java.lang.Override
20694 public boolean hasGlucoseDecayIncrement() {
20695 return ((bitField0_ & 0x02000000) != 0);
20696 }
20697
20701 @java.lang.Override
20703 return glucoseDecayIncrement_;
20704 }
20705
20710 public Builder setGlucoseDecayIncrement(double value) {
20711
20712 glucoseDecayIncrement_ = value;
20713 bitField0_ |= 0x02000000;
20714 onChanged();
20715 return this;
20716 }
20717
20722 bitField0_ = (bitField0_ & ~0x02000000);
20723 glucoseDecayIncrement_ = 0.01D;
20724 onChanged();
20725 return this;
20726 }
20727
20728 private int glucoseDecayIncrementPeriod_ = 5000;
20733 @java.lang.Override
20735 return ((bitField0_ & 0x04000000) != 0);
20736 }
20737
20741 @java.lang.Override
20743 return glucoseDecayIncrementPeriod_;
20744 }
20745
20750 public Builder setGlucoseDecayIncrementPeriod(int value) {
20751
20752 glucoseDecayIncrementPeriod_ = value;
20753 bitField0_ |= 0x04000000;
20754 onChanged();
20755 return this;
20756 }
20757
20762 bitField0_ = (bitField0_ & ~0x04000000);
20763 glucoseDecayIncrementPeriod_ = 5000;
20764 onChanged();
20765 return this;
20766 }
20767
20768 private double clauseActivityDecay_ = 0.999D;
20777 @java.lang.Override
20778 public boolean hasClauseActivityDecay() {
20779 return ((bitField0_ & 0x08000000) != 0);
20780 }
20781
20789 @java.lang.Override
20790 public double getClauseActivityDecay() {
20791 return clauseActivityDecay_;
20792 }
20793
20802 public Builder setClauseActivityDecay(double value) {
20803
20804 clauseActivityDecay_ = value;
20805 bitField0_ |= 0x08000000;
20806 onChanged();
20807 return this;
20808 }
20809
20817 public Builder clearClauseActivityDecay() {
20818 bitField0_ = (bitField0_ & ~0x08000000);
20819 clauseActivityDecay_ = 0.999D;
20820 onChanged();
20821 return this;
20822 }
20823
20824 private double maxClauseActivityValue_ = 1e+20D;
20829 @java.lang.Override
20830 public boolean hasMaxClauseActivityValue() {
20831 return ((bitField0_ & 0x10000000) != 0);
20832 }
20833
20837 @java.lang.Override
20839 return maxClauseActivityValue_;
20840 }
20841
20846 public Builder setMaxClauseActivityValue(double value) {
20847
20848 maxClauseActivityValue_ = value;
20849 bitField0_ |= 0x10000000;
20850 onChanged();
20851 return this;
20852 }
20853
20858 bitField0_ = (bitField0_ & ~0x10000000);
20859 maxClauseActivityValue_ = 1e+20D;
20860 onChanged();
20861 return this;
20862 }
20863
20864 private com.google.protobuf.Internal.IntList restartAlgorithms_ =
20865 emptyIntList();
20866 private void ensureRestartAlgorithmsIsMutable() {
20867 if (!((bitField0_ & 0x20000000) != 0)) {
20868 restartAlgorithms_ = makeMutableCopy(restartAlgorithms_);
20869 bitField0_ |= 0x20000000;
20870 }
20871 }
20888 public java.util.List<com.google.ortools.sat.SatParameters.RestartAlgorithm> getRestartAlgorithmsList() {
20889 return new com.google.protobuf.Internal.IntListAdapter<
20890 com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
20891 }
20892
20909 return restartAlgorithms_.size();
20910 }
20911
20929 return restartAlgorithms_converter_.convert(restartAlgorithms_.getInt(index));
20930 }
20931
20949 public Builder setRestartAlgorithms(
20950 int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
20951 if (value == null) {
20952 throw new NullPointerException();
20953 }
20954 ensureRestartAlgorithmsIsMutable();
20955 restartAlgorithms_.setInt(index, value.getNumber());
20956 onChanged();
20957 return this;
20958 }
20959
20976 public Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
20977 if (value == null) {
20978 throw new NullPointerException();
20979 }
20980 ensureRestartAlgorithmsIsMutable();
20981 restartAlgorithms_.addInt(value.getNumber());
20982 onChanged();
20983 return this;
20984 }
20985
21003 java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
21004 ensureRestartAlgorithmsIsMutable();
21005 for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
21006 restartAlgorithms_.addInt(value.getNumber());
21007 }
21008 onChanged();
21009 return this;
21010 }
21011
21027 public Builder clearRestartAlgorithms() {
21028 restartAlgorithms_ = emptyIntList();
21029 bitField0_ = (bitField0_ & ~0x20000000);
21030 onChanged();
21031 return this;
21032 }
21033
21034 private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
21040 return ((bitField0_ & 0x40000000) != 0);
21041 }
21042
21046 public java.lang.String getDefaultRestartAlgorithms() {
21047 java.lang.Object ref = defaultRestartAlgorithms_;
21048 if (!(ref instanceof java.lang.String)) {
21049 com.google.protobuf.ByteString bs =
21050 (com.google.protobuf.ByteString) ref;
21051 java.lang.String s = bs.toStringUtf8();
21052 if (bs.isValidUtf8()) {
21053 defaultRestartAlgorithms_ = s;
21054 }
21055 return s;
21056 } else {
21057 return (java.lang.String) ref;
21058 }
21059 }
21060
21064 public com.google.protobuf.ByteString
21066 java.lang.Object ref = defaultRestartAlgorithms_;
21067 if (ref instanceof String) {
21068 com.google.protobuf.ByteString b =
21069 com.google.protobuf.ByteString.copyFromUtf8(
21070 (java.lang.String) ref);
21071 defaultRestartAlgorithms_ = b;
21072 return b;
21073 } else {
21074 return (com.google.protobuf.ByteString) ref;
21075 }
21076 }
21077
21083 java.lang.String value) {
21084 if (value == null) { throw new NullPointerException(); }
21085 defaultRestartAlgorithms_ = value;
21086 bitField0_ |= 0x40000000;
21087 onChanged();
21088 return this;
21089 }
21090
21095 defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
21096 bitField0_ = (bitField0_ & ~0x40000000);
21097 onChanged();
21098 return this;
21099 }
21100
21106 com.google.protobuf.ByteString value) {
21107 if (value == null) { throw new NullPointerException(); }
21108 defaultRestartAlgorithms_ = value;
21109 bitField0_ |= 0x40000000;
21110 onChanged();
21111 return this;
21112 }
21113
21114 private int restartPeriod_ = 50;
21124 @java.lang.Override
21125 public boolean hasRestartPeriod() {
21126 return ((bitField0_ & 0x80000000) != 0);
21127 }
21128
21137 @java.lang.Override
21138 public int getRestartPeriod() {
21139 return restartPeriod_;
21140 }
21141
21151 public Builder setRestartPeriod(int value) {
21152
21153 restartPeriod_ = value;
21154 bitField0_ |= 0x80000000;
21155 onChanged();
21156 return this;
21157 }
21158
21167 public Builder clearRestartPeriod() {
21168 bitField0_ = (bitField0_ & ~0x80000000);
21169 restartPeriod_ = 50;
21170 onChanged();
21171 return this;
21172 }
21173
21174 private int restartRunningWindowSize_ = 50;
21183 @java.lang.Override
21185 return ((bitField1_ & 0x00000001) != 0);
21186 }
21187
21195 @java.lang.Override
21197 return restartRunningWindowSize_;
21198 }
21199
21208 public Builder setRestartRunningWindowSize(int value) {
21209
21210 restartRunningWindowSize_ = value;
21211 bitField1_ |= 0x00000001;
21212 onChanged();
21213 return this;
21214 }
21215
21224 bitField1_ = (bitField1_ & ~0x00000001);
21225 restartRunningWindowSize_ = 50;
21226 onChanged();
21227 return this;
21228 }
21229
21230 private double restartDlAverageRatio_ = 1D;
21240 @java.lang.Override
21241 public boolean hasRestartDlAverageRatio() {
21242 return ((bitField1_ & 0x00000002) != 0);
21243 }
21244
21253 @java.lang.Override
21255 return restartDlAverageRatio_;
21256 }
21257
21267 public Builder setRestartDlAverageRatio(double value) {
21268
21269 restartDlAverageRatio_ = value;
21270 bitField1_ |= 0x00000002;
21271 onChanged();
21272 return this;
21273 }
21274
21284 bitField1_ = (bitField1_ & ~0x00000002);
21285 restartDlAverageRatio_ = 1D;
21286 onChanged();
21287 return this;
21288 }
21289
21290 private double restartLbdAverageRatio_ = 1D;
21295 @java.lang.Override
21296 public boolean hasRestartLbdAverageRatio() {
21297 return ((bitField1_ & 0x00000004) != 0);
21298 }
21299
21303 @java.lang.Override
21305 return restartLbdAverageRatio_;
21306 }
21307
21312 public Builder setRestartLbdAverageRatio(double value) {
21313
21314 restartLbdAverageRatio_ = value;
21315 bitField1_ |= 0x00000004;
21316 onChanged();
21317 return this;
21318 }
21319
21324 bitField1_ = (bitField1_ & ~0x00000004);
21325 restartLbdAverageRatio_ = 1D;
21326 onChanged();
21327 return this;
21328 }
21329
21330 private boolean useBlockingRestart_ ;
21341 @java.lang.Override
21342 public boolean hasUseBlockingRestart() {
21343 return ((bitField1_ & 0x00000008) != 0);
21344 }
21345
21355 @java.lang.Override
21356 public boolean getUseBlockingRestart() {
21357 return useBlockingRestart_;
21358 }
21359
21370 public Builder setUseBlockingRestart(boolean value) {
21371
21372 useBlockingRestart_ = value;
21373 bitField1_ |= 0x00000008;
21374 onChanged();
21375 return this;
21376 }
21377
21387 public Builder clearUseBlockingRestart() {
21388 bitField1_ = (bitField1_ & ~0x00000008);
21389 useBlockingRestart_ = false;
21390 onChanged();
21391 return this;
21392 }
21393
21394 private int blockingRestartWindowSize_ = 5000;
21399 @java.lang.Override
21401 return ((bitField1_ & 0x00000010) != 0);
21402 }
21403
21407 @java.lang.Override
21409 return blockingRestartWindowSize_;
21410 }
21411
21416 public Builder setBlockingRestartWindowSize(int value) {
21417
21418 blockingRestartWindowSize_ = value;
21419 bitField1_ |= 0x00000010;
21420 onChanged();
21421 return this;
21422 }
21423
21428 bitField1_ = (bitField1_ & ~0x00000010);
21429 blockingRestartWindowSize_ = 5000;
21430 onChanged();
21431 return this;
21432 }
21433
21434 private double blockingRestartMultiplier_ = 1.4D;
21439 @java.lang.Override
21441 return ((bitField1_ & 0x00000020) != 0);
21442 }
21443
21447 @java.lang.Override
21449 return blockingRestartMultiplier_;
21450 }
21451
21456 public Builder setBlockingRestartMultiplier(double value) {
21457
21458 blockingRestartMultiplier_ = value;
21459 bitField1_ |= 0x00000020;
21460 onChanged();
21461 return this;
21462 }
21463
21468 bitField1_ = (bitField1_ & ~0x00000020);
21469 blockingRestartMultiplier_ = 1.4D;
21470 onChanged();
21471 return this;
21472 }
21473
21474 private int numConflictsBeforeStrategyChanges_ ;
21485 @java.lang.Override
21487 return ((bitField1_ & 0x00000040) != 0);
21488 }
21489
21499 @java.lang.Override
21501 return numConflictsBeforeStrategyChanges_;
21502 }
21503
21514 public Builder setNumConflictsBeforeStrategyChanges(int value) {
21515
21516 numConflictsBeforeStrategyChanges_ = value;
21517 bitField1_ |= 0x00000040;
21518 onChanged();
21519 return this;
21520 }
21521
21532 bitField1_ = (bitField1_ & ~0x00000040);
21533 numConflictsBeforeStrategyChanges_ = 0;
21534 onChanged();
21535 return this;
21536 }
21537
21538 private double strategyChangeIncreaseRatio_ ;
21548 @java.lang.Override
21550 return ((bitField1_ & 0x00000080) != 0);
21551 }
21552
21561 @java.lang.Override
21563 return strategyChangeIncreaseRatio_;
21564 }
21565
21575 public Builder setStrategyChangeIncreaseRatio(double value) {
21576
21577 strategyChangeIncreaseRatio_ = value;
21578 bitField1_ |= 0x00000080;
21579 onChanged();
21580 return this;
21581 }
21582
21592 bitField1_ = (bitField1_ & ~0x00000080);
21593 strategyChangeIncreaseRatio_ = 0D;
21594 onChanged();
21595 return this;
21596 }
21597
21598 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
21608 @java.lang.Override
21609 public boolean hasMaxTimeInSeconds() {
21610 return ((bitField1_ & 0x00000100) != 0);
21611 }
21612
21621 @java.lang.Override
21622 public double getMaxTimeInSeconds() {
21623 return maxTimeInSeconds_;
21624 }
21625
21635 public Builder setMaxTimeInSeconds(double value) {
21636
21637 maxTimeInSeconds_ = value;
21638 bitField1_ |= 0x00000100;
21639 onChanged();
21640 return this;
21641 }
21642
21651 public Builder clearMaxTimeInSeconds() {
21652 bitField1_ = (bitField1_ & ~0x00000100);
21653 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
21654 onChanged();
21655 return this;
21656 }
21657
21658 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
21669 @java.lang.Override
21670 public boolean hasMaxDeterministicTime() {
21671 return ((bitField1_ & 0x00000200) != 0);
21672 }
21673
21683 @java.lang.Override
21684 public double getMaxDeterministicTime() {
21685 return maxDeterministicTime_;
21686 }
21687
21698 public Builder setMaxDeterministicTime(double value) {
21699
21700 maxDeterministicTime_ = value;
21701 bitField1_ |= 0x00000200;
21702 onChanged();
21703 return this;
21704 }
21705
21715 public Builder clearMaxDeterministicTime() {
21716 bitField1_ = (bitField1_ & ~0x00000200);
21717 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
21718 onChanged();
21719 return this;
21720 }
21721
21722 private int maxNumDeterministicBatches_ ;
21732 @java.lang.Override
21734 return ((bitField1_ & 0x00000400) != 0);
21735 }
21736
21745 @java.lang.Override
21747 return maxNumDeterministicBatches_;
21748 }
21749
21759 public Builder setMaxNumDeterministicBatches(int value) {
21760
21761 maxNumDeterministicBatches_ = value;
21762 bitField1_ |= 0x00000400;
21763 onChanged();
21764 return this;
21765 }
21766
21776 bitField1_ = (bitField1_ & ~0x00000400);
21777 maxNumDeterministicBatches_ = 0;
21778 onChanged();
21779 return this;
21780 }
21781
21782 private long maxNumberOfConflicts_ = 9223372036854775807L;
21797 @java.lang.Override
21798 public boolean hasMaxNumberOfConflicts() {
21799 return ((bitField1_ & 0x00000800) != 0);
21800 }
21801
21815 @java.lang.Override
21817 return maxNumberOfConflicts_;
21818 }
21819
21834 public Builder setMaxNumberOfConflicts(long value) {
21835
21836 maxNumberOfConflicts_ = value;
21837 bitField1_ |= 0x00000800;
21838 onChanged();
21839 return this;
21840 }
21841
21855 public Builder clearMaxNumberOfConflicts() {
21856 bitField1_ = (bitField1_ & ~0x00000800);
21857 maxNumberOfConflicts_ = 9223372036854775807L;
21858 onChanged();
21859 return this;
21860 }
21861
21862 private long maxMemoryInMb_ = 10000L;
21876 @java.lang.Override
21877 public boolean hasMaxMemoryInMb() {
21878 return ((bitField1_ & 0x00001000) != 0);
21879 }
21880
21893 @java.lang.Override
21894 public long getMaxMemoryInMb() {
21895 return maxMemoryInMb_;
21896 }
21897
21911 public Builder setMaxMemoryInMb(long value) {
21912
21913 maxMemoryInMb_ = value;
21914 bitField1_ |= 0x00001000;
21915 onChanged();
21916 return this;
21917 }
21918
21931 public Builder clearMaxMemoryInMb() {
21932 bitField1_ = (bitField1_ & ~0x00001000);
21933 maxMemoryInMb_ = 10000L;
21934 onChanged();
21935 return this;
21936 }
21937
21938 private double absoluteGapLimit_ = 0.0001D;
21964 @java.lang.Override
21965 public boolean hasAbsoluteGapLimit() {
21966 return ((bitField1_ & 0x00002000) != 0);
21967 }
21968
21993 @java.lang.Override
21994 public double getAbsoluteGapLimit() {
21995 return absoluteGapLimit_;
21996 }
21997
22023 public Builder setAbsoluteGapLimit(double value) {
22024
22025 absoluteGapLimit_ = value;
22026 bitField1_ |= 0x00002000;
22027 onChanged();
22028 return this;
22029 }
22030
22055 public Builder clearAbsoluteGapLimit() {
22056 bitField1_ = (bitField1_ & ~0x00002000);
22057 absoluteGapLimit_ = 0.0001D;
22058 onChanged();
22059 return this;
22060 }
22061
22062 private double relativeGapLimit_ ;
22067 @java.lang.Override
22068 public boolean hasRelativeGapLimit() {
22069 return ((bitField1_ & 0x00004000) != 0);
22070 }
22071
22075 @java.lang.Override
22076 public double getRelativeGapLimit() {
22077 return relativeGapLimit_;
22078 }
22079
22084 public Builder setRelativeGapLimit(double value) {
22085
22086 relativeGapLimit_ = value;
22087 bitField1_ |= 0x00004000;
22088 onChanged();
22089 return this;
22090 }
22091
22095 public Builder clearRelativeGapLimit() {
22096 bitField1_ = (bitField1_ & ~0x00004000);
22097 relativeGapLimit_ = 0D;
22098 onChanged();
22099 return this;
22100 }
22101
22102 private int randomSeed_ = 1;
22117 @java.lang.Override
22118 public boolean hasRandomSeed() {
22119 return ((bitField1_ & 0x00008000) != 0);
22120 }
22121
22135 @java.lang.Override
22136 public int getRandomSeed() {
22137 return randomSeed_;
22138 }
22139
22154 public Builder setRandomSeed(int value) {
22155
22156 randomSeed_ = value;
22157 bitField1_ |= 0x00008000;
22158 onChanged();
22159 return this;
22160 }
22161
22175 public Builder clearRandomSeed() {
22176 bitField1_ = (bitField1_ & ~0x00008000);
22177 randomSeed_ = 1;
22178 onChanged();
22179 return this;
22180 }
22181
22182 private boolean permuteVariableRandomly_ ;
22194 @java.lang.Override
22196 return ((bitField1_ & 0x00010000) != 0);
22197 }
22198
22209 @java.lang.Override
22211 return permuteVariableRandomly_;
22212 }
22213
22225 public Builder setPermuteVariableRandomly(boolean value) {
22226
22227 permuteVariableRandomly_ = value;
22228 bitField1_ |= 0x00010000;
22229 onChanged();
22230 return this;
22231 }
22232
22244 bitField1_ = (bitField1_ & ~0x00010000);
22245 permuteVariableRandomly_ = false;
22246 onChanged();
22247 return this;
22248 }
22249
22250 private boolean permutePresolveConstraintOrder_ ;
22255 @java.lang.Override
22257 return ((bitField1_ & 0x00020000) != 0);
22258 }
22259
22263 @java.lang.Override
22265 return permutePresolveConstraintOrder_;
22266 }
22267
22272 public Builder setPermutePresolveConstraintOrder(boolean value) {
22273
22274 permutePresolveConstraintOrder_ = value;
22275 bitField1_ |= 0x00020000;
22276 onChanged();
22277 return this;
22278 }
22279
22284 bitField1_ = (bitField1_ & ~0x00020000);
22285 permutePresolveConstraintOrder_ = false;
22286 onChanged();
22287 return this;
22288 }
22289
22290 private boolean useAbslRandom_ ;
22295 @java.lang.Override
22296 public boolean hasUseAbslRandom() {
22297 return ((bitField1_ & 0x00040000) != 0);
22298 }
22299
22303 @java.lang.Override
22304 public boolean getUseAbslRandom() {
22305 return useAbslRandom_;
22306 }
22307
22312 public Builder setUseAbslRandom(boolean value) {
22313
22314 useAbslRandom_ = value;
22315 bitField1_ |= 0x00040000;
22316 onChanged();
22317 return this;
22318 }
22319
22323 public Builder clearUseAbslRandom() {
22324 bitField1_ = (bitField1_ & ~0x00040000);
22325 useAbslRandom_ = false;
22326 onChanged();
22327 return this;
22328 }
22329
22330 private boolean logSearchProgress_ ;
22341 @java.lang.Override
22342 public boolean hasLogSearchProgress() {
22343 return ((bitField1_ & 0x00080000) != 0);
22344 }
22345
22355 @java.lang.Override
22356 public boolean getLogSearchProgress() {
22357 return logSearchProgress_;
22358 }
22359
22370 public Builder setLogSearchProgress(boolean value) {
22371
22372 logSearchProgress_ = value;
22373 bitField1_ |= 0x00080000;
22374 onChanged();
22375 return this;
22376 }
22377
22387 public Builder clearLogSearchProgress() {
22388 bitField1_ = (bitField1_ & ~0x00080000);
22389 logSearchProgress_ = false;
22390 onChanged();
22391 return this;
22392 }
22393
22394 private boolean logSubsolverStatistics_ ;
22406 @java.lang.Override
22407 public boolean hasLogSubsolverStatistics() {
22408 return ((bitField1_ & 0x00100000) != 0);
22409 }
22410
22421 @java.lang.Override
22422 public boolean getLogSubsolverStatistics() {
22423 return logSubsolverStatistics_;
22424 }
22425
22437 public Builder setLogSubsolverStatistics(boolean value) {
22438
22439 logSubsolverStatistics_ = value;
22440 bitField1_ |= 0x00100000;
22441 onChanged();
22442 return this;
22443 }
22444
22456 bitField1_ = (bitField1_ & ~0x00100000);
22457 logSubsolverStatistics_ = false;
22458 onChanged();
22459 return this;
22460 }
22461
22462 private java.lang.Object logPrefix_ = "";
22471 public boolean hasLogPrefix() {
22472 return ((bitField1_ & 0x00200000) != 0);
22473 }
22474
22482 public java.lang.String getLogPrefix() {
22483 java.lang.Object ref = logPrefix_;
22484 if (!(ref instanceof java.lang.String)) {
22485 com.google.protobuf.ByteString bs =
22486 (com.google.protobuf.ByteString) ref;
22487 java.lang.String s = bs.toStringUtf8();
22488 if (bs.isValidUtf8()) {
22489 logPrefix_ = s;
22490 }
22491 return s;
22492 } else {
22493 return (java.lang.String) ref;
22494 }
22495 }
22496
22504 public com.google.protobuf.ByteString
22506 java.lang.Object ref = logPrefix_;
22507 if (ref instanceof String) {
22508 com.google.protobuf.ByteString b =
22509 com.google.protobuf.ByteString.copyFromUtf8(
22510 (java.lang.String) ref);
22511 logPrefix_ = b;
22512 return b;
22513 } else {
22514 return (com.google.protobuf.ByteString) ref;
22515 }
22516 }
22517
22526 public Builder setLogPrefix(
22527 java.lang.String value) {
22528 if (value == null) { throw new NullPointerException(); }
22529 logPrefix_ = value;
22530 bitField1_ |= 0x00200000;
22531 onChanged();
22532 return this;
22533 }
22534
22542 public Builder clearLogPrefix() {
22543 logPrefix_ = getDefaultInstance().getLogPrefix();
22544 bitField1_ = (bitField1_ & ~0x00200000);
22545 onChanged();
22546 return this;
22547 }
22548
22557 public Builder setLogPrefixBytes(
22558 com.google.protobuf.ByteString value) {
22559 if (value == null) { throw new NullPointerException(); }
22560 logPrefix_ = value;
22561 bitField1_ |= 0x00200000;
22562 onChanged();
22563 return this;
22564 }
22565
22566 private boolean logToStdout_ = true;
22575 @java.lang.Override
22576 public boolean hasLogToStdout() {
22577 return ((bitField1_ & 0x00400000) != 0);
22578 }
22579
22587 @java.lang.Override
22588 public boolean getLogToStdout() {
22589 return logToStdout_;
22590 }
22591
22600 public Builder setLogToStdout(boolean value) {
22601
22602 logToStdout_ = value;
22603 bitField1_ |= 0x00400000;
22604 onChanged();
22605 return this;
22606 }
22607
22615 public Builder clearLogToStdout() {
22616 bitField1_ = (bitField1_ & ~0x00400000);
22617 logToStdout_ = true;
22618 onChanged();
22619 return this;
22620 }
22621
22622 private boolean logToResponse_ ;
22631 @java.lang.Override
22632 public boolean hasLogToResponse() {
22633 return ((bitField1_ & 0x00800000) != 0);
22634 }
22635
22643 @java.lang.Override
22644 public boolean getLogToResponse() {
22645 return logToResponse_;
22646 }
22647
22656 public Builder setLogToResponse(boolean value) {
22657
22658 logToResponse_ = value;
22659 bitField1_ |= 0x00800000;
22660 onChanged();
22661 return this;
22662 }
22663
22671 public Builder clearLogToResponse() {
22672 bitField1_ = (bitField1_ & ~0x00800000);
22673 logToResponse_ = false;
22674 onChanged();
22675 return this;
22676 }
22677
22678 private boolean usePbResolution_ ;
22690 @java.lang.Override
22691 public boolean hasUsePbResolution() {
22692 return ((bitField1_ & 0x01000000) != 0);
22693 }
22694
22705 @java.lang.Override
22706 public boolean getUsePbResolution() {
22707 return usePbResolution_;
22708 }
22709
22721 public Builder setUsePbResolution(boolean value) {
22722
22723 usePbResolution_ = value;
22724 bitField1_ |= 0x01000000;
22725 onChanged();
22726 return this;
22727 }
22728
22739 public Builder clearUsePbResolution() {
22740 bitField1_ = (bitField1_ & ~0x01000000);
22741 usePbResolution_ = false;
22742 onChanged();
22743 return this;
22744 }
22745
22746 private boolean minimizeReductionDuringPbResolution_ ;
22758 @java.lang.Override
22760 return ((bitField1_ & 0x02000000) != 0);
22761 }
22762
22773 @java.lang.Override
22775 return minimizeReductionDuringPbResolution_;
22776 }
22777
22789 public Builder setMinimizeReductionDuringPbResolution(boolean value) {
22790
22791 minimizeReductionDuringPbResolution_ = value;
22792 bitField1_ |= 0x02000000;
22793 onChanged();
22794 return this;
22795 }
22796
22808 bitField1_ = (bitField1_ & ~0x02000000);
22809 minimizeReductionDuringPbResolution_ = false;
22810 onChanged();
22811 return this;
22812 }
22813
22814 private boolean countAssumptionLevelsInLbd_ = true;
22831 @java.lang.Override
22833 return ((bitField1_ & 0x04000000) != 0);
22834 }
22835
22851 @java.lang.Override
22853 return countAssumptionLevelsInLbd_;
22854 }
22855
22872 public Builder setCountAssumptionLevelsInLbd(boolean value) {
22873
22874 countAssumptionLevelsInLbd_ = value;
22875 bitField1_ |= 0x04000000;
22876 onChanged();
22877 return this;
22878 }
22879
22896 bitField1_ = (bitField1_ & ~0x04000000);
22897 countAssumptionLevelsInLbd_ = true;
22898 onChanged();
22899 return this;
22900 }
22901
22902 private int presolveBveThreshold_ = 500;
22913 @java.lang.Override
22914 public boolean hasPresolveBveThreshold() {
22915 return ((bitField1_ & 0x08000000) != 0);
22916 }
22917
22927 @java.lang.Override
22929 return presolveBveThreshold_;
22930 }
22931
22942 public Builder setPresolveBveThreshold(int value) {
22943
22944 presolveBveThreshold_ = value;
22945 bitField1_ |= 0x08000000;
22946 onChanged();
22947 return this;
22948 }
22949
22959 public Builder clearPresolveBveThreshold() {
22960 bitField1_ = (bitField1_ & ~0x08000000);
22961 presolveBveThreshold_ = 500;
22962 onChanged();
22963 return this;
22964 }
22965
22966 private int presolveBveClauseWeight_ = 3;
22976 @java.lang.Override
22978 return ((bitField1_ & 0x10000000) != 0);
22979 }
22980
22989 @java.lang.Override
22991 return presolveBveClauseWeight_;
22992 }
22993
23003 public Builder setPresolveBveClauseWeight(int value) {
23004
23005 presolveBveClauseWeight_ = value;
23006 bitField1_ |= 0x10000000;
23007 onChanged();
23008 return this;
23009 }
23010
23020 bitField1_ = (bitField1_ & ~0x10000000);
23021 presolveBveClauseWeight_ = 3;
23022 onChanged();
23023 return this;
23024 }
23025
23026 private double probingDeterministicTimeLimit_ = 1D;
23039 @java.lang.Override
23041 return ((bitField1_ & 0x20000000) != 0);
23042 }
23043
23055 @java.lang.Override
23057 return probingDeterministicTimeLimit_;
23058 }
23059
23072 public Builder setProbingDeterministicTimeLimit(double value) {
23073
23074 probingDeterministicTimeLimit_ = value;
23075 bitField1_ |= 0x20000000;
23076 onChanged();
23077 return this;
23078 }
23079
23092 bitField1_ = (bitField1_ & ~0x20000000);
23093 probingDeterministicTimeLimit_ = 1D;
23094 onChanged();
23095 return this;
23096 }
23097
23098 private double presolveProbingDeterministicTimeLimit_ = 30D;
23103 @java.lang.Override
23105 return ((bitField1_ & 0x40000000) != 0);
23106 }
23107
23111 @java.lang.Override
23113 return presolveProbingDeterministicTimeLimit_;
23114 }
23115
23120 public Builder setPresolveProbingDeterministicTimeLimit(double value) {
23121
23122 presolveProbingDeterministicTimeLimit_ = value;
23123 bitField1_ |= 0x40000000;
23124 onChanged();
23125 return this;
23126 }
23127
23132 bitField1_ = (bitField1_ & ~0x40000000);
23133 presolveProbingDeterministicTimeLimit_ = 30D;
23134 onChanged();
23135 return this;
23136 }
23137
23138 private boolean presolveBlockedClause_ = true;
23148 @java.lang.Override
23149 public boolean hasPresolveBlockedClause() {
23150 return ((bitField1_ & 0x80000000) != 0);
23151 }
23152
23161 @java.lang.Override
23162 public boolean getPresolveBlockedClause() {
23163 return presolveBlockedClause_;
23164 }
23165
23175 public Builder setPresolveBlockedClause(boolean value) {
23176
23177 presolveBlockedClause_ = value;
23178 bitField1_ |= 0x80000000;
23179 onChanged();
23180 return this;
23181 }
23182
23192 bitField1_ = (bitField1_ & ~0x80000000);
23193 presolveBlockedClause_ = true;
23194 onChanged();
23195 return this;
23196 }
23197
23198 private boolean presolveUseBva_ = true;
23207 @java.lang.Override
23208 public boolean hasPresolveUseBva() {
23209 return ((bitField2_ & 0x00000001) != 0);
23210 }
23211
23219 @java.lang.Override
23220 public boolean getPresolveUseBva() {
23221 return presolveUseBva_;
23222 }
23223
23232 public Builder setPresolveUseBva(boolean value) {
23233
23234 presolveUseBva_ = value;
23235 bitField2_ |= 0x00000001;
23236 onChanged();
23237 return this;
23238 }
23239
23247 public Builder clearPresolveUseBva() {
23248 bitField2_ = (bitField2_ & ~0x00000001);
23249 presolveUseBva_ = true;
23250 onChanged();
23251 return this;
23252 }
23253
23254 private int presolveBvaThreshold_ = 1;
23266 @java.lang.Override
23267 public boolean hasPresolveBvaThreshold() {
23268 return ((bitField2_ & 0x00000002) != 0);
23269 }
23270
23281 @java.lang.Override
23283 return presolveBvaThreshold_;
23284 }
23285
23297 public Builder setPresolveBvaThreshold(int value) {
23298
23299 presolveBvaThreshold_ = value;
23300 bitField2_ |= 0x00000002;
23301 onChanged();
23302 return this;
23303 }
23304
23315 public Builder clearPresolveBvaThreshold() {
23316 bitField2_ = (bitField2_ & ~0x00000002);
23317 presolveBvaThreshold_ = 1;
23318 onChanged();
23319 return this;
23320 }
23321
23322 private int maxPresolveIterations_ = 3;
23333 @java.lang.Override
23334 public boolean hasMaxPresolveIterations() {
23335 return ((bitField2_ & 0x00000004) != 0);
23336 }
23337
23347 @java.lang.Override
23349 return maxPresolveIterations_;
23350 }
23351
23362 public Builder setMaxPresolveIterations(int value) {
23363
23364 maxPresolveIterations_ = value;
23365 bitField2_ |= 0x00000004;
23366 onChanged();
23367 return this;
23368 }
23369
23380 bitField2_ = (bitField2_ & ~0x00000004);
23381 maxPresolveIterations_ = 3;
23382 onChanged();
23383 return this;
23384 }
23385
23386 private boolean cpModelPresolve_ = true;
23395 @java.lang.Override
23396 public boolean hasCpModelPresolve() {
23397 return ((bitField2_ & 0x00000008) != 0);
23398 }
23399
23407 @java.lang.Override
23408 public boolean getCpModelPresolve() {
23409 return cpModelPresolve_;
23410 }
23411
23420 public Builder setCpModelPresolve(boolean value) {
23421
23422 cpModelPresolve_ = value;
23423 bitField2_ |= 0x00000008;
23424 onChanged();
23425 return this;
23426 }
23427
23435 public Builder clearCpModelPresolve() {
23436 bitField2_ = (bitField2_ & ~0x00000008);
23437 cpModelPresolve_ = true;
23438 onChanged();
23439 return this;
23440 }
23441
23442 private int cpModelProbingLevel_ = 2;
23451 @java.lang.Override
23452 public boolean hasCpModelProbingLevel() {
23453 return ((bitField2_ & 0x00000010) != 0);
23454 }
23455
23463 @java.lang.Override
23465 return cpModelProbingLevel_;
23466 }
23467
23476 public Builder setCpModelProbingLevel(int value) {
23477
23478 cpModelProbingLevel_ = value;
23479 bitField2_ |= 0x00000010;
23480 onChanged();
23481 return this;
23482 }
23483
23491 public Builder clearCpModelProbingLevel() {
23492 bitField2_ = (bitField2_ & ~0x00000010);
23493 cpModelProbingLevel_ = 2;
23494 onChanged();
23495 return this;
23496 }
23497
23498 private boolean cpModelUseSatPresolve_ = true;
23507 @java.lang.Override
23508 public boolean hasCpModelUseSatPresolve() {
23509 return ((bitField2_ & 0x00000020) != 0);
23510 }
23511
23519 @java.lang.Override
23520 public boolean getCpModelUseSatPresolve() {
23521 return cpModelUseSatPresolve_;
23522 }
23523
23532 public Builder setCpModelUseSatPresolve(boolean value) {
23533
23534 cpModelUseSatPresolve_ = value;
23535 bitField2_ |= 0x00000020;
23536 onChanged();
23537 return this;
23538 }
23539
23548 bitField2_ = (bitField2_ & ~0x00000020);
23549 cpModelUseSatPresolve_ = true;
23550 onChanged();
23551 return this;
23552 }
23553
23554 private boolean removeFixedVariablesEarly_ = true;
23566 @java.lang.Override
23568 return ((bitField2_ & 0x00000040) != 0);
23569 }
23570
23581 @java.lang.Override
23583 return removeFixedVariablesEarly_;
23584 }
23585
23597 public Builder setRemoveFixedVariablesEarly(boolean value) {
23598
23599 removeFixedVariablesEarly_ = value;
23600 bitField2_ |= 0x00000040;
23601 onChanged();
23602 return this;
23603 }
23604
23616 bitField2_ = (bitField2_ & ~0x00000040);
23617 removeFixedVariablesEarly_ = true;
23618 onChanged();
23619 return this;
23620 }
23621
23622 private boolean detectTableWithCost_ ;
23636 @java.lang.Override
23637 public boolean hasDetectTableWithCost() {
23638 return ((bitField2_ & 0x00000080) != 0);
23639 }
23640
23653 @java.lang.Override
23654 public boolean getDetectTableWithCost() {
23655 return detectTableWithCost_;
23656 }
23657
23671 public Builder setDetectTableWithCost(boolean value) {
23672
23673 detectTableWithCost_ = value;
23674 bitField2_ |= 0x00000080;
23675 onChanged();
23676 return this;
23677 }
23678
23691 public Builder clearDetectTableWithCost() {
23692 bitField2_ = (bitField2_ & ~0x00000080);
23693 detectTableWithCost_ = false;
23694 onChanged();
23695 return this;
23696 }
23697
23698 private int tableCompressionLevel_ = 2;
23710 @java.lang.Override
23711 public boolean hasTableCompressionLevel() {
23712 return ((bitField2_ & 0x00000100) != 0);
23713 }
23714
23725 @java.lang.Override
23727 return tableCompressionLevel_;
23728 }
23729
23741 public Builder setTableCompressionLevel(int value) {
23742
23743 tableCompressionLevel_ = value;
23744 bitField2_ |= 0x00000100;
23745 onChanged();
23746 return this;
23747 }
23748
23760 bitField2_ = (bitField2_ & ~0x00000100);
23761 tableCompressionLevel_ = 2;
23762 onChanged();
23763 return this;
23764 }
23765
23766 private boolean expandAlldiffConstraints_ ;
23776 @java.lang.Override
23778 return ((bitField2_ & 0x00000200) != 0);
23779 }
23780
23789 @java.lang.Override
23791 return expandAlldiffConstraints_;
23792 }
23793
23803 public Builder setExpandAlldiffConstraints(boolean value) {
23804
23805 expandAlldiffConstraints_ = value;
23806 bitField2_ |= 0x00000200;
23807 onChanged();
23808 return this;
23809 }
23810
23820 bitField2_ = (bitField2_ & ~0x00000200);
23821 expandAlldiffConstraints_ = false;
23822 onChanged();
23823 return this;
23824 }
23825
23826 private boolean expandReservoirConstraints_ = true;
23836 @java.lang.Override
23838 return ((bitField2_ & 0x00000400) != 0);
23839 }
23840
23849 @java.lang.Override
23851 return expandReservoirConstraints_;
23852 }
23853
23863 public Builder setExpandReservoirConstraints(boolean value) {
23864
23865 expandReservoirConstraints_ = value;
23866 bitField2_ |= 0x00000400;
23867 onChanged();
23868 return this;
23869 }
23870
23880 bitField2_ = (bitField2_ & ~0x00000400);
23881 expandReservoirConstraints_ = true;
23882 onChanged();
23883 return this;
23884 }
23885
23886 private boolean expandReservoirUsingCircuit_ ;
23908 @java.lang.Override
23910 return ((bitField2_ & 0x00000800) != 0);
23911 }
23912
23933 @java.lang.Override
23935 return expandReservoirUsingCircuit_;
23936 }
23937
23959 public Builder setExpandReservoirUsingCircuit(boolean value) {
23960
23961 expandReservoirUsingCircuit_ = value;
23962 bitField2_ |= 0x00000800;
23963 onChanged();
23964 return this;
23965 }
23966
23988 bitField2_ = (bitField2_ & ~0x00000800);
23989 expandReservoirUsingCircuit_ = false;
23990 onChanged();
23991 return this;
23992 }
23993
23994 private boolean encodeCumulativeAsReservoir_ ;
24005 @java.lang.Override
24007 return ((bitField2_ & 0x00001000) != 0);
24008 }
24009
24019 @java.lang.Override
24021 return encodeCumulativeAsReservoir_;
24022 }
24023
24034 public Builder setEncodeCumulativeAsReservoir(boolean value) {
24035
24036 encodeCumulativeAsReservoir_ = value;
24037 bitField2_ |= 0x00001000;
24038 onChanged();
24039 return this;
24040 }
24041
24052 bitField2_ = (bitField2_ & ~0x00001000);
24053 encodeCumulativeAsReservoir_ = false;
24054 onChanged();
24055 return this;
24056 }
24057
24058 private int maxLinMaxSizeForExpansion_ ;
24071 @java.lang.Override
24073 return ((bitField2_ & 0x00002000) != 0);
24074 }
24075
24087 @java.lang.Override
24089 return maxLinMaxSizeForExpansion_;
24090 }
24091
24104 public Builder setMaxLinMaxSizeForExpansion(int value) {
24105
24106 maxLinMaxSizeForExpansion_ = value;
24107 bitField2_ |= 0x00002000;
24108 onChanged();
24109 return this;
24110 }
24111
24124 bitField2_ = (bitField2_ & ~0x00002000);
24125 maxLinMaxSizeForExpansion_ = 0;
24126 onChanged();
24127 return this;
24128 }
24129
24130 private boolean disableConstraintExpansion_ ;
24140 @java.lang.Override
24142 return ((bitField2_ & 0x00004000) != 0);
24143 }
24144
24153 @java.lang.Override
24155 return disableConstraintExpansion_;
24156 }
24157
24167 public Builder setDisableConstraintExpansion(boolean value) {
24168
24169 disableConstraintExpansion_ = value;
24170 bitField2_ |= 0x00004000;
24171 onChanged();
24172 return this;
24173 }
24174
24184 bitField2_ = (bitField2_ & ~0x00004000);
24185 disableConstraintExpansion_ = false;
24186 onChanged();
24187 return this;
24188 }
24189
24190 private boolean encodeComplexLinearConstraintWithInteger_ ;
24200 @java.lang.Override
24202 return ((bitField2_ & 0x00008000) != 0);
24203 }
24204
24213 @java.lang.Override
24215 return encodeComplexLinearConstraintWithInteger_;
24216 }
24217
24227 public Builder setEncodeComplexLinearConstraintWithInteger(boolean value) {
24228
24229 encodeComplexLinearConstraintWithInteger_ = value;
24230 bitField2_ |= 0x00008000;
24231 onChanged();
24232 return this;
24233 }
24234
24244 bitField2_ = (bitField2_ & ~0x00008000);
24245 encodeComplexLinearConstraintWithInteger_ = false;
24246 onChanged();
24247 return this;
24248 }
24249
24250 private double mergeNoOverlapWorkLimit_ = 1000000000000D;
24263 @java.lang.Override
24265 return ((bitField2_ & 0x00010000) != 0);
24266 }
24267
24279 @java.lang.Override
24281 return mergeNoOverlapWorkLimit_;
24282 }
24283
24296 public Builder setMergeNoOverlapWorkLimit(double value) {
24297
24298 mergeNoOverlapWorkLimit_ = value;
24299 bitField2_ |= 0x00010000;
24300 onChanged();
24301 return this;
24302 }
24303
24316 bitField2_ = (bitField2_ & ~0x00010000);
24317 mergeNoOverlapWorkLimit_ = 1000000000000D;
24318 onChanged();
24319 return this;
24320 }
24321
24322 private double mergeAtMostOneWorkLimit_ = 100000000D;
24327 @java.lang.Override
24329 return ((bitField2_ & 0x00020000) != 0);
24330 }
24331
24335 @java.lang.Override
24337 return mergeAtMostOneWorkLimit_;
24338 }
24339
24344 public Builder setMergeAtMostOneWorkLimit(double value) {
24345
24346 mergeAtMostOneWorkLimit_ = value;
24347 bitField2_ |= 0x00020000;
24348 onChanged();
24349 return this;
24350 }
24351
24356 bitField2_ = (bitField2_ & ~0x00020000);
24357 mergeAtMostOneWorkLimit_ = 100000000D;
24358 onChanged();
24359 return this;
24360 }
24361
24362 private int presolveSubstitutionLevel_ = 1;
24374 @java.lang.Override
24376 return ((bitField2_ & 0x00040000) != 0);
24377 }
24378
24389 @java.lang.Override
24391 return presolveSubstitutionLevel_;
24392 }
24393
24405 public Builder setPresolveSubstitutionLevel(int value) {
24406
24407 presolveSubstitutionLevel_ = value;
24408 bitField2_ |= 0x00040000;
24409 onChanged();
24410 return this;
24411 }
24412
24424 bitField2_ = (bitField2_ & ~0x00040000);
24425 presolveSubstitutionLevel_ = 1;
24426 onChanged();
24427 return this;
24428 }
24429
24430 private boolean presolveExtractIntegerEnforcement_ ;
24444 @java.lang.Override
24446 return ((bitField2_ & 0x00080000) != 0);
24447 }
24448
24461 @java.lang.Override
24463 return presolveExtractIntegerEnforcement_;
24464 }
24465
24479 public Builder setPresolveExtractIntegerEnforcement(boolean value) {
24480
24481 presolveExtractIntegerEnforcement_ = value;
24482 bitField2_ |= 0x00080000;
24483 onChanged();
24484 return this;
24485 }
24486
24500 bitField2_ = (bitField2_ & ~0x00080000);
24501 presolveExtractIntegerEnforcement_ = false;
24502 onChanged();
24503 return this;
24504 }
24505
24506 private long presolveInclusionWorkLimit_ = 100000000L;
24521 @java.lang.Override
24523 return ((bitField2_ & 0x00100000) != 0);
24524 }
24525
24539 @java.lang.Override
24541 return presolveInclusionWorkLimit_;
24542 }
24543
24558 public Builder setPresolveInclusionWorkLimit(long value) {
24559
24560 presolveInclusionWorkLimit_ = value;
24561 bitField2_ |= 0x00100000;
24562 onChanged();
24563 return this;
24564 }
24565
24580 bitField2_ = (bitField2_ & ~0x00100000);
24581 presolveInclusionWorkLimit_ = 100000000L;
24582 onChanged();
24583 return this;
24584 }
24585
24586 private boolean ignoreNames_ = true;
24595 @java.lang.Override
24596 public boolean hasIgnoreNames() {
24597 return ((bitField2_ & 0x00200000) != 0);
24598 }
24599
24607 @java.lang.Override
24608 public boolean getIgnoreNames() {
24609 return ignoreNames_;
24610 }
24611
24620 public Builder setIgnoreNames(boolean value) {
24621
24622 ignoreNames_ = value;
24623 bitField2_ |= 0x00200000;
24624 onChanged();
24625 return this;
24626 }
24627
24635 public Builder clearIgnoreNames() {
24636 bitField2_ = (bitField2_ & ~0x00200000);
24637 ignoreNames_ = true;
24638 onChanged();
24639 return this;
24640 }
24641
24642 private boolean inferAllDiffs_ = true;
24658 @java.lang.Override
24659 public boolean hasInferAllDiffs() {
24660 return ((bitField2_ & 0x00400000) != 0);
24661 }
24662
24677 @java.lang.Override
24678 public boolean getInferAllDiffs() {
24679 return inferAllDiffs_;
24680 }
24681
24697 public Builder setInferAllDiffs(boolean value) {
24698
24699 inferAllDiffs_ = value;
24700 bitField2_ |= 0x00400000;
24701 onChanged();
24702 return this;
24703 }
24704
24719 public Builder clearInferAllDiffs() {
24720 bitField2_ = (bitField2_ & ~0x00400000);
24721 inferAllDiffs_ = true;
24722 onChanged();
24723 return this;
24724 }
24725
24726 private boolean findBigLinearOverlap_ = true;
24738 @java.lang.Override
24739 public boolean hasFindBigLinearOverlap() {
24740 return ((bitField2_ & 0x00800000) != 0);
24741 }
24742
24753 @java.lang.Override
24754 public boolean getFindBigLinearOverlap() {
24755 return findBigLinearOverlap_;
24756 }
24757
24769 public Builder setFindBigLinearOverlap(boolean value) {
24770
24771 findBigLinearOverlap_ = value;
24772 bitField2_ |= 0x00800000;
24773 onChanged();
24774 return this;
24775 }
24776
24787 public Builder clearFindBigLinearOverlap() {
24788 bitField2_ = (bitField2_ & ~0x00800000);
24789 findBigLinearOverlap_ = true;
24790 onChanged();
24791 return this;
24792 }
24793
24794 private boolean useSatInprocessing_ = true;
24804 @java.lang.Override
24805 public boolean hasUseSatInprocessing() {
24806 return ((bitField2_ & 0x01000000) != 0);
24807 }
24808
24817 @java.lang.Override
24818 public boolean getUseSatInprocessing() {
24819 return useSatInprocessing_;
24820 }
24821
24831 public Builder setUseSatInprocessing(boolean value) {
24832
24833 useSatInprocessing_ = value;
24834 bitField2_ |= 0x01000000;
24835 onChanged();
24836 return this;
24837 }
24838
24847 public Builder clearUseSatInprocessing() {
24848 bitField2_ = (bitField2_ & ~0x01000000);
24849 useSatInprocessing_ = true;
24850 onChanged();
24851 return this;
24852 }
24853
24854 private double inprocessingDtimeRatio_ = 0.2D;
24865 @java.lang.Override
24866 public boolean hasInprocessingDtimeRatio() {
24867 return ((bitField2_ & 0x02000000) != 0);
24868 }
24869
24879 @java.lang.Override
24881 return inprocessingDtimeRatio_;
24882 }
24883
24894 public Builder setInprocessingDtimeRatio(double value) {
24895
24896 inprocessingDtimeRatio_ = value;
24897 bitField2_ |= 0x02000000;
24898 onChanged();
24899 return this;
24900 }
24901
24912 bitField2_ = (bitField2_ & ~0x02000000);
24913 inprocessingDtimeRatio_ = 0.2D;
24914 onChanged();
24915 return this;
24916 }
24917
24918 private double inprocessingProbingDtime_ = 1D;
24927 @java.lang.Override
24929 return ((bitField2_ & 0x04000000) != 0);
24930 }
24931
24939 @java.lang.Override
24941 return inprocessingProbingDtime_;
24942 }
24943
24952 public Builder setInprocessingProbingDtime(double value) {
24953
24954 inprocessingProbingDtime_ = value;
24955 bitField2_ |= 0x04000000;
24956 onChanged();
24957 return this;
24958 }
24959
24968 bitField2_ = (bitField2_ & ~0x04000000);
24969 inprocessingProbingDtime_ = 1D;
24970 onChanged();
24971 return this;
24972 }
24973
24974 private double inprocessingMinimizationDtime_ = 1D;
24992 @java.lang.Override
24994 return ((bitField2_ & 0x08000000) != 0);
24995 }
24996
25013 @java.lang.Override
25015 return inprocessingMinimizationDtime_;
25016 }
25017
25035 public Builder setInprocessingMinimizationDtime(double value) {
25036
25037 inprocessingMinimizationDtime_ = value;
25038 bitField2_ |= 0x08000000;
25039 onChanged();
25040 return this;
25041 }
25042
25060 bitField2_ = (bitField2_ & ~0x08000000);
25061 inprocessingMinimizationDtime_ = 1D;
25062 onChanged();
25063 return this;
25064 }
25065
25066 private boolean inprocessingMinimizationUseConflictAnalysis_ = true;
25071 @java.lang.Override
25073 return ((bitField2_ & 0x10000000) != 0);
25074 }
25075
25079 @java.lang.Override
25081 return inprocessingMinimizationUseConflictAnalysis_;
25082 }
25083
25089
25090 inprocessingMinimizationUseConflictAnalysis_ = value;
25091 bitField2_ |= 0x10000000;
25092 onChanged();
25093 return this;
25094 }
25095
25100 bitField2_ = (bitField2_ & ~0x10000000);
25101 inprocessingMinimizationUseConflictAnalysis_ = true;
25102 onChanged();
25103 return this;
25104 }
25105
25106 private boolean inprocessingMinimizationUseAllOrderings_ ;
25111 @java.lang.Override
25113 return ((bitField2_ & 0x20000000) != 0);
25114 }
25115
25119 @java.lang.Override
25121 return inprocessingMinimizationUseAllOrderings_;
25122 }
25123
25128 public Builder setInprocessingMinimizationUseAllOrderings(boolean value) {
25129
25130 inprocessingMinimizationUseAllOrderings_ = value;
25131 bitField2_ |= 0x20000000;
25132 onChanged();
25133 return this;
25134 }
25135
25140 bitField2_ = (bitField2_ & ~0x20000000);
25141 inprocessingMinimizationUseAllOrderings_ = false;
25142 onChanged();
25143 return this;
25144 }
25145
25146 private int numWorkers_ ;
25168 @java.lang.Override
25169 public boolean hasNumWorkers() {
25170 return ((bitField2_ & 0x40000000) != 0);
25171 }
25172
25193 @java.lang.Override
25194 public int getNumWorkers() {
25195 return numWorkers_;
25196 }
25197
25219 public Builder setNumWorkers(int value) {
25220
25221 numWorkers_ = value;
25222 bitField2_ |= 0x40000000;
25223 onChanged();
25224 return this;
25225 }
25226
25247 public Builder clearNumWorkers() {
25248 bitField2_ = (bitField2_ & ~0x40000000);
25249 numWorkers_ = 0;
25250 onChanged();
25251 return this;
25252 }
25253
25254 private int numSearchWorkers_ ;
25259 @java.lang.Override
25260 public boolean hasNumSearchWorkers() {
25261 return ((bitField2_ & 0x80000000) != 0);
25262 }
25263
25267 @java.lang.Override
25268 public int getNumSearchWorkers() {
25269 return numSearchWorkers_;
25270 }
25271
25276 public Builder setNumSearchWorkers(int value) {
25277
25278 numSearchWorkers_ = value;
25279 bitField2_ |= 0x80000000;
25280 onChanged();
25281 return this;
25282 }
25283
25287 public Builder clearNumSearchWorkers() {
25288 bitField2_ = (bitField2_ & ~0x80000000);
25289 numSearchWorkers_ = 0;
25290 onChanged();
25291 return this;
25292 }
25293
25294 private int numFullSubsolvers_ ;
25307 @java.lang.Override
25308 public boolean hasNumFullSubsolvers() {
25309 return ((bitField3_ & 0x00000001) != 0);
25310 }
25311
25323 @java.lang.Override
25325 return numFullSubsolvers_;
25326 }
25327
25340 public Builder setNumFullSubsolvers(int value) {
25341
25342 numFullSubsolvers_ = value;
25343 bitField3_ |= 0x00000001;
25344 onChanged();
25345 return this;
25346 }
25347
25359 public Builder clearNumFullSubsolvers() {
25360 bitField3_ = (bitField3_ & ~0x00000001);
25361 numFullSubsolvers_ = 0;
25362 onChanged();
25363 return this;
25364 }
25365
25366 private com.google.protobuf.LazyStringArrayList subsolvers_ =
25367 com.google.protobuf.LazyStringArrayList.emptyList();
25368 private void ensureSubsolversIsMutable() {
25369 if (!subsolvers_.isModifiable()) {
25370 subsolvers_ = new com.google.protobuf.LazyStringArrayList(subsolvers_);
25371 }
25372 bitField3_ |= 0x00000002;
25373 }
25406 public com.google.protobuf.ProtocolStringList
25408 subsolvers_.makeImmutable();
25409 return subsolvers_;
25410 }
25411
25443 public int getSubsolversCount() {
25444 return subsolvers_.size();
25445 }
25446
25479 public java.lang.String getSubsolvers(int index) {
25480 return subsolvers_.get(index);
25481 }
25482
25515 public com.google.protobuf.ByteString
25517 return subsolvers_.getByteString(index);
25518 }
25519
25553 public Builder setSubsolvers(
25554 int index, java.lang.String value) {
25555 if (value == null) { throw new NullPointerException(); }
25556 ensureSubsolversIsMutable();
25557 subsolvers_.set(index, value);
25558 bitField3_ |= 0x00000002;
25559 onChanged();
25560 return this;
25561 }
25562
25595 public Builder addSubsolvers(
25596 java.lang.String value) {
25597 if (value == null) { throw new NullPointerException(); }
25598 ensureSubsolversIsMutable();
25599 subsolvers_.add(value);
25600 bitField3_ |= 0x00000002;
25601 onChanged();
25602 return this;
25603 }
25604
25637 public Builder addAllSubsolvers(
25638 java.lang.Iterable<java.lang.String> values) {
25639 ensureSubsolversIsMutable();
25640 com.google.protobuf.AbstractMessageLite.Builder.addAll(
25641 values, subsolvers_);
25642 bitField3_ |= 0x00000002;
25643 onChanged();
25644 return this;
25645 }
25646
25678 public Builder clearSubsolvers() {
25679 subsolvers_ =
25680 com.google.protobuf.LazyStringArrayList.emptyList();
25681 bitField3_ = (bitField3_ & ~0x00000002);;
25682 onChanged();
25683 return this;
25684 }
25685
25718 public Builder addSubsolversBytes(
25719 com.google.protobuf.ByteString value) {
25720 if (value == null) { throw new NullPointerException(); }
25721 ensureSubsolversIsMutable();
25722 subsolvers_.add(value);
25723 bitField3_ |= 0x00000002;
25724 onChanged();
25725 return this;
25726 }
25727
25728 private com.google.protobuf.LazyStringArrayList extraSubsolvers_ =
25729 com.google.protobuf.LazyStringArrayList.emptyList();
25730 private void ensureExtraSubsolversIsMutable() {
25731 if (!extraSubsolvers_.isModifiable()) {
25732 extraSubsolvers_ = new com.google.protobuf.LazyStringArrayList(extraSubsolvers_);
25733 }
25734 bitField3_ |= 0x00000004;
25735 }
25745 public com.google.protobuf.ProtocolStringList
25747 extraSubsolvers_.makeImmutable();
25748 return extraSubsolvers_;
25749 }
25750
25760 return extraSubsolvers_.size();
25761 }
25762
25772 public java.lang.String getExtraSubsolvers(int index) {
25773 return extraSubsolvers_.get(index);
25774 }
25775
25785 public com.google.protobuf.ByteString
25787 return extraSubsolvers_.getByteString(index);
25788 }
25789
25800 public Builder setExtraSubsolvers(
25801 int index, java.lang.String value) {
25802 if (value == null) { throw new NullPointerException(); }
25803 ensureExtraSubsolversIsMutable();
25804 extraSubsolvers_.set(index, value);
25805 bitField3_ |= 0x00000004;
25806 onChanged();
25807 return this;
25808 }
25809
25819 public Builder addExtraSubsolvers(
25820 java.lang.String value) {
25821 if (value == null) { throw new NullPointerException(); }
25822 ensureExtraSubsolversIsMutable();
25823 extraSubsolvers_.add(value);
25824 bitField3_ |= 0x00000004;
25825 onChanged();
25826 return this;
25827 }
25828
25839 java.lang.Iterable<java.lang.String> values) {
25840 ensureExtraSubsolversIsMutable();
25841 com.google.protobuf.AbstractMessageLite.Builder.addAll(
25842 values, extraSubsolvers_);
25843 bitField3_ |= 0x00000004;
25844 onChanged();
25845 return this;
25846 }
25847
25856 public Builder clearExtraSubsolvers() {
25857 extraSubsolvers_ =
25858 com.google.protobuf.LazyStringArrayList.emptyList();
25859 bitField3_ = (bitField3_ & ~0x00000004);;
25860 onChanged();
25861 return this;
25862 }
25863
25874 com.google.protobuf.ByteString value) {
25875 if (value == null) { throw new NullPointerException(); }
25876 ensureExtraSubsolversIsMutable();
25877 extraSubsolvers_.add(value);
25878 bitField3_ |= 0x00000004;
25879 onChanged();
25880 return this;
25881 }
25882
25883 private com.google.protobuf.LazyStringArrayList ignoreSubsolvers_ =
25884 com.google.protobuf.LazyStringArrayList.emptyList();
25885 private void ensureIgnoreSubsolversIsMutable() {
25886 if (!ignoreSubsolvers_.isModifiable()) {
25887 ignoreSubsolvers_ = new com.google.protobuf.LazyStringArrayList(ignoreSubsolvers_);
25888 }
25889 bitField3_ |= 0x00000008;
25890 }
25907 public com.google.protobuf.ProtocolStringList
25909 ignoreSubsolvers_.makeImmutable();
25910 return ignoreSubsolvers_;
25911 }
25912
25929 return ignoreSubsolvers_.size();
25930 }
25931
25948 public java.lang.String getIgnoreSubsolvers(int index) {
25949 return ignoreSubsolvers_.get(index);
25950 }
25951
25968 public com.google.protobuf.ByteString
25970 return ignoreSubsolvers_.getByteString(index);
25971 }
25972
25990 public Builder setIgnoreSubsolvers(
25991 int index, java.lang.String value) {
25992 if (value == null) { throw new NullPointerException(); }
25993 ensureIgnoreSubsolversIsMutable();
25994 ignoreSubsolvers_.set(index, value);
25995 bitField3_ |= 0x00000008;
25996 onChanged();
25997 return this;
25998 }
25999
26016 public Builder addIgnoreSubsolvers(
26017 java.lang.String value) {
26018 if (value == null) { throw new NullPointerException(); }
26019 ensureIgnoreSubsolversIsMutable();
26020 ignoreSubsolvers_.add(value);
26021 bitField3_ |= 0x00000008;
26022 onChanged();
26023 return this;
26024 }
26025
26043 java.lang.Iterable<java.lang.String> values) {
26044 ensureIgnoreSubsolversIsMutable();
26045 com.google.protobuf.AbstractMessageLite.Builder.addAll(
26046 values, ignoreSubsolvers_);
26047 bitField3_ |= 0x00000008;
26048 onChanged();
26049 return this;
26050 }
26051
26067 public Builder clearIgnoreSubsolvers() {
26068 ignoreSubsolvers_ =
26069 com.google.protobuf.LazyStringArrayList.emptyList();
26070 bitField3_ = (bitField3_ & ~0x00000008);;
26071 onChanged();
26072 return this;
26073 }
26074
26092 com.google.protobuf.ByteString value) {
26093 if (value == null) { throw new NullPointerException(); }
26094 ensureIgnoreSubsolversIsMutable();
26095 ignoreSubsolvers_.add(value);
26096 bitField3_ |= 0x00000008;
26097 onChanged();
26098 return this;
26099 }
26100
26101 private com.google.protobuf.LazyStringArrayList filterSubsolvers_ =
26102 com.google.protobuf.LazyStringArrayList.emptyList();
26103 private void ensureFilterSubsolversIsMutable() {
26104 if (!filterSubsolvers_.isModifiable()) {
26105 filterSubsolvers_ = new com.google.protobuf.LazyStringArrayList(filterSubsolvers_);
26106 }
26107 bitField3_ |= 0x00000010;
26108 }
26113 public com.google.protobuf.ProtocolStringList
26115 filterSubsolvers_.makeImmutable();
26116 return filterSubsolvers_;
26117 }
26118
26123 return filterSubsolvers_.size();
26124 }
26125
26130 public java.lang.String getFilterSubsolvers(int index) {
26131 return filterSubsolvers_.get(index);
26132 }
26133
26138 public com.google.protobuf.ByteString
26140 return filterSubsolvers_.getByteString(index);
26141 }
26142
26148 public Builder setFilterSubsolvers(
26149 int index, java.lang.String value) {
26150 if (value == null) { throw new NullPointerException(); }
26151 ensureFilterSubsolversIsMutable();
26152 filterSubsolvers_.set(index, value);
26153 bitField3_ |= 0x00000010;
26154 onChanged();
26155 return this;
26156 }
26157
26162 public Builder addFilterSubsolvers(
26163 java.lang.String value) {
26164 if (value == null) { throw new NullPointerException(); }
26165 ensureFilterSubsolversIsMutable();
26166 filterSubsolvers_.add(value);
26167 bitField3_ |= 0x00000010;
26168 onChanged();
26169 return this;
26170 }
26171
26177 java.lang.Iterable<java.lang.String> values) {
26178 ensureFilterSubsolversIsMutable();
26179 com.google.protobuf.AbstractMessageLite.Builder.addAll(
26180 values, filterSubsolvers_);
26181 bitField3_ |= 0x00000010;
26182 onChanged();
26183 return this;
26184 }
26185
26189 public Builder clearFilterSubsolvers() {
26190 filterSubsolvers_ =
26191 com.google.protobuf.LazyStringArrayList.emptyList();
26192 bitField3_ = (bitField3_ & ~0x00000010);;
26193 onChanged();
26194 return this;
26195 }
26196
26202 com.google.protobuf.ByteString value) {
26203 if (value == null) { throw new NullPointerException(); }
26204 ensureFilterSubsolversIsMutable();
26205 filterSubsolvers_.add(value);
26206 bitField3_ |= 0x00000010;
26207 onChanged();
26208 return this;
26209 }
26210
26211 private java.util.List<com.google.ortools.sat.SatParameters> subsolverParams_ =
26212 java.util.Collections.emptyList();
26213 private void ensureSubsolverParamsIsMutable() {
26214 if (!((bitField3_ & 0x00000020) != 0)) {
26215 subsolverParams_ = new java.util.ArrayList<com.google.ortools.sat.SatParameters>(subsolverParams_);
26216 bitField3_ |= 0x00000020;
26217 }
26218 }
26219
26220 private com.google.protobuf.RepeatedFieldBuilder<
26221 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder> subsolverParamsBuilder_;
26222
26234 public java.util.List<com.google.ortools.sat.SatParameters> getSubsolverParamsList() {
26235 if (subsolverParamsBuilder_ == null) {
26236 return java.util.Collections.unmodifiableList(subsolverParams_);
26237 } else {
26238 return subsolverParamsBuilder_.getMessageList();
26239 }
26240 }
26241
26253 if (subsolverParamsBuilder_ == null) {
26254 return subsolverParams_.size();
26255 } else {
26256 return subsolverParamsBuilder_.getCount();
26257 }
26258 }
26259
26271 if (subsolverParamsBuilder_ == null) {
26272 return subsolverParams_.get(index);
26273 } else {
26274 return subsolverParamsBuilder_.getMessage(index);
26275 }
26276 }
26277
26288 public Builder setSubsolverParams(
26289 int index, com.google.ortools.sat.SatParameters value) {
26290 if (subsolverParamsBuilder_ == null) {
26291 if (value == null) {
26292 throw new NullPointerException();
26293 }
26294 ensureSubsolverParamsIsMutable();
26295 subsolverParams_.set(index, value);
26296 onChanged();
26297 } else {
26298 subsolverParamsBuilder_.setMessage(index, value);
26299 }
26300 return this;
26301 }
26302
26313 public Builder setSubsolverParams(
26314 int index, com.google.ortools.sat.SatParameters.Builder builderForValue) {
26315 if (subsolverParamsBuilder_ == null) {
26316 ensureSubsolverParamsIsMutable();
26317 subsolverParams_.set(index, builderForValue.build());
26318 onChanged();
26319 } else {
26320 subsolverParamsBuilder_.setMessage(index, builderForValue.build());
26321 }
26322 return this;
26323 }
26324
26335 public Builder addSubsolverParams(com.google.ortools.sat.SatParameters value) {
26336 if (subsolverParamsBuilder_ == null) {
26337 if (value == null) {
26338 throw new NullPointerException();
26339 }
26340 ensureSubsolverParamsIsMutable();
26341 subsolverParams_.add(value);
26342 onChanged();
26343 } else {
26344 subsolverParamsBuilder_.addMessage(value);
26345 }
26346 return this;
26347 }
26348
26359 public Builder addSubsolverParams(
26360 int index, com.google.ortools.sat.SatParameters value) {
26361 if (subsolverParamsBuilder_ == null) {
26362 if (value == null) {
26363 throw new NullPointerException();
26364 }
26365 ensureSubsolverParamsIsMutable();
26366 subsolverParams_.add(index, value);
26367 onChanged();
26368 } else {
26369 subsolverParamsBuilder_.addMessage(index, value);
26370 }
26371 return this;
26372 }
26373
26384 public Builder addSubsolverParams(
26385 com.google.ortools.sat.SatParameters.Builder builderForValue) {
26386 if (subsolverParamsBuilder_ == null) {
26387 ensureSubsolverParamsIsMutable();
26388 subsolverParams_.add(builderForValue.build());
26389 onChanged();
26390 } else {
26391 subsolverParamsBuilder_.addMessage(builderForValue.build());
26392 }
26393 return this;
26394 }
26395
26406 public Builder addSubsolverParams(
26407 int index, com.google.ortools.sat.SatParameters.Builder builderForValue) {
26408 if (subsolverParamsBuilder_ == null) {
26409 ensureSubsolverParamsIsMutable();
26410 subsolverParams_.add(index, builderForValue.build());
26411 onChanged();
26412 } else {
26413 subsolverParamsBuilder_.addMessage(index, builderForValue.build());
26414 }
26415 return this;
26416 }
26417
26429 java.lang.Iterable<? extends com.google.ortools.sat.SatParameters> values) {
26430 if (subsolverParamsBuilder_ == null) {
26431 ensureSubsolverParamsIsMutable();
26432 com.google.protobuf.AbstractMessageLite.Builder.addAll(
26433 values, subsolverParams_);
26434 onChanged();
26435 } else {
26436 subsolverParamsBuilder_.addAllMessages(values);
26437 }
26438 return this;
26439 }
26440
26451 public Builder clearSubsolverParams() {
26452 if (subsolverParamsBuilder_ == null) {
26453 subsolverParams_ = java.util.Collections.emptyList();
26454 bitField3_ = (bitField3_ & ~0x00000020);
26455 onChanged();
26456 } else {
26457 subsolverParamsBuilder_.clear();
26458 }
26459 return this;
26460 }
26461
26472 public Builder removeSubsolverParams(int index) {
26473 if (subsolverParamsBuilder_ == null) {
26474 ensureSubsolverParamsIsMutable();
26475 subsolverParams_.remove(index);
26476 onChanged();
26477 } else {
26478 subsolverParamsBuilder_.remove(index);
26479 }
26480 return this;
26481 }
26482
26494 int index) {
26495 return getSubsolverParamsFieldBuilder().getBuilder(index);
26496 }
26497
26509 int index) {
26510 if (subsolverParamsBuilder_ == null) {
26511 return subsolverParams_.get(index); } else {
26512 return subsolverParamsBuilder_.getMessageOrBuilder(index);
26513 }
26514 }
26515
26526 public java.util.List<? extends com.google.ortools.sat.SatParametersOrBuilder>
26528 if (subsolverParamsBuilder_ != null) {
26529 return subsolverParamsBuilder_.getMessageOrBuilderList();
26530 } else {
26531 return java.util.Collections.unmodifiableList(subsolverParams_);
26532 }
26533 }
26534
26546 return getSubsolverParamsFieldBuilder().addBuilder(
26547 com.google.ortools.sat.SatParameters.getDefaultInstance());
26548 }
26549
26561 int index) {
26562 return getSubsolverParamsFieldBuilder().addBuilder(
26563 index, com.google.ortools.sat.SatParameters.getDefaultInstance());
26564 }
26565
26576 public java.util.List<com.google.ortools.sat.SatParameters.Builder>
26578 return getSubsolverParamsFieldBuilder().getBuilderList();
26579 }
26580 private com.google.protobuf.RepeatedFieldBuilder<
26581 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>
26582 getSubsolverParamsFieldBuilder() {
26583 if (subsolverParamsBuilder_ == null) {
26584 subsolverParamsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
26585 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>(
26586 subsolverParams_,
26587 ((bitField3_ & 0x00000020) != 0),
26588 getParentForChildren(),
26589 isClean());
26590 subsolverParams_ = null;
26591 }
26592 return subsolverParamsBuilder_;
26593 }
26594
26595 private boolean interleaveSearch_ ;
26609 @java.lang.Override
26610 public boolean hasInterleaveSearch() {
26611 return ((bitField3_ & 0x00000040) != 0);
26612 }
26613
26626 @java.lang.Override
26627 public boolean getInterleaveSearch() {
26628 return interleaveSearch_;
26629 }
26630
26644 public Builder setInterleaveSearch(boolean value) {
26645
26646 interleaveSearch_ = value;
26647 bitField3_ |= 0x00000040;
26648 onChanged();
26649 return this;
26650 }
26651
26664 public Builder clearInterleaveSearch() {
26665 bitField3_ = (bitField3_ & ~0x00000040);
26666 interleaveSearch_ = false;
26667 onChanged();
26668 return this;
26669 }
26670
26671 private int interleaveBatchSize_ ;
26676 @java.lang.Override
26677 public boolean hasInterleaveBatchSize() {
26678 return ((bitField3_ & 0x00000080) != 0);
26679 }
26680
26684 @java.lang.Override
26686 return interleaveBatchSize_;
26687 }
26688
26693 public Builder setInterleaveBatchSize(int value) {
26694
26695 interleaveBatchSize_ = value;
26696 bitField3_ |= 0x00000080;
26697 onChanged();
26698 return this;
26699 }
26700
26704 public Builder clearInterleaveBatchSize() {
26705 bitField3_ = (bitField3_ & ~0x00000080);
26706 interleaveBatchSize_ = 0;
26707 onChanged();
26708 return this;
26709 }
26710
26711 private boolean shareObjectiveBounds_ = true;
26720 @java.lang.Override
26721 public boolean hasShareObjectiveBounds() {
26722 return ((bitField3_ & 0x00000100) != 0);
26723 }
26724
26732 @java.lang.Override
26733 public boolean getShareObjectiveBounds() {
26734 return shareObjectiveBounds_;
26735 }
26736
26745 public Builder setShareObjectiveBounds(boolean value) {
26746
26747 shareObjectiveBounds_ = value;
26748 bitField3_ |= 0x00000100;
26749 onChanged();
26750 return this;
26751 }
26752
26760 public Builder clearShareObjectiveBounds() {
26761 bitField3_ = (bitField3_ & ~0x00000100);
26762 shareObjectiveBounds_ = true;
26763 onChanged();
26764 return this;
26765 }
26766
26767 private boolean shareLevelZeroBounds_ = true;
26776 @java.lang.Override
26777 public boolean hasShareLevelZeroBounds() {
26778 return ((bitField3_ & 0x00000200) != 0);
26779 }
26780
26788 @java.lang.Override
26789 public boolean getShareLevelZeroBounds() {
26790 return shareLevelZeroBounds_;
26791 }
26792
26801 public Builder setShareLevelZeroBounds(boolean value) {
26802
26803 shareLevelZeroBounds_ = value;
26804 bitField3_ |= 0x00000200;
26805 onChanged();
26806 return this;
26807 }
26808
26816 public Builder clearShareLevelZeroBounds() {
26817 bitField3_ = (bitField3_ & ~0x00000200);
26818 shareLevelZeroBounds_ = true;
26819 onChanged();
26820 return this;
26821 }
26822
26823 private boolean shareBinaryClauses_ = true;
26832 @java.lang.Override
26833 public boolean hasShareBinaryClauses() {
26834 return ((bitField3_ & 0x00000400) != 0);
26835 }
26836
26844 @java.lang.Override
26845 public boolean getShareBinaryClauses() {
26846 return shareBinaryClauses_;
26847 }
26848
26857 public Builder setShareBinaryClauses(boolean value) {
26858
26859 shareBinaryClauses_ = value;
26860 bitField3_ |= 0x00000400;
26861 onChanged();
26862 return this;
26863 }
26864
26872 public Builder clearShareBinaryClauses() {
26873 bitField3_ = (bitField3_ & ~0x00000400);
26874 shareBinaryClauses_ = true;
26875 onChanged();
26876 return this;
26877 }
26878
26879 private boolean shareGlueClauses_ ;
26889 @java.lang.Override
26890 public boolean hasShareGlueClauses() {
26891 return ((bitField3_ & 0x00000800) != 0);
26892 }
26893
26902 @java.lang.Override
26903 public boolean getShareGlueClauses() {
26904 return shareGlueClauses_;
26905 }
26906
26916 public Builder setShareGlueClauses(boolean value) {
26917
26918 shareGlueClauses_ = value;
26919 bitField3_ |= 0x00000800;
26920 onChanged();
26921 return this;
26922 }
26923
26932 public Builder clearShareGlueClauses() {
26933 bitField3_ = (bitField3_ & ~0x00000800);
26934 shareGlueClauses_ = false;
26935 onChanged();
26936 return this;
26937 }
26938
26939 private boolean minimizeSharedClauses_ = true;
26949 @java.lang.Override
26950 public boolean hasMinimizeSharedClauses() {
26951 return ((bitField3_ & 0x00001000) != 0);
26952 }
26953
26962 @java.lang.Override
26963 public boolean getMinimizeSharedClauses() {
26964 return minimizeSharedClauses_;
26965 }
26966
26976 public Builder setMinimizeSharedClauses(boolean value) {
26977
26978 minimizeSharedClauses_ = value;
26979 bitField3_ |= 0x00001000;
26980 onChanged();
26981 return this;
26982 }
26983
26993 bitField3_ = (bitField3_ & ~0x00001000);
26994 minimizeSharedClauses_ = true;
26995 onChanged();
26996 return this;
26997 }
26998
26999 private boolean debugPostsolveWithFullSolver_ ;
27010 @java.lang.Override
27012 return ((bitField3_ & 0x00002000) != 0);
27013 }
27014
27024 @java.lang.Override
27026 return debugPostsolveWithFullSolver_;
27027 }
27028
27039 public Builder setDebugPostsolveWithFullSolver(boolean value) {
27040
27041 debugPostsolveWithFullSolver_ = value;
27042 bitField3_ |= 0x00002000;
27043 onChanged();
27044 return this;
27045 }
27046
27057 bitField3_ = (bitField3_ & ~0x00002000);
27058 debugPostsolveWithFullSolver_ = false;
27059 onChanged();
27060 return this;
27061 }
27062
27063 private int debugMaxNumPresolveOperations_ ;
27073 @java.lang.Override
27075 return ((bitField3_ & 0x00004000) != 0);
27076 }
27077
27086 @java.lang.Override
27088 return debugMaxNumPresolveOperations_;
27089 }
27090
27100 public Builder setDebugMaxNumPresolveOperations(int value) {
27101
27102 debugMaxNumPresolveOperations_ = value;
27103 bitField3_ |= 0x00004000;
27104 onChanged();
27105 return this;
27106 }
27107
27117 bitField3_ = (bitField3_ & ~0x00004000);
27118 debugMaxNumPresolveOperations_ = 0;
27119 onChanged();
27120 return this;
27121 }
27122
27123 private boolean debugCrashOnBadHint_ ;
27132 @java.lang.Override
27133 public boolean hasDebugCrashOnBadHint() {
27134 return ((bitField3_ & 0x00008000) != 0);
27135 }
27136
27144 @java.lang.Override
27145 public boolean getDebugCrashOnBadHint() {
27146 return debugCrashOnBadHint_;
27147 }
27148
27157 public Builder setDebugCrashOnBadHint(boolean value) {
27158
27159 debugCrashOnBadHint_ = value;
27160 bitField3_ |= 0x00008000;
27161 onChanged();
27162 return this;
27163 }
27164
27172 public Builder clearDebugCrashOnBadHint() {
27173 bitField3_ = (bitField3_ & ~0x00008000);
27174 debugCrashOnBadHint_ = false;
27175 onChanged();
27176 return this;
27177 }
27178
27179 private boolean debugCrashIfPresolveBreaksHint_ ;
27188 @java.lang.Override
27190 return ((bitField3_ & 0x00010000) != 0);
27191 }
27192
27200 @java.lang.Override
27202 return debugCrashIfPresolveBreaksHint_;
27203 }
27204
27213 public Builder setDebugCrashIfPresolveBreaksHint(boolean value) {
27214
27215 debugCrashIfPresolveBreaksHint_ = value;
27216 bitField3_ |= 0x00010000;
27217 onChanged();
27218 return this;
27219 }
27220
27229 bitField3_ = (bitField3_ & ~0x00010000);
27230 debugCrashIfPresolveBreaksHint_ = false;
27231 onChanged();
27232 return this;
27233 }
27234
27235 private boolean useOptimizationHints_ = true;
27247 @java.lang.Override
27248 public boolean hasUseOptimizationHints() {
27249 return ((bitField3_ & 0x00020000) != 0);
27250 }
27251
27262 @java.lang.Override
27263 public boolean getUseOptimizationHints() {
27264 return useOptimizationHints_;
27265 }
27266
27278 public Builder setUseOptimizationHints(boolean value) {
27279
27280 useOptimizationHints_ = value;
27281 bitField3_ |= 0x00020000;
27282 onChanged();
27283 return this;
27284 }
27285
27296 public Builder clearUseOptimizationHints() {
27297 bitField3_ = (bitField3_ & ~0x00020000);
27298 useOptimizationHints_ = true;
27299 onChanged();
27300 return this;
27301 }
27302
27303 private int coreMinimizationLevel_ = 2;
27315 @java.lang.Override
27316 public boolean hasCoreMinimizationLevel() {
27317 return ((bitField3_ & 0x00040000) != 0);
27318 }
27319
27330 @java.lang.Override
27332 return coreMinimizationLevel_;
27333 }
27334
27346 public Builder setCoreMinimizationLevel(int value) {
27347
27348 coreMinimizationLevel_ = value;
27349 bitField3_ |= 0x00040000;
27350 onChanged();
27351 return this;
27352 }
27353
27365 bitField3_ = (bitField3_ & ~0x00040000);
27366 coreMinimizationLevel_ = 2;
27367 onChanged();
27368 return this;
27369 }
27370
27371 private boolean findMultipleCores_ = true;
27381 @java.lang.Override
27382 public boolean hasFindMultipleCores() {
27383 return ((bitField3_ & 0x00080000) != 0);
27384 }
27385
27394 @java.lang.Override
27395 public boolean getFindMultipleCores() {
27396 return findMultipleCores_;
27397 }
27398
27408 public Builder setFindMultipleCores(boolean value) {
27409
27410 findMultipleCores_ = value;
27411 bitField3_ |= 0x00080000;
27412 onChanged();
27413 return this;
27414 }
27415
27424 public Builder clearFindMultipleCores() {
27425 bitField3_ = (bitField3_ & ~0x00080000);
27426 findMultipleCores_ = true;
27427 onChanged();
27428 return this;
27429 }
27430
27431 private boolean coverOptimization_ = true;
27442 @java.lang.Override
27443 public boolean hasCoverOptimization() {
27444 return ((bitField3_ & 0x00100000) != 0);
27445 }
27446
27456 @java.lang.Override
27457 public boolean getCoverOptimization() {
27458 return coverOptimization_;
27459 }
27460
27471 public Builder setCoverOptimization(boolean value) {
27472
27473 coverOptimization_ = value;
27474 bitField3_ |= 0x00100000;
27475 onChanged();
27476 return this;
27477 }
27478
27488 public Builder clearCoverOptimization() {
27489 bitField3_ = (bitField3_ & ~0x00100000);
27490 coverOptimization_ = true;
27491 onChanged();
27492 return this;
27493 }
27494
27495 private int maxSatAssumptionOrder_ = 0;
27500 @java.lang.Override public boolean hasMaxSatAssumptionOrder() {
27501 return ((bitField3_ & 0x00200000) != 0);
27502 }
27503
27507 @java.lang.Override
27509 com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder result = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.forNumber(maxSatAssumptionOrder_);
27511 }
27512
27517 public Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value) {
27518 if (value == null) {
27519 throw new NullPointerException();
27520 }
27521 bitField3_ |= 0x00200000;
27522 maxSatAssumptionOrder_ = value.getNumber();
27523 onChanged();
27524 return this;
27525 }
27526
27531 bitField3_ = (bitField3_ & ~0x00200000);
27532 maxSatAssumptionOrder_ = 0;
27533 onChanged();
27534 return this;
27535 }
27536
27537 private boolean maxSatReverseAssumptionOrder_ ;
27547 @java.lang.Override
27549 return ((bitField3_ & 0x00400000) != 0);
27550 }
27551
27560 @java.lang.Override
27562 return maxSatReverseAssumptionOrder_;
27563 }
27564
27574 public Builder setMaxSatReverseAssumptionOrder(boolean value) {
27575
27576 maxSatReverseAssumptionOrder_ = value;
27577 bitField3_ |= 0x00400000;
27578 onChanged();
27579 return this;
27580 }
27581
27591 bitField3_ = (bitField3_ & ~0x00400000);
27592 maxSatReverseAssumptionOrder_ = false;
27593 onChanged();
27594 return this;
27595 }
27596
27597 private int maxSatStratification_ = 1;
27602 @java.lang.Override public boolean hasMaxSatStratification() {
27603 return ((bitField3_ & 0x00800000) != 0);
27604 }
27605
27609 @java.lang.Override
27611 com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm result = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.forNumber(maxSatStratification_);
27613 }
27614
27619 public Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value) {
27620 if (value == null) {
27621 throw new NullPointerException();
27622 }
27623 bitField3_ |= 0x00800000;
27624 maxSatStratification_ = value.getNumber();
27625 onChanged();
27626 return this;
27627 }
27628
27632 public Builder clearMaxSatStratification() {
27633 bitField3_ = (bitField3_ & ~0x00800000);
27634 maxSatStratification_ = 1;
27635 onChanged();
27636 return this;
27637 }
27638
27639 private double propagationLoopDetectionFactor_ = 10D;
27656 @java.lang.Override
27658 return ((bitField3_ & 0x01000000) != 0);
27659 }
27660
27676 @java.lang.Override
27678 return propagationLoopDetectionFactor_;
27679 }
27680
27697 public Builder setPropagationLoopDetectionFactor(double value) {
27698
27699 propagationLoopDetectionFactor_ = value;
27700 bitField3_ |= 0x01000000;
27701 onChanged();
27702 return this;
27703 }
27704
27721 bitField3_ = (bitField3_ & ~0x01000000);
27722 propagationLoopDetectionFactor_ = 10D;
27723 onChanged();
27724 return this;
27725 }
27726
27727 private boolean usePrecedencesInDisjunctiveConstraint_ = true;
27744 @java.lang.Override
27746 return ((bitField3_ & 0x02000000) != 0);
27747 }
27748
27764 @java.lang.Override
27766 return usePrecedencesInDisjunctiveConstraint_;
27767 }
27768
27785 public Builder setUsePrecedencesInDisjunctiveConstraint(boolean value) {
27786
27787 usePrecedencesInDisjunctiveConstraint_ = value;
27788 bitField3_ |= 0x02000000;
27789 onChanged();
27790 return this;
27791 }
27792
27809 bitField3_ = (bitField3_ & ~0x02000000);
27810 usePrecedencesInDisjunctiveConstraint_ = true;
27811 onChanged();
27812 return this;
27813 }
27814
27815 private int maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
27828 @java.lang.Override
27830 return ((bitField3_ & 0x04000000) != 0);
27831 }
27832
27844 @java.lang.Override
27846 return maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
27847 }
27848
27862
27863 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = value;
27864 bitField3_ |= 0x04000000;
27865 onChanged();
27866 return this;
27867 }
27868
27881 bitField3_ = (bitField3_ & ~0x04000000);
27882 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
27883 onChanged();
27884 return this;
27885 }
27886
27887 private boolean useStrongPropagationInDisjunctive_ ;
27896 @java.lang.Override
27898 return ((bitField3_ & 0x08000000) != 0);
27899 }
27900
27908 @java.lang.Override
27910 return useStrongPropagationInDisjunctive_;
27911 }
27912
27921 public Builder setUseStrongPropagationInDisjunctive(boolean value) {
27922
27923 useStrongPropagationInDisjunctive_ = value;
27924 bitField3_ |= 0x08000000;
27925 onChanged();
27926 return this;
27927 }
27928
27937 bitField3_ = (bitField3_ & ~0x08000000);
27938 useStrongPropagationInDisjunctive_ = false;
27939 onChanged();
27940 return this;
27941 }
27942
27943 private boolean useDynamicPrecedenceInDisjunctive_ ;
27957 @java.lang.Override
27959 return ((bitField3_ & 0x10000000) != 0);
27960 }
27961
27974 @java.lang.Override
27976 return useDynamicPrecedenceInDisjunctive_;
27977 }
27978
27992 public Builder setUseDynamicPrecedenceInDisjunctive(boolean value) {
27993
27994 useDynamicPrecedenceInDisjunctive_ = value;
27995 bitField3_ |= 0x10000000;
27996 onChanged();
27997 return this;
27998 }
27999
28013 bitField3_ = (bitField3_ & ~0x10000000);
28014 useDynamicPrecedenceInDisjunctive_ = false;
28015 onChanged();
28016 return this;
28017 }
28018
28019 private boolean useDynamicPrecedenceInCumulative_ ;
28024 @java.lang.Override
28026 return ((bitField3_ & 0x20000000) != 0);
28027 }
28028
28032 @java.lang.Override
28034 return useDynamicPrecedenceInCumulative_;
28035 }
28036
28041 public Builder setUseDynamicPrecedenceInCumulative(boolean value) {
28042
28043 useDynamicPrecedenceInCumulative_ = value;
28044 bitField3_ |= 0x20000000;
28045 onChanged();
28046 return this;
28047 }
28048
28053 bitField3_ = (bitField3_ & ~0x20000000);
28054 useDynamicPrecedenceInCumulative_ = false;
28055 onChanged();
28056 return this;
28057 }
28058
28059 private boolean useOverloadCheckerInCumulative_ ;
28074 @java.lang.Override
28076 return ((bitField3_ & 0x40000000) != 0);
28077 }
28078
28092 @java.lang.Override
28094 return useOverloadCheckerInCumulative_;
28095 }
28096
28111 public Builder setUseOverloadCheckerInCumulative(boolean value) {
28112
28113 useOverloadCheckerInCumulative_ = value;
28114 bitField3_ |= 0x40000000;
28115 onChanged();
28116 return this;
28117 }
28118
28133 bitField3_ = (bitField3_ & ~0x40000000);
28134 useOverloadCheckerInCumulative_ = false;
28135 onChanged();
28136 return this;
28137 }
28138
28139 private boolean useConservativeScaleOverloadChecker_ ;
28154 @java.lang.Override
28156 return ((bitField3_ & 0x80000000) != 0);
28157 }
28158
28172 @java.lang.Override
28174 return useConservativeScaleOverloadChecker_;
28175 }
28176
28191 public Builder setUseConservativeScaleOverloadChecker(boolean value) {
28192
28193 useConservativeScaleOverloadChecker_ = value;
28194 bitField3_ |= 0x80000000;
28195 onChanged();
28196 return this;
28197 }
28198
28213 bitField3_ = (bitField3_ & ~0x80000000);
28214 useConservativeScaleOverloadChecker_ = false;
28215 onChanged();
28216 return this;
28217 }
28218
28219 private boolean useTimetableEdgeFindingInCumulative_ ;
28234 @java.lang.Override
28236 return ((bitField4_ & 0x00000001) != 0);
28237 }
28238
28252 @java.lang.Override
28254 return useTimetableEdgeFindingInCumulative_;
28255 }
28256
28271 public Builder setUseTimetableEdgeFindingInCumulative(boolean value) {
28272
28273 useTimetableEdgeFindingInCumulative_ = value;
28274 bitField4_ |= 0x00000001;
28275 onChanged();
28276 return this;
28277 }
28278
28293 bitField4_ = (bitField4_ & ~0x00000001);
28294 useTimetableEdgeFindingInCumulative_ = false;
28295 onChanged();
28296 return this;
28297 }
28298
28299 private int maxNumIntervalsForTimetableEdgeFinding_ = 100;
28309 @java.lang.Override
28311 return ((bitField4_ & 0x00000002) != 0);
28312 }
28313
28322 @java.lang.Override
28324 return maxNumIntervalsForTimetableEdgeFinding_;
28325 }
28326
28337
28338 maxNumIntervalsForTimetableEdgeFinding_ = value;
28339 bitField4_ |= 0x00000002;
28340 onChanged();
28341 return this;
28342 }
28343
28353 bitField4_ = (bitField4_ & ~0x00000002);
28354 maxNumIntervalsForTimetableEdgeFinding_ = 100;
28355 onChanged();
28356 return this;
28357 }
28358
28359 private boolean useHardPrecedencesInCumulative_ ;
28373 @java.lang.Override
28375 return ((bitField4_ & 0x00000004) != 0);
28376 }
28377
28390 @java.lang.Override
28392 return useHardPrecedencesInCumulative_;
28393 }
28394
28408 public Builder setUseHardPrecedencesInCumulative(boolean value) {
28409
28410 useHardPrecedencesInCumulative_ = value;
28411 bitField4_ |= 0x00000004;
28412 onChanged();
28413 return this;
28414 }
28415
28429 bitField4_ = (bitField4_ & ~0x00000004);
28430 useHardPrecedencesInCumulative_ = false;
28431 onChanged();
28432 return this;
28433 }
28434
28435 private boolean exploitAllPrecedences_ ;
28440 @java.lang.Override
28441 public boolean hasExploitAllPrecedences() {
28442 return ((bitField4_ & 0x00000008) != 0);
28443 }
28444
28448 @java.lang.Override
28449 public boolean getExploitAllPrecedences() {
28450 return exploitAllPrecedences_;
28451 }
28452
28457 public Builder setExploitAllPrecedences(boolean value) {
28458
28459 exploitAllPrecedences_ = value;
28460 bitField4_ |= 0x00000008;
28461 onChanged();
28462 return this;
28463 }
28464
28469 bitField4_ = (bitField4_ & ~0x00000008);
28470 exploitAllPrecedences_ = false;
28471 onChanged();
28472 return this;
28473 }
28474
28475 private boolean useDisjunctiveConstraintInCumulative_ = true;
28493 @java.lang.Override
28495 return ((bitField4_ & 0x00000010) != 0);
28496 }
28497
28514 @java.lang.Override
28516 return useDisjunctiveConstraintInCumulative_;
28517 }
28518
28536 public Builder setUseDisjunctiveConstraintInCumulative(boolean value) {
28537
28538 useDisjunctiveConstraintInCumulative_ = value;
28539 bitField4_ |= 0x00000010;
28540 onChanged();
28541 return this;
28542 }
28543
28561 bitField4_ = (bitField4_ & ~0x00000010);
28562 useDisjunctiveConstraintInCumulative_ = true;
28563 onChanged();
28564 return this;
28565 }
28566
28567 private boolean useTimetablingInNoOverlap2D_ ;
28580 @java.lang.Override
28582 return ((bitField4_ & 0x00000020) != 0);
28583 }
28584
28596 @java.lang.Override
28598 return useTimetablingInNoOverlap2D_;
28599 }
28600
28613 public Builder setUseTimetablingInNoOverlap2D(boolean value) {
28614
28615 useTimetablingInNoOverlap2D_ = value;
28616 bitField4_ |= 0x00000020;
28617 onChanged();
28618 return this;
28619 }
28620
28633 bitField4_ = (bitField4_ & ~0x00000020);
28634 useTimetablingInNoOverlap2D_ = false;
28635 onChanged();
28636 return this;
28637 }
28638
28639 private boolean useEnergeticReasoningInNoOverlap2D_ ;
28650 @java.lang.Override
28652 return ((bitField4_ & 0x00000040) != 0);
28653 }
28654
28664 @java.lang.Override
28666 return useEnergeticReasoningInNoOverlap2D_;
28667 }
28668
28679 public Builder setUseEnergeticReasoningInNoOverlap2D(boolean value) {
28680
28681 useEnergeticReasoningInNoOverlap2D_ = value;
28682 bitField4_ |= 0x00000040;
28683 onChanged();
28684 return this;
28685 }
28686
28697 bitField4_ = (bitField4_ & ~0x00000040);
28698 useEnergeticReasoningInNoOverlap2D_ = false;
28699 onChanged();
28700 return this;
28701 }
28702
28703 private boolean useAreaEnergeticReasoningInNoOverlap2D_ ;
28714 @java.lang.Override
28716 return ((bitField4_ & 0x00000080) != 0);
28717 }
28718
28728 @java.lang.Override
28730 return useAreaEnergeticReasoningInNoOverlap2D_;
28731 }
28732
28743 public Builder setUseAreaEnergeticReasoningInNoOverlap2D(boolean value) {
28744
28745 useAreaEnergeticReasoningInNoOverlap2D_ = value;
28746 bitField4_ |= 0x00000080;
28747 onChanged();
28748 return this;
28749 }
28750
28761 bitField4_ = (bitField4_ & ~0x00000080);
28762 useAreaEnergeticReasoningInNoOverlap2D_ = false;
28763 onChanged();
28764 return this;
28765 }
28766
28767 private boolean useTryEdgeReasoningInNoOverlap2D_ ;
28772 @java.lang.Override
28774 return ((bitField4_ & 0x00000100) != 0);
28775 }
28776
28780 @java.lang.Override
28782 return useTryEdgeReasoningInNoOverlap2D_;
28783 }
28784
28789 public Builder setUseTryEdgeReasoningInNoOverlap2D(boolean value) {
28790
28791 useTryEdgeReasoningInNoOverlap2D_ = value;
28792 bitField4_ |= 0x00000100;
28793 onChanged();
28794 return this;
28795 }
28796
28801 bitField4_ = (bitField4_ & ~0x00000100);
28802 useTryEdgeReasoningInNoOverlap2D_ = false;
28803 onChanged();
28804 return this;
28805 }
28806
28807 private int maxPairsPairwiseReasoningInNoOverlap2D_ = 1250;
28818 @java.lang.Override
28820 return ((bitField4_ & 0x00000200) != 0);
28821 }
28822
28832 @java.lang.Override
28834 return maxPairsPairwiseReasoningInNoOverlap2D_;
28835 }
28836
28848
28849 maxPairsPairwiseReasoningInNoOverlap2D_ = value;
28850 bitField4_ |= 0x00000200;
28851 onChanged();
28852 return this;
28853 }
28854
28865 bitField4_ = (bitField4_ & ~0x00000200);
28866 maxPairsPairwiseReasoningInNoOverlap2D_ = 1250;
28867 onChanged();
28868 return this;
28869 }
28870
28871 private int maximumRegionsToSplitInDisconnectedNoOverlap2D_ ;
28889 @java.lang.Override
28891 return ((bitField4_ & 0x00000400) != 0);
28892 }
28893
28910 @java.lang.Override
28912 return maximumRegionsToSplitInDisconnectedNoOverlap2D_;
28913 }
28914
28933
28934 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = value;
28935 bitField4_ |= 0x00000400;
28936 onChanged();
28937 return this;
28938 }
28939
28957 bitField4_ = (bitField4_ & ~0x00000400);
28958 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = 0;
28959 onChanged();
28960 return this;
28961 }
28962
28963 private boolean useDualSchedulingHeuristics_ = true;
28974 @java.lang.Override
28976 return ((bitField4_ & 0x00000800) != 0);
28977 }
28978
28988 @java.lang.Override
28990 return useDualSchedulingHeuristics_;
28991 }
28992
29003 public Builder setUseDualSchedulingHeuristics(boolean value) {
29004
29005 useDualSchedulingHeuristics_ = value;
29006 bitField4_ |= 0x00000800;
29007 onChanged();
29008 return this;
29009 }
29010
29021 bitField4_ = (bitField4_ & ~0x00000800);
29022 useDualSchedulingHeuristics_ = true;
29023 onChanged();
29024 return this;
29025 }
29026
29027 private boolean useAllDifferentForCircuit_ ;
29037 @java.lang.Override
29039 return ((bitField4_ & 0x00001000) != 0);
29040 }
29041
29050 @java.lang.Override
29052 return useAllDifferentForCircuit_;
29053 }
29054
29064 public Builder setUseAllDifferentForCircuit(boolean value) {
29065
29066 useAllDifferentForCircuit_ = value;
29067 bitField4_ |= 0x00001000;
29068 onChanged();
29069 return this;
29070 }
29071
29081 bitField4_ = (bitField4_ & ~0x00001000);
29082 useAllDifferentForCircuit_ = false;
29083 onChanged();
29084 return this;
29085 }
29086
29087 private int routingCutSubsetSizeForBinaryRelationBound_ ;
29103 @java.lang.Override
29105 return ((bitField4_ & 0x00002000) != 0);
29106 }
29107
29122 @java.lang.Override
29124 return routingCutSubsetSizeForBinaryRelationBound_;
29125 }
29126
29143
29144 routingCutSubsetSizeForBinaryRelationBound_ = value;
29145 bitField4_ |= 0x00002000;
29146 onChanged();
29147 return this;
29148 }
29149
29165 bitField4_ = (bitField4_ & ~0x00002000);
29166 routingCutSubsetSizeForBinaryRelationBound_ = 0;
29167 onChanged();
29168 return this;
29169 }
29170
29171 private int routingCutSubsetSizeForTightBinaryRelationBound_ ;
29182 @java.lang.Override
29184 return ((bitField4_ & 0x00004000) != 0);
29185 }
29186
29196 @java.lang.Override
29198 return routingCutSubsetSizeForTightBinaryRelationBound_;
29199 }
29200
29212
29213 routingCutSubsetSizeForTightBinaryRelationBound_ = value;
29214 bitField4_ |= 0x00004000;
29215 onChanged();
29216 return this;
29217 }
29218
29229 bitField4_ = (bitField4_ & ~0x00004000);
29230 routingCutSubsetSizeForTightBinaryRelationBound_ = 0;
29231 onChanged();
29232 return this;
29233 }
29234
29235 private double routingCutDpEffort_ = 10000000D;
29247 @java.lang.Override
29248 public boolean hasRoutingCutDpEffort() {
29249 return ((bitField4_ & 0x00008000) != 0);
29250 }
29251
29262 @java.lang.Override
29263 public double getRoutingCutDpEffort() {
29264 return routingCutDpEffort_;
29265 }
29266
29278 public Builder setRoutingCutDpEffort(double value) {
29279
29280 routingCutDpEffort_ = value;
29281 bitField4_ |= 0x00008000;
29282 onChanged();
29283 return this;
29284 }
29285
29296 public Builder clearRoutingCutDpEffort() {
29297 bitField4_ = (bitField4_ & ~0x00008000);
29298 routingCutDpEffort_ = 10000000D;
29299 onChanged();
29300 return this;
29301 }
29302
29303 private int searchBranching_ = 0;
29308 @java.lang.Override public boolean hasSearchBranching() {
29309 return ((bitField4_ & 0x00010000) != 0);
29310 }
29311
29315 @java.lang.Override
29317 com.google.ortools.sat.SatParameters.SearchBranching result = com.google.ortools.sat.SatParameters.SearchBranching.forNumber(searchBranching_);
29319 }
29320
29325 public Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value) {
29326 if (value == null) {
29327 throw new NullPointerException();
29328 }
29329 bitField4_ |= 0x00010000;
29330 searchBranching_ = value.getNumber();
29331 onChanged();
29332 return this;
29333 }
29334
29338 public Builder clearSearchBranching() {
29339 bitField4_ = (bitField4_ & ~0x00010000);
29340 searchBranching_ = 0;
29341 onChanged();
29342 return this;
29343 }
29344
29345 private int hintConflictLimit_ = 10;
29354 @java.lang.Override
29355 public boolean hasHintConflictLimit() {
29356 return ((bitField4_ & 0x00020000) != 0);
29357 }
29358
29366 @java.lang.Override
29368 return hintConflictLimit_;
29369 }
29370
29379 public Builder setHintConflictLimit(int value) {
29380
29381 hintConflictLimit_ = value;
29382 bitField4_ |= 0x00020000;
29383 onChanged();
29384 return this;
29385 }
29386
29394 public Builder clearHintConflictLimit() {
29395 bitField4_ = (bitField4_ & ~0x00020000);
29396 hintConflictLimit_ = 10;
29397 onChanged();
29398 return this;
29399 }
29400
29401 private boolean repairHint_ ;
29413 @java.lang.Override
29414 public boolean hasRepairHint() {
29415 return ((bitField4_ & 0x00040000) != 0);
29416 }
29417
29428 @java.lang.Override
29429 public boolean getRepairHint() {
29430 return repairHint_;
29431 }
29432
29444 public Builder setRepairHint(boolean value) {
29445
29446 repairHint_ = value;
29447 bitField4_ |= 0x00040000;
29448 onChanged();
29449 return this;
29450 }
29451
29462 public Builder clearRepairHint() {
29463 bitField4_ = (bitField4_ & ~0x00040000);
29464 repairHint_ = false;
29465 onChanged();
29466 return this;
29467 }
29468
29469 private boolean fixVariablesToTheirHintedValue_ ;
29479 @java.lang.Override
29481 return ((bitField4_ & 0x00080000) != 0);
29482 }
29483
29492 @java.lang.Override
29494 return fixVariablesToTheirHintedValue_;
29495 }
29496
29506 public Builder setFixVariablesToTheirHintedValue(boolean value) {
29507
29508 fixVariablesToTheirHintedValue_ = value;
29509 bitField4_ |= 0x00080000;
29510 onChanged();
29511 return this;
29512 }
29513
29523 bitField4_ = (bitField4_ & ~0x00080000);
29524 fixVariablesToTheirHintedValue_ = false;
29525 onChanged();
29526 return this;
29527 }
29528
29529 private boolean useProbingSearch_ ;
29540 @java.lang.Override
29541 public boolean hasUseProbingSearch() {
29542 return ((bitField4_ & 0x00100000) != 0);
29543 }
29544
29554 @java.lang.Override
29555 public boolean getUseProbingSearch() {
29556 return useProbingSearch_;
29557 }
29558
29569 public Builder setUseProbingSearch(boolean value) {
29570
29571 useProbingSearch_ = value;
29572 bitField4_ |= 0x00100000;
29573 onChanged();
29574 return this;
29575 }
29576
29586 public Builder clearUseProbingSearch() {
29587 bitField4_ = (bitField4_ & ~0x00100000);
29588 useProbingSearch_ = false;
29589 onChanged();
29590 return this;
29591 }
29592
29593 private boolean useExtendedProbing_ = true;
29602 @java.lang.Override
29603 public boolean hasUseExtendedProbing() {
29604 return ((bitField4_ & 0x00200000) != 0);
29605 }
29606
29614 @java.lang.Override
29615 public boolean getUseExtendedProbing() {
29616 return useExtendedProbing_;
29617 }
29618
29627 public Builder setUseExtendedProbing(boolean value) {
29628
29629 useExtendedProbing_ = value;
29630 bitField4_ |= 0x00200000;
29631 onChanged();
29632 return this;
29633 }
29634
29642 public Builder clearUseExtendedProbing() {
29643 bitField4_ = (bitField4_ & ~0x00200000);
29644 useExtendedProbing_ = true;
29645 onChanged();
29646 return this;
29647 }
29648
29649 private int probingNumCombinationsLimit_ = 20000;
29658 @java.lang.Override
29660 return ((bitField4_ & 0x00400000) != 0);
29661 }
29662
29670 @java.lang.Override
29672 return probingNumCombinationsLimit_;
29673 }
29674
29683 public Builder setProbingNumCombinationsLimit(int value) {
29684
29685 probingNumCombinationsLimit_ = value;
29686 bitField4_ |= 0x00400000;
29687 onChanged();
29688 return this;
29689 }
29690
29699 bitField4_ = (bitField4_ & ~0x00400000);
29700 probingNumCombinationsLimit_ = 20000;
29701 onChanged();
29702 return this;
29703 }
29704
29705 private boolean useShavingInProbingSearch_ = true;
29715 @java.lang.Override
29717 return ((bitField4_ & 0x00800000) != 0);
29718 }
29719
29728 @java.lang.Override
29730 return useShavingInProbingSearch_;
29731 }
29732
29742 public Builder setUseShavingInProbingSearch(boolean value) {
29743
29744 useShavingInProbingSearch_ = value;
29745 bitField4_ |= 0x00800000;
29746 onChanged();
29747 return this;
29748 }
29749
29759 bitField4_ = (bitField4_ & ~0x00800000);
29760 useShavingInProbingSearch_ = true;
29761 onChanged();
29762 return this;
29763 }
29764
29765 private double shavingSearchDeterministicTime_ = 0.001D;
29775 @java.lang.Override
29777 return ((bitField4_ & 0x01000000) != 0);
29778 }
29779
29788 @java.lang.Override
29790 return shavingSearchDeterministicTime_;
29791 }
29792
29802 public Builder setShavingSearchDeterministicTime(double value) {
29803
29804 shavingSearchDeterministicTime_ = value;
29805 bitField4_ |= 0x01000000;
29806 onChanged();
29807 return this;
29808 }
29809
29819 bitField4_ = (bitField4_ & ~0x01000000);
29820 shavingSearchDeterministicTime_ = 0.001D;
29821 onChanged();
29822 return this;
29823 }
29824
29825 private long shavingSearchThreshold_ = 64L;
29837 @java.lang.Override
29838 public boolean hasShavingSearchThreshold() {
29839 return ((bitField4_ & 0x02000000) != 0);
29840 }
29841
29852 @java.lang.Override
29854 return shavingSearchThreshold_;
29855 }
29856
29868 public Builder setShavingSearchThreshold(long value) {
29869
29870 shavingSearchThreshold_ = value;
29871 bitField4_ |= 0x02000000;
29872 onChanged();
29873 return this;
29874 }
29875
29887 bitField4_ = (bitField4_ & ~0x02000000);
29888 shavingSearchThreshold_ = 64L;
29889 onChanged();
29890 return this;
29891 }
29892
29893 private boolean useObjectiveLbSearch_ ;
29903 @java.lang.Override
29904 public boolean hasUseObjectiveLbSearch() {
29905 return ((bitField4_ & 0x04000000) != 0);
29906 }
29907
29916 @java.lang.Override
29917 public boolean getUseObjectiveLbSearch() {
29918 return useObjectiveLbSearch_;
29919 }
29920
29930 public Builder setUseObjectiveLbSearch(boolean value) {
29931
29932 useObjectiveLbSearch_ = value;
29933 bitField4_ |= 0x04000000;
29934 onChanged();
29935 return this;
29936 }
29937
29946 public Builder clearUseObjectiveLbSearch() {
29947 bitField4_ = (bitField4_ & ~0x04000000);
29948 useObjectiveLbSearch_ = false;
29949 onChanged();
29950 return this;
29951 }
29952
29953 private boolean useObjectiveShavingSearch_ ;
29964 @java.lang.Override
29966 return ((bitField4_ & 0x08000000) != 0);
29967 }
29968
29978 @java.lang.Override
29980 return useObjectiveShavingSearch_;
29981 }
29982
29993 public Builder setUseObjectiveShavingSearch(boolean value) {
29994
29995 useObjectiveShavingSearch_ = value;
29996 bitField4_ |= 0x08000000;
29997 onChanged();
29998 return this;
29999 }
30000
30011 bitField4_ = (bitField4_ & ~0x08000000);
30012 useObjectiveShavingSearch_ = false;
30013 onChanged();
30014 return this;
30015 }
30016
30017 private boolean useVariablesShavingSearch_ ;
30027 @java.lang.Override
30029 return ((bitField4_ & 0x10000000) != 0);
30030 }
30031
30040 @java.lang.Override
30042 return useVariablesShavingSearch_;
30043 }
30044
30054 public Builder setUseVariablesShavingSearch(boolean value) {
30055
30056 useVariablesShavingSearch_ = value;
30057 bitField4_ |= 0x10000000;
30058 onChanged();
30059 return this;
30060 }
30061
30071 bitField4_ = (bitField4_ & ~0x10000000);
30072 useVariablesShavingSearch_ = false;
30073 onChanged();
30074 return this;
30075 }
30076
30077 private long pseudoCostReliabilityThreshold_ = 100L;
30087 @java.lang.Override
30089 return ((bitField4_ & 0x20000000) != 0);
30090 }
30091
30100 @java.lang.Override
30102 return pseudoCostReliabilityThreshold_;
30103 }
30104
30114 public Builder setPseudoCostReliabilityThreshold(long value) {
30115
30116 pseudoCostReliabilityThreshold_ = value;
30117 bitField4_ |= 0x20000000;
30118 onChanged();
30119 return this;
30120 }
30121
30131 bitField4_ = (bitField4_ & ~0x20000000);
30132 pseudoCostReliabilityThreshold_ = 100L;
30133 onChanged();
30134 return this;
30135 }
30136
30137 private boolean optimizeWithCore_ ;
30149 @java.lang.Override
30150 public boolean hasOptimizeWithCore() {
30151 return ((bitField4_ & 0x40000000) != 0);
30152 }
30153
30164 @java.lang.Override
30165 public boolean getOptimizeWithCore() {
30166 return optimizeWithCore_;
30167 }
30168
30180 public Builder setOptimizeWithCore(boolean value) {
30181
30182 optimizeWithCore_ = value;
30183 bitField4_ |= 0x40000000;
30184 onChanged();
30185 return this;
30186 }
30187
30198 public Builder clearOptimizeWithCore() {
30199 bitField4_ = (bitField4_ & ~0x40000000);
30200 optimizeWithCore_ = false;
30201 onChanged();
30202 return this;
30203 }
30204
30205 private boolean optimizeWithLbTreeSearch_ ;
30218 @java.lang.Override
30220 return ((bitField4_ & 0x80000000) != 0);
30221 }
30222
30234 @java.lang.Override
30236 return optimizeWithLbTreeSearch_;
30237 }
30238
30251 public Builder setOptimizeWithLbTreeSearch(boolean value) {
30252
30253 optimizeWithLbTreeSearch_ = value;
30254 bitField4_ |= 0x80000000;
30255 onChanged();
30256 return this;
30257 }
30258
30271 bitField4_ = (bitField4_ & ~0x80000000);
30272 optimizeWithLbTreeSearch_ = false;
30273 onChanged();
30274 return this;
30275 }
30276
30277 private boolean saveLpBasisInLbTreeSearch_ ;
30291 @java.lang.Override
30293 return ((bitField5_ & 0x00000001) != 0);
30294 }
30295
30308 @java.lang.Override
30310 return saveLpBasisInLbTreeSearch_;
30311 }
30312
30326 public Builder setSaveLpBasisInLbTreeSearch(boolean value) {
30327
30328 saveLpBasisInLbTreeSearch_ = value;
30329 bitField5_ |= 0x00000001;
30330 onChanged();
30331 return this;
30332 }
30333
30347 bitField5_ = (bitField5_ & ~0x00000001);
30348 saveLpBasisInLbTreeSearch_ = false;
30349 onChanged();
30350 return this;
30351 }
30352
30353 private int binarySearchNumConflicts_ = -1;
30365 @java.lang.Override
30367 return ((bitField5_ & 0x00000002) != 0);
30368 }
30369
30380 @java.lang.Override
30382 return binarySearchNumConflicts_;
30383 }
30384
30396 public Builder setBinarySearchNumConflicts(int value) {
30397
30398 binarySearchNumConflicts_ = value;
30399 bitField5_ |= 0x00000002;
30400 onChanged();
30401 return this;
30402 }
30403
30415 bitField5_ = (bitField5_ & ~0x00000002);
30416 binarySearchNumConflicts_ = -1;
30417 onChanged();
30418 return this;
30419 }
30420
30421 private boolean optimizeWithMaxHs_ ;
30435 @java.lang.Override
30436 public boolean hasOptimizeWithMaxHs() {
30437 return ((bitField5_ & 0x00000004) != 0);
30438 }
30439
30452 @java.lang.Override
30453 public boolean getOptimizeWithMaxHs() {
30454 return optimizeWithMaxHs_;
30455 }
30456
30470 public Builder setOptimizeWithMaxHs(boolean value) {
30471
30472 optimizeWithMaxHs_ = value;
30473 bitField5_ |= 0x00000004;
30474 onChanged();
30475 return this;
30476 }
30477
30490 public Builder clearOptimizeWithMaxHs() {
30491 bitField5_ = (bitField5_ & ~0x00000004);
30492 optimizeWithMaxHs_ = false;
30493 onChanged();
30494 return this;
30495 }
30496
30497 private boolean useFeasibilityJump_ = true;
30508 @java.lang.Override
30509 public boolean hasUseFeasibilityJump() {
30510 return ((bitField5_ & 0x00000008) != 0);
30511 }
30512
30522 @java.lang.Override
30523 public boolean getUseFeasibilityJump() {
30524 return useFeasibilityJump_;
30525 }
30526
30537 public Builder setUseFeasibilityJump(boolean value) {
30538
30539 useFeasibilityJump_ = value;
30540 bitField5_ |= 0x00000008;
30541 onChanged();
30542 return this;
30543 }
30544
30554 public Builder clearUseFeasibilityJump() {
30555 bitField5_ = (bitField5_ & ~0x00000008);
30556 useFeasibilityJump_ = true;
30557 onChanged();
30558 return this;
30559 }
30560
30561 private boolean useLsOnly_ ;
30571 @java.lang.Override
30572 public boolean hasUseLsOnly() {
30573 return ((bitField5_ & 0x00000010) != 0);
30574 }
30575
30584 @java.lang.Override
30585 public boolean getUseLsOnly() {
30586 return useLsOnly_;
30587 }
30588
30598 public Builder setUseLsOnly(boolean value) {
30599
30600 useLsOnly_ = value;
30601 bitField5_ |= 0x00000010;
30602 onChanged();
30603 return this;
30604 }
30605
30614 public Builder clearUseLsOnly() {
30615 bitField5_ = (bitField5_ & ~0x00000010);
30616 useLsOnly_ = false;
30617 onChanged();
30618 return this;
30619 }
30620
30621 private double feasibilityJumpDecay_ = 0.95D;
30631 @java.lang.Override
30632 public boolean hasFeasibilityJumpDecay() {
30633 return ((bitField5_ & 0x00000020) != 0);
30634 }
30635
30644 @java.lang.Override
30645 public double getFeasibilityJumpDecay() {
30646 return feasibilityJumpDecay_;
30647 }
30648
30658 public Builder setFeasibilityJumpDecay(double value) {
30659
30660 feasibilityJumpDecay_ = value;
30661 bitField5_ |= 0x00000020;
30662 onChanged();
30663 return this;
30664 }
30665
30674 public Builder clearFeasibilityJumpDecay() {
30675 bitField5_ = (bitField5_ & ~0x00000020);
30676 feasibilityJumpDecay_ = 0.95D;
30677 onChanged();
30678 return this;
30679 }
30680
30681 private int feasibilityJumpLinearizationLevel_ = 2;
30690 @java.lang.Override
30692 return ((bitField5_ & 0x00000040) != 0);
30693 }
30694
30702 @java.lang.Override
30704 return feasibilityJumpLinearizationLevel_;
30705 }
30706
30715 public Builder setFeasibilityJumpLinearizationLevel(int value) {
30716
30717 feasibilityJumpLinearizationLevel_ = value;
30718 bitField5_ |= 0x00000040;
30719 onChanged();
30720 return this;
30721 }
30722
30731 bitField5_ = (bitField5_ & ~0x00000040);
30732 feasibilityJumpLinearizationLevel_ = 2;
30733 onChanged();
30734 return this;
30735 }
30736
30737 private int feasibilityJumpRestartFactor_ = 1;
30747 @java.lang.Override
30749 return ((bitField5_ & 0x00000080) != 0);
30750 }
30751
30760 @java.lang.Override
30762 return feasibilityJumpRestartFactor_;
30763 }
30764
30774 public Builder setFeasibilityJumpRestartFactor(int value) {
30775
30776 feasibilityJumpRestartFactor_ = value;
30777 bitField5_ |= 0x00000080;
30778 onChanged();
30779 return this;
30780 }
30781
30791 bitField5_ = (bitField5_ & ~0x00000080);
30792 feasibilityJumpRestartFactor_ = 1;
30793 onChanged();
30794 return this;
30795 }
30796
30797 private double feasibilityJumpBatchDtime_ = 0.1D;
30806 @java.lang.Override
30808 return ((bitField5_ & 0x00000100) != 0);
30809 }
30810
30818 @java.lang.Override
30820 return feasibilityJumpBatchDtime_;
30821 }
30822
30831 public Builder setFeasibilityJumpBatchDtime(double value) {
30832
30833 feasibilityJumpBatchDtime_ = value;
30834 bitField5_ |= 0x00000100;
30835 onChanged();
30836 return this;
30837 }
30838
30847 bitField5_ = (bitField5_ & ~0x00000100);
30848 feasibilityJumpBatchDtime_ = 0.1D;
30849 onChanged();
30850 return this;
30851 }
30852
30853 private double feasibilityJumpVarRandomizationProbability_ = 0.05D;
30863 @java.lang.Override
30865 return ((bitField5_ & 0x00000200) != 0);
30866 }
30867
30876 @java.lang.Override
30878 return feasibilityJumpVarRandomizationProbability_;
30879 }
30880
30891
30892 feasibilityJumpVarRandomizationProbability_ = value;
30893 bitField5_ |= 0x00000200;
30894 onChanged();
30895 return this;
30896 }
30897
30907 bitField5_ = (bitField5_ & ~0x00000200);
30908 feasibilityJumpVarRandomizationProbability_ = 0.05D;
30909 onChanged();
30910 return this;
30911 }
30912
30913 private double feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
30923 @java.lang.Override
30925 return ((bitField5_ & 0x00000400) != 0);
30926 }
30927
30936 @java.lang.Override
30938 return feasibilityJumpVarPerburbationRangeRatio_;
30939 }
30940
30950 public Builder setFeasibilityJumpVarPerburbationRangeRatio(double value) {
30951
30952 feasibilityJumpVarPerburbationRangeRatio_ = value;
30953 bitField5_ |= 0x00000400;
30954 onChanged();
30955 return this;
30956 }
30957
30967 bitField5_ = (bitField5_ & ~0x00000400);
30968 feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
30969 onChanged();
30970 return this;
30971 }
30972
30973 private boolean feasibilityJumpEnableRestarts_ = true;
30984 @java.lang.Override
30986 return ((bitField5_ & 0x00000800) != 0);
30987 }
30988
30998 @java.lang.Override
31000 return feasibilityJumpEnableRestarts_;
31001 }
31002
31013 public Builder setFeasibilityJumpEnableRestarts(boolean value) {
31014
31015 feasibilityJumpEnableRestarts_ = value;
31016 bitField5_ |= 0x00000800;
31017 onChanged();
31018 return this;
31019 }
31020
31031 bitField5_ = (bitField5_ & ~0x00000800);
31032 feasibilityJumpEnableRestarts_ = true;
31033 onChanged();
31034 return this;
31035 }
31036
31037 private int feasibilityJumpMaxExpandedConstraintSize_ = 500;
31049 @java.lang.Override
31051 return ((bitField5_ & 0x00001000) != 0);
31052 }
31053
31064 @java.lang.Override
31066 return feasibilityJumpMaxExpandedConstraintSize_;
31067 }
31068
31081
31082 feasibilityJumpMaxExpandedConstraintSize_ = value;
31083 bitField5_ |= 0x00001000;
31084 onChanged();
31085 return this;
31086 }
31087
31099 bitField5_ = (bitField5_ & ~0x00001000);
31100 feasibilityJumpMaxExpandedConstraintSize_ = 500;
31101 onChanged();
31102 return this;
31103 }
31104
31105 private int numViolationLs_ ;
31116 @java.lang.Override
31117 public boolean hasNumViolationLs() {
31118 return ((bitField5_ & 0x00002000) != 0);
31119 }
31120
31130 @java.lang.Override
31131 public int getNumViolationLs() {
31132 return numViolationLs_;
31133 }
31134
31145 public Builder setNumViolationLs(int value) {
31146
31147 numViolationLs_ = value;
31148 bitField5_ |= 0x00002000;
31149 onChanged();
31150 return this;
31151 }
31152
31162 public Builder clearNumViolationLs() {
31163 bitField5_ = (bitField5_ & ~0x00002000);
31164 numViolationLs_ = 0;
31165 onChanged();
31166 return this;
31167 }
31168
31169 private int violationLsPerturbationPeriod_ = 100;
31178 @java.lang.Override
31180 return ((bitField5_ & 0x00004000) != 0);
31181 }
31182
31190 @java.lang.Override
31192 return violationLsPerturbationPeriod_;
31193 }
31194
31203 public Builder setViolationLsPerturbationPeriod(int value) {
31204
31205 violationLsPerturbationPeriod_ = value;
31206 bitField5_ |= 0x00004000;
31207 onChanged();
31208 return this;
31209 }
31210
31219 bitField5_ = (bitField5_ & ~0x00004000);
31220 violationLsPerturbationPeriod_ = 100;
31221 onChanged();
31222 return this;
31223 }
31224
31225 private double violationLsCompoundMoveProbability_ = 0.5D;
31235 @java.lang.Override
31237 return ((bitField5_ & 0x00008000) != 0);
31238 }
31239
31248 @java.lang.Override
31250 return violationLsCompoundMoveProbability_;
31251 }
31252
31262 public Builder setViolationLsCompoundMoveProbability(double value) {
31263
31264 violationLsCompoundMoveProbability_ = value;
31265 bitField5_ |= 0x00008000;
31266 onChanged();
31267 return this;
31268 }
31269
31279 bitField5_ = (bitField5_ & ~0x00008000);
31280 violationLsCompoundMoveProbability_ = 0.5D;
31281 onChanged();
31282 return this;
31283 }
31284
31285 private int sharedTreeNumWorkers_ ;
31300 @java.lang.Override
31301 public boolean hasSharedTreeNumWorkers() {
31302 return ((bitField5_ & 0x00010000) != 0);
31303 }
31304
31318 @java.lang.Override
31320 return sharedTreeNumWorkers_;
31321 }
31322
31337 public Builder setSharedTreeNumWorkers(int value) {
31338
31339 sharedTreeNumWorkers_ = value;
31340 bitField5_ |= 0x00010000;
31341 onChanged();
31342 return this;
31343 }
31344
31358 public Builder clearSharedTreeNumWorkers() {
31359 bitField5_ = (bitField5_ & ~0x00010000);
31360 sharedTreeNumWorkers_ = 0;
31361 onChanged();
31362 return this;
31363 }
31364
31365 private boolean useSharedTreeSearch_ ;
31374 @java.lang.Override
31375 public boolean hasUseSharedTreeSearch() {
31376 return ((bitField5_ & 0x00020000) != 0);
31377 }
31378
31386 @java.lang.Override
31387 public boolean getUseSharedTreeSearch() {
31388 return useSharedTreeSearch_;
31389 }
31390
31399 public Builder setUseSharedTreeSearch(boolean value) {
31400
31401 useSharedTreeSearch_ = value;
31402 bitField5_ |= 0x00020000;
31403 onChanged();
31404 return this;
31405 }
31406
31414 public Builder clearUseSharedTreeSearch() {
31415 bitField5_ = (bitField5_ & ~0x00020000);
31416 useSharedTreeSearch_ = false;
31417 onChanged();
31418 return this;
31419 }
31420
31421 private int sharedTreeWorkerMinRestartsPerSubtree_ = 1;
31431 @java.lang.Override
31433 return ((bitField5_ & 0x00040000) != 0);
31434 }
31435
31444 @java.lang.Override
31446 return sharedTreeWorkerMinRestartsPerSubtree_;
31447 }
31448
31459
31460 sharedTreeWorkerMinRestartsPerSubtree_ = value;
31461 bitField5_ |= 0x00040000;
31462 onChanged();
31463 return this;
31464 }
31465
31475 bitField5_ = (bitField5_ & ~0x00040000);
31476 sharedTreeWorkerMinRestartsPerSubtree_ = 1;
31477 onChanged();
31478 return this;
31479 }
31480
31481 private boolean sharedTreeWorkerEnableTrailSharing_ = true;
31491 @java.lang.Override
31493 return ((bitField5_ & 0x00080000) != 0);
31494 }
31495
31504 @java.lang.Override
31506 return sharedTreeWorkerEnableTrailSharing_;
31507 }
31508
31518 public Builder setSharedTreeWorkerEnableTrailSharing(boolean value) {
31519
31520 sharedTreeWorkerEnableTrailSharing_ = value;
31521 bitField5_ |= 0x00080000;
31522 onChanged();
31523 return this;
31524 }
31525
31535 bitField5_ = (bitField5_ & ~0x00080000);
31536 sharedTreeWorkerEnableTrailSharing_ = true;
31537 onChanged();
31538 return this;
31539 }
31540
31541 private boolean sharedTreeWorkerEnablePhaseSharing_ = true;
31551 @java.lang.Override
31553 return ((bitField5_ & 0x00100000) != 0);
31554 }
31555
31564 @java.lang.Override
31566 return sharedTreeWorkerEnablePhaseSharing_;
31567 }
31568
31578 public Builder setSharedTreeWorkerEnablePhaseSharing(boolean value) {
31579
31580 sharedTreeWorkerEnablePhaseSharing_ = value;
31581 bitField5_ |= 0x00100000;
31582 onChanged();
31583 return this;
31584 }
31585
31595 bitField5_ = (bitField5_ & ~0x00100000);
31596 sharedTreeWorkerEnablePhaseSharing_ = true;
31597 onChanged();
31598 return this;
31599 }
31600
31601 private double sharedTreeOpenLeavesPerWorker_ = 2D;
31610 @java.lang.Override
31612 return ((bitField5_ & 0x00200000) != 0);
31613 }
31614
31622 @java.lang.Override
31624 return sharedTreeOpenLeavesPerWorker_;
31625 }
31626
31635 public Builder setSharedTreeOpenLeavesPerWorker(double value) {
31636
31637 sharedTreeOpenLeavesPerWorker_ = value;
31638 bitField5_ |= 0x00200000;
31639 onChanged();
31640 return this;
31641 }
31642
31651 bitField5_ = (bitField5_ & ~0x00200000);
31652 sharedTreeOpenLeavesPerWorker_ = 2D;
31653 onChanged();
31654 return this;
31655 }
31656
31657 private int sharedTreeMaxNodesPerWorker_ = 10000;
31669 @java.lang.Override
31671 return ((bitField5_ & 0x00400000) != 0);
31672 }
31673
31684 @java.lang.Override
31686 return sharedTreeMaxNodesPerWorker_;
31687 }
31688
31700 public Builder setSharedTreeMaxNodesPerWorker(int value) {
31701
31702 sharedTreeMaxNodesPerWorker_ = value;
31703 bitField5_ |= 0x00400000;
31704 onChanged();
31705 return this;
31706 }
31707
31719 bitField5_ = (bitField5_ & ~0x00400000);
31720 sharedTreeMaxNodesPerWorker_ = 10000;
31721 onChanged();
31722 return this;
31723 }
31724
31725 private int sharedTreeSplitStrategy_ = 0;
31730 @java.lang.Override public boolean hasSharedTreeSplitStrategy() {
31731 return ((bitField5_ & 0x00800000) != 0);
31732 }
31733
31737 @java.lang.Override
31739 com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy result = com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy.forNumber(sharedTreeSplitStrategy_);
31741 }
31742
31747 public Builder setSharedTreeSplitStrategy(com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy value) {
31748 if (value == null) {
31749 throw new NullPointerException();
31750 }
31751 bitField5_ |= 0x00800000;
31752 sharedTreeSplitStrategy_ = value.getNumber();
31753 onChanged();
31754 return this;
31755 }
31756
31761 bitField5_ = (bitField5_ & ~0x00800000);
31762 sharedTreeSplitStrategy_ = 0;
31763 onChanged();
31764 return this;
31765 }
31766
31767 private int sharedTreeBalanceTolerance_ = 1;
31782 @java.lang.Override
31784 return ((bitField5_ & 0x01000000) != 0);
31785 }
31786
31800 @java.lang.Override
31802 return sharedTreeBalanceTolerance_;
31803 }
31804
31819 public Builder setSharedTreeBalanceTolerance(int value) {
31820
31821 sharedTreeBalanceTolerance_ = value;
31822 bitField5_ |= 0x01000000;
31823 onChanged();
31824 return this;
31825 }
31826
31841 bitField5_ = (bitField5_ & ~0x01000000);
31842 sharedTreeBalanceTolerance_ = 1;
31843 onChanged();
31844 return this;
31845 }
31846
31847 private boolean enumerateAllSolutions_ ;
31862 @java.lang.Override
31863 public boolean hasEnumerateAllSolutions() {
31864 return ((bitField5_ & 0x02000000) != 0);
31865 }
31866
31880 @java.lang.Override
31881 public boolean getEnumerateAllSolutions() {
31882 return enumerateAllSolutions_;
31883 }
31884
31899 public Builder setEnumerateAllSolutions(boolean value) {
31900
31901 enumerateAllSolutions_ = value;
31902 bitField5_ |= 0x02000000;
31903 onChanged();
31904 return this;
31905 }
31906
31921 bitField5_ = (bitField5_ & ~0x02000000);
31922 enumerateAllSolutions_ = false;
31923 onChanged();
31924 return this;
31925 }
31926
31927 private boolean keepAllFeasibleSolutionsInPresolve_ ;
31943 @java.lang.Override
31945 return ((bitField5_ & 0x04000000) != 0);
31946 }
31947
31962 @java.lang.Override
31964 return keepAllFeasibleSolutionsInPresolve_;
31965 }
31966
31982 public Builder setKeepAllFeasibleSolutionsInPresolve(boolean value) {
31983
31984 keepAllFeasibleSolutionsInPresolve_ = value;
31985 bitField5_ |= 0x04000000;
31986 onChanged();
31987 return this;
31988 }
31989
32005 bitField5_ = (bitField5_ & ~0x04000000);
32006 keepAllFeasibleSolutionsInPresolve_ = false;
32007 onChanged();
32008 return this;
32009 }
32010
32011 private boolean fillTightenedDomainsInResponse_ ;
32024 @java.lang.Override
32026 return ((bitField5_ & 0x08000000) != 0);
32027 }
32028
32040 @java.lang.Override
32042 return fillTightenedDomainsInResponse_;
32043 }
32044
32057 public Builder setFillTightenedDomainsInResponse(boolean value) {
32058
32059 fillTightenedDomainsInResponse_ = value;
32060 bitField5_ |= 0x08000000;
32061 onChanged();
32062 return this;
32063 }
32064
32077 bitField5_ = (bitField5_ & ~0x08000000);
32078 fillTightenedDomainsInResponse_ = false;
32079 onChanged();
32080 return this;
32081 }
32082
32083 private boolean fillAdditionalSolutionsInResponse_ ;
32101 @java.lang.Override
32103 return ((bitField5_ & 0x10000000) != 0);
32104 }
32105
32122 @java.lang.Override
32124 return fillAdditionalSolutionsInResponse_;
32125 }
32126
32144 public Builder setFillAdditionalSolutionsInResponse(boolean value) {
32145
32146 fillAdditionalSolutionsInResponse_ = value;
32147 bitField5_ |= 0x10000000;
32148 onChanged();
32149 return this;
32150 }
32151
32169 bitField5_ = (bitField5_ & ~0x10000000);
32170 fillAdditionalSolutionsInResponse_ = false;
32171 onChanged();
32172 return this;
32173 }
32174
32175 private boolean instantiateAllVariables_ = true;
32187 @java.lang.Override
32189 return ((bitField5_ & 0x20000000) != 0);
32190 }
32191
32202 @java.lang.Override
32204 return instantiateAllVariables_;
32205 }
32206
32218 public Builder setInstantiateAllVariables(boolean value) {
32219
32220 instantiateAllVariables_ = value;
32221 bitField5_ |= 0x20000000;
32222 onChanged();
32223 return this;
32224 }
32225
32237 bitField5_ = (bitField5_ & ~0x20000000);
32238 instantiateAllVariables_ = true;
32239 onChanged();
32240 return this;
32241 }
32242
32243 private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
32255 @java.lang.Override
32257 return ((bitField5_ & 0x40000000) != 0);
32258 }
32259
32270 @java.lang.Override
32272 return autoDetectGreaterThanAtLeastOneOf_;
32273 }
32274
32286 public Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value) {
32287
32288 autoDetectGreaterThanAtLeastOneOf_ = value;
32289 bitField5_ |= 0x40000000;
32290 onChanged();
32291 return this;
32292 }
32293
32305 bitField5_ = (bitField5_ & ~0x40000000);
32306 autoDetectGreaterThanAtLeastOneOf_ = true;
32307 onChanged();
32308 return this;
32309 }
32310
32311 private boolean stopAfterFirstSolution_ ;
32320 @java.lang.Override
32321 public boolean hasStopAfterFirstSolution() {
32322 return ((bitField5_ & 0x80000000) != 0);
32323 }
32324
32332 @java.lang.Override
32333 public boolean getStopAfterFirstSolution() {
32334 return stopAfterFirstSolution_;
32335 }
32336
32345 public Builder setStopAfterFirstSolution(boolean value) {
32346
32347 stopAfterFirstSolution_ = value;
32348 bitField5_ |= 0x80000000;
32349 onChanged();
32350 return this;
32351 }
32352
32361 bitField5_ = (bitField5_ & ~0x80000000);
32362 stopAfterFirstSolution_ = false;
32363 onChanged();
32364 return this;
32365 }
32366
32367 private boolean stopAfterPresolve_ ;
32377 @java.lang.Override
32378 public boolean hasStopAfterPresolve() {
32379 return ((bitField6_ & 0x00000001) != 0);
32380 }
32381
32390 @java.lang.Override
32391 public boolean getStopAfterPresolve() {
32392 return stopAfterPresolve_;
32393 }
32394
32404 public Builder setStopAfterPresolve(boolean value) {
32405
32406 stopAfterPresolve_ = value;
32407 bitField6_ |= 0x00000001;
32408 onChanged();
32409 return this;
32410 }
32411
32420 public Builder clearStopAfterPresolve() {
32421 bitField6_ = (bitField6_ & ~0x00000001);
32422 stopAfterPresolve_ = false;
32423 onChanged();
32424 return this;
32425 }
32426
32427 private boolean stopAfterRootPropagation_ ;
32432 @java.lang.Override
32434 return ((bitField6_ & 0x00000002) != 0);
32435 }
32436
32440 @java.lang.Override
32442 return stopAfterRootPropagation_;
32443 }
32444
32449 public Builder setStopAfterRootPropagation(boolean value) {
32450
32451 stopAfterRootPropagation_ = value;
32452 bitField6_ |= 0x00000002;
32453 onChanged();
32454 return this;
32455 }
32456
32461 bitField6_ = (bitField6_ & ~0x00000002);
32462 stopAfterRootPropagation_ = false;
32463 onChanged();
32464 return this;
32465 }
32466
32467 private double lnsInitialDifficulty_ = 0.5D;
32476 @java.lang.Override
32477 public boolean hasLnsInitialDifficulty() {
32478 return ((bitField6_ & 0x00000004) != 0);
32479 }
32480
32488 @java.lang.Override
32489 public double getLnsInitialDifficulty() {
32490 return lnsInitialDifficulty_;
32491 }
32492
32501 public Builder setLnsInitialDifficulty(double value) {
32502
32503 lnsInitialDifficulty_ = value;
32504 bitField6_ |= 0x00000004;
32505 onChanged();
32506 return this;
32507 }
32508
32516 public Builder clearLnsInitialDifficulty() {
32517 bitField6_ = (bitField6_ & ~0x00000004);
32518 lnsInitialDifficulty_ = 0.5D;
32519 onChanged();
32520 return this;
32521 }
32522
32523 private double lnsInitialDeterministicLimit_ = 0.1D;
32528 @java.lang.Override
32530 return ((bitField6_ & 0x00000008) != 0);
32531 }
32532
32536 @java.lang.Override
32538 return lnsInitialDeterministicLimit_;
32539 }
32540
32545 public Builder setLnsInitialDeterministicLimit(double value) {
32546
32547 lnsInitialDeterministicLimit_ = value;
32548 bitField6_ |= 0x00000008;
32549 onChanged();
32550 return this;
32551 }
32552
32557 bitField6_ = (bitField6_ & ~0x00000008);
32558 lnsInitialDeterministicLimit_ = 0.1D;
32559 onChanged();
32560 return this;
32561 }
32562
32563 private boolean useLns_ = true;
32572 @java.lang.Override
32573 public boolean hasUseLns() {
32574 return ((bitField6_ & 0x00000010) != 0);
32575 }
32576
32584 @java.lang.Override
32585 public boolean getUseLns() {
32586 return useLns_;
32587 }
32588
32597 public Builder setUseLns(boolean value) {
32598
32599 useLns_ = value;
32600 bitField6_ |= 0x00000010;
32601 onChanged();
32602 return this;
32603 }
32604
32612 public Builder clearUseLns() {
32613 bitField6_ = (bitField6_ & ~0x00000010);
32614 useLns_ = true;
32615 onChanged();
32616 return this;
32617 }
32618
32619 private boolean useLnsOnly_ ;
32628 @java.lang.Override
32629 public boolean hasUseLnsOnly() {
32630 return ((bitField6_ & 0x00000020) != 0);
32631 }
32632
32640 @java.lang.Override
32641 public boolean getUseLnsOnly() {
32642 return useLnsOnly_;
32643 }
32644
32653 public Builder setUseLnsOnly(boolean value) {
32654
32655 useLnsOnly_ = value;
32656 bitField6_ |= 0x00000020;
32657 onChanged();
32658 return this;
32659 }
32660
32668 public Builder clearUseLnsOnly() {
32669 bitField6_ = (bitField6_ & ~0x00000020);
32670 useLnsOnly_ = false;
32671 onChanged();
32672 return this;
32673 }
32674
32675 private int solutionPoolSize_ = 3;
32686 @java.lang.Override
32687 public boolean hasSolutionPoolSize() {
32688 return ((bitField6_ & 0x00000040) != 0);
32689 }
32690
32700 @java.lang.Override
32701 public int getSolutionPoolSize() {
32702 return solutionPoolSize_;
32703 }
32704
32715 public Builder setSolutionPoolSize(int value) {
32716
32717 solutionPoolSize_ = value;
32718 bitField6_ |= 0x00000040;
32719 onChanged();
32720 return this;
32721 }
32722
32732 public Builder clearSolutionPoolSize() {
32733 bitField6_ = (bitField6_ & ~0x00000040);
32734 solutionPoolSize_ = 3;
32735 onChanged();
32736 return this;
32737 }
32738
32739 private boolean useRinsLns_ = true;
32748 @java.lang.Override
32749 public boolean hasUseRinsLns() {
32750 return ((bitField6_ & 0x00000080) != 0);
32751 }
32752
32760 @java.lang.Override
32761 public boolean getUseRinsLns() {
32762 return useRinsLns_;
32763 }
32764
32773 public Builder setUseRinsLns(boolean value) {
32774
32775 useRinsLns_ = value;
32776 bitField6_ |= 0x00000080;
32777 onChanged();
32778 return this;
32779 }
32780
32788 public Builder clearUseRinsLns() {
32789 bitField6_ = (bitField6_ & ~0x00000080);
32790 useRinsLns_ = true;
32791 onChanged();
32792 return this;
32793 }
32794
32795 private boolean useFeasibilityPump_ = true;
32804 @java.lang.Override
32805 public boolean hasUseFeasibilityPump() {
32806 return ((bitField6_ & 0x00000100) != 0);
32807 }
32808
32816 @java.lang.Override
32817 public boolean getUseFeasibilityPump() {
32818 return useFeasibilityPump_;
32819 }
32820
32829 public Builder setUseFeasibilityPump(boolean value) {
32830
32831 useFeasibilityPump_ = value;
32832 bitField6_ |= 0x00000100;
32833 onChanged();
32834 return this;
32835 }
32836
32844 public Builder clearUseFeasibilityPump() {
32845 bitField6_ = (bitField6_ & ~0x00000100);
32846 useFeasibilityPump_ = true;
32847 onChanged();
32848 return this;
32849 }
32850
32851 private boolean useLbRelaxLns_ = true;
32862 @java.lang.Override
32863 public boolean hasUseLbRelaxLns() {
32864 return ((bitField6_ & 0x00000200) != 0);
32865 }
32866
32876 @java.lang.Override
32877 public boolean getUseLbRelaxLns() {
32878 return useLbRelaxLns_;
32879 }
32880
32891 public Builder setUseLbRelaxLns(boolean value) {
32892
32893 useLbRelaxLns_ = value;
32894 bitField6_ |= 0x00000200;
32895 onChanged();
32896 return this;
32897 }
32898
32908 public Builder clearUseLbRelaxLns() {
32909 bitField6_ = (bitField6_ & ~0x00000200);
32910 useLbRelaxLns_ = true;
32911 onChanged();
32912 return this;
32913 }
32914
32915 private int lbRelaxNumWorkersThreshold_ = 16;
32924 @java.lang.Override
32926 return ((bitField6_ & 0x00000400) != 0);
32927 }
32928
32936 @java.lang.Override
32938 return lbRelaxNumWorkersThreshold_;
32939 }
32940
32949 public Builder setLbRelaxNumWorkersThreshold(int value) {
32950
32951 lbRelaxNumWorkersThreshold_ = value;
32952 bitField6_ |= 0x00000400;
32953 onChanged();
32954 return this;
32955 }
32956
32965 bitField6_ = (bitField6_ & ~0x00000400);
32966 lbRelaxNumWorkersThreshold_ = 16;
32967 onChanged();
32968 return this;
32969 }
32970
32971 private int fpRounding_ = 2;
32976 @java.lang.Override public boolean hasFpRounding() {
32977 return ((bitField6_ & 0x00000800) != 0);
32978 }
32979
32983 @java.lang.Override
32985 com.google.ortools.sat.SatParameters.FPRoundingMethod result = com.google.ortools.sat.SatParameters.FPRoundingMethod.forNumber(fpRounding_);
32987 }
32988
32993 public Builder setFpRounding(com.google.ortools.sat.SatParameters.FPRoundingMethod value) {
32994 if (value == null) {
32995 throw new NullPointerException();
32996 }
32997 bitField6_ |= 0x00000800;
32998 fpRounding_ = value.getNumber();
32999 onChanged();
33000 return this;
33001 }
33002
33006 public Builder clearFpRounding() {
33007 bitField6_ = (bitField6_ & ~0x00000800);
33008 fpRounding_ = 2;
33009 onChanged();
33010 return this;
33011 }
33012
33013 private boolean diversifyLnsParams_ ;
33022 @java.lang.Override
33023 public boolean hasDiversifyLnsParams() {
33024 return ((bitField6_ & 0x00001000) != 0);
33025 }
33026
33034 @java.lang.Override
33035 public boolean getDiversifyLnsParams() {
33036 return diversifyLnsParams_;
33037 }
33038
33047 public Builder setDiversifyLnsParams(boolean value) {
33048
33049 diversifyLnsParams_ = value;
33050 bitField6_ |= 0x00001000;
33051 onChanged();
33052 return this;
33053 }
33054
33062 public Builder clearDiversifyLnsParams() {
33063 bitField6_ = (bitField6_ & ~0x00001000);
33064 diversifyLnsParams_ = false;
33065 onChanged();
33066 return this;
33067 }
33068
33069 private boolean randomizeSearch_ ;
33078 @java.lang.Override
33079 public boolean hasRandomizeSearch() {
33080 return ((bitField6_ & 0x00002000) != 0);
33081 }
33082
33090 @java.lang.Override
33091 public boolean getRandomizeSearch() {
33092 return randomizeSearch_;
33093 }
33094
33103 public Builder setRandomizeSearch(boolean value) {
33104
33105 randomizeSearch_ = value;
33106 bitField6_ |= 0x00002000;
33107 onChanged();
33108 return this;
33109 }
33110
33118 public Builder clearRandomizeSearch() {
33119 bitField6_ = (bitField6_ & ~0x00002000);
33120 randomizeSearch_ = false;
33121 onChanged();
33122 return this;
33123 }
33124
33125 private long searchRandomVariablePoolSize_ ;
33136 @java.lang.Override
33138 return ((bitField6_ & 0x00004000) != 0);
33139 }
33140
33150 @java.lang.Override
33152 return searchRandomVariablePoolSize_;
33153 }
33154
33165 public Builder setSearchRandomVariablePoolSize(long value) {
33166
33167 searchRandomVariablePoolSize_ = value;
33168 bitField6_ |= 0x00004000;
33169 onChanged();
33170 return this;
33171 }
33172
33183 bitField6_ = (bitField6_ & ~0x00004000);
33184 searchRandomVariablePoolSize_ = 0L;
33185 onChanged();
33186 return this;
33187 }
33188
33189 private boolean pushAllTasksTowardStart_ ;
33199 @java.lang.Override
33201 return ((bitField6_ & 0x00008000) != 0);
33202 }
33203
33212 @java.lang.Override
33214 return pushAllTasksTowardStart_;
33215 }
33216
33226 public Builder setPushAllTasksTowardStart(boolean value) {
33227
33228 pushAllTasksTowardStart_ = value;
33229 bitField6_ |= 0x00008000;
33230 onChanged();
33231 return this;
33232 }
33233
33243 bitField6_ = (bitField6_ & ~0x00008000);
33244 pushAllTasksTowardStart_ = false;
33245 onChanged();
33246 return this;
33247 }
33248
33249 private boolean useOptionalVariables_ ;
33263 @java.lang.Override
33264 public boolean hasUseOptionalVariables() {
33265 return ((bitField6_ & 0x00010000) != 0);
33266 }
33267
33280 @java.lang.Override
33281 public boolean getUseOptionalVariables() {
33282 return useOptionalVariables_;
33283 }
33284
33298 public Builder setUseOptionalVariables(boolean value) {
33299
33300 useOptionalVariables_ = value;
33301 bitField6_ |= 0x00010000;
33302 onChanged();
33303 return this;
33304 }
33305
33318 public Builder clearUseOptionalVariables() {
33319 bitField6_ = (bitField6_ & ~0x00010000);
33320 useOptionalVariables_ = false;
33321 onChanged();
33322 return this;
33323 }
33324
33325 private boolean useExactLpReason_ = true;
33337 @java.lang.Override
33338 public boolean hasUseExactLpReason() {
33339 return ((bitField6_ & 0x00020000) != 0);
33340 }
33341
33352 @java.lang.Override
33353 public boolean getUseExactLpReason() {
33354 return useExactLpReason_;
33355 }
33356
33368 public Builder setUseExactLpReason(boolean value) {
33369
33370 useExactLpReason_ = value;
33371 bitField6_ |= 0x00020000;
33372 onChanged();
33373 return this;
33374 }
33375
33386 public Builder clearUseExactLpReason() {
33387 bitField6_ = (bitField6_ & ~0x00020000);
33388 useExactLpReason_ = true;
33389 onChanged();
33390 return this;
33391 }
33392
33393 private boolean useCombinedNoOverlap_ ;
33404 @java.lang.Override
33405 public boolean hasUseCombinedNoOverlap() {
33406 return ((bitField6_ & 0x00040000) != 0);
33407 }
33408
33418 @java.lang.Override
33419 public boolean getUseCombinedNoOverlap() {
33420 return useCombinedNoOverlap_;
33421 }
33422
33433 public Builder setUseCombinedNoOverlap(boolean value) {
33434
33435 useCombinedNoOverlap_ = value;
33436 bitField6_ |= 0x00040000;
33437 onChanged();
33438 return this;
33439 }
33440
33450 public Builder clearUseCombinedNoOverlap() {
33451 bitField6_ = (bitField6_ & ~0x00040000);
33452 useCombinedNoOverlap_ = false;
33453 onChanged();
33454 return this;
33455 }
33456
33457 private int atMostOneMaxExpansionSize_ = 3;
33467 @java.lang.Override
33469 return ((bitField6_ & 0x00080000) != 0);
33470 }
33471
33480 @java.lang.Override
33482 return atMostOneMaxExpansionSize_;
33483 }
33484
33494 public Builder setAtMostOneMaxExpansionSize(int value) {
33495
33496 atMostOneMaxExpansionSize_ = value;
33497 bitField6_ |= 0x00080000;
33498 onChanged();
33499 return this;
33500 }
33501
33511 bitField6_ = (bitField6_ & ~0x00080000);
33512 atMostOneMaxExpansionSize_ = 3;
33513 onChanged();
33514 return this;
33515 }
33516
33517 private boolean catchSigintSignal_ = true;
33528 @java.lang.Override
33529 public boolean hasCatchSigintSignal() {
33530 return ((bitField6_ & 0x00100000) != 0);
33531 }
33532
33542 @java.lang.Override
33543 public boolean getCatchSigintSignal() {
33544 return catchSigintSignal_;
33545 }
33546
33557 public Builder setCatchSigintSignal(boolean value) {
33558
33559 catchSigintSignal_ = value;
33560 bitField6_ |= 0x00100000;
33561 onChanged();
33562 return this;
33563 }
33564
33574 public Builder clearCatchSigintSignal() {
33575 bitField6_ = (bitField6_ & ~0x00100000);
33576 catchSigintSignal_ = true;
33577 onChanged();
33578 return this;
33579 }
33580
33581 private boolean useImpliedBounds_ = true;
33592 @java.lang.Override
33593 public boolean hasUseImpliedBounds() {
33594 return ((bitField6_ & 0x00200000) != 0);
33595 }
33596
33606 @java.lang.Override
33607 public boolean getUseImpliedBounds() {
33608 return useImpliedBounds_;
33609 }
33610
33621 public Builder setUseImpliedBounds(boolean value) {
33622
33623 useImpliedBounds_ = value;
33624 bitField6_ |= 0x00200000;
33625 onChanged();
33626 return this;
33627 }
33628
33638 public Builder clearUseImpliedBounds() {
33639 bitField6_ = (bitField6_ & ~0x00200000);
33640 useImpliedBounds_ = true;
33641 onChanged();
33642 return this;
33643 }
33644
33645 private boolean polishLpSolution_ ;
33657 @java.lang.Override
33658 public boolean hasPolishLpSolution() {
33659 return ((bitField6_ & 0x00400000) != 0);
33660 }
33661
33672 @java.lang.Override
33673 public boolean getPolishLpSolution() {
33674 return polishLpSolution_;
33675 }
33676
33688 public Builder setPolishLpSolution(boolean value) {
33689
33690 polishLpSolution_ = value;
33691 bitField6_ |= 0x00400000;
33692 onChanged();
33693 return this;
33694 }
33695
33706 public Builder clearPolishLpSolution() {
33707 bitField6_ = (bitField6_ & ~0x00400000);
33708 polishLpSolution_ = false;
33709 onChanged();
33710 return this;
33711 }
33712
33713 private double lpPrimalTolerance_ = 1e-07D;
33726 @java.lang.Override
33727 public boolean hasLpPrimalTolerance() {
33728 return ((bitField6_ & 0x00800000) != 0);
33729 }
33730
33742 @java.lang.Override
33743 public double getLpPrimalTolerance() {
33744 return lpPrimalTolerance_;
33745 }
33746
33759 public Builder setLpPrimalTolerance(double value) {
33760
33761 lpPrimalTolerance_ = value;
33762 bitField6_ |= 0x00800000;
33763 onChanged();
33764 return this;
33765 }
33766
33778 public Builder clearLpPrimalTolerance() {
33779 bitField6_ = (bitField6_ & ~0x00800000);
33780 lpPrimalTolerance_ = 1e-07D;
33781 onChanged();
33782 return this;
33783 }
33784
33785 private double lpDualTolerance_ = 1e-07D;
33790 @java.lang.Override
33791 public boolean hasLpDualTolerance() {
33792 return ((bitField6_ & 0x01000000) != 0);
33793 }
33794
33798 @java.lang.Override
33799 public double getLpDualTolerance() {
33800 return lpDualTolerance_;
33801 }
33802
33807 public Builder setLpDualTolerance(double value) {
33808
33809 lpDualTolerance_ = value;
33810 bitField6_ |= 0x01000000;
33811 onChanged();
33812 return this;
33813 }
33814
33818 public Builder clearLpDualTolerance() {
33819 bitField6_ = (bitField6_ & ~0x01000000);
33820 lpDualTolerance_ = 1e-07D;
33821 onChanged();
33822 return this;
33823 }
33824
33825 private boolean convertIntervals_ = true;
33836 @java.lang.Override
33837 public boolean hasConvertIntervals() {
33838 return ((bitField6_ & 0x02000000) != 0);
33839 }
33840
33850 @java.lang.Override
33851 public boolean getConvertIntervals() {
33852 return convertIntervals_;
33853 }
33854
33865 public Builder setConvertIntervals(boolean value) {
33866
33867 convertIntervals_ = value;
33868 bitField6_ |= 0x02000000;
33869 onChanged();
33870 return this;
33871 }
33872
33882 public Builder clearConvertIntervals() {
33883 bitField6_ = (bitField6_ & ~0x02000000);
33884 convertIntervals_ = true;
33885 onChanged();
33886 return this;
33887 }
33888
33889 private int symmetryLevel_ = 2;
33903 @java.lang.Override
33904 public boolean hasSymmetryLevel() {
33905 return ((bitField6_ & 0x04000000) != 0);
33906 }
33907
33920 @java.lang.Override
33921 public int getSymmetryLevel() {
33922 return symmetryLevel_;
33923 }
33924
33938 public Builder setSymmetryLevel(int value) {
33939
33940 symmetryLevel_ = value;
33941 bitField6_ |= 0x04000000;
33942 onChanged();
33943 return this;
33944 }
33945
33958 public Builder clearSymmetryLevel() {
33959 bitField6_ = (bitField6_ & ~0x04000000);
33960 symmetryLevel_ = 2;
33961 onChanged();
33962 return this;
33963 }
33964
33965 private boolean useSymmetryInLp_ ;
33978 @java.lang.Override
33979 public boolean hasUseSymmetryInLp() {
33980 return ((bitField6_ & 0x08000000) != 0);
33981 }
33982
33994 @java.lang.Override
33995 public boolean getUseSymmetryInLp() {
33996 return useSymmetryInLp_;
33997 }
33998
34011 public Builder setUseSymmetryInLp(boolean value) {
34012
34013 useSymmetryInLp_ = value;
34014 bitField6_ |= 0x08000000;
34015 onChanged();
34016 return this;
34017 }
34018
34030 public Builder clearUseSymmetryInLp() {
34031 bitField6_ = (bitField6_ & ~0x08000000);
34032 useSymmetryInLp_ = false;
34033 onChanged();
34034 return this;
34035 }
34036
34037 private boolean keepSymmetryInPresolve_ ;
34049 @java.lang.Override
34050 public boolean hasKeepSymmetryInPresolve() {
34051 return ((bitField6_ & 0x10000000) != 0);
34052 }
34053
34064 @java.lang.Override
34065 public boolean getKeepSymmetryInPresolve() {
34066 return keepSymmetryInPresolve_;
34067 }
34068
34080 public Builder setKeepSymmetryInPresolve(boolean value) {
34081
34082 keepSymmetryInPresolve_ = value;
34083 bitField6_ |= 0x10000000;
34084 onChanged();
34085 return this;
34086 }
34087
34099 bitField6_ = (bitField6_ & ~0x10000000);
34100 keepSymmetryInPresolve_ = false;
34101 onChanged();
34102 return this;
34103 }
34104
34105 private double symmetryDetectionDeterministicTimeLimit_ = 1D;
34114 @java.lang.Override
34116 return ((bitField6_ & 0x20000000) != 0);
34117 }
34118
34126 @java.lang.Override
34128 return symmetryDetectionDeterministicTimeLimit_;
34129 }
34130
34139 public Builder setSymmetryDetectionDeterministicTimeLimit(double value) {
34140
34141 symmetryDetectionDeterministicTimeLimit_ = value;
34142 bitField6_ |= 0x20000000;
34143 onChanged();
34144 return this;
34145 }
34146
34155 bitField6_ = (bitField6_ & ~0x20000000);
34156 symmetryDetectionDeterministicTimeLimit_ = 1D;
34157 onChanged();
34158 return this;
34159 }
34160
34161 private boolean newLinearPropagation_ = true;
34172 @java.lang.Override
34173 public boolean hasNewLinearPropagation() {
34174 return ((bitField6_ & 0x40000000) != 0);
34175 }
34176
34186 @java.lang.Override
34187 public boolean getNewLinearPropagation() {
34188 return newLinearPropagation_;
34189 }
34190
34201 public Builder setNewLinearPropagation(boolean value) {
34202
34203 newLinearPropagation_ = value;
34204 bitField6_ |= 0x40000000;
34205 onChanged();
34206 return this;
34207 }
34208
34218 public Builder clearNewLinearPropagation() {
34219 bitField6_ = (bitField6_ & ~0x40000000);
34220 newLinearPropagation_ = true;
34221 onChanged();
34222 return this;
34223 }
34224
34225 private int linearSplitSize_ = 100;
34236 @java.lang.Override
34237 public boolean hasLinearSplitSize() {
34238 return ((bitField6_ & 0x80000000) != 0);
34239 }
34240
34250 @java.lang.Override
34251 public int getLinearSplitSize() {
34252 return linearSplitSize_;
34253 }
34254
34265 public Builder setLinearSplitSize(int value) {
34266
34267 linearSplitSize_ = value;
34268 bitField6_ |= 0x80000000;
34269 onChanged();
34270 return this;
34271 }
34272
34282 public Builder clearLinearSplitSize() {
34283 bitField6_ = (bitField6_ & ~0x80000000);
34284 linearSplitSize_ = 100;
34285 onChanged();
34286 return this;
34287 }
34288
34289 private int linearizationLevel_ = 1;
34301 @java.lang.Override
34302 public boolean hasLinearizationLevel() {
34303 return ((bitField7_ & 0x00000001) != 0);
34304 }
34305
34316 @java.lang.Override
34318 return linearizationLevel_;
34319 }
34320
34332 public Builder setLinearizationLevel(int value) {
34333
34334 linearizationLevel_ = value;
34335 bitField7_ |= 0x00000001;
34336 onChanged();
34337 return this;
34338 }
34339
34350 public Builder clearLinearizationLevel() {
34351 bitField7_ = (bitField7_ & ~0x00000001);
34352 linearizationLevel_ = 1;
34353 onChanged();
34354 return this;
34355 }
34356
34357 private int booleanEncodingLevel_ = 1;
34367 @java.lang.Override
34368 public boolean hasBooleanEncodingLevel() {
34369 return ((bitField7_ & 0x00000002) != 0);
34370 }
34371
34380 @java.lang.Override
34382 return booleanEncodingLevel_;
34383 }
34384
34394 public Builder setBooleanEncodingLevel(int value) {
34395
34396 booleanEncodingLevel_ = value;
34397 bitField7_ |= 0x00000002;
34398 onChanged();
34399 return this;
34400 }
34401
34410 public Builder clearBooleanEncodingLevel() {
34411 bitField7_ = (bitField7_ & ~0x00000002);
34412 booleanEncodingLevel_ = 1;
34413 onChanged();
34414 return this;
34415 }
34416
34417 private int maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
34429 @java.lang.Override
34431 return ((bitField7_ & 0x00000004) != 0);
34432 }
34433
34444 @java.lang.Override
34446 return maxDomainSizeWhenEncodingEqNeqConstraints_;
34447 }
34448
34461
34462 maxDomainSizeWhenEncodingEqNeqConstraints_ = value;
34463 bitField7_ |= 0x00000004;
34464 onChanged();
34465 return this;
34466 }
34467
34479 bitField7_ = (bitField7_ & ~0x00000004);
34480 maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
34481 onChanged();
34482 return this;
34483 }
34484
34485 private int maxNumCuts_ = 10000;
34498 @java.lang.Override
34499 public boolean hasMaxNumCuts() {
34500 return ((bitField7_ & 0x00000008) != 0);
34501 }
34502
34514 @java.lang.Override
34515 public int getMaxNumCuts() {
34516 return maxNumCuts_;
34517 }
34518
34531 public Builder setMaxNumCuts(int value) {
34532
34533 maxNumCuts_ = value;
34534 bitField7_ |= 0x00000008;
34535 onChanged();
34536 return this;
34537 }
34538
34550 public Builder clearMaxNumCuts() {
34551 bitField7_ = (bitField7_ & ~0x00000008);
34552 maxNumCuts_ = 10000;
34553 onChanged();
34554 return this;
34555 }
34556
34557 private int cutLevel_ = 1;
34568 @java.lang.Override
34569 public boolean hasCutLevel() {
34570 return ((bitField7_ & 0x00000010) != 0);
34571 }
34572
34582 @java.lang.Override
34583 public int getCutLevel() {
34584 return cutLevel_;
34585 }
34586
34597 public Builder setCutLevel(int value) {
34598
34599 cutLevel_ = value;
34600 bitField7_ |= 0x00000010;
34601 onChanged();
34602 return this;
34603 }
34604
34614 public Builder clearCutLevel() {
34615 bitField7_ = (bitField7_ & ~0x00000010);
34616 cutLevel_ = 1;
34617 onChanged();
34618 return this;
34619 }
34620
34621 private boolean onlyAddCutsAtLevelZero_ ;
34631 @java.lang.Override
34632 public boolean hasOnlyAddCutsAtLevelZero() {
34633 return ((bitField7_ & 0x00000020) != 0);
34634 }
34635
34644 @java.lang.Override
34645 public boolean getOnlyAddCutsAtLevelZero() {
34646 return onlyAddCutsAtLevelZero_;
34647 }
34648
34658 public Builder setOnlyAddCutsAtLevelZero(boolean value) {
34659
34660 onlyAddCutsAtLevelZero_ = value;
34661 bitField7_ |= 0x00000020;
34662 onChanged();
34663 return this;
34664 }
34665
34675 bitField7_ = (bitField7_ & ~0x00000020);
34676 onlyAddCutsAtLevelZero_ = false;
34677 onChanged();
34678 return this;
34679 }
34680
34681 private boolean addObjectiveCut_ ;
34694 @java.lang.Override
34695 public boolean hasAddObjectiveCut() {
34696 return ((bitField7_ & 0x00000040) != 0);
34697 }
34698
34710 @java.lang.Override
34711 public boolean getAddObjectiveCut() {
34712 return addObjectiveCut_;
34713 }
34714
34727 public Builder setAddObjectiveCut(boolean value) {
34728
34729 addObjectiveCut_ = value;
34730 bitField7_ |= 0x00000040;
34731 onChanged();
34732 return this;
34733 }
34734
34746 public Builder clearAddObjectiveCut() {
34747 bitField7_ = (bitField7_ & ~0x00000040);
34748 addObjectiveCut_ = false;
34749 onChanged();
34750 return this;
34751 }
34752
34753 private boolean addCgCuts_ = true;
34763 @java.lang.Override
34764 public boolean hasAddCgCuts() {
34765 return ((bitField7_ & 0x00000080) != 0);
34766 }
34767
34776 @java.lang.Override
34777 public boolean getAddCgCuts() {
34778 return addCgCuts_;
34779 }
34780
34790 public Builder setAddCgCuts(boolean value) {
34791
34792 addCgCuts_ = value;
34793 bitField7_ |= 0x00000080;
34794 onChanged();
34795 return this;
34796 }
34797
34806 public Builder clearAddCgCuts() {
34807 bitField7_ = (bitField7_ & ~0x00000080);
34808 addCgCuts_ = true;
34809 onChanged();
34810 return this;
34811 }
34812
34813 private boolean addMirCuts_ = true;
34823 @java.lang.Override
34824 public boolean hasAddMirCuts() {
34825 return ((bitField7_ & 0x00000100) != 0);
34826 }
34827
34836 @java.lang.Override
34837 public boolean getAddMirCuts() {
34838 return addMirCuts_;
34839 }
34840
34850 public Builder setAddMirCuts(boolean value) {
34851
34852 addMirCuts_ = value;
34853 bitField7_ |= 0x00000100;
34854 onChanged();
34855 return this;
34856 }
34857
34866 public Builder clearAddMirCuts() {
34867 bitField7_ = (bitField7_ & ~0x00000100);
34868 addMirCuts_ = true;
34869 onChanged();
34870 return this;
34871 }
34872
34873 private boolean addZeroHalfCuts_ = true;
34883 @java.lang.Override
34884 public boolean hasAddZeroHalfCuts() {
34885 return ((bitField7_ & 0x00000200) != 0);
34886 }
34887
34896 @java.lang.Override
34897 public boolean getAddZeroHalfCuts() {
34898 return addZeroHalfCuts_;
34899 }
34900
34910 public Builder setAddZeroHalfCuts(boolean value) {
34911
34912 addZeroHalfCuts_ = value;
34913 bitField7_ |= 0x00000200;
34914 onChanged();
34915 return this;
34916 }
34917
34926 public Builder clearAddZeroHalfCuts() {
34927 bitField7_ = (bitField7_ & ~0x00000200);
34928 addZeroHalfCuts_ = true;
34929 onChanged();
34930 return this;
34931 }
34932
34933 private boolean addCliqueCuts_ = true;
34944 @java.lang.Override
34945 public boolean hasAddCliqueCuts() {
34946 return ((bitField7_ & 0x00000400) != 0);
34947 }
34948
34958 @java.lang.Override
34959 public boolean getAddCliqueCuts() {
34960 return addCliqueCuts_;
34961 }
34962
34973 public Builder setAddCliqueCuts(boolean value) {
34974
34975 addCliqueCuts_ = value;
34976 bitField7_ |= 0x00000400;
34977 onChanged();
34978 return this;
34979 }
34980
34990 public Builder clearAddCliqueCuts() {
34991 bitField7_ = (bitField7_ & ~0x00000400);
34992 addCliqueCuts_ = true;
34993 onChanged();
34994 return this;
34995 }
34996
34997 private boolean addRltCuts_ = true;
35007 @java.lang.Override
35008 public boolean hasAddRltCuts() {
35009 return ((bitField7_ & 0x00000800) != 0);
35010 }
35011
35020 @java.lang.Override
35021 public boolean getAddRltCuts() {
35022 return addRltCuts_;
35023 }
35024
35034 public Builder setAddRltCuts(boolean value) {
35035
35036 addRltCuts_ = value;
35037 bitField7_ |= 0x00000800;
35038 onChanged();
35039 return this;
35040 }
35041
35050 public Builder clearAddRltCuts() {
35051 bitField7_ = (bitField7_ & ~0x00000800);
35052 addRltCuts_ = true;
35053 onChanged();
35054 return this;
35055 }
35056
35057 private int maxAllDiffCutSize_ = 64;
35068 @java.lang.Override
35069 public boolean hasMaxAllDiffCutSize() {
35070 return ((bitField7_ & 0x00001000) != 0);
35071 }
35072
35082 @java.lang.Override
35084 return maxAllDiffCutSize_;
35085 }
35086
35097 public Builder setMaxAllDiffCutSize(int value) {
35098
35099 maxAllDiffCutSize_ = value;
35100 bitField7_ |= 0x00001000;
35101 onChanged();
35102 return this;
35103 }
35104
35114 public Builder clearMaxAllDiffCutSize() {
35115 bitField7_ = (bitField7_ & ~0x00001000);
35116 maxAllDiffCutSize_ = 64;
35117 onChanged();
35118 return this;
35119 }
35120
35121 private boolean addLinMaxCuts_ = true;
35132 @java.lang.Override
35133 public boolean hasAddLinMaxCuts() {
35134 return ((bitField7_ & 0x00002000) != 0);
35135 }
35136
35146 @java.lang.Override
35147 public boolean getAddLinMaxCuts() {
35148 return addLinMaxCuts_;
35149 }
35150
35161 public Builder setAddLinMaxCuts(boolean value) {
35162
35163 addLinMaxCuts_ = value;
35164 bitField7_ |= 0x00002000;
35165 onChanged();
35166 return this;
35167 }
35168
35178 public Builder clearAddLinMaxCuts() {
35179 bitField7_ = (bitField7_ & ~0x00002000);
35180 addLinMaxCuts_ = true;
35181 onChanged();
35182 return this;
35183 }
35184
35185 private int maxIntegerRoundingScaling_ = 600;
35201 @java.lang.Override
35203 return ((bitField7_ & 0x00004000) != 0);
35204 }
35205
35220 @java.lang.Override
35222 return maxIntegerRoundingScaling_;
35223 }
35224
35240 public Builder setMaxIntegerRoundingScaling(int value) {
35241
35242 maxIntegerRoundingScaling_ = value;
35243 bitField7_ |= 0x00004000;
35244 onChanged();
35245 return this;
35246 }
35247
35263 bitField7_ = (bitField7_ & ~0x00004000);
35264 maxIntegerRoundingScaling_ = 600;
35265 onChanged();
35266 return this;
35267 }
35268
35269 private boolean addLpConstraintsLazily_ = true;
35281 @java.lang.Override
35282 public boolean hasAddLpConstraintsLazily() {
35283 return ((bitField7_ & 0x00008000) != 0);
35284 }
35285
35296 @java.lang.Override
35297 public boolean getAddLpConstraintsLazily() {
35298 return addLpConstraintsLazily_;
35299 }
35300
35312 public Builder setAddLpConstraintsLazily(boolean value) {
35313
35314 addLpConstraintsLazily_ = value;
35315 bitField7_ |= 0x00008000;
35316 onChanged();
35317 return this;
35318 }
35319
35331 bitField7_ = (bitField7_ & ~0x00008000);
35332 addLpConstraintsLazily_ = true;
35333 onChanged();
35334 return this;
35335 }
35336
35337 private int rootLpIterations_ = 2000;
35349 @java.lang.Override
35350 public boolean hasRootLpIterations() {
35351 return ((bitField7_ & 0x00010000) != 0);
35352 }
35353
35364 @java.lang.Override
35365 public int getRootLpIterations() {
35366 return rootLpIterations_;
35367 }
35368
35380 public Builder setRootLpIterations(int value) {
35381
35382 rootLpIterations_ = value;
35383 bitField7_ |= 0x00010000;
35384 onChanged();
35385 return this;
35386 }
35387
35398 public Builder clearRootLpIterations() {
35399 bitField7_ = (bitField7_ & ~0x00010000);
35400 rootLpIterations_ = 2000;
35401 onChanged();
35402 return this;
35403 }
35404
35405 private double minOrthogonalityForLpConstraints_ = 0.05D;
35418 @java.lang.Override
35420 return ((bitField7_ & 0x00020000) != 0);
35421 }
35422
35434 @java.lang.Override
35436 return minOrthogonalityForLpConstraints_;
35437 }
35438
35451 public Builder setMinOrthogonalityForLpConstraints(double value) {
35452
35453 minOrthogonalityForLpConstraints_ = value;
35454 bitField7_ |= 0x00020000;
35455 onChanged();
35456 return this;
35457 }
35458
35471 bitField7_ = (bitField7_ & ~0x00020000);
35472 minOrthogonalityForLpConstraints_ = 0.05D;
35473 onChanged();
35474 return this;
35475 }
35476
35477 private int maxCutRoundsAtLevelZero_ = 1;
35486 @java.lang.Override
35488 return ((bitField7_ & 0x00040000) != 0);
35489 }
35490
35498 @java.lang.Override
35500 return maxCutRoundsAtLevelZero_;
35501 }
35502
35511 public Builder setMaxCutRoundsAtLevelZero(int value) {
35512
35513 maxCutRoundsAtLevelZero_ = value;
35514 bitField7_ |= 0x00040000;
35515 onChanged();
35516 return this;
35517 }
35518
35527 bitField7_ = (bitField7_ & ~0x00040000);
35528 maxCutRoundsAtLevelZero_ = 1;
35529 onChanged();
35530 return this;
35531 }
35532
35533 private int maxConsecutiveInactiveCount_ = 100;
35544 @java.lang.Override
35546 return ((bitField7_ & 0x00080000) != 0);
35547 }
35548
35558 @java.lang.Override
35560 return maxConsecutiveInactiveCount_;
35561 }
35562
35573 public Builder setMaxConsecutiveInactiveCount(int value) {
35574
35575 maxConsecutiveInactiveCount_ = value;
35576 bitField7_ |= 0x00080000;
35577 onChanged();
35578 return this;
35579 }
35580
35591 bitField7_ = (bitField7_ & ~0x00080000);
35592 maxConsecutiveInactiveCount_ = 100;
35593 onChanged();
35594 return this;
35595 }
35596
35597 private double cutMaxActiveCountValue_ = 10000000000D;
35608 @java.lang.Override
35609 public boolean hasCutMaxActiveCountValue() {
35610 return ((bitField7_ & 0x00100000) != 0);
35611 }
35612
35622 @java.lang.Override
35624 return cutMaxActiveCountValue_;
35625 }
35626
35637 public Builder setCutMaxActiveCountValue(double value) {
35638
35639 cutMaxActiveCountValue_ = value;
35640 bitField7_ |= 0x00100000;
35641 onChanged();
35642 return this;
35643 }
35644
35655 bitField7_ = (bitField7_ & ~0x00100000);
35656 cutMaxActiveCountValue_ = 10000000000D;
35657 onChanged();
35658 return this;
35659 }
35660
35661 private double cutActiveCountDecay_ = 0.8D;
35666 @java.lang.Override
35667 public boolean hasCutActiveCountDecay() {
35668 return ((bitField7_ & 0x00200000) != 0);
35669 }
35670
35674 @java.lang.Override
35675 public double getCutActiveCountDecay() {
35676 return cutActiveCountDecay_;
35677 }
35678
35683 public Builder setCutActiveCountDecay(double value) {
35684
35685 cutActiveCountDecay_ = value;
35686 bitField7_ |= 0x00200000;
35687 onChanged();
35688 return this;
35689 }
35690
35694 public Builder clearCutActiveCountDecay() {
35695 bitField7_ = (bitField7_ & ~0x00200000);
35696 cutActiveCountDecay_ = 0.8D;
35697 onChanged();
35698 return this;
35699 }
35700
35701 private int cutCleanupTarget_ = 1000;
35710 @java.lang.Override
35711 public boolean hasCutCleanupTarget() {
35712 return ((bitField7_ & 0x00400000) != 0);
35713 }
35714
35722 @java.lang.Override
35723 public int getCutCleanupTarget() {
35724 return cutCleanupTarget_;
35725 }
35726
35735 public Builder setCutCleanupTarget(int value) {
35736
35737 cutCleanupTarget_ = value;
35738 bitField7_ |= 0x00400000;
35739 onChanged();
35740 return this;
35741 }
35742
35750 public Builder clearCutCleanupTarget() {
35751 bitField7_ = (bitField7_ & ~0x00400000);
35752 cutCleanupTarget_ = 1000;
35753 onChanged();
35754 return this;
35755 }
35756
35757 private int newConstraintsBatchSize_ = 50;
35767 @java.lang.Override
35769 return ((bitField7_ & 0x00800000) != 0);
35770 }
35771
35780 @java.lang.Override
35782 return newConstraintsBatchSize_;
35783 }
35784
35794 public Builder setNewConstraintsBatchSize(int value) {
35795
35796 newConstraintsBatchSize_ = value;
35797 bitField7_ |= 0x00800000;
35798 onChanged();
35799 return this;
35800 }
35801
35811 bitField7_ = (bitField7_ & ~0x00800000);
35812 newConstraintsBatchSize_ = 50;
35813 onChanged();
35814 return this;
35815 }
35816
35817 private boolean exploitIntegerLpSolution_ = true;
35829 @java.lang.Override
35831 return ((bitField7_ & 0x01000000) != 0);
35832 }
35833
35844 @java.lang.Override
35846 return exploitIntegerLpSolution_;
35847 }
35848
35860 public Builder setExploitIntegerLpSolution(boolean value) {
35861
35862 exploitIntegerLpSolution_ = value;
35863 bitField7_ |= 0x01000000;
35864 onChanged();
35865 return this;
35866 }
35867
35879 bitField7_ = (bitField7_ & ~0x01000000);
35880 exploitIntegerLpSolution_ = true;
35881 onChanged();
35882 return this;
35883 }
35884
35885 private boolean exploitAllLpSolution_ = true;
35896 @java.lang.Override
35897 public boolean hasExploitAllLpSolution() {
35898 return ((bitField7_ & 0x02000000) != 0);
35899 }
35900
35910 @java.lang.Override
35911 public boolean getExploitAllLpSolution() {
35912 return exploitAllLpSolution_;
35913 }
35914
35925 public Builder setExploitAllLpSolution(boolean value) {
35926
35927 exploitAllLpSolution_ = value;
35928 bitField7_ |= 0x02000000;
35929 onChanged();
35930 return this;
35931 }
35932
35942 public Builder clearExploitAllLpSolution() {
35943 bitField7_ = (bitField7_ & ~0x02000000);
35944 exploitAllLpSolution_ = true;
35945 onChanged();
35946 return this;
35947 }
35948
35949 private boolean exploitBestSolution_ ;
35958 @java.lang.Override
35959 public boolean hasExploitBestSolution() {
35960 return ((bitField7_ & 0x04000000) != 0);
35961 }
35962
35970 @java.lang.Override
35971 public boolean getExploitBestSolution() {
35972 return exploitBestSolution_;
35973 }
35974
35983 public Builder setExploitBestSolution(boolean value) {
35984
35985 exploitBestSolution_ = value;
35986 bitField7_ |= 0x04000000;
35987 onChanged();
35988 return this;
35989 }
35990
35998 public Builder clearExploitBestSolution() {
35999 bitField7_ = (bitField7_ & ~0x04000000);
36000 exploitBestSolution_ = false;
36001 onChanged();
36002 return this;
36003 }
36004
36005 private boolean exploitRelaxationSolution_ ;
36016 @java.lang.Override
36018 return ((bitField7_ & 0x08000000) != 0);
36019 }
36020
36030 @java.lang.Override
36032 return exploitRelaxationSolution_;
36033 }
36034
36045 public Builder setExploitRelaxationSolution(boolean value) {
36046
36047 exploitRelaxationSolution_ = value;
36048 bitField7_ |= 0x08000000;
36049 onChanged();
36050 return this;
36051 }
36052
36063 bitField7_ = (bitField7_ & ~0x08000000);
36064 exploitRelaxationSolution_ = false;
36065 onChanged();
36066 return this;
36067 }
36068
36069 private boolean exploitObjective_ = true;
36079 @java.lang.Override
36080 public boolean hasExploitObjective() {
36081 return ((bitField7_ & 0x10000000) != 0);
36082 }
36083
36092 @java.lang.Override
36093 public boolean getExploitObjective() {
36094 return exploitObjective_;
36095 }
36096
36106 public Builder setExploitObjective(boolean value) {
36107
36108 exploitObjective_ = value;
36109 bitField7_ |= 0x10000000;
36110 onChanged();
36111 return this;
36112 }
36113
36122 public Builder clearExploitObjective() {
36123 bitField7_ = (bitField7_ & ~0x10000000);
36124 exploitObjective_ = true;
36125 onChanged();
36126 return this;
36127 }
36128
36129 private boolean detectLinearizedProduct_ ;
36140 @java.lang.Override
36142 return ((bitField7_ & 0x20000000) != 0);
36143 }
36144
36154 @java.lang.Override
36156 return detectLinearizedProduct_;
36157 }
36158
36169 public Builder setDetectLinearizedProduct(boolean value) {
36170
36171 detectLinearizedProduct_ = value;
36172 bitField7_ |= 0x20000000;
36173 onChanged();
36174 return this;
36175 }
36176
36187 bitField7_ = (bitField7_ & ~0x20000000);
36188 detectLinearizedProduct_ = false;
36189 onChanged();
36190 return this;
36191 }
36192
36193 private double mipMaxBound_ = 10000000D;
36204 @java.lang.Override
36205 public boolean hasMipMaxBound() {
36206 return ((bitField7_ & 0x40000000) != 0);
36207 }
36208
36218 @java.lang.Override
36219 public double getMipMaxBound() {
36220 return mipMaxBound_;
36221 }
36222
36233 public Builder setMipMaxBound(double value) {
36234
36235 mipMaxBound_ = value;
36236 bitField7_ |= 0x40000000;
36237 onChanged();
36238 return this;
36239 }
36240
36250 public Builder clearMipMaxBound() {
36251 bitField7_ = (bitField7_ & ~0x40000000);
36252 mipMaxBound_ = 10000000D;
36253 onChanged();
36254 return this;
36255 }
36256
36257 private double mipVarScaling_ = 1D;
36268 @java.lang.Override
36269 public boolean hasMipVarScaling() {
36270 return ((bitField7_ & 0x80000000) != 0);
36271 }
36272
36282 @java.lang.Override
36283 public double getMipVarScaling() {
36284 return mipVarScaling_;
36285 }
36286
36297 public Builder setMipVarScaling(double value) {
36298
36299 mipVarScaling_ = value;
36300 bitField7_ |= 0x80000000;
36301 onChanged();
36302 return this;
36303 }
36304
36314 public Builder clearMipVarScaling() {
36315 bitField7_ = (bitField7_ & ~0x80000000);
36316 mipVarScaling_ = 1D;
36317 onChanged();
36318 return this;
36319 }
36320
36321 private boolean mipScaleLargeDomain_ ;
36332 @java.lang.Override
36333 public boolean hasMipScaleLargeDomain() {
36334 return ((bitField8_ & 0x00000001) != 0);
36335 }
36336
36346 @java.lang.Override
36347 public boolean getMipScaleLargeDomain() {
36348 return mipScaleLargeDomain_;
36349 }
36350
36361 public Builder setMipScaleLargeDomain(boolean value) {
36362
36363 mipScaleLargeDomain_ = value;
36364 bitField8_ |= 0x00000001;
36365 onChanged();
36366 return this;
36367 }
36368
36378 public Builder clearMipScaleLargeDomain() {
36379 bitField8_ = (bitField8_ & ~0x00000001);
36380 mipScaleLargeDomain_ = false;
36381 onChanged();
36382 return this;
36383 }
36384
36385 private boolean mipAutomaticallyScaleVariables_ = true;
36398 @java.lang.Override
36400 return ((bitField8_ & 0x00000002) != 0);
36401 }
36402
36414 @java.lang.Override
36416 return mipAutomaticallyScaleVariables_;
36417 }
36418
36431 public Builder setMipAutomaticallyScaleVariables(boolean value) {
36432
36433 mipAutomaticallyScaleVariables_ = value;
36434 bitField8_ |= 0x00000002;
36435 onChanged();
36436 return this;
36437 }
36438
36451 bitField8_ = (bitField8_ & ~0x00000002);
36452 mipAutomaticallyScaleVariables_ = true;
36453 onChanged();
36454 return this;
36455 }
36456
36457 private boolean onlySolveIp_ ;
36477 @java.lang.Override
36478 public boolean hasOnlySolveIp() {
36479 return ((bitField8_ & 0x00000004) != 0);
36480 }
36481
36500 @java.lang.Override
36501 public boolean getOnlySolveIp() {
36502 return onlySolveIp_;
36503 }
36504
36524 public Builder setOnlySolveIp(boolean value) {
36525
36526 onlySolveIp_ = value;
36527 bitField8_ |= 0x00000004;
36528 onChanged();
36529 return this;
36530 }
36531
36550 public Builder clearOnlySolveIp() {
36551 bitField8_ = (bitField8_ & ~0x00000004);
36552 onlySolveIp_ = false;
36553 onChanged();
36554 return this;
36555 }
36556
36557 private double mipWantedPrecision_ = 1e-06D;
36582 @java.lang.Override
36583 public boolean hasMipWantedPrecision() {
36584 return ((bitField8_ & 0x00000008) != 0);
36585 }
36586
36610 @java.lang.Override
36611 public double getMipWantedPrecision() {
36612 return mipWantedPrecision_;
36613 }
36614
36639 public Builder setMipWantedPrecision(double value) {
36640
36641 mipWantedPrecision_ = value;
36642 bitField8_ |= 0x00000008;
36643 onChanged();
36644 return this;
36645 }
36646
36670 public Builder clearMipWantedPrecision() {
36671 bitField8_ = (bitField8_ & ~0x00000008);
36672 mipWantedPrecision_ = 1e-06D;
36673 onChanged();
36674 return this;
36675 }
36676
36677 private int mipMaxActivityExponent_ = 53;
36693 @java.lang.Override
36694 public boolean hasMipMaxActivityExponent() {
36695 return ((bitField8_ & 0x00000010) != 0);
36696 }
36697
36712 @java.lang.Override
36714 return mipMaxActivityExponent_;
36715 }
36716
36732 public Builder setMipMaxActivityExponent(int value) {
36733
36734 mipMaxActivityExponent_ = value;
36735 bitField8_ |= 0x00000010;
36736 onChanged();
36737 return this;
36738 }
36739
36755 bitField8_ = (bitField8_ & ~0x00000010);
36756 mipMaxActivityExponent_ = 53;
36757 onChanged();
36758 return this;
36759 }
36760
36761 private double mipCheckPrecision_ = 0.0001D;
36772 @java.lang.Override
36773 public boolean hasMipCheckPrecision() {
36774 return ((bitField8_ & 0x00000020) != 0);
36775 }
36776
36786 @java.lang.Override
36787 public double getMipCheckPrecision() {
36788 return mipCheckPrecision_;
36789 }
36790
36801 public Builder setMipCheckPrecision(double value) {
36802
36803 mipCheckPrecision_ = value;
36804 bitField8_ |= 0x00000020;
36805 onChanged();
36806 return this;
36807 }
36808
36818 public Builder clearMipCheckPrecision() {
36819 bitField8_ = (bitField8_ & ~0x00000020);
36820 mipCheckPrecision_ = 0.0001D;
36821 onChanged();
36822 return this;
36823 }
36824
36825 private boolean mipComputeTrueObjectiveBound_ = true;
36838 @java.lang.Override
36840 return ((bitField8_ & 0x00000040) != 0);
36841 }
36842
36854 @java.lang.Override
36856 return mipComputeTrueObjectiveBound_;
36857 }
36858
36871 public Builder setMipComputeTrueObjectiveBound(boolean value) {
36872
36873 mipComputeTrueObjectiveBound_ = value;
36874 bitField8_ |= 0x00000040;
36875 onChanged();
36876 return this;
36877 }
36878
36891 bitField8_ = (bitField8_ & ~0x00000040);
36892 mipComputeTrueObjectiveBound_ = true;
36893 onChanged();
36894 return this;
36895 }
36896
36897 private double mipMaxValidMagnitude_ = 1e+20D;
36910 @java.lang.Override
36911 public boolean hasMipMaxValidMagnitude() {
36912 return ((bitField8_ & 0x00000080) != 0);
36913 }
36914
36926 @java.lang.Override
36927 public double getMipMaxValidMagnitude() {
36928 return mipMaxValidMagnitude_;
36929 }
36930
36943 public Builder setMipMaxValidMagnitude(double value) {
36944
36945 mipMaxValidMagnitude_ = value;
36946 bitField8_ |= 0x00000080;
36947 onChanged();
36948 return this;
36949 }
36950
36962 public Builder clearMipMaxValidMagnitude() {
36963 bitField8_ = (bitField8_ & ~0x00000080);
36964 mipMaxValidMagnitude_ = 1e+20D;
36965 onChanged();
36966 return this;
36967 }
36968
36969 private boolean mipTreatHighMagnitudeBoundsAsInfinity_ ;
36983 @java.lang.Override
36985 return ((bitField8_ & 0x00000100) != 0);
36986 }
36987
37000 @java.lang.Override
37002 return mipTreatHighMagnitudeBoundsAsInfinity_;
37003 }
37004
37018 public Builder setMipTreatHighMagnitudeBoundsAsInfinity(boolean value) {
37019
37020 mipTreatHighMagnitudeBoundsAsInfinity_ = value;
37021 bitField8_ |= 0x00000100;
37022 onChanged();
37023 return this;
37024 }
37025
37039 bitField8_ = (bitField8_ & ~0x00000100);
37040 mipTreatHighMagnitudeBoundsAsInfinity_ = false;
37041 onChanged();
37042 return this;
37043 }
37044
37045 private double mipDropTolerance_ = 1e-16D;
37055 @java.lang.Override
37056 public boolean hasMipDropTolerance() {
37057 return ((bitField8_ & 0x00000200) != 0);
37058 }
37059
37068 @java.lang.Override
37069 public double getMipDropTolerance() {
37070 return mipDropTolerance_;
37071 }
37072
37082 public Builder setMipDropTolerance(double value) {
37083
37084 mipDropTolerance_ = value;
37085 bitField8_ |= 0x00000200;
37086 onChanged();
37087 return this;
37088 }
37089
37098 public Builder clearMipDropTolerance() {
37099 bitField8_ = (bitField8_ & ~0x00000200);
37100 mipDropTolerance_ = 1e-16D;
37101 onChanged();
37102 return this;
37103 }
37104
37105 private int mipPresolveLevel_ = 2;
37117 @java.lang.Override
37118 public boolean hasMipPresolveLevel() {
37119 return ((bitField8_ & 0x00000400) != 0);
37120 }
37121
37132 @java.lang.Override
37133 public int getMipPresolveLevel() {
37134 return mipPresolveLevel_;
37135 }
37136
37148 public Builder setMipPresolveLevel(int value) {
37149
37150 mipPresolveLevel_ = value;
37151 bitField8_ |= 0x00000400;
37152 onChanged();
37153 return this;
37154 }
37155
37166 public Builder clearMipPresolveLevel() {
37167 bitField8_ = (bitField8_ & ~0x00000400);
37168 mipPresolveLevel_ = 2;
37169 onChanged();
37170 return this;
37171 }
37172
37173 // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
37174 }
37175
37176 // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
37177 private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
37178 static {
37179 DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
37180 }
37181
37183 return DEFAULT_INSTANCE;
37184 }
37185
37186 private static final com.google.protobuf.Parser<SatParameters>
37187 PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
37188 @java.lang.Override
37189 public SatParameters parsePartialFrom(
37190 com.google.protobuf.CodedInputStream input,
37191 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
37192 throws com.google.protobuf.InvalidProtocolBufferException {
37193 Builder builder = newBuilder();
37194 try {
37195 builder.mergeFrom(input, extensionRegistry);
37196 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
37197 throw e.setUnfinishedMessage(builder.buildPartial());
37198 } catch (com.google.protobuf.UninitializedMessageException e) {
37199 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
37200 } catch (java.io.IOException e) {
37201 throw new com.google.protobuf.InvalidProtocolBufferException(e)
37202 .setUnfinishedMessage(builder.buildPartial());
37203 }
37204 return builder.buildPartial();
37205 }
37206 };
37207
37208 public static com.google.protobuf.Parser<SatParameters> parser() {
37209 return PARSER;
37210 }
37211
37212 @java.lang.Override
37213 public com.google.protobuf.Parser<SatParameters> getParserForType() {
37214 return PARSER;
37215 }
37216
37217 @java.lang.Override
37219 return DEFAULT_INSTANCE;
37220 }
37221
37222}
37223
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
Builder addIgnoreSubsolvers(java.lang.String value)
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
com.google.ortools.sat.SatParameters getDefaultInstanceForType()
com.google.protobuf.ProtocolStringList getIgnoreSubsolversList()
java.util.List< com.google.ortools.sat.SatParameters > getSubsolverParamsList()
Builder setLogPrefix(java.lang.String value)
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
Builder addAllSubsolvers(java.lang.Iterable< java.lang.String > values)
Builder setExtraSubsolvers(int index, java.lang.String value)
Builder setSubsolverParams(int index, com.google.ortools.sat.SatParameters.Builder builderForValue)
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder addFilterSubsolversBytes(com.google.protobuf.ByteString value)
Builder setUseTimetableEdgeFindingInCumulative(boolean value)
com.google.ortools.sat.SatParametersOrBuilder getSubsolverParamsOrBuilder(int index)
Builder setMaximumRegionsToSplitInDisconnectedNoOverlap2D(int value)
Builder addIgnoreSubsolversBytes(com.google.protobuf.ByteString value)
Builder addSubsolverParams(com.google.ortools.sat.SatParameters.Builder builderForValue)
com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy getSharedTreeSplitStrategy()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
Builder addExtraSubsolversBytes(com.google.protobuf.ByteString value)
com.google.ortools.sat.SatParameters.Builder addSubsolverParamsBuilder()
Builder addSubsolverParams(int index, com.google.ortools.sat.SatParameters value)
Builder setIgnoreSubsolvers(int index, java.lang.String value)
com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding()
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
Builder setSharedTreeWorkerEnablePhaseSharing(boolean value)
com.google.ortools.sat.SatParameters.Builder addSubsolverParamsBuilder(int index)
com.google.protobuf.ByteString getSubsolversBytes(int index)
Builder setUseDynamicPrecedenceInDisjunctive(boolean value)
Builder mergeFrom(com.google.protobuf.Message other)
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
Builder setSubsumptionDuringConflictAnalysis(boolean value)
Builder addSubsolverParams(int index, com.google.ortools.sat.SatParameters.Builder builderForValue)
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setUseDisjunctiveConstraintInCumulative(boolean value)
Builder addFilterSubsolvers(java.lang.String value)
Builder setEncodeComplexLinearConstraintWithInteger(boolean value)
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
Builder setUseEnergeticReasoningInNoOverlap2D(boolean value)
Builder setKeepAllFeasibleSolutionsInPresolve(boolean value)
Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setUseAreaEnergeticReasoningInNoOverlap2D(boolean value)
Builder setDefaultRestartAlgorithms(java.lang.String value)
com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
Builder addExtraSubsolvers(java.lang.String value)
Builder setPresolveProbingDeterministicTimeLimit(double value)
Builder setLogPrefixBytes(com.google.protobuf.ByteString value)
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
Builder addAllFilterSubsolvers(java.lang.Iterable< java.lang.String > values)
Builder addSubsolversBytes(com.google.protobuf.ByteString value)
Builder addSubsolvers(java.lang.String value)
com.google.ortools.sat.SatParameters build()
java.util.List< com.google.ortools.sat.SatParameters.Builder > getSubsolverParamsBuilderList()
com.google.protobuf.ByteString getIgnoreSubsolversBytes(int index)
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
Builder setFpRounding(com.google.ortools.sat.SatParameters.FPRoundingMethod value)
Builder setSharedTreeSplitStrategy(com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy value)
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
Builder addSubsolverParams(com.google.ortools.sat.SatParameters value)
Builder setMipTreatHighMagnitudeBoundsAsInfinity(boolean value)
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
com.google.protobuf.ByteString getLogPrefixBytes()
Builder setFeasibilityJumpVarRandomizationProbability(double value)
com.google.protobuf.ProtocolStringList getSubsolversList()
Builder setInprocessingMinimizationUseConflictAnalysis(boolean value)
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
Builder setRoutingCutSubsetSizeForTightBinaryRelationBound(int value)
Builder setNameBytes(com.google.protobuf.ByteString value)
com.google.ortools.sat.SatParameters getSubsolverParams(int index)
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
Builder setSharedTreeWorkerEnableTrailSharing(boolean value)
com.google.protobuf.ByteString getNameBytes()
Builder setUseStrongPropagationInDisjunctive(boolean value)
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder setMinimizeReductionDuringPbResolution(boolean value)
Builder addAllSubsolverParams(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters > values)
Builder setFillAdditionalSolutionsInResponse(boolean value)
Builder addAllExtraSubsolvers(java.lang.Iterable< java.lang.String > values)
com.google.ortools.sat.SatParameters buildPartial()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
Builder setFilterSubsolvers(int index, java.lang.String value)
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
com.google.protobuf.ProtocolStringList getExtraSubsolversList()
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
java.util.List<? extends com.google.ortools.sat.SatParametersOrBuilder > getSubsolverParamsOrBuilderList()
Builder setFeasibilityJumpVarPerburbationRangeRatio(double value)
Builder setUseConservativeScaleOverloadChecker(boolean value)
com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
com.google.protobuf.ByteString getExtraSubsolversBytes(int index)
com.google.protobuf.ProtocolStringList getFilterSubsolversList()
Builder addAllIgnoreSubsolvers(java.lang.Iterable< java.lang.String > values)
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
Builder setSubsolverParams(int index, com.google.ortools.sat.SatParameters value)
Builder setSymmetryDetectionDeterministicTimeLimit(double value)
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
Builder setPresolveExtractIntegerEnforcement(boolean value)
Builder setMaxSizeToCreatePrecedenceLiteralsInDisjunctive(int value)
Builder setSubsolvers(int index, java.lang.String value)
Builder setInprocessingMinimizationUseAllOrderings(boolean value)
com.google.ortools.sat.SatParameters.Builder getSubsolverParamsBuilder(int index)
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
com.google.protobuf.ByteString getFilterSubsolversBytes(int index)
com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
com.google.protobuf.ByteString getIgnoreSubsolversBytes(int index)
static final int FILL_ADDITIONAL_SOLUTIONS_IN_RESPONSE_FIELD_NUMBER
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
static final int USE_DUAL_SCHEDULING_HEURISTICS_FIELD_NUMBER
static final int ROUTING_CUT_SUBSET_SIZE_FOR_BINARY_RELATION_BOUND_FIELD_NUMBER
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
com.google.protobuf.ProtocolStringList getSubsolversList()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
static final int USE_HARD_PRECEDENCES_IN_CUMULATIVE_FIELD_NUMBER
static final int MIP_TREAT_HIGH_MAGNITUDE_BOUNDS_AS_INFINITY_FIELD_NUMBER
static final int PRESOLVE_INCLUSION_WORK_LIMIT_FIELD_NUMBER
static final int USE_VARIABLES_SHAVING_SEARCH_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding()
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
com.google.ortools.sat.SatParameters getSubsolverParams(int index)
static final int FIX_VARIABLES_TO_THEIR_HINTED_VALUE_FIELD_NUMBER
static final int SHARED_TREE_SPLIT_STRATEGY_FIELD_NUMBER
static final int AT_MOST_ONE_MAX_EXPANSION_SIZE_FIELD_NUMBER
static final int USE_TRY_EDGE_REASONING_IN_NO_OVERLAP_2D_FIELD_NUMBER
static final int USE_ALL_DIFFERENT_FOR_CIRCUIT_FIELD_NUMBER
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
static final int MAX_NUM_DETERMINISTIC_BATCHES_FIELD_NUMBER
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static final int DEBUG_MAX_NUM_PRESOLVE_OPERATIONS_FIELD_NUMBER
static final int SHARED_TREE_WORKER_MIN_RESTARTS_PER_SUBTREE_FIELD_NUMBER
java.util.List<? extends com.google.ortools.sat.SatParametersOrBuilder > getSubsolverParamsOrBuilderList()
static final int EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER
static final int SHAVING_SEARCH_THRESHOLD_FIELD_NUMBER
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_FIELD_NUMBER
static final int REMOVE_FIXED_VARIABLES_EARLY_FIELD_NUMBER
com.google.protobuf.ByteString getFilterSubsolversBytes(int index)
static final int ENCODE_CUMULATIVE_AS_RESERVOIR_FIELD_NUMBER
static final int USE_ENERGETIC_REASONING_IN_NO_OVERLAP_2D_FIELD_NUMBER
static final int EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER
com.google.protobuf.ByteString getExtraSubsolversBytes(int index)
static final int PERMUTE_PRESOLVE_CONSTRAINT_ORDER_FIELD_NUMBER
static final int KEEP_ALL_FEASIBLE_SOLUTIONS_IN_PRESOLVE_FIELD_NUMBER
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
static final int MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER
static final int MIP_AUTOMATICALLY_SCALE_VARIABLES_FIELD_NUMBER
static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER
com.google.ortools.sat.SatParametersOrBuilder getSubsolverParamsOrBuilder(int index)
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
com.google.protobuf.ByteString getLogPrefixBytes()
static final int MINIMIZE_SHARED_CLAUSES_FIELD_NUMBER
static final int USE_OBJECTIVE_LB_SEARCH_FIELD_NUMBER
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
com.google.protobuf.Parser< SatParameters > getParserForType()
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy getSharedTreeSplitStrategy()
static final int SHARED_TREE_OPEN_LEAVES_PER_WORKER_FIELD_NUMBER
static final int USE_OBJECTIVE_SHAVING_SEARCH_FIELD_NUMBER
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int POLARITY_REPHASE_INCREMENT_FIELD_NUMBER
static com.google.protobuf.Parser< SatParameters > parser()
static final int PRESOLVE_EXTRACT_INTEGER_ENFORCEMENT_FIELD_NUMBER
static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER
static final int INPROCESSING_DTIME_RATIO_FIELD_NUMBER
static final int USE_DYNAMIC_PRECEDENCE_IN_CUMULATIVE_FIELD_NUMBER
static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER
static final int FEASIBILITY_JUMP_MAX_EXPANDED_CONSTRAINT_SIZE_FIELD_NUMBER
static final int CORE_MINIMIZATION_LEVEL_FIELD_NUMBER
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int OPTIMIZE_WITH_LB_TREE_SEARCH_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
com.google.protobuf.ByteString getNameBytes()
static final int VIOLATION_LS_COMPOUND_MOVE_PROBABILITY_FIELD_NUMBER
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
static final int MAX_NUM_INTERVALS_FOR_TIMETABLE_EDGE_FINDING_FIELD_NUMBER
static final int USE_SHAVING_IN_PROBING_SEARCH_FIELD_NUMBER
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
static final int MAX_PAIRS_PAIRWISE_REASONING_IN_NO_OVERLAP_2D_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
java.util.List< com.google.ortools.sat.SatParameters > getSubsolverParamsList()
static final int DEBUG_POSTSOLVE_WITH_FULL_SOLVER_FIELD_NUMBER
static final int DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER
static final int FEASIBILITY_JUMP_ENABLE_RESTARTS_FIELD_NUMBER
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
static final int EXPLOIT_ALL_PRECEDENCES_FIELD_NUMBER
static final int INPROCESSING_MINIMIZATION_USE_ALL_ORDERINGS_FIELD_NUMBER
static final int INPROCESSING_MINIMIZATION_USE_CONFLICT_ANALYSIS_FIELD_NUMBER
static final int USE_CONSERVATIVE_SCALE_OVERLOAD_CHECKER_FIELD_NUMBER
static final int VIOLATION_LS_PERTURBATION_PERIOD_FIELD_NUMBER
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
void writeTo(com.google.protobuf.CodedOutputStream output)
java.lang.String getIgnoreSubsolvers(int index)
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
static final int ROUTING_CUT_SUBSET_SIZE_FOR_TIGHT_BINARY_RELATION_BOUND_FIELD_NUMBER
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
static final int PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER
static final int FIND_BIG_LINEAR_OVERLAP_FIELD_NUMBER
static final int STOP_AFTER_ROOT_PROPAGATION_FIELD_NUMBER
static final int KEEP_SYMMETRY_IN_PRESOLVE_FIELD_NUMBER
static final int FEASIBILITY_JUMP_RESTART_FACTOR_FIELD_NUMBER
com.google.protobuf.ProtocolStringList getFilterSubsolversList()
static final int LB_RELAX_NUM_WORKERS_THRESHOLD_FIELD_NUMBER
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
static final int USE_AREA_ENERGETIC_REASONING_IN_NO_OVERLAP_2D_FIELD_NUMBER
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static com.google.ortools.sat.SatParameters getDefaultInstance()
static final int SHARED_TREE_MAX_NODES_PER_WORKER_FIELD_NUMBER
java.lang.String getSubsolvers(int index)
static final int EXPAND_RESERVOIR_USING_CIRCUIT_FIELD_NUMBER
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
static final int INPROCESSING_PROBING_DTIME_FIELD_NUMBER
static final int MAX_SIZE_TO_CREATE_PRECEDENCE_LITERALS_IN_DISJUNCTIVE_FIELD_NUMBER
com.google.protobuf.ByteString getSubsolversBytes(int index)
static final int SHARED_TREE_WORKER_ENABLE_TRAIL_SHARING_FIELD_NUMBER
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
static final int SHAVING_SEARCH_DETERMINISTIC_TIME_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean equals(final java.lang.Object obj)
static final int FEASIBILITY_JUMP_VAR_RANDOMIZATION_PROBABILITY_FIELD_NUMBER
static final int MAX_DOMAIN_SIZE_WHEN_ENCODING_EQ_NEQ_CONSTRAINTS_FIELD_NUMBER
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
static final int PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
static final int DEBUG_CRASH_ON_BAD_HINT_FIELD_NUMBER
static final int PROPAGATION_LOOP_DETECTION_FACTOR_FIELD_NUMBER
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
static final int SHARED_TREE_NUM_WORKERS_FIELD_NUMBER
static final int SYMMETRY_DETECTION_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
static final int INPROCESSING_MINIMIZATION_DTIME_FIELD_NUMBER
static final int DETECT_LINEARIZED_PRODUCT_FIELD_NUMBER
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
static final int MIP_COMPUTE_TRUE_OBJECTIVE_BOUND_FIELD_NUMBER
static final int MAX_LIN_MAX_SIZE_FOR_EXPANSION_FIELD_NUMBER
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static final int CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
com.google.protobuf.ProtocolStringList getExtraSubsolversList()
static final int SHARED_TREE_WORKER_ENABLE_PHASE_SHARING_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent)
static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER
static final int SAVE_LP_BASIS_IN_LB_TREE_SEARCH_FIELD_NUMBER
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
static final int USE_STRONG_PROPAGATION_IN_DISJUNCTIVE_FIELD_NUMBER
static final int FEASIBILITY_JUMP_BATCH_DTIME_FIELD_NUMBER
static final int POLARITY_EXPLOIT_LS_HINTS_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
static final int FEASIBILITY_JUMP_LINEARIZATION_LEVEL_FIELD_NUMBER
static final int DEBUG_CRASH_IF_PRESOLVE_BREAKS_HINT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static final int SHARED_TREE_BALANCE_TOLERANCE_FIELD_NUMBER
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int FEASIBILITY_JUMP_VAR_PERBURBATION_RANGE_RATIO_FIELD_NUMBER
static final int LOG_SUBSOLVER_STATISTICS_FIELD_NUMBER
static final int USE_TIMETABLING_IN_NO_OVERLAP_2D_FIELD_NUMBER
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
static final int LNS_INITIAL_DETERMINISTIC_LIMIT_FIELD_NUMBER
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
static final int EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.protobuf.ProtocolStringList getIgnoreSubsolversList()
java.lang.String getExtraSubsolvers(int index)
static final int TABLE_COMPRESSION_LEVEL_FIELD_NUMBER
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
static final int SEARCH_RANDOM_VARIABLE_POOL_SIZE_FIELD_NUMBER
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
java.lang.String getFilterSubsolvers(int index)
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
static final int USE_DYNAMIC_PRECEDENCE_IN_DISJUNCTIVE_FIELD_NUMBER
static final int PROBING_NUM_COMBINATIONS_LIMIT_FIELD_NUMBER
static final int MAXIMUM_REGIONS_TO_SPLIT_IN_DISCONNECTED_NO_OVERLAP_2D_FIELD_NUMBER
static final int ENCODE_COMPLEX_LINEAR_CONSTRAINT_WITH_INTEGER_FIELD_NUMBER
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_FIELD_NUMBER
static final int PUSH_ALL_TASKS_TOWARD_START_FIELD_NUMBER
static BinaryMinizationAlgorithm valueOf(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static BinaryMinizationAlgorithm forNumber(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static ConflictMinimizationAlgorithm forNumber(int value)
static ConflictMinimizationAlgorithm valueOf(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static FPRoundingMethod valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< FPRoundingMethod > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
static MaxSatStratificationAlgorithm forNumber(int value)
static MaxSatStratificationAlgorithm valueOf(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static SharedTreeSplitStrategy valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static SharedTreeSplitStrategy forNumber(int value)
static com.google.protobuf.Internal.EnumLiteMap< SharedTreeSplitStrategy > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()