Google OR-Tools v9.9
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// source: ortools/glop/parameters.proto
3
4// Protobuf Java Version: 3.25.3
5package com.google.ortools.glop;
6
14public final class GlopParameters extends
15 com.google.protobuf.GeneratedMessageV3 implements
16 // @@protoc_insertion_point(message_implements:operations_research.glop.GlopParameters)
18private static final long serialVersionUID = 0L;
19 // Use GlopParameters.newBuilder() to construct.
20 private GlopParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
21 super(builder);
22 }
23 private GlopParameters() {
24 scalingMethod_ = 1;
25 feasibilityRule_ = 1;
26 optimizationRule_ = 1;
27 refactorizationThreshold_ = 1e-09D;
28 recomputeReducedCostsThreshold_ = 1e-08D;
29 recomputeEdgesNormThreshold_ = 100D;
30 primalFeasibilityTolerance_ = 1e-08D;
31 dualFeasibilityTolerance_ = 1e-08D;
32 ratioTestZeroThreshold_ = 1e-09D;
33 harrisToleranceRatio_ = 0.5D;
34 smallPivotThreshold_ = 1e-06D;
35 minimumAcceptablePivot_ = 1e-06D;
36 dropTolerance_ = 1e-14D;
37 useScaling_ = true;
38 costScaling_ = 1;
39 initialBasis_ = 2;
40 useTransposedMatrix_ = true;
41 basisRefactorizationPeriod_ = 64;
42 dynamicallyAdjustRefactorizationPeriod_ = true;
43 solveDualProblem_ = 2;
44 dualizerThreshold_ = 1.5D;
45 solutionFeasibilityTolerance_ = 1e-06D;
46 provideStrongOptimalGuarantee_ = true;
47 changeStatusToImprecise_ = true;
48 maxNumberOfReoptimizations_ = 40D;
49 luFactorizationPivotThreshold_ = 0.01D;
50 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
51 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
52 maxNumberOfIterations_ = -1L;
53 markowitzZlatevParameter_ = 3;
54 markowitzSingularityThreshold_ = 1e-15D;
55 devexWeightsResetPeriod_ = 150;
56 usePreprocessing_ = true;
57 useMiddleProductFormUpdate_ = true;
58 initializeDevexWithColumnNorms_ = true;
59 exploitSingletonColumnInInitialBasis_ = true;
60 dualSmallPivotThreshold_ = 0.0001D;
61 preprocessorZeroTolerance_ = 1e-09D;
62 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
63 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
64 degenerateMinistepFactor_ = 0.01D;
65 randomSeed_ = 1;
66 numOmpThreads_ = 1;
67 useDedicatedDualFeasibilityAlgorithm_ = true;
68 relativeCostPerturbation_ = 1e-05D;
69 relativeMaxCostPerturbation_ = 1e-07D;
70 initialConditionNumberThreshold_ = 1e+50D;
71 logToStdout_ = true;
72 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
73 pushToVertex_ = true;
74 useImpliedFreePreprocessor_ = true;
75 maxValidMagnitude_ = 1e+30D;
76 dropMagnitude_ = 1e-30D;
77 }
78
79 @java.lang.Override
80 @SuppressWarnings({"unused"})
81 protected java.lang.Object newInstance(
82 UnusedPrivateParameter unused) {
83 return new GlopParameters();
84 }
85
86 public static final com.google.protobuf.Descriptors.Descriptor
88 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
89 }
90
91 @java.lang.Override
92 protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
94 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_fieldAccessorTable
95 .ensureFieldAccessorsInitialized(
96 com.google.ortools.glop.GlopParameters.class, com.google.ortools.glop.GlopParameters.Builder.class);
97 }
98
111 implements com.google.protobuf.ProtocolMessageEnum {
124 ;
125
129 public static final int DEFAULT_VALUE = 0;
133 public static final int EQUILIBRATION_VALUE = 1;
137 public static final int LINEAR_PROGRAM_VALUE = 2;
138
139
140 public final int getNumber() {
141 return value;
142 }
143
149 @java.lang.Deprecated
150 public static ScalingAlgorithm valueOf(int value) {
151 return forNumber(value);
152 }
153
158 public static ScalingAlgorithm forNumber(int value) {
159 switch (value) {
160 case 0: return DEFAULT;
161 case 1: return EQUILIBRATION;
162 case 2: return LINEAR_PROGRAM;
163 default: return null;
164 }
165 }
166
167 public static com.google.protobuf.Internal.EnumLiteMap<ScalingAlgorithm>
169 return internalValueMap;
170 }
171 private static final com.google.protobuf.Internal.EnumLiteMap<
172 ScalingAlgorithm> internalValueMap =
173 new com.google.protobuf.Internal.EnumLiteMap<ScalingAlgorithm>() {
174 public ScalingAlgorithm findValueByNumber(int number) {
175 return ScalingAlgorithm.forNumber(number);
176 }
177 };
178
179 public final com.google.protobuf.Descriptors.EnumValueDescriptor
181 return getDescriptor().getValues().get(ordinal());
182 }
183 public final com.google.protobuf.Descriptors.EnumDescriptor
185 return getDescriptor();
186 }
187 public static final com.google.protobuf.Descriptors.EnumDescriptor
189 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(0);
190 }
191
192 private static final ScalingAlgorithm[] VALUES = values();
193
195 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
196 if (desc.getType() != getDescriptor()) {
197 throw new java.lang.IllegalArgumentException(
198 "EnumValueDescriptor is not for this type.");
199 }
200 return VALUES[desc.getIndex()];
201 }
202
203 private final int value;
204
205 private ScalingAlgorithm(int value) {
206 this.value = value;
207 }
208
209 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.ScalingAlgorithm)
210 }
211
220 public enum SolverBehavior
221 implements com.google.protobuf.ProtocolMessageEnum {
234 ;
235
239 public static final int ALWAYS_DO_VALUE = 0;
243 public static final int NEVER_DO_VALUE = 1;
247 public static final int LET_SOLVER_DECIDE_VALUE = 2;
248
249
250 public final int getNumber() {
251 return value;
252 }
253
259 @java.lang.Deprecated
260 public static SolverBehavior valueOf(int value) {
261 return forNumber(value);
262 }
263
268 public static SolverBehavior forNumber(int value) {
269 switch (value) {
270 case 0: return ALWAYS_DO;
271 case 1: return NEVER_DO;
272 case 2: return LET_SOLVER_DECIDE;
273 default: return null;
274 }
275 }
276
277 public static com.google.protobuf.Internal.EnumLiteMap<SolverBehavior>
279 return internalValueMap;
280 }
281 private static final com.google.protobuf.Internal.EnumLiteMap<
282 SolverBehavior> internalValueMap =
283 new com.google.protobuf.Internal.EnumLiteMap<SolverBehavior>() {
284 public SolverBehavior findValueByNumber(int number) {
285 return SolverBehavior.forNumber(number);
286 }
287 };
288
289 public final com.google.protobuf.Descriptors.EnumValueDescriptor
291 return getDescriptor().getValues().get(ordinal());
292 }
293 public final com.google.protobuf.Descriptors.EnumDescriptor
295 return getDescriptor();
296 }
297 public static final com.google.protobuf.Descriptors.EnumDescriptor
299 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(1);
300 }
301
302 private static final SolverBehavior[] VALUES = values();
303
304 public static SolverBehavior valueOf(
305 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
306 if (desc.getType() != getDescriptor()) {
307 throw new java.lang.IllegalArgumentException(
308 "EnumValueDescriptor is not for this type.");
309 }
310 return VALUES[desc.getIndex()];
311 }
312
313 private final int value;
314
315 private SolverBehavior(int value) {
316 this.value = value;
317 }
318
319 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.SolverBehavior)
320 }
321
329 public enum PricingRule
330 implements com.google.protobuf.ProtocolMessageEnum {
363 ;
364
377 public static final int DANTZIG_VALUE = 0;
387 public static final int STEEPEST_EDGE_VALUE = 1;
396 public static final int DEVEX_VALUE = 2;
397
398
399 public final int getNumber() {
400 return value;
401 }
402
408 @java.lang.Deprecated
409 public static PricingRule valueOf(int value) {
410 return forNumber(value);
411 }
412
417 public static PricingRule forNumber(int value) {
418 switch (value) {
419 case 0: return DANTZIG;
420 case 1: return STEEPEST_EDGE;
421 case 2: return DEVEX;
422 default: return null;
423 }
424 }
425
426 public static com.google.protobuf.Internal.EnumLiteMap<PricingRule>
428 return internalValueMap;
429 }
430 private static final com.google.protobuf.Internal.EnumLiteMap<
431 PricingRule> internalValueMap =
432 new com.google.protobuf.Internal.EnumLiteMap<PricingRule>() {
433 public PricingRule findValueByNumber(int number) {
434 return PricingRule.forNumber(number);
435 }
436 };
437
438 public final com.google.protobuf.Descriptors.EnumValueDescriptor
440 return getDescriptor().getValues().get(ordinal());
441 }
442 public final com.google.protobuf.Descriptors.EnumDescriptor
444 return getDescriptor();
445 }
446 public static final com.google.protobuf.Descriptors.EnumDescriptor
448 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(2);
449 }
450
451 private static final PricingRule[] VALUES = values();
452
453 public static PricingRule valueOf(
454 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
455 if (desc.getType() != getDescriptor()) {
456 throw new java.lang.IllegalArgumentException(
457 "EnumValueDescriptor is not for this type.");
458 }
459 return VALUES[desc.getIndex()];
460 }
461
462 private final int value;
463
464 private PricingRule(int value) {
465 this.value = value;
466 }
467
468 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.PricingRule)
469 }
470
480 implements com.google.protobuf.ProtocolMessageEnum {
524 ;
525
533 public static final int NONE_VALUE = 0;
546 public static final int BIXBY_VALUE = 1;
558 public static final int TRIANGULAR_VALUE = 2;
568 public static final int MAROS_VALUE = 3;
569
570
571 public final int getNumber() {
572 return value;
573 }
574
580 @java.lang.Deprecated
581 public static InitialBasisHeuristic valueOf(int value) {
582 return forNumber(value);
583 }
584
589 public static InitialBasisHeuristic forNumber(int value) {
590 switch (value) {
591 case 0: return NONE;
592 case 1: return BIXBY;
593 case 2: return TRIANGULAR;
594 case 3: return MAROS;
595 default: return null;
596 }
597 }
598
599 public static com.google.protobuf.Internal.EnumLiteMap<InitialBasisHeuristic>
601 return internalValueMap;
602 }
603 private static final com.google.protobuf.Internal.EnumLiteMap<
604 InitialBasisHeuristic> internalValueMap =
605 new com.google.protobuf.Internal.EnumLiteMap<InitialBasisHeuristic>() {
606 public InitialBasisHeuristic findValueByNumber(int number) {
607 return InitialBasisHeuristic.forNumber(number);
608 }
609 };
610
611 public final com.google.protobuf.Descriptors.EnumValueDescriptor
613 return getDescriptor().getValues().get(ordinal());
614 }
615 public final com.google.protobuf.Descriptors.EnumDescriptor
617 return getDescriptor();
618 }
619 public static final com.google.protobuf.Descriptors.EnumDescriptor
621 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(3);
622 }
623
624 private static final InitialBasisHeuristic[] VALUES = values();
625
627 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
628 if (desc.getType() != getDescriptor()) {
629 throw new java.lang.IllegalArgumentException(
630 "EnumValueDescriptor is not for this type.");
631 }
632 return VALUES[desc.getIndex()];
633 }
634
635 private final int value;
636
637 private InitialBasisHeuristic(int value) {
638 this.value = value;
639 }
640
641 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.InitialBasisHeuristic)
642 }
643
656 implements com.google.protobuf.ProtocolMessageEnum {
691 ;
692
700 public static final int NO_COST_SCALING_VALUE = 0;
710 public static final int CONTAIN_ONE_COST_SCALING_VALUE = 1;
718 public static final int MEAN_COST_SCALING_VALUE = 2;
726 public static final int MEDIAN_COST_SCALING_VALUE = 3;
727
728
729 public final int getNumber() {
730 return value;
731 }
732
738 @java.lang.Deprecated
739 public static CostScalingAlgorithm valueOf(int value) {
740 return forNumber(value);
741 }
742
747 public static CostScalingAlgorithm forNumber(int value) {
748 switch (value) {
749 case 0: return NO_COST_SCALING;
750 case 1: return CONTAIN_ONE_COST_SCALING;
751 case 2: return MEAN_COST_SCALING;
752 case 3: return MEDIAN_COST_SCALING;
753 default: return null;
754 }
755 }
756
757 public static com.google.protobuf.Internal.EnumLiteMap<CostScalingAlgorithm>
759 return internalValueMap;
760 }
761 private static final com.google.protobuf.Internal.EnumLiteMap<
762 CostScalingAlgorithm> internalValueMap =
763 new com.google.protobuf.Internal.EnumLiteMap<CostScalingAlgorithm>() {
764 public CostScalingAlgorithm findValueByNumber(int number) {
765 return CostScalingAlgorithm.forNumber(number);
766 }
767 };
768
769 public final com.google.protobuf.Descriptors.EnumValueDescriptor
771 return getDescriptor().getValues().get(ordinal());
772 }
773 public final com.google.protobuf.Descriptors.EnumDescriptor
775 return getDescriptor();
776 }
777 public static final com.google.protobuf.Descriptors.EnumDescriptor
779 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(4);
780 }
781
782 private static final CostScalingAlgorithm[] VALUES = values();
783
785 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
786 if (desc.getType() != getDescriptor()) {
787 throw new java.lang.IllegalArgumentException(
788 "EnumValueDescriptor is not for this type.");
789 }
790 return VALUES[desc.getIndex()];
791 }
792
793 private final int value;
794
795 private CostScalingAlgorithm(int value) {
796 this.value = value;
797 }
798
799 // @@protoc_insertion_point(enum_scope:operations_research.glop.GlopParameters.CostScalingAlgorithm)
800 }
801
802 private int bitField0_;
803 private int bitField1_;
804 public static final int SCALING_METHOD_FIELD_NUMBER = 57;
805 private int scalingMethod_ = 1;
810 @java.lang.Override public boolean hasScalingMethod() {
811 return ((bitField0_ & 0x00000001) != 0);
812 }
818 com.google.ortools.glop.GlopParameters.ScalingAlgorithm result = com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(scalingMethod_);
819 return result == null ? com.google.ortools.glop.GlopParameters.ScalingAlgorithm.EQUILIBRATION : result;
820 }
821
822 public static final int FEASIBILITY_RULE_FIELD_NUMBER = 1;
823 private int feasibilityRule_ = 1;
832 @java.lang.Override public boolean hasFeasibilityRule() {
833 return ((bitField0_ & 0x00000002) != 0);
834 }
844 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(feasibilityRule_);
845 return result == null ? com.google.ortools.glop.GlopParameters.PricingRule.STEEPEST_EDGE : result;
846 }
847
848 public static final int OPTIMIZATION_RULE_FIELD_NUMBER = 2;
849 private int optimizationRule_ = 1;
858 @java.lang.Override public boolean hasOptimizationRule() {
859 return ((bitField0_ & 0x00000004) != 0);
860 }
870 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(optimizationRule_);
871 return result == null ? com.google.ortools.glop.GlopParameters.PricingRule.STEEPEST_EDGE : result;
872 }
873
874 public static final int REFACTORIZATION_THRESHOLD_FIELD_NUMBER = 6;
875 private double refactorizationThreshold_ = 1e-09D;
889 @java.lang.Override
891 return ((bitField0_ & 0x00000008) != 0);
892 }
906 @java.lang.Override
908 return refactorizationThreshold_;
909 }
910
912 private double recomputeReducedCostsThreshold_ = 1e-08D;
925 @java.lang.Override
927 return ((bitField0_ & 0x00000010) != 0);
928 }
941 @java.lang.Override
943 return recomputeReducedCostsThreshold_;
944 }
945
947 private double recomputeEdgesNormThreshold_ = 100D;
960 @java.lang.Override
962 return ((bitField0_ & 0x00000020) != 0);
963 }
976 @java.lang.Override
978 return recomputeEdgesNormThreshold_;
979 }
980
981 public static final int PRIMAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER = 10;
982 private double primalFeasibilityTolerance_ = 1e-08D;
997 @java.lang.Override
999 return ((bitField0_ & 0x00000040) != 0);
1000 }
1015 @java.lang.Override
1017 return primalFeasibilityTolerance_;
1018 }
1019
1020 public static final int DUAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER = 11;
1021 private double dualFeasibilityTolerance_ = 1e-08D;
1039 @java.lang.Override
1041 return ((bitField0_ & 0x00000080) != 0);
1042 }
1060 @java.lang.Override
1062 return dualFeasibilityTolerance_;
1063 }
1064
1065 public static final int RATIO_TEST_ZERO_THRESHOLD_FIELD_NUMBER = 12;
1066 private double ratioTestZeroThreshold_ = 1e-09D;
1081 @java.lang.Override
1082 public boolean hasRatioTestZeroThreshold() {
1083 return ((bitField0_ & 0x00000100) != 0);
1084 }
1099 @java.lang.Override
1101 return ratioTestZeroThreshold_;
1102 }
1103
1104 public static final int HARRIS_TOLERANCE_RATIO_FIELD_NUMBER = 13;
1105 private double harrisToleranceRatio_ = 0.5D;
1124 @java.lang.Override
1125 public boolean hasHarrisToleranceRatio() {
1126 return ((bitField0_ & 0x00000200) != 0);
1127 }
1146 @java.lang.Override
1147 public double getHarrisToleranceRatio() {
1148 return harrisToleranceRatio_;
1149 }
1150
1151 public static final int SMALL_PIVOT_THRESHOLD_FIELD_NUMBER = 14;
1152 private double smallPivotThreshold_ = 1e-06D;
1164 @java.lang.Override
1165 public boolean hasSmallPivotThreshold() {
1166 return ((bitField0_ & 0x00000400) != 0);
1167 }
1179 @java.lang.Override
1180 public double getSmallPivotThreshold() {
1181 return smallPivotThreshold_;
1182 }
1183
1184 public static final int MINIMUM_ACCEPTABLE_PIVOT_FIELD_NUMBER = 15;
1185 private double minimumAcceptablePivot_ = 1e-06D;
1194 @java.lang.Override
1195 public boolean hasMinimumAcceptablePivot() {
1196 return ((bitField0_ & 0x00000800) != 0);
1197 }
1206 @java.lang.Override
1208 return minimumAcceptablePivot_;
1209 }
1210
1211 public static final int DROP_TOLERANCE_FIELD_NUMBER = 52;
1212 private double dropTolerance_ = 1e-14D;
1223 @java.lang.Override
1224 public boolean hasDropTolerance() {
1225 return ((bitField0_ & 0x00001000) != 0);
1226 }
1237 @java.lang.Override
1238 public double getDropTolerance() {
1239 return dropTolerance_;
1240 }
1241
1242 public static final int USE_SCALING_FIELD_NUMBER = 16;
1243 private boolean useScaling_ = true;
1253 @java.lang.Override
1254 public boolean hasUseScaling() {
1255 return ((bitField0_ & 0x00002000) != 0);
1256 }
1266 @java.lang.Override
1267 public boolean getUseScaling() {
1268 return useScaling_;
1269 }
1270
1271 public static final int COST_SCALING_FIELD_NUMBER = 60;
1272 private int costScaling_ = 1;
1277 @java.lang.Override public boolean hasCostScaling() {
1278 return ((bitField0_ & 0x00004000) != 0);
1279 }
1285 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm result = com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(costScaling_);
1286 return result == null ? com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.CONTAIN_ONE_COST_SCALING : result;
1287 }
1288
1289 public static final int INITIAL_BASIS_FIELD_NUMBER = 17;
1290 private int initialBasis_ = 2;
1300 @java.lang.Override public boolean hasInitialBasis() {
1301 return ((bitField0_ & 0x00008000) != 0);
1302 }
1313 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic result = com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(initialBasis_);
1314 return result == null ? com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.TRIANGULAR : result;
1315 }
1316
1317 public static final int USE_TRANSPOSED_MATRIX_FIELD_NUMBER = 18;
1318 private boolean useTransposedMatrix_ = true;
1329 @java.lang.Override
1330 public boolean hasUseTransposedMatrix() {
1331 return ((bitField0_ & 0x00010000) != 0);
1332 }
1343 @java.lang.Override
1344 public boolean getUseTransposedMatrix() {
1345 return useTransposedMatrix_;
1346 }
1347
1348 public static final int BASIS_REFACTORIZATION_PERIOD_FIELD_NUMBER = 19;
1349 private int basisRefactorizationPeriod_ = 64;
1360 @java.lang.Override
1362 return ((bitField0_ & 0x00020000) != 0);
1363 }
1374 @java.lang.Override
1376 return basisRefactorizationPeriod_;
1377 }
1378
1380 private boolean dynamicallyAdjustRefactorizationPeriod_ = true;
1393 @java.lang.Override
1395 return ((bitField0_ & 0x00040000) != 0);
1396 }
1409 @java.lang.Override
1411 return dynamicallyAdjustRefactorizationPeriod_;
1412 }
1413
1414 public static final int SOLVE_DUAL_PROBLEM_FIELD_NUMBER = 20;
1415 private int solveDualProblem_ = 2;
1426 @java.lang.Override public boolean hasSolveDualProblem() {
1427 return ((bitField0_ & 0x00080000) != 0);
1428 }
1440 com.google.ortools.glop.GlopParameters.SolverBehavior result = com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(solveDualProblem_);
1441 return result == null ? com.google.ortools.glop.GlopParameters.SolverBehavior.LET_SOLVER_DECIDE : result;
1442 }
1443
1444 public static final int DUALIZER_THRESHOLD_FIELD_NUMBER = 21;
1445 private double dualizerThreshold_ = 1.5D;
1456 @java.lang.Override
1457 public boolean hasDualizerThreshold() {
1458 return ((bitField0_ & 0x00100000) != 0);
1459 }
1470 @java.lang.Override
1471 public double getDualizerThreshold() {
1472 return dualizerThreshold_;
1473 }
1474
1476 private double solutionFeasibilityTolerance_ = 1e-06D;
1492 @java.lang.Override
1494 return ((bitField0_ & 0x00200000) != 0);
1495 }
1511 @java.lang.Override
1513 return solutionFeasibilityTolerance_;
1514 }
1515
1517 private boolean provideStrongOptimalGuarantee_ = true;
1543 @java.lang.Override
1545 return ((bitField0_ & 0x00400000) != 0);
1546 }
1572 @java.lang.Override
1574 return provideStrongOptimalGuarantee_;
1575 }
1576
1577 public static final int CHANGE_STATUS_TO_IMPRECISE_FIELD_NUMBER = 58;
1578 private boolean changeStatusToImprecise_ = true;
1588 @java.lang.Override
1590 return ((bitField0_ & 0x00800000) != 0);
1591 }
1601 @java.lang.Override
1603 return changeStatusToImprecise_;
1604 }
1605
1607 private double maxNumberOfReoptimizations_ = 40D;
1619 @java.lang.Override
1621 return ((bitField0_ & 0x01000000) != 0);
1622 }
1634 @java.lang.Override
1636 return maxNumberOfReoptimizations_;
1637 }
1638
1640 private double luFactorizationPivotThreshold_ = 0.01D;
1652 @java.lang.Override
1654 return ((bitField0_ & 0x02000000) != 0);
1655 }
1667 @java.lang.Override
1669 return luFactorizationPivotThreshold_;
1670 }
1671
1672 public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 26;
1673 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
1682 @java.lang.Override
1683 public boolean hasMaxTimeInSeconds() {
1684 return ((bitField0_ & 0x04000000) != 0);
1685 }
1694 @java.lang.Override
1695 public double getMaxTimeInSeconds() {
1696 return maxTimeInSeconds_;
1697 }
1698
1699 public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 45;
1700 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
1713 @java.lang.Override
1714 public boolean hasMaxDeterministicTime() {
1715 return ((bitField0_ & 0x08000000) != 0);
1716 }
1729 @java.lang.Override
1730 public double getMaxDeterministicTime() {
1731 return maxDeterministicTime_;
1732 }
1733
1734 public static final int MAX_NUMBER_OF_ITERATIONS_FIELD_NUMBER = 27;
1735 private long maxNumberOfIterations_ = -1L;
1745 @java.lang.Override
1746 public boolean hasMaxNumberOfIterations() {
1747 return ((bitField0_ & 0x10000000) != 0);
1748 }
1758 @java.lang.Override
1760 return maxNumberOfIterations_;
1761 }
1762
1763 public static final int MARKOWITZ_ZLATEV_PARAMETER_FIELD_NUMBER = 29;
1764 private int markowitzZlatevParameter_ = 3;
1774 @java.lang.Override
1776 return ((bitField0_ & 0x20000000) != 0);
1777 }
1787 @java.lang.Override
1789 return markowitzZlatevParameter_;
1790 }
1791
1793 private double markowitzSingularityThreshold_ = 1e-15D;
1805 @java.lang.Override
1807 return ((bitField0_ & 0x40000000) != 0);
1808 }
1820 @java.lang.Override
1822 return markowitzSingularityThreshold_;
1823 }
1824
1825 public static final int USE_DUAL_SIMPLEX_FIELD_NUMBER = 31;
1826 private boolean useDualSimplex_ = false;
1835 @java.lang.Override
1836 public boolean hasUseDualSimplex() {
1837 return ((bitField0_ & 0x80000000) != 0);
1838 }
1847 @java.lang.Override
1848 public boolean getUseDualSimplex() {
1849 return useDualSimplex_;
1850 }
1851
1853 private boolean allowSimplexAlgorithmChange_ = false;
1865 @java.lang.Override
1867 return ((bitField1_ & 0x00000001) != 0);
1868 }
1880 @java.lang.Override
1882 return allowSimplexAlgorithmChange_;
1883 }
1884
1885 public static final int DEVEX_WEIGHTS_RESET_PERIOD_FIELD_NUMBER = 33;
1886 private int devexWeightsResetPeriod_ = 150;
1895 @java.lang.Override
1897 return ((bitField1_ & 0x00000002) != 0);
1898 }
1907 @java.lang.Override
1909 return devexWeightsResetPeriod_;
1910 }
1911
1912 public static final int USE_PREPROCESSING_FIELD_NUMBER = 34;
1913 private boolean usePreprocessing_ = true;
1922 @java.lang.Override
1923 public boolean hasUsePreprocessing() {
1924 return ((bitField1_ & 0x00000004) != 0);
1925 }
1934 @java.lang.Override
1935 public boolean getUsePreprocessing() {
1936 return usePreprocessing_;
1937 }
1938
1940 private boolean useMiddleProductFormUpdate_ = true;
1955 @java.lang.Override
1957 return ((bitField1_ & 0x00000008) != 0);
1958 }
1973 @java.lang.Override
1975 return useMiddleProductFormUpdate_;
1976 }
1977
1979 private boolean initializeDevexWithColumnNorms_ = true;
1989 @java.lang.Override
1991 return ((bitField1_ & 0x00000010) != 0);
1992 }
2002 @java.lang.Override
2004 return initializeDevexWithColumnNorms_;
2005 }
2006
2008 private boolean exploitSingletonColumnInInitialBasis_ = true;
2018 @java.lang.Override
2020 return ((bitField1_ & 0x00000020) != 0);
2021 }
2031 @java.lang.Override
2033 return exploitSingletonColumnInInitialBasis_;
2034 }
2035
2036 public static final int DUAL_SMALL_PIVOT_THRESHOLD_FIELD_NUMBER = 38;
2037 private double dualSmallPivotThreshold_ = 0.0001D;
2048 @java.lang.Override
2050 return ((bitField1_ & 0x00000040) != 0);
2051 }
2062 @java.lang.Override
2064 return dualSmallPivotThreshold_;
2065 }
2066
2067 public static final int PREPROCESSOR_ZERO_TOLERANCE_FIELD_NUMBER = 39;
2068 private double preprocessorZeroTolerance_ = 1e-09D;
2082 @java.lang.Override
2084 return ((bitField1_ & 0x00000080) != 0);
2085 }
2099 @java.lang.Override
2101 return preprocessorZeroTolerance_;
2102 }
2103
2104 public static final int OBJECTIVE_LOWER_LIMIT_FIELD_NUMBER = 40;
2105 private double objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
2122 @java.lang.Override
2123 public boolean hasObjectiveLowerLimit() {
2124 return ((bitField1_ & 0x00000100) != 0);
2125 }
2142 @java.lang.Override
2143 public double getObjectiveLowerLimit() {
2144 return objectiveLowerLimit_;
2145 }
2146
2147 public static final int OBJECTIVE_UPPER_LIMIT_FIELD_NUMBER = 41;
2148 private double objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
2153 @java.lang.Override
2154 public boolean hasObjectiveUpperLimit() {
2155 return ((bitField1_ & 0x00000200) != 0);
2156 }
2161 @java.lang.Override
2162 public double getObjectiveUpperLimit() {
2163 return objectiveUpperLimit_;
2164 }
2165
2166 public static final int DEGENERATE_MINISTEP_FACTOR_FIELD_NUMBER = 42;
2167 private double degenerateMinistepFactor_ = 0.01D;
2193 @java.lang.Override
2195 return ((bitField1_ & 0x00000400) != 0);
2196 }
2222 @java.lang.Override
2224 return degenerateMinistepFactor_;
2225 }
2226
2227 public static final int RANDOM_SEED_FIELD_NUMBER = 43;
2228 private int randomSeed_ = 1;
2251 @java.lang.Override
2252 public boolean hasRandomSeed() {
2253 return ((bitField1_ & 0x00000800) != 0);
2254 }
2277 @java.lang.Override
2278 public int getRandomSeed() {
2279 return randomSeed_;
2280 }
2281
2282 public static final int NUM_OMP_THREADS_FIELD_NUMBER = 44;
2283 private int numOmpThreads_ = 1;
2293 @java.lang.Override
2294 public boolean hasNumOmpThreads() {
2295 return ((bitField1_ & 0x00001000) != 0);
2296 }
2306 @java.lang.Override
2307 public int getNumOmpThreads() {
2308 return numOmpThreads_;
2309 }
2310
2312 private boolean perturbCostsInDualSimplex_ = false;
2324 @java.lang.Override
2326 return ((bitField1_ & 0x00002000) != 0);
2327 }
2339 @java.lang.Override
2341 return perturbCostsInDualSimplex_;
2342 }
2343
2345 private boolean useDedicatedDualFeasibilityAlgorithm_ = true;
2361 @java.lang.Override
2363 return ((bitField1_ & 0x00004000) != 0);
2364 }
2380 @java.lang.Override
2382 return useDedicatedDualFeasibilityAlgorithm_;
2383 }
2384
2385 public static final int RELATIVE_COST_PERTURBATION_FIELD_NUMBER = 54;
2386 private double relativeCostPerturbation_ = 1e-05D;
2398 @java.lang.Override
2400 return ((bitField1_ & 0x00008000) != 0);
2401 }
2413 @java.lang.Override
2415 return relativeCostPerturbation_;
2416 }
2417
2419 private double relativeMaxCostPerturbation_ = 1e-07D;
2424 @java.lang.Override
2426 return ((bitField1_ & 0x00010000) != 0);
2427 }
2432 @java.lang.Override
2434 return relativeMaxCostPerturbation_;
2435 }
2436
2438 private double initialConditionNumberThreshold_ = 1e+50D;
2449 @java.lang.Override
2451 return ((bitField1_ & 0x00020000) != 0);
2452 }
2463 @java.lang.Override
2465 return initialConditionNumberThreshold_;
2466 }
2467
2468 public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 61;
2469 private boolean logSearchProgress_ = false;
2480 @java.lang.Override
2481 public boolean hasLogSearchProgress() {
2482 return ((bitField1_ & 0x00040000) != 0);
2483 }
2494 @java.lang.Override
2495 public boolean getLogSearchProgress() {
2496 return logSearchProgress_;
2497 }
2498
2499 public static final int LOG_TO_STDOUT_FIELD_NUMBER = 66;
2500 private boolean logToStdout_ = true;
2509 @java.lang.Override
2510 public boolean hasLogToStdout() {
2511 return ((bitField1_ & 0x00080000) != 0);
2512 }
2521 @java.lang.Override
2522 public boolean getLogToStdout() {
2523 return logToStdout_;
2524 }
2525
2527 private double crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
2550 @java.lang.Override
2552 return ((bitField1_ & 0x00100000) != 0);
2553 }
2576 @java.lang.Override
2578 return crossoverBoundSnappingDistance_;
2579 }
2580
2581 public static final int PUSH_TO_VERTEX_FIELD_NUMBER = 65;
2582 private boolean pushToVertex_ = true;
2596 @java.lang.Override
2597 public boolean hasPushToVertex() {
2598 return ((bitField1_ & 0x00200000) != 0);
2599 }
2613 @java.lang.Override
2614 public boolean getPushToVertex() {
2615 return pushToVertex_;
2616 }
2617
2619 private boolean useImpliedFreePreprocessor_ = true;
2628 @java.lang.Override
2630 return ((bitField1_ & 0x00400000) != 0);
2631 }
2640 @java.lang.Override
2642 return useImpliedFreePreprocessor_;
2643 }
2644
2645 public static final int MAX_VALID_MAGNITUDE_FIELD_NUMBER = 70;
2646 private double maxValidMagnitude_ = 1e+30D;
2660 @java.lang.Override
2661 public boolean hasMaxValidMagnitude() {
2662 return ((bitField1_ & 0x00800000) != 0);
2663 }
2677 @java.lang.Override
2678 public double getMaxValidMagnitude() {
2679 return maxValidMagnitude_;
2680 }
2681
2682 public static final int DROP_MAGNITUDE_FIELD_NUMBER = 71;
2683 private double dropMagnitude_ = 1e-30D;
2695 @java.lang.Override
2696 public boolean hasDropMagnitude() {
2697 return ((bitField1_ & 0x01000000) != 0);
2698 }
2710 @java.lang.Override
2711 public double getDropMagnitude() {
2712 return dropMagnitude_;
2713 }
2714
2715 public static final int DUAL_PRICE_PRIORITIZE_NORM_FIELD_NUMBER = 69;
2716 private boolean dualPricePrioritizeNorm_ = false;
2726 @java.lang.Override
2728 return ((bitField1_ & 0x02000000) != 0);
2729 }
2739 @java.lang.Override
2741 return dualPricePrioritizeNorm_;
2742 }
2743
2744 private byte memoizedIsInitialized = -1;
2745 @java.lang.Override
2746 public final boolean isInitialized() {
2747 byte isInitialized = memoizedIsInitialized;
2748 if (isInitialized == 1) return true;
2749 if (isInitialized == 0) return false;
2750
2751 memoizedIsInitialized = 1;
2752 return true;
2753 }
2754
2755 @java.lang.Override
2756 public void writeTo(com.google.protobuf.CodedOutputStream output)
2757 throws java.io.IOException {
2758 if (((bitField0_ & 0x00000002) != 0)) {
2759 output.writeEnum(1, feasibilityRule_);
2760 }
2761 if (((bitField0_ & 0x00000004) != 0)) {
2762 output.writeEnum(2, optimizationRule_);
2763 }
2764 if (((bitField0_ & 0x00000008) != 0)) {
2765 output.writeDouble(6, refactorizationThreshold_);
2766 }
2767 if (((bitField0_ & 0x00000010) != 0)) {
2768 output.writeDouble(8, recomputeReducedCostsThreshold_);
2769 }
2770 if (((bitField0_ & 0x00000020) != 0)) {
2771 output.writeDouble(9, recomputeEdgesNormThreshold_);
2772 }
2773 if (((bitField0_ & 0x00000040) != 0)) {
2774 output.writeDouble(10, primalFeasibilityTolerance_);
2775 }
2776 if (((bitField0_ & 0x00000080) != 0)) {
2777 output.writeDouble(11, dualFeasibilityTolerance_);
2778 }
2779 if (((bitField0_ & 0x00000100) != 0)) {
2780 output.writeDouble(12, ratioTestZeroThreshold_);
2781 }
2782 if (((bitField0_ & 0x00000200) != 0)) {
2783 output.writeDouble(13, harrisToleranceRatio_);
2784 }
2785 if (((bitField0_ & 0x00000400) != 0)) {
2786 output.writeDouble(14, smallPivotThreshold_);
2787 }
2788 if (((bitField0_ & 0x00000800) != 0)) {
2789 output.writeDouble(15, minimumAcceptablePivot_);
2790 }
2791 if (((bitField0_ & 0x00002000) != 0)) {
2792 output.writeBool(16, useScaling_);
2793 }
2794 if (((bitField0_ & 0x00008000) != 0)) {
2795 output.writeEnum(17, initialBasis_);
2796 }
2797 if (((bitField0_ & 0x00010000) != 0)) {
2798 output.writeBool(18, useTransposedMatrix_);
2799 }
2800 if (((bitField0_ & 0x00020000) != 0)) {
2801 output.writeInt32(19, basisRefactorizationPeriod_);
2802 }
2803 if (((bitField0_ & 0x00080000) != 0)) {
2804 output.writeEnum(20, solveDualProblem_);
2805 }
2806 if (((bitField0_ & 0x00100000) != 0)) {
2807 output.writeDouble(21, dualizerThreshold_);
2808 }
2809 if (((bitField0_ & 0x00200000) != 0)) {
2810 output.writeDouble(22, solutionFeasibilityTolerance_);
2811 }
2812 if (((bitField0_ & 0x00400000) != 0)) {
2813 output.writeBool(24, provideStrongOptimalGuarantee_);
2814 }
2815 if (((bitField0_ & 0x02000000) != 0)) {
2816 output.writeDouble(25, luFactorizationPivotThreshold_);
2817 }
2818 if (((bitField0_ & 0x04000000) != 0)) {
2819 output.writeDouble(26, maxTimeInSeconds_);
2820 }
2821 if (((bitField0_ & 0x10000000) != 0)) {
2822 output.writeInt64(27, maxNumberOfIterations_);
2823 }
2824 if (((bitField0_ & 0x20000000) != 0)) {
2825 output.writeInt32(29, markowitzZlatevParameter_);
2826 }
2827 if (((bitField0_ & 0x40000000) != 0)) {
2828 output.writeDouble(30, markowitzSingularityThreshold_);
2829 }
2830 if (((bitField0_ & 0x80000000) != 0)) {
2831 output.writeBool(31, useDualSimplex_);
2832 }
2833 if (((bitField1_ & 0x00000001) != 0)) {
2834 output.writeBool(32, allowSimplexAlgorithmChange_);
2835 }
2836 if (((bitField1_ & 0x00000002) != 0)) {
2837 output.writeInt32(33, devexWeightsResetPeriod_);
2838 }
2839 if (((bitField1_ & 0x00000004) != 0)) {
2840 output.writeBool(34, usePreprocessing_);
2841 }
2842 if (((bitField1_ & 0x00000008) != 0)) {
2843 output.writeBool(35, useMiddleProductFormUpdate_);
2844 }
2845 if (((bitField1_ & 0x00000010) != 0)) {
2846 output.writeBool(36, initializeDevexWithColumnNorms_);
2847 }
2848 if (((bitField1_ & 0x00000020) != 0)) {
2849 output.writeBool(37, exploitSingletonColumnInInitialBasis_);
2850 }
2851 if (((bitField1_ & 0x00000040) != 0)) {
2852 output.writeDouble(38, dualSmallPivotThreshold_);
2853 }
2854 if (((bitField1_ & 0x00000080) != 0)) {
2855 output.writeDouble(39, preprocessorZeroTolerance_);
2856 }
2857 if (((bitField1_ & 0x00000100) != 0)) {
2858 output.writeDouble(40, objectiveLowerLimit_);
2859 }
2860 if (((bitField1_ & 0x00000200) != 0)) {
2861 output.writeDouble(41, objectiveUpperLimit_);
2862 }
2863 if (((bitField1_ & 0x00000400) != 0)) {
2864 output.writeDouble(42, degenerateMinistepFactor_);
2865 }
2866 if (((bitField1_ & 0x00000800) != 0)) {
2867 output.writeInt32(43, randomSeed_);
2868 }
2869 if (((bitField1_ & 0x00001000) != 0)) {
2870 output.writeInt32(44, numOmpThreads_);
2871 }
2872 if (((bitField0_ & 0x08000000) != 0)) {
2873 output.writeDouble(45, maxDeterministicTime_);
2874 }
2875 if (((bitField0_ & 0x00001000) != 0)) {
2876 output.writeDouble(52, dropTolerance_);
2877 }
2878 if (((bitField1_ & 0x00002000) != 0)) {
2879 output.writeBool(53, perturbCostsInDualSimplex_);
2880 }
2881 if (((bitField1_ & 0x00008000) != 0)) {
2882 output.writeDouble(54, relativeCostPerturbation_);
2883 }
2884 if (((bitField1_ & 0x00010000) != 0)) {
2885 output.writeDouble(55, relativeMaxCostPerturbation_);
2886 }
2887 if (((bitField0_ & 0x01000000) != 0)) {
2888 output.writeDouble(56, maxNumberOfReoptimizations_);
2889 }
2890 if (((bitField0_ & 0x00000001) != 0)) {
2891 output.writeEnum(57, scalingMethod_);
2892 }
2893 if (((bitField0_ & 0x00800000) != 0)) {
2894 output.writeBool(58, changeStatusToImprecise_);
2895 }
2896 if (((bitField1_ & 0x00020000) != 0)) {
2897 output.writeDouble(59, initialConditionNumberThreshold_);
2898 }
2899 if (((bitField0_ & 0x00004000) != 0)) {
2900 output.writeEnum(60, costScaling_);
2901 }
2902 if (((bitField1_ & 0x00040000) != 0)) {
2903 output.writeBool(61, logSearchProgress_);
2904 }
2905 if (((bitField1_ & 0x00004000) != 0)) {
2906 output.writeBool(62, useDedicatedDualFeasibilityAlgorithm_);
2907 }
2908 if (((bitField0_ & 0x00040000) != 0)) {
2909 output.writeBool(63, dynamicallyAdjustRefactorizationPeriod_);
2910 }
2911 if (((bitField1_ & 0x00100000) != 0)) {
2912 output.writeDouble(64, crossoverBoundSnappingDistance_);
2913 }
2914 if (((bitField1_ & 0x00200000) != 0)) {
2915 output.writeBool(65, pushToVertex_);
2916 }
2917 if (((bitField1_ & 0x00080000) != 0)) {
2918 output.writeBool(66, logToStdout_);
2919 }
2920 if (((bitField1_ & 0x00400000) != 0)) {
2921 output.writeBool(67, useImpliedFreePreprocessor_);
2922 }
2923 if (((bitField1_ & 0x02000000) != 0)) {
2924 output.writeBool(69, dualPricePrioritizeNorm_);
2925 }
2926 if (((bitField1_ & 0x00800000) != 0)) {
2927 output.writeDouble(70, maxValidMagnitude_);
2928 }
2929 if (((bitField1_ & 0x01000000) != 0)) {
2930 output.writeDouble(71, dropMagnitude_);
2931 }
2932 getUnknownFields().writeTo(output);
2933 }
2934
2935 @java.lang.Override
2936 public int getSerializedSize() {
2937 int size = memoizedSize;
2938 if (size != -1) return size;
2939
2940 size = 0;
2941 if (((bitField0_ & 0x00000002) != 0)) {
2942 size += com.google.protobuf.CodedOutputStream
2943 .computeEnumSize(1, feasibilityRule_);
2944 }
2945 if (((bitField0_ & 0x00000004) != 0)) {
2946 size += com.google.protobuf.CodedOutputStream
2947 .computeEnumSize(2, optimizationRule_);
2948 }
2949 if (((bitField0_ & 0x00000008) != 0)) {
2950 size += com.google.protobuf.CodedOutputStream
2951 .computeDoubleSize(6, refactorizationThreshold_);
2952 }
2953 if (((bitField0_ & 0x00000010) != 0)) {
2954 size += com.google.protobuf.CodedOutputStream
2955 .computeDoubleSize(8, recomputeReducedCostsThreshold_);
2956 }
2957 if (((bitField0_ & 0x00000020) != 0)) {
2958 size += com.google.protobuf.CodedOutputStream
2959 .computeDoubleSize(9, recomputeEdgesNormThreshold_);
2960 }
2961 if (((bitField0_ & 0x00000040) != 0)) {
2962 size += com.google.protobuf.CodedOutputStream
2963 .computeDoubleSize(10, primalFeasibilityTolerance_);
2964 }
2965 if (((bitField0_ & 0x00000080) != 0)) {
2966 size += com.google.protobuf.CodedOutputStream
2967 .computeDoubleSize(11, dualFeasibilityTolerance_);
2968 }
2969 if (((bitField0_ & 0x00000100) != 0)) {
2970 size += com.google.protobuf.CodedOutputStream
2971 .computeDoubleSize(12, ratioTestZeroThreshold_);
2972 }
2973 if (((bitField0_ & 0x00000200) != 0)) {
2974 size += com.google.protobuf.CodedOutputStream
2975 .computeDoubleSize(13, harrisToleranceRatio_);
2976 }
2977 if (((bitField0_ & 0x00000400) != 0)) {
2978 size += com.google.protobuf.CodedOutputStream
2979 .computeDoubleSize(14, smallPivotThreshold_);
2980 }
2981 if (((bitField0_ & 0x00000800) != 0)) {
2982 size += com.google.protobuf.CodedOutputStream
2983 .computeDoubleSize(15, minimumAcceptablePivot_);
2984 }
2985 if (((bitField0_ & 0x00002000) != 0)) {
2986 size += com.google.protobuf.CodedOutputStream
2987 .computeBoolSize(16, useScaling_);
2988 }
2989 if (((bitField0_ & 0x00008000) != 0)) {
2990 size += com.google.protobuf.CodedOutputStream
2991 .computeEnumSize(17, initialBasis_);
2992 }
2993 if (((bitField0_ & 0x00010000) != 0)) {
2994 size += com.google.protobuf.CodedOutputStream
2995 .computeBoolSize(18, useTransposedMatrix_);
2996 }
2997 if (((bitField0_ & 0x00020000) != 0)) {
2998 size += com.google.protobuf.CodedOutputStream
2999 .computeInt32Size(19, basisRefactorizationPeriod_);
3000 }
3001 if (((bitField0_ & 0x00080000) != 0)) {
3002 size += com.google.protobuf.CodedOutputStream
3003 .computeEnumSize(20, solveDualProblem_);
3004 }
3005 if (((bitField0_ & 0x00100000) != 0)) {
3006 size += com.google.protobuf.CodedOutputStream
3007 .computeDoubleSize(21, dualizerThreshold_);
3008 }
3009 if (((bitField0_ & 0x00200000) != 0)) {
3010 size += com.google.protobuf.CodedOutputStream
3011 .computeDoubleSize(22, solutionFeasibilityTolerance_);
3012 }
3013 if (((bitField0_ & 0x00400000) != 0)) {
3014 size += com.google.protobuf.CodedOutputStream
3015 .computeBoolSize(24, provideStrongOptimalGuarantee_);
3016 }
3017 if (((bitField0_ & 0x02000000) != 0)) {
3018 size += com.google.protobuf.CodedOutputStream
3019 .computeDoubleSize(25, luFactorizationPivotThreshold_);
3020 }
3021 if (((bitField0_ & 0x04000000) != 0)) {
3022 size += com.google.protobuf.CodedOutputStream
3023 .computeDoubleSize(26, maxTimeInSeconds_);
3024 }
3025 if (((bitField0_ & 0x10000000) != 0)) {
3026 size += com.google.protobuf.CodedOutputStream
3027 .computeInt64Size(27, maxNumberOfIterations_);
3028 }
3029 if (((bitField0_ & 0x20000000) != 0)) {
3030 size += com.google.protobuf.CodedOutputStream
3031 .computeInt32Size(29, markowitzZlatevParameter_);
3032 }
3033 if (((bitField0_ & 0x40000000) != 0)) {
3034 size += com.google.protobuf.CodedOutputStream
3035 .computeDoubleSize(30, markowitzSingularityThreshold_);
3036 }
3037 if (((bitField0_ & 0x80000000) != 0)) {
3038 size += com.google.protobuf.CodedOutputStream
3039 .computeBoolSize(31, useDualSimplex_);
3040 }
3041 if (((bitField1_ & 0x00000001) != 0)) {
3042 size += com.google.protobuf.CodedOutputStream
3043 .computeBoolSize(32, allowSimplexAlgorithmChange_);
3044 }
3045 if (((bitField1_ & 0x00000002) != 0)) {
3046 size += com.google.protobuf.CodedOutputStream
3047 .computeInt32Size(33, devexWeightsResetPeriod_);
3048 }
3049 if (((bitField1_ & 0x00000004) != 0)) {
3050 size += com.google.protobuf.CodedOutputStream
3051 .computeBoolSize(34, usePreprocessing_);
3052 }
3053 if (((bitField1_ & 0x00000008) != 0)) {
3054 size += com.google.protobuf.CodedOutputStream
3055 .computeBoolSize(35, useMiddleProductFormUpdate_);
3056 }
3057 if (((bitField1_ & 0x00000010) != 0)) {
3058 size += com.google.protobuf.CodedOutputStream
3059 .computeBoolSize(36, initializeDevexWithColumnNorms_);
3060 }
3061 if (((bitField1_ & 0x00000020) != 0)) {
3062 size += com.google.protobuf.CodedOutputStream
3063 .computeBoolSize(37, exploitSingletonColumnInInitialBasis_);
3064 }
3065 if (((bitField1_ & 0x00000040) != 0)) {
3066 size += com.google.protobuf.CodedOutputStream
3067 .computeDoubleSize(38, dualSmallPivotThreshold_);
3068 }
3069 if (((bitField1_ & 0x00000080) != 0)) {
3070 size += com.google.protobuf.CodedOutputStream
3071 .computeDoubleSize(39, preprocessorZeroTolerance_);
3072 }
3073 if (((bitField1_ & 0x00000100) != 0)) {
3074 size += com.google.protobuf.CodedOutputStream
3075 .computeDoubleSize(40, objectiveLowerLimit_);
3076 }
3077 if (((bitField1_ & 0x00000200) != 0)) {
3078 size += com.google.protobuf.CodedOutputStream
3079 .computeDoubleSize(41, objectiveUpperLimit_);
3080 }
3081 if (((bitField1_ & 0x00000400) != 0)) {
3082 size += com.google.protobuf.CodedOutputStream
3083 .computeDoubleSize(42, degenerateMinistepFactor_);
3084 }
3085 if (((bitField1_ & 0x00000800) != 0)) {
3086 size += com.google.protobuf.CodedOutputStream
3087 .computeInt32Size(43, randomSeed_);
3088 }
3089 if (((bitField1_ & 0x00001000) != 0)) {
3090 size += com.google.protobuf.CodedOutputStream
3091 .computeInt32Size(44, numOmpThreads_);
3092 }
3093 if (((bitField0_ & 0x08000000) != 0)) {
3094 size += com.google.protobuf.CodedOutputStream
3095 .computeDoubleSize(45, maxDeterministicTime_);
3096 }
3097 if (((bitField0_ & 0x00001000) != 0)) {
3098 size += com.google.protobuf.CodedOutputStream
3099 .computeDoubleSize(52, dropTolerance_);
3100 }
3101 if (((bitField1_ & 0x00002000) != 0)) {
3102 size += com.google.protobuf.CodedOutputStream
3103 .computeBoolSize(53, perturbCostsInDualSimplex_);
3104 }
3105 if (((bitField1_ & 0x00008000) != 0)) {
3106 size += com.google.protobuf.CodedOutputStream
3107 .computeDoubleSize(54, relativeCostPerturbation_);
3108 }
3109 if (((bitField1_ & 0x00010000) != 0)) {
3110 size += com.google.protobuf.CodedOutputStream
3111 .computeDoubleSize(55, relativeMaxCostPerturbation_);
3112 }
3113 if (((bitField0_ & 0x01000000) != 0)) {
3114 size += com.google.protobuf.CodedOutputStream
3115 .computeDoubleSize(56, maxNumberOfReoptimizations_);
3116 }
3117 if (((bitField0_ & 0x00000001) != 0)) {
3118 size += com.google.protobuf.CodedOutputStream
3119 .computeEnumSize(57, scalingMethod_);
3120 }
3121 if (((bitField0_ & 0x00800000) != 0)) {
3122 size += com.google.protobuf.CodedOutputStream
3123 .computeBoolSize(58, changeStatusToImprecise_);
3124 }
3125 if (((bitField1_ & 0x00020000) != 0)) {
3126 size += com.google.protobuf.CodedOutputStream
3127 .computeDoubleSize(59, initialConditionNumberThreshold_);
3128 }
3129 if (((bitField0_ & 0x00004000) != 0)) {
3130 size += com.google.protobuf.CodedOutputStream
3131 .computeEnumSize(60, costScaling_);
3132 }
3133 if (((bitField1_ & 0x00040000) != 0)) {
3134 size += com.google.protobuf.CodedOutputStream
3135 .computeBoolSize(61, logSearchProgress_);
3136 }
3137 if (((bitField1_ & 0x00004000) != 0)) {
3138 size += com.google.protobuf.CodedOutputStream
3139 .computeBoolSize(62, useDedicatedDualFeasibilityAlgorithm_);
3140 }
3141 if (((bitField0_ & 0x00040000) != 0)) {
3142 size += com.google.protobuf.CodedOutputStream
3143 .computeBoolSize(63, dynamicallyAdjustRefactorizationPeriod_);
3144 }
3145 if (((bitField1_ & 0x00100000) != 0)) {
3146 size += com.google.protobuf.CodedOutputStream
3147 .computeDoubleSize(64, crossoverBoundSnappingDistance_);
3148 }
3149 if (((bitField1_ & 0x00200000) != 0)) {
3150 size += com.google.protobuf.CodedOutputStream
3151 .computeBoolSize(65, pushToVertex_);
3152 }
3153 if (((bitField1_ & 0x00080000) != 0)) {
3154 size += com.google.protobuf.CodedOutputStream
3155 .computeBoolSize(66, logToStdout_);
3156 }
3157 if (((bitField1_ & 0x00400000) != 0)) {
3158 size += com.google.protobuf.CodedOutputStream
3159 .computeBoolSize(67, useImpliedFreePreprocessor_);
3160 }
3161 if (((bitField1_ & 0x02000000) != 0)) {
3162 size += com.google.protobuf.CodedOutputStream
3163 .computeBoolSize(69, dualPricePrioritizeNorm_);
3164 }
3165 if (((bitField1_ & 0x00800000) != 0)) {
3166 size += com.google.protobuf.CodedOutputStream
3167 .computeDoubleSize(70, maxValidMagnitude_);
3168 }
3169 if (((bitField1_ & 0x01000000) != 0)) {
3170 size += com.google.protobuf.CodedOutputStream
3171 .computeDoubleSize(71, dropMagnitude_);
3172 }
3173 size += getUnknownFields().getSerializedSize();
3174 memoizedSize = size;
3175 return size;
3176 }
3177
3178 @java.lang.Override
3179 public boolean equals(final java.lang.Object obj) {
3180 if (obj == this) {
3181 return true;
3182 }
3183 if (!(obj instanceof com.google.ortools.glop.GlopParameters)) {
3184 return super.equals(obj);
3185 }
3186 com.google.ortools.glop.GlopParameters other = (com.google.ortools.glop.GlopParameters) obj;
3187
3188 if (hasScalingMethod() != other.hasScalingMethod()) return false;
3189 if (hasScalingMethod()) {
3190 if (scalingMethod_ != other.scalingMethod_) return false;
3191 }
3192 if (hasFeasibilityRule() != other.hasFeasibilityRule()) return false;
3193 if (hasFeasibilityRule()) {
3194 if (feasibilityRule_ != other.feasibilityRule_) return false;
3195 }
3196 if (hasOptimizationRule() != other.hasOptimizationRule()) return false;
3197 if (hasOptimizationRule()) {
3198 if (optimizationRule_ != other.optimizationRule_) return false;
3199 }
3200 if (hasRefactorizationThreshold() != other.hasRefactorizationThreshold()) return false;
3202 if (java.lang.Double.doubleToLongBits(getRefactorizationThreshold())
3203 != java.lang.Double.doubleToLongBits(
3204 other.getRefactorizationThreshold())) return false;
3205 }
3208 if (java.lang.Double.doubleToLongBits(getRecomputeReducedCostsThreshold())
3209 != java.lang.Double.doubleToLongBits(
3210 other.getRecomputeReducedCostsThreshold())) return false;
3211 }
3214 if (java.lang.Double.doubleToLongBits(getRecomputeEdgesNormThreshold())
3215 != java.lang.Double.doubleToLongBits(
3216 other.getRecomputeEdgesNormThreshold())) return false;
3217 }
3218 if (hasPrimalFeasibilityTolerance() != other.hasPrimalFeasibilityTolerance()) return false;
3220 if (java.lang.Double.doubleToLongBits(getPrimalFeasibilityTolerance())
3221 != java.lang.Double.doubleToLongBits(
3222 other.getPrimalFeasibilityTolerance())) return false;
3223 }
3224 if (hasDualFeasibilityTolerance() != other.hasDualFeasibilityTolerance()) return false;
3226 if (java.lang.Double.doubleToLongBits(getDualFeasibilityTolerance())
3227 != java.lang.Double.doubleToLongBits(
3228 other.getDualFeasibilityTolerance())) return false;
3229 }
3230 if (hasRatioTestZeroThreshold() != other.hasRatioTestZeroThreshold()) return false;
3232 if (java.lang.Double.doubleToLongBits(getRatioTestZeroThreshold())
3233 != java.lang.Double.doubleToLongBits(
3234 other.getRatioTestZeroThreshold())) return false;
3235 }
3236 if (hasHarrisToleranceRatio() != other.hasHarrisToleranceRatio()) return false;
3238 if (java.lang.Double.doubleToLongBits(getHarrisToleranceRatio())
3239 != java.lang.Double.doubleToLongBits(
3240 other.getHarrisToleranceRatio())) return false;
3241 }
3242 if (hasSmallPivotThreshold() != other.hasSmallPivotThreshold()) return false;
3243 if (hasSmallPivotThreshold()) {
3244 if (java.lang.Double.doubleToLongBits(getSmallPivotThreshold())
3245 != java.lang.Double.doubleToLongBits(
3246 other.getSmallPivotThreshold())) return false;
3247 }
3248 if (hasMinimumAcceptablePivot() != other.hasMinimumAcceptablePivot()) return false;
3250 if (java.lang.Double.doubleToLongBits(getMinimumAcceptablePivot())
3251 != java.lang.Double.doubleToLongBits(
3252 other.getMinimumAcceptablePivot())) return false;
3253 }
3254 if (hasDropTolerance() != other.hasDropTolerance()) return false;
3255 if (hasDropTolerance()) {
3256 if (java.lang.Double.doubleToLongBits(getDropTolerance())
3257 != java.lang.Double.doubleToLongBits(
3258 other.getDropTolerance())) return false;
3259 }
3260 if (hasUseScaling() != other.hasUseScaling()) return false;
3261 if (hasUseScaling()) {
3262 if (getUseScaling()
3263 != other.getUseScaling()) return false;
3264 }
3265 if (hasCostScaling() != other.hasCostScaling()) return false;
3266 if (hasCostScaling()) {
3267 if (costScaling_ != other.costScaling_) return false;
3268 }
3269 if (hasInitialBasis() != other.hasInitialBasis()) return false;
3270 if (hasInitialBasis()) {
3271 if (initialBasis_ != other.initialBasis_) return false;
3272 }
3273 if (hasUseTransposedMatrix() != other.hasUseTransposedMatrix()) return false;
3274 if (hasUseTransposedMatrix()) {
3276 != other.getUseTransposedMatrix()) return false;
3277 }
3278 if (hasBasisRefactorizationPeriod() != other.hasBasisRefactorizationPeriod()) return false;
3281 != other.getBasisRefactorizationPeriod()) return false;
3282 }
3286 != other.getDynamicallyAdjustRefactorizationPeriod()) return false;
3287 }
3288 if (hasSolveDualProblem() != other.hasSolveDualProblem()) return false;
3289 if (hasSolveDualProblem()) {
3290 if (solveDualProblem_ != other.solveDualProblem_) return false;
3291 }
3292 if (hasDualizerThreshold() != other.hasDualizerThreshold()) return false;
3293 if (hasDualizerThreshold()) {
3294 if (java.lang.Double.doubleToLongBits(getDualizerThreshold())
3295 != java.lang.Double.doubleToLongBits(
3296 other.getDualizerThreshold())) return false;
3297 }
3300 if (java.lang.Double.doubleToLongBits(getSolutionFeasibilityTolerance())
3301 != java.lang.Double.doubleToLongBits(
3302 other.getSolutionFeasibilityTolerance())) return false;
3303 }
3307 != other.getProvideStrongOptimalGuarantee()) return false;
3308 }
3309 if (hasChangeStatusToImprecise() != other.hasChangeStatusToImprecise()) return false;
3312 != other.getChangeStatusToImprecise()) return false;
3313 }
3314 if (hasMaxNumberOfReoptimizations() != other.hasMaxNumberOfReoptimizations()) return false;
3316 if (java.lang.Double.doubleToLongBits(getMaxNumberOfReoptimizations())
3317 != java.lang.Double.doubleToLongBits(
3318 other.getMaxNumberOfReoptimizations())) return false;
3319 }
3322 if (java.lang.Double.doubleToLongBits(getLuFactorizationPivotThreshold())
3323 != java.lang.Double.doubleToLongBits(
3324 other.getLuFactorizationPivotThreshold())) return false;
3325 }
3326 if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
3327 if (hasMaxTimeInSeconds()) {
3328 if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
3329 != java.lang.Double.doubleToLongBits(
3330 other.getMaxTimeInSeconds())) return false;
3331 }
3332 if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
3334 if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
3335 != java.lang.Double.doubleToLongBits(
3336 other.getMaxDeterministicTime())) return false;
3337 }
3338 if (hasMaxNumberOfIterations() != other.hasMaxNumberOfIterations()) return false;
3341 != other.getMaxNumberOfIterations()) return false;
3342 }
3343 if (hasMarkowitzZlatevParameter() != other.hasMarkowitzZlatevParameter()) return false;
3346 != other.getMarkowitzZlatevParameter()) return false;
3347 }
3350 if (java.lang.Double.doubleToLongBits(getMarkowitzSingularityThreshold())
3351 != java.lang.Double.doubleToLongBits(
3352 other.getMarkowitzSingularityThreshold())) return false;
3353 }
3354 if (hasUseDualSimplex() != other.hasUseDualSimplex()) return false;
3355 if (hasUseDualSimplex()) {
3356 if (getUseDualSimplex()
3357 != other.getUseDualSimplex()) return false;
3358 }
3362 != other.getAllowSimplexAlgorithmChange()) return false;
3363 }
3364 if (hasDevexWeightsResetPeriod() != other.hasDevexWeightsResetPeriod()) return false;
3367 != other.getDevexWeightsResetPeriod()) return false;
3368 }
3369 if (hasUsePreprocessing() != other.hasUsePreprocessing()) return false;
3370 if (hasUsePreprocessing()) {
3372 != other.getUsePreprocessing()) return false;
3373 }
3374 if (hasUseMiddleProductFormUpdate() != other.hasUseMiddleProductFormUpdate()) return false;
3377 != other.getUseMiddleProductFormUpdate()) return false;
3378 }
3382 != other.getInitializeDevexWithColumnNorms()) return false;
3383 }
3387 != other.getExploitSingletonColumnInInitialBasis()) return false;
3388 }
3389 if (hasDualSmallPivotThreshold() != other.hasDualSmallPivotThreshold()) return false;
3391 if (java.lang.Double.doubleToLongBits(getDualSmallPivotThreshold())
3392 != java.lang.Double.doubleToLongBits(
3393 other.getDualSmallPivotThreshold())) return false;
3394 }
3395 if (hasPreprocessorZeroTolerance() != other.hasPreprocessorZeroTolerance()) return false;
3397 if (java.lang.Double.doubleToLongBits(getPreprocessorZeroTolerance())
3398 != java.lang.Double.doubleToLongBits(
3399 other.getPreprocessorZeroTolerance())) return false;
3400 }
3401 if (hasObjectiveLowerLimit() != other.hasObjectiveLowerLimit()) return false;
3402 if (hasObjectiveLowerLimit()) {
3403 if (java.lang.Double.doubleToLongBits(getObjectiveLowerLimit())
3404 != java.lang.Double.doubleToLongBits(
3405 other.getObjectiveLowerLimit())) return false;
3406 }
3407 if (hasObjectiveUpperLimit() != other.hasObjectiveUpperLimit()) return false;
3408 if (hasObjectiveUpperLimit()) {
3409 if (java.lang.Double.doubleToLongBits(getObjectiveUpperLimit())
3410 != java.lang.Double.doubleToLongBits(
3411 other.getObjectiveUpperLimit())) return false;
3412 }
3413 if (hasDegenerateMinistepFactor() != other.hasDegenerateMinistepFactor()) return false;
3415 if (java.lang.Double.doubleToLongBits(getDegenerateMinistepFactor())
3416 != java.lang.Double.doubleToLongBits(
3417 other.getDegenerateMinistepFactor())) return false;
3418 }
3419 if (hasRandomSeed() != other.hasRandomSeed()) return false;
3420 if (hasRandomSeed()) {
3421 if (getRandomSeed()
3422 != other.getRandomSeed()) return false;
3423 }
3424 if (hasNumOmpThreads() != other.hasNumOmpThreads()) return false;
3425 if (hasNumOmpThreads()) {
3426 if (getNumOmpThreads()
3427 != other.getNumOmpThreads()) return false;
3428 }
3429 if (hasPerturbCostsInDualSimplex() != other.hasPerturbCostsInDualSimplex()) return false;
3432 != other.getPerturbCostsInDualSimplex()) return false;
3433 }
3437 != other.getUseDedicatedDualFeasibilityAlgorithm()) return false;
3438 }
3439 if (hasRelativeCostPerturbation() != other.hasRelativeCostPerturbation()) return false;
3441 if (java.lang.Double.doubleToLongBits(getRelativeCostPerturbation())
3442 != java.lang.Double.doubleToLongBits(
3443 other.getRelativeCostPerturbation())) return false;
3444 }
3447 if (java.lang.Double.doubleToLongBits(getRelativeMaxCostPerturbation())
3448 != java.lang.Double.doubleToLongBits(
3449 other.getRelativeMaxCostPerturbation())) return false;
3450 }
3453 if (java.lang.Double.doubleToLongBits(getInitialConditionNumberThreshold())
3454 != java.lang.Double.doubleToLongBits(
3455 other.getInitialConditionNumberThreshold())) return false;
3456 }
3457 if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
3458 if (hasLogSearchProgress()) {
3460 != other.getLogSearchProgress()) return false;
3461 }
3462 if (hasLogToStdout() != other.hasLogToStdout()) return false;
3463 if (hasLogToStdout()) {
3464 if (getLogToStdout()
3465 != other.getLogToStdout()) return false;
3466 }
3469 if (java.lang.Double.doubleToLongBits(getCrossoverBoundSnappingDistance())
3470 != java.lang.Double.doubleToLongBits(
3471 other.getCrossoverBoundSnappingDistance())) return false;
3472 }
3473 if (hasPushToVertex() != other.hasPushToVertex()) return false;
3474 if (hasPushToVertex()) {
3475 if (getPushToVertex()
3476 != other.getPushToVertex()) return false;
3477 }
3478 if (hasUseImpliedFreePreprocessor() != other.hasUseImpliedFreePreprocessor()) return false;
3481 != other.getUseImpliedFreePreprocessor()) return false;
3482 }
3483 if (hasMaxValidMagnitude() != other.hasMaxValidMagnitude()) return false;
3484 if (hasMaxValidMagnitude()) {
3485 if (java.lang.Double.doubleToLongBits(getMaxValidMagnitude())
3486 != java.lang.Double.doubleToLongBits(
3487 other.getMaxValidMagnitude())) return false;
3488 }
3489 if (hasDropMagnitude() != other.hasDropMagnitude()) return false;
3490 if (hasDropMagnitude()) {
3491 if (java.lang.Double.doubleToLongBits(getDropMagnitude())
3492 != java.lang.Double.doubleToLongBits(
3493 other.getDropMagnitude())) return false;
3494 }
3495 if (hasDualPricePrioritizeNorm() != other.hasDualPricePrioritizeNorm()) return false;
3498 != other.getDualPricePrioritizeNorm()) return false;
3499 }
3500 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
3501 return true;
3502 }
3503
3504 @java.lang.Override
3505 public int hashCode() {
3506 if (memoizedHashCode != 0) {
3507 return memoizedHashCode;
3508 }
3509 int hash = 41;
3510 hash = (19 * hash) + getDescriptor().hashCode();
3511 if (hasScalingMethod()) {
3512 hash = (37 * hash) + SCALING_METHOD_FIELD_NUMBER;
3513 hash = (53 * hash) + scalingMethod_;
3514 }
3515 if (hasFeasibilityRule()) {
3516 hash = (37 * hash) + FEASIBILITY_RULE_FIELD_NUMBER;
3517 hash = (53 * hash) + feasibilityRule_;
3518 }
3519 if (hasOptimizationRule()) {
3520 hash = (37 * hash) + OPTIMIZATION_RULE_FIELD_NUMBER;
3521 hash = (53 * hash) + optimizationRule_;
3522 }
3524 hash = (37 * hash) + REFACTORIZATION_THRESHOLD_FIELD_NUMBER;
3525 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3526 java.lang.Double.doubleToLongBits(getRefactorizationThreshold()));
3527 }
3530 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3531 java.lang.Double.doubleToLongBits(getRecomputeReducedCostsThreshold()));
3532 }
3535 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3536 java.lang.Double.doubleToLongBits(getRecomputeEdgesNormThreshold()));
3537 }
3539 hash = (37 * hash) + PRIMAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER;
3540 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3541 java.lang.Double.doubleToLongBits(getPrimalFeasibilityTolerance()));
3542 }
3544 hash = (37 * hash) + DUAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER;
3545 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3546 java.lang.Double.doubleToLongBits(getDualFeasibilityTolerance()));
3547 }
3549 hash = (37 * hash) + RATIO_TEST_ZERO_THRESHOLD_FIELD_NUMBER;
3550 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3551 java.lang.Double.doubleToLongBits(getRatioTestZeroThreshold()));
3552 }
3554 hash = (37 * hash) + HARRIS_TOLERANCE_RATIO_FIELD_NUMBER;
3555 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3556 java.lang.Double.doubleToLongBits(getHarrisToleranceRatio()));
3557 }
3558 if (hasSmallPivotThreshold()) {
3559 hash = (37 * hash) + SMALL_PIVOT_THRESHOLD_FIELD_NUMBER;
3560 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3561 java.lang.Double.doubleToLongBits(getSmallPivotThreshold()));
3562 }
3564 hash = (37 * hash) + MINIMUM_ACCEPTABLE_PIVOT_FIELD_NUMBER;
3565 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3566 java.lang.Double.doubleToLongBits(getMinimumAcceptablePivot()));
3567 }
3568 if (hasDropTolerance()) {
3569 hash = (37 * hash) + DROP_TOLERANCE_FIELD_NUMBER;
3570 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3571 java.lang.Double.doubleToLongBits(getDropTolerance()));
3572 }
3573 if (hasUseScaling()) {
3574 hash = (37 * hash) + USE_SCALING_FIELD_NUMBER;
3575 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3576 getUseScaling());
3577 }
3578 if (hasCostScaling()) {
3579 hash = (37 * hash) + COST_SCALING_FIELD_NUMBER;
3580 hash = (53 * hash) + costScaling_;
3581 }
3582 if (hasInitialBasis()) {
3583 hash = (37 * hash) + INITIAL_BASIS_FIELD_NUMBER;
3584 hash = (53 * hash) + initialBasis_;
3585 }
3586 if (hasUseTransposedMatrix()) {
3587 hash = (37 * hash) + USE_TRANSPOSED_MATRIX_FIELD_NUMBER;
3588 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3590 }
3592 hash = (37 * hash) + BASIS_REFACTORIZATION_PERIOD_FIELD_NUMBER;
3593 hash = (53 * hash) + getBasisRefactorizationPeriod();
3594 }
3597 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3599 }
3600 if (hasSolveDualProblem()) {
3601 hash = (37 * hash) + SOLVE_DUAL_PROBLEM_FIELD_NUMBER;
3602 hash = (53 * hash) + solveDualProblem_;
3603 }
3604 if (hasDualizerThreshold()) {
3605 hash = (37 * hash) + DUALIZER_THRESHOLD_FIELD_NUMBER;
3606 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3607 java.lang.Double.doubleToLongBits(getDualizerThreshold()));
3608 }
3611 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3612 java.lang.Double.doubleToLongBits(getSolutionFeasibilityTolerance()));
3613 }
3616 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3618 }
3620 hash = (37 * hash) + CHANGE_STATUS_TO_IMPRECISE_FIELD_NUMBER;
3621 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3623 }
3625 hash = (37 * hash) + MAX_NUMBER_OF_REOPTIMIZATIONS_FIELD_NUMBER;
3626 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3627 java.lang.Double.doubleToLongBits(getMaxNumberOfReoptimizations()));
3628 }
3631 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3632 java.lang.Double.doubleToLongBits(getLuFactorizationPivotThreshold()));
3633 }
3634 if (hasMaxTimeInSeconds()) {
3635 hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
3636 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3637 java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
3638 }
3640 hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
3641 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3642 java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
3643 }
3645 hash = (37 * hash) + MAX_NUMBER_OF_ITERATIONS_FIELD_NUMBER;
3646 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3648 }
3650 hash = (37 * hash) + MARKOWITZ_ZLATEV_PARAMETER_FIELD_NUMBER;
3651 hash = (53 * hash) + getMarkowitzZlatevParameter();
3652 }
3655 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3656 java.lang.Double.doubleToLongBits(getMarkowitzSingularityThreshold()));
3657 }
3658 if (hasUseDualSimplex()) {
3659 hash = (37 * hash) + USE_DUAL_SIMPLEX_FIELD_NUMBER;
3660 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3662 }
3665 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3667 }
3669 hash = (37 * hash) + DEVEX_WEIGHTS_RESET_PERIOD_FIELD_NUMBER;
3670 hash = (53 * hash) + getDevexWeightsResetPeriod();
3671 }
3672 if (hasUsePreprocessing()) {
3673 hash = (37 * hash) + USE_PREPROCESSING_FIELD_NUMBER;
3674 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3676 }
3679 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3681 }
3684 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3686 }
3689 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3691 }
3693 hash = (37 * hash) + DUAL_SMALL_PIVOT_THRESHOLD_FIELD_NUMBER;
3694 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3695 java.lang.Double.doubleToLongBits(getDualSmallPivotThreshold()));
3696 }
3698 hash = (37 * hash) + PREPROCESSOR_ZERO_TOLERANCE_FIELD_NUMBER;
3699 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3700 java.lang.Double.doubleToLongBits(getPreprocessorZeroTolerance()));
3701 }
3702 if (hasObjectiveLowerLimit()) {
3703 hash = (37 * hash) + OBJECTIVE_LOWER_LIMIT_FIELD_NUMBER;
3704 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3705 java.lang.Double.doubleToLongBits(getObjectiveLowerLimit()));
3706 }
3707 if (hasObjectiveUpperLimit()) {
3708 hash = (37 * hash) + OBJECTIVE_UPPER_LIMIT_FIELD_NUMBER;
3709 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3710 java.lang.Double.doubleToLongBits(getObjectiveUpperLimit()));
3711 }
3713 hash = (37 * hash) + DEGENERATE_MINISTEP_FACTOR_FIELD_NUMBER;
3714 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3715 java.lang.Double.doubleToLongBits(getDegenerateMinistepFactor()));
3716 }
3717 if (hasRandomSeed()) {
3718 hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
3719 hash = (53 * hash) + getRandomSeed();
3720 }
3721 if (hasNumOmpThreads()) {
3722 hash = (37 * hash) + NUM_OMP_THREADS_FIELD_NUMBER;
3723 hash = (53 * hash) + getNumOmpThreads();
3724 }
3726 hash = (37 * hash) + PERTURB_COSTS_IN_DUAL_SIMPLEX_FIELD_NUMBER;
3727 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3729 }
3732 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3734 }
3736 hash = (37 * hash) + RELATIVE_COST_PERTURBATION_FIELD_NUMBER;
3737 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3738 java.lang.Double.doubleToLongBits(getRelativeCostPerturbation()));
3739 }
3742 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3743 java.lang.Double.doubleToLongBits(getRelativeMaxCostPerturbation()));
3744 }
3747 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3748 java.lang.Double.doubleToLongBits(getInitialConditionNumberThreshold()));
3749 }
3750 if (hasLogSearchProgress()) {
3751 hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
3752 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3754 }
3755 if (hasLogToStdout()) {
3756 hash = (37 * hash) + LOG_TO_STDOUT_FIELD_NUMBER;
3757 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3758 getLogToStdout());
3759 }
3762 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3763 java.lang.Double.doubleToLongBits(getCrossoverBoundSnappingDistance()));
3764 }
3765 if (hasPushToVertex()) {
3766 hash = (37 * hash) + PUSH_TO_VERTEX_FIELD_NUMBER;
3767 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3768 getPushToVertex());
3769 }
3771 hash = (37 * hash) + USE_IMPLIED_FREE_PREPROCESSOR_FIELD_NUMBER;
3772 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3774 }
3775 if (hasMaxValidMagnitude()) {
3776 hash = (37 * hash) + MAX_VALID_MAGNITUDE_FIELD_NUMBER;
3777 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3778 java.lang.Double.doubleToLongBits(getMaxValidMagnitude()));
3779 }
3780 if (hasDropMagnitude()) {
3781 hash = (37 * hash) + DROP_MAGNITUDE_FIELD_NUMBER;
3782 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3783 java.lang.Double.doubleToLongBits(getDropMagnitude()));
3784 }
3786 hash = (37 * hash) + DUAL_PRICE_PRIORITIZE_NORM_FIELD_NUMBER;
3787 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3789 }
3790 hash = (29 * hash) + getUnknownFields().hashCode();
3791 memoizedHashCode = hash;
3792 return hash;
3793 }
3794
3796 java.nio.ByteBuffer data)
3797 throws com.google.protobuf.InvalidProtocolBufferException {
3798 return PARSER.parseFrom(data);
3799 }
3801 java.nio.ByteBuffer data,
3802 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3803 throws com.google.protobuf.InvalidProtocolBufferException {
3804 return PARSER.parseFrom(data, extensionRegistry);
3805 }
3807 com.google.protobuf.ByteString data)
3808 throws com.google.protobuf.InvalidProtocolBufferException {
3809 return PARSER.parseFrom(data);
3810 }
3812 com.google.protobuf.ByteString data,
3813 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3814 throws com.google.protobuf.InvalidProtocolBufferException {
3815 return PARSER.parseFrom(data, extensionRegistry);
3816 }
3818 throws com.google.protobuf.InvalidProtocolBufferException {
3819 return PARSER.parseFrom(data);
3820 }
3822 byte[] data,
3823 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3824 throws com.google.protobuf.InvalidProtocolBufferException {
3825 return PARSER.parseFrom(data, extensionRegistry);
3826 }
3827 public static com.google.ortools.glop.GlopParameters parseFrom(java.io.InputStream input)
3828 throws java.io.IOException {
3829 return com.google.protobuf.GeneratedMessageV3
3830 .parseWithIOException(PARSER, input);
3831 }
3833 java.io.InputStream input,
3834 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3835 throws java.io.IOException {
3836 return com.google.protobuf.GeneratedMessageV3
3837 .parseWithIOException(PARSER, input, extensionRegistry);
3838 }
3839
3840 public static com.google.ortools.glop.GlopParameters parseDelimitedFrom(java.io.InputStream input)
3841 throws java.io.IOException {
3842 return com.google.protobuf.GeneratedMessageV3
3843 .parseDelimitedWithIOException(PARSER, input);
3844 }
3845
3847 java.io.InputStream input,
3848 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3849 throws java.io.IOException {
3850 return com.google.protobuf.GeneratedMessageV3
3851 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3852 }
3854 com.google.protobuf.CodedInputStream input)
3855 throws java.io.IOException {
3856 return com.google.protobuf.GeneratedMessageV3
3857 .parseWithIOException(PARSER, input);
3858 }
3860 com.google.protobuf.CodedInputStream input,
3861 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3862 throws java.io.IOException {
3863 return com.google.protobuf.GeneratedMessageV3
3864 .parseWithIOException(PARSER, input, extensionRegistry);
3865 }
3866
3867 @java.lang.Override
3868 public Builder newBuilderForType() { return newBuilder(); }
3869 public static Builder newBuilder() {
3870 return DEFAULT_INSTANCE.toBuilder();
3871 }
3872 public static Builder newBuilder(com.google.ortools.glop.GlopParameters prototype) {
3873 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3874 }
3875 @java.lang.Override
3877 return this == DEFAULT_INSTANCE
3878 ? new Builder() : new Builder().mergeFrom(this);
3879 }
3880
3881 @java.lang.Override
3883 com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3884 Builder builder = new Builder(parent);
3885 return builder;
3886 }
3894 public static final class Builder extends
3895 com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
3896 // @@protoc_insertion_point(builder_implements:operations_research.glop.GlopParameters)
3897 com.google.ortools.glop.GlopParametersOrBuilder {
3898 public static final com.google.protobuf.Descriptors.Descriptor
3900 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
3901 }
3902
3903 @java.lang.Override
3904 protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
3906 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_fieldAccessorTable
3907 .ensureFieldAccessorsInitialized(
3908 com.google.ortools.glop.GlopParameters.class, com.google.ortools.glop.GlopParameters.Builder.class);
3909 }
3910
3911 // Construct using com.google.ortools.glop.GlopParameters.newBuilder()
3912 private Builder() {
3913
3914 }
3915
3916 private Builder(
3917 com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3918 super(parent);
3919
3920 }
3921 @java.lang.Override
3922 public Builder clear() {
3923 super.clear();
3924 bitField0_ = 0;
3925 bitField1_ = 0;
3926 scalingMethod_ = 1;
3927 feasibilityRule_ = 1;
3928 optimizationRule_ = 1;
3929 refactorizationThreshold_ = 1e-09D;
3930 recomputeReducedCostsThreshold_ = 1e-08D;
3931 recomputeEdgesNormThreshold_ = 100D;
3932 primalFeasibilityTolerance_ = 1e-08D;
3933 dualFeasibilityTolerance_ = 1e-08D;
3934 ratioTestZeroThreshold_ = 1e-09D;
3935 harrisToleranceRatio_ = 0.5D;
3936 smallPivotThreshold_ = 1e-06D;
3937 minimumAcceptablePivot_ = 1e-06D;
3938 dropTolerance_ = 1e-14D;
3939 useScaling_ = true;
3940 costScaling_ = 1;
3941 initialBasis_ = 2;
3942 useTransposedMatrix_ = true;
3943 basisRefactorizationPeriod_ = 64;
3944 dynamicallyAdjustRefactorizationPeriod_ = true;
3945 solveDualProblem_ = 2;
3946 dualizerThreshold_ = 1.5D;
3947 solutionFeasibilityTolerance_ = 1e-06D;
3948 provideStrongOptimalGuarantee_ = true;
3949 changeStatusToImprecise_ = true;
3950 maxNumberOfReoptimizations_ = 40D;
3951 luFactorizationPivotThreshold_ = 0.01D;
3952 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
3953 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
3954 maxNumberOfIterations_ = -1L;
3955 markowitzZlatevParameter_ = 3;
3956 markowitzSingularityThreshold_ = 1e-15D;
3957 useDualSimplex_ = false;
3958 allowSimplexAlgorithmChange_ = false;
3959 devexWeightsResetPeriod_ = 150;
3960 usePreprocessing_ = true;
3961 useMiddleProductFormUpdate_ = true;
3962 initializeDevexWithColumnNorms_ = true;
3963 exploitSingletonColumnInInitialBasis_ = true;
3964 dualSmallPivotThreshold_ = 0.0001D;
3965 preprocessorZeroTolerance_ = 1e-09D;
3966 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
3967 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
3968 degenerateMinistepFactor_ = 0.01D;
3969 randomSeed_ = 1;
3970 numOmpThreads_ = 1;
3971 perturbCostsInDualSimplex_ = false;
3972 useDedicatedDualFeasibilityAlgorithm_ = true;
3973 relativeCostPerturbation_ = 1e-05D;
3974 relativeMaxCostPerturbation_ = 1e-07D;
3975 initialConditionNumberThreshold_ = 1e+50D;
3976 logSearchProgress_ = false;
3977 logToStdout_ = true;
3978 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
3979 pushToVertex_ = true;
3980 useImpliedFreePreprocessor_ = true;
3981 maxValidMagnitude_ = 1e+30D;
3982 dropMagnitude_ = 1e-30D;
3983 dualPricePrioritizeNorm_ = false;
3984 return this;
3985 }
3986
3987 @java.lang.Override
3988 public com.google.protobuf.Descriptors.Descriptor
3990 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
3991 }
3992
3993 @java.lang.Override
3995 return com.google.ortools.glop.GlopParameters.getDefaultInstance();
3996 }
3997
3998 @java.lang.Override
4001 if (!result.isInitialized()) {
4002 throw newUninitializedMessageException(result);
4003 }
4004 return result;
4005 }
4006
4007 @java.lang.Override
4009 com.google.ortools.glop.GlopParameters result = new com.google.ortools.glop.GlopParameters(this);
4010 if (bitField0_ != 0) { buildPartial0(result); }
4011 if (bitField1_ != 0) { buildPartial1(result); }
4012 onBuilt();
4013 return result;
4014 }
4015
4016 private void buildPartial0(com.google.ortools.glop.GlopParameters result) {
4017 int from_bitField0_ = bitField0_;
4018 int to_bitField0_ = 0;
4019 if (((from_bitField0_ & 0x00000001) != 0)) {
4020 result.scalingMethod_ = scalingMethod_;
4021 to_bitField0_ |= 0x00000001;
4022 }
4023 if (((from_bitField0_ & 0x00000002) != 0)) {
4024 result.feasibilityRule_ = feasibilityRule_;
4025 to_bitField0_ |= 0x00000002;
4026 }
4027 if (((from_bitField0_ & 0x00000004) != 0)) {
4028 result.optimizationRule_ = optimizationRule_;
4029 to_bitField0_ |= 0x00000004;
4030 }
4031 if (((from_bitField0_ & 0x00000008) != 0)) {
4032 result.refactorizationThreshold_ = refactorizationThreshold_;
4033 to_bitField0_ |= 0x00000008;
4034 }
4035 if (((from_bitField0_ & 0x00000010) != 0)) {
4036 result.recomputeReducedCostsThreshold_ = recomputeReducedCostsThreshold_;
4037 to_bitField0_ |= 0x00000010;
4038 }
4039 if (((from_bitField0_ & 0x00000020) != 0)) {
4040 result.recomputeEdgesNormThreshold_ = recomputeEdgesNormThreshold_;
4041 to_bitField0_ |= 0x00000020;
4042 }
4043 if (((from_bitField0_ & 0x00000040) != 0)) {
4044 result.primalFeasibilityTolerance_ = primalFeasibilityTolerance_;
4045 to_bitField0_ |= 0x00000040;
4046 }
4047 if (((from_bitField0_ & 0x00000080) != 0)) {
4048 result.dualFeasibilityTolerance_ = dualFeasibilityTolerance_;
4049 to_bitField0_ |= 0x00000080;
4050 }
4051 if (((from_bitField0_ & 0x00000100) != 0)) {
4052 result.ratioTestZeroThreshold_ = ratioTestZeroThreshold_;
4053 to_bitField0_ |= 0x00000100;
4054 }
4055 if (((from_bitField0_ & 0x00000200) != 0)) {
4056 result.harrisToleranceRatio_ = harrisToleranceRatio_;
4057 to_bitField0_ |= 0x00000200;
4058 }
4059 if (((from_bitField0_ & 0x00000400) != 0)) {
4060 result.smallPivotThreshold_ = smallPivotThreshold_;
4061 to_bitField0_ |= 0x00000400;
4062 }
4063 if (((from_bitField0_ & 0x00000800) != 0)) {
4064 result.minimumAcceptablePivot_ = minimumAcceptablePivot_;
4065 to_bitField0_ |= 0x00000800;
4066 }
4067 if (((from_bitField0_ & 0x00001000) != 0)) {
4068 result.dropTolerance_ = dropTolerance_;
4069 to_bitField0_ |= 0x00001000;
4070 }
4071 if (((from_bitField0_ & 0x00002000) != 0)) {
4072 result.useScaling_ = useScaling_;
4073 to_bitField0_ |= 0x00002000;
4074 }
4075 if (((from_bitField0_ & 0x00004000) != 0)) {
4076 result.costScaling_ = costScaling_;
4077 to_bitField0_ |= 0x00004000;
4078 }
4079 if (((from_bitField0_ & 0x00008000) != 0)) {
4080 result.initialBasis_ = initialBasis_;
4081 to_bitField0_ |= 0x00008000;
4082 }
4083 if (((from_bitField0_ & 0x00010000) != 0)) {
4084 result.useTransposedMatrix_ = useTransposedMatrix_;
4085 to_bitField0_ |= 0x00010000;
4086 }
4087 if (((from_bitField0_ & 0x00020000) != 0)) {
4088 result.basisRefactorizationPeriod_ = basisRefactorizationPeriod_;
4089 to_bitField0_ |= 0x00020000;
4090 }
4091 if (((from_bitField0_ & 0x00040000) != 0)) {
4092 result.dynamicallyAdjustRefactorizationPeriod_ = dynamicallyAdjustRefactorizationPeriod_;
4093 to_bitField0_ |= 0x00040000;
4094 }
4095 if (((from_bitField0_ & 0x00080000) != 0)) {
4096 result.solveDualProblem_ = solveDualProblem_;
4097 to_bitField0_ |= 0x00080000;
4098 }
4099 if (((from_bitField0_ & 0x00100000) != 0)) {
4100 result.dualizerThreshold_ = dualizerThreshold_;
4101 to_bitField0_ |= 0x00100000;
4102 }
4103 if (((from_bitField0_ & 0x00200000) != 0)) {
4104 result.solutionFeasibilityTolerance_ = solutionFeasibilityTolerance_;
4105 to_bitField0_ |= 0x00200000;
4106 }
4107 if (((from_bitField0_ & 0x00400000) != 0)) {
4108 result.provideStrongOptimalGuarantee_ = provideStrongOptimalGuarantee_;
4109 to_bitField0_ |= 0x00400000;
4110 }
4111 if (((from_bitField0_ & 0x00800000) != 0)) {
4112 result.changeStatusToImprecise_ = changeStatusToImprecise_;
4113 to_bitField0_ |= 0x00800000;
4114 }
4115 if (((from_bitField0_ & 0x01000000) != 0)) {
4116 result.maxNumberOfReoptimizations_ = maxNumberOfReoptimizations_;
4117 to_bitField0_ |= 0x01000000;
4118 }
4119 if (((from_bitField0_ & 0x02000000) != 0)) {
4120 result.luFactorizationPivotThreshold_ = luFactorizationPivotThreshold_;
4121 to_bitField0_ |= 0x02000000;
4122 }
4123 if (((from_bitField0_ & 0x04000000) != 0)) {
4124 result.maxTimeInSeconds_ = maxTimeInSeconds_;
4125 to_bitField0_ |= 0x04000000;
4126 }
4127 if (((from_bitField0_ & 0x08000000) != 0)) {
4128 result.maxDeterministicTime_ = maxDeterministicTime_;
4129 to_bitField0_ |= 0x08000000;
4130 }
4131 if (((from_bitField0_ & 0x10000000) != 0)) {
4132 result.maxNumberOfIterations_ = maxNumberOfIterations_;
4133 to_bitField0_ |= 0x10000000;
4134 }
4135 if (((from_bitField0_ & 0x20000000) != 0)) {
4136 result.markowitzZlatevParameter_ = markowitzZlatevParameter_;
4137 to_bitField0_ |= 0x20000000;
4138 }
4139 if (((from_bitField0_ & 0x40000000) != 0)) {
4140 result.markowitzSingularityThreshold_ = markowitzSingularityThreshold_;
4141 to_bitField0_ |= 0x40000000;
4142 }
4143 if (((from_bitField0_ & 0x80000000) != 0)) {
4144 result.useDualSimplex_ = useDualSimplex_;
4145 to_bitField0_ |= 0x80000000;
4146 }
4147 result.bitField0_ |= to_bitField0_;
4148 }
4149
4150 private void buildPartial1(com.google.ortools.glop.GlopParameters result) {
4151 int from_bitField1_ = bitField1_;
4152 int to_bitField1_ = 0;
4153 if (((from_bitField1_ & 0x00000001) != 0)) {
4154 result.allowSimplexAlgorithmChange_ = allowSimplexAlgorithmChange_;
4155 to_bitField1_ |= 0x00000001;
4156 }
4157 if (((from_bitField1_ & 0x00000002) != 0)) {
4158 result.devexWeightsResetPeriod_ = devexWeightsResetPeriod_;
4159 to_bitField1_ |= 0x00000002;
4160 }
4161 if (((from_bitField1_ & 0x00000004) != 0)) {
4162 result.usePreprocessing_ = usePreprocessing_;
4163 to_bitField1_ |= 0x00000004;
4164 }
4165 if (((from_bitField1_ & 0x00000008) != 0)) {
4166 result.useMiddleProductFormUpdate_ = useMiddleProductFormUpdate_;
4167 to_bitField1_ |= 0x00000008;
4168 }
4169 if (((from_bitField1_ & 0x00000010) != 0)) {
4170 result.initializeDevexWithColumnNorms_ = initializeDevexWithColumnNorms_;
4171 to_bitField1_ |= 0x00000010;
4172 }
4173 if (((from_bitField1_ & 0x00000020) != 0)) {
4174 result.exploitSingletonColumnInInitialBasis_ = exploitSingletonColumnInInitialBasis_;
4175 to_bitField1_ |= 0x00000020;
4176 }
4177 if (((from_bitField1_ & 0x00000040) != 0)) {
4178 result.dualSmallPivotThreshold_ = dualSmallPivotThreshold_;
4179 to_bitField1_ |= 0x00000040;
4180 }
4181 if (((from_bitField1_ & 0x00000080) != 0)) {
4182 result.preprocessorZeroTolerance_ = preprocessorZeroTolerance_;
4183 to_bitField1_ |= 0x00000080;
4184 }
4185 if (((from_bitField1_ & 0x00000100) != 0)) {
4186 result.objectiveLowerLimit_ = objectiveLowerLimit_;
4187 to_bitField1_ |= 0x00000100;
4188 }
4189 if (((from_bitField1_ & 0x00000200) != 0)) {
4190 result.objectiveUpperLimit_ = objectiveUpperLimit_;
4191 to_bitField1_ |= 0x00000200;
4192 }
4193 if (((from_bitField1_ & 0x00000400) != 0)) {
4194 result.degenerateMinistepFactor_ = degenerateMinistepFactor_;
4195 to_bitField1_ |= 0x00000400;
4196 }
4197 if (((from_bitField1_ & 0x00000800) != 0)) {
4198 result.randomSeed_ = randomSeed_;
4199 to_bitField1_ |= 0x00000800;
4200 }
4201 if (((from_bitField1_ & 0x00001000) != 0)) {
4202 result.numOmpThreads_ = numOmpThreads_;
4203 to_bitField1_ |= 0x00001000;
4204 }
4205 if (((from_bitField1_ & 0x00002000) != 0)) {
4206 result.perturbCostsInDualSimplex_ = perturbCostsInDualSimplex_;
4207 to_bitField1_ |= 0x00002000;
4208 }
4209 if (((from_bitField1_ & 0x00004000) != 0)) {
4210 result.useDedicatedDualFeasibilityAlgorithm_ = useDedicatedDualFeasibilityAlgorithm_;
4211 to_bitField1_ |= 0x00004000;
4212 }
4213 if (((from_bitField1_ & 0x00008000) != 0)) {
4214 result.relativeCostPerturbation_ = relativeCostPerturbation_;
4215 to_bitField1_ |= 0x00008000;
4216 }
4217 if (((from_bitField1_ & 0x00010000) != 0)) {
4218 result.relativeMaxCostPerturbation_ = relativeMaxCostPerturbation_;
4219 to_bitField1_ |= 0x00010000;
4220 }
4221 if (((from_bitField1_ & 0x00020000) != 0)) {
4222 result.initialConditionNumberThreshold_ = initialConditionNumberThreshold_;
4223 to_bitField1_ |= 0x00020000;
4224 }
4225 if (((from_bitField1_ & 0x00040000) != 0)) {
4226 result.logSearchProgress_ = logSearchProgress_;
4227 to_bitField1_ |= 0x00040000;
4228 }
4229 if (((from_bitField1_ & 0x00080000) != 0)) {
4230 result.logToStdout_ = logToStdout_;
4231 to_bitField1_ |= 0x00080000;
4232 }
4233 if (((from_bitField1_ & 0x00100000) != 0)) {
4234 result.crossoverBoundSnappingDistance_ = crossoverBoundSnappingDistance_;
4235 to_bitField1_ |= 0x00100000;
4236 }
4237 if (((from_bitField1_ & 0x00200000) != 0)) {
4238 result.pushToVertex_ = pushToVertex_;
4239 to_bitField1_ |= 0x00200000;
4240 }
4241 if (((from_bitField1_ & 0x00400000) != 0)) {
4242 result.useImpliedFreePreprocessor_ = useImpliedFreePreprocessor_;
4243 to_bitField1_ |= 0x00400000;
4244 }
4245 if (((from_bitField1_ & 0x00800000) != 0)) {
4246 result.maxValidMagnitude_ = maxValidMagnitude_;
4247 to_bitField1_ |= 0x00800000;
4248 }
4249 if (((from_bitField1_ & 0x01000000) != 0)) {
4250 result.dropMagnitude_ = dropMagnitude_;
4251 to_bitField1_ |= 0x01000000;
4252 }
4253 if (((from_bitField1_ & 0x02000000) != 0)) {
4254 result.dualPricePrioritizeNorm_ = dualPricePrioritizeNorm_;
4255 to_bitField1_ |= 0x02000000;
4256 }
4257 result.bitField1_ |= to_bitField1_;
4258 }
4259
4260 @java.lang.Override
4261 public Builder clone() {
4262 return super.clone();
4263 }
4264 @java.lang.Override
4266 com.google.protobuf.Descriptors.FieldDescriptor field,
4267 java.lang.Object value) {
4268 return super.setField(field, value);
4269 }
4270 @java.lang.Override
4272 com.google.protobuf.Descriptors.FieldDescriptor field) {
4273 return super.clearField(field);
4274 }
4275 @java.lang.Override
4277 com.google.protobuf.Descriptors.OneofDescriptor oneof) {
4278 return super.clearOneof(oneof);
4279 }
4280 @java.lang.Override
4282 com.google.protobuf.Descriptors.FieldDescriptor field,
4283 int index, java.lang.Object value) {
4284 return super.setRepeatedField(field, index, value);
4285 }
4286 @java.lang.Override
4288 com.google.protobuf.Descriptors.FieldDescriptor field,
4289 java.lang.Object value) {
4290 return super.addRepeatedField(field, value);
4291 }
4292 @java.lang.Override
4293 public Builder mergeFrom(com.google.protobuf.Message other) {
4294 if (other instanceof com.google.ortools.glop.GlopParameters) {
4295 return mergeFrom((com.google.ortools.glop.GlopParameters)other);
4296 } else {
4297 super.mergeFrom(other);
4298 return this;
4299 }
4300 }
4301
4302 public Builder mergeFrom(com.google.ortools.glop.GlopParameters other) {
4303 if (other == com.google.ortools.glop.GlopParameters.getDefaultInstance()) return this;
4304 if (other.hasScalingMethod()) {
4305 setScalingMethod(other.getScalingMethod());
4306 }
4307 if (other.hasFeasibilityRule()) {
4308 setFeasibilityRule(other.getFeasibilityRule());
4309 }
4310 if (other.hasOptimizationRule()) {
4311 setOptimizationRule(other.getOptimizationRule());
4312 }
4313 if (other.hasRefactorizationThreshold()) {
4314 setRefactorizationThreshold(other.getRefactorizationThreshold());
4315 }
4316 if (other.hasRecomputeReducedCostsThreshold()) {
4317 setRecomputeReducedCostsThreshold(other.getRecomputeReducedCostsThreshold());
4318 }
4319 if (other.hasRecomputeEdgesNormThreshold()) {
4320 setRecomputeEdgesNormThreshold(other.getRecomputeEdgesNormThreshold());
4321 }
4322 if (other.hasPrimalFeasibilityTolerance()) {
4323 setPrimalFeasibilityTolerance(other.getPrimalFeasibilityTolerance());
4324 }
4325 if (other.hasDualFeasibilityTolerance()) {
4326 setDualFeasibilityTolerance(other.getDualFeasibilityTolerance());
4327 }
4328 if (other.hasRatioTestZeroThreshold()) {
4329 setRatioTestZeroThreshold(other.getRatioTestZeroThreshold());
4330 }
4331 if (other.hasHarrisToleranceRatio()) {
4332 setHarrisToleranceRatio(other.getHarrisToleranceRatio());
4333 }
4334 if (other.hasSmallPivotThreshold()) {
4335 setSmallPivotThreshold(other.getSmallPivotThreshold());
4336 }
4337 if (other.hasMinimumAcceptablePivot()) {
4338 setMinimumAcceptablePivot(other.getMinimumAcceptablePivot());
4339 }
4340 if (other.hasDropTolerance()) {
4341 setDropTolerance(other.getDropTolerance());
4342 }
4343 if (other.hasUseScaling()) {
4344 setUseScaling(other.getUseScaling());
4345 }
4346 if (other.hasCostScaling()) {
4347 setCostScaling(other.getCostScaling());
4348 }
4349 if (other.hasInitialBasis()) {
4350 setInitialBasis(other.getInitialBasis());
4351 }
4352 if (other.hasUseTransposedMatrix()) {
4353 setUseTransposedMatrix(other.getUseTransposedMatrix());
4354 }
4355 if (other.hasBasisRefactorizationPeriod()) {
4356 setBasisRefactorizationPeriod(other.getBasisRefactorizationPeriod());
4357 }
4358 if (other.hasDynamicallyAdjustRefactorizationPeriod()) {
4359 setDynamicallyAdjustRefactorizationPeriod(other.getDynamicallyAdjustRefactorizationPeriod());
4360 }
4361 if (other.hasSolveDualProblem()) {
4362 setSolveDualProblem(other.getSolveDualProblem());
4363 }
4364 if (other.hasDualizerThreshold()) {
4365 setDualizerThreshold(other.getDualizerThreshold());
4366 }
4367 if (other.hasSolutionFeasibilityTolerance()) {
4368 setSolutionFeasibilityTolerance(other.getSolutionFeasibilityTolerance());
4369 }
4370 if (other.hasProvideStrongOptimalGuarantee()) {
4371 setProvideStrongOptimalGuarantee(other.getProvideStrongOptimalGuarantee());
4372 }
4373 if (other.hasChangeStatusToImprecise()) {
4374 setChangeStatusToImprecise(other.getChangeStatusToImprecise());
4375 }
4376 if (other.hasMaxNumberOfReoptimizations()) {
4377 setMaxNumberOfReoptimizations(other.getMaxNumberOfReoptimizations());
4378 }
4379 if (other.hasLuFactorizationPivotThreshold()) {
4380 setLuFactorizationPivotThreshold(other.getLuFactorizationPivotThreshold());
4381 }
4382 if (other.hasMaxTimeInSeconds()) {
4383 setMaxTimeInSeconds(other.getMaxTimeInSeconds());
4384 }
4385 if (other.hasMaxDeterministicTime()) {
4386 setMaxDeterministicTime(other.getMaxDeterministicTime());
4387 }
4388 if (other.hasMaxNumberOfIterations()) {
4389 setMaxNumberOfIterations(other.getMaxNumberOfIterations());
4390 }
4391 if (other.hasMarkowitzZlatevParameter()) {
4392 setMarkowitzZlatevParameter(other.getMarkowitzZlatevParameter());
4393 }
4394 if (other.hasMarkowitzSingularityThreshold()) {
4395 setMarkowitzSingularityThreshold(other.getMarkowitzSingularityThreshold());
4396 }
4397 if (other.hasUseDualSimplex()) {
4398 setUseDualSimplex(other.getUseDualSimplex());
4399 }
4400 if (other.hasAllowSimplexAlgorithmChange()) {
4401 setAllowSimplexAlgorithmChange(other.getAllowSimplexAlgorithmChange());
4402 }
4403 if (other.hasDevexWeightsResetPeriod()) {
4404 setDevexWeightsResetPeriod(other.getDevexWeightsResetPeriod());
4405 }
4406 if (other.hasUsePreprocessing()) {
4407 setUsePreprocessing(other.getUsePreprocessing());
4408 }
4409 if (other.hasUseMiddleProductFormUpdate()) {
4410 setUseMiddleProductFormUpdate(other.getUseMiddleProductFormUpdate());
4411 }
4412 if (other.hasInitializeDevexWithColumnNorms()) {
4413 setInitializeDevexWithColumnNorms(other.getInitializeDevexWithColumnNorms());
4414 }
4415 if (other.hasExploitSingletonColumnInInitialBasis()) {
4416 setExploitSingletonColumnInInitialBasis(other.getExploitSingletonColumnInInitialBasis());
4417 }
4418 if (other.hasDualSmallPivotThreshold()) {
4419 setDualSmallPivotThreshold(other.getDualSmallPivotThreshold());
4420 }
4421 if (other.hasPreprocessorZeroTolerance()) {
4422 setPreprocessorZeroTolerance(other.getPreprocessorZeroTolerance());
4423 }
4424 if (other.hasObjectiveLowerLimit()) {
4425 setObjectiveLowerLimit(other.getObjectiveLowerLimit());
4426 }
4427 if (other.hasObjectiveUpperLimit()) {
4428 setObjectiveUpperLimit(other.getObjectiveUpperLimit());
4429 }
4430 if (other.hasDegenerateMinistepFactor()) {
4431 setDegenerateMinistepFactor(other.getDegenerateMinistepFactor());
4432 }
4433 if (other.hasRandomSeed()) {
4434 setRandomSeed(other.getRandomSeed());
4435 }
4436 if (other.hasNumOmpThreads()) {
4437 setNumOmpThreads(other.getNumOmpThreads());
4438 }
4439 if (other.hasPerturbCostsInDualSimplex()) {
4440 setPerturbCostsInDualSimplex(other.getPerturbCostsInDualSimplex());
4441 }
4442 if (other.hasUseDedicatedDualFeasibilityAlgorithm()) {
4443 setUseDedicatedDualFeasibilityAlgorithm(other.getUseDedicatedDualFeasibilityAlgorithm());
4444 }
4445 if (other.hasRelativeCostPerturbation()) {
4446 setRelativeCostPerturbation(other.getRelativeCostPerturbation());
4447 }
4448 if (other.hasRelativeMaxCostPerturbation()) {
4449 setRelativeMaxCostPerturbation(other.getRelativeMaxCostPerturbation());
4450 }
4451 if (other.hasInitialConditionNumberThreshold()) {
4452 setInitialConditionNumberThreshold(other.getInitialConditionNumberThreshold());
4453 }
4454 if (other.hasLogSearchProgress()) {
4455 setLogSearchProgress(other.getLogSearchProgress());
4456 }
4457 if (other.hasLogToStdout()) {
4458 setLogToStdout(other.getLogToStdout());
4459 }
4460 if (other.hasCrossoverBoundSnappingDistance()) {
4461 setCrossoverBoundSnappingDistance(other.getCrossoverBoundSnappingDistance());
4462 }
4463 if (other.hasPushToVertex()) {
4464 setPushToVertex(other.getPushToVertex());
4465 }
4466 if (other.hasUseImpliedFreePreprocessor()) {
4467 setUseImpliedFreePreprocessor(other.getUseImpliedFreePreprocessor());
4468 }
4469 if (other.hasMaxValidMagnitude()) {
4470 setMaxValidMagnitude(other.getMaxValidMagnitude());
4471 }
4472 if (other.hasDropMagnitude()) {
4473 setDropMagnitude(other.getDropMagnitude());
4474 }
4475 if (other.hasDualPricePrioritizeNorm()) {
4476 setDualPricePrioritizeNorm(other.getDualPricePrioritizeNorm());
4477 }
4478 this.mergeUnknownFields(other.getUnknownFields());
4479 onChanged();
4480 return this;
4481 }
4482
4483 @java.lang.Override
4484 public final boolean isInitialized() {
4485 return true;
4486 }
4487
4488 @java.lang.Override
4490 com.google.protobuf.CodedInputStream input,
4491 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4492 throws java.io.IOException {
4493 if (extensionRegistry == null) {
4494 throw new java.lang.NullPointerException();
4495 }
4496 try {
4497 boolean done = false;
4498 while (!done) {
4499 int tag = input.readTag();
4500 switch (tag) {
4501 case 0:
4502 done = true;
4503 break;
4504 case 8: {
4505 int tmpRaw = input.readEnum();
4507 com.google.ortools.glop.GlopParameters.PricingRule.forNumber(tmpRaw);
4508 if (tmpValue == null) {
4509 mergeUnknownVarintField(1, tmpRaw);
4510 } else {
4511 feasibilityRule_ = tmpRaw;
4512 bitField0_ |= 0x00000002;
4513 }
4514 break;
4515 } // case 8
4516 case 16: {
4517 int tmpRaw = input.readEnum();
4519 com.google.ortools.glop.GlopParameters.PricingRule.forNumber(tmpRaw);
4520 if (tmpValue == null) {
4521 mergeUnknownVarintField(2, tmpRaw);
4522 } else {
4523 optimizationRule_ = tmpRaw;
4524 bitField0_ |= 0x00000004;
4525 }
4526 break;
4527 } // case 16
4528 case 49: {
4529 refactorizationThreshold_ = input.readDouble();
4530 bitField0_ |= 0x00000008;
4531 break;
4532 } // case 49
4533 case 65: {
4534 recomputeReducedCostsThreshold_ = input.readDouble();
4535 bitField0_ |= 0x00000010;
4536 break;
4537 } // case 65
4538 case 73: {
4539 recomputeEdgesNormThreshold_ = input.readDouble();
4540 bitField0_ |= 0x00000020;
4541 break;
4542 } // case 73
4543 case 81: {
4544 primalFeasibilityTolerance_ = input.readDouble();
4545 bitField0_ |= 0x00000040;
4546 break;
4547 } // case 81
4548 case 89: {
4549 dualFeasibilityTolerance_ = input.readDouble();
4550 bitField0_ |= 0x00000080;
4551 break;
4552 } // case 89
4553 case 97: {
4554 ratioTestZeroThreshold_ = input.readDouble();
4555 bitField0_ |= 0x00000100;
4556 break;
4557 } // case 97
4558 case 105: {
4559 harrisToleranceRatio_ = input.readDouble();
4560 bitField0_ |= 0x00000200;
4561 break;
4562 } // case 105
4563 case 113: {
4564 smallPivotThreshold_ = input.readDouble();
4565 bitField0_ |= 0x00000400;
4566 break;
4567 } // case 113
4568 case 121: {
4569 minimumAcceptablePivot_ = input.readDouble();
4570 bitField0_ |= 0x00000800;
4571 break;
4572 } // case 121
4573 case 128: {
4574 useScaling_ = input.readBool();
4575 bitField0_ |= 0x00002000;
4576 break;
4577 } // case 128
4578 case 136: {
4579 int tmpRaw = input.readEnum();
4581 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(tmpRaw);
4582 if (tmpValue == null) {
4583 mergeUnknownVarintField(17, tmpRaw);
4584 } else {
4585 initialBasis_ = tmpRaw;
4586 bitField0_ |= 0x00008000;
4587 }
4588 break;
4589 } // case 136
4590 case 144: {
4591 useTransposedMatrix_ = input.readBool();
4592 bitField0_ |= 0x00010000;
4593 break;
4594 } // case 144
4595 case 152: {
4596 basisRefactorizationPeriod_ = input.readInt32();
4597 bitField0_ |= 0x00020000;
4598 break;
4599 } // case 152
4600 case 160: {
4601 int tmpRaw = input.readEnum();
4603 com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(tmpRaw);
4604 if (tmpValue == null) {
4605 mergeUnknownVarintField(20, tmpRaw);
4606 } else {
4607 solveDualProblem_ = tmpRaw;
4608 bitField0_ |= 0x00080000;
4609 }
4610 break;
4611 } // case 160
4612 case 169: {
4613 dualizerThreshold_ = input.readDouble();
4614 bitField0_ |= 0x00100000;
4615 break;
4616 } // case 169
4617 case 177: {
4618 solutionFeasibilityTolerance_ = input.readDouble();
4619 bitField0_ |= 0x00200000;
4620 break;
4621 } // case 177
4622 case 192: {
4623 provideStrongOptimalGuarantee_ = input.readBool();
4624 bitField0_ |= 0x00400000;
4625 break;
4626 } // case 192
4627 case 201: {
4628 luFactorizationPivotThreshold_ = input.readDouble();
4629 bitField0_ |= 0x02000000;
4630 break;
4631 } // case 201
4632 case 209: {
4633 maxTimeInSeconds_ = input.readDouble();
4634 bitField0_ |= 0x04000000;
4635 break;
4636 } // case 209
4637 case 216: {
4638 maxNumberOfIterations_ = input.readInt64();
4639 bitField0_ |= 0x10000000;
4640 break;
4641 } // case 216
4642 case 232: {
4643 markowitzZlatevParameter_ = input.readInt32();
4644 bitField0_ |= 0x20000000;
4645 break;
4646 } // case 232
4647 case 241: {
4648 markowitzSingularityThreshold_ = input.readDouble();
4649 bitField0_ |= 0x40000000;
4650 break;
4651 } // case 241
4652 case 248: {
4653 useDualSimplex_ = input.readBool();
4654 bitField0_ |= 0x80000000;
4655 break;
4656 } // case 248
4657 case 256: {
4658 allowSimplexAlgorithmChange_ = input.readBool();
4659 bitField1_ |= 0x00000001;
4660 break;
4661 } // case 256
4662 case 264: {
4663 devexWeightsResetPeriod_ = input.readInt32();
4664 bitField1_ |= 0x00000002;
4665 break;
4666 } // case 264
4667 case 272: {
4668 usePreprocessing_ = input.readBool();
4669 bitField1_ |= 0x00000004;
4670 break;
4671 } // case 272
4672 case 280: {
4673 useMiddleProductFormUpdate_ = input.readBool();
4674 bitField1_ |= 0x00000008;
4675 break;
4676 } // case 280
4677 case 288: {
4678 initializeDevexWithColumnNorms_ = input.readBool();
4679 bitField1_ |= 0x00000010;
4680 break;
4681 } // case 288
4682 case 296: {
4683 exploitSingletonColumnInInitialBasis_ = input.readBool();
4684 bitField1_ |= 0x00000020;
4685 break;
4686 } // case 296
4687 case 305: {
4688 dualSmallPivotThreshold_ = input.readDouble();
4689 bitField1_ |= 0x00000040;
4690 break;
4691 } // case 305
4692 case 313: {
4693 preprocessorZeroTolerance_ = input.readDouble();
4694 bitField1_ |= 0x00000080;
4695 break;
4696 } // case 313
4697 case 321: {
4698 objectiveLowerLimit_ = input.readDouble();
4699 bitField1_ |= 0x00000100;
4700 break;
4701 } // case 321
4702 case 329: {
4703 objectiveUpperLimit_ = input.readDouble();
4704 bitField1_ |= 0x00000200;
4705 break;
4706 } // case 329
4707 case 337: {
4708 degenerateMinistepFactor_ = input.readDouble();
4709 bitField1_ |= 0x00000400;
4710 break;
4711 } // case 337
4712 case 344: {
4713 randomSeed_ = input.readInt32();
4714 bitField1_ |= 0x00000800;
4715 break;
4716 } // case 344
4717 case 352: {
4718 numOmpThreads_ = input.readInt32();
4719 bitField1_ |= 0x00001000;
4720 break;
4721 } // case 352
4722 case 361: {
4723 maxDeterministicTime_ = input.readDouble();
4724 bitField0_ |= 0x08000000;
4725 break;
4726 } // case 361
4727 case 417: {
4728 dropTolerance_ = input.readDouble();
4729 bitField0_ |= 0x00001000;
4730 break;
4731 } // case 417
4732 case 424: {
4733 perturbCostsInDualSimplex_ = input.readBool();
4734 bitField1_ |= 0x00002000;
4735 break;
4736 } // case 424
4737 case 433: {
4738 relativeCostPerturbation_ = input.readDouble();
4739 bitField1_ |= 0x00008000;
4740 break;
4741 } // case 433
4742 case 441: {
4743 relativeMaxCostPerturbation_ = input.readDouble();
4744 bitField1_ |= 0x00010000;
4745 break;
4746 } // case 441
4747 case 449: {
4748 maxNumberOfReoptimizations_ = input.readDouble();
4749 bitField0_ |= 0x01000000;
4750 break;
4751 } // case 449
4752 case 456: {
4753 int tmpRaw = input.readEnum();
4755 com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(tmpRaw);
4756 if (tmpValue == null) {
4757 mergeUnknownVarintField(57, tmpRaw);
4758 } else {
4759 scalingMethod_ = tmpRaw;
4760 bitField0_ |= 0x00000001;
4761 }
4762 break;
4763 } // case 456
4764 case 464: {
4765 changeStatusToImprecise_ = input.readBool();
4766 bitField0_ |= 0x00800000;
4767 break;
4768 } // case 464
4769 case 473: {
4770 initialConditionNumberThreshold_ = input.readDouble();
4771 bitField1_ |= 0x00020000;
4772 break;
4773 } // case 473
4774 case 480: {
4775 int tmpRaw = input.readEnum();
4777 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(tmpRaw);
4778 if (tmpValue == null) {
4779 mergeUnknownVarintField(60, tmpRaw);
4780 } else {
4781 costScaling_ = tmpRaw;
4782 bitField0_ |= 0x00004000;
4783 }
4784 break;
4785 } // case 480
4786 case 488: {
4787 logSearchProgress_ = input.readBool();
4788 bitField1_ |= 0x00040000;
4789 break;
4790 } // case 488
4791 case 496: {
4792 useDedicatedDualFeasibilityAlgorithm_ = input.readBool();
4793 bitField1_ |= 0x00004000;
4794 break;
4795 } // case 496
4796 case 504: {
4797 dynamicallyAdjustRefactorizationPeriod_ = input.readBool();
4798 bitField0_ |= 0x00040000;
4799 break;
4800 } // case 504
4801 case 513: {
4802 crossoverBoundSnappingDistance_ = input.readDouble();
4803 bitField1_ |= 0x00100000;
4804 break;
4805 } // case 513
4806 case 520: {
4807 pushToVertex_ = input.readBool();
4808 bitField1_ |= 0x00200000;
4809 break;
4810 } // case 520
4811 case 528: {
4812 logToStdout_ = input.readBool();
4813 bitField1_ |= 0x00080000;
4814 break;
4815 } // case 528
4816 case 536: {
4817 useImpliedFreePreprocessor_ = input.readBool();
4818 bitField1_ |= 0x00400000;
4819 break;
4820 } // case 536
4821 case 552: {
4822 dualPricePrioritizeNorm_ = input.readBool();
4823 bitField1_ |= 0x02000000;
4824 break;
4825 } // case 552
4826 case 561: {
4827 maxValidMagnitude_ = input.readDouble();
4828 bitField1_ |= 0x00800000;
4829 break;
4830 } // case 561
4831 case 569: {
4832 dropMagnitude_ = input.readDouble();
4833 bitField1_ |= 0x01000000;
4834 break;
4835 } // case 569
4836 default: {
4837 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
4838 done = true; // was an endgroup tag
4839 }
4840 break;
4841 } // default:
4842 } // switch (tag)
4843 } // while (!done)
4844 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
4845 throw e.unwrapIOException();
4846 } finally {
4847 onChanged();
4848 } // finally
4849 return this;
4850 }
4851 private int bitField0_;
4852 private int bitField1_;
4853
4854 private int scalingMethod_ = 1;
4859 @java.lang.Override public boolean hasScalingMethod() {
4860 return ((bitField0_ & 0x00000001) != 0);
4861 }
4866 @java.lang.Override
4868 com.google.ortools.glop.GlopParameters.ScalingAlgorithm result = com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(scalingMethod_);
4869 return result == null ? com.google.ortools.glop.GlopParameters.ScalingAlgorithm.EQUILIBRATION : result;
4870 }
4876 public Builder setScalingMethod(com.google.ortools.glop.GlopParameters.ScalingAlgorithm value) {
4877 if (value == null) {
4878 throw new NullPointerException();
4879 }
4880 bitField0_ |= 0x00000001;
4881 scalingMethod_ = value.getNumber();
4882 onChanged();
4883 return this;
4884 }
4890 bitField0_ = (bitField0_ & ~0x00000001);
4891 scalingMethod_ = 1;
4892 onChanged();
4893 return this;
4894 }
4895
4896 private int feasibilityRule_ = 1;
4905 @java.lang.Override public boolean hasFeasibilityRule() {
4906 return ((bitField0_ & 0x00000002) != 0);
4907 }
4916 @java.lang.Override
4918 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(feasibilityRule_);
4919 return result == null ? com.google.ortools.glop.GlopParameters.PricingRule.STEEPEST_EDGE : result;
4920 }
4930 public Builder setFeasibilityRule(com.google.ortools.glop.GlopParameters.PricingRule value) {
4931 if (value == null) {
4932 throw new NullPointerException();
4933 }
4934 bitField0_ |= 0x00000002;
4935 feasibilityRule_ = value.getNumber();
4936 onChanged();
4937 return this;
4938 }
4948 bitField0_ = (bitField0_ & ~0x00000002);
4949 feasibilityRule_ = 1;
4950 onChanged();
4951 return this;
4952 }
4953
4954 private int optimizationRule_ = 1;
4963 @java.lang.Override public boolean hasOptimizationRule() {
4964 return ((bitField0_ & 0x00000004) != 0);
4965 }
4974 @java.lang.Override
4976 com.google.ortools.glop.GlopParameters.PricingRule result = com.google.ortools.glop.GlopParameters.PricingRule.forNumber(optimizationRule_);
4977 return result == null ? com.google.ortools.glop.GlopParameters.PricingRule.STEEPEST_EDGE : result;
4978 }
4988 public Builder setOptimizationRule(com.google.ortools.glop.GlopParameters.PricingRule value) {
4989 if (value == null) {
4990 throw new NullPointerException();
4991 }
4992 bitField0_ |= 0x00000004;
4993 optimizationRule_ = value.getNumber();
4994 onChanged();
4995 return this;
4996 }
5006 bitField0_ = (bitField0_ & ~0x00000004);
5007 optimizationRule_ = 1;
5008 onChanged();
5009 return this;
5010 }
5011
5012 private double refactorizationThreshold_ = 1e-09D;
5026 @java.lang.Override
5028 return ((bitField0_ & 0x00000008) != 0);
5029 }
5043 @java.lang.Override
5045 return refactorizationThreshold_;
5046 }
5062
5063 refactorizationThreshold_ = value;
5064 bitField0_ |= 0x00000008;
5065 onChanged();
5066 return this;
5067 }
5082 bitField0_ = (bitField0_ & ~0x00000008);
5083 refactorizationThreshold_ = 1e-09D;
5084 onChanged();
5085 return this;
5086 }
5087
5088 private double recomputeReducedCostsThreshold_ = 1e-08D;
5101 @java.lang.Override
5103 return ((bitField0_ & 0x00000010) != 0);
5104 }
5117 @java.lang.Override
5119 return recomputeReducedCostsThreshold_;
5120 }
5135
5136 recomputeReducedCostsThreshold_ = value;
5137 bitField0_ |= 0x00000010;
5138 onChanged();
5139 return this;
5140 }
5154 bitField0_ = (bitField0_ & ~0x00000010);
5155 recomputeReducedCostsThreshold_ = 1e-08D;
5156 onChanged();
5157 return this;
5158 }
5159
5160 private double recomputeEdgesNormThreshold_ = 100D;
5173 @java.lang.Override
5175 return ((bitField0_ & 0x00000020) != 0);
5176 }
5189 @java.lang.Override
5191 return recomputeEdgesNormThreshold_;
5192 }
5207
5208 recomputeEdgesNormThreshold_ = value;
5209 bitField0_ |= 0x00000020;
5210 onChanged();
5211 return this;
5212 }
5226 bitField0_ = (bitField0_ & ~0x00000020);
5227 recomputeEdgesNormThreshold_ = 100D;
5228 onChanged();
5229 return this;
5230 }
5231
5232 private double primalFeasibilityTolerance_ = 1e-08D;
5247 @java.lang.Override
5249 return ((bitField0_ & 0x00000040) != 0);
5250 }
5265 @java.lang.Override
5267 return primalFeasibilityTolerance_;
5268 }
5285
5286 primalFeasibilityTolerance_ = value;
5287 bitField0_ |= 0x00000040;
5288 onChanged();
5289 return this;
5290 }
5306 bitField0_ = (bitField0_ & ~0x00000040);
5307 primalFeasibilityTolerance_ = 1e-08D;
5308 onChanged();
5309 return this;
5310 }
5311
5312 private double dualFeasibilityTolerance_ = 1e-08D;
5330 @java.lang.Override
5332 return ((bitField0_ & 0x00000080) != 0);
5333 }
5351 @java.lang.Override
5353 return dualFeasibilityTolerance_;
5354 }
5374
5375 dualFeasibilityTolerance_ = value;
5376 bitField0_ |= 0x00000080;
5377 onChanged();
5378 return this;
5379 }
5398 bitField0_ = (bitField0_ & ~0x00000080);
5399 dualFeasibilityTolerance_ = 1e-08D;
5400 onChanged();
5401 return this;
5402 }
5403
5404 private double ratioTestZeroThreshold_ = 1e-09D;
5419 @java.lang.Override
5420 public boolean hasRatioTestZeroThreshold() {
5421 return ((bitField0_ & 0x00000100) != 0);
5422 }
5437 @java.lang.Override
5439 return ratioTestZeroThreshold_;
5440 }
5456 public Builder setRatioTestZeroThreshold(double value) {
5457
5458 ratioTestZeroThreshold_ = value;
5459 bitField0_ |= 0x00000100;
5460 onChanged();
5461 return this;
5462 }
5478 bitField0_ = (bitField0_ & ~0x00000100);
5479 ratioTestZeroThreshold_ = 1e-09D;
5480 onChanged();
5481 return this;
5482 }
5483
5484 private double harrisToleranceRatio_ = 0.5D;
5503 @java.lang.Override
5504 public boolean hasHarrisToleranceRatio() {
5505 return ((bitField0_ & 0x00000200) != 0);
5506 }
5525 @java.lang.Override
5526 public double getHarrisToleranceRatio() {
5527 return harrisToleranceRatio_;
5528 }
5548 public Builder setHarrisToleranceRatio(double value) {
5549
5550 harrisToleranceRatio_ = value;
5551 bitField0_ |= 0x00000200;
5552 onChanged();
5553 return this;
5554 }
5574 bitField0_ = (bitField0_ & ~0x00000200);
5575 harrisToleranceRatio_ = 0.5D;
5576 onChanged();
5577 return this;
5578 }
5579
5580 private double smallPivotThreshold_ = 1e-06D;
5592 @java.lang.Override
5593 public boolean hasSmallPivotThreshold() {
5594 return ((bitField0_ & 0x00000400) != 0);
5595 }
5607 @java.lang.Override
5608 public double getSmallPivotThreshold() {
5609 return smallPivotThreshold_;
5610 }
5623 public Builder setSmallPivotThreshold(double value) {
5624
5625 smallPivotThreshold_ = value;
5626 bitField0_ |= 0x00000400;
5627 onChanged();
5628 return this;
5629 }
5642 bitField0_ = (bitField0_ & ~0x00000400);
5643 smallPivotThreshold_ = 1e-06D;
5644 onChanged();
5645 return this;
5646 }
5647
5648 private double minimumAcceptablePivot_ = 1e-06D;
5657 @java.lang.Override
5658 public boolean hasMinimumAcceptablePivot() {
5659 return ((bitField0_ & 0x00000800) != 0);
5660 }
5669 @java.lang.Override
5671 return minimumAcceptablePivot_;
5672 }
5682 public Builder setMinimumAcceptablePivot(double value) {
5683
5684 minimumAcceptablePivot_ = value;
5685 bitField0_ |= 0x00000800;
5686 onChanged();
5687 return this;
5688 }
5698 bitField0_ = (bitField0_ & ~0x00000800);
5699 minimumAcceptablePivot_ = 1e-06D;
5700 onChanged();
5701 return this;
5702 }
5703
5704 private double dropTolerance_ = 1e-14D;
5715 @java.lang.Override
5716 public boolean hasDropTolerance() {
5717 return ((bitField0_ & 0x00001000) != 0);
5718 }
5729 @java.lang.Override
5730 public double getDropTolerance() {
5731 return dropTolerance_;
5732 }
5744 public Builder setDropTolerance(double value) {
5745
5746 dropTolerance_ = value;
5747 bitField0_ |= 0x00001000;
5748 onChanged();
5749 return this;
5750 }
5762 bitField0_ = (bitField0_ & ~0x00001000);
5763 dropTolerance_ = 1e-14D;
5764 onChanged();
5765 return this;
5766 }
5767
5768 private boolean useScaling_ = true;
5778 @java.lang.Override
5779 public boolean hasUseScaling() {
5780 return ((bitField0_ & 0x00002000) != 0);
5781 }
5791 @java.lang.Override
5792 public boolean getUseScaling() {
5793 return useScaling_;
5794 }
5805 public Builder setUseScaling(boolean value) {
5806
5807 useScaling_ = value;
5808 bitField0_ |= 0x00002000;
5809 onChanged();
5810 return this;
5811 }
5822 bitField0_ = (bitField0_ & ~0x00002000);
5823 useScaling_ = true;
5824 onChanged();
5825 return this;
5826 }
5827
5828 private int costScaling_ = 1;
5833 @java.lang.Override public boolean hasCostScaling() {
5834 return ((bitField0_ & 0x00004000) != 0);
5835 }
5840 @java.lang.Override
5842 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm result = com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(costScaling_);
5843 return result == null ? com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.CONTAIN_ONE_COST_SCALING : result;
5844 }
5850 public Builder setCostScaling(com.google.ortools.glop.GlopParameters.CostScalingAlgorithm value) {
5851 if (value == null) {
5852 throw new NullPointerException();
5853 }
5854 bitField0_ |= 0x00004000;
5855 costScaling_ = value.getNumber();
5856 onChanged();
5857 return this;
5858 }
5864 bitField0_ = (bitField0_ & ~0x00004000);
5865 costScaling_ = 1;
5866 onChanged();
5867 return this;
5868 }
5869
5870 private int initialBasis_ = 2;
5880 @java.lang.Override public boolean hasInitialBasis() {
5881 return ((bitField0_ & 0x00008000) != 0);
5882 }
5892 @java.lang.Override
5894 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic result = com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(initialBasis_);
5895 return result == null ? com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.TRIANGULAR : result;
5896 }
5907 public Builder setInitialBasis(com.google.ortools.glop.GlopParameters.InitialBasisHeuristic value) {
5908 if (value == null) {
5909 throw new NullPointerException();
5910 }
5911 bitField0_ |= 0x00008000;
5912 initialBasis_ = value.getNumber();
5913 onChanged();
5914 return this;
5915 }
5926 bitField0_ = (bitField0_ & ~0x00008000);
5927 initialBasis_ = 2;
5928 onChanged();
5929 return this;
5930 }
5931
5932 private boolean useTransposedMatrix_ = true;
5943 @java.lang.Override
5944 public boolean hasUseTransposedMatrix() {
5945 return ((bitField0_ & 0x00010000) != 0);
5946 }
5957 @java.lang.Override
5958 public boolean getUseTransposedMatrix() {
5959 return useTransposedMatrix_;
5960 }
5972 public Builder setUseTransposedMatrix(boolean value) {
5973
5974 useTransposedMatrix_ = value;
5975 bitField0_ |= 0x00010000;
5976 onChanged();
5977 return this;
5978 }
5990 bitField0_ = (bitField0_ & ~0x00010000);
5991 useTransposedMatrix_ = true;
5992 onChanged();
5993 return this;
5994 }
5995
5996 private int basisRefactorizationPeriod_ = 64;
6007 @java.lang.Override
6009 return ((bitField0_ & 0x00020000) != 0);
6010 }
6021 @java.lang.Override
6023 return basisRefactorizationPeriod_;
6024 }
6037
6038 basisRefactorizationPeriod_ = value;
6039 bitField0_ |= 0x00020000;
6040 onChanged();
6041 return this;
6042 }
6054 bitField0_ = (bitField0_ & ~0x00020000);
6055 basisRefactorizationPeriod_ = 64;
6056 onChanged();
6057 return this;
6058 }
6059
6060 private boolean dynamicallyAdjustRefactorizationPeriod_ = true;
6073 @java.lang.Override
6075 return ((bitField0_ & 0x00040000) != 0);
6076 }
6089 @java.lang.Override
6091 return dynamicallyAdjustRefactorizationPeriod_;
6092 }
6107
6108 dynamicallyAdjustRefactorizationPeriod_ = value;
6109 bitField0_ |= 0x00040000;
6110 onChanged();
6111 return this;
6112 }
6126 bitField0_ = (bitField0_ & ~0x00040000);
6127 dynamicallyAdjustRefactorizationPeriod_ = true;
6128 onChanged();
6129 return this;
6130 }
6131
6132 private int solveDualProblem_ = 2;
6143 @java.lang.Override public boolean hasSolveDualProblem() {
6144 return ((bitField0_ & 0x00080000) != 0);
6145 }
6156 @java.lang.Override
6158 com.google.ortools.glop.GlopParameters.SolverBehavior result = com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(solveDualProblem_);
6159 return result == null ? com.google.ortools.glop.GlopParameters.SolverBehavior.LET_SOLVER_DECIDE : result;
6160 }
6172 public Builder setSolveDualProblem(com.google.ortools.glop.GlopParameters.SolverBehavior value) {
6173 if (value == null) {
6174 throw new NullPointerException();
6175 }
6176 bitField0_ |= 0x00080000;
6177 solveDualProblem_ = value.getNumber();
6178 onChanged();
6179 return this;
6180 }
6192 bitField0_ = (bitField0_ & ~0x00080000);
6193 solveDualProblem_ = 2;
6194 onChanged();
6195 return this;
6196 }
6197
6198 private double dualizerThreshold_ = 1.5D;
6209 @java.lang.Override
6210 public boolean hasDualizerThreshold() {
6211 return ((bitField0_ & 0x00100000) != 0);
6212 }
6223 @java.lang.Override
6224 public double getDualizerThreshold() {
6225 return dualizerThreshold_;
6226 }
6238 public Builder setDualizerThreshold(double value) {
6239
6240 dualizerThreshold_ = value;
6241 bitField0_ |= 0x00100000;
6242 onChanged();
6243 return this;
6244 }
6256 bitField0_ = (bitField0_ & ~0x00100000);
6257 dualizerThreshold_ = 1.5D;
6258 onChanged();
6259 return this;
6260 }
6261
6262 private double solutionFeasibilityTolerance_ = 1e-06D;
6278 @java.lang.Override
6280 return ((bitField0_ & 0x00200000) != 0);
6281 }
6297 @java.lang.Override
6299 return solutionFeasibilityTolerance_;
6300 }
6318
6319 solutionFeasibilityTolerance_ = value;
6320 bitField0_ |= 0x00200000;
6321 onChanged();
6322 return this;
6323 }
6340 bitField0_ = (bitField0_ & ~0x00200000);
6341 solutionFeasibilityTolerance_ = 1e-06D;
6342 onChanged();
6343 return this;
6344 }
6345
6346 private boolean provideStrongOptimalGuarantee_ = true;
6372 @java.lang.Override
6374 return ((bitField0_ & 0x00400000) != 0);
6375 }
6401 @java.lang.Override
6403 return provideStrongOptimalGuarantee_;
6404 }
6432
6433 provideStrongOptimalGuarantee_ = value;
6434 bitField0_ |= 0x00400000;
6435 onChanged();
6436 return this;
6437 }
6464 bitField0_ = (bitField0_ & ~0x00400000);
6465 provideStrongOptimalGuarantee_ = true;
6466 onChanged();
6467 return this;
6468 }
6469
6470 private boolean changeStatusToImprecise_ = true;
6480 @java.lang.Override
6482 return ((bitField0_ & 0x00800000) != 0);
6483 }
6493 @java.lang.Override
6495 return changeStatusToImprecise_;
6496 }
6507 public Builder setChangeStatusToImprecise(boolean value) {
6508
6509 changeStatusToImprecise_ = value;
6510 bitField0_ |= 0x00800000;
6511 onChanged();
6512 return this;
6513 }
6524 bitField0_ = (bitField0_ & ~0x00800000);
6525 changeStatusToImprecise_ = true;
6526 onChanged();
6527 return this;
6528 }
6529
6530 private double maxNumberOfReoptimizations_ = 40D;
6542 @java.lang.Override
6544 return ((bitField0_ & 0x01000000) != 0);
6545 }
6557 @java.lang.Override
6559 return maxNumberOfReoptimizations_;
6560 }
6574
6575 maxNumberOfReoptimizations_ = value;
6576 bitField0_ |= 0x01000000;
6577 onChanged();
6578 return this;
6579 }
6592 bitField0_ = (bitField0_ & ~0x01000000);
6593 maxNumberOfReoptimizations_ = 40D;
6594 onChanged();
6595 return this;
6596 }
6597
6598 private double luFactorizationPivotThreshold_ = 0.01D;
6610 @java.lang.Override
6612 return ((bitField0_ & 0x02000000) != 0);
6613 }
6625 @java.lang.Override
6627 return luFactorizationPivotThreshold_;
6628 }
6642
6643 luFactorizationPivotThreshold_ = value;
6644 bitField0_ |= 0x02000000;
6645 onChanged();
6646 return this;
6647 }
6660 bitField0_ = (bitField0_ & ~0x02000000);
6661 luFactorizationPivotThreshold_ = 0.01D;
6662 onChanged();
6663 return this;
6664 }
6665
6666 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
6675 @java.lang.Override
6676 public boolean hasMaxTimeInSeconds() {
6677 return ((bitField0_ & 0x04000000) != 0);
6678 }
6687 @java.lang.Override
6688 public double getMaxTimeInSeconds() {
6689 return maxTimeInSeconds_;
6690 }
6700 public Builder setMaxTimeInSeconds(double value) {
6701
6702 maxTimeInSeconds_ = value;
6703 bitField0_ |= 0x04000000;
6704 onChanged();
6705 return this;
6706 }
6716 bitField0_ = (bitField0_ & ~0x04000000);
6717 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
6718 onChanged();
6719 return this;
6720 }
6721
6722 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
6735 @java.lang.Override
6736 public boolean hasMaxDeterministicTime() {
6737 return ((bitField0_ & 0x08000000) != 0);
6738 }
6751 @java.lang.Override
6752 public double getMaxDeterministicTime() {
6753 return maxDeterministicTime_;
6754 }
6768 public Builder setMaxDeterministicTime(double value) {
6769
6770 maxDeterministicTime_ = value;
6771 bitField0_ |= 0x08000000;
6772 onChanged();
6773 return this;
6774 }
6788 bitField0_ = (bitField0_ & ~0x08000000);
6789 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
6790 onChanged();
6791 return this;
6792 }
6793
6794 private long maxNumberOfIterations_ = -1L;
6804 @java.lang.Override
6805 public boolean hasMaxNumberOfIterations() {
6806 return ((bitField0_ & 0x10000000) != 0);
6807 }
6817 @java.lang.Override
6819 return maxNumberOfIterations_;
6820 }
6832
6833 maxNumberOfIterations_ = value;
6834 bitField0_ |= 0x10000000;
6835 onChanged();
6836 return this;
6837 }
6848 bitField0_ = (bitField0_ & ~0x10000000);
6849 maxNumberOfIterations_ = -1L;
6850 onChanged();
6851 return this;
6852 }
6853
6854 private int markowitzZlatevParameter_ = 3;
6864 @java.lang.Override
6866 return ((bitField0_ & 0x20000000) != 0);
6867 }
6877 @java.lang.Override
6879 return markowitzZlatevParameter_;
6880 }
6892
6893 markowitzZlatevParameter_ = value;
6894 bitField0_ |= 0x20000000;
6895 onChanged();
6896 return this;
6897 }
6908 bitField0_ = (bitField0_ & ~0x20000000);
6909 markowitzZlatevParameter_ = 3;
6910 onChanged();
6911 return this;
6912 }
6913
6914 private double markowitzSingularityThreshold_ = 1e-15D;
6926 @java.lang.Override
6928 return ((bitField0_ & 0x40000000) != 0);
6929 }
6941 @java.lang.Override
6943 return markowitzSingularityThreshold_;
6944 }
6958
6959 markowitzSingularityThreshold_ = value;
6960 bitField0_ |= 0x40000000;
6961 onChanged();
6962 return this;
6963 }
6976 bitField0_ = (bitField0_ & ~0x40000000);
6977 markowitzSingularityThreshold_ = 1e-15D;
6978 onChanged();
6979 return this;
6980 }
6981
6982 private boolean useDualSimplex_ ;
6991 @java.lang.Override
6992 public boolean hasUseDualSimplex() {
6993 return ((bitField0_ & 0x80000000) != 0);
6994 }
7003 @java.lang.Override
7004 public boolean getUseDualSimplex() {
7005 return useDualSimplex_;
7006 }
7016 public Builder setUseDualSimplex(boolean value) {
7017
7018 useDualSimplex_ = value;
7019 bitField0_ |= 0x80000000;
7020 onChanged();
7021 return this;
7022 }
7032 bitField0_ = (bitField0_ & ~0x80000000);
7033 useDualSimplex_ = false;
7034 onChanged();
7035 return this;
7036 }
7037
7038 private boolean allowSimplexAlgorithmChange_ ;
7050 @java.lang.Override
7052 return ((bitField1_ & 0x00000001) != 0);
7053 }
7065 @java.lang.Override
7067 return allowSimplexAlgorithmChange_;
7068 }
7082
7083 allowSimplexAlgorithmChange_ = value;
7084 bitField1_ |= 0x00000001;
7085 onChanged();
7086 return this;
7087 }
7100 bitField1_ = (bitField1_ & ~0x00000001);
7101 allowSimplexAlgorithmChange_ = false;
7102 onChanged();
7103 return this;
7104 }
7105
7106 private int devexWeightsResetPeriod_ = 150;
7115 @java.lang.Override
7117 return ((bitField1_ & 0x00000002) != 0);
7118 }
7127 @java.lang.Override
7129 return devexWeightsResetPeriod_;
7130 }
7141
7142 devexWeightsResetPeriod_ = value;
7143 bitField1_ |= 0x00000002;
7144 onChanged();
7145 return this;
7146 }
7156 bitField1_ = (bitField1_ & ~0x00000002);
7157 devexWeightsResetPeriod_ = 150;
7158 onChanged();
7159 return this;
7160 }
7161
7162 private boolean usePreprocessing_ = true;
7171 @java.lang.Override
7172 public boolean hasUsePreprocessing() {
7173 return ((bitField1_ & 0x00000004) != 0);
7174 }
7183 @java.lang.Override
7184 public boolean getUsePreprocessing() {
7185 return usePreprocessing_;
7186 }
7196 public Builder setUsePreprocessing(boolean value) {
7197
7198 usePreprocessing_ = value;
7199 bitField1_ |= 0x00000004;
7200 onChanged();
7201 return this;
7202 }
7212 bitField1_ = (bitField1_ & ~0x00000004);
7213 usePreprocessing_ = true;
7214 onChanged();
7215 return this;
7216 }
7217
7218 private boolean useMiddleProductFormUpdate_ = true;
7233 @java.lang.Override
7235 return ((bitField1_ & 0x00000008) != 0);
7236 }
7251 @java.lang.Override
7253 return useMiddleProductFormUpdate_;
7254 }
7271
7272 useMiddleProductFormUpdate_ = value;
7273 bitField1_ |= 0x00000008;
7274 onChanged();
7275 return this;
7276 }
7292 bitField1_ = (bitField1_ & ~0x00000008);
7293 useMiddleProductFormUpdate_ = true;
7294 onChanged();
7295 return this;
7296 }
7297
7298 private boolean initializeDevexWithColumnNorms_ = true;
7308 @java.lang.Override
7310 return ((bitField1_ & 0x00000010) != 0);
7311 }
7321 @java.lang.Override
7323 return initializeDevexWithColumnNorms_;
7324 }
7336
7337 initializeDevexWithColumnNorms_ = value;
7338 bitField1_ |= 0x00000010;
7339 onChanged();
7340 return this;
7341 }
7352 bitField1_ = (bitField1_ & ~0x00000010);
7353 initializeDevexWithColumnNorms_ = true;
7354 onChanged();
7355 return this;
7356 }
7357
7358 private boolean exploitSingletonColumnInInitialBasis_ = true;
7368 @java.lang.Override
7370 return ((bitField1_ & 0x00000020) != 0);
7371 }
7381 @java.lang.Override
7383 return exploitSingletonColumnInInitialBasis_;
7384 }
7396
7397 exploitSingletonColumnInInitialBasis_ = value;
7398 bitField1_ |= 0x00000020;
7399 onChanged();
7400 return this;
7401 }
7412 bitField1_ = (bitField1_ & ~0x00000020);
7413 exploitSingletonColumnInInitialBasis_ = true;
7414 onChanged();
7415 return this;
7416 }
7417
7418 private double dualSmallPivotThreshold_ = 0.0001D;
7429 @java.lang.Override
7431 return ((bitField1_ & 0x00000040) != 0);
7432 }
7443 @java.lang.Override
7445 return dualSmallPivotThreshold_;
7446 }
7459
7460 dualSmallPivotThreshold_ = value;
7461 bitField1_ |= 0x00000040;
7462 onChanged();
7463 return this;
7464 }
7476 bitField1_ = (bitField1_ & ~0x00000040);
7477 dualSmallPivotThreshold_ = 0.0001D;
7478 onChanged();
7479 return this;
7480 }
7481
7482 private double preprocessorZeroTolerance_ = 1e-09D;
7496 @java.lang.Override
7498 return ((bitField1_ & 0x00000080) != 0);
7499 }
7513 @java.lang.Override
7515 return preprocessorZeroTolerance_;
7516 }
7532
7533 preprocessorZeroTolerance_ = value;
7534 bitField1_ |= 0x00000080;
7535 onChanged();
7536 return this;
7537 }
7552 bitField1_ = (bitField1_ & ~0x00000080);
7553 preprocessorZeroTolerance_ = 1e-09D;
7554 onChanged();
7555 return this;
7556 }
7557
7558 private double objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
7575 @java.lang.Override
7576 public boolean hasObjectiveLowerLimit() {
7577 return ((bitField1_ & 0x00000100) != 0);
7578 }
7595 @java.lang.Override
7596 public double getObjectiveLowerLimit() {
7597 return objectiveLowerLimit_;
7598 }
7616 public Builder setObjectiveLowerLimit(double value) {
7617
7618 objectiveLowerLimit_ = value;
7619 bitField1_ |= 0x00000100;
7620 onChanged();
7621 return this;
7622 }
7640 bitField1_ = (bitField1_ & ~0x00000100);
7641 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
7642 onChanged();
7643 return this;
7644 }
7645
7646 private double objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
7651 @java.lang.Override
7652 public boolean hasObjectiveUpperLimit() {
7653 return ((bitField1_ & 0x00000200) != 0);
7654 }
7659 @java.lang.Override
7660 public double getObjectiveUpperLimit() {
7661 return objectiveUpperLimit_;
7662 }
7668 public Builder setObjectiveUpperLimit(double value) {
7669
7670 objectiveUpperLimit_ = value;
7671 bitField1_ |= 0x00000200;
7672 onChanged();
7673 return this;
7674 }
7680 bitField1_ = (bitField1_ & ~0x00000200);
7681 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
7682 onChanged();
7683 return this;
7684 }
7685
7686 private double degenerateMinistepFactor_ = 0.01D;
7712 @java.lang.Override
7714 return ((bitField1_ & 0x00000400) != 0);
7715 }
7741 @java.lang.Override
7743 return degenerateMinistepFactor_;
7744 }
7772
7773 degenerateMinistepFactor_ = value;
7774 bitField1_ |= 0x00000400;
7775 onChanged();
7776 return this;
7777 }
7804 bitField1_ = (bitField1_ & ~0x00000400);
7805 degenerateMinistepFactor_ = 0.01D;
7806 onChanged();
7807 return this;
7808 }
7809
7810 private int randomSeed_ = 1;
7833 @java.lang.Override
7834 public boolean hasRandomSeed() {
7835 return ((bitField1_ & 0x00000800) != 0);
7836 }
7859 @java.lang.Override
7860 public int getRandomSeed() {
7861 return randomSeed_;
7862 }
7886 public Builder setRandomSeed(int value) {
7887
7888 randomSeed_ = value;
7889 bitField1_ |= 0x00000800;
7890 onChanged();
7891 return this;
7892 }
7916 bitField1_ = (bitField1_ & ~0x00000800);
7917 randomSeed_ = 1;
7918 onChanged();
7919 return this;
7920 }
7921
7922 private int numOmpThreads_ = 1;
7932 @java.lang.Override
7933 public boolean hasNumOmpThreads() {
7934 return ((bitField1_ & 0x00001000) != 0);
7935 }
7945 @java.lang.Override
7946 public int getNumOmpThreads() {
7947 return numOmpThreads_;
7948 }
7959 public Builder setNumOmpThreads(int value) {
7960
7961 numOmpThreads_ = value;
7962 bitField1_ |= 0x00001000;
7963 onChanged();
7964 return this;
7965 }
7976 bitField1_ = (bitField1_ & ~0x00001000);
7977 numOmpThreads_ = 1;
7978 onChanged();
7979 return this;
7980 }
7981
7982 private boolean perturbCostsInDualSimplex_ ;
7994 @java.lang.Override
7996 return ((bitField1_ & 0x00002000) != 0);
7997 }
8009 @java.lang.Override
8011 return perturbCostsInDualSimplex_;
8012 }
8026
8027 perturbCostsInDualSimplex_ = value;
8028 bitField1_ |= 0x00002000;
8029 onChanged();
8030 return this;
8031 }
8044 bitField1_ = (bitField1_ & ~0x00002000);
8045 perturbCostsInDualSimplex_ = false;
8046 onChanged();
8047 return this;
8048 }
8049
8050 private boolean useDedicatedDualFeasibilityAlgorithm_ = true;
8066 @java.lang.Override
8068 return ((bitField1_ & 0x00004000) != 0);
8069 }
8085 @java.lang.Override
8087 return useDedicatedDualFeasibilityAlgorithm_;
8088 }
8106
8107 useDedicatedDualFeasibilityAlgorithm_ = value;
8108 bitField1_ |= 0x00004000;
8109 onChanged();
8110 return this;
8111 }
8128 bitField1_ = (bitField1_ & ~0x00004000);
8129 useDedicatedDualFeasibilityAlgorithm_ = true;
8130 onChanged();
8131 return this;
8132 }
8133
8134 private double relativeCostPerturbation_ = 1e-05D;
8146 @java.lang.Override
8148 return ((bitField1_ & 0x00008000) != 0);
8149 }
8161 @java.lang.Override
8163 return relativeCostPerturbation_;
8164 }
8178
8179 relativeCostPerturbation_ = value;
8180 bitField1_ |= 0x00008000;
8181 onChanged();
8182 return this;
8183 }
8196 bitField1_ = (bitField1_ & ~0x00008000);
8197 relativeCostPerturbation_ = 1e-05D;
8198 onChanged();
8199 return this;
8200 }
8201
8202 private double relativeMaxCostPerturbation_ = 1e-07D;
8207 @java.lang.Override
8209 return ((bitField1_ & 0x00010000) != 0);
8210 }
8215 @java.lang.Override
8217 return relativeMaxCostPerturbation_;
8218 }
8225
8226 relativeMaxCostPerturbation_ = value;
8227 bitField1_ |= 0x00010000;
8228 onChanged();
8229 return this;
8230 }
8236 bitField1_ = (bitField1_ & ~0x00010000);
8237 relativeMaxCostPerturbation_ = 1e-07D;
8238 onChanged();
8239 return this;
8240 }
8241
8242 private double initialConditionNumberThreshold_ = 1e+50D;
8253 @java.lang.Override
8255 return ((bitField1_ & 0x00020000) != 0);
8256 }
8267 @java.lang.Override
8269 return initialConditionNumberThreshold_;
8270 }
8283
8284 initialConditionNumberThreshold_ = value;
8285 bitField1_ |= 0x00020000;
8286 onChanged();
8287 return this;
8288 }
8300 bitField1_ = (bitField1_ & ~0x00020000);
8301 initialConditionNumberThreshold_ = 1e+50D;
8302 onChanged();
8303 return this;
8304 }
8305
8306 private boolean logSearchProgress_ ;
8317 @java.lang.Override
8318 public boolean hasLogSearchProgress() {
8319 return ((bitField1_ & 0x00040000) != 0);
8320 }
8331 @java.lang.Override
8332 public boolean getLogSearchProgress() {
8333 return logSearchProgress_;
8334 }
8346 public Builder setLogSearchProgress(boolean value) {
8347
8348 logSearchProgress_ = value;
8349 bitField1_ |= 0x00040000;
8350 onChanged();
8351 return this;
8352 }
8364 bitField1_ = (bitField1_ & ~0x00040000);
8365 logSearchProgress_ = false;
8366 onChanged();
8367 return this;
8368 }
8369
8370 private boolean logToStdout_ = true;
8379 @java.lang.Override
8380 public boolean hasLogToStdout() {
8381 return ((bitField1_ & 0x00080000) != 0);
8382 }
8391 @java.lang.Override
8392 public boolean getLogToStdout() {
8393 return logToStdout_;
8394 }
8404 public Builder setLogToStdout(boolean value) {
8405
8406 logToStdout_ = value;
8407 bitField1_ |= 0x00080000;
8408 onChanged();
8409 return this;
8410 }
8420 bitField1_ = (bitField1_ & ~0x00080000);
8421 logToStdout_ = true;
8422 onChanged();
8423 return this;
8424 }
8425
8426 private double crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
8449 @java.lang.Override
8451 return ((bitField1_ & 0x00100000) != 0);
8452 }
8475 @java.lang.Override
8477 return crossoverBoundSnappingDistance_;
8478 }
8503
8504 crossoverBoundSnappingDistance_ = value;
8505 bitField1_ |= 0x00100000;
8506 onChanged();
8507 return this;
8508 }
8532 bitField1_ = (bitField1_ & ~0x00100000);
8533 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
8534 onChanged();
8535 return this;
8536 }
8537
8538 private boolean pushToVertex_ = true;
8552 @java.lang.Override
8553 public boolean hasPushToVertex() {
8554 return ((bitField1_ & 0x00200000) != 0);
8555 }
8569 @java.lang.Override
8570 public boolean getPushToVertex() {
8571 return pushToVertex_;
8572 }
8587 public Builder setPushToVertex(boolean value) {
8588
8589 pushToVertex_ = value;
8590 bitField1_ |= 0x00200000;
8591 onChanged();
8592 return this;
8593 }
8608 bitField1_ = (bitField1_ & ~0x00200000);
8609 pushToVertex_ = true;
8610 onChanged();
8611 return this;
8612 }
8613
8614 private boolean useImpliedFreePreprocessor_ = true;
8623 @java.lang.Override
8625 return ((bitField1_ & 0x00400000) != 0);
8626 }
8635 @java.lang.Override
8637 return useImpliedFreePreprocessor_;
8638 }
8649
8650 useImpliedFreePreprocessor_ = value;
8651 bitField1_ |= 0x00400000;
8652 onChanged();
8653 return this;
8654 }
8664 bitField1_ = (bitField1_ & ~0x00400000);
8665 useImpliedFreePreprocessor_ = true;
8666 onChanged();
8667 return this;
8668 }
8669
8670 private double maxValidMagnitude_ = 1e+30D;
8684 @java.lang.Override
8685 public boolean hasMaxValidMagnitude() {
8686 return ((bitField1_ & 0x00800000) != 0);
8687 }
8701 @java.lang.Override
8702 public double getMaxValidMagnitude() {
8703 return maxValidMagnitude_;
8704 }
8719 public Builder setMaxValidMagnitude(double value) {
8720
8721 maxValidMagnitude_ = value;
8722 bitField1_ |= 0x00800000;
8723 onChanged();
8724 return this;
8725 }
8740 bitField1_ = (bitField1_ & ~0x00800000);
8741 maxValidMagnitude_ = 1e+30D;
8742 onChanged();
8743 return this;
8744 }
8745
8746 private double dropMagnitude_ = 1e-30D;
8758 @java.lang.Override
8759 public boolean hasDropMagnitude() {
8760 return ((bitField1_ & 0x01000000) != 0);
8761 }
8773 @java.lang.Override
8774 public double getDropMagnitude() {
8775 return dropMagnitude_;
8776 }
8789 public Builder setDropMagnitude(double value) {
8790
8791 dropMagnitude_ = value;
8792 bitField1_ |= 0x01000000;
8793 onChanged();
8794 return this;
8795 }
8808 bitField1_ = (bitField1_ & ~0x01000000);
8809 dropMagnitude_ = 1e-30D;
8810 onChanged();
8811 return this;
8812 }
8813
8814 private boolean dualPricePrioritizeNorm_ ;
8824 @java.lang.Override
8826 return ((bitField1_ & 0x02000000) != 0);
8827 }
8837 @java.lang.Override
8839 return dualPricePrioritizeNorm_;
8840 }
8851 public Builder setDualPricePrioritizeNorm(boolean value) {
8852
8853 dualPricePrioritizeNorm_ = value;
8854 bitField1_ |= 0x02000000;
8855 onChanged();
8856 return this;
8857 }
8868 bitField1_ = (bitField1_ & ~0x02000000);
8869 dualPricePrioritizeNorm_ = false;
8870 onChanged();
8871 return this;
8872 }
8873 @java.lang.Override
8875 final com.google.protobuf.UnknownFieldSet unknownFields) {
8876 return super.setUnknownFields(unknownFields);
8877 }
8878
8879 @java.lang.Override
8881 final com.google.protobuf.UnknownFieldSet unknownFields) {
8882 return super.mergeUnknownFields(unknownFields);
8883 }
8884
8885
8886 // @@protoc_insertion_point(builder_scope:operations_research.glop.GlopParameters)
8887 }
8888
8889 // @@protoc_insertion_point(class_scope:operations_research.glop.GlopParameters)
8890 private static final com.google.ortools.glop.GlopParameters DEFAULT_INSTANCE;
8891 static {
8892 DEFAULT_INSTANCE = new com.google.ortools.glop.GlopParameters();
8893 }
8894
8896 return DEFAULT_INSTANCE;
8897 }
8898
8899 @java.lang.Deprecated public static final com.google.protobuf.Parser<GlopParameters>
8900 PARSER = new com.google.protobuf.AbstractParser<GlopParameters>() {
8901 @java.lang.Override
8902 public GlopParameters parsePartialFrom(
8903 com.google.protobuf.CodedInputStream input,
8904 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8905 throws com.google.protobuf.InvalidProtocolBufferException {
8906 Builder builder = newBuilder();
8907 try {
8908 builder.mergeFrom(input, extensionRegistry);
8909 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8910 throw e.setUnfinishedMessage(builder.buildPartial());
8911 } catch (com.google.protobuf.UninitializedMessageException e) {
8912 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
8913 } catch (java.io.IOException e) {
8914 throw new com.google.protobuf.InvalidProtocolBufferException(e)
8915 .setUnfinishedMessage(builder.buildPartial());
8916 }
8917 return builder.buildPartial();
8918 }
8919 };
8920
8921 public static com.google.protobuf.Parser<GlopParameters> parser() {
8922 return PARSER;
8923 }
8924
8925 @java.lang.Override
8926 public com.google.protobuf.Parser<GlopParameters> getParserForType() {
8927 return PARSER;
8928 }
8929
8930 @java.lang.Override
8932 return DEFAULT_INSTANCE;
8933 }
8934
8935}
8936
final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
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()
Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
com.google.ortools.glop.GlopParameters.InitialBasisHeuristic getInitialBasis()
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder mergeFrom(com.google.ortools.glop.GlopParameters other)
final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
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)
Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
com.google.ortools.glop.GlopParameters.PricingRule getFeasibilityRule()
Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
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.ortools.glop.GlopParameters buildPartial()
Builder setInitialBasis(com.google.ortools.glop.GlopParameters.InitialBasisHeuristic value)
Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object 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
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()
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
java.lang.Object newInstance(UnusedPrivateParameter unused)
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
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
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
Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
static final int PRIMAL_FEASIBILITY_TOLERANCE_FIELD_NUMBER
static final com.google.protobuf.Parser< GlopParameters > PARSER
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()