Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
GlopParameters.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/glop/parameters.proto
4// Protobuf Java Version: 4.31.1
5
6package com.google.ortools.glop;
7
15@com.google.protobuf.Generated
16public final class GlopParameters extends
17 com.google.protobuf.GeneratedMessage implements
18 // @@protoc_insertion_point(message_implements:operations_research.glop.GlopParameters)
20private static final long serialVersionUID = 0L;
21 static {
22 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
23 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
24 /* major= */ 4,
25 /* minor= */ 31,
26 /* patch= */ 1,
27 /* suffix= */ "",
28 GlopParameters.class.getName());
29 }
30 // Use GlopParameters.newBuilder() to construct.
31 private GlopParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
32 super(builder);
33 }
34 private GlopParameters() {
35 scalingMethod_ = 1;
36 feasibilityRule_ = 1;
37 optimizationRule_ = 1;
38 refactorizationThreshold_ = 1e-09D;
39 recomputeReducedCostsThreshold_ = 1e-08D;
40 recomputeEdgesNormThreshold_ = 100D;
41 primalFeasibilityTolerance_ = 1e-08D;
42 dualFeasibilityTolerance_ = 1e-08D;
43 ratioTestZeroThreshold_ = 1e-09D;
44 harrisToleranceRatio_ = 0.5D;
45 smallPivotThreshold_ = 1e-06D;
46 minimumAcceptablePivot_ = 1e-06D;
47 dropTolerance_ = 1e-14D;
48 useScaling_ = true;
49 costScaling_ = 1;
50 initialBasis_ = 2;
51 useTransposedMatrix_ = true;
52 basisRefactorizationPeriod_ = 64;
53 dynamicallyAdjustRefactorizationPeriod_ = true;
54 solveDualProblem_ = 2;
55 dualizerThreshold_ = 1.5D;
56 solutionFeasibilityTolerance_ = 1e-06D;
57 provideStrongOptimalGuarantee_ = true;
58 changeStatusToImprecise_ = true;
59 maxNumberOfReoptimizations_ = 40D;
60 luFactorizationPivotThreshold_ = 0.01D;
61 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
62 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
63 maxNumberOfIterations_ = -1L;
64 markowitzZlatevParameter_ = 3;
65 markowitzSingularityThreshold_ = 1e-15D;
66 devexWeightsResetPeriod_ = 150;
67 usePreprocessing_ = true;
68 useMiddleProductFormUpdate_ = true;
69 initializeDevexWithColumnNorms_ = true;
70 exploitSingletonColumnInInitialBasis_ = true;
71 dualSmallPivotThreshold_ = 0.0001D;
72 preprocessorZeroTolerance_ = 1e-09D;
73 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
74 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
75 degenerateMinistepFactor_ = 0.01D;
76 randomSeed_ = 1;
77 numOmpThreads_ = 1;
78 useDedicatedDualFeasibilityAlgorithm_ = true;
79 relativeCostPerturbation_ = 1e-05D;
80 relativeMaxCostPerturbation_ = 1e-07D;
81 initialConditionNumberThreshold_ = 1e+50D;
82 logToStdout_ = true;
83 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
84 pushToVertex_ = true;
85 useImpliedFreePreprocessor_ = true;
86 maxValidMagnitude_ = 1e+30D;
87 dropMagnitude_ = 1e-30D;
88 }
89
90 public static final com.google.protobuf.Descriptors.Descriptor
92 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
93 }
94
95 @java.lang.Override
96 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
98 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_fieldAccessorTable
99 .ensureFieldAccessorsInitialized(
100 com.google.ortools.glop.GlopParameters.class, com.google.ortools.glop.GlopParameters.Builder.class);
101 }
102
114 public enum ScalingAlgorithm
115 implements com.google.protobuf.ProtocolMessageEnum {
128 ;
129
130 static {
131 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
132 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
133 /* major= */ 4,
134 /* minor= */ 31,
135 /* patch= */ 1,
136 /* suffix= */ "",
137 ScalingAlgorithm.class.getName());
138 }
142 public static final int DEFAULT_VALUE = 0;
146 public static final int EQUILIBRATION_VALUE = 1;
150 public static final int LINEAR_PROGRAM_VALUE = 2;
151
152
153 public final int getNumber() {
154 return value;
155 }
156
162 @java.lang.Deprecated
163 public static ScalingAlgorithm valueOf(int value) {
164 return forNumber(value);
165 }
166
171 public static ScalingAlgorithm forNumber(int value) {
172 switch (value) {
173 case 0: return DEFAULT;
174 case 1: return EQUILIBRATION;
175 case 2: return LINEAR_PROGRAM;
176 default: return null;
177 }
178 }
179
180 public static com.google.protobuf.Internal.EnumLiteMap<ScalingAlgorithm>
182 return internalValueMap;
183 }
184 private static final com.google.protobuf.Internal.EnumLiteMap<
185 ScalingAlgorithm> internalValueMap =
186 new com.google.protobuf.Internal.EnumLiteMap<ScalingAlgorithm>() {
187 public ScalingAlgorithm findValueByNumber(int number) {
188 return ScalingAlgorithm.forNumber(number);
189 }
190 };
191
192 public final com.google.protobuf.Descriptors.EnumValueDescriptor
194 return getDescriptor().getValues().get(ordinal());
195 }
196 public final com.google.protobuf.Descriptors.EnumDescriptor
198 return getDescriptor();
199 }
200 public static com.google.protobuf.Descriptors.EnumDescriptor
202 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(0);
203 }
204
205 private static final ScalingAlgorithm[] VALUES = values();
206
207 public static ScalingAlgorithm valueOf(
208 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
209 if (desc.getType() != getDescriptor()) {
210 throw new java.lang.IllegalArgumentException(
211 "EnumValueDescriptor is not for this type.");
212 }
213 return VALUES[desc.getIndex()];
214 }
215
216 private final int value;
217
218 private ScalingAlgorithm(int value) {
219 this.value = value;
220 }
221
222 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.ScalingAlgorithm)
223 }
224
233 public enum SolverBehavior
234 implements com.google.protobuf.ProtocolMessageEnum {
247 ;
248
249 static {
250 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
251 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
252 /* major= */ 4,
253 /* minor= */ 31,
254 /* patch= */ 1,
255 /* suffix= */ "",
256 SolverBehavior.class.getName());
257 }
261 public static final int ALWAYS_DO_VALUE = 0;
265 public static final int NEVER_DO_VALUE = 1;
269 public static final int LET_SOLVER_DECIDE_VALUE = 2;
270
271
272 public final int getNumber() {
273 return value;
274 }
275
281 @java.lang.Deprecated
282 public static SolverBehavior valueOf(int value) {
283 return forNumber(value);
284 }
285
290 public static SolverBehavior forNumber(int value) {
291 switch (value) {
292 case 0: return ALWAYS_DO;
293 case 1: return NEVER_DO;
294 case 2: return LET_SOLVER_DECIDE;
295 default: return null;
296 }
297 }
298
299 public static com.google.protobuf.Internal.EnumLiteMap<SolverBehavior>
301 return internalValueMap;
302 }
303 private static final com.google.protobuf.Internal.EnumLiteMap<
304 SolverBehavior> internalValueMap =
305 new com.google.protobuf.Internal.EnumLiteMap<SolverBehavior>() {
306 public SolverBehavior findValueByNumber(int number) {
307 return SolverBehavior.forNumber(number);
308 }
309 };
310
311 public final com.google.protobuf.Descriptors.EnumValueDescriptor
313 return getDescriptor().getValues().get(ordinal());
314 }
315 public final com.google.protobuf.Descriptors.EnumDescriptor
317 return getDescriptor();
318 }
319 public static com.google.protobuf.Descriptors.EnumDescriptor
321 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(1);
322 }
323
324 private static final SolverBehavior[] VALUES = values();
325
326 public static SolverBehavior valueOf(
327 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
328 if (desc.getType() != getDescriptor()) {
329 throw new java.lang.IllegalArgumentException(
330 "EnumValueDescriptor is not for this type.");
331 }
332 return VALUES[desc.getIndex()];
333 }
334
335 private final int value;
336
337 private SolverBehavior(int value) {
338 this.value = value;
339 }
340
341 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.SolverBehavior)
342 }
343
351 public enum PricingRule
352 implements com.google.protobuf.ProtocolMessageEnum {
385 ;
386
387 static {
388 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
389 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
390 /* major= */ 4,
391 /* minor= */ 31,
392 /* patch= */ 1,
393 /* suffix= */ "",
394 PricingRule.class.getName());
395 }
408 public static final int DANTZIG_VALUE = 0;
418 public static final int STEEPEST_EDGE_VALUE = 1;
427 public static final int DEVEX_VALUE = 2;
428
429
430 public final int getNumber() {
431 return value;
432 }
433
439 @java.lang.Deprecated
440 public static PricingRule valueOf(int value) {
441 return forNumber(value);
442 }
443
448 public static PricingRule forNumber(int value) {
449 switch (value) {
450 case 0: return DANTZIG;
451 case 1: return STEEPEST_EDGE;
452 case 2: return DEVEX;
453 default: return null;
454 }
455 }
456
457 public static com.google.protobuf.Internal.EnumLiteMap<PricingRule>
459 return internalValueMap;
460 }
461 private static final com.google.protobuf.Internal.EnumLiteMap<
462 PricingRule> internalValueMap =
463 new com.google.protobuf.Internal.EnumLiteMap<PricingRule>() {
464 public PricingRule findValueByNumber(int number) {
465 return PricingRule.forNumber(number);
466 }
467 };
468
469 public final com.google.protobuf.Descriptors.EnumValueDescriptor
471 return getDescriptor().getValues().get(ordinal());
472 }
473 public final com.google.protobuf.Descriptors.EnumDescriptor
475 return getDescriptor();
476 }
477 public static com.google.protobuf.Descriptors.EnumDescriptor
479 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(2);
480 }
481
482 private static final PricingRule[] VALUES = values();
483
484 public static PricingRule valueOf(
485 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
486 if (desc.getType() != getDescriptor()) {
487 throw new java.lang.IllegalArgumentException(
488 "EnumValueDescriptor is not for this type.");
489 }
490 return VALUES[desc.getIndex()];
491 }
492
493 private final int value;
494
495 private PricingRule(int value) {
496 this.value = value;
497 }
498
499 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.PricingRule)
500 }
501
510 public enum InitialBasisHeuristic
511 implements com.google.protobuf.ProtocolMessageEnum {
555 ;
556
557 static {
558 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
559 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
560 /* major= */ 4,
561 /* minor= */ 31,
562 /* patch= */ 1,
563 /* suffix= */ "",
564 InitialBasisHeuristic.class.getName());
565 }
573 public static final int NONE_VALUE = 0;
586 public static final int BIXBY_VALUE = 1;
598 public static final int TRIANGULAR_VALUE = 2;
608 public static final int MAROS_VALUE = 3;
609
610
611 public final int getNumber() {
612 return value;
613 }
614
620 @java.lang.Deprecated
621 public static InitialBasisHeuristic valueOf(int value) {
622 return forNumber(value);
623 }
624
629 public static InitialBasisHeuristic forNumber(int value) {
630 switch (value) {
631 case 0: return NONE;
632 case 1: return BIXBY;
633 case 2: return TRIANGULAR;
634 case 3: return MAROS;
635 default: return null;
636 }
637 }
638
639 public static com.google.protobuf.Internal.EnumLiteMap<InitialBasisHeuristic>
641 return internalValueMap;
642 }
643 private static final com.google.protobuf.Internal.EnumLiteMap<
644 InitialBasisHeuristic> internalValueMap =
645 new com.google.protobuf.Internal.EnumLiteMap<InitialBasisHeuristic>() {
646 public InitialBasisHeuristic findValueByNumber(int number) {
647 return InitialBasisHeuristic.forNumber(number);
648 }
649 };
650
651 public final com.google.protobuf.Descriptors.EnumValueDescriptor
653 return getDescriptor().getValues().get(ordinal());
654 }
655 public final com.google.protobuf.Descriptors.EnumDescriptor
657 return getDescriptor();
658 }
659 public static com.google.protobuf.Descriptors.EnumDescriptor
661 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(3);
662 }
663
664 private static final InitialBasisHeuristic[] VALUES = values();
665
666 public static InitialBasisHeuristic valueOf(
667 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
668 if (desc.getType() != getDescriptor()) {
669 throw new java.lang.IllegalArgumentException(
670 "EnumValueDescriptor is not for this type.");
671 }
672 return VALUES[desc.getIndex()];
673 }
674
675 private final int value;
676
677 private InitialBasisHeuristic(int value) {
678 this.value = value;
679 }
680
681 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.InitialBasisHeuristic)
682 }
683
695 public enum CostScalingAlgorithm
696 implements com.google.protobuf.ProtocolMessageEnum {
731 ;
732
733 static {
734 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
735 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
736 /* major= */ 4,
737 /* minor= */ 31,
738 /* patch= */ 1,
739 /* suffix= */ "",
740 CostScalingAlgorithm.class.getName());
741 }
749 public static final int NO_COST_SCALING_VALUE = 0;
759 public static final int CONTAIN_ONE_COST_SCALING_VALUE = 1;
767 public static final int MEAN_COST_SCALING_VALUE = 2;
775 public static final int MEDIAN_COST_SCALING_VALUE = 3;
776
777
778 public final int getNumber() {
779 return value;
780 }
781
787 @java.lang.Deprecated
788 public static CostScalingAlgorithm valueOf(int value) {
789 return forNumber(value);
790 }
791
796 public static CostScalingAlgorithm forNumber(int value) {
797 switch (value) {
798 case 0: return NO_COST_SCALING;
799 case 1: return CONTAIN_ONE_COST_SCALING;
800 case 2: return MEAN_COST_SCALING;
801 case 3: return MEDIAN_COST_SCALING;
802 default: return null;
803 }
804 }
805
806 public static com.google.protobuf.Internal.EnumLiteMap<CostScalingAlgorithm>
808 return internalValueMap;
809 }
810 private static final com.google.protobuf.Internal.EnumLiteMap<
811 CostScalingAlgorithm> internalValueMap =
812 new com.google.protobuf.Internal.EnumLiteMap<CostScalingAlgorithm>() {
813 public CostScalingAlgorithm findValueByNumber(int number) {
814 return CostScalingAlgorithm.forNumber(number);
815 }
816 };
817
818 public final com.google.protobuf.Descriptors.EnumValueDescriptor
820 return getDescriptor().getValues().get(ordinal());
821 }
822 public final com.google.protobuf.Descriptors.EnumDescriptor
824 return getDescriptor();
825 }
826 public static com.google.protobuf.Descriptors.EnumDescriptor
828 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(4);
829 }
830
831 private static final CostScalingAlgorithm[] VALUES = values();
832
833 public static CostScalingAlgorithm valueOf(
834 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
835 if (desc.getType() != getDescriptor()) {
836 throw new java.lang.IllegalArgumentException(
837 "EnumValueDescriptor is not for this type.");
838 }
839 return VALUES[desc.getIndex()];
840 }
841
842 private final int value;
843
844 private CostScalingAlgorithm(int value) {
845 this.value = value;
846 }
847
848 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.CostScalingAlgorithm)
849 }
850
851 private int bitField0_;
852 private int bitField1_;
853 public static final int SCALING_METHOD_FIELD_NUMBER = 57;
854 private int scalingMethod_ = 1;
859 @java.lang.Override public boolean hasScalingMethod() {
860 return ((bitField0_ & 0x00000001) != 0);
861 }
862
867 com.google.ortools.glop.GlopParameters.ScalingAlgorithm result = com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(scalingMethod_);
869 }
870
871 public static final int FEASIBILITY_RULE_FIELD_NUMBER = 1;
872 private int feasibilityRule_ = 1;
881 @java.lang.Override public boolean hasFeasibilityRule() {
882 return ((bitField0_ & 0x00000002) != 0);
883 }
884
893 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(feasibilityRule_);
895 }
896
897 public static final int OPTIMIZATION_RULE_FIELD_NUMBER = 2;
898 private int optimizationRule_ = 1;
907 @java.lang.Override public boolean hasOptimizationRule() {
908 return ((bitField0_ & 0x00000004) != 0);
909 }
910
919 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(optimizationRule_);
921 }
922
923 public static final int REFACTORIZATION_THRESHOLD_FIELD_NUMBER = 6;
924 private double refactorizationThreshold_ = 1e-09D;
938 @java.lang.Override
940 return ((bitField0_ & 0x00000008) != 0);
941 }
942
955 @java.lang.Override
957 return refactorizationThreshold_;
958 }
959
961 private double recomputeReducedCostsThreshold_ = 1e-08D;
974 @java.lang.Override
976 return ((bitField0_ & 0x00000010) != 0);
977 }
978
990 @java.lang.Override
992 return recomputeReducedCostsThreshold_;
993 }
994
996 private double recomputeEdgesNormThreshold_ = 100D;
1009 @java.lang.Override
1011 return ((bitField0_ & 0x00000020) != 0);
1012 }
1013
1025 @java.lang.Override
1027 return recomputeEdgesNormThreshold_;
1028 }
1029
1030 public static final int PRIMAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER = 10;
1031 private double primalFeasibilityTolerance_ = 1e-08D;
1046 @java.lang.Override
1048 return ((bitField0_ & 0x00000040) != 0);
1049 }
1050
1064 @java.lang.Override
1066 return primalFeasibilityTolerance_;
1067 }
1068
1069 public static final int DUAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER = 11;
1070 private double dualFeasibilityTolerance_ = 1e-08D;
1088 @java.lang.Override
1090 return ((bitField0_ & 0x00000080) != 0);
1091 }
1092
1109 @java.lang.Override
1111 return dualFeasibilityTolerance_;
1112 }
1113
1114 public static final int RATIO_TEST_ZERO_THRESHOLD_FIELD_NUMBER = 12;
1115 private double ratioTestZeroThreshold_ = 1e-09D;
1130 @java.lang.Override
1131 public boolean hasRatioTestZeroThreshold() {
1132 return ((bitField0_ & 0x00000100) != 0);
1133 }
1134
1148 @java.lang.Override
1150 return ratioTestZeroThreshold_;
1151 }
1152
1153 public static final int HARRIS_TOLERANCE_RATIO_FIELD_NUMBER = 13;
1154 private double harrisToleranceRatio_ = 0.5D;
1173 @java.lang.Override
1174 public boolean hasHarrisToleranceRatio() {
1175 return ((bitField0_ & 0x00000200) != 0);
1176 }
1177
1195 @java.lang.Override
1196 public double getHarrisToleranceRatio() {
1197 return harrisToleranceRatio_;
1198 }
1199
1200 public static final int SMALL_PIVOT_THRESHOLD_FIELD_NUMBER = 14;
1201 private double smallPivotThreshold_ = 1e-06D;
1213 @java.lang.Override
1214 public boolean hasSmallPivotThreshold() {
1215 return ((bitField0_ & 0x00000400) != 0);
1216 }
1217
1228 @java.lang.Override
1229 public double getSmallPivotThreshold() {
1230 return smallPivotThreshold_;
1231 }
1232
1233 public static final int MINIMUM_ACCEPTABLE_PIVOT_FIELD_NUMBER = 15;
1234 private double minimumAcceptablePivot_ = 1e-06D;
1243 @java.lang.Override
1244 public boolean hasMinimumAcceptablePivot() {
1245 return ((bitField0_ & 0x00000800) != 0);
1246 }
1247
1255 @java.lang.Override
1257 return minimumAcceptablePivot_;
1258 }
1259
1260 public static final int DROP_TOLERANCE_FIELD_NUMBER = 52;
1261 private double dropTolerance_ = 1e-14D;
1272 @java.lang.Override
1273 public boolean hasDropTolerance() {
1274 return ((bitField0_ & 0x00001000) != 0);
1275 }
1276
1286 @java.lang.Override
1287 public double getDropTolerance() {
1288 return dropTolerance_;
1289 }
1290
1291 public static final int USE_SCALING_FIELD_NUMBER = 16;
1292 private boolean useScaling_ = true;
1302 @java.lang.Override
1303 public boolean hasUseScaling() {
1304 return ((bitField0_ & 0x00002000) != 0);
1305 }
1306
1315 @java.lang.Override
1316 public boolean getUseScaling() {
1317 return useScaling_;
1318 }
1319
1320 public static final int COST_SCALING_FIELD_NUMBER = 60;
1321 private int costScaling_ = 1;
1326 @java.lang.Override public boolean hasCostScaling() {
1327 return ((bitField0_ & 0x00004000) != 0);
1328 }
1329
1334 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm result = com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(costScaling_);
1336 }
1337
1338 public static final int INITIAL_BASIS_FIELD_NUMBER = 17;
1339 private int initialBasis_ = 2;
1349 @java.lang.Override public boolean hasInitialBasis() {
1350 return ((bitField0_ & 0x00008000) != 0);
1351 }
1352
1362 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic result = com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(initialBasis_);
1364 }
1365
1366 public static final int USE_TRANSPOSED_MATRIX_FIELD_NUMBER = 18;
1367 private boolean useTransposedMatrix_ = true;
1378 @java.lang.Override
1379 public boolean hasUseTransposedMatrix() {
1380 return ((bitField0_ & 0x00010000) != 0);
1381 }
1382
1392 @java.lang.Override
1393 public boolean getUseTransposedMatrix() {
1394 return useTransposedMatrix_;
1395 }
1396
1397 public static final int BASIS_REFACTORIZATION_PERIOD_FIELD_NUMBER = 19;
1398 private int basisRefactorizationPeriod_ = 64;
1409 @java.lang.Override
1411 return ((bitField0_ & 0x00020000) != 0);
1412 }
1413
1423 @java.lang.Override
1425 return basisRefactorizationPeriod_;
1426 }
1427
1429 private boolean dynamicallyAdjustRefactorizationPeriod_ = true;
1442 @java.lang.Override
1444 return ((bitField0_ & 0x00040000) != 0);
1445 }
1446
1458 @java.lang.Override
1460 return dynamicallyAdjustRefactorizationPeriod_;
1461 }
1462
1463 public static final int SOLVE_DUAL_PROBLEM_FIELD_NUMBER = 20;
1464 private int solveDualProblem_ = 2;
1475 @java.lang.Override public boolean hasSolveDualProblem() {
1476 return ((bitField0_ & 0x00080000) != 0);
1477 }
1478
1489 com.google.ortools.glop.GlopParameters.SolverBehavior result = com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(solveDualProblem_);
1491 }
1492
1493 public static final int DUALIZER_THRESHOLD_FIELD_NUMBER = 21;
1494 private double dualizerThreshold_ = 1.5D;
1505 @java.lang.Override
1506 public boolean hasDualizerThreshold() {
1507 return ((bitField0_ & 0x00100000) != 0);
1508 }
1509
1519 @java.lang.Override
1520 public double getDualizerThreshold() {
1521 return dualizerThreshold_;
1522 }
1523
1525 private double solutionFeasibilityTolerance_ = 1e-06D;
1541 @java.lang.Override
1543 return ((bitField0_ & 0x00200000) != 0);
1544 }
1545
1560 @java.lang.Override
1562 return solutionFeasibilityTolerance_;
1563 }
1564
1566 private boolean provideStrongOptimalGuarantee_ = true;
1592 @java.lang.Override
1594 return ((bitField0_ & 0x00400000) != 0);
1595 }
1596
1621 @java.lang.Override
1623 return provideStrongOptimalGuarantee_;
1624 }
1625
1626 public static final int CHANGE_STATUS_TO_IMPRECISE_FIELD_NUMBER = 58;
1627 private boolean changeStatusToImprecise_ = true;
1637 @java.lang.Override
1639 return ((bitField0_ & 0x00800000) != 0);
1640 }
1641
1650 @java.lang.Override
1652 return changeStatusToImprecise_;
1653 }
1654
1656 private double maxNumberOfReoptimizations_ = 40D;
1668 @java.lang.Override
1670 return ((bitField0_ & 0x01000000) != 0);
1671 }
1672
1683 @java.lang.Override
1685 return maxNumberOfReoptimizations_;
1686 }
1687
1689 private double luFactorizationPivotThreshold_ = 0.01D;
1701 @java.lang.Override
1703 return ((bitField0_ & 0x02000000) != 0);
1704 }
1705
1716 @java.lang.Override
1718 return luFactorizationPivotThreshold_;
1719 }
1720
1721 public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 26;
1722 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
1731 @java.lang.Override
1732 public boolean hasMaxTimeInSeconds() {
1733 return ((bitField0_ & 0x04000000) != 0);
1734 }
1735
1743 @java.lang.Override
1744 public double getMaxTimeInSeconds() {
1745 return maxTimeInSeconds_;
1746 }
1747
1748 public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 45;
1749 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
1762 @java.lang.Override
1763 public boolean hasMaxDeterministicTime() {
1764 return ((bitField0_ & 0x08000000) != 0);
1765 }
1766
1778 @java.lang.Override
1779 public double getMaxDeterministicTime() {
1780 return maxDeterministicTime_;
1781 }
1782
1783 public static final int MAX_NUMBER_OF_ITERATIONS_FIELD_NUMBER = 27;
1784 private long maxNumberOfIterations_ = -1L;
1794 @java.lang.Override
1795 public boolean hasMaxNumberOfIterations() {
1796 return ((bitField0_ & 0x10000000) != 0);
1797 }
1798
1807 @java.lang.Override
1809 return maxNumberOfIterations_;
1810 }
1811
1812 public static final int MARKOWITZ_ZLATEV_PARAMETER_FIELD_NUMBER = 29;
1813 private int markowitzZlatevParameter_ = 3;
1823 @java.lang.Override
1825 return ((bitField0_ & 0x20000000) != 0);
1826 }
1827
1836 @java.lang.Override
1838 return markowitzZlatevParameter_;
1839 }
1840
1842 private double markowitzSingularityThreshold_ = 1e-15D;
1854 @java.lang.Override
1856 return ((bitField0_ & 0x40000000) != 0);
1857 }
1858
1869 @java.lang.Override
1871 return markowitzSingularityThreshold_;
1872 }
1873
1874 public static final int USE_DUAL_SIMPLEX_FIELD_NUMBER = 31;
1875 private boolean useDualSimplex_ = false;
1884 @java.lang.Override
1885 public boolean hasUseDualSimplex() {
1886 return ((bitField0_ & 0x80000000) != 0);
1887 }
1888
1896 @java.lang.Override
1897 public boolean getUseDualSimplex() {
1898 return useDualSimplex_;
1899 }
1900
1902 private boolean allowSimplexAlgorithmChange_ = false;
1914 @java.lang.Override
1916 return ((bitField1_ & 0x00000001) != 0);
1917 }
1918
1929 @java.lang.Override
1931 return allowSimplexAlgorithmChange_;
1932 }
1933
1934 public static final int DEVEX_WEIGHTS_RESET_PERIOD_FIELD_NUMBER = 33;
1935 private int devexWeightsResetPeriod_ = 150;
1944 @java.lang.Override
1946 return ((bitField1_ & 0x00000002) != 0);
1947 }
1948
1956 @java.lang.Override
1958 return devexWeightsResetPeriod_;
1959 }
1960
1961 public static final int USE_PREPROCESSING_FIELD_NUMBER = 34;
1962 private boolean usePreprocessing_ = true;
1971 @java.lang.Override
1972 public boolean hasUsePreprocessing() {
1973 return ((bitField1_ & 0x00000004) != 0);
1974 }
1975
1983 @java.lang.Override
1984 public boolean getUsePreprocessing() {
1985 return usePreprocessing_;
1986 }
1987
1989 private boolean useMiddleProductFormUpdate_ = true;
2004 @java.lang.Override
2006 return ((bitField1_ & 0x00000008) != 0);
2007 }
2008
2022 @java.lang.Override
2024 return useMiddleProductFormUpdate_;
2025 }
2026
2028 private boolean initializeDevexWithColumnNorms_ = true;
2038 @java.lang.Override
2040 return ((bitField1_ & 0x00000010) != 0);
2041 }
2042
2051 @java.lang.Override
2053 return initializeDevexWithColumnNorms_;
2054 }
2055
2057 private boolean exploitSingletonColumnInInitialBasis_ = true;
2067 @java.lang.Override
2069 return ((bitField1_ & 0x00000020) != 0);
2070 }
2071
2080 @java.lang.Override
2082 return exploitSingletonColumnInInitialBasis_;
2083 }
2084
2085 public static final int DUAL_SMALL_PIVOT_THRESHOLD_FIELD_NUMBER = 38;
2086 private double dualSmallPivotThreshold_ = 0.0001D;
2097 @java.lang.Override
2099 return ((bitField1_ & 0x00000040) != 0);
2100 }
2101
2111 @java.lang.Override
2113 return dualSmallPivotThreshold_;
2114 }
2115
2116 public static final int PREPROCESSOR_ZERO_TOLERANCE_FIELD_NUMBER = 39;
2117 private double preprocessorZeroTolerance_ = 1e-09D;
2131 @java.lang.Override
2133 return ((bitField1_ & 0x00000080) != 0);
2134 }
2135
2148 @java.lang.Override
2150 return preprocessorZeroTolerance_;
2151 }
2152
2153 public static final int OBJECTIVE_LOWER_LIMIT_FIELD_NUMBER = 40;
2154 private double objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
2171 @java.lang.Override
2172 public boolean hasObjectiveLowerLimit() {
2173 return ((bitField1_ & 0x00000100) != 0);
2174 }
2175
2191 @java.lang.Override
2192 public double getObjectiveLowerLimit() {
2193 return objectiveLowerLimit_;
2194 }
2195
2196 public static final int OBJECTIVE_UPPER_LIMIT_FIELD_NUMBER = 41;
2197 private double objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
2202 @java.lang.Override
2203 public boolean hasObjectiveUpperLimit() {
2204 return ((bitField1_ & 0x00000200) != 0);
2205 }
2206
2210 @java.lang.Override
2211 public double getObjectiveUpperLimit() {
2212 return objectiveUpperLimit_;
2213 }
2214
2215 public static final int DEGENERATE_MINISTEP_FACTOR_FIELD_NUMBER = 42;
2216 private double degenerateMinistepFactor_ = 0.01D;
2242 @java.lang.Override
2244 return ((bitField1_ & 0x00000400) != 0);
2245 }
2246
2271 @java.lang.Override
2273 return degenerateMinistepFactor_;
2274 }
2275
2276 public static final int RANDOM_SEED_FIELD_NUMBER = 43;
2277 private int randomSeed_ = 1;
2300 @java.lang.Override
2301 public boolean hasRandomSeed() {
2302 return ((bitField1_ & 0x00000800) != 0);
2303 }
2304
2326 @java.lang.Override
2327 public int getRandomSeed() {
2328 return randomSeed_;
2329 }
2330
2331 public static final int USE_ABSL_RANDOM_FIELD_NUMBER = 72;
2332 private boolean useAbslRandom_ = false;
2341 @java.lang.Override
2342 public boolean hasUseAbslRandom() {
2343 return ((bitField1_ & 0x00001000) != 0);
2344 }
2345
2353 @java.lang.Override
2354 public boolean getUseAbslRandom() {
2355 return useAbslRandom_;
2356 }
2357
2358 public static final int NUM_OMP_THREADS_FIELD_NUMBER = 44;
2359 private int numOmpThreads_ = 1;
2369 @java.lang.Override
2370 public boolean hasNumOmpThreads() {
2371 return ((bitField1_ & 0x00002000) != 0);
2372 }
2373
2382 @java.lang.Override
2383 public int getNumOmpThreads() {
2384 return numOmpThreads_;
2385 }
2386
2388 private boolean perturbCostsInDualSimplex_ = false;
2400 @java.lang.Override
2402 return ((bitField1_ & 0x00004000) != 0);
2403 }
2404
2415 @java.lang.Override
2417 return perturbCostsInDualSimplex_;
2418 }
2419
2421 private boolean useDedicatedDualFeasibilityAlgorithm_ = true;
2437 @java.lang.Override
2439 return ((bitField1_ & 0x00008000) != 0);
2440 }
2441
2456 @java.lang.Override
2458 return useDedicatedDualFeasibilityAlgorithm_;
2459 }
2460
2461 public static final int RELATIVE_COST_PERTURBATION_FIELD_NUMBER = 54;
2462 private double relativeCostPerturbation_ = 1e-05D;
2474 @java.lang.Override
2476 return ((bitField1_ & 0x00010000) != 0);
2477 }
2478
2489 @java.lang.Override
2491 return relativeCostPerturbation_;
2492 }
2493
2495 private double relativeMaxCostPerturbation_ = 1e-07D;
2500 @java.lang.Override
2502 return ((bitField1_ & 0x00020000) != 0);
2503 }
2504
2508 @java.lang.Override
2510 return relativeMaxCostPerturbation_;
2511 }
2512
2514 private double initialConditionNumberThreshold_ = 1e+50D;
2525 @java.lang.Override
2527 return ((bitField1_ & 0x00040000) != 0);
2528 }
2529
2539 @java.lang.Override
2541 return initialConditionNumberThreshold_;
2542 }
2543
2544 public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 61;
2545 private boolean logSearchProgress_ = false;
2556 @java.lang.Override
2557 public boolean hasLogSearchProgress() {
2558 return ((bitField1_ & 0x00080000) != 0);
2559 }
2560
2570 @java.lang.Override
2571 public boolean getLogSearchProgress() {
2572 return logSearchProgress_;
2573 }
2574
2575 public static final int LOG_TO_STDOUT_FIELD_NUMBER = 66;
2576 private boolean logToStdout_ = true;
2585 @java.lang.Override
2586 public boolean hasLogToStdout() {
2587 return ((bitField1_ & 0x00100000) != 0);
2588 }
2589
2597 @java.lang.Override
2598 public boolean getLogToStdout() {
2599 return logToStdout_;
2600 }
2601
2603 private double crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
2626 @java.lang.Override
2628 return ((bitField1_ & 0x00200000) != 0);
2629 }
2630
2652 @java.lang.Override
2654 return crossoverBoundSnappingDistance_;
2655 }
2656
2657 public static final int PUSH_TO_VERTEX_FIELD_NUMBER = 65;
2658 private boolean pushToVertex_ = true;
2672 @java.lang.Override
2673 public boolean hasPushToVertex() {
2674 return ((bitField1_ & 0x00400000) != 0);
2675 }
2676
2689 @java.lang.Override
2690 public boolean getPushToVertex() {
2691 return pushToVertex_;
2692 }
2693
2695 private boolean useImpliedFreePreprocessor_ = true;
2704 @java.lang.Override
2706 return ((bitField1_ & 0x00800000) != 0);
2707 }
2708
2716 @java.lang.Override
2718 return useImpliedFreePreprocessor_;
2719 }
2720
2721 public static final int MAX_VALID_MAGNITUDE_FIELD_NUMBER = 70;
2722 private double maxValidMagnitude_ = 1e+30D;
2736 @java.lang.Override
2737 public boolean hasMaxValidMagnitude() {
2738 return ((bitField1_ & 0x01000000) != 0);
2739 }
2740
2753 @java.lang.Override
2754 public double getMaxValidMagnitude() {
2755 return maxValidMagnitude_;
2756 }
2757
2758 public static final int DROP_MAGNITUDE_FIELD_NUMBER = 71;
2759 private double dropMagnitude_ = 1e-30D;
2771 @java.lang.Override
2772 public boolean hasDropMagnitude() {
2773 return ((bitField1_ & 0x02000000) != 0);
2774 }
2775
2786 @java.lang.Override
2787 public double getDropMagnitude() {
2788 return dropMagnitude_;
2789 }
2790
2791 public static final int DUAL_PRICE_PRIORITIZE_NORM_FIELD_NUMBER = 69;
2792 private boolean dualPricePrioritizeNorm_ = false;
2802 @java.lang.Override
2804 return ((bitField1_ & 0x04000000) != 0);
2805 }
2806
2815 @java.lang.Override
2817 return dualPricePrioritizeNorm_;
2818 }
2819
2820 private byte memoizedIsInitialized = -1;
2821 @java.lang.Override
2822 public final boolean isInitialized() {
2823 byte isInitialized = memoizedIsInitialized;
2824 if (isInitialized == 1) return true;
2825 if (isInitialized == 0) return false;
2826
2827 memoizedIsInitialized = 1;
2828 return true;
2829 }
2830
2831 @java.lang.Override
2832 public void writeTo(com.google.protobuf.CodedOutputStream output)
2833 throws java.io.IOException {
2834 if (((bitField0_ & 0x00000002) != 0)) {
2835 output.writeEnum(1, feasibilityRule_);
2836 }
2837 if (((bitField0_ & 0x00000004) != 0)) {
2838 output.writeEnum(2, optimizationRule_);
2839 }
2840 if (((bitField0_ & 0x00000008) != 0)) {
2841 output.writeDouble(6, refactorizationThreshold_);
2842 }
2843 if (((bitField0_ & 0x00000010) != 0)) {
2844 output.writeDouble(8, recomputeReducedCostsThreshold_);
2845 }
2846 if (((bitField0_ & 0x00000020) != 0)) {
2847 output.writeDouble(9, recomputeEdgesNormThreshold_);
2848 }
2849 if (((bitField0_ & 0x00000040) != 0)) {
2850 output.writeDouble(10, primalFeasibilityTolerance_);
2851 }
2852 if (((bitField0_ & 0x00000080) != 0)) {
2853 output.writeDouble(11, dualFeasibilityTolerance_);
2854 }
2855 if (((bitField0_ & 0x00000100) != 0)) {
2856 output.writeDouble(12, ratioTestZeroThreshold_);
2857 }
2858 if (((bitField0_ & 0x00000200) != 0)) {
2859 output.writeDouble(13, harrisToleranceRatio_);
2860 }
2861 if (((bitField0_ & 0x00000400) != 0)) {
2862 output.writeDouble(14, smallPivotThreshold_);
2863 }
2864 if (((bitField0_ & 0x00000800) != 0)) {
2865 output.writeDouble(15, minimumAcceptablePivot_);
2866 }
2867 if (((bitField0_ & 0x00002000) != 0)) {
2868 output.writeBool(16, useScaling_);
2869 }
2870 if (((bitField0_ & 0x00008000) != 0)) {
2871 output.writeEnum(17, initialBasis_);
2872 }
2873 if (((bitField0_ & 0x00010000) != 0)) {
2874 output.writeBool(18, useTransposedMatrix_);
2875 }
2876 if (((bitField0_ & 0x00020000) != 0)) {
2877 output.writeInt32(19, basisRefactorizationPeriod_);
2878 }
2879 if (((bitField0_ & 0x00080000) != 0)) {
2880 output.writeEnum(20, solveDualProblem_);
2881 }
2882 if (((bitField0_ & 0x00100000) != 0)) {
2883 output.writeDouble(21, dualizerThreshold_);
2884 }
2885 if (((bitField0_ & 0x00200000) != 0)) {
2886 output.writeDouble(22, solutionFeasibilityTolerance_);
2887 }
2888 if (((bitField0_ & 0x00400000) != 0)) {
2889 output.writeBool(24, provideStrongOptimalGuarantee_);
2890 }
2891 if (((bitField0_ & 0x02000000) != 0)) {
2892 output.writeDouble(25, luFactorizationPivotThreshold_);
2893 }
2894 if (((bitField0_ & 0x04000000) != 0)) {
2895 output.writeDouble(26, maxTimeInSeconds_);
2896 }
2897 if (((bitField0_ & 0x10000000) != 0)) {
2898 output.writeInt64(27, maxNumberOfIterations_);
2899 }
2900 if (((bitField0_ & 0x20000000) != 0)) {
2901 output.writeInt32(29, markowitzZlatevParameter_);
2902 }
2903 if (((bitField0_ & 0x40000000) != 0)) {
2904 output.writeDouble(30, markowitzSingularityThreshold_);
2905 }
2906 if (((bitField0_ & 0x80000000) != 0)) {
2907 output.writeBool(31, useDualSimplex_);
2908 }
2909 if (((bitField1_ & 0x00000001) != 0)) {
2910 output.writeBool(32, allowSimplexAlgorithmChange_);
2911 }
2912 if (((bitField1_ & 0x00000002) != 0)) {
2913 output.writeInt32(33, devexWeightsResetPeriod_);
2914 }
2915 if (((bitField1_ & 0x00000004) != 0)) {
2916 output.writeBool(34, usePreprocessing_);
2917 }
2918 if (((bitField1_ & 0x00000008) != 0)) {
2919 output.writeBool(35, useMiddleProductFormUpdate_);
2920 }
2921 if (((bitField1_ & 0x00000010) != 0)) {
2922 output.writeBool(36, initializeDevexWithColumnNorms_);
2923 }
2924 if (((bitField1_ & 0x00000020) != 0)) {
2925 output.writeBool(37, exploitSingletonColumnInInitialBasis_);
2926 }
2927 if (((bitField1_ & 0x00000040) != 0)) {
2928 output.writeDouble(38, dualSmallPivotThreshold_);
2929 }
2930 if (((bitField1_ & 0x00000080) != 0)) {
2931 output.writeDouble(39, preprocessorZeroTolerance_);
2932 }
2933 if (((bitField1_ & 0x00000100) != 0)) {
2934 output.writeDouble(40, objectiveLowerLimit_);
2935 }
2936 if (((bitField1_ & 0x00000200) != 0)) {
2937 output.writeDouble(41, objectiveUpperLimit_);
2938 }
2939 if (((bitField1_ & 0x00000400) != 0)) {
2940 output.writeDouble(42, degenerateMinistepFactor_);
2941 }
2942 if (((bitField1_ & 0x00000800) != 0)) {
2943 output.writeInt32(43, randomSeed_);
2944 }
2945 if (((bitField1_ & 0x00002000) != 0)) {
2946 output.writeInt32(44, numOmpThreads_);
2947 }
2948 if (((bitField0_ & 0x08000000) != 0)) {
2949 output.writeDouble(45, maxDeterministicTime_);
2950 }
2951 if (((bitField0_ & 0x00001000) != 0)) {
2952 output.writeDouble(52, dropTolerance_);
2953 }
2954 if (((bitField1_ & 0x00004000) != 0)) {
2955 output.writeBool(53, perturbCostsInDualSimplex_);
2956 }
2957 if (((bitField1_ & 0x00010000) != 0)) {
2958 output.writeDouble(54, relativeCostPerturbation_);
2959 }
2960 if (((bitField1_ & 0x00020000) != 0)) {
2961 output.writeDouble(55, relativeMaxCostPerturbation_);
2962 }
2963 if (((bitField0_ & 0x01000000) != 0)) {
2964 output.writeDouble(56, maxNumberOfReoptimizations_);
2965 }
2966 if (((bitField0_ & 0x00000001) != 0)) {
2967 output.writeEnum(57, scalingMethod_);
2968 }
2969 if (((bitField0_ & 0x00800000) != 0)) {
2970 output.writeBool(58, changeStatusToImprecise_);
2971 }
2972 if (((bitField1_ & 0x00040000) != 0)) {
2973 output.writeDouble(59, initialConditionNumberThreshold_);
2974 }
2975 if (((bitField0_ & 0x00004000) != 0)) {
2976 output.writeEnum(60, costScaling_);
2977 }
2978 if (((bitField1_ & 0x00080000) != 0)) {
2979 output.writeBool(61, logSearchProgress_);
2980 }
2981 if (((bitField1_ & 0x00008000) != 0)) {
2982 output.writeBool(62, useDedicatedDualFeasibilityAlgorithm_);
2983 }
2984 if (((bitField0_ & 0x00040000) != 0)) {
2985 output.writeBool(63, dynamicallyAdjustRefactorizationPeriod_);
2986 }
2987 if (((bitField1_ & 0x00200000) != 0)) {
2988 output.writeDouble(64, crossoverBoundSnappingDistance_);
2989 }
2990 if (((bitField1_ & 0x00400000) != 0)) {
2991 output.writeBool(65, pushToVertex_);
2992 }
2993 if (((bitField1_ & 0x00100000) != 0)) {
2994 output.writeBool(66, logToStdout_);
2995 }
2996 if (((bitField1_ & 0x00800000) != 0)) {
2997 output.writeBool(67, useImpliedFreePreprocessor_);
2998 }
2999 if (((bitField1_ & 0x04000000) != 0)) {
3000 output.writeBool(69, dualPricePrioritizeNorm_);
3001 }
3002 if (((bitField1_ & 0x01000000) != 0)) {
3003 output.writeDouble(70, maxValidMagnitude_);
3004 }
3005 if (((bitField1_ & 0x02000000) != 0)) {
3006 output.writeDouble(71, dropMagnitude_);
3007 }
3008 if (((bitField1_ & 0x00001000) != 0)) {
3009 output.writeBool(72, useAbslRandom_);
3010 }
3011 getUnknownFields().writeTo(output);
3012 }
3013
3014 @java.lang.Override
3015 public int getSerializedSize() {
3016 int size = memoizedSize;
3017 if (size != -1) return size;
3018
3019 size = 0;
3020 if (((bitField0_ & 0x00000002) != 0)) {
3021 size += com.google.protobuf.CodedOutputStream
3022 .computeEnumSize(1, feasibilityRule_);
3023 }
3024 if (((bitField0_ & 0x00000004) != 0)) {
3025 size += com.google.protobuf.CodedOutputStream
3026 .computeEnumSize(2, optimizationRule_);
3027 }
3028 if (((bitField0_ & 0x00000008) != 0)) {
3029 size += com.google.protobuf.CodedOutputStream
3030 .computeDoubleSize(6, refactorizationThreshold_);
3031 }
3032 if (((bitField0_ & 0x00000010) != 0)) {
3033 size += com.google.protobuf.CodedOutputStream
3034 .computeDoubleSize(8, recomputeReducedCostsThreshold_);
3035 }
3036 if (((bitField0_ & 0x00000020) != 0)) {
3037 size += com.google.protobuf.CodedOutputStream
3038 .computeDoubleSize(9, recomputeEdgesNormThreshold_);
3039 }
3040 if (((bitField0_ & 0x00000040) != 0)) {
3041 size += com.google.protobuf.CodedOutputStream
3042 .computeDoubleSize(10, primalFeasibilityTolerance_);
3043 }
3044 if (((bitField0_ & 0x00000080) != 0)) {
3045 size += com.google.protobuf.CodedOutputStream
3046 .computeDoubleSize(11, dualFeasibilityTolerance_);
3047 }
3048 if (((bitField0_ & 0x00000100) != 0)) {
3049 size += com.google.protobuf.CodedOutputStream
3050 .computeDoubleSize(12, ratioTestZeroThreshold_);
3051 }
3052 if (((bitField0_ & 0x00000200) != 0)) {
3053 size += com.google.protobuf.CodedOutputStream
3054 .computeDoubleSize(13, harrisToleranceRatio_);
3055 }
3056 if (((bitField0_ & 0x00000400) != 0)) {
3057 size += com.google.protobuf.CodedOutputStream
3058 .computeDoubleSize(14, smallPivotThreshold_);
3059 }
3060 if (((bitField0_ & 0x00000800) != 0)) {
3061 size += com.google.protobuf.CodedOutputStream
3062 .computeDoubleSize(15, minimumAcceptablePivot_);
3063 }
3064 if (((bitField0_ & 0x00002000) != 0)) {
3065 size += com.google.protobuf.CodedOutputStream
3066 .computeBoolSize(16, useScaling_);
3067 }
3068 if (((bitField0_ & 0x00008000) != 0)) {
3069 size += com.google.protobuf.CodedOutputStream
3070 .computeEnumSize(17, initialBasis_);
3071 }
3072 if (((bitField0_ & 0x00010000) != 0)) {
3073 size += com.google.protobuf.CodedOutputStream
3074 .computeBoolSize(18, useTransposedMatrix_);
3075 }
3076 if (((bitField0_ & 0x00020000) != 0)) {
3077 size += com.google.protobuf.CodedOutputStream
3078 .computeInt32Size(19, basisRefactorizationPeriod_);
3079 }
3080 if (((bitField0_ & 0x00080000) != 0)) {
3081 size += com.google.protobuf.CodedOutputStream
3082 .computeEnumSize(20, solveDualProblem_);
3083 }
3084 if (((bitField0_ & 0x00100000) != 0)) {
3085 size += com.google.protobuf.CodedOutputStream
3086 .computeDoubleSize(21, dualizerThreshold_);
3087 }
3088 if (((bitField0_ & 0x00200000) != 0)) {
3089 size += com.google.protobuf.CodedOutputStream
3090 .computeDoubleSize(22, solutionFeasibilityTolerance_);
3091 }
3092 if (((bitField0_ & 0x00400000) != 0)) {
3093 size += com.google.protobuf.CodedOutputStream
3094 .computeBoolSize(24, provideStrongOptimalGuarantee_);
3095 }
3096 if (((bitField0_ & 0x02000000) != 0)) {
3097 size += com.google.protobuf.CodedOutputStream
3098 .computeDoubleSize(25, luFactorizationPivotThreshold_);
3099 }
3100 if (((bitField0_ & 0x04000000) != 0)) {
3101 size += com.google.protobuf.CodedOutputStream
3102 .computeDoubleSize(26, maxTimeInSeconds_);
3103 }
3104 if (((bitField0_ & 0x10000000) != 0)) {
3105 size += com.google.protobuf.CodedOutputStream
3106 .computeInt64Size(27, maxNumberOfIterations_);
3107 }
3108 if (((bitField0_ & 0x20000000) != 0)) {
3109 size += com.google.protobuf.CodedOutputStream
3110 .computeInt32Size(29, markowitzZlatevParameter_);
3111 }
3112 if (((bitField0_ & 0x40000000) != 0)) {
3113 size += com.google.protobuf.CodedOutputStream
3114 .computeDoubleSize(30, markowitzSingularityThreshold_);
3115 }
3116 if (((bitField0_ & 0x80000000) != 0)) {
3117 size += com.google.protobuf.CodedOutputStream
3118 .computeBoolSize(31, useDualSimplex_);
3119 }
3120 if (((bitField1_ & 0x00000001) != 0)) {
3121 size += com.google.protobuf.CodedOutputStream
3122 .computeBoolSize(32, allowSimplexAlgorithmChange_);
3123 }
3124 if (((bitField1_ & 0x00000002) != 0)) {
3125 size += com.google.protobuf.CodedOutputStream
3126 .computeInt32Size(33, devexWeightsResetPeriod_);
3127 }
3128 if (((bitField1_ & 0x00000004) != 0)) {
3129 size += com.google.protobuf.CodedOutputStream
3130 .computeBoolSize(34, usePreprocessing_);
3131 }
3132 if (((bitField1_ & 0x00000008) != 0)) {
3133 size += com.google.protobuf.CodedOutputStream
3134 .computeBoolSize(35, useMiddleProductFormUpdate_);
3135 }
3136 if (((bitField1_ & 0x00000010) != 0)) {
3137 size += com.google.protobuf.CodedOutputStream
3138 .computeBoolSize(36, initializeDevexWithColumnNorms_);
3139 }
3140 if (((bitField1_ & 0x00000020) != 0)) {
3141 size += com.google.protobuf.CodedOutputStream
3142 .computeBoolSize(37, exploitSingletonColumnInInitialBasis_);
3143 }
3144 if (((bitField1_ & 0x00000040) != 0)) {
3145 size += com.google.protobuf.CodedOutputStream
3146 .computeDoubleSize(38, dualSmallPivotThreshold_);
3147 }
3148 if (((bitField1_ & 0x00000080) != 0)) {
3149 size += com.google.protobuf.CodedOutputStream
3150 .computeDoubleSize(39, preprocessorZeroTolerance_);
3151 }
3152 if (((bitField1_ & 0x00000100) != 0)) {
3153 size += com.google.protobuf.CodedOutputStream
3154 .computeDoubleSize(40, objectiveLowerLimit_);
3155 }
3156 if (((bitField1_ & 0x00000200) != 0)) {
3157 size += com.google.protobuf.CodedOutputStream
3158 .computeDoubleSize(41, objectiveUpperLimit_);
3159 }
3160 if (((bitField1_ & 0x00000400) != 0)) {
3161 size += com.google.protobuf.CodedOutputStream
3162 .computeDoubleSize(42, degenerateMinistepFactor_);
3163 }
3164 if (((bitField1_ & 0x00000800) != 0)) {
3165 size += com.google.protobuf.CodedOutputStream
3166 .computeInt32Size(43, randomSeed_);
3167 }
3168 if (((bitField1_ & 0x00002000) != 0)) {
3169 size += com.google.protobuf.CodedOutputStream
3170 .computeInt32Size(44, numOmpThreads_);
3171 }
3172 if (((bitField0_ & 0x08000000) != 0)) {
3173 size += com.google.protobuf.CodedOutputStream
3174 .computeDoubleSize(45, maxDeterministicTime_);
3175 }
3176 if (((bitField0_ & 0x00001000) != 0)) {
3177 size += com.google.protobuf.CodedOutputStream
3178 .computeDoubleSize(52, dropTolerance_);
3179 }
3180 if (((bitField1_ & 0x00004000) != 0)) {
3181 size += com.google.protobuf.CodedOutputStream
3182 .computeBoolSize(53, perturbCostsInDualSimplex_);
3183 }
3184 if (((bitField1_ & 0x00010000) != 0)) {
3185 size += com.google.protobuf.CodedOutputStream
3186 .computeDoubleSize(54, relativeCostPerturbation_);
3187 }
3188 if (((bitField1_ & 0x00020000) != 0)) {
3189 size += com.google.protobuf.CodedOutputStream
3190 .computeDoubleSize(55, relativeMaxCostPerturbation_);
3191 }
3192 if (((bitField0_ & 0x01000000) != 0)) {
3193 size += com.google.protobuf.CodedOutputStream
3194 .computeDoubleSize(56, maxNumberOfReoptimizations_);
3195 }
3196 if (((bitField0_ & 0x00000001) != 0)) {
3197 size += com.google.protobuf.CodedOutputStream
3198 .computeEnumSize(57, scalingMethod_);
3199 }
3200 if (((bitField0_ & 0x00800000) != 0)) {
3201 size += com.google.protobuf.CodedOutputStream
3202 .computeBoolSize(58, changeStatusToImprecise_);
3203 }
3204 if (((bitField1_ & 0x00040000) != 0)) {
3205 size += com.google.protobuf.CodedOutputStream
3206 .computeDoubleSize(59, initialConditionNumberThreshold_);
3207 }
3208 if (((bitField0_ & 0x00004000) != 0)) {
3209 size += com.google.protobuf.CodedOutputStream
3210 .computeEnumSize(60, costScaling_);
3211 }
3212 if (((bitField1_ & 0x00080000) != 0)) {
3213 size += com.google.protobuf.CodedOutputStream
3214 .computeBoolSize(61, logSearchProgress_);
3215 }
3216 if (((bitField1_ & 0x00008000) != 0)) {
3217 size += com.google.protobuf.CodedOutputStream
3218 .computeBoolSize(62, useDedicatedDualFeasibilityAlgorithm_);
3219 }
3220 if (((bitField0_ & 0x00040000) != 0)) {
3221 size += com.google.protobuf.CodedOutputStream
3222 .computeBoolSize(63, dynamicallyAdjustRefactorizationPeriod_);
3223 }
3224 if (((bitField1_ & 0x00200000) != 0)) {
3225 size += com.google.protobuf.CodedOutputStream
3226 .computeDoubleSize(64, crossoverBoundSnappingDistance_);
3227 }
3228 if (((bitField1_ & 0x00400000) != 0)) {
3229 size += com.google.protobuf.CodedOutputStream
3230 .computeBoolSize(65, pushToVertex_);
3231 }
3232 if (((bitField1_ & 0x00100000) != 0)) {
3233 size += com.google.protobuf.CodedOutputStream
3234 .computeBoolSize(66, logToStdout_);
3235 }
3236 if (((bitField1_ & 0x00800000) != 0)) {
3237 size += com.google.protobuf.CodedOutputStream
3238 .computeBoolSize(67, useImpliedFreePreprocessor_);
3239 }
3240 if (((bitField1_ & 0x04000000) != 0)) {
3241 size += com.google.protobuf.CodedOutputStream
3242 .computeBoolSize(69, dualPricePrioritizeNorm_);
3243 }
3244 if (((bitField1_ & 0x01000000) != 0)) {
3245 size += com.google.protobuf.CodedOutputStream
3246 .computeDoubleSize(70, maxValidMagnitude_);
3247 }
3248 if (((bitField1_ & 0x02000000) != 0)) {
3249 size += com.google.protobuf.CodedOutputStream
3250 .computeDoubleSize(71, dropMagnitude_);
3251 }
3252 if (((bitField1_ & 0x00001000) != 0)) {
3253 size += com.google.protobuf.CodedOutputStream
3254 .computeBoolSize(72, useAbslRandom_);
3255 }
3256 size += getUnknownFields().getSerializedSize();
3257 memoizedSize = size;
3258 return size;
3259 }
3260
3261 @java.lang.Override
3262 public boolean equals(final java.lang.Object obj) {
3263 if (obj == this) {
3264 return true;
3265 }
3266 if (!(obj instanceof com.google.ortools.glop.GlopParameters)) {
3267 return super.equals(obj);
3268 }
3269 com.google.ortools.glop.GlopParameters other = (com.google.ortools.glop.GlopParameters) obj;
3270
3271 if (hasScalingMethod() != other.hasScalingMethod()) return false;
3272 if (hasScalingMethod()) {
3273 if (scalingMethod_ != other.scalingMethod_) return false;
3274 }
3275 if (hasFeasibilityRule() != other.hasFeasibilityRule()) return false;
3276 if (hasFeasibilityRule()) {
3277 if (feasibilityRule_ != other.feasibilityRule_) return false;
3278 }
3279 if (hasOptimizationRule() != other.hasOptimizationRule()) return false;
3280 if (hasOptimizationRule()) {
3281 if (optimizationRule_ != other.optimizationRule_) return false;
3282 }
3283 if (hasRefactorizationThreshold() != other.hasRefactorizationThreshold()) return false;
3285 if (java.lang.Double.doubleToLongBits(getRefactorizationThreshold())
3286 != java.lang.Double.doubleToLongBits(
3287 other.getRefactorizationThreshold())) return false;
3288 }
3291 if (java.lang.Double.doubleToLongBits(getRecomputeReducedCostsThreshold())
3292 != java.lang.Double.doubleToLongBits(
3293 other.getRecomputeReducedCostsThreshold())) return false;
3294 }
3297 if (java.lang.Double.doubleToLongBits(getRecomputeEdgesNormThreshold())
3298 != java.lang.Double.doubleToLongBits(
3299 other.getRecomputeEdgesNormThreshold())) return false;
3300 }
3301 if (hasPrimalFeasibilityTolerance() != other.hasPrimalFeasibilityTolerance()) return false;
3303 if (java.lang.Double.doubleToLongBits(getPrimalFeasibilityTolerance())
3304 != java.lang.Double.doubleToLongBits(
3305 other.getPrimalFeasibilityTolerance())) return false;
3306 }
3307 if (hasDualFeasibilityTolerance() != other.hasDualFeasibilityTolerance()) return false;
3309 if (java.lang.Double.doubleToLongBits(getDualFeasibilityTolerance())
3310 != java.lang.Double.doubleToLongBits(
3311 other.getDualFeasibilityTolerance())) return false;
3312 }
3313 if (hasRatioTestZeroThreshold() != other.hasRatioTestZeroThreshold()) return false;
3315 if (java.lang.Double.doubleToLongBits(getRatioTestZeroThreshold())
3316 != java.lang.Double.doubleToLongBits(
3317 other.getRatioTestZeroThreshold())) return false;
3318 }
3319 if (hasHarrisToleranceRatio() != other.hasHarrisToleranceRatio()) return false;
3321 if (java.lang.Double.doubleToLongBits(getHarrisToleranceRatio())
3322 != java.lang.Double.doubleToLongBits(
3323 other.getHarrisToleranceRatio())) return false;
3324 }
3325 if (hasSmallPivotThreshold() != other.hasSmallPivotThreshold()) return false;
3326 if (hasSmallPivotThreshold()) {
3327 if (java.lang.Double.doubleToLongBits(getSmallPivotThreshold())
3328 != java.lang.Double.doubleToLongBits(
3329 other.getSmallPivotThreshold())) return false;
3330 }
3331 if (hasMinimumAcceptablePivot() != other.hasMinimumAcceptablePivot()) return false;
3333 if (java.lang.Double.doubleToLongBits(getMinimumAcceptablePivot())
3334 != java.lang.Double.doubleToLongBits(
3335 other.getMinimumAcceptablePivot())) return false;
3336 }
3337 if (hasDropTolerance() != other.hasDropTolerance()) return false;
3338 if (hasDropTolerance()) {
3339 if (java.lang.Double.doubleToLongBits(getDropTolerance())
3340 != java.lang.Double.doubleToLongBits(
3341 other.getDropTolerance())) return false;
3342 }
3343 if (hasUseScaling() != other.hasUseScaling()) return false;
3344 if (hasUseScaling()) {
3345 if (getUseScaling()
3346 != other.getUseScaling()) return false;
3347 }
3348 if (hasCostScaling() != other.hasCostScaling()) return false;
3349 if (hasCostScaling()) {
3350 if (costScaling_ != other.costScaling_) return false;
3351 }
3352 if (hasInitialBasis() != other.hasInitialBasis()) return false;
3353 if (hasInitialBasis()) {
3354 if (initialBasis_ != other.initialBasis_) return false;
3355 }
3356 if (hasUseTransposedMatrix() != other.hasUseTransposedMatrix()) return false;
3357 if (hasUseTransposedMatrix()) {
3359 != other.getUseTransposedMatrix()) return false;
3360 }
3361 if (hasBasisRefactorizationPeriod() != other.hasBasisRefactorizationPeriod()) return false;
3364 != other.getBasisRefactorizationPeriod()) return false;
3365 }
3369 != other.getDynamicallyAdjustRefactorizationPeriod()) return false;
3370 }
3371 if (hasSolveDualProblem() != other.hasSolveDualProblem()) return false;
3372 if (hasSolveDualProblem()) {
3373 if (solveDualProblem_ != other.solveDualProblem_) return false;
3374 }
3375 if (hasDualizerThreshold() != other.hasDualizerThreshold()) return false;
3376 if (hasDualizerThreshold()) {
3377 if (java.lang.Double.doubleToLongBits(getDualizerThreshold())
3378 != java.lang.Double.doubleToLongBits(
3379 other.getDualizerThreshold())) return false;
3380 }
3383 if (java.lang.Double.doubleToLongBits(getSolutionFeasibilityTolerance())
3384 != java.lang.Double.doubleToLongBits(
3385 other.getSolutionFeasibilityTolerance())) return false;
3386 }
3390 != other.getProvideStrongOptimalGuarantee()) return false;
3391 }
3392 if (hasChangeStatusToImprecise() != other.hasChangeStatusToImprecise()) return false;
3395 != other.getChangeStatusToImprecise()) return false;
3396 }
3397 if (hasMaxNumberOfReoptimizations() != other.hasMaxNumberOfReoptimizations()) return false;
3399 if (java.lang.Double.doubleToLongBits(getMaxNumberOfReoptimizations())
3400 != java.lang.Double.doubleToLongBits(
3401 other.getMaxNumberOfReoptimizations())) return false;
3402 }
3405 if (java.lang.Double.doubleToLongBits(getLuFactorizationPivotThreshold())
3406 != java.lang.Double.doubleToLongBits(
3407 other.getLuFactorizationPivotThreshold())) return false;
3408 }
3409 if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
3410 if (hasMaxTimeInSeconds()) {
3411 if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
3412 != java.lang.Double.doubleToLongBits(
3413 other.getMaxTimeInSeconds())) return false;
3414 }
3415 if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
3417 if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
3418 != java.lang.Double.doubleToLongBits(
3419 other.getMaxDeterministicTime())) return false;
3420 }
3421 if (hasMaxNumberOfIterations() != other.hasMaxNumberOfIterations()) return false;
3424 != other.getMaxNumberOfIterations()) return false;
3425 }
3426 if (hasMarkowitzZlatevParameter() != other.hasMarkowitzZlatevParameter()) return false;
3429 != other.getMarkowitzZlatevParameter()) return false;
3430 }
3433 if (java.lang.Double.doubleToLongBits(getMarkowitzSingularityThreshold())
3434 != java.lang.Double.doubleToLongBits(
3435 other.getMarkowitzSingularityThreshold())) return false;
3436 }
3437 if (hasUseDualSimplex() != other.hasUseDualSimplex()) return false;
3438 if (hasUseDualSimplex()) {
3439 if (getUseDualSimplex()
3440 != other.getUseDualSimplex()) return false;
3441 }
3445 != other.getAllowSimplexAlgorithmChange()) return false;
3446 }
3447 if (hasDevexWeightsResetPeriod() != other.hasDevexWeightsResetPeriod()) return false;
3450 != other.getDevexWeightsResetPeriod()) return false;
3451 }
3452 if (hasUsePreprocessing() != other.hasUsePreprocessing()) return false;
3453 if (hasUsePreprocessing()) {
3455 != other.getUsePreprocessing()) return false;
3456 }
3457 if (hasUseMiddleProductFormUpdate() != other.hasUseMiddleProductFormUpdate()) return false;
3460 != other.getUseMiddleProductFormUpdate()) return false;
3461 }
3465 != other.getInitializeDevexWithColumnNorms()) return false;
3466 }
3470 != other.getExploitSingletonColumnInInitialBasis()) return false;
3471 }
3472 if (hasDualSmallPivotThreshold() != other.hasDualSmallPivotThreshold()) return false;
3474 if (java.lang.Double.doubleToLongBits(getDualSmallPivotThreshold())
3475 != java.lang.Double.doubleToLongBits(
3476 other.getDualSmallPivotThreshold())) return false;
3477 }
3478 if (hasPreprocessorZeroTolerance() != other.hasPreprocessorZeroTolerance()) return false;
3480 if (java.lang.Double.doubleToLongBits(getPreprocessorZeroTolerance())
3481 != java.lang.Double.doubleToLongBits(
3482 other.getPreprocessorZeroTolerance())) return false;
3483 }
3484 if (hasObjectiveLowerLimit() != other.hasObjectiveLowerLimit()) return false;
3485 if (hasObjectiveLowerLimit()) {
3486 if (java.lang.Double.doubleToLongBits(getObjectiveLowerLimit())
3487 != java.lang.Double.doubleToLongBits(
3488 other.getObjectiveLowerLimit())) return false;
3489 }
3490 if (hasObjectiveUpperLimit() != other.hasObjectiveUpperLimit()) return false;
3491 if (hasObjectiveUpperLimit()) {
3492 if (java.lang.Double.doubleToLongBits(getObjectiveUpperLimit())
3493 != java.lang.Double.doubleToLongBits(
3494 other.getObjectiveUpperLimit())) return false;
3495 }
3496 if (hasDegenerateMinistepFactor() != other.hasDegenerateMinistepFactor()) return false;
3498 if (java.lang.Double.doubleToLongBits(getDegenerateMinistepFactor())
3499 != java.lang.Double.doubleToLongBits(
3500 other.getDegenerateMinistepFactor())) return false;
3501 }
3502 if (hasRandomSeed() != other.hasRandomSeed()) return false;
3503 if (hasRandomSeed()) {
3504 if (getRandomSeed()
3505 != other.getRandomSeed()) return false;
3506 }
3507 if (hasUseAbslRandom() != other.hasUseAbslRandom()) return false;
3508 if (hasUseAbslRandom()) {
3509 if (getUseAbslRandom()
3510 != other.getUseAbslRandom()) return false;
3511 }
3512 if (hasNumOmpThreads() != other.hasNumOmpThreads()) return false;
3513 if (hasNumOmpThreads()) {
3514 if (getNumOmpThreads()
3515 != other.getNumOmpThreads()) return false;
3516 }
3517 if (hasPerturbCostsInDualSimplex() != other.hasPerturbCostsInDualSimplex()) return false;
3520 != other.getPerturbCostsInDualSimplex()) return false;
3521 }
3525 != other.getUseDedicatedDualFeasibilityAlgorithm()) return false;
3526 }
3527 if (hasRelativeCostPerturbation() != other.hasRelativeCostPerturbation()) return false;
3529 if (java.lang.Double.doubleToLongBits(getRelativeCostPerturbation())
3530 != java.lang.Double.doubleToLongBits(
3531 other.getRelativeCostPerturbation())) return false;
3532 }
3535 if (java.lang.Double.doubleToLongBits(getRelativeMaxCostPerturbation())
3536 != java.lang.Double.doubleToLongBits(
3537 other.getRelativeMaxCostPerturbation())) return false;
3538 }
3541 if (java.lang.Double.doubleToLongBits(getInitialConditionNumberThreshold())
3542 != java.lang.Double.doubleToLongBits(
3543 other.getInitialConditionNumberThreshold())) return false;
3544 }
3545 if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
3546 if (hasLogSearchProgress()) {
3548 != other.getLogSearchProgress()) return false;
3549 }
3550 if (hasLogToStdout() != other.hasLogToStdout()) return false;
3551 if (hasLogToStdout()) {
3552 if (getLogToStdout()
3553 != other.getLogToStdout()) return false;
3554 }
3557 if (java.lang.Double.doubleToLongBits(getCrossoverBoundSnappingDistance())
3558 != java.lang.Double.doubleToLongBits(
3559 other.getCrossoverBoundSnappingDistance())) return false;
3560 }
3561 if (hasPushToVertex() != other.hasPushToVertex()) return false;
3562 if (hasPushToVertex()) {
3563 if (getPushToVertex()
3564 != other.getPushToVertex()) return false;
3565 }
3566 if (hasUseImpliedFreePreprocessor() != other.hasUseImpliedFreePreprocessor()) return false;
3569 != other.getUseImpliedFreePreprocessor()) return false;
3570 }
3571 if (hasMaxValidMagnitude() != other.hasMaxValidMagnitude()) return false;
3572 if (hasMaxValidMagnitude()) {
3573 if (java.lang.Double.doubleToLongBits(getMaxValidMagnitude())
3574 != java.lang.Double.doubleToLongBits(
3575 other.getMaxValidMagnitude())) return false;
3576 }
3577 if (hasDropMagnitude() != other.hasDropMagnitude()) return false;
3578 if (hasDropMagnitude()) {
3579 if (java.lang.Double.doubleToLongBits(getDropMagnitude())
3580 != java.lang.Double.doubleToLongBits(
3581 other.getDropMagnitude())) return false;
3582 }
3583 if (hasDualPricePrioritizeNorm() != other.hasDualPricePrioritizeNorm()) return false;
3586 != other.getDualPricePrioritizeNorm()) return false;
3587 }
3588 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
3589 return true;
3590 }
3591
3592 @java.lang.Override
3593 public int hashCode() {
3594 if (memoizedHashCode != 0) {
3595 return memoizedHashCode;
3596 }
3597 int hash = 41;
3598 hash = (19 * hash) + getDescriptor().hashCode();
3599 if (hasScalingMethod()) {
3600 hash = (37 * hash) + SCALING_METHOD_FIELD_NUMBER;
3601 hash = (53 * hash) + scalingMethod_;
3602 }
3603 if (hasFeasibilityRule()) {
3604 hash = (37 * hash) + FEASIBILITY_RULE_FIELD_NUMBER;
3605 hash = (53 * hash) + feasibilityRule_;
3606 }
3607 if (hasOptimizationRule()) {
3608 hash = (37 * hash) + OPTIMIZATION_RULE_FIELD_NUMBER;
3609 hash = (53 * hash) + optimizationRule_;
3610 }
3612 hash = (37 * hash) + REFACTORIZATION_THRESHOLD_FIELD_NUMBER;
3613 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3614 java.lang.Double.doubleToLongBits(getRefactorizationThreshold()));
3615 }
3618 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3619 java.lang.Double.doubleToLongBits(getRecomputeReducedCostsThreshold()));
3620 }
3623 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3624 java.lang.Double.doubleToLongBits(getRecomputeEdgesNormThreshold()));
3625 }
3627 hash = (37 * hash) + PRIMAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER;
3628 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3629 java.lang.Double.doubleToLongBits(getPrimalFeasibilityTolerance()));
3630 }
3632 hash = (37 * hash) + DUAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER;
3633 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3634 java.lang.Double.doubleToLongBits(getDualFeasibilityTolerance()));
3635 }
3637 hash = (37 * hash) + RATIO_TEST_ZERO_THRESHOLD_FIELD_NUMBER;
3638 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3639 java.lang.Double.doubleToLongBits(getRatioTestZeroThreshold()));
3640 }
3642 hash = (37 * hash) + HARRIS_TOLERANCE_RATIO_FIELD_NUMBER;
3643 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3644 java.lang.Double.doubleToLongBits(getHarrisToleranceRatio()));
3645 }
3646 if (hasSmallPivotThreshold()) {
3647 hash = (37 * hash) + SMALL_PIVOT_THRESHOLD_FIELD_NUMBER;
3648 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3649 java.lang.Double.doubleToLongBits(getSmallPivotThreshold()));
3650 }
3652 hash = (37 * hash) + MINIMUM_ACCEPTABLE_PIVOT_FIELD_NUMBER;
3653 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3654 java.lang.Double.doubleToLongBits(getMinimumAcceptablePivot()));
3655 }
3656 if (hasDropTolerance()) {
3657 hash = (37 * hash) + DROP_TOLERANCE_FIELD_NUMBER;
3658 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3659 java.lang.Double.doubleToLongBits(getDropTolerance()));
3660 }
3661 if (hasUseScaling()) {
3662 hash = (37 * hash) + USE_SCALING_FIELD_NUMBER;
3663 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3664 getUseScaling());
3665 }
3666 if (hasCostScaling()) {
3667 hash = (37 * hash) + COST_SCALING_FIELD_NUMBER;
3668 hash = (53 * hash) + costScaling_;
3669 }
3670 if (hasInitialBasis()) {
3671 hash = (37 * hash) + INITIAL_BASIS_FIELD_NUMBER;
3672 hash = (53 * hash) + initialBasis_;
3673 }
3674 if (hasUseTransposedMatrix()) {
3675 hash = (37 * hash) + USE_TRANSPOSED_MATRIX_FIELD_NUMBER;
3676 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3678 }
3680 hash = (37 * hash) + BASIS_REFACTORIZATION_PERIOD_FIELD_NUMBER;
3681 hash = (53 * hash) + getBasisRefactorizationPeriod();
3682 }
3685 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3687 }
3688 if (hasSolveDualProblem()) {
3689 hash = (37 * hash) + SOLVE_DUAL_PROBLEM_FIELD_NUMBER;
3690 hash = (53 * hash) + solveDualProblem_;
3691 }
3692 if (hasDualizerThreshold()) {
3693 hash = (37 * hash) + DUALIZER_THRESHOLD_FIELD_NUMBER;
3694 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3695 java.lang.Double.doubleToLongBits(getDualizerThreshold()));
3696 }
3699 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3700 java.lang.Double.doubleToLongBits(getSolutionFeasibilityTolerance()));
3701 }
3704 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3706 }
3708 hash = (37 * hash) + CHANGE_STATUS_TO_IMPRECISE_FIELD_NUMBER;
3709 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3711 }
3713 hash = (37 * hash) + MAX_NUMBER_OF_REOPTIMIZATIONS_FIELD_NUMBER;
3714 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3715 java.lang.Double.doubleToLongBits(getMaxNumberOfReoptimizations()));
3716 }
3719 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3720 java.lang.Double.doubleToLongBits(getLuFactorizationPivotThreshold()));
3721 }
3722 if (hasMaxTimeInSeconds()) {
3723 hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
3724 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3725 java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
3726 }
3728 hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
3729 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3730 java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
3731 }
3733 hash = (37 * hash) + MAX_NUMBER_OF_ITERATIONS_FIELD_NUMBER;
3734 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3736 }
3738 hash = (37 * hash) + MARKOWITZ_ZLATEV_PARAMETER_FIELD_NUMBER;
3739 hash = (53 * hash) + getMarkowitzZlatevParameter();
3740 }
3743 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3744 java.lang.Double.doubleToLongBits(getMarkowitzSingularityThreshold()));
3745 }
3746 if (hasUseDualSimplex()) {
3747 hash = (37 * hash) + USE_DUAL_SIMPLEX_FIELD_NUMBER;
3748 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3750 }
3753 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3755 }
3757 hash = (37 * hash) + DEVEX_WEIGHTS_RESET_PERIOD_FIELD_NUMBER;
3758 hash = (53 * hash) + getDevexWeightsResetPeriod();
3759 }
3760 if (hasUsePreprocessing()) {
3761 hash = (37 * hash) + USE_PREPROCESSING_FIELD_NUMBER;
3762 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3764 }
3767 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3769 }
3772 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3774 }
3777 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3779 }
3781 hash = (37 * hash) + DUAL_SMALL_PIVOT_THRESHOLD_FIELD_NUMBER;
3782 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3783 java.lang.Double.doubleToLongBits(getDualSmallPivotThreshold()));
3784 }
3786 hash = (37 * hash) + PREPROCESSOR_ZERO_TOLERANCE_FIELD_NUMBER;
3787 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3788 java.lang.Double.doubleToLongBits(getPreprocessorZeroTolerance()));
3789 }
3790 if (hasObjectiveLowerLimit()) {
3791 hash = (37 * hash) + OBJECTIVE_LOWER_LIMIT_FIELD_NUMBER;
3792 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3793 java.lang.Double.doubleToLongBits(getObjectiveLowerLimit()));
3794 }
3795 if (hasObjectiveUpperLimit()) {
3796 hash = (37 * hash) + OBJECTIVE_UPPER_LIMIT_FIELD_NUMBER;
3797 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3798 java.lang.Double.doubleToLongBits(getObjectiveUpperLimit()));
3799 }
3801 hash = (37 * hash) + DEGENERATE_MINISTEP_FACTOR_FIELD_NUMBER;
3802 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3803 java.lang.Double.doubleToLongBits(getDegenerateMinistepFactor()));
3804 }
3805 if (hasRandomSeed()) {
3806 hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
3807 hash = (53 * hash) + getRandomSeed();
3808 }
3809 if (hasUseAbslRandom()) {
3810 hash = (37 * hash) + USE_ABSL_RANDOM_FIELD_NUMBER;
3811 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3813 }
3814 if (hasNumOmpThreads()) {
3815 hash = (37 * hash) + NUM_OMP_THREADS_FIELD_NUMBER;
3816 hash = (53 * hash) + getNumOmpThreads();
3817 }
3819 hash = (37 * hash) + PERTURB_COSTS_IN_DUAL_SIMPLEX_FIELD_NUMBER;
3820 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3822 }
3825 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3827 }
3829 hash = (37 * hash) + RELATIVE_COST_PERTURBATION_FIELD_NUMBER;
3830 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3831 java.lang.Double.doubleToLongBits(getRelativeCostPerturbation()));
3832 }
3835 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3836 java.lang.Double.doubleToLongBits(getRelativeMaxCostPerturbation()));
3837 }
3840 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3841 java.lang.Double.doubleToLongBits(getInitialConditionNumberThreshold()));
3842 }
3843 if (hasLogSearchProgress()) {
3844 hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
3845 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3847 }
3848 if (hasLogToStdout()) {
3849 hash = (37 * hash) + LOG_TO_STDOUT_FIELD_NUMBER;
3850 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3851 getLogToStdout());
3852 }
3855 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3856 java.lang.Double.doubleToLongBits(getCrossoverBoundSnappingDistance()));
3857 }
3858 if (hasPushToVertex()) {
3859 hash = (37 * hash) + PUSH_TO_VERTEX_FIELD_NUMBER;
3860 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3861 getPushToVertex());
3862 }
3864 hash = (37 * hash) + USE_IMPLIED_FREE_PREPROCESSOR_FIELD_NUMBER;
3865 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3867 }
3868 if (hasMaxValidMagnitude()) {
3869 hash = (37 * hash) + MAX_VALID_MAGNITUDE_FIELD_NUMBER;
3870 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3871 java.lang.Double.doubleToLongBits(getMaxValidMagnitude()));
3872 }
3873 if (hasDropMagnitude()) {
3874 hash = (37 * hash) + DROP_MAGNITUDE_FIELD_NUMBER;
3875 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3876 java.lang.Double.doubleToLongBits(getDropMagnitude()));
3877 }
3879 hash = (37 * hash) + DUAL_PRICE_PRIORITIZE_NORM_FIELD_NUMBER;
3880 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3882 }
3883 hash = (29 * hash) + getUnknownFields().hashCode();
3884 memoizedHashCode = hash;
3885 return hash;
3886 }
3887
3889 java.nio.ByteBuffer data)
3890 throws com.google.protobuf.InvalidProtocolBufferException {
3891 return PARSER.parseFrom(data);
3892 }
3894 java.nio.ByteBuffer data,
3895 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3896 throws com.google.protobuf.InvalidProtocolBufferException {
3897 return PARSER.parseFrom(data, extensionRegistry);
3898 }
3900 com.google.protobuf.ByteString data)
3901 throws com.google.protobuf.InvalidProtocolBufferException {
3902 return PARSER.parseFrom(data);
3903 }
3905 com.google.protobuf.ByteString data,
3906 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3907 throws com.google.protobuf.InvalidProtocolBufferException {
3908 return PARSER.parseFrom(data, extensionRegistry);
3909 }
3911 throws com.google.protobuf.InvalidProtocolBufferException {
3912 return PARSER.parseFrom(data);
3913 }
3915 byte[] data,
3916 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3917 throws com.google.protobuf.InvalidProtocolBufferException {
3918 return PARSER.parseFrom(data, extensionRegistry);
3919 }
3920 public static com.google.ortools.glop.GlopParameters parseFrom(java.io.InputStream input)
3921 throws java.io.IOException {
3922 return com.google.protobuf.GeneratedMessage
3923 .parseWithIOException(PARSER, input);
3924 }
3926 java.io.InputStream input,
3927 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3928 throws java.io.IOException {
3929 return com.google.protobuf.GeneratedMessage
3930 .parseWithIOException(PARSER, input, extensionRegistry);
3931 }
3932
3933 public static com.google.ortools.glop.GlopParameters parseDelimitedFrom(java.io.InputStream input)
3934 throws java.io.IOException {
3935 return com.google.protobuf.GeneratedMessage
3936 .parseDelimitedWithIOException(PARSER, input);
3937 }
3938
3940 java.io.InputStream input,
3941 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3942 throws java.io.IOException {
3943 return com.google.protobuf.GeneratedMessage
3944 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3945 }
3947 com.google.protobuf.CodedInputStream input)
3948 throws java.io.IOException {
3949 return com.google.protobuf.GeneratedMessage
3950 .parseWithIOException(PARSER, input);
3951 }
3953 com.google.protobuf.CodedInputStream input,
3954 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3955 throws java.io.IOException {
3956 return com.google.protobuf.GeneratedMessage
3957 .parseWithIOException(PARSER, input, extensionRegistry);
3958 }
3959
3960 @java.lang.Override
3961 public Builder newBuilderForType() { return newBuilder(); }
3962 public static Builder newBuilder() {
3963 return DEFAULT_INSTANCE.toBuilder();
3964 }
3965 public static Builder newBuilder(com.google.ortools.glop.GlopParameters prototype) {
3966 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3967 }
3968 @java.lang.Override
3970 return this == DEFAULT_INSTANCE
3971 ? new Builder() : new Builder().mergeFrom(this);
3972 }
3973
3974 @java.lang.Override
3976 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3977 Builder builder = new Builder(parent);
3978 return builder;
3979 }
3980
3987 public static final class Builder extends
3988 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
3989 // @@protoc_insertion_point(builder_implements:operations_research.glop.GlopParameters)
3991 public static final com.google.protobuf.Descriptors.Descriptor
3993 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
3994 }
3995
3996 @java.lang.Override
3997 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
3999 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_fieldAccessorTable
4000 .ensureFieldAccessorsInitialized(
4001 com.google.ortools.glop.GlopParameters.class, com.google.ortools.glop.GlopParameters.Builder.class);
4002 }
4003
4004 // Construct using com.google.ortools.glop.GlopParameters.newBuilder()
4005 private Builder() {
4006
4007 }
4008
4009 private Builder(
4010 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
4011 super(parent);
4012
4013 }
4014 @java.lang.Override
4015 public Builder clear() {
4016 super.clear();
4017 bitField0_ = 0;
4018 bitField1_ = 0;
4019 scalingMethod_ = 1;
4020 feasibilityRule_ = 1;
4021 optimizationRule_ = 1;
4022 refactorizationThreshold_ = 1e-09D;
4023 recomputeReducedCostsThreshold_ = 1e-08D;
4024 recomputeEdgesNormThreshold_ = 100D;
4025 primalFeasibilityTolerance_ = 1e-08D;
4026 dualFeasibilityTolerance_ = 1e-08D;
4027 ratioTestZeroThreshold_ = 1e-09D;
4028 harrisToleranceRatio_ = 0.5D;
4029 smallPivotThreshold_ = 1e-06D;
4030 minimumAcceptablePivot_ = 1e-06D;
4031 dropTolerance_ = 1e-14D;
4032 useScaling_ = true;
4033 costScaling_ = 1;
4034 initialBasis_ = 2;
4035 useTransposedMatrix_ = true;
4036 basisRefactorizationPeriod_ = 64;
4037 dynamicallyAdjustRefactorizationPeriod_ = true;
4038 solveDualProblem_ = 2;
4039 dualizerThreshold_ = 1.5D;
4040 solutionFeasibilityTolerance_ = 1e-06D;
4041 provideStrongOptimalGuarantee_ = true;
4042 changeStatusToImprecise_ = true;
4043 maxNumberOfReoptimizations_ = 40D;
4044 luFactorizationPivotThreshold_ = 0.01D;
4045 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
4046 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
4047 maxNumberOfIterations_ = -1L;
4048 markowitzZlatevParameter_ = 3;
4049 markowitzSingularityThreshold_ = 1e-15D;
4050 useDualSimplex_ = false;
4051 allowSimplexAlgorithmChange_ = false;
4052 devexWeightsResetPeriod_ = 150;
4053 usePreprocessing_ = true;
4054 useMiddleProductFormUpdate_ = true;
4055 initializeDevexWithColumnNorms_ = true;
4056 exploitSingletonColumnInInitialBasis_ = true;
4057 dualSmallPivotThreshold_ = 0.0001D;
4058 preprocessorZeroTolerance_ = 1e-09D;
4059 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
4060 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
4061 degenerateMinistepFactor_ = 0.01D;
4062 randomSeed_ = 1;
4063 useAbslRandom_ = false;
4064 numOmpThreads_ = 1;
4065 perturbCostsInDualSimplex_ = false;
4066 useDedicatedDualFeasibilityAlgorithm_ = true;
4067 relativeCostPerturbation_ = 1e-05D;
4068 relativeMaxCostPerturbation_ = 1e-07D;
4069 initialConditionNumberThreshold_ = 1e+50D;
4070 logSearchProgress_ = false;
4071 logToStdout_ = true;
4072 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
4073 pushToVertex_ = true;
4074 useImpliedFreePreprocessor_ = true;
4075 maxValidMagnitude_ = 1e+30D;
4076 dropMagnitude_ = 1e-30D;
4077 dualPricePrioritizeNorm_ = false;
4078 return this;
4079 }
4080
4081 @java.lang.Override
4082 public com.google.protobuf.Descriptors.Descriptor
4084 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
4085 }
4086
4087 @java.lang.Override
4089 return com.google.ortools.glop.GlopParameters.getDefaultInstance();
4090 }
4091
4092 @java.lang.Override
4095 if (!result.isInitialized()) {
4096 throw newUninitializedMessageException(result);
4097 }
4098 return result;
4099 }
4100
4101 @java.lang.Override
4103 com.google.ortools.glop.GlopParameters result = new com.google.ortools.glop.GlopParameters(this);
4104 if (bitField0_ != 0) { buildPartial0(result); }
4105 if (bitField1_ != 0) { buildPartial1(result); }
4106 onBuilt();
4107 return result;
4108 }
4109
4110 private void buildPartial0(com.google.ortools.glop.GlopParameters result) {
4111 int from_bitField0_ = bitField0_;
4112 int to_bitField0_ = 0;
4113 if (((from_bitField0_ & 0x00000001) != 0)) {
4114 result.scalingMethod_ = scalingMethod_;
4115 to_bitField0_ |= 0x00000001;
4116 }
4117 if (((from_bitField0_ & 0x00000002) != 0)) {
4118 result.feasibilityRule_ = feasibilityRule_;
4119 to_bitField0_ |= 0x00000002;
4120 }
4121 if (((from_bitField0_ & 0x00000004) != 0)) {
4122 result.optimizationRule_ = optimizationRule_;
4123 to_bitField0_ |= 0x00000004;
4124 }
4125 if (((from_bitField0_ & 0x00000008) != 0)) {
4126 result.refactorizationThreshold_ = refactorizationThreshold_;
4127 to_bitField0_ |= 0x00000008;
4128 }
4129 if (((from_bitField0_ & 0x00000010) != 0)) {
4130 result.recomputeReducedCostsThreshold_ = recomputeReducedCostsThreshold_;
4131 to_bitField0_ |= 0x00000010;
4132 }
4133 if (((from_bitField0_ & 0x00000020) != 0)) {
4134 result.recomputeEdgesNormThreshold_ = recomputeEdgesNormThreshold_;
4135 to_bitField0_ |= 0x00000020;
4136 }
4137 if (((from_bitField0_ & 0x00000040) != 0)) {
4138 result.primalFeasibilityTolerance_ = primalFeasibilityTolerance_;
4139 to_bitField0_ |= 0x00000040;
4140 }
4141 if (((from_bitField0_ & 0x00000080) != 0)) {
4142 result.dualFeasibilityTolerance_ = dualFeasibilityTolerance_;
4143 to_bitField0_ |= 0x00000080;
4144 }
4145 if (((from_bitField0_ & 0x00000100) != 0)) {
4146 result.ratioTestZeroThreshold_ = ratioTestZeroThreshold_;
4147 to_bitField0_ |= 0x00000100;
4148 }
4149 if (((from_bitField0_ & 0x00000200) != 0)) {
4150 result.harrisToleranceRatio_ = harrisToleranceRatio_;
4151 to_bitField0_ |= 0x00000200;
4152 }
4153 if (((from_bitField0_ & 0x00000400) != 0)) {
4154 result.smallPivotThreshold_ = smallPivotThreshold_;
4155 to_bitField0_ |= 0x00000400;
4156 }
4157 if (((from_bitField0_ & 0x00000800) != 0)) {
4158 result.minimumAcceptablePivot_ = minimumAcceptablePivot_;
4159 to_bitField0_ |= 0x00000800;
4160 }
4161 if (((from_bitField0_ & 0x00001000) != 0)) {
4162 result.dropTolerance_ = dropTolerance_;
4163 to_bitField0_ |= 0x00001000;
4164 }
4165 if (((from_bitField0_ & 0x00002000) != 0)) {
4166 result.useScaling_ = useScaling_;
4167 to_bitField0_ |= 0x00002000;
4168 }
4169 if (((from_bitField0_ & 0x00004000) != 0)) {
4170 result.costScaling_ = costScaling_;
4171 to_bitField0_ |= 0x00004000;
4172 }
4173 if (((from_bitField0_ & 0x00008000) != 0)) {
4174 result.initialBasis_ = initialBasis_;
4175 to_bitField0_ |= 0x00008000;
4176 }
4177 if (((from_bitField0_ & 0x00010000) != 0)) {
4178 result.useTransposedMatrix_ = useTransposedMatrix_;
4179 to_bitField0_ |= 0x00010000;
4180 }
4181 if (((from_bitField0_ & 0x00020000) != 0)) {
4182 result.basisRefactorizationPeriod_ = basisRefactorizationPeriod_;
4183 to_bitField0_ |= 0x00020000;
4184 }
4185 if (((from_bitField0_ & 0x00040000) != 0)) {
4186 result.dynamicallyAdjustRefactorizationPeriod_ = dynamicallyAdjustRefactorizationPeriod_;
4187 to_bitField0_ |= 0x00040000;
4188 }
4189 if (((from_bitField0_ & 0x00080000) != 0)) {
4190 result.solveDualProblem_ = solveDualProblem_;
4191 to_bitField0_ |= 0x00080000;
4192 }
4193 if (((from_bitField0_ & 0x00100000) != 0)) {
4194 result.dualizerThreshold_ = dualizerThreshold_;
4195 to_bitField0_ |= 0x00100000;
4196 }
4197 if (((from_bitField0_ & 0x00200000) != 0)) {
4198 result.solutionFeasibilityTolerance_ = solutionFeasibilityTolerance_;
4199 to_bitField0_ |= 0x00200000;
4200 }
4201 if (((from_bitField0_ & 0x00400000) != 0)) {
4202 result.provideStrongOptimalGuarantee_ = provideStrongOptimalGuarantee_;
4203 to_bitField0_ |= 0x00400000;
4204 }
4205 if (((from_bitField0_ & 0x00800000) != 0)) {
4206 result.changeStatusToImprecise_ = changeStatusToImprecise_;
4207 to_bitField0_ |= 0x00800000;
4208 }
4209 if (((from_bitField0_ & 0x01000000) != 0)) {
4210 result.maxNumberOfReoptimizations_ = maxNumberOfReoptimizations_;
4211 to_bitField0_ |= 0x01000000;
4212 }
4213 if (((from_bitField0_ & 0x02000000) != 0)) {
4214 result.luFactorizationPivotThreshold_ = luFactorizationPivotThreshold_;
4215 to_bitField0_ |= 0x02000000;
4216 }
4217 if (((from_bitField0_ & 0x04000000) != 0)) {
4218 result.maxTimeInSeconds_ = maxTimeInSeconds_;
4219 to_bitField0_ |= 0x04000000;
4220 }
4221 if (((from_bitField0_ & 0x08000000) != 0)) {
4222 result.maxDeterministicTime_ = maxDeterministicTime_;
4223 to_bitField0_ |= 0x08000000;
4224 }
4225 if (((from_bitField0_ & 0x10000000) != 0)) {
4226 result.maxNumberOfIterations_ = maxNumberOfIterations_;
4227 to_bitField0_ |= 0x10000000;
4228 }
4229 if (((from_bitField0_ & 0x20000000) != 0)) {
4230 result.markowitzZlatevParameter_ = markowitzZlatevParameter_;
4231 to_bitField0_ |= 0x20000000;
4232 }
4233 if (((from_bitField0_ & 0x40000000) != 0)) {
4234 result.markowitzSingularityThreshold_ = markowitzSingularityThreshold_;
4235 to_bitField0_ |= 0x40000000;
4236 }
4237 if (((from_bitField0_ & 0x80000000) != 0)) {
4238 result.useDualSimplex_ = useDualSimplex_;
4239 to_bitField0_ |= 0x80000000;
4240 }
4241 result.bitField0_ |= to_bitField0_;
4242 }
4243
4244 private void buildPartial1(com.google.ortools.glop.GlopParameters result) {
4245 int from_bitField1_ = bitField1_;
4246 int to_bitField1_ = 0;
4247 if (((from_bitField1_ & 0x00000001) != 0)) {
4248 result.allowSimplexAlgorithmChange_ = allowSimplexAlgorithmChange_;
4249 to_bitField1_ |= 0x00000001;
4250 }
4251 if (((from_bitField1_ & 0x00000002) != 0)) {
4252 result.devexWeightsResetPeriod_ = devexWeightsResetPeriod_;
4253 to_bitField1_ |= 0x00000002;
4254 }
4255 if (((from_bitField1_ & 0x00000004) != 0)) {
4256 result.usePreprocessing_ = usePreprocessing_;
4257 to_bitField1_ |= 0x00000004;
4258 }
4259 if (((from_bitField1_ & 0x00000008) != 0)) {
4260 result.useMiddleProductFormUpdate_ = useMiddleProductFormUpdate_;
4261 to_bitField1_ |= 0x00000008;
4262 }
4263 if (((from_bitField1_ & 0x00000010) != 0)) {
4264 result.initializeDevexWithColumnNorms_ = initializeDevexWithColumnNorms_;
4265 to_bitField1_ |= 0x00000010;
4266 }
4267 if (((from_bitField1_ & 0x00000020) != 0)) {
4268 result.exploitSingletonColumnInInitialBasis_ = exploitSingletonColumnInInitialBasis_;
4269 to_bitField1_ |= 0x00000020;
4270 }
4271 if (((from_bitField1_ & 0x00000040) != 0)) {
4272 result.dualSmallPivotThreshold_ = dualSmallPivotThreshold_;
4273 to_bitField1_ |= 0x00000040;
4274 }
4275 if (((from_bitField1_ & 0x00000080) != 0)) {
4276 result.preprocessorZeroTolerance_ = preprocessorZeroTolerance_;
4277 to_bitField1_ |= 0x00000080;
4278 }
4279 if (((from_bitField1_ & 0x00000100) != 0)) {
4280 result.objectiveLowerLimit_ = objectiveLowerLimit_;
4281 to_bitField1_ |= 0x00000100;
4282 }
4283 if (((from_bitField1_ & 0x00000200) != 0)) {
4284 result.objectiveUpperLimit_ = objectiveUpperLimit_;
4285 to_bitField1_ |= 0x00000200;
4286 }
4287 if (((from_bitField1_ & 0x00000400) != 0)) {
4288 result.degenerateMinistepFactor_ = degenerateMinistepFactor_;
4289 to_bitField1_ |= 0x00000400;
4290 }
4291 if (((from_bitField1_ & 0x00000800) != 0)) {
4292 result.randomSeed_ = randomSeed_;
4293 to_bitField1_ |= 0x00000800;
4294 }
4295 if (((from_bitField1_ & 0x00001000) != 0)) {
4296 result.useAbslRandom_ = useAbslRandom_;
4297 to_bitField1_ |= 0x00001000;
4298 }
4299 if (((from_bitField1_ & 0x00002000) != 0)) {
4300 result.numOmpThreads_ = numOmpThreads_;
4301 to_bitField1_ |= 0x00002000;
4302 }
4303 if (((from_bitField1_ & 0x00004000) != 0)) {
4304 result.perturbCostsInDualSimplex_ = perturbCostsInDualSimplex_;
4305 to_bitField1_ |= 0x00004000;
4306 }
4307 if (((from_bitField1_ & 0x00008000) != 0)) {
4308 result.useDedicatedDualFeasibilityAlgorithm_ = useDedicatedDualFeasibilityAlgorithm_;
4309 to_bitField1_ |= 0x00008000;
4310 }
4311 if (((from_bitField1_ & 0x00010000) != 0)) {
4312 result.relativeCostPerturbation_ = relativeCostPerturbation_;
4313 to_bitField1_ |= 0x00010000;
4314 }
4315 if (((from_bitField1_ & 0x00020000) != 0)) {
4316 result.relativeMaxCostPerturbation_ = relativeMaxCostPerturbation_;
4317 to_bitField1_ |= 0x00020000;
4318 }
4319 if (((from_bitField1_ & 0x00040000) != 0)) {
4320 result.initialConditionNumberThreshold_ = initialConditionNumberThreshold_;
4321 to_bitField1_ |= 0x00040000;
4322 }
4323 if (((from_bitField1_ & 0x00080000) != 0)) {
4324 result.logSearchProgress_ = logSearchProgress_;
4325 to_bitField1_ |= 0x00080000;
4326 }
4327 if (((from_bitField1_ & 0x00100000) != 0)) {
4328 result.logToStdout_ = logToStdout_;
4329 to_bitField1_ |= 0x00100000;
4330 }
4331 if (((from_bitField1_ & 0x00200000) != 0)) {
4332 result.crossoverBoundSnappingDistance_ = crossoverBoundSnappingDistance_;
4333 to_bitField1_ |= 0x00200000;
4334 }
4335 if (((from_bitField1_ & 0x00400000) != 0)) {
4336 result.pushToVertex_ = pushToVertex_;
4337 to_bitField1_ |= 0x00400000;
4338 }
4339 if (((from_bitField1_ & 0x00800000) != 0)) {
4340 result.useImpliedFreePreprocessor_ = useImpliedFreePreprocessor_;
4341 to_bitField1_ |= 0x00800000;
4342 }
4343 if (((from_bitField1_ & 0x01000000) != 0)) {
4344 result.maxValidMagnitude_ = maxValidMagnitude_;
4345 to_bitField1_ |= 0x01000000;
4346 }
4347 if (((from_bitField1_ & 0x02000000) != 0)) {
4348 result.dropMagnitude_ = dropMagnitude_;
4349 to_bitField1_ |= 0x02000000;
4350 }
4351 if (((from_bitField1_ & 0x04000000) != 0)) {
4352 result.dualPricePrioritizeNorm_ = dualPricePrioritizeNorm_;
4353 to_bitField1_ |= 0x04000000;
4354 }
4355 result.bitField1_ |= to_bitField1_;
4356 }
4357
4358 @java.lang.Override
4359 public Builder mergeFrom(com.google.protobuf.Message other) {
4360 if (other instanceof com.google.ortools.glop.GlopParameters) {
4361 return mergeFrom((com.google.ortools.glop.GlopParameters)other);
4362 } else {
4363 super.mergeFrom(other);
4364 return this;
4365 }
4366 }
4367
4368 public Builder mergeFrom(com.google.ortools.glop.GlopParameters other) {
4369 if (other == com.google.ortools.glop.GlopParameters.getDefaultInstance()) return this;
4370 if (other.hasScalingMethod()) {
4371 setScalingMethod(other.getScalingMethod());
4372 }
4373 if (other.hasFeasibilityRule()) {
4374 setFeasibilityRule(other.getFeasibilityRule());
4375 }
4376 if (other.hasOptimizationRule()) {
4377 setOptimizationRule(other.getOptimizationRule());
4378 }
4379 if (other.hasRefactorizationThreshold()) {
4380 setRefactorizationThreshold(other.getRefactorizationThreshold());
4381 }
4382 if (other.hasRecomputeReducedCostsThreshold()) {
4383 setRecomputeReducedCostsThreshold(other.getRecomputeReducedCostsThreshold());
4384 }
4385 if (other.hasRecomputeEdgesNormThreshold()) {
4386 setRecomputeEdgesNormThreshold(other.getRecomputeEdgesNormThreshold());
4387 }
4388 if (other.hasPrimalFeasibilityTolerance()) {
4389 setPrimalFeasibilityTolerance(other.getPrimalFeasibilityTolerance());
4390 }
4391 if (other.hasDualFeasibilityTolerance()) {
4392 setDualFeasibilityTolerance(other.getDualFeasibilityTolerance());
4393 }
4394 if (other.hasRatioTestZeroThreshold()) {
4395 setRatioTestZeroThreshold(other.getRatioTestZeroThreshold());
4396 }
4397 if (other.hasHarrisToleranceRatio()) {
4398 setHarrisToleranceRatio(other.getHarrisToleranceRatio());
4399 }
4400 if (other.hasSmallPivotThreshold()) {
4401 setSmallPivotThreshold(other.getSmallPivotThreshold());
4402 }
4403 if (other.hasMinimumAcceptablePivot()) {
4404 setMinimumAcceptablePivot(other.getMinimumAcceptablePivot());
4405 }
4406 if (other.hasDropTolerance()) {
4407 setDropTolerance(other.getDropTolerance());
4408 }
4409 if (other.hasUseScaling()) {
4410 setUseScaling(other.getUseScaling());
4411 }
4412 if (other.hasCostScaling()) {
4413 setCostScaling(other.getCostScaling());
4414 }
4415 if (other.hasInitialBasis()) {
4416 setInitialBasis(other.getInitialBasis());
4417 }
4418 if (other.hasUseTransposedMatrix()) {
4419 setUseTransposedMatrix(other.getUseTransposedMatrix());
4420 }
4421 if (other.hasBasisRefactorizationPeriod()) {
4422 setBasisRefactorizationPeriod(other.getBasisRefactorizationPeriod());
4423 }
4424 if (other.hasDynamicallyAdjustRefactorizationPeriod()) {
4425 setDynamicallyAdjustRefactorizationPeriod(other.getDynamicallyAdjustRefactorizationPeriod());
4426 }
4427 if (other.hasSolveDualProblem()) {
4428 setSolveDualProblem(other.getSolveDualProblem());
4429 }
4430 if (other.hasDualizerThreshold()) {
4431 setDualizerThreshold(other.getDualizerThreshold());
4432 }
4433 if (other.hasSolutionFeasibilityTolerance()) {
4434 setSolutionFeasibilityTolerance(other.getSolutionFeasibilityTolerance());
4435 }
4436 if (other.hasProvideStrongOptimalGuarantee()) {
4437 setProvideStrongOptimalGuarantee(other.getProvideStrongOptimalGuarantee());
4438 }
4439 if (other.hasChangeStatusToImprecise()) {
4440 setChangeStatusToImprecise(other.getChangeStatusToImprecise());
4441 }
4442 if (other.hasMaxNumberOfReoptimizations()) {
4443 setMaxNumberOfReoptimizations(other.getMaxNumberOfReoptimizations());
4444 }
4445 if (other.hasLuFactorizationPivotThreshold()) {
4446 setLuFactorizationPivotThreshold(other.getLuFactorizationPivotThreshold());
4447 }
4448 if (other.hasMaxTimeInSeconds()) {
4449 setMaxTimeInSeconds(other.getMaxTimeInSeconds());
4450 }
4451 if (other.hasMaxDeterministicTime()) {
4452 setMaxDeterministicTime(other.getMaxDeterministicTime());
4453 }
4454 if (other.hasMaxNumberOfIterations()) {
4455 setMaxNumberOfIterations(other.getMaxNumberOfIterations());
4456 }
4457 if (other.hasMarkowitzZlatevParameter()) {
4458 setMarkowitzZlatevParameter(other.getMarkowitzZlatevParameter());
4459 }
4460 if (other.hasMarkowitzSingularityThreshold()) {
4461 setMarkowitzSingularityThreshold(other.getMarkowitzSingularityThreshold());
4462 }
4463 if (other.hasUseDualSimplex()) {
4464 setUseDualSimplex(other.getUseDualSimplex());
4465 }
4466 if (other.hasAllowSimplexAlgorithmChange()) {
4467 setAllowSimplexAlgorithmChange(other.getAllowSimplexAlgorithmChange());
4468 }
4469 if (other.hasDevexWeightsResetPeriod()) {
4470 setDevexWeightsResetPeriod(other.getDevexWeightsResetPeriod());
4471 }
4472 if (other.hasUsePreprocessing()) {
4473 setUsePreprocessing(other.getUsePreprocessing());
4474 }
4475 if (other.hasUseMiddleProductFormUpdate()) {
4476 setUseMiddleProductFormUpdate(other.getUseMiddleProductFormUpdate());
4477 }
4478 if (other.hasInitializeDevexWithColumnNorms()) {
4479 setInitializeDevexWithColumnNorms(other.getInitializeDevexWithColumnNorms());
4480 }
4481 if (other.hasExploitSingletonColumnInInitialBasis()) {
4482 setExploitSingletonColumnInInitialBasis(other.getExploitSingletonColumnInInitialBasis());
4483 }
4484 if (other.hasDualSmallPivotThreshold()) {
4485 setDualSmallPivotThreshold(other.getDualSmallPivotThreshold());
4486 }
4487 if (other.hasPreprocessorZeroTolerance()) {
4488 setPreprocessorZeroTolerance(other.getPreprocessorZeroTolerance());
4489 }
4490 if (other.hasObjectiveLowerLimit()) {
4491 setObjectiveLowerLimit(other.getObjectiveLowerLimit());
4492 }
4493 if (other.hasObjectiveUpperLimit()) {
4494 setObjectiveUpperLimit(other.getObjectiveUpperLimit());
4495 }
4496 if (other.hasDegenerateMinistepFactor()) {
4497 setDegenerateMinistepFactor(other.getDegenerateMinistepFactor());
4498 }
4499 if (other.hasRandomSeed()) {
4500 setRandomSeed(other.getRandomSeed());
4501 }
4502 if (other.hasUseAbslRandom()) {
4503 setUseAbslRandom(other.getUseAbslRandom());
4504 }
4505 if (other.hasNumOmpThreads()) {
4506 setNumOmpThreads(other.getNumOmpThreads());
4507 }
4508 if (other.hasPerturbCostsInDualSimplex()) {
4509 setPerturbCostsInDualSimplex(other.getPerturbCostsInDualSimplex());
4510 }
4511 if (other.hasUseDedicatedDualFeasibilityAlgorithm()) {
4512 setUseDedicatedDualFeasibilityAlgorithm(other.getUseDedicatedDualFeasibilityAlgorithm());
4513 }
4514 if (other.hasRelativeCostPerturbation()) {
4515 setRelativeCostPerturbation(other.getRelativeCostPerturbation());
4516 }
4517 if (other.hasRelativeMaxCostPerturbation()) {
4518 setRelativeMaxCostPerturbation(other.getRelativeMaxCostPerturbation());
4519 }
4520 if (other.hasInitialConditionNumberThreshold()) {
4521 setInitialConditionNumberThreshold(other.getInitialConditionNumberThreshold());
4522 }
4523 if (other.hasLogSearchProgress()) {
4524 setLogSearchProgress(other.getLogSearchProgress());
4525 }
4526 if (other.hasLogToStdout()) {
4527 setLogToStdout(other.getLogToStdout());
4528 }
4529 if (other.hasCrossoverBoundSnappingDistance()) {
4530 setCrossoverBoundSnappingDistance(other.getCrossoverBoundSnappingDistance());
4531 }
4532 if (other.hasPushToVertex()) {
4533 setPushToVertex(other.getPushToVertex());
4534 }
4535 if (other.hasUseImpliedFreePreprocessor()) {
4536 setUseImpliedFreePreprocessor(other.getUseImpliedFreePreprocessor());
4537 }
4538 if (other.hasMaxValidMagnitude()) {
4539 setMaxValidMagnitude(other.getMaxValidMagnitude());
4540 }
4541 if (other.hasDropMagnitude()) {
4542 setDropMagnitude(other.getDropMagnitude());
4543 }
4544 if (other.hasDualPricePrioritizeNorm()) {
4545 setDualPricePrioritizeNorm(other.getDualPricePrioritizeNorm());
4546 }
4547 this.mergeUnknownFields(other.getUnknownFields());
4548 onChanged();
4549 return this;
4550 }
4551
4552 @java.lang.Override
4553 public final boolean isInitialized() {
4554 return true;
4555 }
4556
4557 @java.lang.Override
4558 public Builder mergeFrom(
4559 com.google.protobuf.CodedInputStream input,
4560 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4561 throws java.io.IOException {
4562 if (extensionRegistry == null) {
4563 throw new java.lang.NullPointerException();
4564 }
4565 try {
4566 boolean done = false;
4567 while (!done) {
4568 int tag = input.readTag();
4569 switch (tag) {
4570 case 0:
4571 done = true;
4572 break;
4573 case 8: {
4574 int tmpRaw = input.readEnum();
4576 com.google.ortools.glop.GlopParameters.PricingRule.forNumber(tmpRaw);
4577 if (tmpValue == null) {
4578 mergeUnknownVarintField(1, tmpRaw);
4579 } else {
4580 feasibilityRule_ = tmpRaw;
4581 bitField0_ |= 0x00000002;
4582 }
4583 break;
4584 } // case 8
4585 case 16: {
4586 int tmpRaw = input.readEnum();
4588 com.google.ortools.glop.GlopParameters.PricingRule.forNumber(tmpRaw);
4589 if (tmpValue == null) {
4590 mergeUnknownVarintField(2, tmpRaw);
4591 } else {
4592 optimizationRule_ = tmpRaw;
4593 bitField0_ |= 0x00000004;
4594 }
4595 break;
4596 } // case 16
4597 case 49: {
4598 refactorizationThreshold_ = input.readDouble();
4599 bitField0_ |= 0x00000008;
4600 break;
4601 } // case 49
4602 case 65: {
4603 recomputeReducedCostsThreshold_ = input.readDouble();
4604 bitField0_ |= 0x00000010;
4605 break;
4606 } // case 65
4607 case 73: {
4608 recomputeEdgesNormThreshold_ = input.readDouble();
4609 bitField0_ |= 0x00000020;
4610 break;
4611 } // case 73
4612 case 81: {
4613 primalFeasibilityTolerance_ = input.readDouble();
4614 bitField0_ |= 0x00000040;
4615 break;
4616 } // case 81
4617 case 89: {
4618 dualFeasibilityTolerance_ = input.readDouble();
4619 bitField0_ |= 0x00000080;
4620 break;
4621 } // case 89
4622 case 97: {
4623 ratioTestZeroThreshold_ = input.readDouble();
4624 bitField0_ |= 0x00000100;
4625 break;
4626 } // case 97
4627 case 105: {
4628 harrisToleranceRatio_ = input.readDouble();
4629 bitField0_ |= 0x00000200;
4630 break;
4631 } // case 105
4632 case 113: {
4633 smallPivotThreshold_ = input.readDouble();
4634 bitField0_ |= 0x00000400;
4635 break;
4636 } // case 113
4637 case 121: {
4638 minimumAcceptablePivot_ = input.readDouble();
4639 bitField0_ |= 0x00000800;
4640 break;
4641 } // case 121
4642 case 128: {
4643 useScaling_ = input.readBool();
4644 bitField0_ |= 0x00002000;
4645 break;
4646 } // case 128
4647 case 136: {
4648 int tmpRaw = input.readEnum();
4650 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(tmpRaw);
4651 if (tmpValue == null) {
4652 mergeUnknownVarintField(17, tmpRaw);
4653 } else {
4654 initialBasis_ = tmpRaw;
4655 bitField0_ |= 0x00008000;
4656 }
4657 break;
4658 } // case 136
4659 case 144: {
4660 useTransposedMatrix_ = input.readBool();
4661 bitField0_ |= 0x00010000;
4662 break;
4663 } // case 144
4664 case 152: {
4665 basisRefactorizationPeriod_ = input.readInt32();
4666 bitField0_ |= 0x00020000;
4667 break;
4668 } // case 152
4669 case 160: {
4670 int tmpRaw = input.readEnum();
4672 com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(tmpRaw);
4673 if (tmpValue == null) {
4674 mergeUnknownVarintField(20, tmpRaw);
4675 } else {
4676 solveDualProblem_ = tmpRaw;
4677 bitField0_ |= 0x00080000;
4678 }
4679 break;
4680 } // case 160
4681 case 169: {
4682 dualizerThreshold_ = input.readDouble();
4683 bitField0_ |= 0x00100000;
4684 break;
4685 } // case 169
4686 case 177: {
4687 solutionFeasibilityTolerance_ = input.readDouble();
4688 bitField0_ |= 0x00200000;
4689 break;
4690 } // case 177
4691 case 192: {
4692 provideStrongOptimalGuarantee_ = input.readBool();
4693 bitField0_ |= 0x00400000;
4694 break;
4695 } // case 192
4696 case 201: {
4697 luFactorizationPivotThreshold_ = input.readDouble();
4698 bitField0_ |= 0x02000000;
4699 break;
4700 } // case 201
4701 case 209: {
4702 maxTimeInSeconds_ = input.readDouble();
4703 bitField0_ |= 0x04000000;
4704 break;
4705 } // case 209
4706 case 216: {
4707 maxNumberOfIterations_ = input.readInt64();
4708 bitField0_ |= 0x10000000;
4709 break;
4710 } // case 216
4711 case 232: {
4712 markowitzZlatevParameter_ = input.readInt32();
4713 bitField0_ |= 0x20000000;
4714 break;
4715 } // case 232
4716 case 241: {
4717 markowitzSingularityThreshold_ = input.readDouble();
4718 bitField0_ |= 0x40000000;
4719 break;
4720 } // case 241
4721 case 248: {
4722 useDualSimplex_ = input.readBool();
4723 bitField0_ |= 0x80000000;
4724 break;
4725 } // case 248
4726 case 256: {
4727 allowSimplexAlgorithmChange_ = input.readBool();
4728 bitField1_ |= 0x00000001;
4729 break;
4730 } // case 256
4731 case 264: {
4732 devexWeightsResetPeriod_ = input.readInt32();
4733 bitField1_ |= 0x00000002;
4734 break;
4735 } // case 264
4736 case 272: {
4737 usePreprocessing_ = input.readBool();
4738 bitField1_ |= 0x00000004;
4739 break;
4740 } // case 272
4741 case 280: {
4742 useMiddleProductFormUpdate_ = input.readBool();
4743 bitField1_ |= 0x00000008;
4744 break;
4745 } // case 280
4746 case 288: {
4747 initializeDevexWithColumnNorms_ = input.readBool();
4748 bitField1_ |= 0x00000010;
4749 break;
4750 } // case 288
4751 case 296: {
4752 exploitSingletonColumnInInitialBasis_ = input.readBool();
4753 bitField1_ |= 0x00000020;
4754 break;
4755 } // case 296
4756 case 305: {
4757 dualSmallPivotThreshold_ = input.readDouble();
4758 bitField1_ |= 0x00000040;
4759 break;
4760 } // case 305
4761 case 313: {
4762 preprocessorZeroTolerance_ = input.readDouble();
4763 bitField1_ |= 0x00000080;
4764 break;
4765 } // case 313
4766 case 321: {
4767 objectiveLowerLimit_ = input.readDouble();
4768 bitField1_ |= 0x00000100;
4769 break;
4770 } // case 321
4771 case 329: {
4772 objectiveUpperLimit_ = input.readDouble();
4773 bitField1_ |= 0x00000200;
4774 break;
4775 } // case 329
4776 case 337: {
4777 degenerateMinistepFactor_ = input.readDouble();
4778 bitField1_ |= 0x00000400;
4779 break;
4780 } // case 337
4781 case 344: {
4782 randomSeed_ = input.readInt32();
4783 bitField1_ |= 0x00000800;
4784 break;
4785 } // case 344
4786 case 352: {
4787 numOmpThreads_ = input.readInt32();
4788 bitField1_ |= 0x00002000;
4789 break;
4790 } // case 352
4791 case 361: {
4792 maxDeterministicTime_ = input.readDouble();
4793 bitField0_ |= 0x08000000;
4794 break;
4795 } // case 361
4796 case 417: {
4797 dropTolerance_ = input.readDouble();
4798 bitField0_ |= 0x00001000;
4799 break;
4800 } // case 417
4801 case 424: {
4802 perturbCostsInDualSimplex_ = input.readBool();
4803 bitField1_ |= 0x00004000;
4804 break;
4805 } // case 424
4806 case 433: {
4807 relativeCostPerturbation_ = input.readDouble();
4808 bitField1_ |= 0x00010000;
4809 break;
4810 } // case 433
4811 case 441: {
4812 relativeMaxCostPerturbation_ = input.readDouble();
4813 bitField1_ |= 0x00020000;
4814 break;
4815 } // case 441
4816 case 449: {
4817 maxNumberOfReoptimizations_ = input.readDouble();
4818 bitField0_ |= 0x01000000;
4819 break;
4820 } // case 449
4821 case 456: {
4822 int tmpRaw = input.readEnum();
4824 com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(tmpRaw);
4825 if (tmpValue == null) {
4826 mergeUnknownVarintField(57, tmpRaw);
4827 } else {
4828 scalingMethod_ = tmpRaw;
4829 bitField0_ |= 0x00000001;
4830 }
4831 break;
4832 } // case 456
4833 case 464: {
4834 changeStatusToImprecise_ = input.readBool();
4835 bitField0_ |= 0x00800000;
4836 break;
4837 } // case 464
4838 case 473: {
4839 initialConditionNumberThreshold_ = input.readDouble();
4840 bitField1_ |= 0x00040000;
4841 break;
4842 } // case 473
4843 case 480: {
4844 int tmpRaw = input.readEnum();
4846 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(tmpRaw);
4847 if (tmpValue == null) {
4848 mergeUnknownVarintField(60, tmpRaw);
4849 } else {
4850 costScaling_ = tmpRaw;
4851 bitField0_ |= 0x00004000;
4852 }
4853 break;
4854 } // case 480
4855 case 488: {
4856 logSearchProgress_ = input.readBool();
4857 bitField1_ |= 0x00080000;
4858 break;
4859 } // case 488
4860 case 496: {
4861 useDedicatedDualFeasibilityAlgorithm_ = input.readBool();
4862 bitField1_ |= 0x00008000;
4863 break;
4864 } // case 496
4865 case 504: {
4866 dynamicallyAdjustRefactorizationPeriod_ = input.readBool();
4867 bitField0_ |= 0x00040000;
4868 break;
4869 } // case 504
4870 case 513: {
4871 crossoverBoundSnappingDistance_ = input.readDouble();
4872 bitField1_ |= 0x00200000;
4873 break;
4874 } // case 513
4875 case 520: {
4876 pushToVertex_ = input.readBool();
4877 bitField1_ |= 0x00400000;
4878 break;
4879 } // case 520
4880 case 528: {
4881 logToStdout_ = input.readBool();
4882 bitField1_ |= 0x00100000;
4883 break;
4884 } // case 528
4885 case 536: {
4886 useImpliedFreePreprocessor_ = input.readBool();
4887 bitField1_ |= 0x00800000;
4888 break;
4889 } // case 536
4890 case 552: {
4891 dualPricePrioritizeNorm_ = input.readBool();
4892 bitField1_ |= 0x04000000;
4893 break;
4894 } // case 552
4895 case 561: {
4896 maxValidMagnitude_ = input.readDouble();
4897 bitField1_ |= 0x01000000;
4898 break;
4899 } // case 561
4900 case 569: {
4901 dropMagnitude_ = input.readDouble();
4902 bitField1_ |= 0x02000000;
4903 break;
4904 } // case 569
4905 case 576: {
4906 useAbslRandom_ = input.readBool();
4907 bitField1_ |= 0x00001000;
4908 break;
4909 } // case 576
4910 default: {
4911 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
4912 done = true; // was an endgroup tag
4913 }
4914 break;
4915 } // default:
4916 } // switch (tag)
4917 } // while (!done)
4918 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
4919 throw e.unwrapIOException();
4920 } finally {
4921 onChanged();
4922 } // finally
4923 return this;
4924 }
4925 private int bitField0_;
4926 private int bitField1_;
4927
4928 private int scalingMethod_ = 1;
4933 @java.lang.Override public boolean hasScalingMethod() {
4934 return ((bitField0_ & 0x00000001) != 0);
4935 }
4936
4940 @java.lang.Override
4942 com.google.ortools.glop.GlopParameters.ScalingAlgorithm result = com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(scalingMethod_);
4944 }
4945
4950 public Builder setScalingMethod(com.google.ortools.glop.GlopParameters.ScalingAlgorithm value) {
4951 if (value == null) { throw new NullPointerException(); }
4952 bitField0_ |= 0x00000001;
4953 scalingMethod_ = value.getNumber();
4954 onChanged();
4955 return this;
4956 }
4957
4961 public Builder clearScalingMethod() {
4962 bitField0_ = (bitField0_ & ~0x00000001);
4963 scalingMethod_ = 1;
4964 onChanged();
4965 return this;
4966 }
4967
4968 private int feasibilityRule_ = 1;
4977 @java.lang.Override public boolean hasFeasibilityRule() {
4978 return ((bitField0_ & 0x00000002) != 0);
4979 }
4980
4988 @java.lang.Override
4990 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(feasibilityRule_);
4992 }
4993
5002 public Builder setFeasibilityRule(com.google.ortools.glop.GlopParameters.PricingRule value) {
5003 if (value == null) { throw new NullPointerException(); }
5004 bitField0_ |= 0x00000002;
5005 feasibilityRule_ = value.getNumber();
5006 onChanged();
5007 return this;
5008 }
5009
5017 public Builder clearFeasibilityRule() {
5018 bitField0_ = (bitField0_ & ~0x00000002);
5019 feasibilityRule_ = 1;
5020 onChanged();
5021 return this;
5022 }
5023
5024 private int optimizationRule_ = 1;
5033 @java.lang.Override public boolean hasOptimizationRule() {
5034 return ((bitField0_ & 0x00000004) != 0);
5035 }
5036
5044 @java.lang.Override
5046 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(optimizationRule_);
5048 }
5049
5058 public Builder setOptimizationRule(com.google.ortools.glop.GlopParameters.PricingRule value) {
5059 if (value == null) { throw new NullPointerException(); }
5060 bitField0_ |= 0x00000004;
5061 optimizationRule_ = value.getNumber();
5062 onChanged();
5063 return this;
5064 }
5065
5073 public Builder clearOptimizationRule() {
5074 bitField0_ = (bitField0_ & ~0x00000004);
5075 optimizationRule_ = 1;
5076 onChanged();
5077 return this;
5078 }
5079
5080 private double refactorizationThreshold_ = 1e-09D;
5094 @java.lang.Override
5096 return ((bitField0_ & 0x00000008) != 0);
5097 }
5098
5111 @java.lang.Override
5113 return refactorizationThreshold_;
5114 }
5115
5129 public Builder setRefactorizationThreshold(double value) {
5130
5131 refactorizationThreshold_ = value;
5132 bitField0_ |= 0x00000008;
5133 onChanged();
5134 return this;
5135 }
5136
5150 bitField0_ = (bitField0_ & ~0x00000008);
5151 refactorizationThreshold_ = 1e-09D;
5152 onChanged();
5153 return this;
5154 }
5155
5156 private double recomputeReducedCostsThreshold_ = 1e-08D;
5169 @java.lang.Override
5171 return ((bitField0_ & 0x00000010) != 0);
5172 }
5173
5185 @java.lang.Override
5187 return recomputeReducedCostsThreshold_;
5188 }
5189
5202 public Builder setRecomputeReducedCostsThreshold(double value) {
5203
5204 recomputeReducedCostsThreshold_ = value;
5205 bitField0_ |= 0x00000010;
5206 onChanged();
5207 return this;
5208 }
5209
5222 bitField0_ = (bitField0_ & ~0x00000010);
5223 recomputeReducedCostsThreshold_ = 1e-08D;
5224 onChanged();
5225 return this;
5226 }
5227
5228 private double recomputeEdgesNormThreshold_ = 100D;
5241 @java.lang.Override
5243 return ((bitField0_ & 0x00000020) != 0);
5244 }
5245
5257 @java.lang.Override
5259 return recomputeEdgesNormThreshold_;
5260 }
5261
5274 public Builder setRecomputeEdgesNormThreshold(double value) {
5275
5276 recomputeEdgesNormThreshold_ = value;
5277 bitField0_ |= 0x00000020;
5278 onChanged();
5279 return this;
5280 }
5281
5294 bitField0_ = (bitField0_ & ~0x00000020);
5295 recomputeEdgesNormThreshold_ = 100D;
5296 onChanged();
5297 return this;
5298 }
5299
5300 private double primalFeasibilityTolerance_ = 1e-08D;
5315 @java.lang.Override
5317 return ((bitField0_ & 0x00000040) != 0);
5318 }
5319
5333 @java.lang.Override
5335 return primalFeasibilityTolerance_;
5336 }
5337
5352 public Builder setPrimalFeasibilityTolerance(double value) {
5353
5354 primalFeasibilityTolerance_ = value;
5355 bitField0_ |= 0x00000040;
5356 onChanged();
5357 return this;
5358 }
5359
5374 bitField0_ = (bitField0_ & ~0x00000040);
5375 primalFeasibilityTolerance_ = 1e-08D;
5376 onChanged();
5377 return this;
5378 }
5379
5380 private double dualFeasibilityTolerance_ = 1e-08D;
5398 @java.lang.Override
5400 return ((bitField0_ & 0x00000080) != 0);
5401 }
5402
5419 @java.lang.Override
5421 return dualFeasibilityTolerance_;
5422 }
5423
5441 public Builder setDualFeasibilityTolerance(double value) {
5442
5443 dualFeasibilityTolerance_ = value;
5444 bitField0_ |= 0x00000080;
5445 onChanged();
5446 return this;
5447 }
5448
5466 bitField0_ = (bitField0_ & ~0x00000080);
5467 dualFeasibilityTolerance_ = 1e-08D;
5468 onChanged();
5469 return this;
5470 }
5471
5472 private double ratioTestZeroThreshold_ = 1e-09D;
5487 @java.lang.Override
5488 public boolean hasRatioTestZeroThreshold() {
5489 return ((bitField0_ & 0x00000100) != 0);
5490 }
5491
5505 @java.lang.Override
5507 return ratioTestZeroThreshold_;
5508 }
5509
5524 public Builder setRatioTestZeroThreshold(double value) {
5525
5526 ratioTestZeroThreshold_ = value;
5527 bitField0_ |= 0x00000100;
5528 onChanged();
5529 return this;
5530 }
5531
5546 bitField0_ = (bitField0_ & ~0x00000100);
5547 ratioTestZeroThreshold_ = 1e-09D;
5548 onChanged();
5549 return this;
5550 }
5551
5552 private double harrisToleranceRatio_ = 0.5D;
5571 @java.lang.Override
5572 public boolean hasHarrisToleranceRatio() {
5573 return ((bitField0_ & 0x00000200) != 0);
5574 }
5575
5593 @java.lang.Override
5594 public double getHarrisToleranceRatio() {
5595 return harrisToleranceRatio_;
5596 }
5597
5616 public Builder setHarrisToleranceRatio(double value) {
5617
5618 harrisToleranceRatio_ = value;
5619 bitField0_ |= 0x00000200;
5620 onChanged();
5621 return this;
5622 }
5623
5641 public Builder clearHarrisToleranceRatio() {
5642 bitField0_ = (bitField0_ & ~0x00000200);
5643 harrisToleranceRatio_ = 0.5D;
5644 onChanged();
5645 return this;
5646 }
5647
5648 private double smallPivotThreshold_ = 1e-06D;
5660 @java.lang.Override
5661 public boolean hasSmallPivotThreshold() {
5662 return ((bitField0_ & 0x00000400) != 0);
5663 }
5664
5675 @java.lang.Override
5676 public double getSmallPivotThreshold() {
5677 return smallPivotThreshold_;
5678 }
5679
5691 public Builder setSmallPivotThreshold(double value) {
5692
5693 smallPivotThreshold_ = value;
5694 bitField0_ |= 0x00000400;
5695 onChanged();
5696 return this;
5697 }
5698
5709 public Builder clearSmallPivotThreshold() {
5710 bitField0_ = (bitField0_ & ~0x00000400);
5711 smallPivotThreshold_ = 1e-06D;
5712 onChanged();
5713 return this;
5714 }
5715
5716 private double minimumAcceptablePivot_ = 1e-06D;
5725 @java.lang.Override
5726 public boolean hasMinimumAcceptablePivot() {
5727 return ((bitField0_ & 0x00000800) != 0);
5728 }
5729
5737 @java.lang.Override
5739 return minimumAcceptablePivot_;
5740 }
5741
5750 public Builder setMinimumAcceptablePivot(double value) {
5751
5752 minimumAcceptablePivot_ = value;
5753 bitField0_ |= 0x00000800;
5754 onChanged();
5755 return this;
5756 }
5757
5766 bitField0_ = (bitField0_ & ~0x00000800);
5767 minimumAcceptablePivot_ = 1e-06D;
5768 onChanged();
5769 return this;
5770 }
5771
5772 private double dropTolerance_ = 1e-14D;
5783 @java.lang.Override
5784 public boolean hasDropTolerance() {
5785 return ((bitField0_ & 0x00001000) != 0);
5786 }
5787
5797 @java.lang.Override
5798 public double getDropTolerance() {
5799 return dropTolerance_;
5800 }
5801
5812 public Builder setDropTolerance(double value) {
5813
5814 dropTolerance_ = value;
5815 bitField0_ |= 0x00001000;
5816 onChanged();
5817 return this;
5818 }
5819
5829 public Builder clearDropTolerance() {
5830 bitField0_ = (bitField0_ & ~0x00001000);
5831 dropTolerance_ = 1e-14D;
5832 onChanged();
5833 return this;
5834 }
5835
5836 private boolean useScaling_ = true;
5846 @java.lang.Override
5847 public boolean hasUseScaling() {
5848 return ((bitField0_ & 0x00002000) != 0);
5849 }
5850
5859 @java.lang.Override
5860 public boolean getUseScaling() {
5861 return useScaling_;
5862 }
5863
5873 public Builder setUseScaling(boolean value) {
5874
5875 useScaling_ = value;
5876 bitField0_ |= 0x00002000;
5877 onChanged();
5878 return this;
5879 }
5880
5889 public Builder clearUseScaling() {
5890 bitField0_ = (bitField0_ & ~0x00002000);
5891 useScaling_ = true;
5892 onChanged();
5893 return this;
5894 }
5895
5896 private int costScaling_ = 1;
5901 @java.lang.Override public boolean hasCostScaling() {
5902 return ((bitField0_ & 0x00004000) != 0);
5903 }
5904
5908 @java.lang.Override
5910 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm result = com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(costScaling_);
5912 }
5913
5918 public Builder setCostScaling(com.google.ortools.glop.GlopParameters.CostScalingAlgorithm value) {
5919 if (value == null) { throw new NullPointerException(); }
5920 bitField0_ |= 0x00004000;
5921 costScaling_ = value.getNumber();
5922 onChanged();
5923 return this;
5924 }
5925
5929 public Builder clearCostScaling() {
5930 bitField0_ = (bitField0_ & ~0x00004000);
5931 costScaling_ = 1;
5932 onChanged();
5933 return this;
5934 }
5935
5936 private int initialBasis_ = 2;
5946 @java.lang.Override public boolean hasInitialBasis() {
5947 return ((bitField0_ & 0x00008000) != 0);
5948 }
5949
5958 @java.lang.Override
5960 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic result = com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(initialBasis_);
5962 }
5963
5973 public Builder setInitialBasis(com.google.ortools.glop.GlopParameters.InitialBasisHeuristic value) {
5974 if (value == null) { throw new NullPointerException(); }
5975 bitField0_ |= 0x00008000;
5976 initialBasis_ = value.getNumber();
5977 onChanged();
5978 return this;
5979 }
5980
5989 public Builder clearInitialBasis() {
5990 bitField0_ = (bitField0_ & ~0x00008000);
5991 initialBasis_ = 2;
5992 onChanged();
5993 return this;
5994 }
5995
5996 private boolean useTransposedMatrix_ = true;
6007 @java.lang.Override
6008 public boolean hasUseTransposedMatrix() {
6009 return ((bitField0_ & 0x00010000) != 0);
6010 }
6011
6021 @java.lang.Override
6022 public boolean getUseTransposedMatrix() {
6023 return useTransposedMatrix_;
6024 }
6025
6036 public Builder setUseTransposedMatrix(boolean value) {
6037
6038 useTransposedMatrix_ = value;
6039 bitField0_ |= 0x00010000;
6040 onChanged();
6041 return this;
6042 }
6043
6053 public Builder clearUseTransposedMatrix() {
6054 bitField0_ = (bitField0_ & ~0x00010000);
6055 useTransposedMatrix_ = true;
6056 onChanged();
6057 return this;
6058 }
6059
6060 private int basisRefactorizationPeriod_ = 64;
6071 @java.lang.Override
6073 return ((bitField0_ & 0x00020000) != 0);
6074 }
6075
6085 @java.lang.Override
6087 return basisRefactorizationPeriod_;
6088 }
6089
6100 public Builder setBasisRefactorizationPeriod(int value) {
6101
6102 basisRefactorizationPeriod_ = value;
6103 bitField0_ |= 0x00020000;
6104 onChanged();
6105 return this;
6106 }
6107
6118 bitField0_ = (bitField0_ & ~0x00020000);
6119 basisRefactorizationPeriod_ = 64;
6120 onChanged();
6121 return this;
6122 }
6123
6124 private boolean dynamicallyAdjustRefactorizationPeriod_ = true;
6137 @java.lang.Override
6139 return ((bitField0_ & 0x00040000) != 0);
6140 }
6141
6153 @java.lang.Override
6155 return dynamicallyAdjustRefactorizationPeriod_;
6156 }
6157
6170 public Builder setDynamicallyAdjustRefactorizationPeriod(boolean value) {
6171
6172 dynamicallyAdjustRefactorizationPeriod_ = value;
6173 bitField0_ |= 0x00040000;
6174 onChanged();
6175 return this;
6176 }
6177
6190 bitField0_ = (bitField0_ & ~0x00040000);
6191 dynamicallyAdjustRefactorizationPeriod_ = true;
6192 onChanged();
6193 return this;
6194 }
6195
6196 private int solveDualProblem_ = 2;
6207 @java.lang.Override public boolean hasSolveDualProblem() {
6208 return ((bitField0_ & 0x00080000) != 0);
6209 }
6210
6220 @java.lang.Override
6222 com.google.ortools.glop.GlopParameters.SolverBehavior result = com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(solveDualProblem_);
6224 }
6225
6236 public Builder setSolveDualProblem(com.google.ortools.glop.GlopParameters.SolverBehavior value) {
6237 if (value == null) { throw new NullPointerException(); }
6238 bitField0_ |= 0x00080000;
6239 solveDualProblem_ = value.getNumber();
6240 onChanged();
6241 return this;
6242 }
6243
6253 public Builder clearSolveDualProblem() {
6254 bitField0_ = (bitField0_ & ~0x00080000);
6255 solveDualProblem_ = 2;
6256 onChanged();
6257 return this;
6258 }
6259
6260 private double dualizerThreshold_ = 1.5D;
6271 @java.lang.Override
6272 public boolean hasDualizerThreshold() {
6273 return ((bitField0_ & 0x00100000) != 0);
6274 }
6275
6285 @java.lang.Override
6286 public double getDualizerThreshold() {
6287 return dualizerThreshold_;
6288 }
6289
6300 public Builder setDualizerThreshold(double value) {
6301
6302 dualizerThreshold_ = value;
6303 bitField0_ |= 0x00100000;
6304 onChanged();
6305 return this;
6306 }
6307
6317 public Builder clearDualizerThreshold() {
6318 bitField0_ = (bitField0_ & ~0x00100000);
6319 dualizerThreshold_ = 1.5D;
6320 onChanged();
6321 return this;
6322 }
6323
6324 private double solutionFeasibilityTolerance_ = 1e-06D;
6340 @java.lang.Override
6342 return ((bitField0_ & 0x00200000) != 0);
6343 }
6344
6359 @java.lang.Override
6361 return solutionFeasibilityTolerance_;
6362 }
6363
6379 public Builder setSolutionFeasibilityTolerance(double value) {
6380
6381 solutionFeasibilityTolerance_ = value;
6382 bitField0_ |= 0x00200000;
6383 onChanged();
6384 return this;
6385 }
6386
6402 bitField0_ = (bitField0_ & ~0x00200000);
6403 solutionFeasibilityTolerance_ = 1e-06D;
6404 onChanged();
6405 return this;
6406 }
6407
6408 private boolean provideStrongOptimalGuarantee_ = true;
6434 @java.lang.Override
6436 return ((bitField0_ & 0x00400000) != 0);
6437 }
6438
6463 @java.lang.Override
6465 return provideStrongOptimalGuarantee_;
6466 }
6467
6493 public Builder setProvideStrongOptimalGuarantee(boolean value) {
6494
6495 provideStrongOptimalGuarantee_ = value;
6496 bitField0_ |= 0x00400000;
6497 onChanged();
6498 return this;
6499 }
6500
6526 bitField0_ = (bitField0_ & ~0x00400000);
6527 provideStrongOptimalGuarantee_ = true;
6528 onChanged();
6529 return this;
6530 }
6531
6532 private boolean changeStatusToImprecise_ = true;
6542 @java.lang.Override
6544 return ((bitField0_ & 0x00800000) != 0);
6545 }
6546
6555 @java.lang.Override
6557 return changeStatusToImprecise_;
6558 }
6559
6569 public Builder setChangeStatusToImprecise(boolean value) {
6570
6571 changeStatusToImprecise_ = value;
6572 bitField0_ |= 0x00800000;
6573 onChanged();
6574 return this;
6575 }
6576
6586 bitField0_ = (bitField0_ & ~0x00800000);
6587 changeStatusToImprecise_ = true;
6588 onChanged();
6589 return this;
6590 }
6591
6592 private double maxNumberOfReoptimizations_ = 40D;
6604 @java.lang.Override
6606 return ((bitField0_ & 0x01000000) != 0);
6607 }
6608
6619 @java.lang.Override
6621 return maxNumberOfReoptimizations_;
6622 }
6623
6635 public Builder setMaxNumberOfReoptimizations(double value) {
6636
6637 maxNumberOfReoptimizations_ = value;
6638 bitField0_ |= 0x01000000;
6639 onChanged();
6640 return this;
6641 }
6642
6654 bitField0_ = (bitField0_ & ~0x01000000);
6655 maxNumberOfReoptimizations_ = 40D;
6656 onChanged();
6657 return this;
6658 }
6659
6660 private double luFactorizationPivotThreshold_ = 0.01D;
6672 @java.lang.Override
6674 return ((bitField0_ & 0x02000000) != 0);
6675 }
6676
6687 @java.lang.Override
6689 return luFactorizationPivotThreshold_;
6690 }
6691
6703 public Builder setLuFactorizationPivotThreshold(double value) {
6704
6705 luFactorizationPivotThreshold_ = value;
6706 bitField0_ |= 0x02000000;
6707 onChanged();
6708 return this;
6709 }
6710
6722 bitField0_ = (bitField0_ & ~0x02000000);
6723 luFactorizationPivotThreshold_ = 0.01D;
6724 onChanged();
6725 return this;
6726 }
6727
6728 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
6737 @java.lang.Override
6738 public boolean hasMaxTimeInSeconds() {
6739 return ((bitField0_ & 0x04000000) != 0);
6740 }
6741
6749 @java.lang.Override
6750 public double getMaxTimeInSeconds() {
6751 return maxTimeInSeconds_;
6752 }
6753
6762 public Builder setMaxTimeInSeconds(double value) {
6763
6764 maxTimeInSeconds_ = value;
6765 bitField0_ |= 0x04000000;
6766 onChanged();
6767 return this;
6768 }
6769
6777 public Builder clearMaxTimeInSeconds() {
6778 bitField0_ = (bitField0_ & ~0x04000000);
6779 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
6780 onChanged();
6781 return this;
6782 }
6783
6784 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
6797 @java.lang.Override
6798 public boolean hasMaxDeterministicTime() {
6799 return ((bitField0_ & 0x08000000) != 0);
6800 }
6801
6813 @java.lang.Override
6814 public double getMaxDeterministicTime() {
6815 return maxDeterministicTime_;
6816 }
6817
6830 public Builder setMaxDeterministicTime(double value) {
6831
6832 maxDeterministicTime_ = value;
6833 bitField0_ |= 0x08000000;
6834 onChanged();
6835 return this;
6836 }
6837
6849 public Builder clearMaxDeterministicTime() {
6850 bitField0_ = (bitField0_ & ~0x08000000);
6851 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
6852 onChanged();
6853 return this;
6854 }
6855
6856 private long maxNumberOfIterations_ = -1L;
6866 @java.lang.Override
6867 public boolean hasMaxNumberOfIterations() {
6868 return ((bitField0_ & 0x10000000) != 0);
6869 }
6870
6879 @java.lang.Override
6881 return maxNumberOfIterations_;
6882 }
6883
6893 public Builder setMaxNumberOfIterations(long value) {
6894
6895 maxNumberOfIterations_ = value;
6896 bitField0_ |= 0x10000000;
6897 onChanged();
6898 return this;
6899 }
6900
6910 bitField0_ = (bitField0_ & ~0x10000000);
6911 maxNumberOfIterations_ = -1L;
6912 onChanged();
6913 return this;
6914 }
6915
6916 private int markowitzZlatevParameter_ = 3;
6926 @java.lang.Override
6928 return ((bitField0_ & 0x20000000) != 0);
6929 }
6930
6939 @java.lang.Override
6941 return markowitzZlatevParameter_;
6942 }
6943
6953 public Builder setMarkowitzZlatevParameter(int value) {
6954
6955 markowitzZlatevParameter_ = value;
6956 bitField0_ |= 0x20000000;
6957 onChanged();
6958 return this;
6959 }
6960
6970 bitField0_ = (bitField0_ & ~0x20000000);
6971 markowitzZlatevParameter_ = 3;
6972 onChanged();
6973 return this;
6974 }
6975
6976 private double markowitzSingularityThreshold_ = 1e-15D;
6988 @java.lang.Override
6990 return ((bitField0_ & 0x40000000) != 0);
6991 }
6992
7003 @java.lang.Override
7005 return markowitzSingularityThreshold_;
7006 }
7007
7019 public Builder setMarkowitzSingularityThreshold(double value) {
7020
7021 markowitzSingularityThreshold_ = value;
7022 bitField0_ |= 0x40000000;
7023 onChanged();
7024 return this;
7025 }
7026
7038 bitField0_ = (bitField0_ & ~0x40000000);
7039 markowitzSingularityThreshold_ = 1e-15D;
7040 onChanged();
7041 return this;
7042 }
7043
7044 private boolean useDualSimplex_ ;
7053 @java.lang.Override
7054 public boolean hasUseDualSimplex() {
7055 return ((bitField0_ & 0x80000000) != 0);
7056 }
7057
7065 @java.lang.Override
7066 public boolean getUseDualSimplex() {
7067 return useDualSimplex_;
7068 }
7069
7078 public Builder setUseDualSimplex(boolean value) {
7079
7080 useDualSimplex_ = value;
7081 bitField0_ |= 0x80000000;
7082 onChanged();
7083 return this;
7084 }
7085
7093 public Builder clearUseDualSimplex() {
7094 bitField0_ = (bitField0_ & ~0x80000000);
7095 useDualSimplex_ = false;
7096 onChanged();
7097 return this;
7098 }
7099
7100 private boolean allowSimplexAlgorithmChange_ ;
7112 @java.lang.Override
7114 return ((bitField1_ & 0x00000001) != 0);
7115 }
7116
7127 @java.lang.Override
7129 return allowSimplexAlgorithmChange_;
7130 }
7131
7143 public Builder setAllowSimplexAlgorithmChange(boolean value) {
7144
7145 allowSimplexAlgorithmChange_ = value;
7146 bitField1_ |= 0x00000001;
7147 onChanged();
7148 return this;
7149 }
7150
7162 bitField1_ = (bitField1_ & ~0x00000001);
7163 allowSimplexAlgorithmChange_ = false;
7164 onChanged();
7165 return this;
7166 }
7167
7168 private int devexWeightsResetPeriod_ = 150;
7177 @java.lang.Override
7179 return ((bitField1_ & 0x00000002) != 0);
7180 }
7181
7189 @java.lang.Override
7191 return devexWeightsResetPeriod_;
7192 }
7193
7202 public Builder setDevexWeightsResetPeriod(int value) {
7203
7204 devexWeightsResetPeriod_ = value;
7205 bitField1_ |= 0x00000002;
7206 onChanged();
7207 return this;
7208 }
7209
7218 bitField1_ = (bitField1_ & ~0x00000002);
7219 devexWeightsResetPeriod_ = 150;
7220 onChanged();
7221 return this;
7222 }
7223
7224 private boolean usePreprocessing_ = true;
7233 @java.lang.Override
7234 public boolean hasUsePreprocessing() {
7235 return ((bitField1_ & 0x00000004) != 0);
7236 }
7237
7245 @java.lang.Override
7246 public boolean getUsePreprocessing() {
7247 return usePreprocessing_;
7248 }
7249
7258 public Builder setUsePreprocessing(boolean value) {
7259
7260 usePreprocessing_ = value;
7261 bitField1_ |= 0x00000004;
7262 onChanged();
7263 return this;
7264 }
7265
7273 public Builder clearUsePreprocessing() {
7274 bitField1_ = (bitField1_ & ~0x00000004);
7275 usePreprocessing_ = true;
7276 onChanged();
7277 return this;
7278 }
7279
7280 private boolean useMiddleProductFormUpdate_ = true;
7295 @java.lang.Override
7297 return ((bitField1_ & 0x00000008) != 0);
7298 }
7299
7313 @java.lang.Override
7315 return useMiddleProductFormUpdate_;
7316 }
7317
7332 public Builder setUseMiddleProductFormUpdate(boolean value) {
7333
7334 useMiddleProductFormUpdate_ = value;
7335 bitField1_ |= 0x00000008;
7336 onChanged();
7337 return this;
7338 }
7339
7354 bitField1_ = (bitField1_ & ~0x00000008);
7355 useMiddleProductFormUpdate_ = true;
7356 onChanged();
7357 return this;
7358 }
7359
7360 private boolean initializeDevexWithColumnNorms_ = true;
7370 @java.lang.Override
7372 return ((bitField1_ & 0x00000010) != 0);
7373 }
7374
7383 @java.lang.Override
7385 return initializeDevexWithColumnNorms_;
7386 }
7387
7397 public Builder setInitializeDevexWithColumnNorms(boolean value) {
7398
7399 initializeDevexWithColumnNorms_ = value;
7400 bitField1_ |= 0x00000010;
7401 onChanged();
7402 return this;
7403 }
7404
7414 bitField1_ = (bitField1_ & ~0x00000010);
7415 initializeDevexWithColumnNorms_ = true;
7416 onChanged();
7417 return this;
7418 }
7419
7420 private boolean exploitSingletonColumnInInitialBasis_ = true;
7430 @java.lang.Override
7432 return ((bitField1_ & 0x00000020) != 0);
7433 }
7434
7443 @java.lang.Override
7445 return exploitSingletonColumnInInitialBasis_;
7446 }
7447
7457 public Builder setExploitSingletonColumnInInitialBasis(boolean value) {
7458
7459 exploitSingletonColumnInInitialBasis_ = value;
7460 bitField1_ |= 0x00000020;
7461 onChanged();
7462 return this;
7463 }
7464
7474 bitField1_ = (bitField1_ & ~0x00000020);
7475 exploitSingletonColumnInInitialBasis_ = true;
7476 onChanged();
7477 return this;
7478 }
7479
7480 private double dualSmallPivotThreshold_ = 0.0001D;
7491 @java.lang.Override
7493 return ((bitField1_ & 0x00000040) != 0);
7494 }
7495
7505 @java.lang.Override
7507 return dualSmallPivotThreshold_;
7508 }
7509
7520 public Builder setDualSmallPivotThreshold(double value) {
7521
7522 dualSmallPivotThreshold_ = value;
7523 bitField1_ |= 0x00000040;
7524 onChanged();
7525 return this;
7526 }
7527
7538 bitField1_ = (bitField1_ & ~0x00000040);
7539 dualSmallPivotThreshold_ = 0.0001D;
7540 onChanged();
7541 return this;
7542 }
7543
7544 private double preprocessorZeroTolerance_ = 1e-09D;
7558 @java.lang.Override
7560 return ((bitField1_ & 0x00000080) != 0);
7561 }
7562
7575 @java.lang.Override
7577 return preprocessorZeroTolerance_;
7578 }
7579
7593 public Builder setPreprocessorZeroTolerance(double value) {
7594
7595 preprocessorZeroTolerance_ = value;
7596 bitField1_ |= 0x00000080;
7597 onChanged();
7598 return this;
7599 }
7600
7614 bitField1_ = (bitField1_ & ~0x00000080);
7615 preprocessorZeroTolerance_ = 1e-09D;
7616 onChanged();
7617 return this;
7618 }
7619
7620 private double objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
7637 @java.lang.Override
7638 public boolean hasObjectiveLowerLimit() {
7639 return ((bitField1_ & 0x00000100) != 0);
7640 }
7641
7657 @java.lang.Override
7658 public double getObjectiveLowerLimit() {
7659 return objectiveLowerLimit_;
7660 }
7661
7678 public Builder setObjectiveLowerLimit(double value) {
7679
7680 objectiveLowerLimit_ = value;
7681 bitField1_ |= 0x00000100;
7682 onChanged();
7683 return this;
7684 }
7685
7701 public Builder clearObjectiveLowerLimit() {
7702 bitField1_ = (bitField1_ & ~0x00000100);
7703 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
7704 onChanged();
7705 return this;
7706 }
7707
7708 private double objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
7713 @java.lang.Override
7714 public boolean hasObjectiveUpperLimit() {
7715 return ((bitField1_ & 0x00000200) != 0);
7716 }
7717
7721 @java.lang.Override
7722 public double getObjectiveUpperLimit() {
7723 return objectiveUpperLimit_;
7724 }
7725
7730 public Builder setObjectiveUpperLimit(double value) {
7731
7732 objectiveUpperLimit_ = value;
7733 bitField1_ |= 0x00000200;
7734 onChanged();
7735 return this;
7736 }
7737
7741 public Builder clearObjectiveUpperLimit() {
7742 bitField1_ = (bitField1_ & ~0x00000200);
7743 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
7744 onChanged();
7745 return this;
7746 }
7747
7748 private double degenerateMinistepFactor_ = 0.01D;
7774 @java.lang.Override
7776 return ((bitField1_ & 0x00000400) != 0);
7777 }
7778
7803 @java.lang.Override
7805 return degenerateMinistepFactor_;
7806 }
7807
7833 public Builder setDegenerateMinistepFactor(double value) {
7834
7835 degenerateMinistepFactor_ = value;
7836 bitField1_ |= 0x00000400;
7837 onChanged();
7838 return this;
7839 }
7840
7866 bitField1_ = (bitField1_ & ~0x00000400);
7867 degenerateMinistepFactor_ = 0.01D;
7868 onChanged();
7869 return this;
7870 }
7871
7872 private int randomSeed_ = 1;
7895 @java.lang.Override
7896 public boolean hasRandomSeed() {
7897 return ((bitField1_ & 0x00000800) != 0);
7898 }
7899
7921 @java.lang.Override
7922 public int getRandomSeed() {
7923 return randomSeed_;
7924 }
7925
7948 public Builder setRandomSeed(int value) {
7949
7950 randomSeed_ = value;
7951 bitField1_ |= 0x00000800;
7952 onChanged();
7953 return this;
7954 }
7955
7977 public Builder clearRandomSeed() {
7978 bitField1_ = (bitField1_ & ~0x00000800);
7979 randomSeed_ = 1;
7980 onChanged();
7981 return this;
7982 }
7983
7984 private boolean useAbslRandom_ ;
7993 @java.lang.Override
7994 public boolean hasUseAbslRandom() {
7995 return ((bitField1_ & 0x00001000) != 0);
7996 }
7997
8005 @java.lang.Override
8006 public boolean getUseAbslRandom() {
8007 return useAbslRandom_;
8008 }
8009
8018 public Builder setUseAbslRandom(boolean value) {
8019
8020 useAbslRandom_ = value;
8021 bitField1_ |= 0x00001000;
8022 onChanged();
8023 return this;
8024 }
8025
8033 public Builder clearUseAbslRandom() {
8034 bitField1_ = (bitField1_ & ~0x00001000);
8035 useAbslRandom_ = false;
8036 onChanged();
8037 return this;
8038 }
8039
8040 private int numOmpThreads_ = 1;
8050 @java.lang.Override
8051 public boolean hasNumOmpThreads() {
8052 return ((bitField1_ & 0x00002000) != 0);
8053 }
8054
8063 @java.lang.Override
8064 public int getNumOmpThreads() {
8065 return numOmpThreads_;
8066 }
8067
8077 public Builder setNumOmpThreads(int value) {
8078
8079 numOmpThreads_ = value;
8080 bitField1_ |= 0x00002000;
8081 onChanged();
8082 return this;
8083 }
8084
8093 public Builder clearNumOmpThreads() {
8094 bitField1_ = (bitField1_ & ~0x00002000);
8095 numOmpThreads_ = 1;
8096 onChanged();
8097 return this;
8098 }
8099
8100 private boolean perturbCostsInDualSimplex_ ;
8112 @java.lang.Override
8114 return ((bitField1_ & 0x00004000) != 0);
8115 }
8116
8127 @java.lang.Override
8129 return perturbCostsInDualSimplex_;
8130 }
8131
8143 public Builder setPerturbCostsInDualSimplex(boolean value) {
8144
8145 perturbCostsInDualSimplex_ = value;
8146 bitField1_ |= 0x00004000;
8147 onChanged();
8148 return this;
8149 }
8150
8162 bitField1_ = (bitField1_ & ~0x00004000);
8163 perturbCostsInDualSimplex_ = false;
8164 onChanged();
8165 return this;
8166 }
8167
8168 private boolean useDedicatedDualFeasibilityAlgorithm_ = true;
8184 @java.lang.Override
8186 return ((bitField1_ & 0x00008000) != 0);
8187 }
8188
8203 @java.lang.Override
8205 return useDedicatedDualFeasibilityAlgorithm_;
8206 }
8207
8223 public Builder setUseDedicatedDualFeasibilityAlgorithm(boolean value) {
8224
8225 useDedicatedDualFeasibilityAlgorithm_ = value;
8226 bitField1_ |= 0x00008000;
8227 onChanged();
8228 return this;
8229 }
8230
8246 bitField1_ = (bitField1_ & ~0x00008000);
8247 useDedicatedDualFeasibilityAlgorithm_ = true;
8248 onChanged();
8249 return this;
8250 }
8251
8252 private double relativeCostPerturbation_ = 1e-05D;
8264 @java.lang.Override
8266 return ((bitField1_ & 0x00010000) != 0);
8267 }
8268
8279 @java.lang.Override
8281 return relativeCostPerturbation_;
8282 }
8283
8295 public Builder setRelativeCostPerturbation(double value) {
8296
8297 relativeCostPerturbation_ = value;
8298 bitField1_ |= 0x00010000;
8299 onChanged();
8300 return this;
8301 }
8302
8314 bitField1_ = (bitField1_ & ~0x00010000);
8315 relativeCostPerturbation_ = 1e-05D;
8316 onChanged();
8317 return this;
8318 }
8319
8320 private double relativeMaxCostPerturbation_ = 1e-07D;
8325 @java.lang.Override
8327 return ((bitField1_ & 0x00020000) != 0);
8328 }
8329
8333 @java.lang.Override
8335 return relativeMaxCostPerturbation_;
8336 }
8337
8342 public Builder setRelativeMaxCostPerturbation(double value) {
8343
8344 relativeMaxCostPerturbation_ = value;
8345 bitField1_ |= 0x00020000;
8346 onChanged();
8347 return this;
8348 }
8349
8354 bitField1_ = (bitField1_ & ~0x00020000);
8355 relativeMaxCostPerturbation_ = 1e-07D;
8356 onChanged();
8357 return this;
8358 }
8359
8360 private double initialConditionNumberThreshold_ = 1e+50D;
8371 @java.lang.Override
8373 return ((bitField1_ & 0x00040000) != 0);
8374 }
8375
8385 @java.lang.Override
8387 return initialConditionNumberThreshold_;
8388 }
8389
8400 public Builder setInitialConditionNumberThreshold(double value) {
8401
8402 initialConditionNumberThreshold_ = value;
8403 bitField1_ |= 0x00040000;
8404 onChanged();
8405 return this;
8406 }
8407
8418 bitField1_ = (bitField1_ & ~0x00040000);
8419 initialConditionNumberThreshold_ = 1e+50D;
8420 onChanged();
8421 return this;
8422 }
8423
8424 private boolean logSearchProgress_ ;
8435 @java.lang.Override
8436 public boolean hasLogSearchProgress() {
8437 return ((bitField1_ & 0x00080000) != 0);
8438 }
8439
8449 @java.lang.Override
8450 public boolean getLogSearchProgress() {
8451 return logSearchProgress_;
8452 }
8453
8464 public Builder setLogSearchProgress(boolean value) {
8465
8466 logSearchProgress_ = value;
8467 bitField1_ |= 0x00080000;
8468 onChanged();
8469 return this;
8470 }
8471
8481 public Builder clearLogSearchProgress() {
8482 bitField1_ = (bitField1_ & ~0x00080000);
8483 logSearchProgress_ = false;
8484 onChanged();
8485 return this;
8486 }
8487
8488 private boolean logToStdout_ = true;
8497 @java.lang.Override
8498 public boolean hasLogToStdout() {
8499 return ((bitField1_ & 0x00100000) != 0);
8500 }
8501
8509 @java.lang.Override
8510 public boolean getLogToStdout() {
8511 return logToStdout_;
8512 }
8513
8522 public Builder setLogToStdout(boolean value) {
8523
8524 logToStdout_ = value;
8525 bitField1_ |= 0x00100000;
8526 onChanged();
8527 return this;
8528 }
8529
8537 public Builder clearLogToStdout() {
8538 bitField1_ = (bitField1_ & ~0x00100000);
8539 logToStdout_ = true;
8540 onChanged();
8541 return this;
8542 }
8543
8544 private double crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
8567 @java.lang.Override
8569 return ((bitField1_ & 0x00200000) != 0);
8570 }
8571
8593 @java.lang.Override
8595 return crossoverBoundSnappingDistance_;
8596 }
8597
8620 public Builder setCrossoverBoundSnappingDistance(double value) {
8621
8622 crossoverBoundSnappingDistance_ = value;
8623 bitField1_ |= 0x00200000;
8624 onChanged();
8625 return this;
8626 }
8627
8650 bitField1_ = (bitField1_ & ~0x00200000);
8651 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
8652 onChanged();
8653 return this;
8654 }
8655
8656 private boolean pushToVertex_ = true;
8670 @java.lang.Override
8671 public boolean hasPushToVertex() {
8672 return ((bitField1_ & 0x00400000) != 0);
8673 }
8674
8687 @java.lang.Override
8688 public boolean getPushToVertex() {
8689 return pushToVertex_;
8690 }
8691
8705 public Builder setPushToVertex(boolean value) {
8706
8707 pushToVertex_ = value;
8708 bitField1_ |= 0x00400000;
8709 onChanged();
8710 return this;
8711 }
8712
8725 public Builder clearPushToVertex() {
8726 bitField1_ = (bitField1_ & ~0x00400000);
8727 pushToVertex_ = true;
8728 onChanged();
8729 return this;
8730 }
8731
8732 private boolean useImpliedFreePreprocessor_ = true;
8741 @java.lang.Override
8743 return ((bitField1_ & 0x00800000) != 0);
8744 }
8745
8753 @java.lang.Override
8755 return useImpliedFreePreprocessor_;
8756 }
8757
8766 public Builder setUseImpliedFreePreprocessor(boolean value) {
8767
8768 useImpliedFreePreprocessor_ = value;
8769 bitField1_ |= 0x00800000;
8770 onChanged();
8771 return this;
8772 }
8773
8782 bitField1_ = (bitField1_ & ~0x00800000);
8783 useImpliedFreePreprocessor_ = true;
8784 onChanged();
8785 return this;
8786 }
8787
8788 private double maxValidMagnitude_ = 1e+30D;
8802 @java.lang.Override
8803 public boolean hasMaxValidMagnitude() {
8804 return ((bitField1_ & 0x01000000) != 0);
8805 }
8806
8819 @java.lang.Override
8820 public double getMaxValidMagnitude() {
8821 return maxValidMagnitude_;
8822 }
8823
8837 public Builder setMaxValidMagnitude(double value) {
8838
8839 maxValidMagnitude_ = value;
8840 bitField1_ |= 0x01000000;
8841 onChanged();
8842 return this;
8843 }
8844
8857 public Builder clearMaxValidMagnitude() {
8858 bitField1_ = (bitField1_ & ~0x01000000);
8859 maxValidMagnitude_ = 1e+30D;
8860 onChanged();
8861 return this;
8862 }
8863
8864 private double dropMagnitude_ = 1e-30D;
8876 @java.lang.Override
8877 public boolean hasDropMagnitude() {
8878 return ((bitField1_ & 0x02000000) != 0);
8879 }
8880
8891 @java.lang.Override
8892 public double getDropMagnitude() {
8893 return dropMagnitude_;
8894 }
8895
8907 public Builder setDropMagnitude(double value) {
8908
8909 dropMagnitude_ = value;
8910 bitField1_ |= 0x02000000;
8911 onChanged();
8912 return this;
8913 }
8914
8925 public Builder clearDropMagnitude() {
8926 bitField1_ = (bitField1_ & ~0x02000000);
8927 dropMagnitude_ = 1e-30D;
8928 onChanged();
8929 return this;
8930 }
8931
8932 private boolean dualPricePrioritizeNorm_ ;
8942 @java.lang.Override
8944 return ((bitField1_ & 0x04000000) != 0);
8945 }
8946
8955 @java.lang.Override
8957 return dualPricePrioritizeNorm_;
8958 }
8959
8969 public Builder setDualPricePrioritizeNorm(boolean value) {
8970
8971 dualPricePrioritizeNorm_ = value;
8972 bitField1_ |= 0x04000000;
8973 onChanged();
8974 return this;
8975 }
8976
8986 bitField1_ = (bitField1_ & ~0x04000000);
8987 dualPricePrioritizeNorm_ = false;
8988 onChanged();
8989 return this;
8990 }
8991
8992 // @@protoc_insertion_point(builder_scope:operations_research.glop.GlopParameters)
8993 }
8994
8995 // @@protoc_insertion_point(class_scope:operations_research.glop.GlopParameters)
8996 private static final com.google.ortools.glop.GlopParameters DEFAULT_INSTANCE;
8997 static {
8998 DEFAULT_INSTANCE = new com.google.ortools.glop.GlopParameters();
8999 }
9000
9002 return DEFAULT_INSTANCE;
9003 }
9004
9005 private static final com.google.protobuf.Parser<GlopParameters>
9006 PARSER = new com.google.protobuf.AbstractParser<GlopParameters>() {
9007 @java.lang.Override
9008 public GlopParameters parsePartialFrom(
9009 com.google.protobuf.CodedInputStream input,
9010 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9011 throws com.google.protobuf.InvalidProtocolBufferException {
9012 Builder builder = newBuilder();
9013 try {
9014 builder.mergeFrom(input, extensionRegistry);
9015 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9016 throw e.setUnfinishedMessage(builder.buildPartial());
9017 } catch (com.google.protobuf.UninitializedMessageException e) {
9018 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
9019 } catch (java.io.IOException e) {
9020 throw new com.google.protobuf.InvalidProtocolBufferException(e)
9021 .setUnfinishedMessage(builder.buildPartial());
9022 }
9023 return builder.buildPartial();
9024 }
9025 };
9026
9027 public static com.google.protobuf.Parser<GlopParameters> parser() {
9028 return PARSER;
9029 }
9030
9031 @java.lang.Override
9032 public com.google.protobuf.Parser<GlopParameters> getParserForType() {
9033 return PARSER;
9034 }
9035
9036 @java.lang.Override
9038 return DEFAULT_INSTANCE;
9039 }
9040
9041}
9042
com.google.ortools.glop.GlopParameters build()
com.google.ortools.glop.GlopParameters.CostScalingAlgorithm getCostScaling()
Builder setFeasibilityRule(com.google.ortools.glop.GlopParameters.PricingRule value)
com.google.ortools.glop.GlopParameters.SolverBehavior getSolveDualProblem()
com.google.ortools.glop.GlopParameters.InitialBasisHeuristic getInitialBasis()
Builder mergeFrom(com.google.ortools.glop.GlopParameters other)
Builder setOptimizationRule(com.google.ortools.glop.GlopParameters.PricingRule value)
Builder mergeFrom(com.google.protobuf.Message other)
Builder setSolveDualProblem(com.google.ortools.glop.GlopParameters.SolverBehavior value)
com.google.ortools.glop.GlopParameters.PricingRule getFeasibilityRule()
Builder setCostScaling(com.google.ortools.glop.GlopParameters.CostScalingAlgorithm value)
Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
Builder setDynamicallyAdjustRefactorizationPeriod(boolean value)
com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
com.google.ortools.glop.GlopParameters buildPartial()
Builder setInitialBasis(com.google.ortools.glop.GlopParameters.InitialBasisHeuristic value)
Builder setScalingMethod(com.google.ortools.glop.GlopParameters.ScalingAlgorithm value)
com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
com.google.ortools.glop.GlopParameters.ScalingAlgorithm getScalingMethod()
com.google.ortools.glop.GlopParameters.PricingRule getOptimizationRule()
com.google.ortools.glop.GlopParameters getDefaultInstanceForType()
static final int DYNAMICALLY_ADJUST_REFACTORIZATION_PERIOD_FIELD_NUMBER
com.google.ortools.glop.GlopParameters getDefaultInstanceForType()
static final int LU_FACTORIZATION_PIVOT_THRESHOLD_FIELD_NUMBER
com.google.ortools.glop.GlopParameters.CostScalingAlgorithm getCostScaling()
com.google.ortools.glop.GlopParameters.ScalingAlgorithm getScalingMethod()
com.google.ortools.glop.GlopParameters.PricingRule getFeasibilityRule()
com.google.ortools.glop.GlopParameters.PricingRule getOptimizationRule()
static com.google.ortools.glop.GlopParameters parseFrom(java.io.InputStream input)
static final int SOLUTION_FEASIBILITY_TOLERANCE_FIELD_NUMBER
static com.google.ortools.glop.GlopParameters getDefaultInstance()
static final int INITIAL_CONDITION_NUMBER_THRESHOLD_FIELD_NUMBER
static com.google.ortools.glop.GlopParameters parseDelimitedFrom(java.io.InputStream input)
static final int EXPLOIT_SINGLETON_COLUMN_IN_INITIAL_BASIS_FIELD_NUMBER
com.google.ortools.glop.GlopParameters.InitialBasisHeuristic getInitialBasis()
static com.google.ortools.glop.GlopParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.glop.GlopParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.glop.GlopParameters parseFrom(com.google.protobuf.CodedInputStream input)
static final int CROSSOVER_BOUND_SNAPPING_DISTANCE_FIELD_NUMBER
static final int ALLOW_SIMPLEX_ALGORITHM_CHANGE_FIELD_NUMBER
static com.google.ortools.glop.GlopParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.glop.GlopParameters.SolverBehavior getSolveDualProblem()
static final int USE_DEDICATED_DUAL_FEASIBILITY_ALGORITHM_FIELD_NUMBER
Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent)
static com.google.ortools.glop.GlopParameters parseFrom(java.nio.ByteBuffer data)
static com.google.ortools.glop.GlopParameters parseFrom(com.google.protobuf.ByteString data)
static final int MARKOWITZ_SINGULARITY_THRESHOLD_FIELD_NUMBER
static final int RECOMPUTE_EDGES_NORM_THRESHOLD_FIELD_NUMBER
static com.google.ortools.glop.GlopParameters parseFrom(byte[] data)
static com.google.protobuf.Parser< GlopParameters > parser()
com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
static final int MAX_NUMBER_OF_REOPTIMIZATIONS_FIELD_NUMBER
static final int INITIALIZE_DEVEX_WITH_COLUMN_NORMS_FIELD_NUMBER
static final int PROVIDE_STRONG_OPTIMAL_GUARANTEE_FIELD_NUMBER
com.google.protobuf.Parser< GlopParameters > getParserForType()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static final int USE_IMPLIED_FREE_PREPROCESSOR_FIELD_NUMBER
static Builder newBuilder(com.google.ortools.glop.GlopParameters prototype)
void writeTo(com.google.protobuf.CodedOutputStream output)
static final int RECOMPUTE_REDUCED_COSTS_THRESHOLD_FIELD_NUMBER
boolean equals(final java.lang.Object obj)
static final int PERTURB_COSTS_IN_DUAL_SIMPLEX_FIELD_NUMBER
static final int RELATIVE_MAX_COST_PERTURBATION_FIELD_NUMBER
static final int USE_MIDDLE_PRODUCT_FORM_UPDATE_FIELD_NUMBER
static com.google.ortools.glop.GlopParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.glop.GlopParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.glop.GlopParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< CostScalingAlgorithm > internalGetValueMap()
static CostScalingAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static InitialBasisHeuristic valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< InitialBasisHeuristic > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< PricingRule > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static PricingRule valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< ScalingAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static ScalingAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static SolverBehavior 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.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< SolverBehavior > internalGetValueMap()