Google OR-Tools v9.12
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.29.3
5
6package com.google.ortools.glop;
7
15public final class GlopParameters extends
16 com.google.protobuf.GeneratedMessage implements
17 // @@protoc_insertion_point(message_implements:operations_research.glop.GlopParameters)
19private static final long serialVersionUID = 0L;
20 static {
21 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
22 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
23 /* major= */ 4,
24 /* minor= */ 29,
25 /* patch= */ 3,
26 /* suffix= */ "",
27 GlopParameters.class.getName());
28 }
29 // Use GlopParameters.newBuilder() to construct.
30 private GlopParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
31 super(builder);
32 }
33 private GlopParameters() {
34 scalingMethod_ = 1;
35 feasibilityRule_ = 1;
36 optimizationRule_ = 1;
37 refactorizationThreshold_ = 1e-09D;
38 recomputeReducedCostsThreshold_ = 1e-08D;
39 recomputeEdgesNormThreshold_ = 100D;
40 primalFeasibilityTolerance_ = 1e-08D;
41 dualFeasibilityTolerance_ = 1e-08D;
42 ratioTestZeroThreshold_ = 1e-09D;
43 harrisToleranceRatio_ = 0.5D;
44 smallPivotThreshold_ = 1e-06D;
45 minimumAcceptablePivot_ = 1e-06D;
46 dropTolerance_ = 1e-14D;
47 useScaling_ = true;
48 costScaling_ = 1;
49 initialBasis_ = 2;
50 useTransposedMatrix_ = true;
51 basisRefactorizationPeriod_ = 64;
52 dynamicallyAdjustRefactorizationPeriod_ = true;
53 solveDualProblem_ = 2;
54 dualizerThreshold_ = 1.5D;
55 solutionFeasibilityTolerance_ = 1e-06D;
56 provideStrongOptimalGuarantee_ = true;
57 changeStatusToImprecise_ = true;
58 maxNumberOfReoptimizations_ = 40D;
59 luFactorizationPivotThreshold_ = 0.01D;
60 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
61 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
62 maxNumberOfIterations_ = -1L;
63 markowitzZlatevParameter_ = 3;
64 markowitzSingularityThreshold_ = 1e-15D;
65 devexWeightsResetPeriod_ = 150;
66 usePreprocessing_ = true;
67 useMiddleProductFormUpdate_ = true;
68 initializeDevexWithColumnNorms_ = true;
69 exploitSingletonColumnInInitialBasis_ = true;
70 dualSmallPivotThreshold_ = 0.0001D;
71 preprocessorZeroTolerance_ = 1e-09D;
72 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
73 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
74 degenerateMinistepFactor_ = 0.01D;
75 randomSeed_ = 1;
76 numOmpThreads_ = 1;
77 useDedicatedDualFeasibilityAlgorithm_ = true;
78 relativeCostPerturbation_ = 1e-05D;
79 relativeMaxCostPerturbation_ = 1e-07D;
80 initialConditionNumberThreshold_ = 1e+50D;
81 logToStdout_ = true;
82 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
83 pushToVertex_ = true;
84 useImpliedFreePreprocessor_ = true;
85 maxValidMagnitude_ = 1e+30D;
86 dropMagnitude_ = 1e-30D;
87 }
88
89 public static final com.google.protobuf.Descriptors.Descriptor
91 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
92 }
93
94 @java.lang.Override
95 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
97 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_fieldAccessorTable
98 .ensureFieldAccessorsInitialized(
99 com.google.ortools.glop.GlopParameters.class, com.google.ortools.glop.GlopParameters.Builder.class);
100 }
101
113 public enum ScalingAlgorithm
114 implements com.google.protobuf.ProtocolMessageEnum {
127 ;
128
129 static {
130 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
131 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
132 /* major= */ 4,
133 /* minor= */ 29,
134 /* patch= */ 3,
135 /* suffix= */ "",
136 ScalingAlgorithm.class.getName());
137 }
141 public static final int DEFAULT_VALUE = 0;
145 public static final int EQUILIBRATION_VALUE = 1;
149 public static final int LINEAR_PROGRAM_VALUE = 2;
150
151
152 public final int getNumber() {
153 return value;
154 }
155
161 @java.lang.Deprecated
162 public static ScalingAlgorithm valueOf(int value) {
163 return forNumber(value);
164 }
165
170 public static ScalingAlgorithm forNumber(int value) {
171 switch (value) {
172 case 0: return DEFAULT;
173 case 1: return EQUILIBRATION;
174 case 2: return LINEAR_PROGRAM;
175 default: return null;
176 }
177 }
178
179 public static com.google.protobuf.Internal.EnumLiteMap<ScalingAlgorithm>
181 return internalValueMap;
182 }
183 private static final com.google.protobuf.Internal.EnumLiteMap<
184 ScalingAlgorithm> internalValueMap =
185 new com.google.protobuf.Internal.EnumLiteMap<ScalingAlgorithm>() {
186 public ScalingAlgorithm findValueByNumber(int number) {
187 return ScalingAlgorithm.forNumber(number);
188 }
189 };
190
191 public final com.google.protobuf.Descriptors.EnumValueDescriptor
193 return getDescriptor().getValues().get(ordinal());
194 }
195 public final com.google.protobuf.Descriptors.EnumDescriptor
197 return getDescriptor();
198 }
199 public static final com.google.protobuf.Descriptors.EnumDescriptor
201 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(0);
202 }
203
204 private static final ScalingAlgorithm[] VALUES = values();
205
206 public static ScalingAlgorithm valueOf(
207 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
208 if (desc.getType() != getDescriptor()) {
209 throw new java.lang.IllegalArgumentException(
210 "EnumValueDescriptor is not for this type.");
211 }
212 return VALUES[desc.getIndex()];
213 }
214
215 private final int value;
216
217 private ScalingAlgorithm(int value) {
218 this.value = value;
219 }
220
221 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.ScalingAlgorithm)
222 }
223
232 public enum SolverBehavior
233 implements com.google.protobuf.ProtocolMessageEnum {
246 ;
247
248 static {
249 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
250 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
251 /* major= */ 4,
252 /* minor= */ 29,
253 /* patch= */ 3,
254 /* suffix= */ "",
255 SolverBehavior.class.getName());
256 }
260 public static final int ALWAYS_DO_VALUE = 0;
264 public static final int NEVER_DO_VALUE = 1;
268 public static final int LET_SOLVER_DECIDE_VALUE = 2;
269
270
271 public final int getNumber() {
272 return value;
273 }
274
280 @java.lang.Deprecated
281 public static SolverBehavior valueOf(int value) {
282 return forNumber(value);
283 }
284
289 public static SolverBehavior forNumber(int value) {
290 switch (value) {
291 case 0: return ALWAYS_DO;
292 case 1: return NEVER_DO;
293 case 2: return LET_SOLVER_DECIDE;
294 default: return null;
295 }
296 }
297
298 public static com.google.protobuf.Internal.EnumLiteMap<SolverBehavior>
300 return internalValueMap;
301 }
302 private static final com.google.protobuf.Internal.EnumLiteMap<
303 SolverBehavior> internalValueMap =
304 new com.google.protobuf.Internal.EnumLiteMap<SolverBehavior>() {
305 public SolverBehavior findValueByNumber(int number) {
306 return SolverBehavior.forNumber(number);
307 }
308 };
309
310 public final com.google.protobuf.Descriptors.EnumValueDescriptor
312 return getDescriptor().getValues().get(ordinal());
313 }
314 public final com.google.protobuf.Descriptors.EnumDescriptor
316 return getDescriptor();
317 }
318 public static final com.google.protobuf.Descriptors.EnumDescriptor
320 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(1);
321 }
322
323 private static final SolverBehavior[] VALUES = values();
324
325 public static SolverBehavior valueOf(
326 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
327 if (desc.getType() != getDescriptor()) {
328 throw new java.lang.IllegalArgumentException(
329 "EnumValueDescriptor is not for this type.");
330 }
331 return VALUES[desc.getIndex()];
332 }
333
334 private final int value;
335
336 private SolverBehavior(int value) {
337 this.value = value;
338 }
339
340 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.SolverBehavior)
341 }
342
350 public enum PricingRule
351 implements com.google.protobuf.ProtocolMessageEnum {
384 ;
385
386 static {
387 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
388 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
389 /* major= */ 4,
390 /* minor= */ 29,
391 /* patch= */ 3,
392 /* suffix= */ "",
393 PricingRule.class.getName());
394 }
407 public static final int DANTZIG_VALUE = 0;
417 public static final int STEEPEST_EDGE_VALUE = 1;
426 public static final int DEVEX_VALUE = 2;
427
428
429 public final int getNumber() {
430 return value;
431 }
432
438 @java.lang.Deprecated
439 public static PricingRule valueOf(int value) {
440 return forNumber(value);
441 }
442
447 public static PricingRule forNumber(int value) {
448 switch (value) {
449 case 0: return DANTZIG;
450 case 1: return STEEPEST_EDGE;
451 case 2: return DEVEX;
452 default: return null;
453 }
454 }
455
456 public static com.google.protobuf.Internal.EnumLiteMap<PricingRule>
458 return internalValueMap;
459 }
460 private static final com.google.protobuf.Internal.EnumLiteMap<
461 PricingRule> internalValueMap =
462 new com.google.protobuf.Internal.EnumLiteMap<PricingRule>() {
463 public PricingRule findValueByNumber(int number) {
464 return PricingRule.forNumber(number);
465 }
466 };
467
468 public final com.google.protobuf.Descriptors.EnumValueDescriptor
470 return getDescriptor().getValues().get(ordinal());
471 }
472 public final com.google.protobuf.Descriptors.EnumDescriptor
474 return getDescriptor();
475 }
476 public static final com.google.protobuf.Descriptors.EnumDescriptor
478 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(2);
479 }
480
481 private static final PricingRule[] VALUES = values();
482
483 public static PricingRule valueOf(
484 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
485 if (desc.getType() != getDescriptor()) {
486 throw new java.lang.IllegalArgumentException(
487 "EnumValueDescriptor is not for this type.");
488 }
489 return VALUES[desc.getIndex()];
490 }
491
492 private final int value;
493
494 private PricingRule(int value) {
495 this.value = value;
496 }
497
498 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.PricingRule)
499 }
500
509 public enum InitialBasisHeuristic
510 implements com.google.protobuf.ProtocolMessageEnum {
554 ;
555
556 static {
557 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
558 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
559 /* major= */ 4,
560 /* minor= */ 29,
561 /* patch= */ 3,
562 /* suffix= */ "",
563 InitialBasisHeuristic.class.getName());
564 }
572 public static final int NONE_VALUE = 0;
585 public static final int BIXBY_VALUE = 1;
597 public static final int TRIANGULAR_VALUE = 2;
607 public static final int MAROS_VALUE = 3;
608
609
610 public final int getNumber() {
611 return value;
612 }
613
619 @java.lang.Deprecated
620 public static InitialBasisHeuristic valueOf(int value) {
621 return forNumber(value);
622 }
623
628 public static InitialBasisHeuristic forNumber(int value) {
629 switch (value) {
630 case 0: return NONE;
631 case 1: return BIXBY;
632 case 2: return TRIANGULAR;
633 case 3: return MAROS;
634 default: return null;
635 }
636 }
637
638 public static com.google.protobuf.Internal.EnumLiteMap<InitialBasisHeuristic>
640 return internalValueMap;
641 }
642 private static final com.google.protobuf.Internal.EnumLiteMap<
643 InitialBasisHeuristic> internalValueMap =
644 new com.google.protobuf.Internal.EnumLiteMap<InitialBasisHeuristic>() {
645 public InitialBasisHeuristic findValueByNumber(int number) {
646 return InitialBasisHeuristic.forNumber(number);
647 }
648 };
649
650 public final com.google.protobuf.Descriptors.EnumValueDescriptor
652 return getDescriptor().getValues().get(ordinal());
653 }
654 public final com.google.protobuf.Descriptors.EnumDescriptor
656 return getDescriptor();
657 }
658 public static final com.google.protobuf.Descriptors.EnumDescriptor
660 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(3);
661 }
662
663 private static final InitialBasisHeuristic[] VALUES = values();
664
665 public static InitialBasisHeuristic valueOf(
666 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
667 if (desc.getType() != getDescriptor()) {
668 throw new java.lang.IllegalArgumentException(
669 "EnumValueDescriptor is not for this type.");
670 }
671 return VALUES[desc.getIndex()];
672 }
673
674 private final int value;
675
676 private InitialBasisHeuristic(int value) {
677 this.value = value;
678 }
679
680 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.InitialBasisHeuristic)
681 }
682
694 public enum CostScalingAlgorithm
695 implements com.google.protobuf.ProtocolMessageEnum {
730 ;
731
732 static {
733 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
734 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
735 /* major= */ 4,
736 /* minor= */ 29,
737 /* patch= */ 3,
738 /* suffix= */ "",
739 CostScalingAlgorithm.class.getName());
740 }
748 public static final int NO_COST_SCALING_VALUE = 0;
758 public static final int CONTAIN_ONE_COST_SCALING_VALUE = 1;
766 public static final int MEAN_COST_SCALING_VALUE = 2;
774 public static final int MEDIAN_COST_SCALING_VALUE = 3;
775
776
777 public final int getNumber() {
778 return value;
779 }
780
786 @java.lang.Deprecated
787 public static CostScalingAlgorithm valueOf(int value) {
788 return forNumber(value);
789 }
790
795 public static CostScalingAlgorithm forNumber(int value) {
796 switch (value) {
797 case 0: return NO_COST_SCALING;
798 case 1: return CONTAIN_ONE_COST_SCALING;
799 case 2: return MEAN_COST_SCALING;
800 case 3: return MEDIAN_COST_SCALING;
801 default: return null;
802 }
803 }
804
805 public static com.google.protobuf.Internal.EnumLiteMap<CostScalingAlgorithm>
807 return internalValueMap;
808 }
809 private static final com.google.protobuf.Internal.EnumLiteMap<
810 CostScalingAlgorithm> internalValueMap =
811 new com.google.protobuf.Internal.EnumLiteMap<CostScalingAlgorithm>() {
812 public CostScalingAlgorithm findValueByNumber(int number) {
813 return CostScalingAlgorithm.forNumber(number);
814 }
815 };
816
817 public final com.google.protobuf.Descriptors.EnumValueDescriptor
819 return getDescriptor().getValues().get(ordinal());
820 }
821 public final com.google.protobuf.Descriptors.EnumDescriptor
823 return getDescriptor();
824 }
825 public static final com.google.protobuf.Descriptors.EnumDescriptor
827 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(4);
828 }
829
830 private static final CostScalingAlgorithm[] VALUES = values();
831
832 public static CostScalingAlgorithm valueOf(
833 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
834 if (desc.getType() != getDescriptor()) {
835 throw new java.lang.IllegalArgumentException(
836 "EnumValueDescriptor is not for this type.");
837 }
838 return VALUES[desc.getIndex()];
839 }
840
841 private final int value;
842
843 private CostScalingAlgorithm(int value) {
844 this.value = value;
845 }
846
847 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.CostScalingAlgorithm)
848 }
849
850 private int bitField0_;
851 private int bitField1_;
852 public static final int SCALING_METHOD_FIELD_NUMBER = 57;
853 private int scalingMethod_ = 1;
858 @java.lang.Override public boolean hasScalingMethod() {
859 return ((bitField0_ & 0x00000001) != 0);
860 }
861
866 com.google.ortools.glop.GlopParameters.ScalingAlgorithm result = com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(scalingMethod_);
868 }
869
870 public static final int FEASIBILITY_RULE_FIELD_NUMBER = 1;
871 private int feasibilityRule_ = 1;
880 @java.lang.Override public boolean hasFeasibilityRule() {
881 return ((bitField0_ & 0x00000002) != 0);
882 }
883
892 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(feasibilityRule_);
894 }
895
896 public static final int OPTIMIZATION_RULE_FIELD_NUMBER = 2;
897 private int optimizationRule_ = 1;
906 @java.lang.Override public boolean hasOptimizationRule() {
907 return ((bitField0_ & 0x00000004) != 0);
908 }
909
918 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(optimizationRule_);
920 }
921
922 public static final int REFACTORIZATION_THRESHOLD_FIELD_NUMBER = 6;
923 private double refactorizationThreshold_ = 1e-09D;
937 @java.lang.Override
939 return ((bitField0_ & 0x00000008) != 0);
940 }
941
954 @java.lang.Override
956 return refactorizationThreshold_;
957 }
958
960 private double recomputeReducedCostsThreshold_ = 1e-08D;
973 @java.lang.Override
975 return ((bitField0_ & 0x00000010) != 0);
976 }
977
989 @java.lang.Override
991 return recomputeReducedCostsThreshold_;
992 }
993
995 private double recomputeEdgesNormThreshold_ = 100D;
1008 @java.lang.Override
1010 return ((bitField0_ & 0x00000020) != 0);
1011 }
1012
1024 @java.lang.Override
1026 return recomputeEdgesNormThreshold_;
1027 }
1028
1029 public static final int PRIMAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER = 10;
1030 private double primalFeasibilityTolerance_ = 1e-08D;
1045 @java.lang.Override
1047 return ((bitField0_ & 0x00000040) != 0);
1048 }
1049
1063 @java.lang.Override
1065 return primalFeasibilityTolerance_;
1066 }
1067
1068 public static final int DUAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER = 11;
1069 private double dualFeasibilityTolerance_ = 1e-08D;
1087 @java.lang.Override
1089 return ((bitField0_ & 0x00000080) != 0);
1090 }
1091
1108 @java.lang.Override
1110 return dualFeasibilityTolerance_;
1111 }
1112
1113 public static final int RATIO_TEST_ZERO_THRESHOLD_FIELD_NUMBER = 12;
1114 private double ratioTestZeroThreshold_ = 1e-09D;
1129 @java.lang.Override
1130 public boolean hasRatioTestZeroThreshold() {
1131 return ((bitField0_ & 0x00000100) != 0);
1132 }
1133
1147 @java.lang.Override
1149 return ratioTestZeroThreshold_;
1150 }
1151
1152 public static final int HARRIS_TOLERANCE_RATIO_FIELD_NUMBER = 13;
1153 private double harrisToleranceRatio_ = 0.5D;
1172 @java.lang.Override
1173 public boolean hasHarrisToleranceRatio() {
1174 return ((bitField0_ & 0x00000200) != 0);
1175 }
1176
1194 @java.lang.Override
1195 public double getHarrisToleranceRatio() {
1196 return harrisToleranceRatio_;
1197 }
1198
1199 public static final int SMALL_PIVOT_THRESHOLD_FIELD_NUMBER = 14;
1200 private double smallPivotThreshold_ = 1e-06D;
1212 @java.lang.Override
1213 public boolean hasSmallPivotThreshold() {
1214 return ((bitField0_ & 0x00000400) != 0);
1215 }
1216
1227 @java.lang.Override
1228 public double getSmallPivotThreshold() {
1229 return smallPivotThreshold_;
1230 }
1231
1232 public static final int MINIMUM_ACCEPTABLE_PIVOT_FIELD_NUMBER = 15;
1233 private double minimumAcceptablePivot_ = 1e-06D;
1242 @java.lang.Override
1243 public boolean hasMinimumAcceptablePivot() {
1244 return ((bitField0_ & 0x00000800) != 0);
1245 }
1246
1254 @java.lang.Override
1256 return minimumAcceptablePivot_;
1257 }
1258
1259 public static final int DROP_TOLERANCE_FIELD_NUMBER = 52;
1260 private double dropTolerance_ = 1e-14D;
1271 @java.lang.Override
1272 public boolean hasDropTolerance() {
1273 return ((bitField0_ & 0x00001000) != 0);
1274 }
1275
1285 @java.lang.Override
1286 public double getDropTolerance() {
1287 return dropTolerance_;
1288 }
1289
1290 public static final int USE_SCALING_FIELD_NUMBER = 16;
1291 private boolean useScaling_ = true;
1301 @java.lang.Override
1302 public boolean hasUseScaling() {
1303 return ((bitField0_ & 0x00002000) != 0);
1304 }
1305
1314 @java.lang.Override
1315 public boolean getUseScaling() {
1316 return useScaling_;
1317 }
1318
1319 public static final int COST_SCALING_FIELD_NUMBER = 60;
1320 private int costScaling_ = 1;
1325 @java.lang.Override public boolean hasCostScaling() {
1326 return ((bitField0_ & 0x00004000) != 0);
1327 }
1328
1333 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm result = com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(costScaling_);
1335 }
1336
1337 public static final int INITIAL_BASIS_FIELD_NUMBER = 17;
1338 private int initialBasis_ = 2;
1348 @java.lang.Override public boolean hasInitialBasis() {
1349 return ((bitField0_ & 0x00008000) != 0);
1350 }
1351
1361 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic result = com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(initialBasis_);
1363 }
1364
1365 public static final int USE_TRANSPOSED_MATRIX_FIELD_NUMBER = 18;
1366 private boolean useTransposedMatrix_ = true;
1377 @java.lang.Override
1378 public boolean hasUseTransposedMatrix() {
1379 return ((bitField0_ & 0x00010000) != 0);
1380 }
1381
1391 @java.lang.Override
1392 public boolean getUseTransposedMatrix() {
1393 return useTransposedMatrix_;
1394 }
1395
1396 public static final int BASIS_REFACTORIZATION_PERIOD_FIELD_NUMBER = 19;
1397 private int basisRefactorizationPeriod_ = 64;
1408 @java.lang.Override
1410 return ((bitField0_ & 0x00020000) != 0);
1411 }
1412
1422 @java.lang.Override
1424 return basisRefactorizationPeriod_;
1425 }
1426
1428 private boolean dynamicallyAdjustRefactorizationPeriod_ = true;
1441 @java.lang.Override
1443 return ((bitField0_ & 0x00040000) != 0);
1444 }
1445
1457 @java.lang.Override
1459 return dynamicallyAdjustRefactorizationPeriod_;
1460 }
1461
1462 public static final int SOLVE_DUAL_PROBLEM_FIELD_NUMBER = 20;
1463 private int solveDualProblem_ = 2;
1474 @java.lang.Override public boolean hasSolveDualProblem() {
1475 return ((bitField0_ & 0x00080000) != 0);
1476 }
1477
1488 com.google.ortools.glop.GlopParameters.SolverBehavior result = com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(solveDualProblem_);
1490 }
1491
1492 public static final int DUALIZER_THRESHOLD_FIELD_NUMBER = 21;
1493 private double dualizerThreshold_ = 1.5D;
1504 @java.lang.Override
1505 public boolean hasDualizerThreshold() {
1506 return ((bitField0_ & 0x00100000) != 0);
1507 }
1508
1518 @java.lang.Override
1519 public double getDualizerThreshold() {
1520 return dualizerThreshold_;
1521 }
1522
1524 private double solutionFeasibilityTolerance_ = 1e-06D;
1540 @java.lang.Override
1542 return ((bitField0_ & 0x00200000) != 0);
1543 }
1544
1559 @java.lang.Override
1561 return solutionFeasibilityTolerance_;
1562 }
1563
1565 private boolean provideStrongOptimalGuarantee_ = true;
1591 @java.lang.Override
1593 return ((bitField0_ & 0x00400000) != 0);
1594 }
1595
1620 @java.lang.Override
1622 return provideStrongOptimalGuarantee_;
1623 }
1624
1625 public static final int CHANGE_STATUS_TO_IMPRECISE_FIELD_NUMBER = 58;
1626 private boolean changeStatusToImprecise_ = true;
1636 @java.lang.Override
1638 return ((bitField0_ & 0x00800000) != 0);
1639 }
1640
1649 @java.lang.Override
1651 return changeStatusToImprecise_;
1652 }
1653
1655 private double maxNumberOfReoptimizations_ = 40D;
1667 @java.lang.Override
1669 return ((bitField0_ & 0x01000000) != 0);
1670 }
1671
1682 @java.lang.Override
1684 return maxNumberOfReoptimizations_;
1685 }
1686
1688 private double luFactorizationPivotThreshold_ = 0.01D;
1700 @java.lang.Override
1702 return ((bitField0_ & 0x02000000) != 0);
1703 }
1704
1715 @java.lang.Override
1717 return luFactorizationPivotThreshold_;
1718 }
1719
1720 public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 26;
1721 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
1730 @java.lang.Override
1731 public boolean hasMaxTimeInSeconds() {
1732 return ((bitField0_ & 0x04000000) != 0);
1733 }
1734
1742 @java.lang.Override
1743 public double getMaxTimeInSeconds() {
1744 return maxTimeInSeconds_;
1745 }
1746
1747 public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 45;
1748 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
1761 @java.lang.Override
1762 public boolean hasMaxDeterministicTime() {
1763 return ((bitField0_ & 0x08000000) != 0);
1764 }
1765
1777 @java.lang.Override
1778 public double getMaxDeterministicTime() {
1779 return maxDeterministicTime_;
1780 }
1781
1782 public static final int MAX_NUMBER_OF_ITERATIONS_FIELD_NUMBER = 27;
1783 private long maxNumberOfIterations_ = -1L;
1793 @java.lang.Override
1794 public boolean hasMaxNumberOfIterations() {
1795 return ((bitField0_ & 0x10000000) != 0);
1796 }
1797
1806 @java.lang.Override
1808 return maxNumberOfIterations_;
1809 }
1810
1811 public static final int MARKOWITZ_ZLATEV_PARAMETER_FIELD_NUMBER = 29;
1812 private int markowitzZlatevParameter_ = 3;
1822 @java.lang.Override
1824 return ((bitField0_ & 0x20000000) != 0);
1825 }
1826
1835 @java.lang.Override
1837 return markowitzZlatevParameter_;
1838 }
1839
1841 private double markowitzSingularityThreshold_ = 1e-15D;
1853 @java.lang.Override
1855 return ((bitField0_ & 0x40000000) != 0);
1856 }
1857
1868 @java.lang.Override
1870 return markowitzSingularityThreshold_;
1871 }
1872
1873 public static final int USE_DUAL_SIMPLEX_FIELD_NUMBER = 31;
1874 private boolean useDualSimplex_ = false;
1883 @java.lang.Override
1884 public boolean hasUseDualSimplex() {
1885 return ((bitField0_ & 0x80000000) != 0);
1886 }
1887
1895 @java.lang.Override
1896 public boolean getUseDualSimplex() {
1897 return useDualSimplex_;
1898 }
1899
1901 private boolean allowSimplexAlgorithmChange_ = false;
1913 @java.lang.Override
1915 return ((bitField1_ & 0x00000001) != 0);
1916 }
1917
1928 @java.lang.Override
1930 return allowSimplexAlgorithmChange_;
1931 }
1932
1933 public static final int DEVEX_WEIGHTS_RESET_PERIOD_FIELD_NUMBER = 33;
1934 private int devexWeightsResetPeriod_ = 150;
1943 @java.lang.Override
1945 return ((bitField1_ & 0x00000002) != 0);
1946 }
1947
1955 @java.lang.Override
1957 return devexWeightsResetPeriod_;
1958 }
1959
1960 public static final int USE_PREPROCESSING_FIELD_NUMBER = 34;
1961 private boolean usePreprocessing_ = true;
1970 @java.lang.Override
1971 public boolean hasUsePreprocessing() {
1972 return ((bitField1_ & 0x00000004) != 0);
1973 }
1974
1982 @java.lang.Override
1983 public boolean getUsePreprocessing() {
1984 return usePreprocessing_;
1985 }
1986
1988 private boolean useMiddleProductFormUpdate_ = true;
2003 @java.lang.Override
2005 return ((bitField1_ & 0x00000008) != 0);
2006 }
2007
2021 @java.lang.Override
2023 return useMiddleProductFormUpdate_;
2024 }
2025
2027 private boolean initializeDevexWithColumnNorms_ = true;
2037 @java.lang.Override
2039 return ((bitField1_ & 0x00000010) != 0);
2040 }
2041
2050 @java.lang.Override
2052 return initializeDevexWithColumnNorms_;
2053 }
2054
2056 private boolean exploitSingletonColumnInInitialBasis_ = true;
2066 @java.lang.Override
2068 return ((bitField1_ & 0x00000020) != 0);
2069 }
2070
2079 @java.lang.Override
2081 return exploitSingletonColumnInInitialBasis_;
2082 }
2083
2084 public static final int DUAL_SMALL_PIVOT_THRESHOLD_FIELD_NUMBER = 38;
2085 private double dualSmallPivotThreshold_ = 0.0001D;
2096 @java.lang.Override
2098 return ((bitField1_ & 0x00000040) != 0);
2099 }
2100
2110 @java.lang.Override
2112 return dualSmallPivotThreshold_;
2113 }
2114
2115 public static final int PREPROCESSOR_ZERO_TOLERANCE_FIELD_NUMBER = 39;
2116 private double preprocessorZeroTolerance_ = 1e-09D;
2130 @java.lang.Override
2132 return ((bitField1_ & 0x00000080) != 0);
2133 }
2134
2147 @java.lang.Override
2149 return preprocessorZeroTolerance_;
2150 }
2151
2152 public static final int OBJECTIVE_LOWER_LIMIT_FIELD_NUMBER = 40;
2153 private double objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
2170 @java.lang.Override
2171 public boolean hasObjectiveLowerLimit() {
2172 return ((bitField1_ & 0x00000100) != 0);
2173 }
2174
2190 @java.lang.Override
2191 public double getObjectiveLowerLimit() {
2192 return objectiveLowerLimit_;
2193 }
2194
2195 public static final int OBJECTIVE_UPPER_LIMIT_FIELD_NUMBER = 41;
2196 private double objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
2201 @java.lang.Override
2202 public boolean hasObjectiveUpperLimit() {
2203 return ((bitField1_ & 0x00000200) != 0);
2204 }
2205
2209 @java.lang.Override
2210 public double getObjectiveUpperLimit() {
2211 return objectiveUpperLimit_;
2212 }
2213
2214 public static final int DEGENERATE_MINISTEP_FACTOR_FIELD_NUMBER = 42;
2215 private double degenerateMinistepFactor_ = 0.01D;
2241 @java.lang.Override
2243 return ((bitField1_ & 0x00000400) != 0);
2244 }
2245
2270 @java.lang.Override
2272 return degenerateMinistepFactor_;
2273 }
2274
2275 public static final int RANDOM_SEED_FIELD_NUMBER = 43;
2276 private int randomSeed_ = 1;
2299 @java.lang.Override
2300 public boolean hasRandomSeed() {
2301 return ((bitField1_ & 0x00000800) != 0);
2302 }
2303
2325 @java.lang.Override
2326 public int getRandomSeed() {
2327 return randomSeed_;
2328 }
2329
2330 public static final int NUM_OMP_THREADS_FIELD_NUMBER = 44;
2331 private int numOmpThreads_ = 1;
2341 @java.lang.Override
2342 public boolean hasNumOmpThreads() {
2343 return ((bitField1_ & 0x00001000) != 0);
2344 }
2345
2354 @java.lang.Override
2355 public int getNumOmpThreads() {
2356 return numOmpThreads_;
2357 }
2358
2360 private boolean perturbCostsInDualSimplex_ = false;
2372 @java.lang.Override
2374 return ((bitField1_ & 0x00002000) != 0);
2375 }
2376
2387 @java.lang.Override
2389 return perturbCostsInDualSimplex_;
2390 }
2391
2393 private boolean useDedicatedDualFeasibilityAlgorithm_ = true;
2409 @java.lang.Override
2411 return ((bitField1_ & 0x00004000) != 0);
2412 }
2413
2428 @java.lang.Override
2430 return useDedicatedDualFeasibilityAlgorithm_;
2431 }
2432
2433 public static final int RELATIVE_COST_PERTURBATION_FIELD_NUMBER = 54;
2434 private double relativeCostPerturbation_ = 1e-05D;
2446 @java.lang.Override
2448 return ((bitField1_ & 0x00008000) != 0);
2449 }
2450
2461 @java.lang.Override
2463 return relativeCostPerturbation_;
2464 }
2465
2467 private double relativeMaxCostPerturbation_ = 1e-07D;
2472 @java.lang.Override
2474 return ((bitField1_ & 0x00010000) != 0);
2475 }
2476
2480 @java.lang.Override
2482 return relativeMaxCostPerturbation_;
2483 }
2484
2486 private double initialConditionNumberThreshold_ = 1e+50D;
2497 @java.lang.Override
2499 return ((bitField1_ & 0x00020000) != 0);
2500 }
2501
2511 @java.lang.Override
2513 return initialConditionNumberThreshold_;
2514 }
2515
2516 public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 61;
2517 private boolean logSearchProgress_ = false;
2528 @java.lang.Override
2529 public boolean hasLogSearchProgress() {
2530 return ((bitField1_ & 0x00040000) != 0);
2531 }
2532
2542 @java.lang.Override
2543 public boolean getLogSearchProgress() {
2544 return logSearchProgress_;
2545 }
2546
2547 public static final int LOG_TO_STDOUT_FIELD_NUMBER = 66;
2548 private boolean logToStdout_ = true;
2557 @java.lang.Override
2558 public boolean hasLogToStdout() {
2559 return ((bitField1_ & 0x00080000) != 0);
2560 }
2561
2569 @java.lang.Override
2570 public boolean getLogToStdout() {
2571 return logToStdout_;
2572 }
2573
2575 private double crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
2598 @java.lang.Override
2600 return ((bitField1_ & 0x00100000) != 0);
2601 }
2602
2624 @java.lang.Override
2626 return crossoverBoundSnappingDistance_;
2627 }
2628
2629 public static final int PUSH_TO_VERTEX_FIELD_NUMBER = 65;
2630 private boolean pushToVertex_ = true;
2644 @java.lang.Override
2645 public boolean hasPushToVertex() {
2646 return ((bitField1_ & 0x00200000) != 0);
2647 }
2648
2661 @java.lang.Override
2662 public boolean getPushToVertex() {
2663 return pushToVertex_;
2664 }
2665
2667 private boolean useImpliedFreePreprocessor_ = true;
2676 @java.lang.Override
2678 return ((bitField1_ & 0x00400000) != 0);
2679 }
2680
2688 @java.lang.Override
2690 return useImpliedFreePreprocessor_;
2691 }
2692
2693 public static final int MAX_VALID_MAGNITUDE_FIELD_NUMBER = 70;
2694 private double maxValidMagnitude_ = 1e+30D;
2708 @java.lang.Override
2709 public boolean hasMaxValidMagnitude() {
2710 return ((bitField1_ & 0x00800000) != 0);
2711 }
2712
2725 @java.lang.Override
2726 public double getMaxValidMagnitude() {
2727 return maxValidMagnitude_;
2728 }
2729
2730 public static final int DROP_MAGNITUDE_FIELD_NUMBER = 71;
2731 private double dropMagnitude_ = 1e-30D;
2743 @java.lang.Override
2744 public boolean hasDropMagnitude() {
2745 return ((bitField1_ & 0x01000000) != 0);
2746 }
2747
2758 @java.lang.Override
2759 public double getDropMagnitude() {
2760 return dropMagnitude_;
2761 }
2762
2763 public static final int DUAL_PRICE_PRIORITIZE_NORM_FIELD_NUMBER = 69;
2764 private boolean dualPricePrioritizeNorm_ = false;
2774 @java.lang.Override
2776 return ((bitField1_ & 0x02000000) != 0);
2777 }
2778
2787 @java.lang.Override
2789 return dualPricePrioritizeNorm_;
2790 }
2791
2792 private byte memoizedIsInitialized = -1;
2793 @java.lang.Override
2794 public final boolean isInitialized() {
2795 byte isInitialized = memoizedIsInitialized;
2796 if (isInitialized == 1) return true;
2797 if (isInitialized == 0) return false;
2798
2799 memoizedIsInitialized = 1;
2800 return true;
2801 }
2802
2803 @java.lang.Override
2804 public void writeTo(com.google.protobuf.CodedOutputStream output)
2805 throws java.io.IOException {
2806 if (((bitField0_ & 0x00000002) != 0)) {
2807 output.writeEnum(1, feasibilityRule_);
2808 }
2809 if (((bitField0_ & 0x00000004) != 0)) {
2810 output.writeEnum(2, optimizationRule_);
2811 }
2812 if (((bitField0_ & 0x00000008) != 0)) {
2813 output.writeDouble(6, refactorizationThreshold_);
2814 }
2815 if (((bitField0_ & 0x00000010) != 0)) {
2816 output.writeDouble(8, recomputeReducedCostsThreshold_);
2817 }
2818 if (((bitField0_ & 0x00000020) != 0)) {
2819 output.writeDouble(9, recomputeEdgesNormThreshold_);
2820 }
2821 if (((bitField0_ & 0x00000040) != 0)) {
2822 output.writeDouble(10, primalFeasibilityTolerance_);
2823 }
2824 if (((bitField0_ & 0x00000080) != 0)) {
2825 output.writeDouble(11, dualFeasibilityTolerance_);
2826 }
2827 if (((bitField0_ & 0x00000100) != 0)) {
2828 output.writeDouble(12, ratioTestZeroThreshold_);
2829 }
2830 if (((bitField0_ & 0x00000200) != 0)) {
2831 output.writeDouble(13, harrisToleranceRatio_);
2832 }
2833 if (((bitField0_ & 0x00000400) != 0)) {
2834 output.writeDouble(14, smallPivotThreshold_);
2835 }
2836 if (((bitField0_ & 0x00000800) != 0)) {
2837 output.writeDouble(15, minimumAcceptablePivot_);
2838 }
2839 if (((bitField0_ & 0x00002000) != 0)) {
2840 output.writeBool(16, useScaling_);
2841 }
2842 if (((bitField0_ & 0x00008000) != 0)) {
2843 output.writeEnum(17, initialBasis_);
2844 }
2845 if (((bitField0_ & 0x00010000) != 0)) {
2846 output.writeBool(18, useTransposedMatrix_);
2847 }
2848 if (((bitField0_ & 0x00020000) != 0)) {
2849 output.writeInt32(19, basisRefactorizationPeriod_);
2850 }
2851 if (((bitField0_ & 0x00080000) != 0)) {
2852 output.writeEnum(20, solveDualProblem_);
2853 }
2854 if (((bitField0_ & 0x00100000) != 0)) {
2855 output.writeDouble(21, dualizerThreshold_);
2856 }
2857 if (((bitField0_ & 0x00200000) != 0)) {
2858 output.writeDouble(22, solutionFeasibilityTolerance_);
2859 }
2860 if (((bitField0_ & 0x00400000) != 0)) {
2861 output.writeBool(24, provideStrongOptimalGuarantee_);
2862 }
2863 if (((bitField0_ & 0x02000000) != 0)) {
2864 output.writeDouble(25, luFactorizationPivotThreshold_);
2865 }
2866 if (((bitField0_ & 0x04000000) != 0)) {
2867 output.writeDouble(26, maxTimeInSeconds_);
2868 }
2869 if (((bitField0_ & 0x10000000) != 0)) {
2870 output.writeInt64(27, maxNumberOfIterations_);
2871 }
2872 if (((bitField0_ & 0x20000000) != 0)) {
2873 output.writeInt32(29, markowitzZlatevParameter_);
2874 }
2875 if (((bitField0_ & 0x40000000) != 0)) {
2876 output.writeDouble(30, markowitzSingularityThreshold_);
2877 }
2878 if (((bitField0_ & 0x80000000) != 0)) {
2879 output.writeBool(31, useDualSimplex_);
2880 }
2881 if (((bitField1_ & 0x00000001) != 0)) {
2882 output.writeBool(32, allowSimplexAlgorithmChange_);
2883 }
2884 if (((bitField1_ & 0x00000002) != 0)) {
2885 output.writeInt32(33, devexWeightsResetPeriod_);
2886 }
2887 if (((bitField1_ & 0x00000004) != 0)) {
2888 output.writeBool(34, usePreprocessing_);
2889 }
2890 if (((bitField1_ & 0x00000008) != 0)) {
2891 output.writeBool(35, useMiddleProductFormUpdate_);
2892 }
2893 if (((bitField1_ & 0x00000010) != 0)) {
2894 output.writeBool(36, initializeDevexWithColumnNorms_);
2895 }
2896 if (((bitField1_ & 0x00000020) != 0)) {
2897 output.writeBool(37, exploitSingletonColumnInInitialBasis_);
2898 }
2899 if (((bitField1_ & 0x00000040) != 0)) {
2900 output.writeDouble(38, dualSmallPivotThreshold_);
2901 }
2902 if (((bitField1_ & 0x00000080) != 0)) {
2903 output.writeDouble(39, preprocessorZeroTolerance_);
2904 }
2905 if (((bitField1_ & 0x00000100) != 0)) {
2906 output.writeDouble(40, objectiveLowerLimit_);
2907 }
2908 if (((bitField1_ & 0x00000200) != 0)) {
2909 output.writeDouble(41, objectiveUpperLimit_);
2910 }
2911 if (((bitField1_ & 0x00000400) != 0)) {
2912 output.writeDouble(42, degenerateMinistepFactor_);
2913 }
2914 if (((bitField1_ & 0x00000800) != 0)) {
2915 output.writeInt32(43, randomSeed_);
2916 }
2917 if (((bitField1_ & 0x00001000) != 0)) {
2918 output.writeInt32(44, numOmpThreads_);
2919 }
2920 if (((bitField0_ & 0x08000000) != 0)) {
2921 output.writeDouble(45, maxDeterministicTime_);
2922 }
2923 if (((bitField0_ & 0x00001000) != 0)) {
2924 output.writeDouble(52, dropTolerance_);
2925 }
2926 if (((bitField1_ & 0x00002000) != 0)) {
2927 output.writeBool(53, perturbCostsInDualSimplex_);
2928 }
2929 if (((bitField1_ & 0x00008000) != 0)) {
2930 output.writeDouble(54, relativeCostPerturbation_);
2931 }
2932 if (((bitField1_ & 0x00010000) != 0)) {
2933 output.writeDouble(55, relativeMaxCostPerturbation_);
2934 }
2935 if (((bitField0_ & 0x01000000) != 0)) {
2936 output.writeDouble(56, maxNumberOfReoptimizations_);
2937 }
2938 if (((bitField0_ & 0x00000001) != 0)) {
2939 output.writeEnum(57, scalingMethod_);
2940 }
2941 if (((bitField0_ & 0x00800000) != 0)) {
2942 output.writeBool(58, changeStatusToImprecise_);
2943 }
2944 if (((bitField1_ & 0x00020000) != 0)) {
2945 output.writeDouble(59, initialConditionNumberThreshold_);
2946 }
2947 if (((bitField0_ & 0x00004000) != 0)) {
2948 output.writeEnum(60, costScaling_);
2949 }
2950 if (((bitField1_ & 0x00040000) != 0)) {
2951 output.writeBool(61, logSearchProgress_);
2952 }
2953 if (((bitField1_ & 0x00004000) != 0)) {
2954 output.writeBool(62, useDedicatedDualFeasibilityAlgorithm_);
2955 }
2956 if (((bitField0_ & 0x00040000) != 0)) {
2957 output.writeBool(63, dynamicallyAdjustRefactorizationPeriod_);
2958 }
2959 if (((bitField1_ & 0x00100000) != 0)) {
2960 output.writeDouble(64, crossoverBoundSnappingDistance_);
2961 }
2962 if (((bitField1_ & 0x00200000) != 0)) {
2963 output.writeBool(65, pushToVertex_);
2964 }
2965 if (((bitField1_ & 0x00080000) != 0)) {
2966 output.writeBool(66, logToStdout_);
2967 }
2968 if (((bitField1_ & 0x00400000) != 0)) {
2969 output.writeBool(67, useImpliedFreePreprocessor_);
2970 }
2971 if (((bitField1_ & 0x02000000) != 0)) {
2972 output.writeBool(69, dualPricePrioritizeNorm_);
2973 }
2974 if (((bitField1_ & 0x00800000) != 0)) {
2975 output.writeDouble(70, maxValidMagnitude_);
2976 }
2977 if (((bitField1_ & 0x01000000) != 0)) {
2978 output.writeDouble(71, dropMagnitude_);
2979 }
2980 getUnknownFields().writeTo(output);
2981 }
2982
2983 @java.lang.Override
2984 public int getSerializedSize() {
2985 int size = memoizedSize;
2986 if (size != -1) return size;
2987
2988 size = 0;
2989 if (((bitField0_ & 0x00000002) != 0)) {
2990 size += com.google.protobuf.CodedOutputStream
2991 .computeEnumSize(1, feasibilityRule_);
2992 }
2993 if (((bitField0_ & 0x00000004) != 0)) {
2994 size += com.google.protobuf.CodedOutputStream
2995 .computeEnumSize(2, optimizationRule_);
2996 }
2997 if (((bitField0_ & 0x00000008) != 0)) {
2998 size += com.google.protobuf.CodedOutputStream
2999 .computeDoubleSize(6, refactorizationThreshold_);
3000 }
3001 if (((bitField0_ & 0x00000010) != 0)) {
3002 size += com.google.protobuf.CodedOutputStream
3003 .computeDoubleSize(8, recomputeReducedCostsThreshold_);
3004 }
3005 if (((bitField0_ & 0x00000020) != 0)) {
3006 size += com.google.protobuf.CodedOutputStream
3007 .computeDoubleSize(9, recomputeEdgesNormThreshold_);
3008 }
3009 if (((bitField0_ & 0x00000040) != 0)) {
3010 size += com.google.protobuf.CodedOutputStream
3011 .computeDoubleSize(10, primalFeasibilityTolerance_);
3012 }
3013 if (((bitField0_ & 0x00000080) != 0)) {
3014 size += com.google.protobuf.CodedOutputStream
3015 .computeDoubleSize(11, dualFeasibilityTolerance_);
3016 }
3017 if (((bitField0_ & 0x00000100) != 0)) {
3018 size += com.google.protobuf.CodedOutputStream
3019 .computeDoubleSize(12, ratioTestZeroThreshold_);
3020 }
3021 if (((bitField0_ & 0x00000200) != 0)) {
3022 size += com.google.protobuf.CodedOutputStream
3023 .computeDoubleSize(13, harrisToleranceRatio_);
3024 }
3025 if (((bitField0_ & 0x00000400) != 0)) {
3026 size += com.google.protobuf.CodedOutputStream
3027 .computeDoubleSize(14, smallPivotThreshold_);
3028 }
3029 if (((bitField0_ & 0x00000800) != 0)) {
3030 size += com.google.protobuf.CodedOutputStream
3031 .computeDoubleSize(15, minimumAcceptablePivot_);
3032 }
3033 if (((bitField0_ & 0x00002000) != 0)) {
3034 size += com.google.protobuf.CodedOutputStream
3035 .computeBoolSize(16, useScaling_);
3036 }
3037 if (((bitField0_ & 0x00008000) != 0)) {
3038 size += com.google.protobuf.CodedOutputStream
3039 .computeEnumSize(17, initialBasis_);
3040 }
3041 if (((bitField0_ & 0x00010000) != 0)) {
3042 size += com.google.protobuf.CodedOutputStream
3043 .computeBoolSize(18, useTransposedMatrix_);
3044 }
3045 if (((bitField0_ & 0x00020000) != 0)) {
3046 size += com.google.protobuf.CodedOutputStream
3047 .computeInt32Size(19, basisRefactorizationPeriod_);
3048 }
3049 if (((bitField0_ & 0x00080000) != 0)) {
3050 size += com.google.protobuf.CodedOutputStream
3051 .computeEnumSize(20, solveDualProblem_);
3052 }
3053 if (((bitField0_ & 0x00100000) != 0)) {
3054 size += com.google.protobuf.CodedOutputStream
3055 .computeDoubleSize(21, dualizerThreshold_);
3056 }
3057 if (((bitField0_ & 0x00200000) != 0)) {
3058 size += com.google.protobuf.CodedOutputStream
3059 .computeDoubleSize(22, solutionFeasibilityTolerance_);
3060 }
3061 if (((bitField0_ & 0x00400000) != 0)) {
3062 size += com.google.protobuf.CodedOutputStream
3063 .computeBoolSize(24, provideStrongOptimalGuarantee_);
3064 }
3065 if (((bitField0_ & 0x02000000) != 0)) {
3066 size += com.google.protobuf.CodedOutputStream
3067 .computeDoubleSize(25, luFactorizationPivotThreshold_);
3068 }
3069 if (((bitField0_ & 0x04000000) != 0)) {
3070 size += com.google.protobuf.CodedOutputStream
3071 .computeDoubleSize(26, maxTimeInSeconds_);
3072 }
3073 if (((bitField0_ & 0x10000000) != 0)) {
3074 size += com.google.protobuf.CodedOutputStream
3075 .computeInt64Size(27, maxNumberOfIterations_);
3076 }
3077 if (((bitField0_ & 0x20000000) != 0)) {
3078 size += com.google.protobuf.CodedOutputStream
3079 .computeInt32Size(29, markowitzZlatevParameter_);
3080 }
3081 if (((bitField0_ & 0x40000000) != 0)) {
3082 size += com.google.protobuf.CodedOutputStream
3083 .computeDoubleSize(30, markowitzSingularityThreshold_);
3084 }
3085 if (((bitField0_ & 0x80000000) != 0)) {
3086 size += com.google.protobuf.CodedOutputStream
3087 .computeBoolSize(31, useDualSimplex_);
3088 }
3089 if (((bitField1_ & 0x00000001) != 0)) {
3090 size += com.google.protobuf.CodedOutputStream
3091 .computeBoolSize(32, allowSimplexAlgorithmChange_);
3092 }
3093 if (((bitField1_ & 0x00000002) != 0)) {
3094 size += com.google.protobuf.CodedOutputStream
3095 .computeInt32Size(33, devexWeightsResetPeriod_);
3096 }
3097 if (((bitField1_ & 0x00000004) != 0)) {
3098 size += com.google.protobuf.CodedOutputStream
3099 .computeBoolSize(34, usePreprocessing_);
3100 }
3101 if (((bitField1_ & 0x00000008) != 0)) {
3102 size += com.google.protobuf.CodedOutputStream
3103 .computeBoolSize(35, useMiddleProductFormUpdate_);
3104 }
3105 if (((bitField1_ & 0x00000010) != 0)) {
3106 size += com.google.protobuf.CodedOutputStream
3107 .computeBoolSize(36, initializeDevexWithColumnNorms_);
3108 }
3109 if (((bitField1_ & 0x00000020) != 0)) {
3110 size += com.google.protobuf.CodedOutputStream
3111 .computeBoolSize(37, exploitSingletonColumnInInitialBasis_);
3112 }
3113 if (((bitField1_ & 0x00000040) != 0)) {
3114 size += com.google.protobuf.CodedOutputStream
3115 .computeDoubleSize(38, dualSmallPivotThreshold_);
3116 }
3117 if (((bitField1_ & 0x00000080) != 0)) {
3118 size += com.google.protobuf.CodedOutputStream
3119 .computeDoubleSize(39, preprocessorZeroTolerance_);
3120 }
3121 if (((bitField1_ & 0x00000100) != 0)) {
3122 size += com.google.protobuf.CodedOutputStream
3123 .computeDoubleSize(40, objectiveLowerLimit_);
3124 }
3125 if (((bitField1_ & 0x00000200) != 0)) {
3126 size += com.google.protobuf.CodedOutputStream
3127 .computeDoubleSize(41, objectiveUpperLimit_);
3128 }
3129 if (((bitField1_ & 0x00000400) != 0)) {
3130 size += com.google.protobuf.CodedOutputStream
3131 .computeDoubleSize(42, degenerateMinistepFactor_);
3132 }
3133 if (((bitField1_ & 0x00000800) != 0)) {
3134 size += com.google.protobuf.CodedOutputStream
3135 .computeInt32Size(43, randomSeed_);
3136 }
3137 if (((bitField1_ & 0x00001000) != 0)) {
3138 size += com.google.protobuf.CodedOutputStream
3139 .computeInt32Size(44, numOmpThreads_);
3140 }
3141 if (((bitField0_ & 0x08000000) != 0)) {
3142 size += com.google.protobuf.CodedOutputStream
3143 .computeDoubleSize(45, maxDeterministicTime_);
3144 }
3145 if (((bitField0_ & 0x00001000) != 0)) {
3146 size += com.google.protobuf.CodedOutputStream
3147 .computeDoubleSize(52, dropTolerance_);
3148 }
3149 if (((bitField1_ & 0x00002000) != 0)) {
3150 size += com.google.protobuf.CodedOutputStream
3151 .computeBoolSize(53, perturbCostsInDualSimplex_);
3152 }
3153 if (((bitField1_ & 0x00008000) != 0)) {
3154 size += com.google.protobuf.CodedOutputStream
3155 .computeDoubleSize(54, relativeCostPerturbation_);
3156 }
3157 if (((bitField1_ & 0x00010000) != 0)) {
3158 size += com.google.protobuf.CodedOutputStream
3159 .computeDoubleSize(55, relativeMaxCostPerturbation_);
3160 }
3161 if (((bitField0_ & 0x01000000) != 0)) {
3162 size += com.google.protobuf.CodedOutputStream
3163 .computeDoubleSize(56, maxNumberOfReoptimizations_);
3164 }
3165 if (((bitField0_ & 0x00000001) != 0)) {
3166 size += com.google.protobuf.CodedOutputStream
3167 .computeEnumSize(57, scalingMethod_);
3168 }
3169 if (((bitField0_ & 0x00800000) != 0)) {
3170 size += com.google.protobuf.CodedOutputStream
3171 .computeBoolSize(58, changeStatusToImprecise_);
3172 }
3173 if (((bitField1_ & 0x00020000) != 0)) {
3174 size += com.google.protobuf.CodedOutputStream
3175 .computeDoubleSize(59, initialConditionNumberThreshold_);
3176 }
3177 if (((bitField0_ & 0x00004000) != 0)) {
3178 size += com.google.protobuf.CodedOutputStream
3179 .computeEnumSize(60, costScaling_);
3180 }
3181 if (((bitField1_ & 0x00040000) != 0)) {
3182 size += com.google.protobuf.CodedOutputStream
3183 .computeBoolSize(61, logSearchProgress_);
3184 }
3185 if (((bitField1_ & 0x00004000) != 0)) {
3186 size += com.google.protobuf.CodedOutputStream
3187 .computeBoolSize(62, useDedicatedDualFeasibilityAlgorithm_);
3188 }
3189 if (((bitField0_ & 0x00040000) != 0)) {
3190 size += com.google.protobuf.CodedOutputStream
3191 .computeBoolSize(63, dynamicallyAdjustRefactorizationPeriod_);
3192 }
3193 if (((bitField1_ & 0x00100000) != 0)) {
3194 size += com.google.protobuf.CodedOutputStream
3195 .computeDoubleSize(64, crossoverBoundSnappingDistance_);
3196 }
3197 if (((bitField1_ & 0x00200000) != 0)) {
3198 size += com.google.protobuf.CodedOutputStream
3199 .computeBoolSize(65, pushToVertex_);
3200 }
3201 if (((bitField1_ & 0x00080000) != 0)) {
3202 size += com.google.protobuf.CodedOutputStream
3203 .computeBoolSize(66, logToStdout_);
3204 }
3205 if (((bitField1_ & 0x00400000) != 0)) {
3206 size += com.google.protobuf.CodedOutputStream
3207 .computeBoolSize(67, useImpliedFreePreprocessor_);
3208 }
3209 if (((bitField1_ & 0x02000000) != 0)) {
3210 size += com.google.protobuf.CodedOutputStream
3211 .computeBoolSize(69, dualPricePrioritizeNorm_);
3212 }
3213 if (((bitField1_ & 0x00800000) != 0)) {
3214 size += com.google.protobuf.CodedOutputStream
3215 .computeDoubleSize(70, maxValidMagnitude_);
3216 }
3217 if (((bitField1_ & 0x01000000) != 0)) {
3218 size += com.google.protobuf.CodedOutputStream
3219 .computeDoubleSize(71, dropMagnitude_);
3220 }
3221 size += getUnknownFields().getSerializedSize();
3222 memoizedSize = size;
3223 return size;
3224 }
3225
3226 @java.lang.Override
3227 public boolean equals(final java.lang.Object obj) {
3228 if (obj == this) {
3229 return true;
3230 }
3231 if (!(obj instanceof com.google.ortools.glop.GlopParameters)) {
3232 return super.equals(obj);
3233 }
3234 com.google.ortools.glop.GlopParameters other = (com.google.ortools.glop.GlopParameters) obj;
3235
3236 if (hasScalingMethod() != other.hasScalingMethod()) return false;
3237 if (hasScalingMethod()) {
3238 if (scalingMethod_ != other.scalingMethod_) return false;
3239 }
3240 if (hasFeasibilityRule() != other.hasFeasibilityRule()) return false;
3241 if (hasFeasibilityRule()) {
3242 if (feasibilityRule_ != other.feasibilityRule_) return false;
3243 }
3244 if (hasOptimizationRule() != other.hasOptimizationRule()) return false;
3245 if (hasOptimizationRule()) {
3246 if (optimizationRule_ != other.optimizationRule_) return false;
3247 }
3248 if (hasRefactorizationThreshold() != other.hasRefactorizationThreshold()) return false;
3250 if (java.lang.Double.doubleToLongBits(getRefactorizationThreshold())
3251 != java.lang.Double.doubleToLongBits(
3252 other.getRefactorizationThreshold())) return false;
3253 }
3256 if (java.lang.Double.doubleToLongBits(getRecomputeReducedCostsThreshold())
3257 != java.lang.Double.doubleToLongBits(
3258 other.getRecomputeReducedCostsThreshold())) return false;
3259 }
3262 if (java.lang.Double.doubleToLongBits(getRecomputeEdgesNormThreshold())
3263 != java.lang.Double.doubleToLongBits(
3264 other.getRecomputeEdgesNormThreshold())) return false;
3265 }
3266 if (hasPrimalFeasibilityTolerance() != other.hasPrimalFeasibilityTolerance()) return false;
3268 if (java.lang.Double.doubleToLongBits(getPrimalFeasibilityTolerance())
3269 != java.lang.Double.doubleToLongBits(
3270 other.getPrimalFeasibilityTolerance())) return false;
3271 }
3272 if (hasDualFeasibilityTolerance() != other.hasDualFeasibilityTolerance()) return false;
3274 if (java.lang.Double.doubleToLongBits(getDualFeasibilityTolerance())
3275 != java.lang.Double.doubleToLongBits(
3276 other.getDualFeasibilityTolerance())) return false;
3277 }
3278 if (hasRatioTestZeroThreshold() != other.hasRatioTestZeroThreshold()) return false;
3280 if (java.lang.Double.doubleToLongBits(getRatioTestZeroThreshold())
3281 != java.lang.Double.doubleToLongBits(
3282 other.getRatioTestZeroThreshold())) return false;
3283 }
3284 if (hasHarrisToleranceRatio() != other.hasHarrisToleranceRatio()) return false;
3286 if (java.lang.Double.doubleToLongBits(getHarrisToleranceRatio())
3287 != java.lang.Double.doubleToLongBits(
3288 other.getHarrisToleranceRatio())) return false;
3289 }
3290 if (hasSmallPivotThreshold() != other.hasSmallPivotThreshold()) return false;
3291 if (hasSmallPivotThreshold()) {
3292 if (java.lang.Double.doubleToLongBits(getSmallPivotThreshold())
3293 != java.lang.Double.doubleToLongBits(
3294 other.getSmallPivotThreshold())) return false;
3295 }
3296 if (hasMinimumAcceptablePivot() != other.hasMinimumAcceptablePivot()) return false;
3298 if (java.lang.Double.doubleToLongBits(getMinimumAcceptablePivot())
3299 != java.lang.Double.doubleToLongBits(
3300 other.getMinimumAcceptablePivot())) return false;
3301 }
3302 if (hasDropTolerance() != other.hasDropTolerance()) return false;
3303 if (hasDropTolerance()) {
3304 if (java.lang.Double.doubleToLongBits(getDropTolerance())
3305 != java.lang.Double.doubleToLongBits(
3306 other.getDropTolerance())) return false;
3307 }
3308 if (hasUseScaling() != other.hasUseScaling()) return false;
3309 if (hasUseScaling()) {
3310 if (getUseScaling()
3311 != other.getUseScaling()) return false;
3312 }
3313 if (hasCostScaling() != other.hasCostScaling()) return false;
3314 if (hasCostScaling()) {
3315 if (costScaling_ != other.costScaling_) return false;
3316 }
3317 if (hasInitialBasis() != other.hasInitialBasis()) return false;
3318 if (hasInitialBasis()) {
3319 if (initialBasis_ != other.initialBasis_) return false;
3320 }
3321 if (hasUseTransposedMatrix() != other.hasUseTransposedMatrix()) return false;
3322 if (hasUseTransposedMatrix()) {
3324 != other.getUseTransposedMatrix()) return false;
3325 }
3326 if (hasBasisRefactorizationPeriod() != other.hasBasisRefactorizationPeriod()) return false;
3329 != other.getBasisRefactorizationPeriod()) return false;
3330 }
3334 != other.getDynamicallyAdjustRefactorizationPeriod()) return false;
3335 }
3336 if (hasSolveDualProblem() != other.hasSolveDualProblem()) return false;
3337 if (hasSolveDualProblem()) {
3338 if (solveDualProblem_ != other.solveDualProblem_) return false;
3339 }
3340 if (hasDualizerThreshold() != other.hasDualizerThreshold()) return false;
3341 if (hasDualizerThreshold()) {
3342 if (java.lang.Double.doubleToLongBits(getDualizerThreshold())
3343 != java.lang.Double.doubleToLongBits(
3344 other.getDualizerThreshold())) return false;
3345 }
3348 if (java.lang.Double.doubleToLongBits(getSolutionFeasibilityTolerance())
3349 != java.lang.Double.doubleToLongBits(
3350 other.getSolutionFeasibilityTolerance())) return false;
3351 }
3355 != other.getProvideStrongOptimalGuarantee()) return false;
3356 }
3357 if (hasChangeStatusToImprecise() != other.hasChangeStatusToImprecise()) return false;
3360 != other.getChangeStatusToImprecise()) return false;
3361 }
3362 if (hasMaxNumberOfReoptimizations() != other.hasMaxNumberOfReoptimizations()) return false;
3364 if (java.lang.Double.doubleToLongBits(getMaxNumberOfReoptimizations())
3365 != java.lang.Double.doubleToLongBits(
3366 other.getMaxNumberOfReoptimizations())) return false;
3367 }
3370 if (java.lang.Double.doubleToLongBits(getLuFactorizationPivotThreshold())
3371 != java.lang.Double.doubleToLongBits(
3372 other.getLuFactorizationPivotThreshold())) return false;
3373 }
3374 if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
3375 if (hasMaxTimeInSeconds()) {
3376 if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
3377 != java.lang.Double.doubleToLongBits(
3378 other.getMaxTimeInSeconds())) return false;
3379 }
3380 if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
3382 if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
3383 != java.lang.Double.doubleToLongBits(
3384 other.getMaxDeterministicTime())) return false;
3385 }
3386 if (hasMaxNumberOfIterations() != other.hasMaxNumberOfIterations()) return false;
3389 != other.getMaxNumberOfIterations()) return false;
3390 }
3391 if (hasMarkowitzZlatevParameter() != other.hasMarkowitzZlatevParameter()) return false;
3394 != other.getMarkowitzZlatevParameter()) return false;
3395 }
3398 if (java.lang.Double.doubleToLongBits(getMarkowitzSingularityThreshold())
3399 != java.lang.Double.doubleToLongBits(
3400 other.getMarkowitzSingularityThreshold())) return false;
3401 }
3402 if (hasUseDualSimplex() != other.hasUseDualSimplex()) return false;
3403 if (hasUseDualSimplex()) {
3404 if (getUseDualSimplex()
3405 != other.getUseDualSimplex()) return false;
3406 }
3410 != other.getAllowSimplexAlgorithmChange()) return false;
3411 }
3412 if (hasDevexWeightsResetPeriod() != other.hasDevexWeightsResetPeriod()) return false;
3415 != other.getDevexWeightsResetPeriod()) return false;
3416 }
3417 if (hasUsePreprocessing() != other.hasUsePreprocessing()) return false;
3418 if (hasUsePreprocessing()) {
3420 != other.getUsePreprocessing()) return false;
3421 }
3422 if (hasUseMiddleProductFormUpdate() != other.hasUseMiddleProductFormUpdate()) return false;
3425 != other.getUseMiddleProductFormUpdate()) return false;
3426 }
3430 != other.getInitializeDevexWithColumnNorms()) return false;
3431 }
3435 != other.getExploitSingletonColumnInInitialBasis()) return false;
3436 }
3437 if (hasDualSmallPivotThreshold() != other.hasDualSmallPivotThreshold()) return false;
3439 if (java.lang.Double.doubleToLongBits(getDualSmallPivotThreshold())
3440 != java.lang.Double.doubleToLongBits(
3441 other.getDualSmallPivotThreshold())) return false;
3442 }
3443 if (hasPreprocessorZeroTolerance() != other.hasPreprocessorZeroTolerance()) return false;
3445 if (java.lang.Double.doubleToLongBits(getPreprocessorZeroTolerance())
3446 != java.lang.Double.doubleToLongBits(
3447 other.getPreprocessorZeroTolerance())) return false;
3448 }
3449 if (hasObjectiveLowerLimit() != other.hasObjectiveLowerLimit()) return false;
3450 if (hasObjectiveLowerLimit()) {
3451 if (java.lang.Double.doubleToLongBits(getObjectiveLowerLimit())
3452 != java.lang.Double.doubleToLongBits(
3453 other.getObjectiveLowerLimit())) return false;
3454 }
3455 if (hasObjectiveUpperLimit() != other.hasObjectiveUpperLimit()) return false;
3456 if (hasObjectiveUpperLimit()) {
3457 if (java.lang.Double.doubleToLongBits(getObjectiveUpperLimit())
3458 != java.lang.Double.doubleToLongBits(
3459 other.getObjectiveUpperLimit())) return false;
3460 }
3461 if (hasDegenerateMinistepFactor() != other.hasDegenerateMinistepFactor()) return false;
3463 if (java.lang.Double.doubleToLongBits(getDegenerateMinistepFactor())
3464 != java.lang.Double.doubleToLongBits(
3465 other.getDegenerateMinistepFactor())) return false;
3466 }
3467 if (hasRandomSeed() != other.hasRandomSeed()) return false;
3468 if (hasRandomSeed()) {
3469 if (getRandomSeed()
3470 != other.getRandomSeed()) return false;
3471 }
3472 if (hasNumOmpThreads() != other.hasNumOmpThreads()) return false;
3473 if (hasNumOmpThreads()) {
3474 if (getNumOmpThreads()
3475 != other.getNumOmpThreads()) return false;
3476 }
3477 if (hasPerturbCostsInDualSimplex() != other.hasPerturbCostsInDualSimplex()) return false;
3480 != other.getPerturbCostsInDualSimplex()) return false;
3481 }
3485 != other.getUseDedicatedDualFeasibilityAlgorithm()) return false;
3486 }
3487 if (hasRelativeCostPerturbation() != other.hasRelativeCostPerturbation()) return false;
3489 if (java.lang.Double.doubleToLongBits(getRelativeCostPerturbation())
3490 != java.lang.Double.doubleToLongBits(
3491 other.getRelativeCostPerturbation())) return false;
3492 }
3495 if (java.lang.Double.doubleToLongBits(getRelativeMaxCostPerturbation())
3496 != java.lang.Double.doubleToLongBits(
3497 other.getRelativeMaxCostPerturbation())) return false;
3498 }
3501 if (java.lang.Double.doubleToLongBits(getInitialConditionNumberThreshold())
3502 != java.lang.Double.doubleToLongBits(
3503 other.getInitialConditionNumberThreshold())) return false;
3504 }
3505 if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
3506 if (hasLogSearchProgress()) {
3508 != other.getLogSearchProgress()) return false;
3509 }
3510 if (hasLogToStdout() != other.hasLogToStdout()) return false;
3511 if (hasLogToStdout()) {
3512 if (getLogToStdout()
3513 != other.getLogToStdout()) return false;
3514 }
3517 if (java.lang.Double.doubleToLongBits(getCrossoverBoundSnappingDistance())
3518 != java.lang.Double.doubleToLongBits(
3519 other.getCrossoverBoundSnappingDistance())) return false;
3520 }
3521 if (hasPushToVertex() != other.hasPushToVertex()) return false;
3522 if (hasPushToVertex()) {
3523 if (getPushToVertex()
3524 != other.getPushToVertex()) return false;
3525 }
3526 if (hasUseImpliedFreePreprocessor() != other.hasUseImpliedFreePreprocessor()) return false;
3529 != other.getUseImpliedFreePreprocessor()) return false;
3530 }
3531 if (hasMaxValidMagnitude() != other.hasMaxValidMagnitude()) return false;
3532 if (hasMaxValidMagnitude()) {
3533 if (java.lang.Double.doubleToLongBits(getMaxValidMagnitude())
3534 != java.lang.Double.doubleToLongBits(
3535 other.getMaxValidMagnitude())) return false;
3536 }
3537 if (hasDropMagnitude() != other.hasDropMagnitude()) return false;
3538 if (hasDropMagnitude()) {
3539 if (java.lang.Double.doubleToLongBits(getDropMagnitude())
3540 != java.lang.Double.doubleToLongBits(
3541 other.getDropMagnitude())) return false;
3542 }
3543 if (hasDualPricePrioritizeNorm() != other.hasDualPricePrioritizeNorm()) return false;
3546 != other.getDualPricePrioritizeNorm()) return false;
3547 }
3548 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
3549 return true;
3550 }
3551
3552 @java.lang.Override
3553 public int hashCode() {
3554 if (memoizedHashCode != 0) {
3555 return memoizedHashCode;
3556 }
3557 int hash = 41;
3558 hash = (19 * hash) + getDescriptor().hashCode();
3559 if (hasScalingMethod()) {
3560 hash = (37 * hash) + SCALING_METHOD_FIELD_NUMBER;
3561 hash = (53 * hash) + scalingMethod_;
3562 }
3563 if (hasFeasibilityRule()) {
3564 hash = (37 * hash) + FEASIBILITY_RULE_FIELD_NUMBER;
3565 hash = (53 * hash) + feasibilityRule_;
3566 }
3567 if (hasOptimizationRule()) {
3568 hash = (37 * hash) + OPTIMIZATION_RULE_FIELD_NUMBER;
3569 hash = (53 * hash) + optimizationRule_;
3570 }
3572 hash = (37 * hash) + REFACTORIZATION_THRESHOLD_FIELD_NUMBER;
3573 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3574 java.lang.Double.doubleToLongBits(getRefactorizationThreshold()));
3575 }
3578 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3579 java.lang.Double.doubleToLongBits(getRecomputeReducedCostsThreshold()));
3580 }
3583 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3584 java.lang.Double.doubleToLongBits(getRecomputeEdgesNormThreshold()));
3585 }
3587 hash = (37 * hash) + PRIMAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER;
3588 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3589 java.lang.Double.doubleToLongBits(getPrimalFeasibilityTolerance()));
3590 }
3592 hash = (37 * hash) + DUAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER;
3593 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3594 java.lang.Double.doubleToLongBits(getDualFeasibilityTolerance()));
3595 }
3597 hash = (37 * hash) + RATIO_TEST_ZERO_THRESHOLD_FIELD_NUMBER;
3598 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3599 java.lang.Double.doubleToLongBits(getRatioTestZeroThreshold()));
3600 }
3602 hash = (37 * hash) + HARRIS_TOLERANCE_RATIO_FIELD_NUMBER;
3603 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3604 java.lang.Double.doubleToLongBits(getHarrisToleranceRatio()));
3605 }
3606 if (hasSmallPivotThreshold()) {
3607 hash = (37 * hash) + SMALL_PIVOT_THRESHOLD_FIELD_NUMBER;
3608 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3609 java.lang.Double.doubleToLongBits(getSmallPivotThreshold()));
3610 }
3612 hash = (37 * hash) + MINIMUM_ACCEPTABLE_PIVOT_FIELD_NUMBER;
3613 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3614 java.lang.Double.doubleToLongBits(getMinimumAcceptablePivot()));
3615 }
3616 if (hasDropTolerance()) {
3617 hash = (37 * hash) + DROP_TOLERANCE_FIELD_NUMBER;
3618 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3619 java.lang.Double.doubleToLongBits(getDropTolerance()));
3620 }
3621 if (hasUseScaling()) {
3622 hash = (37 * hash) + USE_SCALING_FIELD_NUMBER;
3623 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3624 getUseScaling());
3625 }
3626 if (hasCostScaling()) {
3627 hash = (37 * hash) + COST_SCALING_FIELD_NUMBER;
3628 hash = (53 * hash) + costScaling_;
3629 }
3630 if (hasInitialBasis()) {
3631 hash = (37 * hash) + INITIAL_BASIS_FIELD_NUMBER;
3632 hash = (53 * hash) + initialBasis_;
3633 }
3634 if (hasUseTransposedMatrix()) {
3635 hash = (37 * hash) + USE_TRANSPOSED_MATRIX_FIELD_NUMBER;
3636 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3638 }
3640 hash = (37 * hash) + BASIS_REFACTORIZATION_PERIOD_FIELD_NUMBER;
3641 hash = (53 * hash) + getBasisRefactorizationPeriod();
3642 }
3645 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3647 }
3648 if (hasSolveDualProblem()) {
3649 hash = (37 * hash) + SOLVE_DUAL_PROBLEM_FIELD_NUMBER;
3650 hash = (53 * hash) + solveDualProblem_;
3651 }
3652 if (hasDualizerThreshold()) {
3653 hash = (37 * hash) + DUALIZER_THRESHOLD_FIELD_NUMBER;
3654 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3655 java.lang.Double.doubleToLongBits(getDualizerThreshold()));
3656 }
3659 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3660 java.lang.Double.doubleToLongBits(getSolutionFeasibilityTolerance()));
3661 }
3664 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3666 }
3668 hash = (37 * hash) + CHANGE_STATUS_TO_IMPRECISE_FIELD_NUMBER;
3669 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3671 }
3673 hash = (37 * hash) + MAX_NUMBER_OF_REOPTIMIZATIONS_FIELD_NUMBER;
3674 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3675 java.lang.Double.doubleToLongBits(getMaxNumberOfReoptimizations()));
3676 }
3679 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3680 java.lang.Double.doubleToLongBits(getLuFactorizationPivotThreshold()));
3681 }
3682 if (hasMaxTimeInSeconds()) {
3683 hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
3684 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3685 java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
3686 }
3688 hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
3689 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3690 java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
3691 }
3693 hash = (37 * hash) + MAX_NUMBER_OF_ITERATIONS_FIELD_NUMBER;
3694 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3696 }
3698 hash = (37 * hash) + MARKOWITZ_ZLATEV_PARAMETER_FIELD_NUMBER;
3699 hash = (53 * hash) + getMarkowitzZlatevParameter();
3700 }
3703 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3704 java.lang.Double.doubleToLongBits(getMarkowitzSingularityThreshold()));
3705 }
3706 if (hasUseDualSimplex()) {
3707 hash = (37 * hash) + USE_DUAL_SIMPLEX_FIELD_NUMBER;
3708 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3710 }
3713 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3715 }
3717 hash = (37 * hash) + DEVEX_WEIGHTS_RESET_PERIOD_FIELD_NUMBER;
3718 hash = (53 * hash) + getDevexWeightsResetPeriod();
3719 }
3720 if (hasUsePreprocessing()) {
3721 hash = (37 * hash) + USE_PREPROCESSING_FIELD_NUMBER;
3722 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3724 }
3727 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3729 }
3732 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3734 }
3737 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3739 }
3741 hash = (37 * hash) + DUAL_SMALL_PIVOT_THRESHOLD_FIELD_NUMBER;
3742 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3743 java.lang.Double.doubleToLongBits(getDualSmallPivotThreshold()));
3744 }
3746 hash = (37 * hash) + PREPROCESSOR_ZERO_TOLERANCE_FIELD_NUMBER;
3747 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3748 java.lang.Double.doubleToLongBits(getPreprocessorZeroTolerance()));
3749 }
3750 if (hasObjectiveLowerLimit()) {
3751 hash = (37 * hash) + OBJECTIVE_LOWER_LIMIT_FIELD_NUMBER;
3752 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3753 java.lang.Double.doubleToLongBits(getObjectiveLowerLimit()));
3754 }
3755 if (hasObjectiveUpperLimit()) {
3756 hash = (37 * hash) + OBJECTIVE_UPPER_LIMIT_FIELD_NUMBER;
3757 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3758 java.lang.Double.doubleToLongBits(getObjectiveUpperLimit()));
3759 }
3761 hash = (37 * hash) + DEGENERATE_MINISTEP_FACTOR_FIELD_NUMBER;
3762 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3763 java.lang.Double.doubleToLongBits(getDegenerateMinistepFactor()));
3764 }
3765 if (hasRandomSeed()) {
3766 hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
3767 hash = (53 * hash) + getRandomSeed();
3768 }
3769 if (hasNumOmpThreads()) {
3770 hash = (37 * hash) + NUM_OMP_THREADS_FIELD_NUMBER;
3771 hash = (53 * hash) + getNumOmpThreads();
3772 }
3774 hash = (37 * hash) + PERTURB_COSTS_IN_DUAL_SIMPLEX_FIELD_NUMBER;
3775 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3777 }
3780 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3782 }
3784 hash = (37 * hash) + RELATIVE_COST_PERTURBATION_FIELD_NUMBER;
3785 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3786 java.lang.Double.doubleToLongBits(getRelativeCostPerturbation()));
3787 }
3790 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3791 java.lang.Double.doubleToLongBits(getRelativeMaxCostPerturbation()));
3792 }
3795 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3796 java.lang.Double.doubleToLongBits(getInitialConditionNumberThreshold()));
3797 }
3798 if (hasLogSearchProgress()) {
3799 hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
3800 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3802 }
3803 if (hasLogToStdout()) {
3804 hash = (37 * hash) + LOG_TO_STDOUT_FIELD_NUMBER;
3805 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3806 getLogToStdout());
3807 }
3810 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3811 java.lang.Double.doubleToLongBits(getCrossoverBoundSnappingDistance()));
3812 }
3813 if (hasPushToVertex()) {
3814 hash = (37 * hash) + PUSH_TO_VERTEX_FIELD_NUMBER;
3815 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3816 getPushToVertex());
3817 }
3819 hash = (37 * hash) + USE_IMPLIED_FREE_PREPROCESSOR_FIELD_NUMBER;
3820 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3822 }
3823 if (hasMaxValidMagnitude()) {
3824 hash = (37 * hash) + MAX_VALID_MAGNITUDE_FIELD_NUMBER;
3825 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3826 java.lang.Double.doubleToLongBits(getMaxValidMagnitude()));
3827 }
3828 if (hasDropMagnitude()) {
3829 hash = (37 * hash) + DROP_MAGNITUDE_FIELD_NUMBER;
3830 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3831 java.lang.Double.doubleToLongBits(getDropMagnitude()));
3832 }
3834 hash = (37 * hash) + DUAL_PRICE_PRIORITIZE_NORM_FIELD_NUMBER;
3835 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3837 }
3838 hash = (29 * hash) + getUnknownFields().hashCode();
3839 memoizedHashCode = hash;
3840 return hash;
3841 }
3842
3844 java.nio.ByteBuffer data)
3845 throws com.google.protobuf.InvalidProtocolBufferException {
3846 return PARSER.parseFrom(data);
3847 }
3849 java.nio.ByteBuffer data,
3850 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3851 throws com.google.protobuf.InvalidProtocolBufferException {
3852 return PARSER.parseFrom(data, extensionRegistry);
3853 }
3855 com.google.protobuf.ByteString data)
3856 throws com.google.protobuf.InvalidProtocolBufferException {
3857 return PARSER.parseFrom(data);
3858 }
3860 com.google.protobuf.ByteString data,
3861 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3862 throws com.google.protobuf.InvalidProtocolBufferException {
3863 return PARSER.parseFrom(data, extensionRegistry);
3864 }
3866 throws com.google.protobuf.InvalidProtocolBufferException {
3867 return PARSER.parseFrom(data);
3868 }
3870 byte[] data,
3871 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3872 throws com.google.protobuf.InvalidProtocolBufferException {
3873 return PARSER.parseFrom(data, extensionRegistry);
3874 }
3875 public static com.google.ortools.glop.GlopParameters parseFrom(java.io.InputStream input)
3876 throws java.io.IOException {
3877 return com.google.protobuf.GeneratedMessage
3878 .parseWithIOException(PARSER, input);
3879 }
3881 java.io.InputStream input,
3882 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3883 throws java.io.IOException {
3884 return com.google.protobuf.GeneratedMessage
3885 .parseWithIOException(PARSER, input, extensionRegistry);
3886 }
3887
3888 public static com.google.ortools.glop.GlopParameters parseDelimitedFrom(java.io.InputStream input)
3889 throws java.io.IOException {
3890 return com.google.protobuf.GeneratedMessage
3891 .parseDelimitedWithIOException(PARSER, input);
3892 }
3893
3895 java.io.InputStream input,
3896 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3897 throws java.io.IOException {
3898 return com.google.protobuf.GeneratedMessage
3899 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3900 }
3902 com.google.protobuf.CodedInputStream input)
3903 throws java.io.IOException {
3904 return com.google.protobuf.GeneratedMessage
3905 .parseWithIOException(PARSER, input);
3906 }
3908 com.google.protobuf.CodedInputStream input,
3909 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3910 throws java.io.IOException {
3911 return com.google.protobuf.GeneratedMessage
3912 .parseWithIOException(PARSER, input, extensionRegistry);
3913 }
3914
3915 @java.lang.Override
3916 public Builder newBuilderForType() { return newBuilder(); }
3917 public static Builder newBuilder() {
3918 return DEFAULT_INSTANCE.toBuilder();
3919 }
3920 public static Builder newBuilder(com.google.ortools.glop.GlopParameters prototype) {
3921 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3922 }
3923 @java.lang.Override
3925 return this == DEFAULT_INSTANCE
3926 ? new Builder() : new Builder().mergeFrom(this);
3927 }
3928
3929 @java.lang.Override
3931 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3932 Builder builder = new Builder(parent);
3933 return builder;
3934 }
3935
3942 public static final class Builder extends
3943 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
3944 // @@protoc_insertion_point(builder_implements:operations_research.glop.GlopParameters)
3946 public static final com.google.protobuf.Descriptors.Descriptor
3948 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
3949 }
3950
3951 @java.lang.Override
3952 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
3954 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_fieldAccessorTable
3955 .ensureFieldAccessorsInitialized(
3956 com.google.ortools.glop.GlopParameters.class, com.google.ortools.glop.GlopParameters.Builder.class);
3957 }
3958
3959 // Construct using com.google.ortools.glop.GlopParameters.newBuilder()
3960 private Builder() {
3961
3962 }
3963
3964 private Builder(
3965 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3966 super(parent);
3967
3968 }
3969 @java.lang.Override
3970 public Builder clear() {
3971 super.clear();
3972 bitField0_ = 0;
3973 bitField1_ = 0;
3974 scalingMethod_ = 1;
3975 feasibilityRule_ = 1;
3976 optimizationRule_ = 1;
3977 refactorizationThreshold_ = 1e-09D;
3978 recomputeReducedCostsThreshold_ = 1e-08D;
3979 recomputeEdgesNormThreshold_ = 100D;
3980 primalFeasibilityTolerance_ = 1e-08D;
3981 dualFeasibilityTolerance_ = 1e-08D;
3982 ratioTestZeroThreshold_ = 1e-09D;
3983 harrisToleranceRatio_ = 0.5D;
3984 smallPivotThreshold_ = 1e-06D;
3985 minimumAcceptablePivot_ = 1e-06D;
3986 dropTolerance_ = 1e-14D;
3987 useScaling_ = true;
3988 costScaling_ = 1;
3989 initialBasis_ = 2;
3990 useTransposedMatrix_ = true;
3991 basisRefactorizationPeriod_ = 64;
3992 dynamicallyAdjustRefactorizationPeriod_ = true;
3993 solveDualProblem_ = 2;
3994 dualizerThreshold_ = 1.5D;
3995 solutionFeasibilityTolerance_ = 1e-06D;
3996 provideStrongOptimalGuarantee_ = true;
3997 changeStatusToImprecise_ = true;
3998 maxNumberOfReoptimizations_ = 40D;
3999 luFactorizationPivotThreshold_ = 0.01D;
4000 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
4001 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
4002 maxNumberOfIterations_ = -1L;
4003 markowitzZlatevParameter_ = 3;
4004 markowitzSingularityThreshold_ = 1e-15D;
4005 useDualSimplex_ = false;
4006 allowSimplexAlgorithmChange_ = false;
4007 devexWeightsResetPeriod_ = 150;
4008 usePreprocessing_ = true;
4009 useMiddleProductFormUpdate_ = true;
4010 initializeDevexWithColumnNorms_ = true;
4011 exploitSingletonColumnInInitialBasis_ = true;
4012 dualSmallPivotThreshold_ = 0.0001D;
4013 preprocessorZeroTolerance_ = 1e-09D;
4014 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
4015 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
4016 degenerateMinistepFactor_ = 0.01D;
4017 randomSeed_ = 1;
4018 numOmpThreads_ = 1;
4019 perturbCostsInDualSimplex_ = false;
4020 useDedicatedDualFeasibilityAlgorithm_ = true;
4021 relativeCostPerturbation_ = 1e-05D;
4022 relativeMaxCostPerturbation_ = 1e-07D;
4023 initialConditionNumberThreshold_ = 1e+50D;
4024 logSearchProgress_ = false;
4025 logToStdout_ = true;
4026 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
4027 pushToVertex_ = true;
4028 useImpliedFreePreprocessor_ = true;
4029 maxValidMagnitude_ = 1e+30D;
4030 dropMagnitude_ = 1e-30D;
4031 dualPricePrioritizeNorm_ = false;
4032 return this;
4033 }
4034
4035 @java.lang.Override
4036 public com.google.protobuf.Descriptors.Descriptor
4038 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
4039 }
4040
4041 @java.lang.Override
4043 return com.google.ortools.glop.GlopParameters.getDefaultInstance();
4044 }
4045
4046 @java.lang.Override
4049 if (!result.isInitialized()) {
4050 throw newUninitializedMessageException(result);
4051 }
4052 return result;
4053 }
4054
4055 @java.lang.Override
4057 com.google.ortools.glop.GlopParameters result = new com.google.ortools.glop.GlopParameters(this);
4058 if (bitField0_ != 0) { buildPartial0(result); }
4059 if (bitField1_ != 0) { buildPartial1(result); }
4060 onBuilt();
4061 return result;
4062 }
4063
4064 private void buildPartial0(com.google.ortools.glop.GlopParameters result) {
4065 int from_bitField0_ = bitField0_;
4066 int to_bitField0_ = 0;
4067 if (((from_bitField0_ & 0x00000001) != 0)) {
4068 result.scalingMethod_ = scalingMethod_;
4069 to_bitField0_ |= 0x00000001;
4070 }
4071 if (((from_bitField0_ & 0x00000002) != 0)) {
4072 result.feasibilityRule_ = feasibilityRule_;
4073 to_bitField0_ |= 0x00000002;
4074 }
4075 if (((from_bitField0_ & 0x00000004) != 0)) {
4076 result.optimizationRule_ = optimizationRule_;
4077 to_bitField0_ |= 0x00000004;
4078 }
4079 if (((from_bitField0_ & 0x00000008) != 0)) {
4080 result.refactorizationThreshold_ = refactorizationThreshold_;
4081 to_bitField0_ |= 0x00000008;
4082 }
4083 if (((from_bitField0_ & 0x00000010) != 0)) {
4084 result.recomputeReducedCostsThreshold_ = recomputeReducedCostsThreshold_;
4085 to_bitField0_ |= 0x00000010;
4086 }
4087 if (((from_bitField0_ & 0x00000020) != 0)) {
4088 result.recomputeEdgesNormThreshold_ = recomputeEdgesNormThreshold_;
4089 to_bitField0_ |= 0x00000020;
4090 }
4091 if (((from_bitField0_ & 0x00000040) != 0)) {
4092 result.primalFeasibilityTolerance_ = primalFeasibilityTolerance_;
4093 to_bitField0_ |= 0x00000040;
4094 }
4095 if (((from_bitField0_ & 0x00000080) != 0)) {
4096 result.dualFeasibilityTolerance_ = dualFeasibilityTolerance_;
4097 to_bitField0_ |= 0x00000080;
4098 }
4099 if (((from_bitField0_ & 0x00000100) != 0)) {
4100 result.ratioTestZeroThreshold_ = ratioTestZeroThreshold_;
4101 to_bitField0_ |= 0x00000100;
4102 }
4103 if (((from_bitField0_ & 0x00000200) != 0)) {
4104 result.harrisToleranceRatio_ = harrisToleranceRatio_;
4105 to_bitField0_ |= 0x00000200;
4106 }
4107 if (((from_bitField0_ & 0x00000400) != 0)) {
4108 result.smallPivotThreshold_ = smallPivotThreshold_;
4109 to_bitField0_ |= 0x00000400;
4110 }
4111 if (((from_bitField0_ & 0x00000800) != 0)) {
4112 result.minimumAcceptablePivot_ = minimumAcceptablePivot_;
4113 to_bitField0_ |= 0x00000800;
4114 }
4115 if (((from_bitField0_ & 0x00001000) != 0)) {
4116 result.dropTolerance_ = dropTolerance_;
4117 to_bitField0_ |= 0x00001000;
4118 }
4119 if (((from_bitField0_ & 0x00002000) != 0)) {
4120 result.useScaling_ = useScaling_;
4121 to_bitField0_ |= 0x00002000;
4122 }
4123 if (((from_bitField0_ & 0x00004000) != 0)) {
4124 result.costScaling_ = costScaling_;
4125 to_bitField0_ |= 0x00004000;
4126 }
4127 if (((from_bitField0_ & 0x00008000) != 0)) {
4128 result.initialBasis_ = initialBasis_;
4129 to_bitField0_ |= 0x00008000;
4130 }
4131 if (((from_bitField0_ & 0x00010000) != 0)) {
4132 result.useTransposedMatrix_ = useTransposedMatrix_;
4133 to_bitField0_ |= 0x00010000;
4134 }
4135 if (((from_bitField0_ & 0x00020000) != 0)) {
4136 result.basisRefactorizationPeriod_ = basisRefactorizationPeriod_;
4137 to_bitField0_ |= 0x00020000;
4138 }
4139 if (((from_bitField0_ & 0x00040000) != 0)) {
4140 result.dynamicallyAdjustRefactorizationPeriod_ = dynamicallyAdjustRefactorizationPeriod_;
4141 to_bitField0_ |= 0x00040000;
4142 }
4143 if (((from_bitField0_ & 0x00080000) != 0)) {
4144 result.solveDualProblem_ = solveDualProblem_;
4145 to_bitField0_ |= 0x00080000;
4146 }
4147 if (((from_bitField0_ & 0x00100000) != 0)) {
4148 result.dualizerThreshold_ = dualizerThreshold_;
4149 to_bitField0_ |= 0x00100000;
4150 }
4151 if (((from_bitField0_ & 0x00200000) != 0)) {
4152 result.solutionFeasibilityTolerance_ = solutionFeasibilityTolerance_;
4153 to_bitField0_ |= 0x00200000;
4154 }
4155 if (((from_bitField0_ & 0x00400000) != 0)) {
4156 result.provideStrongOptimalGuarantee_ = provideStrongOptimalGuarantee_;
4157 to_bitField0_ |= 0x00400000;
4158 }
4159 if (((from_bitField0_ & 0x00800000) != 0)) {
4160 result.changeStatusToImprecise_ = changeStatusToImprecise_;
4161 to_bitField0_ |= 0x00800000;
4162 }
4163 if (((from_bitField0_ & 0x01000000) != 0)) {
4164 result.maxNumberOfReoptimizations_ = maxNumberOfReoptimizations_;
4165 to_bitField0_ |= 0x01000000;
4166 }
4167 if (((from_bitField0_ & 0x02000000) != 0)) {
4168 result.luFactorizationPivotThreshold_ = luFactorizationPivotThreshold_;
4169 to_bitField0_ |= 0x02000000;
4170 }
4171 if (((from_bitField0_ & 0x04000000) != 0)) {
4172 result.maxTimeInSeconds_ = maxTimeInSeconds_;
4173 to_bitField0_ |= 0x04000000;
4174 }
4175 if (((from_bitField0_ & 0x08000000) != 0)) {
4176 result.maxDeterministicTime_ = maxDeterministicTime_;
4177 to_bitField0_ |= 0x08000000;
4178 }
4179 if (((from_bitField0_ & 0x10000000) != 0)) {
4180 result.maxNumberOfIterations_ = maxNumberOfIterations_;
4181 to_bitField0_ |= 0x10000000;
4182 }
4183 if (((from_bitField0_ & 0x20000000) != 0)) {
4184 result.markowitzZlatevParameter_ = markowitzZlatevParameter_;
4185 to_bitField0_ |= 0x20000000;
4186 }
4187 if (((from_bitField0_ & 0x40000000) != 0)) {
4188 result.markowitzSingularityThreshold_ = markowitzSingularityThreshold_;
4189 to_bitField0_ |= 0x40000000;
4190 }
4191 if (((from_bitField0_ & 0x80000000) != 0)) {
4192 result.useDualSimplex_ = useDualSimplex_;
4193 to_bitField0_ |= 0x80000000;
4194 }
4195 result.bitField0_ |= to_bitField0_;
4196 }
4197
4198 private void buildPartial1(com.google.ortools.glop.GlopParameters result) {
4199 int from_bitField1_ = bitField1_;
4200 int to_bitField1_ = 0;
4201 if (((from_bitField1_ & 0x00000001) != 0)) {
4202 result.allowSimplexAlgorithmChange_ = allowSimplexAlgorithmChange_;
4203 to_bitField1_ |= 0x00000001;
4204 }
4205 if (((from_bitField1_ & 0x00000002) != 0)) {
4206 result.devexWeightsResetPeriod_ = devexWeightsResetPeriod_;
4207 to_bitField1_ |= 0x00000002;
4208 }
4209 if (((from_bitField1_ & 0x00000004) != 0)) {
4210 result.usePreprocessing_ = usePreprocessing_;
4211 to_bitField1_ |= 0x00000004;
4212 }
4213 if (((from_bitField1_ & 0x00000008) != 0)) {
4214 result.useMiddleProductFormUpdate_ = useMiddleProductFormUpdate_;
4215 to_bitField1_ |= 0x00000008;
4216 }
4217 if (((from_bitField1_ & 0x00000010) != 0)) {
4218 result.initializeDevexWithColumnNorms_ = initializeDevexWithColumnNorms_;
4219 to_bitField1_ |= 0x00000010;
4220 }
4221 if (((from_bitField1_ & 0x00000020) != 0)) {
4222 result.exploitSingletonColumnInInitialBasis_ = exploitSingletonColumnInInitialBasis_;
4223 to_bitField1_ |= 0x00000020;
4224 }
4225 if (((from_bitField1_ & 0x00000040) != 0)) {
4226 result.dualSmallPivotThreshold_ = dualSmallPivotThreshold_;
4227 to_bitField1_ |= 0x00000040;
4228 }
4229 if (((from_bitField1_ & 0x00000080) != 0)) {
4230 result.preprocessorZeroTolerance_ = preprocessorZeroTolerance_;
4231 to_bitField1_ |= 0x00000080;
4232 }
4233 if (((from_bitField1_ & 0x00000100) != 0)) {
4234 result.objectiveLowerLimit_ = objectiveLowerLimit_;
4235 to_bitField1_ |= 0x00000100;
4236 }
4237 if (((from_bitField1_ & 0x00000200) != 0)) {
4238 result.objectiveUpperLimit_ = objectiveUpperLimit_;
4239 to_bitField1_ |= 0x00000200;
4240 }
4241 if (((from_bitField1_ & 0x00000400) != 0)) {
4242 result.degenerateMinistepFactor_ = degenerateMinistepFactor_;
4243 to_bitField1_ |= 0x00000400;
4244 }
4245 if (((from_bitField1_ & 0x00000800) != 0)) {
4246 result.randomSeed_ = randomSeed_;
4247 to_bitField1_ |= 0x00000800;
4248 }
4249 if (((from_bitField1_ & 0x00001000) != 0)) {
4250 result.numOmpThreads_ = numOmpThreads_;
4251 to_bitField1_ |= 0x00001000;
4252 }
4253 if (((from_bitField1_ & 0x00002000) != 0)) {
4254 result.perturbCostsInDualSimplex_ = perturbCostsInDualSimplex_;
4255 to_bitField1_ |= 0x00002000;
4256 }
4257 if (((from_bitField1_ & 0x00004000) != 0)) {
4258 result.useDedicatedDualFeasibilityAlgorithm_ = useDedicatedDualFeasibilityAlgorithm_;
4259 to_bitField1_ |= 0x00004000;
4260 }
4261 if (((from_bitField1_ & 0x00008000) != 0)) {
4262 result.relativeCostPerturbation_ = relativeCostPerturbation_;
4263 to_bitField1_ |= 0x00008000;
4264 }
4265 if (((from_bitField1_ & 0x00010000) != 0)) {
4266 result.relativeMaxCostPerturbation_ = relativeMaxCostPerturbation_;
4267 to_bitField1_ |= 0x00010000;
4268 }
4269 if (((from_bitField1_ & 0x00020000) != 0)) {
4270 result.initialConditionNumberThreshold_ = initialConditionNumberThreshold_;
4271 to_bitField1_ |= 0x00020000;
4272 }
4273 if (((from_bitField1_ & 0x00040000) != 0)) {
4274 result.logSearchProgress_ = logSearchProgress_;
4275 to_bitField1_ |= 0x00040000;
4276 }
4277 if (((from_bitField1_ & 0x00080000) != 0)) {
4278 result.logToStdout_ = logToStdout_;
4279 to_bitField1_ |= 0x00080000;
4280 }
4281 if (((from_bitField1_ & 0x00100000) != 0)) {
4282 result.crossoverBoundSnappingDistance_ = crossoverBoundSnappingDistance_;
4283 to_bitField1_ |= 0x00100000;
4284 }
4285 if (((from_bitField1_ & 0x00200000) != 0)) {
4286 result.pushToVertex_ = pushToVertex_;
4287 to_bitField1_ |= 0x00200000;
4288 }
4289 if (((from_bitField1_ & 0x00400000) != 0)) {
4290 result.useImpliedFreePreprocessor_ = useImpliedFreePreprocessor_;
4291 to_bitField1_ |= 0x00400000;
4292 }
4293 if (((from_bitField1_ & 0x00800000) != 0)) {
4294 result.maxValidMagnitude_ = maxValidMagnitude_;
4295 to_bitField1_ |= 0x00800000;
4296 }
4297 if (((from_bitField1_ & 0x01000000) != 0)) {
4298 result.dropMagnitude_ = dropMagnitude_;
4299 to_bitField1_ |= 0x01000000;
4300 }
4301 if (((from_bitField1_ & 0x02000000) != 0)) {
4302 result.dualPricePrioritizeNorm_ = dualPricePrioritizeNorm_;
4303 to_bitField1_ |= 0x02000000;
4304 }
4305 result.bitField1_ |= to_bitField1_;
4306 }
4307
4308 @java.lang.Override
4309 public Builder mergeFrom(com.google.protobuf.Message other) {
4310 if (other instanceof com.google.ortools.glop.GlopParameters) {
4311 return mergeFrom((com.google.ortools.glop.GlopParameters)other);
4312 } else {
4313 super.mergeFrom(other);
4314 return this;
4315 }
4316 }
4317
4318 public Builder mergeFrom(com.google.ortools.glop.GlopParameters other) {
4319 if (other == com.google.ortools.glop.GlopParameters.getDefaultInstance()) return this;
4320 if (other.hasScalingMethod()) {
4321 setScalingMethod(other.getScalingMethod());
4322 }
4323 if (other.hasFeasibilityRule()) {
4324 setFeasibilityRule(other.getFeasibilityRule());
4325 }
4326 if (other.hasOptimizationRule()) {
4327 setOptimizationRule(other.getOptimizationRule());
4328 }
4329 if (other.hasRefactorizationThreshold()) {
4330 setRefactorizationThreshold(other.getRefactorizationThreshold());
4331 }
4332 if (other.hasRecomputeReducedCostsThreshold()) {
4333 setRecomputeReducedCostsThreshold(other.getRecomputeReducedCostsThreshold());
4334 }
4335 if (other.hasRecomputeEdgesNormThreshold()) {
4336 setRecomputeEdgesNormThreshold(other.getRecomputeEdgesNormThreshold());
4337 }
4338 if (other.hasPrimalFeasibilityTolerance()) {
4339 setPrimalFeasibilityTolerance(other.getPrimalFeasibilityTolerance());
4340 }
4341 if (other.hasDualFeasibilityTolerance()) {
4342 setDualFeasibilityTolerance(other.getDualFeasibilityTolerance());
4343 }
4344 if (other.hasRatioTestZeroThreshold()) {
4345 setRatioTestZeroThreshold(other.getRatioTestZeroThreshold());
4346 }
4347 if (other.hasHarrisToleranceRatio()) {
4348 setHarrisToleranceRatio(other.getHarrisToleranceRatio());
4349 }
4350 if (other.hasSmallPivotThreshold()) {
4351 setSmallPivotThreshold(other.getSmallPivotThreshold());
4352 }
4353 if (other.hasMinimumAcceptablePivot()) {
4354 setMinimumAcceptablePivot(other.getMinimumAcceptablePivot());
4355 }
4356 if (other.hasDropTolerance()) {
4357 setDropTolerance(other.getDropTolerance());
4358 }
4359 if (other.hasUseScaling()) {
4360 setUseScaling(other.getUseScaling());
4361 }
4362 if (other.hasCostScaling()) {
4363 setCostScaling(other.getCostScaling());
4364 }
4365 if (other.hasInitialBasis()) {
4366 setInitialBasis(other.getInitialBasis());
4367 }
4368 if (other.hasUseTransposedMatrix()) {
4369 setUseTransposedMatrix(other.getUseTransposedMatrix());
4370 }
4371 if (other.hasBasisRefactorizationPeriod()) {
4372 setBasisRefactorizationPeriod(other.getBasisRefactorizationPeriod());
4373 }
4374 if (other.hasDynamicallyAdjustRefactorizationPeriod()) {
4375 setDynamicallyAdjustRefactorizationPeriod(other.getDynamicallyAdjustRefactorizationPeriod());
4376 }
4377 if (other.hasSolveDualProblem()) {
4378 setSolveDualProblem(other.getSolveDualProblem());
4379 }
4380 if (other.hasDualizerThreshold()) {
4381 setDualizerThreshold(other.getDualizerThreshold());
4382 }
4383 if (other.hasSolutionFeasibilityTolerance()) {
4384 setSolutionFeasibilityTolerance(other.getSolutionFeasibilityTolerance());
4385 }
4386 if (other.hasProvideStrongOptimalGuarantee()) {
4387 setProvideStrongOptimalGuarantee(other.getProvideStrongOptimalGuarantee());
4388 }
4389 if (other.hasChangeStatusToImprecise()) {
4390 setChangeStatusToImprecise(other.getChangeStatusToImprecise());
4391 }
4392 if (other.hasMaxNumberOfReoptimizations()) {
4393 setMaxNumberOfReoptimizations(other.getMaxNumberOfReoptimizations());
4394 }
4395 if (other.hasLuFactorizationPivotThreshold()) {
4396 setLuFactorizationPivotThreshold(other.getLuFactorizationPivotThreshold());
4397 }
4398 if (other.hasMaxTimeInSeconds()) {
4399 setMaxTimeInSeconds(other.getMaxTimeInSeconds());
4400 }
4401 if (other.hasMaxDeterministicTime()) {
4402 setMaxDeterministicTime(other.getMaxDeterministicTime());
4403 }
4404 if (other.hasMaxNumberOfIterations()) {
4405 setMaxNumberOfIterations(other.getMaxNumberOfIterations());
4406 }
4407 if (other.hasMarkowitzZlatevParameter()) {
4408 setMarkowitzZlatevParameter(other.getMarkowitzZlatevParameter());
4409 }
4410 if (other.hasMarkowitzSingularityThreshold()) {
4411 setMarkowitzSingularityThreshold(other.getMarkowitzSingularityThreshold());
4412 }
4413 if (other.hasUseDualSimplex()) {
4414 setUseDualSimplex(other.getUseDualSimplex());
4415 }
4416 if (other.hasAllowSimplexAlgorithmChange()) {
4417 setAllowSimplexAlgorithmChange(other.getAllowSimplexAlgorithmChange());
4418 }
4419 if (other.hasDevexWeightsResetPeriod()) {
4420 setDevexWeightsResetPeriod(other.getDevexWeightsResetPeriod());
4421 }
4422 if (other.hasUsePreprocessing()) {
4423 setUsePreprocessing(other.getUsePreprocessing());
4424 }
4425 if (other.hasUseMiddleProductFormUpdate()) {
4426 setUseMiddleProductFormUpdate(other.getUseMiddleProductFormUpdate());
4427 }
4428 if (other.hasInitializeDevexWithColumnNorms()) {
4429 setInitializeDevexWithColumnNorms(other.getInitializeDevexWithColumnNorms());
4430 }
4431 if (other.hasExploitSingletonColumnInInitialBasis()) {
4432 setExploitSingletonColumnInInitialBasis(other.getExploitSingletonColumnInInitialBasis());
4433 }
4434 if (other.hasDualSmallPivotThreshold()) {
4435 setDualSmallPivotThreshold(other.getDualSmallPivotThreshold());
4436 }
4437 if (other.hasPreprocessorZeroTolerance()) {
4438 setPreprocessorZeroTolerance(other.getPreprocessorZeroTolerance());
4439 }
4440 if (other.hasObjectiveLowerLimit()) {
4441 setObjectiveLowerLimit(other.getObjectiveLowerLimit());
4442 }
4443 if (other.hasObjectiveUpperLimit()) {
4444 setObjectiveUpperLimit(other.getObjectiveUpperLimit());
4445 }
4446 if (other.hasDegenerateMinistepFactor()) {
4447 setDegenerateMinistepFactor(other.getDegenerateMinistepFactor());
4448 }
4449 if (other.hasRandomSeed()) {
4450 setRandomSeed(other.getRandomSeed());
4451 }
4452 if (other.hasNumOmpThreads()) {
4453 setNumOmpThreads(other.getNumOmpThreads());
4454 }
4455 if (other.hasPerturbCostsInDualSimplex()) {
4456 setPerturbCostsInDualSimplex(other.getPerturbCostsInDualSimplex());
4457 }
4458 if (other.hasUseDedicatedDualFeasibilityAlgorithm()) {
4459 setUseDedicatedDualFeasibilityAlgorithm(other.getUseDedicatedDualFeasibilityAlgorithm());
4460 }
4461 if (other.hasRelativeCostPerturbation()) {
4462 setRelativeCostPerturbation(other.getRelativeCostPerturbation());
4463 }
4464 if (other.hasRelativeMaxCostPerturbation()) {
4465 setRelativeMaxCostPerturbation(other.getRelativeMaxCostPerturbation());
4466 }
4467 if (other.hasInitialConditionNumberThreshold()) {
4468 setInitialConditionNumberThreshold(other.getInitialConditionNumberThreshold());
4469 }
4470 if (other.hasLogSearchProgress()) {
4471 setLogSearchProgress(other.getLogSearchProgress());
4472 }
4473 if (other.hasLogToStdout()) {
4474 setLogToStdout(other.getLogToStdout());
4475 }
4476 if (other.hasCrossoverBoundSnappingDistance()) {
4477 setCrossoverBoundSnappingDistance(other.getCrossoverBoundSnappingDistance());
4478 }
4479 if (other.hasPushToVertex()) {
4480 setPushToVertex(other.getPushToVertex());
4481 }
4482 if (other.hasUseImpliedFreePreprocessor()) {
4483 setUseImpliedFreePreprocessor(other.getUseImpliedFreePreprocessor());
4484 }
4485 if (other.hasMaxValidMagnitude()) {
4486 setMaxValidMagnitude(other.getMaxValidMagnitude());
4487 }
4488 if (other.hasDropMagnitude()) {
4489 setDropMagnitude(other.getDropMagnitude());
4490 }
4491 if (other.hasDualPricePrioritizeNorm()) {
4492 setDualPricePrioritizeNorm(other.getDualPricePrioritizeNorm());
4493 }
4494 this.mergeUnknownFields(other.getUnknownFields());
4495 onChanged();
4496 return this;
4497 }
4498
4499 @java.lang.Override
4500 public final boolean isInitialized() {
4501 return true;
4502 }
4503
4504 @java.lang.Override
4505 public Builder mergeFrom(
4506 com.google.protobuf.CodedInputStream input,
4507 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4508 throws java.io.IOException {
4509 if (extensionRegistry == null) {
4510 throw new java.lang.NullPointerException();
4511 }
4512 try {
4513 boolean done = false;
4514 while (!done) {
4515 int tag = input.readTag();
4516 switch (tag) {
4517 case 0:
4518 done = true;
4519 break;
4520 case 8: {
4521 int tmpRaw = input.readEnum();
4523 com.google.ortools.glop.GlopParameters.PricingRule.forNumber(tmpRaw);
4524 if (tmpValue == null) {
4525 mergeUnknownVarintField(1, tmpRaw);
4526 } else {
4527 feasibilityRule_ = tmpRaw;
4528 bitField0_ |= 0x00000002;
4529 }
4530 break;
4531 } // case 8
4532 case 16: {
4533 int tmpRaw = input.readEnum();
4535 com.google.ortools.glop.GlopParameters.PricingRule.forNumber(tmpRaw);
4536 if (tmpValue == null) {
4537 mergeUnknownVarintField(2, tmpRaw);
4538 } else {
4539 optimizationRule_ = tmpRaw;
4540 bitField0_ |= 0x00000004;
4541 }
4542 break;
4543 } // case 16
4544 case 49: {
4545 refactorizationThreshold_ = input.readDouble();
4546 bitField0_ |= 0x00000008;
4547 break;
4548 } // case 49
4549 case 65: {
4550 recomputeReducedCostsThreshold_ = input.readDouble();
4551 bitField0_ |= 0x00000010;
4552 break;
4553 } // case 65
4554 case 73: {
4555 recomputeEdgesNormThreshold_ = input.readDouble();
4556 bitField0_ |= 0x00000020;
4557 break;
4558 } // case 73
4559 case 81: {
4560 primalFeasibilityTolerance_ = input.readDouble();
4561 bitField0_ |= 0x00000040;
4562 break;
4563 } // case 81
4564 case 89: {
4565 dualFeasibilityTolerance_ = input.readDouble();
4566 bitField0_ |= 0x00000080;
4567 break;
4568 } // case 89
4569 case 97: {
4570 ratioTestZeroThreshold_ = input.readDouble();
4571 bitField0_ |= 0x00000100;
4572 break;
4573 } // case 97
4574 case 105: {
4575 harrisToleranceRatio_ = input.readDouble();
4576 bitField0_ |= 0x00000200;
4577 break;
4578 } // case 105
4579 case 113: {
4580 smallPivotThreshold_ = input.readDouble();
4581 bitField0_ |= 0x00000400;
4582 break;
4583 } // case 113
4584 case 121: {
4585 minimumAcceptablePivot_ = input.readDouble();
4586 bitField0_ |= 0x00000800;
4587 break;
4588 } // case 121
4589 case 128: {
4590 useScaling_ = input.readBool();
4591 bitField0_ |= 0x00002000;
4592 break;
4593 } // case 128
4594 case 136: {
4595 int tmpRaw = input.readEnum();
4597 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(tmpRaw);
4598 if (tmpValue == null) {
4599 mergeUnknownVarintField(17, tmpRaw);
4600 } else {
4601 initialBasis_ = tmpRaw;
4602 bitField0_ |= 0x00008000;
4603 }
4604 break;
4605 } // case 136
4606 case 144: {
4607 useTransposedMatrix_ = input.readBool();
4608 bitField0_ |= 0x00010000;
4609 break;
4610 } // case 144
4611 case 152: {
4612 basisRefactorizationPeriod_ = input.readInt32();
4613 bitField0_ |= 0x00020000;
4614 break;
4615 } // case 152
4616 case 160: {
4617 int tmpRaw = input.readEnum();
4619 com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(tmpRaw);
4620 if (tmpValue == null) {
4621 mergeUnknownVarintField(20, tmpRaw);
4622 } else {
4623 solveDualProblem_ = tmpRaw;
4624 bitField0_ |= 0x00080000;
4625 }
4626 break;
4627 } // case 160
4628 case 169: {
4629 dualizerThreshold_ = input.readDouble();
4630 bitField0_ |= 0x00100000;
4631 break;
4632 } // case 169
4633 case 177: {
4634 solutionFeasibilityTolerance_ = input.readDouble();
4635 bitField0_ |= 0x00200000;
4636 break;
4637 } // case 177
4638 case 192: {
4639 provideStrongOptimalGuarantee_ = input.readBool();
4640 bitField0_ |= 0x00400000;
4641 break;
4642 } // case 192
4643 case 201: {
4644 luFactorizationPivotThreshold_ = input.readDouble();
4645 bitField0_ |= 0x02000000;
4646 break;
4647 } // case 201
4648 case 209: {
4649 maxTimeInSeconds_ = input.readDouble();
4650 bitField0_ |= 0x04000000;
4651 break;
4652 } // case 209
4653 case 216: {
4654 maxNumberOfIterations_ = input.readInt64();
4655 bitField0_ |= 0x10000000;
4656 break;
4657 } // case 216
4658 case 232: {
4659 markowitzZlatevParameter_ = input.readInt32();
4660 bitField0_ |= 0x20000000;
4661 break;
4662 } // case 232
4663 case 241: {
4664 markowitzSingularityThreshold_ = input.readDouble();
4665 bitField0_ |= 0x40000000;
4666 break;
4667 } // case 241
4668 case 248: {
4669 useDualSimplex_ = input.readBool();
4670 bitField0_ |= 0x80000000;
4671 break;
4672 } // case 248
4673 case 256: {
4674 allowSimplexAlgorithmChange_ = input.readBool();
4675 bitField1_ |= 0x00000001;
4676 break;
4677 } // case 256
4678 case 264: {
4679 devexWeightsResetPeriod_ = input.readInt32();
4680 bitField1_ |= 0x00000002;
4681 break;
4682 } // case 264
4683 case 272: {
4684 usePreprocessing_ = input.readBool();
4685 bitField1_ |= 0x00000004;
4686 break;
4687 } // case 272
4688 case 280: {
4689 useMiddleProductFormUpdate_ = input.readBool();
4690 bitField1_ |= 0x00000008;
4691 break;
4692 } // case 280
4693 case 288: {
4694 initializeDevexWithColumnNorms_ = input.readBool();
4695 bitField1_ |= 0x00000010;
4696 break;
4697 } // case 288
4698 case 296: {
4699 exploitSingletonColumnInInitialBasis_ = input.readBool();
4700 bitField1_ |= 0x00000020;
4701 break;
4702 } // case 296
4703 case 305: {
4704 dualSmallPivotThreshold_ = input.readDouble();
4705 bitField1_ |= 0x00000040;
4706 break;
4707 } // case 305
4708 case 313: {
4709 preprocessorZeroTolerance_ = input.readDouble();
4710 bitField1_ |= 0x00000080;
4711 break;
4712 } // case 313
4713 case 321: {
4714 objectiveLowerLimit_ = input.readDouble();
4715 bitField1_ |= 0x00000100;
4716 break;
4717 } // case 321
4718 case 329: {
4719 objectiveUpperLimit_ = input.readDouble();
4720 bitField1_ |= 0x00000200;
4721 break;
4722 } // case 329
4723 case 337: {
4724 degenerateMinistepFactor_ = input.readDouble();
4725 bitField1_ |= 0x00000400;
4726 break;
4727 } // case 337
4728 case 344: {
4729 randomSeed_ = input.readInt32();
4730 bitField1_ |= 0x00000800;
4731 break;
4732 } // case 344
4733 case 352: {
4734 numOmpThreads_ = input.readInt32();
4735 bitField1_ |= 0x00001000;
4736 break;
4737 } // case 352
4738 case 361: {
4739 maxDeterministicTime_ = input.readDouble();
4740 bitField0_ |= 0x08000000;
4741 break;
4742 } // case 361
4743 case 417: {
4744 dropTolerance_ = input.readDouble();
4745 bitField0_ |= 0x00001000;
4746 break;
4747 } // case 417
4748 case 424: {
4749 perturbCostsInDualSimplex_ = input.readBool();
4750 bitField1_ |= 0x00002000;
4751 break;
4752 } // case 424
4753 case 433: {
4754 relativeCostPerturbation_ = input.readDouble();
4755 bitField1_ |= 0x00008000;
4756 break;
4757 } // case 433
4758 case 441: {
4759 relativeMaxCostPerturbation_ = input.readDouble();
4760 bitField1_ |= 0x00010000;
4761 break;
4762 } // case 441
4763 case 449: {
4764 maxNumberOfReoptimizations_ = input.readDouble();
4765 bitField0_ |= 0x01000000;
4766 break;
4767 } // case 449
4768 case 456: {
4769 int tmpRaw = input.readEnum();
4771 com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(tmpRaw);
4772 if (tmpValue == null) {
4773 mergeUnknownVarintField(57, tmpRaw);
4774 } else {
4775 scalingMethod_ = tmpRaw;
4776 bitField0_ |= 0x00000001;
4777 }
4778 break;
4779 } // case 456
4780 case 464: {
4781 changeStatusToImprecise_ = input.readBool();
4782 bitField0_ |= 0x00800000;
4783 break;
4784 } // case 464
4785 case 473: {
4786 initialConditionNumberThreshold_ = input.readDouble();
4787 bitField1_ |= 0x00020000;
4788 break;
4789 } // case 473
4790 case 480: {
4791 int tmpRaw = input.readEnum();
4793 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(tmpRaw);
4794 if (tmpValue == null) {
4795 mergeUnknownVarintField(60, tmpRaw);
4796 } else {
4797 costScaling_ = tmpRaw;
4798 bitField0_ |= 0x00004000;
4799 }
4800 break;
4801 } // case 480
4802 case 488: {
4803 logSearchProgress_ = input.readBool();
4804 bitField1_ |= 0x00040000;
4805 break;
4806 } // case 488
4807 case 496: {
4808 useDedicatedDualFeasibilityAlgorithm_ = input.readBool();
4809 bitField1_ |= 0x00004000;
4810 break;
4811 } // case 496
4812 case 504: {
4813 dynamicallyAdjustRefactorizationPeriod_ = input.readBool();
4814 bitField0_ |= 0x00040000;
4815 break;
4816 } // case 504
4817 case 513: {
4818 crossoverBoundSnappingDistance_ = input.readDouble();
4819 bitField1_ |= 0x00100000;
4820 break;
4821 } // case 513
4822 case 520: {
4823 pushToVertex_ = input.readBool();
4824 bitField1_ |= 0x00200000;
4825 break;
4826 } // case 520
4827 case 528: {
4828 logToStdout_ = input.readBool();
4829 bitField1_ |= 0x00080000;
4830 break;
4831 } // case 528
4832 case 536: {
4833 useImpliedFreePreprocessor_ = input.readBool();
4834 bitField1_ |= 0x00400000;
4835 break;
4836 } // case 536
4837 case 552: {
4838 dualPricePrioritizeNorm_ = input.readBool();
4839 bitField1_ |= 0x02000000;
4840 break;
4841 } // case 552
4842 case 561: {
4843 maxValidMagnitude_ = input.readDouble();
4844 bitField1_ |= 0x00800000;
4845 break;
4846 } // case 561
4847 case 569: {
4848 dropMagnitude_ = input.readDouble();
4849 bitField1_ |= 0x01000000;
4850 break;
4851 } // case 569
4852 default: {
4853 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
4854 done = true; // was an endgroup tag
4855 }
4856 break;
4857 } // default:
4858 } // switch (tag)
4859 } // while (!done)
4860 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
4861 throw e.unwrapIOException();
4862 } finally {
4863 onChanged();
4864 } // finally
4865 return this;
4866 }
4867 private int bitField0_;
4868 private int bitField1_;
4869
4870 private int scalingMethod_ = 1;
4875 @java.lang.Override public boolean hasScalingMethod() {
4876 return ((bitField0_ & 0x00000001) != 0);
4877 }
4878
4882 @java.lang.Override
4884 com.google.ortools.glop.GlopParameters.ScalingAlgorithm result = com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(scalingMethod_);
4886 }
4887
4892 public Builder setScalingMethod(com.google.ortools.glop.GlopParameters.ScalingAlgorithm value) {
4893 if (value == null) {
4894 throw new NullPointerException();
4895 }
4896 bitField0_ |= 0x00000001;
4897 scalingMethod_ = value.getNumber();
4898 onChanged();
4899 return this;
4900 }
4901
4905 public Builder clearScalingMethod() {
4906 bitField0_ = (bitField0_ & ~0x00000001);
4907 scalingMethod_ = 1;
4908 onChanged();
4909 return this;
4910 }
4911
4912 private int feasibilityRule_ = 1;
4921 @java.lang.Override public boolean hasFeasibilityRule() {
4922 return ((bitField0_ & 0x00000002) != 0);
4923 }
4924
4932 @java.lang.Override
4934 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(feasibilityRule_);
4936 }
4937
4946 public Builder setFeasibilityRule(com.google.ortools.glop.GlopParameters.PricingRule value) {
4947 if (value == null) {
4948 throw new NullPointerException();
4949 }
4950 bitField0_ |= 0x00000002;
4951 feasibilityRule_ = value.getNumber();
4952 onChanged();
4953 return this;
4954 }
4955
4963 public Builder clearFeasibilityRule() {
4964 bitField0_ = (bitField0_ & ~0x00000002);
4965 feasibilityRule_ = 1;
4966 onChanged();
4967 return this;
4968 }
4969
4970 private int optimizationRule_ = 1;
4979 @java.lang.Override public boolean hasOptimizationRule() {
4980 return ((bitField0_ & 0x00000004) != 0);
4981 }
4982
4990 @java.lang.Override
4992 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(optimizationRule_);
4994 }
4995
5004 public Builder setOptimizationRule(com.google.ortools.glop.GlopParameters.PricingRule value) {
5005 if (value == null) {
5006 throw new NullPointerException();
5007 }
5008 bitField0_ |= 0x00000004;
5009 optimizationRule_ = value.getNumber();
5010 onChanged();
5011 return this;
5012 }
5013
5021 public Builder clearOptimizationRule() {
5022 bitField0_ = (bitField0_ & ~0x00000004);
5023 optimizationRule_ = 1;
5024 onChanged();
5025 return this;
5026 }
5027
5028 private double refactorizationThreshold_ = 1e-09D;
5042 @java.lang.Override
5044 return ((bitField0_ & 0x00000008) != 0);
5045 }
5046
5059 @java.lang.Override
5061 return refactorizationThreshold_;
5062 }
5063
5077 public Builder setRefactorizationThreshold(double value) {
5078
5079 refactorizationThreshold_ = value;
5080 bitField0_ |= 0x00000008;
5081 onChanged();
5082 return this;
5083 }
5084
5098 bitField0_ = (bitField0_ & ~0x00000008);
5099 refactorizationThreshold_ = 1e-09D;
5100 onChanged();
5101 return this;
5102 }
5103
5104 private double recomputeReducedCostsThreshold_ = 1e-08D;
5117 @java.lang.Override
5119 return ((bitField0_ & 0x00000010) != 0);
5120 }
5121
5133 @java.lang.Override
5135 return recomputeReducedCostsThreshold_;
5136 }
5137
5150 public Builder setRecomputeReducedCostsThreshold(double value) {
5151
5152 recomputeReducedCostsThreshold_ = value;
5153 bitField0_ |= 0x00000010;
5154 onChanged();
5155 return this;
5156 }
5157
5170 bitField0_ = (bitField0_ & ~0x00000010);
5171 recomputeReducedCostsThreshold_ = 1e-08D;
5172 onChanged();
5173 return this;
5174 }
5175
5176 private double recomputeEdgesNormThreshold_ = 100D;
5189 @java.lang.Override
5191 return ((bitField0_ & 0x00000020) != 0);
5192 }
5193
5205 @java.lang.Override
5207 return recomputeEdgesNormThreshold_;
5208 }
5209
5222 public Builder setRecomputeEdgesNormThreshold(double value) {
5223
5224 recomputeEdgesNormThreshold_ = value;
5225 bitField0_ |= 0x00000020;
5226 onChanged();
5227 return this;
5228 }
5229
5242 bitField0_ = (bitField0_ & ~0x00000020);
5243 recomputeEdgesNormThreshold_ = 100D;
5244 onChanged();
5245 return this;
5246 }
5247
5248 private double primalFeasibilityTolerance_ = 1e-08D;
5263 @java.lang.Override
5265 return ((bitField0_ & 0x00000040) != 0);
5266 }
5267
5281 @java.lang.Override
5283 return primalFeasibilityTolerance_;
5284 }
5285
5300 public Builder setPrimalFeasibilityTolerance(double value) {
5301
5302 primalFeasibilityTolerance_ = value;
5303 bitField0_ |= 0x00000040;
5304 onChanged();
5305 return this;
5306 }
5307
5322 bitField0_ = (bitField0_ & ~0x00000040);
5323 primalFeasibilityTolerance_ = 1e-08D;
5324 onChanged();
5325 return this;
5326 }
5327
5328 private double dualFeasibilityTolerance_ = 1e-08D;
5346 @java.lang.Override
5348 return ((bitField0_ & 0x00000080) != 0);
5349 }
5350
5367 @java.lang.Override
5369 return dualFeasibilityTolerance_;
5370 }
5371
5389 public Builder setDualFeasibilityTolerance(double value) {
5390
5391 dualFeasibilityTolerance_ = value;
5392 bitField0_ |= 0x00000080;
5393 onChanged();
5394 return this;
5395 }
5396
5414 bitField0_ = (bitField0_ & ~0x00000080);
5415 dualFeasibilityTolerance_ = 1e-08D;
5416 onChanged();
5417 return this;
5418 }
5419
5420 private double ratioTestZeroThreshold_ = 1e-09D;
5435 @java.lang.Override
5436 public boolean hasRatioTestZeroThreshold() {
5437 return ((bitField0_ & 0x00000100) != 0);
5438 }
5439
5453 @java.lang.Override
5455 return ratioTestZeroThreshold_;
5456 }
5457
5472 public Builder setRatioTestZeroThreshold(double value) {
5473
5474 ratioTestZeroThreshold_ = value;
5475 bitField0_ |= 0x00000100;
5476 onChanged();
5477 return this;
5478 }
5479
5494 bitField0_ = (bitField0_ & ~0x00000100);
5495 ratioTestZeroThreshold_ = 1e-09D;
5496 onChanged();
5497 return this;
5498 }
5499
5500 private double harrisToleranceRatio_ = 0.5D;
5519 @java.lang.Override
5520 public boolean hasHarrisToleranceRatio() {
5521 return ((bitField0_ & 0x00000200) != 0);
5522 }
5523
5541 @java.lang.Override
5542 public double getHarrisToleranceRatio() {
5543 return harrisToleranceRatio_;
5544 }
5545
5564 public Builder setHarrisToleranceRatio(double value) {
5565
5566 harrisToleranceRatio_ = value;
5567 bitField0_ |= 0x00000200;
5568 onChanged();
5569 return this;
5570 }
5571
5589 public Builder clearHarrisToleranceRatio() {
5590 bitField0_ = (bitField0_ & ~0x00000200);
5591 harrisToleranceRatio_ = 0.5D;
5592 onChanged();
5593 return this;
5594 }
5595
5596 private double smallPivotThreshold_ = 1e-06D;
5608 @java.lang.Override
5609 public boolean hasSmallPivotThreshold() {
5610 return ((bitField0_ & 0x00000400) != 0);
5611 }
5612
5623 @java.lang.Override
5624 public double getSmallPivotThreshold() {
5625 return smallPivotThreshold_;
5626 }
5627
5639 public Builder setSmallPivotThreshold(double value) {
5640
5641 smallPivotThreshold_ = value;
5642 bitField0_ |= 0x00000400;
5643 onChanged();
5644 return this;
5645 }
5646
5657 public Builder clearSmallPivotThreshold() {
5658 bitField0_ = (bitField0_ & ~0x00000400);
5659 smallPivotThreshold_ = 1e-06D;
5660 onChanged();
5661 return this;
5662 }
5663
5664 private double minimumAcceptablePivot_ = 1e-06D;
5673 @java.lang.Override
5674 public boolean hasMinimumAcceptablePivot() {
5675 return ((bitField0_ & 0x00000800) != 0);
5676 }
5677
5685 @java.lang.Override
5687 return minimumAcceptablePivot_;
5688 }
5689
5698 public Builder setMinimumAcceptablePivot(double value) {
5699
5700 minimumAcceptablePivot_ = value;
5701 bitField0_ |= 0x00000800;
5702 onChanged();
5703 return this;
5704 }
5705
5714 bitField0_ = (bitField0_ & ~0x00000800);
5715 minimumAcceptablePivot_ = 1e-06D;
5716 onChanged();
5717 return this;
5718 }
5719
5720 private double dropTolerance_ = 1e-14D;
5731 @java.lang.Override
5732 public boolean hasDropTolerance() {
5733 return ((bitField0_ & 0x00001000) != 0);
5734 }
5735
5745 @java.lang.Override
5746 public double getDropTolerance() {
5747 return dropTolerance_;
5748 }
5749
5760 public Builder setDropTolerance(double value) {
5761
5762 dropTolerance_ = value;
5763 bitField0_ |= 0x00001000;
5764 onChanged();
5765 return this;
5766 }
5767
5777 public Builder clearDropTolerance() {
5778 bitField0_ = (bitField0_ & ~0x00001000);
5779 dropTolerance_ = 1e-14D;
5780 onChanged();
5781 return this;
5782 }
5783
5784 private boolean useScaling_ = true;
5794 @java.lang.Override
5795 public boolean hasUseScaling() {
5796 return ((bitField0_ & 0x00002000) != 0);
5797 }
5798
5807 @java.lang.Override
5808 public boolean getUseScaling() {
5809 return useScaling_;
5810 }
5811
5821 public Builder setUseScaling(boolean value) {
5822
5823 useScaling_ = value;
5824 bitField0_ |= 0x00002000;
5825 onChanged();
5826 return this;
5827 }
5828
5837 public Builder clearUseScaling() {
5838 bitField0_ = (bitField0_ & ~0x00002000);
5839 useScaling_ = true;
5840 onChanged();
5841 return this;
5842 }
5843
5844 private int costScaling_ = 1;
5849 @java.lang.Override public boolean hasCostScaling() {
5850 return ((bitField0_ & 0x00004000) != 0);
5851 }
5852
5856 @java.lang.Override
5858 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm result = com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(costScaling_);
5860 }
5861
5866 public Builder setCostScaling(com.google.ortools.glop.GlopParameters.CostScalingAlgorithm value) {
5867 if (value == null) {
5868 throw new NullPointerException();
5869 }
5870 bitField0_ |= 0x00004000;
5871 costScaling_ = value.getNumber();
5872 onChanged();
5873 return this;
5874 }
5875
5879 public Builder clearCostScaling() {
5880 bitField0_ = (bitField0_ & ~0x00004000);
5881 costScaling_ = 1;
5882 onChanged();
5883 return this;
5884 }
5885
5886 private int initialBasis_ = 2;
5896 @java.lang.Override public boolean hasInitialBasis() {
5897 return ((bitField0_ & 0x00008000) != 0);
5898 }
5899
5908 @java.lang.Override
5910 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic result = com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(initialBasis_);
5912 }
5913
5923 public Builder setInitialBasis(com.google.ortools.glop.GlopParameters.InitialBasisHeuristic value) {
5924 if (value == null) {
5925 throw new NullPointerException();
5926 }
5927 bitField0_ |= 0x00008000;
5928 initialBasis_ = value.getNumber();
5929 onChanged();
5930 return this;
5931 }
5932
5941 public Builder clearInitialBasis() {
5942 bitField0_ = (bitField0_ & ~0x00008000);
5943 initialBasis_ = 2;
5944 onChanged();
5945 return this;
5946 }
5947
5948 private boolean useTransposedMatrix_ = true;
5959 @java.lang.Override
5960 public boolean hasUseTransposedMatrix() {
5961 return ((bitField0_ & 0x00010000) != 0);
5962 }
5963
5973 @java.lang.Override
5974 public boolean getUseTransposedMatrix() {
5975 return useTransposedMatrix_;
5976 }
5977
5988 public Builder setUseTransposedMatrix(boolean value) {
5989
5990 useTransposedMatrix_ = value;
5991 bitField0_ |= 0x00010000;
5992 onChanged();
5993 return this;
5994 }
5995
6005 public Builder clearUseTransposedMatrix() {
6006 bitField0_ = (bitField0_ & ~0x00010000);
6007 useTransposedMatrix_ = true;
6008 onChanged();
6009 return this;
6010 }
6011
6012 private int basisRefactorizationPeriod_ = 64;
6023 @java.lang.Override
6025 return ((bitField0_ & 0x00020000) != 0);
6026 }
6027
6037 @java.lang.Override
6039 return basisRefactorizationPeriod_;
6040 }
6041
6052 public Builder setBasisRefactorizationPeriod(int value) {
6053
6054 basisRefactorizationPeriod_ = value;
6055 bitField0_ |= 0x00020000;
6056 onChanged();
6057 return this;
6058 }
6059
6070 bitField0_ = (bitField0_ & ~0x00020000);
6071 basisRefactorizationPeriod_ = 64;
6072 onChanged();
6073 return this;
6074 }
6075
6076 private boolean dynamicallyAdjustRefactorizationPeriod_ = true;
6089 @java.lang.Override
6091 return ((bitField0_ & 0x00040000) != 0);
6092 }
6093
6105 @java.lang.Override
6107 return dynamicallyAdjustRefactorizationPeriod_;
6108 }
6109
6122 public Builder setDynamicallyAdjustRefactorizationPeriod(boolean value) {
6123
6124 dynamicallyAdjustRefactorizationPeriod_ = value;
6125 bitField0_ |= 0x00040000;
6126 onChanged();
6127 return this;
6128 }
6129
6142 bitField0_ = (bitField0_ & ~0x00040000);
6143 dynamicallyAdjustRefactorizationPeriod_ = true;
6144 onChanged();
6145 return this;
6146 }
6147
6148 private int solveDualProblem_ = 2;
6159 @java.lang.Override public boolean hasSolveDualProblem() {
6160 return ((bitField0_ & 0x00080000) != 0);
6161 }
6162
6172 @java.lang.Override
6174 com.google.ortools.glop.GlopParameters.SolverBehavior result = com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(solveDualProblem_);
6176 }
6177
6188 public Builder setSolveDualProblem(com.google.ortools.glop.GlopParameters.SolverBehavior value) {
6189 if (value == null) {
6190 throw new NullPointerException();
6191 }
6192 bitField0_ |= 0x00080000;
6193 solveDualProblem_ = value.getNumber();
6194 onChanged();
6195 return this;
6196 }
6197
6207 public Builder clearSolveDualProblem() {
6208 bitField0_ = (bitField0_ & ~0x00080000);
6209 solveDualProblem_ = 2;
6210 onChanged();
6211 return this;
6212 }
6213
6214 private double dualizerThreshold_ = 1.5D;
6225 @java.lang.Override
6226 public boolean hasDualizerThreshold() {
6227 return ((bitField0_ & 0x00100000) != 0);
6228 }
6229
6239 @java.lang.Override
6240 public double getDualizerThreshold() {
6241 return dualizerThreshold_;
6242 }
6243
6254 public Builder setDualizerThreshold(double value) {
6255
6256 dualizerThreshold_ = value;
6257 bitField0_ |= 0x00100000;
6258 onChanged();
6259 return this;
6260 }
6261
6271 public Builder clearDualizerThreshold() {
6272 bitField0_ = (bitField0_ & ~0x00100000);
6273 dualizerThreshold_ = 1.5D;
6274 onChanged();
6275 return this;
6276 }
6277
6278 private double solutionFeasibilityTolerance_ = 1e-06D;
6294 @java.lang.Override
6296 return ((bitField0_ & 0x00200000) != 0);
6297 }
6298
6313 @java.lang.Override
6315 return solutionFeasibilityTolerance_;
6316 }
6317
6333 public Builder setSolutionFeasibilityTolerance(double value) {
6334
6335 solutionFeasibilityTolerance_ = value;
6336 bitField0_ |= 0x00200000;
6337 onChanged();
6338 return this;
6339 }
6340
6356 bitField0_ = (bitField0_ & ~0x00200000);
6357 solutionFeasibilityTolerance_ = 1e-06D;
6358 onChanged();
6359 return this;
6360 }
6361
6362 private boolean provideStrongOptimalGuarantee_ = true;
6388 @java.lang.Override
6390 return ((bitField0_ & 0x00400000) != 0);
6391 }
6392
6417 @java.lang.Override
6419 return provideStrongOptimalGuarantee_;
6420 }
6421
6447 public Builder setProvideStrongOptimalGuarantee(boolean value) {
6448
6449 provideStrongOptimalGuarantee_ = value;
6450 bitField0_ |= 0x00400000;
6451 onChanged();
6452 return this;
6453 }
6454
6480 bitField0_ = (bitField0_ & ~0x00400000);
6481 provideStrongOptimalGuarantee_ = true;
6482 onChanged();
6483 return this;
6484 }
6485
6486 private boolean changeStatusToImprecise_ = true;
6496 @java.lang.Override
6498 return ((bitField0_ & 0x00800000) != 0);
6499 }
6500
6509 @java.lang.Override
6511 return changeStatusToImprecise_;
6512 }
6513
6523 public Builder setChangeStatusToImprecise(boolean value) {
6524
6525 changeStatusToImprecise_ = value;
6526 bitField0_ |= 0x00800000;
6527 onChanged();
6528 return this;
6529 }
6530
6540 bitField0_ = (bitField0_ & ~0x00800000);
6541 changeStatusToImprecise_ = true;
6542 onChanged();
6543 return this;
6544 }
6545
6546 private double maxNumberOfReoptimizations_ = 40D;
6558 @java.lang.Override
6560 return ((bitField0_ & 0x01000000) != 0);
6561 }
6562
6573 @java.lang.Override
6575 return maxNumberOfReoptimizations_;
6576 }
6577
6589 public Builder setMaxNumberOfReoptimizations(double value) {
6590
6591 maxNumberOfReoptimizations_ = value;
6592 bitField0_ |= 0x01000000;
6593 onChanged();
6594 return this;
6595 }
6596
6608 bitField0_ = (bitField0_ & ~0x01000000);
6609 maxNumberOfReoptimizations_ = 40D;
6610 onChanged();
6611 return this;
6612 }
6613
6614 private double luFactorizationPivotThreshold_ = 0.01D;
6626 @java.lang.Override
6628 return ((bitField0_ & 0x02000000) != 0);
6629 }
6630
6641 @java.lang.Override
6643 return luFactorizationPivotThreshold_;
6644 }
6645
6657 public Builder setLuFactorizationPivotThreshold(double value) {
6658
6659 luFactorizationPivotThreshold_ = value;
6660 bitField0_ |= 0x02000000;
6661 onChanged();
6662 return this;
6663 }
6664
6676 bitField0_ = (bitField0_ & ~0x02000000);
6677 luFactorizationPivotThreshold_ = 0.01D;
6678 onChanged();
6679 return this;
6680 }
6681
6682 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
6691 @java.lang.Override
6692 public boolean hasMaxTimeInSeconds() {
6693 return ((bitField0_ & 0x04000000) != 0);
6694 }
6695
6703 @java.lang.Override
6704 public double getMaxTimeInSeconds() {
6705 return maxTimeInSeconds_;
6706 }
6707
6716 public Builder setMaxTimeInSeconds(double value) {
6717
6718 maxTimeInSeconds_ = value;
6719 bitField0_ |= 0x04000000;
6720 onChanged();
6721 return this;
6722 }
6723
6731 public Builder clearMaxTimeInSeconds() {
6732 bitField0_ = (bitField0_ & ~0x04000000);
6733 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
6734 onChanged();
6735 return this;
6736 }
6737
6738 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
6751 @java.lang.Override
6752 public boolean hasMaxDeterministicTime() {
6753 return ((bitField0_ & 0x08000000) != 0);
6754 }
6755
6767 @java.lang.Override
6768 public double getMaxDeterministicTime() {
6769 return maxDeterministicTime_;
6770 }
6771
6784 public Builder setMaxDeterministicTime(double value) {
6785
6786 maxDeterministicTime_ = value;
6787 bitField0_ |= 0x08000000;
6788 onChanged();
6789 return this;
6790 }
6791
6803 public Builder clearMaxDeterministicTime() {
6804 bitField0_ = (bitField0_ & ~0x08000000);
6805 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
6806 onChanged();
6807 return this;
6808 }
6809
6810 private long maxNumberOfIterations_ = -1L;
6820 @java.lang.Override
6821 public boolean hasMaxNumberOfIterations() {
6822 return ((bitField0_ & 0x10000000) != 0);
6823 }
6824
6833 @java.lang.Override
6835 return maxNumberOfIterations_;
6836 }
6837
6847 public Builder setMaxNumberOfIterations(long value) {
6848
6849 maxNumberOfIterations_ = value;
6850 bitField0_ |= 0x10000000;
6851 onChanged();
6852 return this;
6853 }
6854
6864 bitField0_ = (bitField0_ & ~0x10000000);
6865 maxNumberOfIterations_ = -1L;
6866 onChanged();
6867 return this;
6868 }
6869
6870 private int markowitzZlatevParameter_ = 3;
6880 @java.lang.Override
6882 return ((bitField0_ & 0x20000000) != 0);
6883 }
6884
6893 @java.lang.Override
6895 return markowitzZlatevParameter_;
6896 }
6897
6907 public Builder setMarkowitzZlatevParameter(int value) {
6908
6909 markowitzZlatevParameter_ = value;
6910 bitField0_ |= 0x20000000;
6911 onChanged();
6912 return this;
6913 }
6914
6924 bitField0_ = (bitField0_ & ~0x20000000);
6925 markowitzZlatevParameter_ = 3;
6926 onChanged();
6927 return this;
6928 }
6929
6930 private double markowitzSingularityThreshold_ = 1e-15D;
6942 @java.lang.Override
6944 return ((bitField0_ & 0x40000000) != 0);
6945 }
6946
6957 @java.lang.Override
6959 return markowitzSingularityThreshold_;
6960 }
6961
6973 public Builder setMarkowitzSingularityThreshold(double value) {
6974
6975 markowitzSingularityThreshold_ = value;
6976 bitField0_ |= 0x40000000;
6977 onChanged();
6978 return this;
6979 }
6980
6992 bitField0_ = (bitField0_ & ~0x40000000);
6993 markowitzSingularityThreshold_ = 1e-15D;
6994 onChanged();
6995 return this;
6996 }
6997
6998 private boolean useDualSimplex_ ;
7007 @java.lang.Override
7008 public boolean hasUseDualSimplex() {
7009 return ((bitField0_ & 0x80000000) != 0);
7010 }
7011
7019 @java.lang.Override
7020 public boolean getUseDualSimplex() {
7021 return useDualSimplex_;
7022 }
7023
7032 public Builder setUseDualSimplex(boolean value) {
7033
7034 useDualSimplex_ = value;
7035 bitField0_ |= 0x80000000;
7036 onChanged();
7037 return this;
7038 }
7039
7047 public Builder clearUseDualSimplex() {
7048 bitField0_ = (bitField0_ & ~0x80000000);
7049 useDualSimplex_ = false;
7050 onChanged();
7051 return this;
7052 }
7053
7054 private boolean allowSimplexAlgorithmChange_ ;
7066 @java.lang.Override
7068 return ((bitField1_ & 0x00000001) != 0);
7069 }
7070
7081 @java.lang.Override
7083 return allowSimplexAlgorithmChange_;
7084 }
7085
7097 public Builder setAllowSimplexAlgorithmChange(boolean value) {
7098
7099 allowSimplexAlgorithmChange_ = value;
7100 bitField1_ |= 0x00000001;
7101 onChanged();
7102 return this;
7103 }
7104
7116 bitField1_ = (bitField1_ & ~0x00000001);
7117 allowSimplexAlgorithmChange_ = false;
7118 onChanged();
7119 return this;
7120 }
7121
7122 private int devexWeightsResetPeriod_ = 150;
7131 @java.lang.Override
7133 return ((bitField1_ & 0x00000002) != 0);
7134 }
7135
7143 @java.lang.Override
7145 return devexWeightsResetPeriod_;
7146 }
7147
7156 public Builder setDevexWeightsResetPeriod(int value) {
7157
7158 devexWeightsResetPeriod_ = value;
7159 bitField1_ |= 0x00000002;
7160 onChanged();
7161 return this;
7162 }
7163
7172 bitField1_ = (bitField1_ & ~0x00000002);
7173 devexWeightsResetPeriod_ = 150;
7174 onChanged();
7175 return this;
7176 }
7177
7178 private boolean usePreprocessing_ = true;
7187 @java.lang.Override
7188 public boolean hasUsePreprocessing() {
7189 return ((bitField1_ & 0x00000004) != 0);
7190 }
7191
7199 @java.lang.Override
7200 public boolean getUsePreprocessing() {
7201 return usePreprocessing_;
7202 }
7203
7212 public Builder setUsePreprocessing(boolean value) {
7213
7214 usePreprocessing_ = value;
7215 bitField1_ |= 0x00000004;
7216 onChanged();
7217 return this;
7218 }
7219
7227 public Builder clearUsePreprocessing() {
7228 bitField1_ = (bitField1_ & ~0x00000004);
7229 usePreprocessing_ = true;
7230 onChanged();
7231 return this;
7232 }
7233
7234 private boolean useMiddleProductFormUpdate_ = true;
7249 @java.lang.Override
7251 return ((bitField1_ & 0x00000008) != 0);
7252 }
7253
7267 @java.lang.Override
7269 return useMiddleProductFormUpdate_;
7270 }
7271
7286 public Builder setUseMiddleProductFormUpdate(boolean value) {
7287
7288 useMiddleProductFormUpdate_ = value;
7289 bitField1_ |= 0x00000008;
7290 onChanged();
7291 return this;
7292 }
7293
7308 bitField1_ = (bitField1_ & ~0x00000008);
7309 useMiddleProductFormUpdate_ = true;
7310 onChanged();
7311 return this;
7312 }
7313
7314 private boolean initializeDevexWithColumnNorms_ = true;
7324 @java.lang.Override
7326 return ((bitField1_ & 0x00000010) != 0);
7327 }
7328
7337 @java.lang.Override
7339 return initializeDevexWithColumnNorms_;
7340 }
7341
7351 public Builder setInitializeDevexWithColumnNorms(boolean value) {
7352
7353 initializeDevexWithColumnNorms_ = value;
7354 bitField1_ |= 0x00000010;
7355 onChanged();
7356 return this;
7357 }
7358
7368 bitField1_ = (bitField1_ & ~0x00000010);
7369 initializeDevexWithColumnNorms_ = true;
7370 onChanged();
7371 return this;
7372 }
7373
7374 private boolean exploitSingletonColumnInInitialBasis_ = true;
7384 @java.lang.Override
7386 return ((bitField1_ & 0x00000020) != 0);
7387 }
7388
7397 @java.lang.Override
7399 return exploitSingletonColumnInInitialBasis_;
7400 }
7401
7411 public Builder setExploitSingletonColumnInInitialBasis(boolean value) {
7412
7413 exploitSingletonColumnInInitialBasis_ = value;
7414 bitField1_ |= 0x00000020;
7415 onChanged();
7416 return this;
7417 }
7418
7428 bitField1_ = (bitField1_ & ~0x00000020);
7429 exploitSingletonColumnInInitialBasis_ = true;
7430 onChanged();
7431 return this;
7432 }
7433
7434 private double dualSmallPivotThreshold_ = 0.0001D;
7445 @java.lang.Override
7447 return ((bitField1_ & 0x00000040) != 0);
7448 }
7449
7459 @java.lang.Override
7461 return dualSmallPivotThreshold_;
7462 }
7463
7474 public Builder setDualSmallPivotThreshold(double value) {
7475
7476 dualSmallPivotThreshold_ = value;
7477 bitField1_ |= 0x00000040;
7478 onChanged();
7479 return this;
7480 }
7481
7492 bitField1_ = (bitField1_ & ~0x00000040);
7493 dualSmallPivotThreshold_ = 0.0001D;
7494 onChanged();
7495 return this;
7496 }
7497
7498 private double preprocessorZeroTolerance_ = 1e-09D;
7512 @java.lang.Override
7514 return ((bitField1_ & 0x00000080) != 0);
7515 }
7516
7529 @java.lang.Override
7531 return preprocessorZeroTolerance_;
7532 }
7533
7547 public Builder setPreprocessorZeroTolerance(double value) {
7548
7549 preprocessorZeroTolerance_ = value;
7550 bitField1_ |= 0x00000080;
7551 onChanged();
7552 return this;
7553 }
7554
7568 bitField1_ = (bitField1_ & ~0x00000080);
7569 preprocessorZeroTolerance_ = 1e-09D;
7570 onChanged();
7571 return this;
7572 }
7573
7574 private double objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
7591 @java.lang.Override
7592 public boolean hasObjectiveLowerLimit() {
7593 return ((bitField1_ & 0x00000100) != 0);
7594 }
7595
7611 @java.lang.Override
7612 public double getObjectiveLowerLimit() {
7613 return objectiveLowerLimit_;
7614 }
7615
7632 public Builder setObjectiveLowerLimit(double value) {
7633
7634 objectiveLowerLimit_ = value;
7635 bitField1_ |= 0x00000100;
7636 onChanged();
7637 return this;
7638 }
7639
7655 public Builder clearObjectiveLowerLimit() {
7656 bitField1_ = (bitField1_ & ~0x00000100);
7657 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
7658 onChanged();
7659 return this;
7660 }
7661
7662 private double objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
7667 @java.lang.Override
7668 public boolean hasObjectiveUpperLimit() {
7669 return ((bitField1_ & 0x00000200) != 0);
7670 }
7671
7675 @java.lang.Override
7676 public double getObjectiveUpperLimit() {
7677 return objectiveUpperLimit_;
7678 }
7679
7684 public Builder setObjectiveUpperLimit(double value) {
7685
7686 objectiveUpperLimit_ = value;
7687 bitField1_ |= 0x00000200;
7688 onChanged();
7689 return this;
7690 }
7691
7695 public Builder clearObjectiveUpperLimit() {
7696 bitField1_ = (bitField1_ & ~0x00000200);
7697 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
7698 onChanged();
7699 return this;
7700 }
7701
7702 private double degenerateMinistepFactor_ = 0.01D;
7728 @java.lang.Override
7730 return ((bitField1_ & 0x00000400) != 0);
7731 }
7732
7757 @java.lang.Override
7759 return degenerateMinistepFactor_;
7760 }
7761
7787 public Builder setDegenerateMinistepFactor(double value) {
7788
7789 degenerateMinistepFactor_ = value;
7790 bitField1_ |= 0x00000400;
7791 onChanged();
7792 return this;
7793 }
7794
7820 bitField1_ = (bitField1_ & ~0x00000400);
7821 degenerateMinistepFactor_ = 0.01D;
7822 onChanged();
7823 return this;
7824 }
7825
7826 private int randomSeed_ = 1;
7849 @java.lang.Override
7850 public boolean hasRandomSeed() {
7851 return ((bitField1_ & 0x00000800) != 0);
7852 }
7853
7875 @java.lang.Override
7876 public int getRandomSeed() {
7877 return randomSeed_;
7878 }
7879
7902 public Builder setRandomSeed(int value) {
7903
7904 randomSeed_ = value;
7905 bitField1_ |= 0x00000800;
7906 onChanged();
7907 return this;
7908 }
7909
7931 public Builder clearRandomSeed() {
7932 bitField1_ = (bitField1_ & ~0x00000800);
7933 randomSeed_ = 1;
7934 onChanged();
7935 return this;
7936 }
7937
7938 private int numOmpThreads_ = 1;
7948 @java.lang.Override
7949 public boolean hasNumOmpThreads() {
7950 return ((bitField1_ & 0x00001000) != 0);
7951 }
7952
7961 @java.lang.Override
7962 public int getNumOmpThreads() {
7963 return numOmpThreads_;
7964 }
7965
7975 public Builder setNumOmpThreads(int value) {
7976
7977 numOmpThreads_ = value;
7978 bitField1_ |= 0x00001000;
7979 onChanged();
7980 return this;
7981 }
7982
7991 public Builder clearNumOmpThreads() {
7992 bitField1_ = (bitField1_ & ~0x00001000);
7993 numOmpThreads_ = 1;
7994 onChanged();
7995 return this;
7996 }
7997
7998 private boolean perturbCostsInDualSimplex_ ;
8010 @java.lang.Override
8012 return ((bitField1_ & 0x00002000) != 0);
8013 }
8014
8025 @java.lang.Override
8027 return perturbCostsInDualSimplex_;
8028 }
8029
8041 public Builder setPerturbCostsInDualSimplex(boolean value) {
8042
8043 perturbCostsInDualSimplex_ = value;
8044 bitField1_ |= 0x00002000;
8045 onChanged();
8046 return this;
8047 }
8048
8060 bitField1_ = (bitField1_ & ~0x00002000);
8061 perturbCostsInDualSimplex_ = false;
8062 onChanged();
8063 return this;
8064 }
8065
8066 private boolean useDedicatedDualFeasibilityAlgorithm_ = true;
8082 @java.lang.Override
8084 return ((bitField1_ & 0x00004000) != 0);
8085 }
8086
8101 @java.lang.Override
8103 return useDedicatedDualFeasibilityAlgorithm_;
8104 }
8105
8121 public Builder setUseDedicatedDualFeasibilityAlgorithm(boolean value) {
8122
8123 useDedicatedDualFeasibilityAlgorithm_ = value;
8124 bitField1_ |= 0x00004000;
8125 onChanged();
8126 return this;
8127 }
8128
8144 bitField1_ = (bitField1_ & ~0x00004000);
8145 useDedicatedDualFeasibilityAlgorithm_ = true;
8146 onChanged();
8147 return this;
8148 }
8149
8150 private double relativeCostPerturbation_ = 1e-05D;
8162 @java.lang.Override
8164 return ((bitField1_ & 0x00008000) != 0);
8165 }
8166
8177 @java.lang.Override
8179 return relativeCostPerturbation_;
8180 }
8181
8193 public Builder setRelativeCostPerturbation(double value) {
8194
8195 relativeCostPerturbation_ = value;
8196 bitField1_ |= 0x00008000;
8197 onChanged();
8198 return this;
8199 }
8200
8212 bitField1_ = (bitField1_ & ~0x00008000);
8213 relativeCostPerturbation_ = 1e-05D;
8214 onChanged();
8215 return this;
8216 }
8217
8218 private double relativeMaxCostPerturbation_ = 1e-07D;
8223 @java.lang.Override
8225 return ((bitField1_ & 0x00010000) != 0);
8226 }
8227
8231 @java.lang.Override
8233 return relativeMaxCostPerturbation_;
8234 }
8235
8240 public Builder setRelativeMaxCostPerturbation(double value) {
8241
8242 relativeMaxCostPerturbation_ = value;
8243 bitField1_ |= 0x00010000;
8244 onChanged();
8245 return this;
8246 }
8247
8252 bitField1_ = (bitField1_ & ~0x00010000);
8253 relativeMaxCostPerturbation_ = 1e-07D;
8254 onChanged();
8255 return this;
8256 }
8257
8258 private double initialConditionNumberThreshold_ = 1e+50D;
8269 @java.lang.Override
8271 return ((bitField1_ & 0x00020000) != 0);
8272 }
8273
8283 @java.lang.Override
8285 return initialConditionNumberThreshold_;
8286 }
8287
8298 public Builder setInitialConditionNumberThreshold(double value) {
8299
8300 initialConditionNumberThreshold_ = value;
8301 bitField1_ |= 0x00020000;
8302 onChanged();
8303 return this;
8304 }
8305
8316 bitField1_ = (bitField1_ & ~0x00020000);
8317 initialConditionNumberThreshold_ = 1e+50D;
8318 onChanged();
8319 return this;
8320 }
8321
8322 private boolean logSearchProgress_ ;
8333 @java.lang.Override
8334 public boolean hasLogSearchProgress() {
8335 return ((bitField1_ & 0x00040000) != 0);
8336 }
8337
8347 @java.lang.Override
8348 public boolean getLogSearchProgress() {
8349 return logSearchProgress_;
8350 }
8351
8362 public Builder setLogSearchProgress(boolean value) {
8363
8364 logSearchProgress_ = value;
8365 bitField1_ |= 0x00040000;
8366 onChanged();
8367 return this;
8368 }
8369
8379 public Builder clearLogSearchProgress() {
8380 bitField1_ = (bitField1_ & ~0x00040000);
8381 logSearchProgress_ = false;
8382 onChanged();
8383 return this;
8384 }
8385
8386 private boolean logToStdout_ = true;
8395 @java.lang.Override
8396 public boolean hasLogToStdout() {
8397 return ((bitField1_ & 0x00080000) != 0);
8398 }
8399
8407 @java.lang.Override
8408 public boolean getLogToStdout() {
8409 return logToStdout_;
8410 }
8411
8420 public Builder setLogToStdout(boolean value) {
8421
8422 logToStdout_ = value;
8423 bitField1_ |= 0x00080000;
8424 onChanged();
8425 return this;
8426 }
8427
8435 public Builder clearLogToStdout() {
8436 bitField1_ = (bitField1_ & ~0x00080000);
8437 logToStdout_ = true;
8438 onChanged();
8439 return this;
8440 }
8441
8442 private double crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
8465 @java.lang.Override
8467 return ((bitField1_ & 0x00100000) != 0);
8468 }
8469
8491 @java.lang.Override
8493 return crossoverBoundSnappingDistance_;
8494 }
8495
8518 public Builder setCrossoverBoundSnappingDistance(double value) {
8519
8520 crossoverBoundSnappingDistance_ = value;
8521 bitField1_ |= 0x00100000;
8522 onChanged();
8523 return this;
8524 }
8525
8548 bitField1_ = (bitField1_ & ~0x00100000);
8549 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
8550 onChanged();
8551 return this;
8552 }
8553
8554 private boolean pushToVertex_ = true;
8568 @java.lang.Override
8569 public boolean hasPushToVertex() {
8570 return ((bitField1_ & 0x00200000) != 0);
8571 }
8572
8585 @java.lang.Override
8586 public boolean getPushToVertex() {
8587 return pushToVertex_;
8588 }
8589
8603 public Builder setPushToVertex(boolean value) {
8604
8605 pushToVertex_ = value;
8606 bitField1_ |= 0x00200000;
8607 onChanged();
8608 return this;
8609 }
8610
8623 public Builder clearPushToVertex() {
8624 bitField1_ = (bitField1_ & ~0x00200000);
8625 pushToVertex_ = true;
8626 onChanged();
8627 return this;
8628 }
8629
8630 private boolean useImpliedFreePreprocessor_ = true;
8639 @java.lang.Override
8641 return ((bitField1_ & 0x00400000) != 0);
8642 }
8643
8651 @java.lang.Override
8653 return useImpliedFreePreprocessor_;
8654 }
8655
8664 public Builder setUseImpliedFreePreprocessor(boolean value) {
8665
8666 useImpliedFreePreprocessor_ = value;
8667 bitField1_ |= 0x00400000;
8668 onChanged();
8669 return this;
8670 }
8671
8680 bitField1_ = (bitField1_ & ~0x00400000);
8681 useImpliedFreePreprocessor_ = true;
8682 onChanged();
8683 return this;
8684 }
8685
8686 private double maxValidMagnitude_ = 1e+30D;
8700 @java.lang.Override
8701 public boolean hasMaxValidMagnitude() {
8702 return ((bitField1_ & 0x00800000) != 0);
8703 }
8704
8717 @java.lang.Override
8718 public double getMaxValidMagnitude() {
8719 return maxValidMagnitude_;
8720 }
8721
8735 public Builder setMaxValidMagnitude(double value) {
8736
8737 maxValidMagnitude_ = value;
8738 bitField1_ |= 0x00800000;
8739 onChanged();
8740 return this;
8741 }
8742
8755 public Builder clearMaxValidMagnitude() {
8756 bitField1_ = (bitField1_ & ~0x00800000);
8757 maxValidMagnitude_ = 1e+30D;
8758 onChanged();
8759 return this;
8760 }
8761
8762 private double dropMagnitude_ = 1e-30D;
8774 @java.lang.Override
8775 public boolean hasDropMagnitude() {
8776 return ((bitField1_ & 0x01000000) != 0);
8777 }
8778
8789 @java.lang.Override
8790 public double getDropMagnitude() {
8791 return dropMagnitude_;
8792 }
8793
8805 public Builder setDropMagnitude(double value) {
8806
8807 dropMagnitude_ = value;
8808 bitField1_ |= 0x01000000;
8809 onChanged();
8810 return this;
8811 }
8812
8823 public Builder clearDropMagnitude() {
8824 bitField1_ = (bitField1_ & ~0x01000000);
8825 dropMagnitude_ = 1e-30D;
8826 onChanged();
8827 return this;
8828 }
8829
8830 private boolean dualPricePrioritizeNorm_ ;
8840 @java.lang.Override
8842 return ((bitField1_ & 0x02000000) != 0);
8843 }
8844
8853 @java.lang.Override
8855 return dualPricePrioritizeNorm_;
8856 }
8857
8867 public Builder setDualPricePrioritizeNorm(boolean value) {
8868
8869 dualPricePrioritizeNorm_ = value;
8870 bitField1_ |= 0x02000000;
8871 onChanged();
8872 return this;
8873 }
8874
8884 bitField1_ = (bitField1_ & ~0x02000000);
8885 dualPricePrioritizeNorm_ = false;
8886 onChanged();
8887 return this;
8888 }
8889
8890 // @@protoc_insertion_point(builder_scope:operations_research.glop.GlopParameters)
8891 }
8892
8893 // @@protoc_insertion_point(class_scope:operations_research.glop.GlopParameters)
8894 private static final com.google.ortools.glop.GlopParameters DEFAULT_INSTANCE;
8895 static {
8896 DEFAULT_INSTANCE = new com.google.ortools.glop.GlopParameters();
8897 }
8898
8900 return DEFAULT_INSTANCE;
8901 }
8902
8903 private static final com.google.protobuf.Parser<GlopParameters>
8904 PARSER = new com.google.protobuf.AbstractParser<GlopParameters>() {
8905 @java.lang.Override
8906 public GlopParameters parsePartialFrom(
8907 com.google.protobuf.CodedInputStream input,
8908 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8909 throws com.google.protobuf.InvalidProtocolBufferException {
8910 Builder builder = newBuilder();
8911 try {
8912 builder.mergeFrom(input, extensionRegistry);
8913 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8914 throw e.setUnfinishedMessage(builder.buildPartial());
8915 } catch (com.google.protobuf.UninitializedMessageException e) {
8916 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
8917 } catch (java.io.IOException e) {
8918 throw new com.google.protobuf.InvalidProtocolBufferException(e)
8919 .setUnfinishedMessage(builder.buildPartial());
8920 }
8921 return builder.buildPartial();
8922 }
8923 };
8924
8925 public static com.google.protobuf.Parser<GlopParameters> parser() {
8926 return PARSER;
8927 }
8928
8929 @java.lang.Override
8930 public com.google.protobuf.Parser<GlopParameters> getParserForType() {
8931 return PARSER;
8932 }
8933
8934 @java.lang.Override
8936 return DEFAULT_INSTANCE;
8937 }
8938
8939}
8940
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)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
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 final 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)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< ScalingAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
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 final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< SolverBehavior > internalGetValueMap()