Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
Solvers.pb.cs
Go to the documentation of this file.
1// <auto-generated>
2// Generated by the protocol buffer compiler. DO NOT EDIT!
3// source: ortools/pdlp/solvers.proto
4// </auto-generated>
5#pragma warning disable 1591, 0612, 3021, 8981
6#region Designer generated code
7
8using pb = global::Google.Protobuf;
9using pbc = global::Google.Protobuf.Collections;
10using pbr = global::Google.Protobuf.Reflection;
11using scg = global::System.Collections.Generic;
12namespace Google.OrTools.PDLP {
13
15 public static partial class SolversReflection {
16
17 #region Descriptor
19 public static pbr::FileDescriptor Descriptor {
20 get { return descriptor; }
21 }
22 private static pbr::FileDescriptor descriptor;
23
24 static SolversReflection() {
25 byte[] descriptorData = global::System.Convert.FromBase64String(
26 string.Concat(
27 "ChpvcnRvb2xzL3BkbHAvc29sdmVycy5wcm90bxIYb3BlcmF0aW9uc19yZXNl",
28 "YXJjaC5wZGxwGh1vcnRvb2xzL2dsb3AvcGFyYW1ldGVycy5wcm90byKgCAoT",
29 "VGVybWluYXRpb25Dcml0ZXJpYRJVCg9vcHRpbWFsaXR5X25vcm0YASABKA4y",
30 "KC5vcGVyYXRpb25zX3Jlc2VhcmNoLnBkbHAuT3B0aW1hbGl0eU5vcm06Ek9Q",
31 "VElNQUxJVFlfTk9STV9MMhJsChpzaW1wbGVfb3B0aW1hbGl0eV9jcml0ZXJp",
32 "YRgJIAEoCzJGLm9wZXJhdGlvbnNfcmVzZWFyY2gucGRscC5UZXJtaW5hdGlv",
33 "bkNyaXRlcmlhLlNpbXBsZU9wdGltYWxpdHlDcml0ZXJpYUgAEnAKHGRldGFp",
34 "bGVkX29wdGltYWxpdHlfY3JpdGVyaWEYCiABKAsySC5vcGVyYXRpb25zX3Jl",
35 "c2VhcmNoLnBkbHAuVGVybWluYXRpb25Dcml0ZXJpYS5EZXRhaWxlZE9wdGlt",
36 "YWxpdHlDcml0ZXJpYUgAEicKFGVwc19vcHRpbWFsX2Fic29sdXRlGAIgASgB",
37 "OgUxZS0wNkICGAESJwoUZXBzX29wdGltYWxfcmVsYXRpdmUYAyABKAE6BTFl",
38 "LTA2QgIYARIkChVlcHNfcHJpbWFsX2luZmVhc2libGUYBCABKAE6BTFlLTA4",
39 "EiIKE2Vwc19kdWFsX2luZmVhc2libGUYBSABKAE6BTFlLTA4EhsKDnRpbWVf",
40 "c2VjX2xpbWl0GAYgASgBOgNpbmYSIwoPaXRlcmF0aW9uX2xpbWl0GAcgASgF",
41 "OgoyMTQ3NDgzNjQ3EiIKFWtrdF9tYXRyaXhfcGFzc19saW1pdBgIIAEoAToD",
42 "aW5mGmQKGFNpbXBsZU9wdGltYWxpdHlDcml0ZXJpYRIjChRlcHNfb3B0aW1h",
43 "bF9hYnNvbHV0ZRgBIAEoAToFMWUtMDYSIwoUZXBzX29wdGltYWxfcmVsYXRp",
44 "dmUYAiABKAE6BTFlLTA2GtICChpEZXRhaWxlZE9wdGltYWxpdHlDcml0ZXJp",
45 "YRIzCiRlcHNfb3B0aW1hbF9wcmltYWxfcmVzaWR1YWxfYWJzb2x1dGUYASAB",
46 "KAE6BTFlLTA2EjMKJGVwc19vcHRpbWFsX3ByaW1hbF9yZXNpZHVhbF9yZWxh",
47 "dGl2ZRgCIAEoAToFMWUtMDYSMQoiZXBzX29wdGltYWxfZHVhbF9yZXNpZHVh",
48 "bF9hYnNvbHV0ZRgDIAEoAToFMWUtMDYSMQoiZXBzX29wdGltYWxfZHVhbF9y",
49 "ZXNpZHVhbF9yZWxhdGl2ZRgEIAEoAToFMWUtMDYSMQoiZXBzX29wdGltYWxf",
50 "b2JqZWN0aXZlX2dhcF9hYnNvbHV0ZRgFIAEoAToFMWUtMDYSMQoiZXBzX29w",
51 "dGltYWxfb2JqZWN0aXZlX2dhcF9yZWxhdGl2ZRgGIAEoAToFMWUtMDZCFQoT",
52 "b3B0aW1hbGl0eV9jcml0ZXJpYSJtChhBZGFwdGl2ZUxpbmVzZWFyY2hQYXJh",
53 "bXMSKQocc3RlcF9zaXplX3JlZHVjdGlvbl9leHBvbmVudBgBIAEoAToDMC4z",
54 "EiYKGXN0ZXBfc2l6ZV9ncm93dGhfZXhwb25lbnQYAiABKAE6AzAuNiKQAQoS",
55 "TWFsaXRza3lQb2NrUGFyYW1zEikKHHN0ZXBfc2l6ZV9kb3duc2NhbGluZ19m",
56 "YWN0b3IYASABKAE6AzAuNxIrCh1saW5lc2VhcmNoX2NvbnRyYWN0aW9uX2Zh",
57 "Y3RvchgCIAEoAToEMC45ORIiChdzdGVwX3NpemVfaW50ZXJwb2xhdGlvbhgD",
58 "IAEoAToBMSKwEAoeUHJpbWFsRHVhbEh5YnJpZEdyYWRpZW50UGFyYW1zEksK",
59 "FHRlcm1pbmF0aW9uX2NyaXRlcmlhGAEgASgLMi0ub3BlcmF0aW9uc19yZXNl",
60 "YXJjaC5wZGxwLlRlcm1pbmF0aW9uQ3JpdGVyaWESFgoLbnVtX3RocmVhZHMY",
61 "AiABKAU6ATESFQoKbnVtX3NoYXJkcxgbIAEoBToBMBJhCg5zY2hlZHVsZXJf",
62 "dHlwZRggIAEoDjInLm9wZXJhdGlvbnNfcmVzZWFyY2gucGRscC5TY2hlZHVs",
63 "ZXJUeXBlOiBTQ0hFRFVMRVJfVFlQRV9HT09HTEVfVEhSRUFEUE9PTBIeChZy",
64 "ZWNvcmRfaXRlcmF0aW9uX3N0YXRzGAMgASgIEhoKD3ZlcmJvc2l0eV9sZXZl",
65 "bBgaIAEoBToBMBIfChRsb2dfaW50ZXJ2YWxfc2Vjb25kcxgfIAEoAToBMBIl",
66 "ChltYWpvcl9pdGVyYXRpb25fZnJlcXVlbmN5GAQgASgFOgI2NBInCht0ZXJt",
67 "aW5hdGlvbl9jaGVja19mcmVxdWVuY3kYBSABKAU6AjY0EnYKEHJlc3RhcnRf",
68 "c3RyYXRlZ3kYBiABKA4ySC5vcGVyYXRpb25zX3Jlc2VhcmNoLnBkbHAuUHJp",
69 "bWFsRHVhbEh5YnJpZEdyYWRpZW50UGFyYW1zLlJlc3RhcnRTdHJhdGVneToS",
70 "QURBUFRJVkVfSEVVUklTVElDEisKHnByaW1hbF93ZWlnaHRfdXBkYXRlX3Nt",
71 "b290aGluZxgHIAEoAToDMC41Eh0KFWluaXRpYWxfcHJpbWFsX3dlaWdodBgI",
72 "IAEoARJiChBwcmVzb2x2ZV9vcHRpb25zGBAgASgLMkgub3BlcmF0aW9uc19y",
73 "ZXNlYXJjaC5wZGxwLlByaW1hbER1YWxIeWJyaWRHcmFkaWVudFBhcmFtcy5Q",
74 "cmVzb2x2ZU9wdGlvbnMSIAoVbF9pbmZfcnVpel9pdGVyYXRpb25zGAkgASgF",
75 "OgE1Eh8KEWwyX25vcm1fcmVzY2FsaW5nGAogASgIOgR0cnVlEi0KIHN1ZmZp",
76 "Y2llbnRfcmVkdWN0aW9uX2Zvcl9yZXN0YXJ0GAsgASgBOgMwLjESLAofbmVj",
77 "ZXNzYXJ5X3JlZHVjdGlvbl9mb3JfcmVzdGFydBgRIAEoAToDMC45EnoKD2xp",
78 "bmVzZWFyY2hfcnVsZRgMIAEoDjJHLm9wZXJhdGlvbnNfcmVzZWFyY2gucGRs",
79 "cC5QcmltYWxEdWFsSHlicmlkR3JhZGllbnRQYXJhbXMuTGluZXNlYXJjaFJ1",
80 "bGU6GEFEQVBUSVZFX0xJTkVTRUFSQ0hfUlVMRRJaCh5hZGFwdGl2ZV9saW5l",
81 "c2VhcmNoX3BhcmFtZXRlcnMYEiABKAsyMi5vcGVyYXRpb25zX3Jlc2VhcmNo",
82 "LnBkbHAuQWRhcHRpdmVMaW5lc2VhcmNoUGFyYW1zEk4KGG1hbGl0c2t5X3Bv",
83 "Y2tfcGFyYW1ldGVycxgTIAEoCzIsLm9wZXJhdGlvbnNfcmVzZWFyY2gucGRs",
84 "cC5NYWxpdHNreVBvY2tQYXJhbXMSJAoZaW5pdGlhbF9zdGVwX3NpemVfc2Nh",
85 "bGluZxgZIAEoAToBMRIjChdyYW5kb21fcHJvamVjdGlvbl9zZWVkcxgcIAMo",
86 "BUICEAESMAojaW5maW5pdGVfY29uc3RyYWludF9ib3VuZF90aHJlc2hvbGQY",
87 "FiABKAE6A2luZhJICjpoYW5kbGVfc29tZV9wcmltYWxfZ3JhZGllbnRzX29u",
88 "X2Zpbml0ZV9ib3VuZHNfYXNfcmVzaWR1YWxzGB0gASgIOgR0cnVlEjIKI3Vz",
89 "ZV9kaWFnb25hbF9xcF90cnVzdF9yZWdpb25fc29sdmVyGBcgASgIOgVmYWxz",
90 "ZRI4CilkaWFnb25hbF9xcF90cnVzdF9yZWdpb25fc29sdmVyX3RvbGVyYW5j",
91 "ZRgYIAEoAToFMWUtMDgSKAoZdXNlX2ZlYXNpYmlsaXR5X3BvbGlzaGluZxge",
92 "IAEoCDoFZmFsc2USPwowYXBwbHlfZmVhc2liaWxpdHlfcG9saXNoaW5nX2Fm",
93 "dGVyX2xpbWl0c19yZWFjaGVkGCEgASgIOgVmYWxzZRJDCjRhcHBseV9mZWFz",
94 "aWJpbGl0eV9wb2xpc2hpbmdfaWZfc29sdmVyX2lzX2ludGVycnVwdGVkGCIg",
95 "ASgIOgVmYWxzZRpmCg9QcmVzb2x2ZU9wdGlvbnMSEAoIdXNlX2dsb3AYASAB",
96 "KAgSQQoPZ2xvcF9wYXJhbWV0ZXJzGAIgASgLMigub3BlcmF0aW9uc19yZXNl",
97 "YXJjaC5nbG9wLkdsb3BQYXJhbWV0ZXJzIpQBCg9SZXN0YXJ0U3RyYXRlZ3kS",
98 "IAocUkVTVEFSVF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEg8KC05PX1JFU1RB",
99 "UlRTEAESGQoVRVZFUllfTUFKT1JfSVRFUkFUSU9OEAISFgoSQURBUFRJVkVf",
100 "SEVVUklTVElDEAMSGwoXQURBUFRJVkVfRElTVEFOQ0VfQkFTRUQQBCKPAQoO",
101 "TGluZXNlYXJjaFJ1bGUSHwobTElORVNFQVJDSF9SVUxFX1VOU1BFQ0lGSUVE",
102 "EAASHAoYQURBUFRJVkVfTElORVNFQVJDSF9SVUxFEAESIQodTUFMSVRTS1lf",
103 "UE9DS19MSU5FU0VBUkNIX1JVTEUQAhIbChdDT05TVEFOVF9TVEVQX1NJWkVf",
104 "UlVMRRADSgQIDRAOSgQIDhAPSgQIDxAQSgQIFBAVSgQIFRAWKo0BCg5PcHRp",
105 "bWFsaXR5Tm9ybRIfChtPUFRJTUFMSVRZX05PUk1fVU5TUEVDSUZJRUQQABIZ",
106 "ChVPUFRJTUFMSVRZX05PUk1fTF9JTkYQARIWChJPUFRJTUFMSVRZX05PUk1f",
107 "TDIQAhInCiNPUFRJTUFMSVRZX05PUk1fTF9JTkZfQ09NUE9ORU5UV0lTRRAD",
108 "KnoKDVNjaGVkdWxlclR5cGUSHgoaU0NIRURVTEVSX1RZUEVfVU5TUEVDSUZJ",
109 "RUQQABIkCiBTQ0hFRFVMRVJfVFlQRV9HT09HTEVfVEhSRUFEUE9PTBABEiMK",
110 "H1NDSEVEVUxFUl9UWVBFX0VJR0VOX1RIUkVBRFBPT0wQA0IxChdjb20uZ29v",
111 "Z2xlLm9ydG9vbHMucGRscFABqgITR29vZ2xlLk9yVG9vbHMuUERMUA=="));
112 descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
113 new pbr::FileDescriptor[] { global::Google.OrTools.Glop.ParametersReflection.Descriptor, },
114 new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.OrTools.PDLP.OptimalityNorm), typeof(global::Google.OrTools.PDLP.SchedulerType), }, null, new pbr::GeneratedClrTypeInfo[] {
115 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.PDLP.TerminationCriteria), global::Google.OrTools.PDLP.TerminationCriteria.Parser, new[]{ "OptimalityNorm", "SimpleOptimalityCriteria", "DetailedOptimalityCriteria", "EpsOptimalAbsolute", "EpsOptimalRelative", "EpsPrimalInfeasible", "EpsDualInfeasible", "TimeSecLimit", "IterationLimit", "KktMatrixPassLimit" }, new[]{ "OptimalityCriteria" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria), global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria.Parser, new[]{ "EpsOptimalAbsolute", "EpsOptimalRelative" }, null, null, null, null),
116 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria), global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria.Parser, new[]{ "EpsOptimalPrimalResidualAbsolute", "EpsOptimalPrimalResidualRelative", "EpsOptimalDualResidualAbsolute", "EpsOptimalDualResidualRelative", "EpsOptimalObjectiveGapAbsolute", "EpsOptimalObjectiveGapRelative" }, null, null, null, null)}),
117 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.PDLP.AdaptiveLinesearchParams), global::Google.OrTools.PDLP.AdaptiveLinesearchParams.Parser, new[]{ "StepSizeReductionExponent", "StepSizeGrowthExponent" }, null, null, null, null),
118 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.PDLP.MalitskyPockParams), global::Google.OrTools.PDLP.MalitskyPockParams.Parser, new[]{ "StepSizeDownscalingFactor", "LinesearchContractionFactor", "StepSizeInterpolation" }, null, null, null, null),
119 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.PDLP.PrimalDualHybridGradientParams), global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Parser, new[]{ "TerminationCriteria", "NumThreads", "NumShards", "SchedulerType", "RecordIterationStats", "VerbosityLevel", "LogIntervalSeconds", "MajorIterationFrequency", "TerminationCheckFrequency", "RestartStrategy", "PrimalWeightUpdateSmoothing", "InitialPrimalWeight", "PresolveOptions", "LInfRuizIterations", "L2NormRescaling", "SufficientReductionForRestart", "NecessaryReductionForRestart", "LinesearchRule", "AdaptiveLinesearchParameters", "MalitskyPockParameters", "InitialStepSizeScaling", "RandomProjectionSeeds", "InfiniteConstraintBoundThreshold", "HandleSomePrimalGradientsOnFiniteBoundsAsResiduals", "UseDiagonalQpTrustRegionSolver", "DiagonalQpTrustRegionSolverTolerance", "UseFeasibilityPolishing", "ApplyFeasibilityPolishingAfterLimitsReached", "ApplyFeasibilityPolishingIfSolverIsInterrupted" }, null, new[]{ typeof(global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.RestartStrategy), typeof(global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.LinesearchRule) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.PresolveOptions), global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.PresolveOptions.Parser, new[]{ "UseGlop", "GlopParameters" }, null, null, null, null)})
120 }));
121 }
122 #endregion
123
124 }
125 #region Enums
126 public enum OptimalityNorm {
127 [pbr::OriginalName("OPTIMALITY_NORM_UNSPECIFIED")] Unspecified = 0,
131 [pbr::OriginalName("OPTIMALITY_NORM_L_INF")] LInf = 1,
135 [pbr::OriginalName("OPTIMALITY_NORM_L2")] L2 = 2,
149 [pbr::OriginalName("OPTIMALITY_NORM_L_INF_COMPONENTWISE")] LInfComponentwise = 3,
150 }
151
155 public enum SchedulerType {
156 [pbr::OriginalName("SCHEDULER_TYPE_UNSPECIFIED")] Unspecified = 0,
160 [pbr::OriginalName("SCHEDULER_TYPE_GOOGLE_THREADPOOL")] GoogleThreadpool = 1,
165 [pbr::OriginalName("SCHEDULER_TYPE_EIGEN_THREADPOOL")] EigenThreadpool = 3,
166 }
167
168 #endregion
169
170 #region Messages
183 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
184 public sealed partial class TerminationCriteria : pb::IMessage<TerminationCriteria>
185 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
186 , pb::IBufferMessage
187 #endif
188 {
189 private static readonly pb::MessageParser<TerminationCriteria> _parser = new pb::MessageParser<TerminationCriteria>(() => new TerminationCriteria());
190 private pb::UnknownFieldSet _unknownFields;
191 private int _hasBits0;
192 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
193 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
194 public static pb::MessageParser<TerminationCriteria> Parser { get { return _parser; } }
195
196 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
197 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
198 public static pbr::MessageDescriptor Descriptor {
199 get { return global::Google.OrTools.PDLP.SolversReflection.Descriptor.MessageTypes[0]; }
200 }
201
202 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
203 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
204 pbr::MessageDescriptor pb::IMessage.Descriptor {
205 get { return Descriptor; }
206 }
207
208 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
209 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
211 OnConstruction();
212 }
213
214 partial void OnConstruction();
215
216 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
217 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
219 _hasBits0 = other._hasBits0;
220 optimalityNorm_ = other.optimalityNorm_;
221 epsOptimalAbsolute_ = other.epsOptimalAbsolute_;
222 epsOptimalRelative_ = other.epsOptimalRelative_;
223 epsPrimalInfeasible_ = other.epsPrimalInfeasible_;
224 epsDualInfeasible_ = other.epsDualInfeasible_;
225 timeSecLimit_ = other.timeSecLimit_;
226 iterationLimit_ = other.iterationLimit_;
227 kktMatrixPassLimit_ = other.kktMatrixPassLimit_;
228 switch (other.OptimalityCriteriaCase) {
229 case OptimalityCriteriaOneofCase.SimpleOptimalityCriteria:
230 SimpleOptimalityCriteria = other.SimpleOptimalityCriteria.Clone();
231 break;
232 case OptimalityCriteriaOneofCase.DetailedOptimalityCriteria:
233 DetailedOptimalityCriteria = other.DetailedOptimalityCriteria.Clone();
234 break;
235 }
236
237 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
238 }
239
240 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
241 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
243 return new TerminationCriteria(this);
244 }
245
247 public const int OptimalityNormFieldNumber = 1;
248 private readonly static global::Google.OrTools.PDLP.OptimalityNorm OptimalityNormDefaultValue = global::Google.OrTools.PDLP.OptimalityNorm.L2;
249
250 private global::Google.OrTools.PDLP.OptimalityNorm optimalityNorm_;
254 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
255 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
256 public global::Google.OrTools.PDLP.OptimalityNorm OptimalityNorm {
257 get { if ((_hasBits0 & 1) != 0) { return optimalityNorm_; } else { return OptimalityNormDefaultValue; } }
258 set {
259 _hasBits0 |= 1;
260 optimalityNorm_ = value;
261 }
262 }
263
264 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
265 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
266 public bool HasOptimalityNorm {
267 get { return (_hasBits0 & 1) != 0; }
268 }
269
270 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
271 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
272 public void ClearOptimalityNorm() {
273 _hasBits0 &= ~1;
274 }
275
278 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
279 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
281 get { return optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.SimpleOptimalityCriteria ? (global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria) optimalityCriteria_ : null; }
282 set {
283 optimalityCriteria_ = value;
284 optimalityCriteriaCase_ = value == null ? OptimalityCriteriaOneofCase.None : OptimalityCriteriaOneofCase.SimpleOptimalityCriteria;
285 }
286 }
287
290 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
291 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
293 get { return optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.DetailedOptimalityCriteria ? (global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria) optimalityCriteria_ : null; }
294 set {
295 optimalityCriteria_ = value;
296 optimalityCriteriaCase_ = value == null ? OptimalityCriteriaOneofCase.None : OptimalityCriteriaOneofCase.DetailedOptimalityCriteria;
297 }
298 }
299
301 public const int EpsOptimalAbsoluteFieldNumber = 2;
302 private readonly static double EpsOptimalAbsoluteDefaultValue = 1e-06D;
303
304 private double epsOptimalAbsolute_;
311 [global::System.ObsoleteAttribute]
312 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
313 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
314 public double EpsOptimalAbsolute {
315 get { if ((_hasBits0 & 2) != 0) { return epsOptimalAbsolute_; } else { return EpsOptimalAbsoluteDefaultValue; } }
316 set {
317 _hasBits0 |= 2;
318 epsOptimalAbsolute_ = value;
319 }
320 }
321
322 [global::System.ObsoleteAttribute]
323 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
324 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
326 get { return (_hasBits0 & 2) != 0; }
327 }
328
329 [global::System.ObsoleteAttribute]
330 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
331 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
333 _hasBits0 &= ~2;
334 }
335
337 public const int EpsOptimalRelativeFieldNumber = 3;
338 private readonly static double EpsOptimalRelativeDefaultValue = 1e-06D;
339
340 private double epsOptimalRelative_;
347 [global::System.ObsoleteAttribute]
348 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
349 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
350 public double EpsOptimalRelative {
351 get { if ((_hasBits0 & 4) != 0) { return epsOptimalRelative_; } else { return EpsOptimalRelativeDefaultValue; } }
352 set {
353 _hasBits0 |= 4;
354 epsOptimalRelative_ = value;
355 }
356 }
357
358 [global::System.ObsoleteAttribute]
359 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
360 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
362 get { return (_hasBits0 & 4) != 0; }
363 }
364
365 [global::System.ObsoleteAttribute]
366 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
367 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
369 _hasBits0 &= ~4;
370 }
371
373 public const int EpsPrimalInfeasibleFieldNumber = 4;
374 private readonly static double EpsPrimalInfeasibleDefaultValue = 1e-08D;
375
376 private double epsPrimalInfeasible_;
385 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
386 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
387 public double EpsPrimalInfeasible {
388 get { if ((_hasBits0 & 8) != 0) { return epsPrimalInfeasible_; } else { return EpsPrimalInfeasibleDefaultValue; } }
389 set {
390 _hasBits0 |= 8;
391 epsPrimalInfeasible_ = value;
392 }
393 }
394
395 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
396 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
398 get { return (_hasBits0 & 8) != 0; }
399 }
400
401 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
402 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
404 _hasBits0 &= ~8;
405 }
406
408 public const int EpsDualInfeasibleFieldNumber = 5;
409 private readonly static double EpsDualInfeasibleDefaultValue = 1e-08D;
410
411 private double epsDualInfeasible_;
422 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
423 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
424 public double EpsDualInfeasible {
425 get { if ((_hasBits0 & 16) != 0) { return epsDualInfeasible_; } else { return EpsDualInfeasibleDefaultValue; } }
426 set {
427 _hasBits0 |= 16;
428 epsDualInfeasible_ = value;
429 }
430 }
431
432 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
433 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
435 get { return (_hasBits0 & 16) != 0; }
436 }
437
438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
441 _hasBits0 &= ~16;
442 }
443
445 public const int TimeSecLimitFieldNumber = 6;
446 private readonly static double TimeSecLimitDefaultValue = double.PositiveInfinity;
447
448 private double timeSecLimit_;
453 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
454 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
455 public double TimeSecLimit {
456 get { if ((_hasBits0 & 32) != 0) { return timeSecLimit_; } else { return TimeSecLimitDefaultValue; } }
457 set {
458 _hasBits0 |= 32;
459 timeSecLimit_ = value;
460 }
461 }
462
463 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
464 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
465 public bool HasTimeSecLimit {
466 get { return (_hasBits0 & 32) != 0; }
467 }
468
469 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
470 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
471 public void ClearTimeSecLimit() {
472 _hasBits0 &= ~32;
473 }
474
476 public const int IterationLimitFieldNumber = 7;
477 private readonly static int IterationLimitDefaultValue = 2147483647;
478
479 private int iterationLimit_;
484 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
485 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
486 public int IterationLimit {
487 get { if ((_hasBits0 & 64) != 0) { return iterationLimit_; } else { return IterationLimitDefaultValue; } }
488 set {
489 _hasBits0 |= 64;
490 iterationLimit_ = value;
491 }
492 }
493
494 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
495 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
496 public bool HasIterationLimit {
497 get { return (_hasBits0 & 64) != 0; }
498 }
499
500 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
501 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
502 public void ClearIterationLimit() {
503 _hasBits0 &= ~64;
504 }
505
507 public const int KktMatrixPassLimitFieldNumber = 8;
508 private readonly static double KktMatrixPassLimitDefaultValue = double.PositiveInfinity;
509
510 private double kktMatrixPassLimit_;
515 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
516 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
517 public double KktMatrixPassLimit {
518 get { if ((_hasBits0 & 128) != 0) { return kktMatrixPassLimit_; } else { return KktMatrixPassLimitDefaultValue; } }
519 set {
520 _hasBits0 |= 128;
521 kktMatrixPassLimit_ = value;
522 }
523 }
524
525 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
526 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
528 get { return (_hasBits0 & 128) != 0; }
529 }
530
531 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
532 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
534 _hasBits0 &= ~128;
535 }
536
537 private object optimalityCriteria_;
544 private OptimalityCriteriaOneofCase optimalityCriteriaCase_ = OptimalityCriteriaOneofCase.None;
545 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
546 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
548 get { return optimalityCriteriaCase_; }
549 }
550
551 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
552 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
554 optimalityCriteriaCase_ = OptimalityCriteriaOneofCase.None;
555 optimalityCriteria_ = null;
556 }
557
558 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
559 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
560 public override bool Equals(object other) {
561 return Equals(other as TerminationCriteria);
562 }
563
564 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
565 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
566 public bool Equals(TerminationCriteria other) {
567 if (ReferenceEquals(other, null)) {
568 return false;
569 }
570 if (ReferenceEquals(other, this)) {
571 return true;
572 }
573 if (OptimalityNorm != other.OptimalityNorm) return false;
574 if (!object.Equals(SimpleOptimalityCriteria, other.SimpleOptimalityCriteria)) return false;
575 if (!object.Equals(DetailedOptimalityCriteria, other.DetailedOptimalityCriteria)) return false;
576 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalAbsolute, other.EpsOptimalAbsolute)) return false;
577 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalRelative, other.EpsOptimalRelative)) return false;
578 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsPrimalInfeasible, other.EpsPrimalInfeasible)) return false;
579 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsDualInfeasible, other.EpsDualInfeasible)) return false;
580 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(TimeSecLimit, other.TimeSecLimit)) return false;
581 if (IterationLimit != other.IterationLimit) return false;
582 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(KktMatrixPassLimit, other.KktMatrixPassLimit)) return false;
583 if (OptimalityCriteriaCase != other.OptimalityCriteriaCase) return false;
584 return Equals(_unknownFields, other._unknownFields);
585 }
586
587 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
588 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
589 public override int GetHashCode() {
590 int hash = 1;
591 if (HasOptimalityNorm) hash ^= OptimalityNorm.GetHashCode();
592 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.SimpleOptimalityCriteria) hash ^= SimpleOptimalityCriteria.GetHashCode();
593 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.DetailedOptimalityCriteria) hash ^= DetailedOptimalityCriteria.GetHashCode();
594 if (HasEpsOptimalAbsolute) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalAbsolute);
595 if (HasEpsOptimalRelative) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalRelative);
596 if (HasEpsPrimalInfeasible) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsPrimalInfeasible);
597 if (HasEpsDualInfeasible) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsDualInfeasible);
598 if (HasTimeSecLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(TimeSecLimit);
599 if (HasIterationLimit) hash ^= IterationLimit.GetHashCode();
600 if (HasKktMatrixPassLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(KktMatrixPassLimit);
601 hash ^= (int) optimalityCriteriaCase_;
602 if (_unknownFields != null) {
603 hash ^= _unknownFields.GetHashCode();
604 }
605 return hash;
606 }
607
608 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
609 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
610 public override string ToString() {
611 return pb::JsonFormatter.ToDiagnosticString(this);
612 }
613
614 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
615 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
616 public void WriteTo(pb::CodedOutputStream output) {
617 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
618 output.WriteRawMessage(this);
619 #else
620 if (HasOptimalityNorm) {
621 output.WriteRawTag(8);
622 output.WriteEnum((int) OptimalityNorm);
623 }
625 output.WriteRawTag(17);
626 output.WriteDouble(EpsOptimalAbsolute);
627 }
629 output.WriteRawTag(25);
630 output.WriteDouble(EpsOptimalRelative);
631 }
633 output.WriteRawTag(33);
634 output.WriteDouble(EpsPrimalInfeasible);
635 }
637 output.WriteRawTag(41);
638 output.WriteDouble(EpsDualInfeasible);
639 }
640 if (HasTimeSecLimit) {
641 output.WriteRawTag(49);
642 output.WriteDouble(TimeSecLimit);
643 }
644 if (HasIterationLimit) {
645 output.WriteRawTag(56);
646 output.WriteInt32(IterationLimit);
647 }
649 output.WriteRawTag(65);
650 output.WriteDouble(KktMatrixPassLimit);
651 }
652 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.SimpleOptimalityCriteria) {
653 output.WriteRawTag(74);
654 output.WriteMessage(SimpleOptimalityCriteria);
655 }
656 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.DetailedOptimalityCriteria) {
657 output.WriteRawTag(82);
658 output.WriteMessage(DetailedOptimalityCriteria);
659 }
660 if (_unknownFields != null) {
661 _unknownFields.WriteTo(output);
662 }
663 #endif
664 }
665
666 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
667 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
668 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
669 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
670 if (HasOptimalityNorm) {
671 output.WriteRawTag(8);
672 output.WriteEnum((int) OptimalityNorm);
673 }
674 if (HasEpsOptimalAbsolute) {
675 output.WriteRawTag(17);
676 output.WriteDouble(EpsOptimalAbsolute);
677 }
678 if (HasEpsOptimalRelative) {
679 output.WriteRawTag(25);
680 output.WriteDouble(EpsOptimalRelative);
681 }
682 if (HasEpsPrimalInfeasible) {
683 output.WriteRawTag(33);
684 output.WriteDouble(EpsPrimalInfeasible);
685 }
686 if (HasEpsDualInfeasible) {
687 output.WriteRawTag(41);
688 output.WriteDouble(EpsDualInfeasible);
689 }
690 if (HasTimeSecLimit) {
691 output.WriteRawTag(49);
692 output.WriteDouble(TimeSecLimit);
693 }
694 if (HasIterationLimit) {
695 output.WriteRawTag(56);
696 output.WriteInt32(IterationLimit);
697 }
698 if (HasKktMatrixPassLimit) {
699 output.WriteRawTag(65);
700 output.WriteDouble(KktMatrixPassLimit);
701 }
702 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.SimpleOptimalityCriteria) {
703 output.WriteRawTag(74);
704 output.WriteMessage(SimpleOptimalityCriteria);
705 }
706 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.DetailedOptimalityCriteria) {
707 output.WriteRawTag(82);
708 output.WriteMessage(DetailedOptimalityCriteria);
709 }
710 if (_unknownFields != null) {
711 _unknownFields.WriteTo(ref output);
712 }
713 }
714 #endif
715
716 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
717 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
718 public int CalculateSize() {
719 int size = 0;
720 if (HasOptimalityNorm) {
721 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) OptimalityNorm);
722 }
723 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.SimpleOptimalityCriteria) {
724 size += 1 + pb::CodedOutputStream.ComputeMessageSize(SimpleOptimalityCriteria);
725 }
726 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.DetailedOptimalityCriteria) {
727 size += 1 + pb::CodedOutputStream.ComputeMessageSize(DetailedOptimalityCriteria);
728 }
730 size += 1 + 8;
731 }
733 size += 1 + 8;
734 }
736 size += 1 + 8;
737 }
739 size += 1 + 8;
740 }
741 if (HasTimeSecLimit) {
742 size += 1 + 8;
743 }
744 if (HasIterationLimit) {
745 size += 1 + pb::CodedOutputStream.ComputeInt32Size(IterationLimit);
746 }
748 size += 1 + 8;
749 }
750 if (_unknownFields != null) {
751 size += _unknownFields.CalculateSize();
752 }
753 return size;
754 }
755
756 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
757 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
758 public void MergeFrom(TerminationCriteria other) {
759 if (other == null) {
760 return;
761 }
762 if (other.HasOptimalityNorm) {
764 }
765 if (other.HasEpsOptimalAbsolute) {
767 }
768 if (other.HasEpsOptimalRelative) {
770 }
771 if (other.HasEpsPrimalInfeasible) {
773 }
774 if (other.HasEpsDualInfeasible) {
776 }
777 if (other.HasTimeSecLimit) {
779 }
780 if (other.HasIterationLimit) {
782 }
783 if (other.HasKktMatrixPassLimit) {
785 }
786 switch (other.OptimalityCriteriaCase) {
787 case OptimalityCriteriaOneofCase.SimpleOptimalityCriteria:
788 if (SimpleOptimalityCriteria == null) {
789 SimpleOptimalityCriteria = new global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria();
790 }
792 break;
793 case OptimalityCriteriaOneofCase.DetailedOptimalityCriteria:
794 if (DetailedOptimalityCriteria == null) {
795 DetailedOptimalityCriteria = new global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria();
796 }
798 break;
799 }
800
801 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
802 }
803
804 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
805 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
806 public void MergeFrom(pb::CodedInputStream input) {
807 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
808 input.ReadRawMessage(this);
809 #else
810 uint tag;
811 while ((tag = input.ReadTag()) != 0) {
812 if ((tag & 7) == 4) {
813 // Abort on any end group tag.
814 return;
815 }
816 switch(tag) {
817 default:
818 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
819 break;
820 case 8: {
821 OptimalityNorm = (global::Google.OrTools.PDLP.OptimalityNorm) input.ReadEnum();
822 break;
823 }
824 case 17: {
825 EpsOptimalAbsolute = input.ReadDouble();
826 break;
827 }
828 case 25: {
829 EpsOptimalRelative = input.ReadDouble();
830 break;
831 }
832 case 33: {
833 EpsPrimalInfeasible = input.ReadDouble();
834 break;
835 }
836 case 41: {
837 EpsDualInfeasible = input.ReadDouble();
838 break;
839 }
840 case 49: {
841 TimeSecLimit = input.ReadDouble();
842 break;
843 }
844 case 56: {
845 IterationLimit = input.ReadInt32();
846 break;
847 }
848 case 65: {
849 KktMatrixPassLimit = input.ReadDouble();
850 break;
851 }
852 case 74: {
853 global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria subBuilder = new global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria();
854 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.SimpleOptimalityCriteria) {
855 subBuilder.MergeFrom(SimpleOptimalityCriteria);
856 }
857 input.ReadMessage(subBuilder);
858 SimpleOptimalityCriteria = subBuilder;
859 break;
860 }
861 case 82: {
862 global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria subBuilder = new global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria();
863 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.DetailedOptimalityCriteria) {
864 subBuilder.MergeFrom(DetailedOptimalityCriteria);
865 }
866 input.ReadMessage(subBuilder);
867 DetailedOptimalityCriteria = subBuilder;
868 break;
869 }
870 }
871 }
872 #endif
873 }
874
875 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
876 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
877 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
878 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
879 uint tag;
880 while ((tag = input.ReadTag()) != 0) {
881 if ((tag & 7) == 4) {
882 // Abort on any end group tag.
883 return;
884 }
885 switch(tag) {
886 default:
887 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
888 break;
889 case 8: {
890 OptimalityNorm = (global::Google.OrTools.PDLP.OptimalityNorm) input.ReadEnum();
891 break;
892 }
893 case 17: {
894 EpsOptimalAbsolute = input.ReadDouble();
895 break;
896 }
897 case 25: {
898 EpsOptimalRelative = input.ReadDouble();
899 break;
900 }
901 case 33: {
902 EpsPrimalInfeasible = input.ReadDouble();
903 break;
904 }
905 case 41: {
906 EpsDualInfeasible = input.ReadDouble();
907 break;
908 }
909 case 49: {
910 TimeSecLimit = input.ReadDouble();
911 break;
912 }
913 case 56: {
914 IterationLimit = input.ReadInt32();
915 break;
916 }
917 case 65: {
918 KktMatrixPassLimit = input.ReadDouble();
919 break;
920 }
921 case 74: {
922 global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria subBuilder = new global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria();
923 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.SimpleOptimalityCriteria) {
924 subBuilder.MergeFrom(SimpleOptimalityCriteria);
925 }
926 input.ReadMessage(subBuilder);
927 SimpleOptimalityCriteria = subBuilder;
928 break;
929 }
930 case 82: {
931 global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria subBuilder = new global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria();
932 if (optimalityCriteriaCase_ == OptimalityCriteriaOneofCase.DetailedOptimalityCriteria) {
933 subBuilder.MergeFrom(DetailedOptimalityCriteria);
934 }
935 input.ReadMessage(subBuilder);
936 DetailedOptimalityCriteria = subBuilder;
937 break;
938 }
939 }
940 }
941 }
942 #endif
943
944 #region Nested types
946 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
947 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
948 public static partial class Types {
949 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
950 public sealed partial class SimpleOptimalityCriteria : pb::IMessage<SimpleOptimalityCriteria>
951 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
952 , pb::IBufferMessage
953 #endif
954 {
955 private static readonly pb::MessageParser<SimpleOptimalityCriteria> _parser = new pb::MessageParser<SimpleOptimalityCriteria>(() => new SimpleOptimalityCriteria());
956 private pb::UnknownFieldSet _unknownFields;
957 private int _hasBits0;
958 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
959 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
960 public static pb::MessageParser<SimpleOptimalityCriteria> Parser { get { return _parser; } }
961
962 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
963 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
964 public static pbr::MessageDescriptor Descriptor {
965 get { return global::Google.OrTools.PDLP.TerminationCriteria.Descriptor.NestedTypes[0]; }
966 }
967
968 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
969 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
970 pbr::MessageDescriptor pb::IMessage.Descriptor {
971 get { return Descriptor; }
972 }
973
974 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
975 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
977 OnConstruction();
978 }
979
980 partial void OnConstruction();
981
982 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
983 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
985 _hasBits0 = other._hasBits0;
986 epsOptimalAbsolute_ = other.epsOptimalAbsolute_;
987 epsOptimalRelative_ = other.epsOptimalRelative_;
988 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
989 }
990
991 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
992 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
994 return new SimpleOptimalityCriteria(this);
995 }
996
998 public const int EpsOptimalAbsoluteFieldNumber = 1;
999 private readonly static double EpsOptimalAbsoluteDefaultValue = 1e-06D;
1000
1001 private double epsOptimalAbsolute_;
1006 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1007 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1008 public double EpsOptimalAbsolute {
1009 get { if ((_hasBits0 & 1) != 0) { return epsOptimalAbsolute_; } else { return EpsOptimalAbsoluteDefaultValue; } }
1010 set {
1011 _hasBits0 |= 1;
1012 epsOptimalAbsolute_ = value;
1013 }
1014 }
1015
1016 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1017 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1019 get { return (_hasBits0 & 1) != 0; }
1020 }
1021
1022 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1023 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1025 _hasBits0 &= ~1;
1026 }
1027
1029 public const int EpsOptimalRelativeFieldNumber = 2;
1030 private readonly static double EpsOptimalRelativeDefaultValue = 1e-06D;
1031
1032 private double epsOptimalRelative_;
1037 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1038 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1039 public double EpsOptimalRelative {
1040 get { if ((_hasBits0 & 2) != 0) { return epsOptimalRelative_; } else { return EpsOptimalRelativeDefaultValue; } }
1041 set {
1042 _hasBits0 |= 2;
1043 epsOptimalRelative_ = value;
1044 }
1045 }
1046
1047 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1048 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1050 get { return (_hasBits0 & 2) != 0; }
1051 }
1052
1053 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1054 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1056 _hasBits0 &= ~2;
1057 }
1058
1059 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1060 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1061 public override bool Equals(object other) {
1062 return Equals(other as SimpleOptimalityCriteria);
1063 }
1064
1065 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1066 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1068 if (ReferenceEquals(other, null)) {
1069 return false;
1070 }
1071 if (ReferenceEquals(other, this)) {
1072 return true;
1073 }
1074 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalAbsolute, other.EpsOptimalAbsolute)) return false;
1075 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalRelative, other.EpsOptimalRelative)) return false;
1076 return Equals(_unknownFields, other._unknownFields);
1077 }
1078
1079 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1080 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1081 public override int GetHashCode() {
1082 int hash = 1;
1083 if (HasEpsOptimalAbsolute) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalAbsolute);
1084 if (HasEpsOptimalRelative) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalRelative);
1085 if (_unknownFields != null) {
1086 hash ^= _unknownFields.GetHashCode();
1087 }
1088 return hash;
1089 }
1090
1091 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1092 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1093 public override string ToString() {
1094 return pb::JsonFormatter.ToDiagnosticString(this);
1095 }
1096
1097 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1098 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1099 public void WriteTo(pb::CodedOutputStream output) {
1100 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1101 output.WriteRawMessage(this);
1102 #else
1104 output.WriteRawTag(9);
1105 output.WriteDouble(EpsOptimalAbsolute);
1106 }
1108 output.WriteRawTag(17);
1109 output.WriteDouble(EpsOptimalRelative);
1110 }
1111 if (_unknownFields != null) {
1112 _unknownFields.WriteTo(output);
1113 }
1114 #endif
1115 }
1116
1117 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1118 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1119 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1120 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1122 output.WriteRawTag(9);
1123 output.WriteDouble(EpsOptimalAbsolute);
1124 }
1126 output.WriteRawTag(17);
1127 output.WriteDouble(EpsOptimalRelative);
1128 }
1129 if (_unknownFields != null) {
1130 _unknownFields.WriteTo(ref output);
1131 }
1132 }
1133 #endif
1134
1135 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1136 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1137 public int CalculateSize() {
1138 int size = 0;
1140 size += 1 + 8;
1141 }
1143 size += 1 + 8;
1144 }
1145 if (_unknownFields != null) {
1146 size += _unknownFields.CalculateSize();
1147 }
1148 return size;
1149 }
1150
1151 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1152 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1154 if (other == null) {
1155 return;
1156 }
1157 if (other.HasEpsOptimalAbsolute) {
1159 }
1160 if (other.HasEpsOptimalRelative) {
1162 }
1163 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1164 }
1165
1166 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1167 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1168 public void MergeFrom(pb::CodedInputStream input) {
1169 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1170 input.ReadRawMessage(this);
1171 #else
1172 uint tag;
1173 while ((tag = input.ReadTag()) != 0) {
1174 if ((tag & 7) == 4) {
1175 // Abort on any end group tag.
1176 return;
1177 }
1178 switch(tag) {
1179 default:
1180 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1181 break;
1182 case 9: {
1183 EpsOptimalAbsolute = input.ReadDouble();
1184 break;
1185 }
1186 case 17: {
1187 EpsOptimalRelative = input.ReadDouble();
1188 break;
1189 }
1190 }
1191 }
1192 #endif
1193 }
1194
1195 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1196 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1197 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1198 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
1199 uint tag;
1200 while ((tag = input.ReadTag()) != 0) {
1201 if ((tag & 7) == 4) {
1202 // Abort on any end group tag.
1203 return;
1204 }
1205 switch(tag) {
1206 default:
1207 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
1208 break;
1209 case 9: {
1210 EpsOptimalAbsolute = input.ReadDouble();
1211 break;
1212 }
1213 case 17: {
1214 EpsOptimalRelative = input.ReadDouble();
1215 break;
1216 }
1217 }
1218 }
1219 }
1220 #endif
1221
1222 }
1223
1224 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
1225 public sealed partial class DetailedOptimalityCriteria : pb::IMessage<DetailedOptimalityCriteria>
1226 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1227 , pb::IBufferMessage
1228 #endif
1229 {
1230 private static readonly pb::MessageParser<DetailedOptimalityCriteria> _parser = new pb::MessageParser<DetailedOptimalityCriteria>(() => new DetailedOptimalityCriteria());
1231 private pb::UnknownFieldSet _unknownFields;
1232 private int _hasBits0;
1233 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1234 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1235 public static pb::MessageParser<DetailedOptimalityCriteria> Parser { get { return _parser; } }
1236
1237 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1238 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1239 public static pbr::MessageDescriptor Descriptor {
1240 get { return global::Google.OrTools.PDLP.TerminationCriteria.Descriptor.NestedTypes[1]; }
1241 }
1242
1243 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1244 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1245 pbr::MessageDescriptor pb::IMessage.Descriptor {
1246 get { return Descriptor; }
1247 }
1248
1249 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1250 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1252 OnConstruction();
1253 }
1254
1255 partial void OnConstruction();
1256
1257 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1258 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1260 _hasBits0 = other._hasBits0;
1261 epsOptimalPrimalResidualAbsolute_ = other.epsOptimalPrimalResidualAbsolute_;
1262 epsOptimalPrimalResidualRelative_ = other.epsOptimalPrimalResidualRelative_;
1263 epsOptimalDualResidualAbsolute_ = other.epsOptimalDualResidualAbsolute_;
1264 epsOptimalDualResidualRelative_ = other.epsOptimalDualResidualRelative_;
1265 epsOptimalObjectiveGapAbsolute_ = other.epsOptimalObjectiveGapAbsolute_;
1266 epsOptimalObjectiveGapRelative_ = other.epsOptimalObjectiveGapRelative_;
1267 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1268 }
1269
1270 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1271 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1273 return new DetailedOptimalityCriteria(this);
1274 }
1275
1278 private readonly static double EpsOptimalPrimalResidualAbsoluteDefaultValue = 1e-06D;
1279
1280 private double epsOptimalPrimalResidualAbsolute_;
1284 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1285 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1287 get { if ((_hasBits0 & 1) != 0) { return epsOptimalPrimalResidualAbsolute_; } else { return EpsOptimalPrimalResidualAbsoluteDefaultValue; } }
1288 set {
1289 _hasBits0 |= 1;
1290 epsOptimalPrimalResidualAbsolute_ = value;
1291 }
1292 }
1293
1294 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1295 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1297 get { return (_hasBits0 & 1) != 0; }
1298 }
1299
1300 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1301 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1303 _hasBits0 &= ~1;
1304 }
1305
1308 private readonly static double EpsOptimalPrimalResidualRelativeDefaultValue = 1e-06D;
1309
1310 private double epsOptimalPrimalResidualRelative_;
1314 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1315 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1317 get { if ((_hasBits0 & 2) != 0) { return epsOptimalPrimalResidualRelative_; } else { return EpsOptimalPrimalResidualRelativeDefaultValue; } }
1318 set {
1319 _hasBits0 |= 2;
1320 epsOptimalPrimalResidualRelative_ = value;
1321 }
1322 }
1323
1324 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1325 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1327 get { return (_hasBits0 & 2) != 0; }
1328 }
1329
1330 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1331 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1333 _hasBits0 &= ~2;
1334 }
1335
1338 private readonly static double EpsOptimalDualResidualAbsoluteDefaultValue = 1e-06D;
1339
1340 private double epsOptimalDualResidualAbsolute_;
1344 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1345 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1347 get { if ((_hasBits0 & 4) != 0) { return epsOptimalDualResidualAbsolute_; } else { return EpsOptimalDualResidualAbsoluteDefaultValue; } }
1348 set {
1349 _hasBits0 |= 4;
1350 epsOptimalDualResidualAbsolute_ = value;
1351 }
1352 }
1353
1354 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1355 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1357 get { return (_hasBits0 & 4) != 0; }
1358 }
1359
1360 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1361 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1363 _hasBits0 &= ~4;
1364 }
1365
1368 private readonly static double EpsOptimalDualResidualRelativeDefaultValue = 1e-06D;
1369
1370 private double epsOptimalDualResidualRelative_;
1374 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1375 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1377 get { if ((_hasBits0 & 8) != 0) { return epsOptimalDualResidualRelative_; } else { return EpsOptimalDualResidualRelativeDefaultValue; } }
1378 set {
1379 _hasBits0 |= 8;
1380 epsOptimalDualResidualRelative_ = value;
1381 }
1382 }
1383
1384 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1385 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1387 get { return (_hasBits0 & 8) != 0; }
1388 }
1389
1390 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1391 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1393 _hasBits0 &= ~8;
1394 }
1395
1398 private readonly static double EpsOptimalObjectiveGapAbsoluteDefaultValue = 1e-06D;
1399
1400 private double epsOptimalObjectiveGapAbsolute_;
1404 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1405 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1407 get { if ((_hasBits0 & 16) != 0) { return epsOptimalObjectiveGapAbsolute_; } else { return EpsOptimalObjectiveGapAbsoluteDefaultValue; } }
1408 set {
1409 _hasBits0 |= 16;
1410 epsOptimalObjectiveGapAbsolute_ = value;
1411 }
1412 }
1413
1414 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1415 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1417 get { return (_hasBits0 & 16) != 0; }
1418 }
1419
1420 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1421 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1423 _hasBits0 &= ~16;
1424 }
1425
1428 private readonly static double EpsOptimalObjectiveGapRelativeDefaultValue = 1e-06D;
1429
1430 private double epsOptimalObjectiveGapRelative_;
1434 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1435 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1437 get { if ((_hasBits0 & 32) != 0) { return epsOptimalObjectiveGapRelative_; } else { return EpsOptimalObjectiveGapRelativeDefaultValue; } }
1438 set {
1439 _hasBits0 |= 32;
1440 epsOptimalObjectiveGapRelative_ = value;
1441 }
1442 }
1443
1444 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1445 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1447 get { return (_hasBits0 & 32) != 0; }
1448 }
1449
1450 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1451 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1453 _hasBits0 &= ~32;
1454 }
1455
1456 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1457 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1458 public override bool Equals(object other) {
1459 return Equals(other as DetailedOptimalityCriteria);
1460 }
1461
1462 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1463 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1465 if (ReferenceEquals(other, null)) {
1466 return false;
1467 }
1468 if (ReferenceEquals(other, this)) {
1469 return true;
1470 }
1471 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalPrimalResidualAbsolute, other.EpsOptimalPrimalResidualAbsolute)) return false;
1472 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalPrimalResidualRelative, other.EpsOptimalPrimalResidualRelative)) return false;
1473 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalDualResidualAbsolute, other.EpsOptimalDualResidualAbsolute)) return false;
1474 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalDualResidualRelative, other.EpsOptimalDualResidualRelative)) return false;
1475 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalObjectiveGapAbsolute, other.EpsOptimalObjectiveGapAbsolute)) return false;
1476 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(EpsOptimalObjectiveGapRelative, other.EpsOptimalObjectiveGapRelative)) return false;
1477 return Equals(_unknownFields, other._unknownFields);
1478 }
1479
1480 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1481 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1482 public override int GetHashCode() {
1483 int hash = 1;
1484 if (HasEpsOptimalPrimalResidualAbsolute) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalPrimalResidualAbsolute);
1485 if (HasEpsOptimalPrimalResidualRelative) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalPrimalResidualRelative);
1486 if (HasEpsOptimalDualResidualAbsolute) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalDualResidualAbsolute);
1487 if (HasEpsOptimalDualResidualRelative) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalDualResidualRelative);
1488 if (HasEpsOptimalObjectiveGapAbsolute) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalObjectiveGapAbsolute);
1489 if (HasEpsOptimalObjectiveGapRelative) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(EpsOptimalObjectiveGapRelative);
1490 if (_unknownFields != null) {
1491 hash ^= _unknownFields.GetHashCode();
1492 }
1493 return hash;
1494 }
1495
1496 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1497 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1498 public override string ToString() {
1499 return pb::JsonFormatter.ToDiagnosticString(this);
1500 }
1501
1502 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1503 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1504 public void WriteTo(pb::CodedOutputStream output) {
1505 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1506 output.WriteRawMessage(this);
1507 #else
1509 output.WriteRawTag(9);
1510 output.WriteDouble(EpsOptimalPrimalResidualAbsolute);
1511 }
1513 output.WriteRawTag(17);
1514 output.WriteDouble(EpsOptimalPrimalResidualRelative);
1515 }
1517 output.WriteRawTag(25);
1518 output.WriteDouble(EpsOptimalDualResidualAbsolute);
1519 }
1521 output.WriteRawTag(33);
1522 output.WriteDouble(EpsOptimalDualResidualRelative);
1523 }
1525 output.WriteRawTag(41);
1526 output.WriteDouble(EpsOptimalObjectiveGapAbsolute);
1527 }
1529 output.WriteRawTag(49);
1530 output.WriteDouble(EpsOptimalObjectiveGapRelative);
1531 }
1532 if (_unknownFields != null) {
1533 _unknownFields.WriteTo(output);
1534 }
1535 #endif
1536 }
1537
1538 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1539 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1540 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1541 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1542 if (HasEpsOptimalPrimalResidualAbsolute) {
1543 output.WriteRawTag(9);
1544 output.WriteDouble(EpsOptimalPrimalResidualAbsolute);
1545 }
1546 if (HasEpsOptimalPrimalResidualRelative) {
1547 output.WriteRawTag(17);
1548 output.WriteDouble(EpsOptimalPrimalResidualRelative);
1549 }
1550 if (HasEpsOptimalDualResidualAbsolute) {
1551 output.WriteRawTag(25);
1552 output.WriteDouble(EpsOptimalDualResidualAbsolute);
1553 }
1554 if (HasEpsOptimalDualResidualRelative) {
1555 output.WriteRawTag(33);
1556 output.WriteDouble(EpsOptimalDualResidualRelative);
1557 }
1558 if (HasEpsOptimalObjectiveGapAbsolute) {
1559 output.WriteRawTag(41);
1560 output.WriteDouble(EpsOptimalObjectiveGapAbsolute);
1561 }
1562 if (HasEpsOptimalObjectiveGapRelative) {
1563 output.WriteRawTag(49);
1564 output.WriteDouble(EpsOptimalObjectiveGapRelative);
1565 }
1566 if (_unknownFields != null) {
1567 _unknownFields.WriteTo(ref output);
1568 }
1569 }
1570 #endif
1571
1572 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1573 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1574 public int CalculateSize() {
1575 int size = 0;
1577 size += 1 + 8;
1578 }
1580 size += 1 + 8;
1581 }
1583 size += 1 + 8;
1584 }
1586 size += 1 + 8;
1587 }
1589 size += 1 + 8;
1590 }
1592 size += 1 + 8;
1593 }
1594 if (_unknownFields != null) {
1595 size += _unknownFields.CalculateSize();
1596 }
1597 return size;
1598 }
1599
1600 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1601 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1603 if (other == null) {
1604 return;
1605 }
1608 }
1611 }
1614 }
1617 }
1620 }
1623 }
1624 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1625 }
1626
1627 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1628 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1629 public void MergeFrom(pb::CodedInputStream input) {
1630 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1631 input.ReadRawMessage(this);
1632 #else
1633 uint tag;
1634 while ((tag = input.ReadTag()) != 0) {
1635 if ((tag & 7) == 4) {
1636 // Abort on any end group tag.
1637 return;
1638 }
1639 switch(tag) {
1640 default:
1641 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1642 break;
1643 case 9: {
1644 EpsOptimalPrimalResidualAbsolute = input.ReadDouble();
1645 break;
1646 }
1647 case 17: {
1648 EpsOptimalPrimalResidualRelative = input.ReadDouble();
1649 break;
1650 }
1651 case 25: {
1652 EpsOptimalDualResidualAbsolute = input.ReadDouble();
1653 break;
1654 }
1655 case 33: {
1656 EpsOptimalDualResidualRelative = input.ReadDouble();
1657 break;
1658 }
1659 case 41: {
1660 EpsOptimalObjectiveGapAbsolute = input.ReadDouble();
1661 break;
1662 }
1663 case 49: {
1664 EpsOptimalObjectiveGapRelative = input.ReadDouble();
1665 break;
1666 }
1667 }
1668 }
1669 #endif
1670 }
1671
1672 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1673 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1674 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1675 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
1676 uint tag;
1677 while ((tag = input.ReadTag()) != 0) {
1678 if ((tag & 7) == 4) {
1679 // Abort on any end group tag.
1680 return;
1681 }
1682 switch(tag) {
1683 default:
1684 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
1685 break;
1686 case 9: {
1687 EpsOptimalPrimalResidualAbsolute = input.ReadDouble();
1688 break;
1689 }
1690 case 17: {
1691 EpsOptimalPrimalResidualRelative = input.ReadDouble();
1692 break;
1693 }
1694 case 25: {
1695 EpsOptimalDualResidualAbsolute = input.ReadDouble();
1696 break;
1697 }
1698 case 33: {
1699 EpsOptimalDualResidualRelative = input.ReadDouble();
1700 break;
1701 }
1702 case 41: {
1703 EpsOptimalObjectiveGapAbsolute = input.ReadDouble();
1704 break;
1705 }
1706 case 49: {
1707 EpsOptimalObjectiveGapRelative = input.ReadDouble();
1708 break;
1709 }
1710 }
1711 }
1712 }
1713 #endif
1714
1715 }
1716
1717 }
1718 #endregion
1719
1720 }
1721
1727 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
1728 public sealed partial class AdaptiveLinesearchParams : pb::IMessage<AdaptiveLinesearchParams>
1729 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1730 , pb::IBufferMessage
1731 #endif
1732 {
1733 private static readonly pb::MessageParser<AdaptiveLinesearchParams> _parser = new pb::MessageParser<AdaptiveLinesearchParams>(() => new AdaptiveLinesearchParams());
1734 private pb::UnknownFieldSet _unknownFields;
1735 private int _hasBits0;
1736 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1737 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1738 public static pb::MessageParser<AdaptiveLinesearchParams> Parser { get { return _parser; } }
1739
1740 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1741 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1742 public static pbr::MessageDescriptor Descriptor {
1743 get { return global::Google.OrTools.PDLP.SolversReflection.Descriptor.MessageTypes[1]; }
1744 }
1745
1746 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1747 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1748 pbr::MessageDescriptor pb::IMessage.Descriptor {
1749 get { return Descriptor; }
1750 }
1751
1752 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1753 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1755 OnConstruction();
1756 }
1757
1758 partial void OnConstruction();
1759
1760 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1761 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1763 _hasBits0 = other._hasBits0;
1764 stepSizeReductionExponent_ = other.stepSizeReductionExponent_;
1765 stepSizeGrowthExponent_ = other.stepSizeGrowthExponent_;
1766 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1767 }
1768
1769 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1770 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1772 return new AdaptiveLinesearchParams(this);
1773 }
1774
1777 private readonly static double StepSizeReductionExponentDefaultValue = 0.3D;
1778
1779 private double stepSizeReductionExponent_;
1786 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1787 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1789 get { if ((_hasBits0 & 1) != 0) { return stepSizeReductionExponent_; } else { return StepSizeReductionExponentDefaultValue; } }
1790 set {
1791 _hasBits0 |= 1;
1792 stepSizeReductionExponent_ = value;
1793 }
1794 }
1795
1796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1799 get { return (_hasBits0 & 1) != 0; }
1800 }
1801
1802 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1803 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1805 _hasBits0 &= ~1;
1806 }
1807
1810 private readonly static double StepSizeGrowthExponentDefaultValue = 0.6D;
1811
1812 private double stepSizeGrowthExponent_;
1818 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1819 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1821 get { if ((_hasBits0 & 2) != 0) { return stepSizeGrowthExponent_; } else { return StepSizeGrowthExponentDefaultValue; } }
1822 set {
1823 _hasBits0 |= 2;
1824 stepSizeGrowthExponent_ = value;
1825 }
1826 }
1827
1828 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1829 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1831 get { return (_hasBits0 & 2) != 0; }
1832 }
1833
1834 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1835 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1837 _hasBits0 &= ~2;
1838 }
1839
1840 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1841 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1842 public override bool Equals(object other) {
1843 return Equals(other as AdaptiveLinesearchParams);
1844 }
1845
1846 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1847 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1849 if (ReferenceEquals(other, null)) {
1850 return false;
1851 }
1852 if (ReferenceEquals(other, this)) {
1853 return true;
1854 }
1855 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(StepSizeReductionExponent, other.StepSizeReductionExponent)) return false;
1856 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(StepSizeGrowthExponent, other.StepSizeGrowthExponent)) return false;
1857 return Equals(_unknownFields, other._unknownFields);
1858 }
1859
1860 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1861 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1862 public override int GetHashCode() {
1863 int hash = 1;
1864 if (HasStepSizeReductionExponent) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(StepSizeReductionExponent);
1865 if (HasStepSizeGrowthExponent) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(StepSizeGrowthExponent);
1866 if (_unknownFields != null) {
1867 hash ^= _unknownFields.GetHashCode();
1868 }
1869 return hash;
1870 }
1871
1872 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1873 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1874 public override string ToString() {
1875 return pb::JsonFormatter.ToDiagnosticString(this);
1876 }
1877
1878 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1879 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1880 public void WriteTo(pb::CodedOutputStream output) {
1881 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1882 output.WriteRawMessage(this);
1883 #else
1885 output.WriteRawTag(9);
1886 output.WriteDouble(StepSizeReductionExponent);
1887 }
1889 output.WriteRawTag(17);
1890 output.WriteDouble(StepSizeGrowthExponent);
1891 }
1892 if (_unknownFields != null) {
1893 _unknownFields.WriteTo(output);
1894 }
1895 #endif
1896 }
1897
1898 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1899 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1900 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1901 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
1902 if (HasStepSizeReductionExponent) {
1903 output.WriteRawTag(9);
1904 output.WriteDouble(StepSizeReductionExponent);
1905 }
1906 if (HasStepSizeGrowthExponent) {
1907 output.WriteRawTag(17);
1908 output.WriteDouble(StepSizeGrowthExponent);
1909 }
1910 if (_unknownFields != null) {
1911 _unknownFields.WriteTo(ref output);
1912 }
1913 }
1914 #endif
1915
1916 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1917 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1918 public int CalculateSize() {
1919 int size = 0;
1921 size += 1 + 8;
1922 }
1924 size += 1 + 8;
1925 }
1926 if (_unknownFields != null) {
1927 size += _unknownFields.CalculateSize();
1928 }
1929 return size;
1930 }
1931
1932 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1933 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1935 if (other == null) {
1936 return;
1937 }
1938 if (other.HasStepSizeReductionExponent) {
1940 }
1941 if (other.HasStepSizeGrowthExponent) {
1943 }
1944 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1945 }
1946
1947 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1948 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1949 public void MergeFrom(pb::CodedInputStream input) {
1950 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1951 input.ReadRawMessage(this);
1952 #else
1953 uint tag;
1954 while ((tag = input.ReadTag()) != 0) {
1955 if ((tag & 7) == 4) {
1956 // Abort on any end group tag.
1957 return;
1958 }
1959 switch(tag) {
1960 default:
1961 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1962 break;
1963 case 9: {
1964 StepSizeReductionExponent = input.ReadDouble();
1965 break;
1966 }
1967 case 17: {
1968 StepSizeGrowthExponent = input.ReadDouble();
1969 break;
1970 }
1971 }
1972 }
1973 #endif
1974 }
1975
1976 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
1977 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1978 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1979 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
1980 uint tag;
1981 while ((tag = input.ReadTag()) != 0) {
1982 if ((tag & 7) == 4) {
1983 // Abort on any end group tag.
1984 return;
1985 }
1986 switch(tag) {
1987 default:
1988 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
1989 break;
1990 case 9: {
1991 StepSizeReductionExponent = input.ReadDouble();
1992 break;
1993 }
1994 case 17: {
1995 StepSizeGrowthExponent = input.ReadDouble();
1996 break;
1997 }
1998 }
1999 }
2000 }
2001 #endif
2002
2003 }
2004
2005 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
2006 public sealed partial class MalitskyPockParams : pb::IMessage<MalitskyPockParams>
2007 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2008 , pb::IBufferMessage
2009 #endif
2010 {
2011 private static readonly pb::MessageParser<MalitskyPockParams> _parser = new pb::MessageParser<MalitskyPockParams>(() => new MalitskyPockParams());
2012 private pb::UnknownFieldSet _unknownFields;
2013 private int _hasBits0;
2014 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2015 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2016 public static pb::MessageParser<MalitskyPockParams> Parser { get { return _parser; } }
2017
2018 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2019 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2020 public static pbr::MessageDescriptor Descriptor {
2021 get { return global::Google.OrTools.PDLP.SolversReflection.Descriptor.MessageTypes[2]; }
2022 }
2023
2024 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2025 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2026 pbr::MessageDescriptor pb::IMessage.Descriptor {
2027 get { return Descriptor; }
2028 }
2029
2030 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2031 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2033 OnConstruction();
2034 }
2035
2036 partial void OnConstruction();
2037
2038 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2039 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2041 _hasBits0 = other._hasBits0;
2042 stepSizeDownscalingFactor_ = other.stepSizeDownscalingFactor_;
2043 linesearchContractionFactor_ = other.linesearchContractionFactor_;
2044 stepSizeInterpolation_ = other.stepSizeInterpolation_;
2045 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2046 }
2047
2048 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2049 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2051 return new MalitskyPockParams(this);
2052 }
2053
2056 private readonly static double StepSizeDownscalingFactorDefaultValue = 0.7D;
2057
2058 private double stepSizeDownscalingFactor_;
2065 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2066 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2068 get { if ((_hasBits0 & 1) != 0) { return stepSizeDownscalingFactor_; } else { return StepSizeDownscalingFactorDefaultValue; } }
2069 set {
2070 _hasBits0 |= 1;
2071 stepSizeDownscalingFactor_ = value;
2072 }
2073 }
2074
2075 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2076 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2078 get { return (_hasBits0 & 1) != 0; }
2079 }
2080
2081 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2082 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2084 _hasBits0 &= ~1;
2085 }
2086
2089 private readonly static double LinesearchContractionFactorDefaultValue = 0.99D;
2090
2091 private double linesearchContractionFactor_;
2099 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2100 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2102 get { if ((_hasBits0 & 2) != 0) { return linesearchContractionFactor_; } else { return LinesearchContractionFactorDefaultValue; } }
2103 set {
2104 _hasBits0 |= 2;
2105 linesearchContractionFactor_ = value;
2106 }
2107 }
2108
2109 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2110 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2112 get { return (_hasBits0 & 2) != 0; }
2113 }
2114
2115 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2116 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2118 _hasBits0 &= ~2;
2119 }
2120
2123 private readonly static double StepSizeInterpolationDefaultValue = 1D;
2124
2125 private double stepSizeInterpolation_;
2133 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2134 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2136 get { if ((_hasBits0 & 4) != 0) { return stepSizeInterpolation_; } else { return StepSizeInterpolationDefaultValue; } }
2137 set {
2138 _hasBits0 |= 4;
2139 stepSizeInterpolation_ = value;
2140 }
2141 }
2142
2143 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2144 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2146 get { return (_hasBits0 & 4) != 0; }
2147 }
2148
2149 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2150 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2152 _hasBits0 &= ~4;
2153 }
2154
2155 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2156 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2157 public override bool Equals(object other) {
2158 return Equals(other as MalitskyPockParams);
2159 }
2160
2161 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2162 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2163 public bool Equals(MalitskyPockParams other) {
2164 if (ReferenceEquals(other, null)) {
2165 return false;
2166 }
2167 if (ReferenceEquals(other, this)) {
2168 return true;
2169 }
2170 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(StepSizeDownscalingFactor, other.StepSizeDownscalingFactor)) return false;
2171 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LinesearchContractionFactor, other.LinesearchContractionFactor)) return false;
2172 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(StepSizeInterpolation, other.StepSizeInterpolation)) return false;
2173 return Equals(_unknownFields, other._unknownFields);
2174 }
2175
2176 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2177 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2178 public override int GetHashCode() {
2179 int hash = 1;
2180 if (HasStepSizeDownscalingFactor) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(StepSizeDownscalingFactor);
2181 if (HasLinesearchContractionFactor) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LinesearchContractionFactor);
2182 if (HasStepSizeInterpolation) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(StepSizeInterpolation);
2183 if (_unknownFields != null) {
2184 hash ^= _unknownFields.GetHashCode();
2185 }
2186 return hash;
2187 }
2188
2189 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2190 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2191 public override string ToString() {
2192 return pb::JsonFormatter.ToDiagnosticString(this);
2193 }
2194
2195 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2196 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2197 public void WriteTo(pb::CodedOutputStream output) {
2198 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2199 output.WriteRawMessage(this);
2200 #else
2202 output.WriteRawTag(9);
2203 output.WriteDouble(StepSizeDownscalingFactor);
2204 }
2206 output.WriteRawTag(17);
2207 output.WriteDouble(LinesearchContractionFactor);
2208 }
2210 output.WriteRawTag(25);
2211 output.WriteDouble(StepSizeInterpolation);
2212 }
2213 if (_unknownFields != null) {
2214 _unknownFields.WriteTo(output);
2215 }
2216 #endif
2217 }
2218
2219 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2220 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2221 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2222 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
2223 if (HasStepSizeDownscalingFactor) {
2224 output.WriteRawTag(9);
2225 output.WriteDouble(StepSizeDownscalingFactor);
2226 }
2227 if (HasLinesearchContractionFactor) {
2228 output.WriteRawTag(17);
2229 output.WriteDouble(LinesearchContractionFactor);
2230 }
2231 if (HasStepSizeInterpolation) {
2232 output.WriteRawTag(25);
2233 output.WriteDouble(StepSizeInterpolation);
2234 }
2235 if (_unknownFields != null) {
2236 _unknownFields.WriteTo(ref output);
2237 }
2238 }
2239 #endif
2240
2241 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2242 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2243 public int CalculateSize() {
2244 int size = 0;
2246 size += 1 + 8;
2247 }
2249 size += 1 + 8;
2250 }
2252 size += 1 + 8;
2253 }
2254 if (_unknownFields != null) {
2255 size += _unknownFields.CalculateSize();
2256 }
2257 return size;
2258 }
2259
2260 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2261 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2262 public void MergeFrom(MalitskyPockParams other) {
2263 if (other == null) {
2264 return;
2265 }
2266 if (other.HasStepSizeDownscalingFactor) {
2268 }
2271 }
2272 if (other.HasStepSizeInterpolation) {
2274 }
2275 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2276 }
2277
2278 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2279 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2280 public void MergeFrom(pb::CodedInputStream input) {
2281 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2282 input.ReadRawMessage(this);
2283 #else
2284 uint tag;
2285 while ((tag = input.ReadTag()) != 0) {
2286 if ((tag & 7) == 4) {
2287 // Abort on any end group tag.
2288 return;
2289 }
2290 switch(tag) {
2291 default:
2292 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2293 break;
2294 case 9: {
2295 StepSizeDownscalingFactor = input.ReadDouble();
2296 break;
2297 }
2298 case 17: {
2299 LinesearchContractionFactor = input.ReadDouble();
2300 break;
2301 }
2302 case 25: {
2303 StepSizeInterpolation = input.ReadDouble();
2304 break;
2305 }
2306 }
2307 }
2308 #endif
2309 }
2310
2311 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2312 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2313 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2314 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
2315 uint tag;
2316 while ((tag = input.ReadTag()) != 0) {
2317 if ((tag & 7) == 4) {
2318 // Abort on any end group tag.
2319 return;
2320 }
2321 switch(tag) {
2322 default:
2323 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
2324 break;
2325 case 9: {
2326 StepSizeDownscalingFactor = input.ReadDouble();
2327 break;
2328 }
2329 case 17: {
2330 LinesearchContractionFactor = input.ReadDouble();
2331 break;
2332 }
2333 case 25: {
2334 StepSizeInterpolation = input.ReadDouble();
2335 break;
2336 }
2337 }
2338 }
2339 }
2340 #endif
2341
2342 }
2343
2356 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
2357 public sealed partial class PrimalDualHybridGradientParams : pb::IMessage<PrimalDualHybridGradientParams>
2358 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
2359 , pb::IBufferMessage
2360 #endif
2361 {
2362 private static readonly pb::MessageParser<PrimalDualHybridGradientParams> _parser = new pb::MessageParser<PrimalDualHybridGradientParams>(() => new PrimalDualHybridGradientParams());
2363 private pb::UnknownFieldSet _unknownFields;
2364 private int _hasBits0;
2365 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2366 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2367 public static pb::MessageParser<PrimalDualHybridGradientParams> Parser { get { return _parser; } }
2368
2369 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2370 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2371 public static pbr::MessageDescriptor Descriptor {
2372 get { return global::Google.OrTools.PDLP.SolversReflection.Descriptor.MessageTypes[3]; }
2373 }
2374
2375 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2376 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2377 pbr::MessageDescriptor pb::IMessage.Descriptor {
2378 get { return Descriptor; }
2379 }
2380
2381 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2382 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2384 OnConstruction();
2385 }
2386
2387 partial void OnConstruction();
2388
2389 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2390 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2392 _hasBits0 = other._hasBits0;
2393 terminationCriteria_ = other.terminationCriteria_ != null ? other.terminationCriteria_.Clone() : null;
2394 numThreads_ = other.numThreads_;
2395 numShards_ = other.numShards_;
2396 schedulerType_ = other.schedulerType_;
2397 recordIterationStats_ = other.recordIterationStats_;
2398 verbosityLevel_ = other.verbosityLevel_;
2399 logIntervalSeconds_ = other.logIntervalSeconds_;
2400 majorIterationFrequency_ = other.majorIterationFrequency_;
2401 terminationCheckFrequency_ = other.terminationCheckFrequency_;
2402 restartStrategy_ = other.restartStrategy_;
2403 primalWeightUpdateSmoothing_ = other.primalWeightUpdateSmoothing_;
2404 initialPrimalWeight_ = other.initialPrimalWeight_;
2405 presolveOptions_ = other.presolveOptions_ != null ? other.presolveOptions_.Clone() : null;
2406 lInfRuizIterations_ = other.lInfRuizIterations_;
2407 l2NormRescaling_ = other.l2NormRescaling_;
2408 sufficientReductionForRestart_ = other.sufficientReductionForRestart_;
2409 necessaryReductionForRestart_ = other.necessaryReductionForRestart_;
2410 linesearchRule_ = other.linesearchRule_;
2411 adaptiveLinesearchParameters_ = other.adaptiveLinesearchParameters_ != null ? other.adaptiveLinesearchParameters_.Clone() : null;
2412 malitskyPockParameters_ = other.malitskyPockParameters_ != null ? other.malitskyPockParameters_.Clone() : null;
2413 initialStepSizeScaling_ = other.initialStepSizeScaling_;
2414 randomProjectionSeeds_ = other.randomProjectionSeeds_.Clone();
2415 infiniteConstraintBoundThreshold_ = other.infiniteConstraintBoundThreshold_;
2416 handleSomePrimalGradientsOnFiniteBoundsAsResiduals_ = other.handleSomePrimalGradientsOnFiniteBoundsAsResiduals_;
2417 useDiagonalQpTrustRegionSolver_ = other.useDiagonalQpTrustRegionSolver_;
2418 diagonalQpTrustRegionSolverTolerance_ = other.diagonalQpTrustRegionSolverTolerance_;
2419 useFeasibilityPolishing_ = other.useFeasibilityPolishing_;
2420 applyFeasibilityPolishingAfterLimitsReached_ = other.applyFeasibilityPolishingAfterLimitsReached_;
2421 applyFeasibilityPolishingIfSolverIsInterrupted_ = other.applyFeasibilityPolishingIfSolverIsInterrupted_;
2422 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2423 }
2424
2425 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2426 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2430
2433 private global::Google.OrTools.PDLP.TerminationCriteria terminationCriteria_;
2434 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2435 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2437 get { return terminationCriteria_; }
2438 set {
2439 terminationCriteria_ = value;
2440 }
2441 }
2442
2444 public const int NumThreadsFieldNumber = 2;
2445 private readonly static int NumThreadsDefaultValue = 1;
2446
2447 private int numThreads_;
2454 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2455 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2456 public int NumThreads {
2457 get { if ((_hasBits0 & 1) != 0) { return numThreads_; } else { return NumThreadsDefaultValue; } }
2458 set {
2459 _hasBits0 |= 1;
2460 numThreads_ = value;
2461 }
2462 }
2463
2464 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2465 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2466 public bool HasNumThreads {
2467 get { return (_hasBits0 & 1) != 0; }
2468 }
2469
2470 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2471 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2472 public void ClearNumThreads() {
2473 _hasBits0 &= ~1;
2474 }
2475
2477 public const int NumShardsFieldNumber = 27;
2478 private readonly static int NumShardsDefaultValue = 0;
2479
2480 private int numShards_;
2492 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2493 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2494 public int NumShards {
2495 get { if ((_hasBits0 & 131072) != 0) { return numShards_; } else { return NumShardsDefaultValue; } }
2496 set {
2497 _hasBits0 |= 131072;
2498 numShards_ = value;
2499 }
2500 }
2501
2502 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2503 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2504 public bool HasNumShards {
2505 get { return (_hasBits0 & 131072) != 0; }
2506 }
2507
2508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2510 public void ClearNumShards() {
2511 _hasBits0 &= ~131072;
2512 }
2513
2515 public const int SchedulerTypeFieldNumber = 32;
2516 private readonly static global::Google.OrTools.PDLP.SchedulerType SchedulerTypeDefaultValue = global::Google.OrTools.PDLP.SchedulerType.GoogleThreadpool;
2517
2518 private global::Google.OrTools.PDLP.SchedulerType schedulerType_;
2523 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2524 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2525 public global::Google.OrTools.PDLP.SchedulerType SchedulerType {
2526 get { if ((_hasBits0 & 2097152) != 0) { return schedulerType_; } else { return SchedulerTypeDefaultValue; } }
2527 set {
2528 _hasBits0 |= 2097152;
2529 schedulerType_ = value;
2530 }
2531 }
2532
2533 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2534 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2535 public bool HasSchedulerType {
2536 get { return (_hasBits0 & 2097152) != 0; }
2537 }
2538
2539 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2540 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2541 public void ClearSchedulerType() {
2542 _hasBits0 &= ~2097152;
2543 }
2544
2547 private readonly static bool RecordIterationStatsDefaultValue = false;
2548
2549 private bool recordIterationStats_;
2556 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2557 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2559 get { if ((_hasBits0 & 2) != 0) { return recordIterationStats_; } else { return RecordIterationStatsDefaultValue; } }
2560 set {
2561 _hasBits0 |= 2;
2562 recordIterationStats_ = value;
2563 }
2564 }
2565
2566 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2567 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2569 get { return (_hasBits0 & 2) != 0; }
2570 }
2571
2572 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2573 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2575 _hasBits0 &= ~2;
2576 }
2577
2579 public const int VerbosityLevelFieldNumber = 26;
2580 private readonly static int VerbosityLevelDefaultValue = 0;
2581
2582 private int verbosityLevel_;
2596 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2597 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2598 public int VerbosityLevel {
2599 get { if ((_hasBits0 & 65536) != 0) { return verbosityLevel_; } else { return VerbosityLevelDefaultValue; } }
2600 set {
2601 _hasBits0 |= 65536;
2602 verbosityLevel_ = value;
2603 }
2604 }
2605
2606 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2607 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2608 public bool HasVerbosityLevel {
2609 get { return (_hasBits0 & 65536) != 0; }
2610 }
2611
2612 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2613 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2614 public void ClearVerbosityLevel() {
2615 _hasBits0 &= ~65536;
2616 }
2617
2619 public const int LogIntervalSecondsFieldNumber = 31;
2620 private readonly static double LogIntervalSecondsDefaultValue = 0D;
2621
2622 private double logIntervalSeconds_;
2630 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2631 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2632 public double LogIntervalSeconds {
2633 get { if ((_hasBits0 & 1048576) != 0) { return logIntervalSeconds_; } else { return LogIntervalSecondsDefaultValue; } }
2634 set {
2635 _hasBits0 |= 1048576;
2636 logIntervalSeconds_ = value;
2637 }
2638 }
2639
2640 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2641 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2643 get { return (_hasBits0 & 1048576) != 0; }
2644 }
2645
2646 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2647 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2649 _hasBits0 &= ~1048576;
2650 }
2651
2654 private readonly static int MajorIterationFrequencyDefaultValue = 64;
2655
2656 private int majorIterationFrequency_;
2665 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2666 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2668 get { if ((_hasBits0 & 4) != 0) { return majorIterationFrequency_; } else { return MajorIterationFrequencyDefaultValue; } }
2669 set {
2670 _hasBits0 |= 4;
2671 majorIterationFrequency_ = value;
2672 }
2673 }
2674
2675 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2676 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2678 get { return (_hasBits0 & 4) != 0; }
2679 }
2680
2681 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2682 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2684 _hasBits0 &= ~4;
2685 }
2686
2689 private readonly static int TerminationCheckFrequencyDefaultValue = 64;
2690
2691 private int terminationCheckFrequency_;
2697 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2698 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2700 get { if ((_hasBits0 & 8) != 0) { return terminationCheckFrequency_; } else { return TerminationCheckFrequencyDefaultValue; } }
2701 set {
2702 _hasBits0 |= 8;
2703 terminationCheckFrequency_ = value;
2704 }
2705 }
2706
2707 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2708 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2710 get { return (_hasBits0 & 8) != 0; }
2711 }
2712
2713 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2714 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2716 _hasBits0 &= ~8;
2717 }
2718
2720 public const int RestartStrategyFieldNumber = 6;
2721 private readonly static global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.RestartStrategy RestartStrategyDefaultValue = global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.RestartStrategy.AdaptiveHeuristic;
2722
2723 private global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.RestartStrategy restartStrategy_;
2729 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2730 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2732 get { if ((_hasBits0 & 16) != 0) { return restartStrategy_; } else { return RestartStrategyDefaultValue; } }
2733 set {
2734 _hasBits0 |= 16;
2735 restartStrategy_ = value;
2736 }
2737 }
2738
2739 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2740 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2742 get { return (_hasBits0 & 16) != 0; }
2743 }
2744
2745 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2746 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2747 public void ClearRestartStrategy() {
2748 _hasBits0 &= ~16;
2749 }
2750
2753 private readonly static double PrimalWeightUpdateSmoothingDefaultValue = 0.5D;
2754
2755 private double primalWeightUpdateSmoothing_;
2766 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2767 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2769 get { if ((_hasBits0 & 32) != 0) { return primalWeightUpdateSmoothing_; } else { return PrimalWeightUpdateSmoothingDefaultValue; } }
2770 set {
2771 _hasBits0 |= 32;
2772 primalWeightUpdateSmoothing_ = value;
2773 }
2774 }
2775
2776 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2777 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2779 get { return (_hasBits0 & 32) != 0; }
2780 }
2781
2782 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2783 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2785 _hasBits0 &= ~32;
2786 }
2787
2790 private readonly static double InitialPrimalWeightDefaultValue = 0D;
2791
2792 private double initialPrimalWeight_;
2802 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2803 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2804 public double InitialPrimalWeight {
2805 get { if ((_hasBits0 & 64) != 0) { return initialPrimalWeight_; } else { return InitialPrimalWeightDefaultValue; } }
2806 set {
2807 _hasBits0 |= 64;
2808 initialPrimalWeight_ = value;
2809 }
2810 }
2811
2812 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2813 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2815 get { return (_hasBits0 & 64) != 0; }
2816 }
2817
2818 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2819 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2821 _hasBits0 &= ~64;
2822 }
2823
2825 public const int PresolveOptionsFieldNumber = 16;
2826 private global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.PresolveOptions presolveOptions_;
2827 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2828 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2830 get { return presolveOptions_; }
2831 set {
2832 presolveOptions_ = value;
2833 }
2834 }
2835
2837 public const int LInfRuizIterationsFieldNumber = 9;
2838 private readonly static int LInfRuizIterationsDefaultValue = 5;
2839
2840 private int lInfRuizIterations_;
2846 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2847 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2849 get { if ((_hasBits0 & 128) != 0) { return lInfRuizIterations_; } else { return LInfRuizIterationsDefaultValue; } }
2850 set {
2851 _hasBits0 |= 128;
2852 lInfRuizIterations_ = value;
2853 }
2854 }
2855
2856 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2857 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2859 get { return (_hasBits0 & 128) != 0; }
2860 }
2861
2862 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2863 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2865 _hasBits0 &= ~128;
2866 }
2867
2869 public const int L2NormRescalingFieldNumber = 10;
2870 private readonly static bool L2NormRescalingDefaultValue = true;
2871
2872 private bool l2NormRescaling_;
2877 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2878 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2879 public bool L2NormRescaling {
2880 get { if ((_hasBits0 & 256) != 0) { return l2NormRescaling_; } else { return L2NormRescalingDefaultValue; } }
2881 set {
2882 _hasBits0 |= 256;
2883 l2NormRescaling_ = value;
2884 }
2885 }
2886
2887 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2888 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2890 get { return (_hasBits0 & 256) != 0; }
2891 }
2892
2893 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2894 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2895 public void ClearL2NormRescaling() {
2896 _hasBits0 &= ~256;
2897 }
2898
2901 private readonly static double SufficientReductionForRestartDefaultValue = 0.1D;
2902
2903 private double sufficientReductionForRestart_;
2909 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2910 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2912 get { if ((_hasBits0 & 512) != 0) { return sufficientReductionForRestart_; } else { return SufficientReductionForRestartDefaultValue; } }
2913 set {
2914 _hasBits0 |= 512;
2915 sufficientReductionForRestart_ = value;
2916 }
2917 }
2918
2919 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2920 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2922 get { return (_hasBits0 & 512) != 0; }
2923 }
2924
2925 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2926 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2928 _hasBits0 &= ~512;
2929 }
2930
2933 private readonly static double NecessaryReductionForRestartDefaultValue = 0.9D;
2934
2935 private double necessaryReductionForRestart_;
2943 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2944 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2946 get { if ((_hasBits0 & 2048) != 0) { return necessaryReductionForRestart_; } else { return NecessaryReductionForRestartDefaultValue; } }
2947 set {
2948 _hasBits0 |= 2048;
2949 necessaryReductionForRestart_ = value;
2950 }
2951 }
2952
2953 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2954 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2956 get { return (_hasBits0 & 2048) != 0; }
2957 }
2958
2959 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2960 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2962 _hasBits0 &= ~2048;
2963 }
2964
2966 public const int LinesearchRuleFieldNumber = 12;
2967 private readonly static global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.LinesearchRule LinesearchRuleDefaultValue = global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.LinesearchRule.AdaptiveLinesearchRule;
2968
2969 private global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.LinesearchRule linesearchRule_;
2973 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2974 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2976 get { if ((_hasBits0 & 1024) != 0) { return linesearchRule_; } else { return LinesearchRuleDefaultValue; } }
2977 set {
2978 _hasBits0 |= 1024;
2979 linesearchRule_ = value;
2980 }
2981 }
2982
2983 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2984 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2985 public bool HasLinesearchRule {
2986 get { return (_hasBits0 & 1024) != 0; }
2987 }
2988
2989 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2990 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2991 public void ClearLinesearchRule() {
2992 _hasBits0 &= ~1024;
2993 }
2994
2997 private global::Google.OrTools.PDLP.AdaptiveLinesearchParams adaptiveLinesearchParameters_;
2998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3001 get { return adaptiveLinesearchParameters_; }
3002 set {
3003 adaptiveLinesearchParameters_ = value;
3004 }
3005 }
3006
3009 private global::Google.OrTools.PDLP.MalitskyPockParams malitskyPockParameters_;
3010 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3011 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3013 get { return malitskyPockParameters_; }
3014 set {
3015 malitskyPockParameters_ = value;
3016 }
3017 }
3018
3021 private readonly static double InitialStepSizeScalingDefaultValue = 1D;
3022
3023 private double initialStepSizeScaling_;
3028 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3029 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3031 get { if ((_hasBits0 & 32768) != 0) { return initialStepSizeScaling_; } else { return InitialStepSizeScalingDefaultValue; } }
3032 set {
3033 _hasBits0 |= 32768;
3034 initialStepSizeScaling_ = value;
3035 }
3036 }
3037
3038 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3039 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3041 get { return (_hasBits0 & 32768) != 0; }
3042 }
3043
3044 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3045 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3047 _hasBits0 &= ~32768;
3048 }
3049
3052 private static readonly pb::FieldCodec<int> _repeated_randomProjectionSeeds_codec
3053 = pb::FieldCodec.ForInt32(226);
3054 private readonly pbc::RepeatedField<int> randomProjectionSeeds_ = new pbc::RepeatedField<int>();
3063 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3064 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3065 public pbc::RepeatedField<int> RandomProjectionSeeds {
3066 get { return randomProjectionSeeds_; }
3067 }
3068
3071 private readonly static double InfiniteConstraintBoundThresholdDefaultValue = double.PositiveInfinity;
3072
3073 private double infiniteConstraintBoundThreshold_;
3082 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3083 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3085 get { if ((_hasBits0 & 4096) != 0) { return infiniteConstraintBoundThreshold_; } else { return InfiniteConstraintBoundThresholdDefaultValue; } }
3086 set {
3087 _hasBits0 |= 4096;
3088 infiniteConstraintBoundThreshold_ = value;
3089 }
3090 }
3091
3092 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3093 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3095 get { return (_hasBits0 & 4096) != 0; }
3096 }
3097
3098 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3099 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3101 _hasBits0 &= ~4096;
3102 }
3103
3106 private readonly static bool HandleSomePrimalGradientsOnFiniteBoundsAsResidualsDefaultValue = true;
3107
3108 private bool handleSomePrimalGradientsOnFiniteBoundsAsResiduals_;
3114 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3115 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3117 get { if ((_hasBits0 & 262144) != 0) { return handleSomePrimalGradientsOnFiniteBoundsAsResiduals_; } else { return HandleSomePrimalGradientsOnFiniteBoundsAsResidualsDefaultValue; } }
3118 set {
3119 _hasBits0 |= 262144;
3120 handleSomePrimalGradientsOnFiniteBoundsAsResiduals_ = value;
3121 }
3122 }
3123
3124 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3125 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3127 get { return (_hasBits0 & 262144) != 0; }
3128 }
3129
3130 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3131 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3133 _hasBits0 &= ~262144;
3134 }
3135
3138 private readonly static bool UseDiagonalQpTrustRegionSolverDefaultValue = false;
3139
3140 private bool useDiagonalQpTrustRegionSolver_;
3149 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3150 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3152 get { if ((_hasBits0 & 8192) != 0) { return useDiagonalQpTrustRegionSolver_; } else { return UseDiagonalQpTrustRegionSolverDefaultValue; } }
3153 set {
3154 _hasBits0 |= 8192;
3155 useDiagonalQpTrustRegionSolver_ = value;
3156 }
3157 }
3158
3159 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3160 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3162 get { return (_hasBits0 & 8192) != 0; }
3163 }
3164
3165 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3166 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3168 _hasBits0 &= ~8192;
3169 }
3170
3173 private readonly static double DiagonalQpTrustRegionSolverToleranceDefaultValue = 1e-08D;
3174
3175 private double diagonalQpTrustRegionSolverTolerance_;
3183 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3184 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3186 get { if ((_hasBits0 & 16384) != 0) { return diagonalQpTrustRegionSolverTolerance_; } else { return DiagonalQpTrustRegionSolverToleranceDefaultValue; } }
3187 set {
3188 _hasBits0 |= 16384;
3189 diagonalQpTrustRegionSolverTolerance_ = value;
3190 }
3191 }
3192
3193 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3194 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3196 get { return (_hasBits0 & 16384) != 0; }
3197 }
3198
3199 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3200 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3202 _hasBits0 &= ~16384;
3203 }
3204
3207 private readonly static bool UseFeasibilityPolishingDefaultValue = false;
3208
3209 private bool useFeasibilityPolishing_;
3238 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3239 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3240 public bool UseFeasibilityPolishing {
3241 get { if ((_hasBits0 & 524288) != 0) { return useFeasibilityPolishing_; } else { return UseFeasibilityPolishingDefaultValue; } }
3242 set {
3243 _hasBits0 |= 524288;
3244 useFeasibilityPolishing_ = value;
3245 }
3246 }
3248 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3249 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3250 public bool HasUseFeasibilityPolishing {
3251 get { return (_hasBits0 & 524288) != 0; }
3254 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3255 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3256 public void ClearUseFeasibilityPolishing() {
3257 _hasBits0 &= ~524288;
3259
3261 public const int ApplyFeasibilityPolishingAfterLimitsReachedFieldNumber = 33;
3262 private readonly static bool ApplyFeasibilityPolishingAfterLimitsReachedDefaultValue = false;
3264 private bool applyFeasibilityPolishingAfterLimitsReached_;
3271 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3272 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3274 get { if ((_hasBits0 & 4194304) != 0) { return applyFeasibilityPolishingAfterLimitsReached_; } else { return ApplyFeasibilityPolishingAfterLimitsReachedDefaultValue; } }
3275 set {
3276 _hasBits0 |= 4194304;
3277 applyFeasibilityPolishingAfterLimitsReached_ = value;
3278 }
3279 }
3281 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3282 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3283 public bool HasApplyFeasibilityPolishingAfterLimitsReached {
3284 get { return (_hasBits0 & 4194304) != 0; }
3287 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3288 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3289 public void ClearApplyFeasibilityPolishingAfterLimitsReached() {
3290 _hasBits0 &= ~4194304;
3292
3294 public const int ApplyFeasibilityPolishingIfSolverIsInterruptedFieldNumber = 34;
3295 private readonly static bool ApplyFeasibilityPolishingIfSolverIsInterruptedDefaultValue = false;
3297 private bool applyFeasibilityPolishingIfSolverIsInterrupted_;
3303 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3304 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3306 get { if ((_hasBits0 & 8388608) != 0) { return applyFeasibilityPolishingIfSolverIsInterrupted_; } else { return ApplyFeasibilityPolishingIfSolverIsInterruptedDefaultValue; } }
3307 set {
3308 _hasBits0 |= 8388608;
3309 applyFeasibilityPolishingIfSolverIsInterrupted_ = value;
3310 }
3311 }
3313 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3314 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3315 public bool HasApplyFeasibilityPolishingIfSolverIsInterrupted {
3316 get { return (_hasBits0 & 8388608) != 0; }
3319 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3320 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3321 public void ClearApplyFeasibilityPolishingIfSolverIsInterrupted() {
3322 _hasBits0 &= ~8388608;
3324
3325 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3326 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3327 public override bool Equals(object other) {
3328 return Equals(other as PrimalDualHybridGradientParams);
3330
3331 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3332 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3333 public bool Equals(PrimalDualHybridGradientParams other) {
3334 if (ReferenceEquals(other, null)) {
3335 return false;
3336 }
3337 if (ReferenceEquals(other, this)) {
3338 return true;
3339 }
3340 if (!object.Equals(TerminationCriteria, other.TerminationCriteria)) return false;
3341 if (NumThreads != other.NumThreads) return false;
3342 if (NumShards != other.NumShards) return false;
3343 if (SchedulerType != other.SchedulerType) return false;
3344 if (RecordIterationStats != other.RecordIterationStats) return false;
3345 if (VerbosityLevel != other.VerbosityLevel) return false;
3346 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LogIntervalSeconds, other.LogIntervalSeconds)) return false;
3347 if (MajorIterationFrequency != other.MajorIterationFrequency) return false;
3348 if (TerminationCheckFrequency != other.TerminationCheckFrequency) return false;
3349 if (RestartStrategy != other.RestartStrategy) return false;
3350 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PrimalWeightUpdateSmoothing, other.PrimalWeightUpdateSmoothing)) return false;
3351 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InitialPrimalWeight, other.InitialPrimalWeight)) return false;
3352 if (!object.Equals(PresolveOptions, other.PresolveOptions)) return false;
3353 if (LInfRuizIterations != other.LInfRuizIterations) return false;
3354 if (L2NormRescaling != other.L2NormRescaling) return false;
3355 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SufficientReductionForRestart, other.SufficientReductionForRestart)) return false;
3356 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(NecessaryReductionForRestart, other.NecessaryReductionForRestart)) return false;
3357 if (LinesearchRule != other.LinesearchRule) return false;
3358 if (!object.Equals(AdaptiveLinesearchParameters, other.AdaptiveLinesearchParameters)) return false;
3359 if (!object.Equals(MalitskyPockParameters, other.MalitskyPockParameters)) return false;
3360 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InitialStepSizeScaling, other.InitialStepSizeScaling)) return false;
3361 if(!randomProjectionSeeds_.Equals(other.randomProjectionSeeds_)) return false;
3362 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InfiniteConstraintBoundThreshold, other.InfiniteConstraintBoundThreshold)) return false;
3363 if (HandleSomePrimalGradientsOnFiniteBoundsAsResiduals != other.HandleSomePrimalGradientsOnFiniteBoundsAsResiduals) return false;
3364 if (UseDiagonalQpTrustRegionSolver != other.UseDiagonalQpTrustRegionSolver) return false;
3365 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(DiagonalQpTrustRegionSolverTolerance, other.DiagonalQpTrustRegionSolverTolerance)) return false;
3366 if (UseFeasibilityPolishing != other.UseFeasibilityPolishing) return false;
3367 if (ApplyFeasibilityPolishingAfterLimitsReached != other.ApplyFeasibilityPolishingAfterLimitsReached) return false;
3368 if (ApplyFeasibilityPolishingIfSolverIsInterrupted != other.ApplyFeasibilityPolishingIfSolverIsInterrupted) return false;
3369 return Equals(_unknownFields, other._unknownFields);
3370 }
3371
3372 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3373 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3374 public override int GetHashCode() {
3375 int hash = 1;
3376 if (terminationCriteria_ != null) hash ^= TerminationCriteria.GetHashCode();
3377 if (HasNumThreads) hash ^= NumThreads.GetHashCode();
3378 if (HasNumShards) hash ^= NumShards.GetHashCode();
3379 if (HasSchedulerType) hash ^= SchedulerType.GetHashCode();
3380 if (HasRecordIterationStats) hash ^= RecordIterationStats.GetHashCode();
3381 if (HasVerbosityLevel) hash ^= VerbosityLevel.GetHashCode();
3382 if (HasLogIntervalSeconds) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LogIntervalSeconds);
3383 if (HasMajorIterationFrequency) hash ^= MajorIterationFrequency.GetHashCode();
3385 if (HasRestartStrategy) hash ^= RestartStrategy.GetHashCode();
3386 if (HasPrimalWeightUpdateSmoothing) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PrimalWeightUpdateSmoothing);
3387 if (HasInitialPrimalWeight) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InitialPrimalWeight);
3388 if (presolveOptions_ != null) hash ^= PresolveOptions.GetHashCode();
3389 if (HasLInfRuizIterations) hash ^= LInfRuizIterations.GetHashCode();
3390 if (HasL2NormRescaling) hash ^= L2NormRescaling.GetHashCode();
3391 if (HasSufficientReductionForRestart) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SufficientReductionForRestart);
3392 if (HasNecessaryReductionForRestart) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(NecessaryReductionForRestart);
3393 if (HasLinesearchRule) hash ^= LinesearchRule.GetHashCode();
3394 if (adaptiveLinesearchParameters_ != null) hash ^= AdaptiveLinesearchParameters.GetHashCode();
3395 if (malitskyPockParameters_ != null) hash ^= MalitskyPockParameters.GetHashCode();
3396 if (HasInitialStepSizeScaling) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InitialStepSizeScaling);
3397 hash ^= randomProjectionSeeds_.GetHashCode();
3398 if (HasInfiniteConstraintBoundThreshold) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InfiniteConstraintBoundThreshold);
3401 if (HasDiagonalQpTrustRegionSolverTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(DiagonalQpTrustRegionSolverTolerance);
3402 if (HasUseFeasibilityPolishing) hash ^= UseFeasibilityPolishing.GetHashCode();
3405 if (_unknownFields != null) {
3406 hash ^= _unknownFields.GetHashCode();
3407 }
3408 return hash;
3409 }
3410
3411 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3412 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3413 public override string ToString() {
3414 return pb::JsonFormatter.ToDiagnosticString(this);
3416
3417 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3418 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3419 public void WriteTo(pb::CodedOutputStream output) {
3420 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3421 output.WriteRawMessage(this);
3422 #else
3423 if (terminationCriteria_ != null) {
3424 output.WriteRawTag(10);
3425 output.WriteMessage(TerminationCriteria);
3426 }
3427 if (HasNumThreads) {
3428 output.WriteRawTag(16);
3429 output.WriteInt32(NumThreads);
3430 }
3431 if (HasRecordIterationStats) {
3432 output.WriteRawTag(24);
3433 output.WriteBool(RecordIterationStats);
3434 }
3435 if (HasMajorIterationFrequency) {
3436 output.WriteRawTag(32);
3437 output.WriteInt32(MajorIterationFrequency);
3438 }
3439 if (HasTerminationCheckFrequency) {
3440 output.WriteRawTag(40);
3441 output.WriteInt32(TerminationCheckFrequency);
3442 }
3443 if (HasRestartStrategy) {
3444 output.WriteRawTag(48);
3445 output.WriteEnum((int) RestartStrategy);
3446 }
3447 if (HasPrimalWeightUpdateSmoothing) {
3448 output.WriteRawTag(57);
3449 output.WriteDouble(PrimalWeightUpdateSmoothing);
3450 }
3451 if (HasInitialPrimalWeight) {
3452 output.WriteRawTag(65);
3453 output.WriteDouble(InitialPrimalWeight);
3454 }
3455 if (HasLInfRuizIterations) {
3456 output.WriteRawTag(72);
3457 output.WriteInt32(LInfRuizIterations);
3458 }
3459 if (HasL2NormRescaling) {
3460 output.WriteRawTag(80);
3461 output.WriteBool(L2NormRescaling);
3462 }
3463 if (HasSufficientReductionForRestart) {
3464 output.WriteRawTag(89);
3465 output.WriteDouble(SufficientReductionForRestart);
3466 }
3467 if (HasLinesearchRule) {
3468 output.WriteRawTag(96);
3469 output.WriteEnum((int) LinesearchRule);
3470 }
3471 if (presolveOptions_ != null) {
3472 output.WriteRawTag(130, 1);
3473 output.WriteMessage(PresolveOptions);
3474 }
3475 if (HasNecessaryReductionForRestart) {
3476 output.WriteRawTag(137, 1);
3477 output.WriteDouble(NecessaryReductionForRestart);
3478 }
3479 if (adaptiveLinesearchParameters_ != null) {
3480 output.WriteRawTag(146, 1);
3481 output.WriteMessage(AdaptiveLinesearchParameters);
3482 }
3483 if (malitskyPockParameters_ != null) {
3484 output.WriteRawTag(154, 1);
3485 output.WriteMessage(MalitskyPockParameters);
3486 }
3487 if (HasInfiniteConstraintBoundThreshold) {
3488 output.WriteRawTag(177, 1);
3489 output.WriteDouble(InfiniteConstraintBoundThreshold);
3490 }
3491 if (HasUseDiagonalQpTrustRegionSolver) {
3492 output.WriteRawTag(184, 1);
3493 output.WriteBool(UseDiagonalQpTrustRegionSolver);
3494 }
3495 if (HasDiagonalQpTrustRegionSolverTolerance) {
3496 output.WriteRawTag(193, 1);
3497 output.WriteDouble(DiagonalQpTrustRegionSolverTolerance);
3498 }
3499 if (HasInitialStepSizeScaling) {
3500 output.WriteRawTag(201, 1);
3501 output.WriteDouble(InitialStepSizeScaling);
3502 }
3503 if (HasVerbosityLevel) {
3504 output.WriteRawTag(208, 1);
3505 output.WriteInt32(VerbosityLevel);
3506 }
3507 if (HasNumShards) {
3508 output.WriteRawTag(216, 1);
3509 output.WriteInt32(NumShards);
3510 }
3511 randomProjectionSeeds_.WriteTo(output, _repeated_randomProjectionSeeds_codec);
3512 if (HasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals) {
3513 output.WriteRawTag(232, 1);
3514 output.WriteBool(HandleSomePrimalGradientsOnFiniteBoundsAsResiduals);
3515 }
3516 if (HasUseFeasibilityPolishing) {
3517 output.WriteRawTag(240, 1);
3518 output.WriteBool(UseFeasibilityPolishing);
3519 }
3520 if (HasLogIntervalSeconds) {
3521 output.WriteRawTag(249, 1);
3522 output.WriteDouble(LogIntervalSeconds);
3523 }
3524 if (HasSchedulerType) {
3525 output.WriteRawTag(128, 2);
3526 output.WriteEnum((int) SchedulerType);
3527 }
3528 if (HasApplyFeasibilityPolishingAfterLimitsReached) {
3529 output.WriteRawTag(136, 2);
3530 output.WriteBool(ApplyFeasibilityPolishingAfterLimitsReached);
3531 }
3532 if (HasApplyFeasibilityPolishingIfSolverIsInterrupted) {
3533 output.WriteRawTag(144, 2);
3534 output.WriteBool(ApplyFeasibilityPolishingIfSolverIsInterrupted);
3535 }
3536 if (_unknownFields != null) {
3537 _unknownFields.WriteTo(output);
3538 }
3539 #endif
3540 }
3541
3542 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3543 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3544 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3545 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
3546 if (terminationCriteria_ != null) {
3547 output.WriteRawTag(10);
3548 output.WriteMessage(TerminationCriteria);
3549 }
3550 if (HasNumThreads) {
3551 output.WriteRawTag(16);
3552 output.WriteInt32(NumThreads);
3553 }
3554 if (HasRecordIterationStats) {
3555 output.WriteRawTag(24);
3556 output.WriteBool(RecordIterationStats);
3557 }
3558 if (HasMajorIterationFrequency) {
3559 output.WriteRawTag(32);
3560 output.WriteInt32(MajorIterationFrequency);
3561 }
3562 if (HasTerminationCheckFrequency) {
3563 output.WriteRawTag(40);
3564 output.WriteInt32(TerminationCheckFrequency);
3565 }
3566 if (HasRestartStrategy) {
3567 output.WriteRawTag(48);
3568 output.WriteEnum((int) RestartStrategy);
3569 }
3570 if (HasPrimalWeightUpdateSmoothing) {
3571 output.WriteRawTag(57);
3572 output.WriteDouble(PrimalWeightUpdateSmoothing);
3573 }
3574 if (HasInitialPrimalWeight) {
3575 output.WriteRawTag(65);
3576 output.WriteDouble(InitialPrimalWeight);
3577 }
3578 if (HasLInfRuizIterations) {
3579 output.WriteRawTag(72);
3580 output.WriteInt32(LInfRuizIterations);
3581 }
3582 if (HasL2NormRescaling) {
3583 output.WriteRawTag(80);
3584 output.WriteBool(L2NormRescaling);
3585 }
3586 if (HasSufficientReductionForRestart) {
3587 output.WriteRawTag(89);
3588 output.WriteDouble(SufficientReductionForRestart);
3589 }
3590 if (HasLinesearchRule) {
3591 output.WriteRawTag(96);
3592 output.WriteEnum((int) LinesearchRule);
3593 }
3594 if (presolveOptions_ != null) {
3595 output.WriteRawTag(130, 1);
3596 output.WriteMessage(PresolveOptions);
3597 }
3598 if (HasNecessaryReductionForRestart) {
3599 output.WriteRawTag(137, 1);
3600 output.WriteDouble(NecessaryReductionForRestart);
3601 }
3602 if (adaptiveLinesearchParameters_ != null) {
3603 output.WriteRawTag(146, 1);
3604 output.WriteMessage(AdaptiveLinesearchParameters);
3605 }
3606 if (malitskyPockParameters_ != null) {
3607 output.WriteRawTag(154, 1);
3608 output.WriteMessage(MalitskyPockParameters);
3609 }
3610 if (HasInfiniteConstraintBoundThreshold) {
3611 output.WriteRawTag(177, 1);
3612 output.WriteDouble(InfiniteConstraintBoundThreshold);
3613 }
3614 if (HasUseDiagonalQpTrustRegionSolver) {
3615 output.WriteRawTag(184, 1);
3616 output.WriteBool(UseDiagonalQpTrustRegionSolver);
3617 }
3618 if (HasDiagonalQpTrustRegionSolverTolerance) {
3619 output.WriteRawTag(193, 1);
3620 output.WriteDouble(DiagonalQpTrustRegionSolverTolerance);
3621 }
3622 if (HasInitialStepSizeScaling) {
3623 output.WriteRawTag(201, 1);
3624 output.WriteDouble(InitialStepSizeScaling);
3625 }
3626 if (HasVerbosityLevel) {
3627 output.WriteRawTag(208, 1);
3628 output.WriteInt32(VerbosityLevel);
3629 }
3630 if (HasNumShards) {
3631 output.WriteRawTag(216, 1);
3632 output.WriteInt32(NumShards);
3633 }
3634 randomProjectionSeeds_.WriteTo(ref output, _repeated_randomProjectionSeeds_codec);
3635 if (HasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals) {
3636 output.WriteRawTag(232, 1);
3637 output.WriteBool(HandleSomePrimalGradientsOnFiniteBoundsAsResiduals);
3638 }
3639 if (HasUseFeasibilityPolishing) {
3640 output.WriteRawTag(240, 1);
3641 output.WriteBool(UseFeasibilityPolishing);
3642 }
3643 if (HasLogIntervalSeconds) {
3644 output.WriteRawTag(249, 1);
3645 output.WriteDouble(LogIntervalSeconds);
3646 }
3647 if (HasSchedulerType) {
3648 output.WriteRawTag(128, 2);
3649 output.WriteEnum((int) SchedulerType);
3650 }
3651 if (HasApplyFeasibilityPolishingAfterLimitsReached) {
3652 output.WriteRawTag(136, 2);
3653 output.WriteBool(ApplyFeasibilityPolishingAfterLimitsReached);
3654 }
3655 if (HasApplyFeasibilityPolishingIfSolverIsInterrupted) {
3656 output.WriteRawTag(144, 2);
3657 output.WriteBool(ApplyFeasibilityPolishingIfSolverIsInterrupted);
3658 }
3659 if (_unknownFields != null) {
3660 _unknownFields.WriteTo(ref output);
3661 }
3662 }
3663 #endif
3664
3665 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3666 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3667 public int CalculateSize() {
3668 int size = 0;
3669 if (terminationCriteria_ != null) {
3670 size += 1 + pb::CodedOutputStream.ComputeMessageSize(TerminationCriteria);
3671 }
3672 if (HasNumThreads) {
3673 size += 1 + pb::CodedOutputStream.ComputeInt32Size(NumThreads);
3674 }
3675 if (HasNumShards) {
3676 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumShards);
3677 }
3678 if (HasSchedulerType) {
3679 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SchedulerType);
3680 }
3681 if (HasRecordIterationStats) {
3682 size += 1 + 1;
3683 }
3684 if (HasVerbosityLevel) {
3685 size += 2 + pb::CodedOutputStream.ComputeInt32Size(VerbosityLevel);
3686 }
3687 if (HasLogIntervalSeconds) {
3688 size += 2 + 8;
3689 }
3690 if (HasMajorIterationFrequency) {
3691 size += 1 + pb::CodedOutputStream.ComputeInt32Size(MajorIterationFrequency);
3692 }
3693 if (HasTerminationCheckFrequency) {
3694 size += 1 + pb::CodedOutputStream.ComputeInt32Size(TerminationCheckFrequency);
3695 }
3696 if (HasRestartStrategy) {
3697 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) RestartStrategy);
3698 }
3699 if (HasPrimalWeightUpdateSmoothing) {
3700 size += 1 + 8;
3701 }
3702 if (HasInitialPrimalWeight) {
3703 size += 1 + 8;
3704 }
3705 if (presolveOptions_ != null) {
3706 size += 2 + pb::CodedOutputStream.ComputeMessageSize(PresolveOptions);
3707 }
3708 if (HasLInfRuizIterations) {
3709 size += 1 + pb::CodedOutputStream.ComputeInt32Size(LInfRuizIterations);
3710 }
3711 if (HasL2NormRescaling) {
3712 size += 1 + 1;
3713 }
3714 if (HasSufficientReductionForRestart) {
3715 size += 1 + 8;
3716 }
3717 if (HasNecessaryReductionForRestart) {
3718 size += 2 + 8;
3719 }
3720 if (HasLinesearchRule) {
3721 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LinesearchRule);
3722 }
3723 if (adaptiveLinesearchParameters_ != null) {
3724 size += 2 + pb::CodedOutputStream.ComputeMessageSize(AdaptiveLinesearchParameters);
3725 }
3726 if (malitskyPockParameters_ != null) {
3727 size += 2 + pb::CodedOutputStream.ComputeMessageSize(MalitskyPockParameters);
3728 }
3729 if (HasInitialStepSizeScaling) {
3730 size += 2 + 8;
3731 }
3732 size += randomProjectionSeeds_.CalculateSize(_repeated_randomProjectionSeeds_codec);
3733 if (HasInfiniteConstraintBoundThreshold) {
3734 size += 2 + 8;
3735 }
3736 if (HasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals) {
3737 size += 2 + 1;
3738 }
3739 if (HasUseDiagonalQpTrustRegionSolver) {
3740 size += 2 + 1;
3741 }
3742 if (HasDiagonalQpTrustRegionSolverTolerance) {
3743 size += 2 + 8;
3744 }
3745 if (HasUseFeasibilityPolishing) {
3746 size += 2 + 1;
3747 }
3748 if (HasApplyFeasibilityPolishingAfterLimitsReached) {
3749 size += 2 + 1;
3750 }
3751 if (HasApplyFeasibilityPolishingIfSolverIsInterrupted) {
3752 size += 2 + 1;
3753 }
3754 if (_unknownFields != null) {
3755 size += _unknownFields.CalculateSize();
3756 }
3757 return size;
3758 }
3759
3760 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3761 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3762 public void MergeFrom(PrimalDualHybridGradientParams other) {
3763 if (other == null) {
3764 return;
3765 }
3766 if (other.terminationCriteria_ != null) {
3767 if (terminationCriteria_ == null) {
3768 TerminationCriteria = new global::Google.OrTools.PDLP.TerminationCriteria();
3769 }
3770 TerminationCriteria.MergeFrom(other.TerminationCriteria);
3771 }
3772 if (other.HasNumThreads) {
3773 NumThreads = other.NumThreads;
3774 }
3775 if (other.HasNumShards) {
3776 NumShards = other.NumShards;
3777 }
3778 if (other.HasSchedulerType) {
3779 SchedulerType = other.SchedulerType;
3780 }
3781 if (other.HasRecordIterationStats) {
3782 RecordIterationStats = other.RecordIterationStats;
3783 }
3784 if (other.HasVerbosityLevel) {
3785 VerbosityLevel = other.VerbosityLevel;
3786 }
3787 if (other.HasLogIntervalSeconds) {
3788 LogIntervalSeconds = other.LogIntervalSeconds;
3789 }
3790 if (other.HasMajorIterationFrequency) {
3791 MajorIterationFrequency = other.MajorIterationFrequency;
3792 }
3793 if (other.HasTerminationCheckFrequency) {
3794 TerminationCheckFrequency = other.TerminationCheckFrequency;
3795 }
3796 if (other.HasRestartStrategy) {
3797 RestartStrategy = other.RestartStrategy;
3798 }
3799 if (other.HasPrimalWeightUpdateSmoothing) {
3800 PrimalWeightUpdateSmoothing = other.PrimalWeightUpdateSmoothing;
3801 }
3802 if (other.HasInitialPrimalWeight) {
3803 InitialPrimalWeight = other.InitialPrimalWeight;
3804 }
3805 if (other.presolveOptions_ != null) {
3806 if (presolveOptions_ == null) {
3807 PresolveOptions = new global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.PresolveOptions();
3808 }
3809 PresolveOptions.MergeFrom(other.PresolveOptions);
3810 }
3811 if (other.HasLInfRuizIterations) {
3812 LInfRuizIterations = other.LInfRuizIterations;
3813 }
3814 if (other.HasL2NormRescaling) {
3815 L2NormRescaling = other.L2NormRescaling;
3816 }
3817 if (other.HasSufficientReductionForRestart) {
3818 SufficientReductionForRestart = other.SufficientReductionForRestart;
3819 }
3820 if (other.HasNecessaryReductionForRestart) {
3821 NecessaryReductionForRestart = other.NecessaryReductionForRestart;
3822 }
3823 if (other.HasLinesearchRule) {
3824 LinesearchRule = other.LinesearchRule;
3825 }
3826 if (other.adaptiveLinesearchParameters_ != null) {
3827 if (adaptiveLinesearchParameters_ == null) {
3828 AdaptiveLinesearchParameters = new global::Google.OrTools.PDLP.AdaptiveLinesearchParams();
3829 }
3830 AdaptiveLinesearchParameters.MergeFrom(other.AdaptiveLinesearchParameters);
3831 }
3832 if (other.malitskyPockParameters_ != null) {
3833 if (malitskyPockParameters_ == null) {
3834 MalitskyPockParameters = new global::Google.OrTools.PDLP.MalitskyPockParams();
3835 }
3836 MalitskyPockParameters.MergeFrom(other.MalitskyPockParameters);
3837 }
3838 if (other.HasInitialStepSizeScaling) {
3839 InitialStepSizeScaling = other.InitialStepSizeScaling;
3840 }
3841 randomProjectionSeeds_.Add(other.randomProjectionSeeds_);
3842 if (other.HasInfiniteConstraintBoundThreshold) {
3843 InfiniteConstraintBoundThreshold = other.InfiniteConstraintBoundThreshold;
3844 }
3845 if (other.HasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals) {
3846 HandleSomePrimalGradientsOnFiniteBoundsAsResiduals = other.HandleSomePrimalGradientsOnFiniteBoundsAsResiduals;
3847 }
3848 if (other.HasUseDiagonalQpTrustRegionSolver) {
3849 UseDiagonalQpTrustRegionSolver = other.UseDiagonalQpTrustRegionSolver;
3850 }
3851 if (other.HasDiagonalQpTrustRegionSolverTolerance) {
3852 DiagonalQpTrustRegionSolverTolerance = other.DiagonalQpTrustRegionSolverTolerance;
3853 }
3854 if (other.HasUseFeasibilityPolishing) {
3855 UseFeasibilityPolishing = other.UseFeasibilityPolishing;
3856 }
3857 if (other.HasApplyFeasibilityPolishingAfterLimitsReached) {
3858 ApplyFeasibilityPolishingAfterLimitsReached = other.ApplyFeasibilityPolishingAfterLimitsReached;
3859 }
3860 if (other.HasApplyFeasibilityPolishingIfSolverIsInterrupted) {
3861 ApplyFeasibilityPolishingIfSolverIsInterrupted = other.ApplyFeasibilityPolishingIfSolverIsInterrupted;
3862 }
3863 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3864 }
3865
3866 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3867 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3868 public void MergeFrom(pb::CodedInputStream input) {
3869 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
3870 input.ReadRawMessage(this);
3871 #else
3872 uint tag;
3873 while ((tag = input.ReadTag()) != 0) {
3874 if ((tag & 7) == 4) {
3875 // Abort on any end group tag.
3876 return;
3877 }
3878 switch(tag) {
3879 default:
3880 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3881 break;
3882 case 10: {
3883 if (terminationCriteria_ == null) {
3884 TerminationCriteria = new global::Google.OrTools.PDLP.TerminationCriteria();
3885 }
3886 input.ReadMessage(TerminationCriteria);
3887 break;
3888 }
3889 case 16: {
3890 NumThreads = input.ReadInt32();
3891 break;
3892 }
3893 case 24: {
3894 RecordIterationStats = input.ReadBool();
3895 break;
3896 }
3897 case 32: {
3898 MajorIterationFrequency = input.ReadInt32();
3899 break;
3900 }
3901 case 40: {
3902 TerminationCheckFrequency = input.ReadInt32();
3903 break;
3904 }
3905 case 48: {
3906 RestartStrategy = (global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.RestartStrategy) input.ReadEnum();
3907 break;
3908 }
3909 case 57: {
3910 PrimalWeightUpdateSmoothing = input.ReadDouble();
3911 break;
3912 }
3913 case 65: {
3914 InitialPrimalWeight = input.ReadDouble();
3915 break;
3916 }
3917 case 72: {
3918 LInfRuizIterations = input.ReadInt32();
3919 break;
3920 }
3921 case 80: {
3922 L2NormRescaling = input.ReadBool();
3923 break;
3924 }
3925 case 89: {
3926 SufficientReductionForRestart = input.ReadDouble();
3927 break;
3928 }
3929 case 96: {
3930 LinesearchRule = (global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.LinesearchRule) input.ReadEnum();
3931 break;
3932 }
3933 case 130: {
3934 if (presolveOptions_ == null) {
3935 PresolveOptions = new global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.PresolveOptions();
3936 }
3937 input.ReadMessage(PresolveOptions);
3938 break;
3939 }
3940 case 137: {
3941 NecessaryReductionForRestart = input.ReadDouble();
3942 break;
3943 }
3944 case 146: {
3945 if (adaptiveLinesearchParameters_ == null) {
3946 AdaptiveLinesearchParameters = new global::Google.OrTools.PDLP.AdaptiveLinesearchParams();
3947 }
3948 input.ReadMessage(AdaptiveLinesearchParameters);
3949 break;
3950 }
3951 case 154: {
3952 if (malitskyPockParameters_ == null) {
3953 MalitskyPockParameters = new global::Google.OrTools.PDLP.MalitskyPockParams();
3954 }
3955 input.ReadMessage(MalitskyPockParameters);
3956 break;
3957 }
3958 case 177: {
3959 InfiniteConstraintBoundThreshold = input.ReadDouble();
3960 break;
3961 }
3962 case 184: {
3963 UseDiagonalQpTrustRegionSolver = input.ReadBool();
3964 break;
3965 }
3966 case 193: {
3967 DiagonalQpTrustRegionSolverTolerance = input.ReadDouble();
3968 break;
3969 }
3970 case 201: {
3971 InitialStepSizeScaling = input.ReadDouble();
3972 break;
3973 }
3974 case 208: {
3975 VerbosityLevel = input.ReadInt32();
3976 break;
3977 }
3978 case 216: {
3979 NumShards = input.ReadInt32();
3980 break;
3981 }
3982 case 226:
3983 case 224: {
3984 randomProjectionSeeds_.AddEntriesFrom(input, _repeated_randomProjectionSeeds_codec);
3985 break;
3986 }
3987 case 232: {
3989 break;
3990 }
3991 case 240: {
3992 UseFeasibilityPolishing = input.ReadBool();
3993 break;
3994 }
3995 case 249: {
3996 LogIntervalSeconds = input.ReadDouble();
3997 break;
3998 }
3999 case 256: {
4000 SchedulerType = (global::Google.OrTools.PDLP.SchedulerType) input.ReadEnum();
4001 break;
4002 }
4003 case 264: {
4005 break;
4006 }
4007 case 272: {
4009 break;
4010 }
4011 }
4012 }
4013 #endif
4014 }
4015
4016 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4017 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4018 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4019 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4020 uint tag;
4021 while ((tag = input.ReadTag()) != 0) {
4022 if ((tag & 7) == 4) {
4023 // Abort on any end group tag.
4024 return;
4025 }
4026 switch(tag) {
4027 default:
4028 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4029 break;
4030 case 10: {
4031 if (terminationCriteria_ == null) {
4032 TerminationCriteria = new global::Google.OrTools.PDLP.TerminationCriteria();
4033 }
4034 input.ReadMessage(TerminationCriteria);
4035 break;
4036 }
4037 case 16: {
4038 NumThreads = input.ReadInt32();
4039 break;
4040 }
4041 case 24: {
4042 RecordIterationStats = input.ReadBool();
4043 break;
4044 }
4045 case 32: {
4046 MajorIterationFrequency = input.ReadInt32();
4047 break;
4048 }
4049 case 40: {
4050 TerminationCheckFrequency = input.ReadInt32();
4051 break;
4052 }
4053 case 48: {
4054 RestartStrategy = (global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.RestartStrategy) input.ReadEnum();
4055 break;
4056 }
4057 case 57: {
4058 PrimalWeightUpdateSmoothing = input.ReadDouble();
4059 break;
4060 }
4061 case 65: {
4062 InitialPrimalWeight = input.ReadDouble();
4063 break;
4064 }
4065 case 72: {
4066 LInfRuizIterations = input.ReadInt32();
4067 break;
4068 }
4069 case 80: {
4070 L2NormRescaling = input.ReadBool();
4071 break;
4072 }
4073 case 89: {
4074 SufficientReductionForRestart = input.ReadDouble();
4075 break;
4076 }
4077 case 96: {
4078 LinesearchRule = (global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.LinesearchRule) input.ReadEnum();
4079 break;
4080 }
4081 case 130: {
4082 if (presolveOptions_ == null) {
4083 PresolveOptions = new global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.PresolveOptions();
4084 }
4085 input.ReadMessage(PresolveOptions);
4086 break;
4087 }
4088 case 137: {
4089 NecessaryReductionForRestart = input.ReadDouble();
4090 break;
4091 }
4092 case 146: {
4093 if (adaptiveLinesearchParameters_ == null) {
4094 AdaptiveLinesearchParameters = new global::Google.OrTools.PDLP.AdaptiveLinesearchParams();
4095 }
4096 input.ReadMessage(AdaptiveLinesearchParameters);
4097 break;
4098 }
4099 case 154: {
4100 if (malitskyPockParameters_ == null) {
4101 MalitskyPockParameters = new global::Google.OrTools.PDLP.MalitskyPockParams();
4102 }
4103 input.ReadMessage(MalitskyPockParameters);
4104 break;
4105 }
4106 case 177: {
4107 InfiniteConstraintBoundThreshold = input.ReadDouble();
4108 break;
4109 }
4110 case 184: {
4111 UseDiagonalQpTrustRegionSolver = input.ReadBool();
4112 break;
4113 }
4114 case 193: {
4115 DiagonalQpTrustRegionSolverTolerance = input.ReadDouble();
4116 break;
4117 }
4118 case 201: {
4119 InitialStepSizeScaling = input.ReadDouble();
4120 break;
4121 }
4122 case 208: {
4123 VerbosityLevel = input.ReadInt32();
4124 break;
4125 }
4126 case 216: {
4127 NumShards = input.ReadInt32();
4128 break;
4129 }
4130 case 226:
4131 case 224: {
4132 randomProjectionSeeds_.AddEntriesFrom(ref input, _repeated_randomProjectionSeeds_codec);
4133 break;
4134 }
4135 case 232: {
4136 HandleSomePrimalGradientsOnFiniteBoundsAsResiduals = input.ReadBool();
4137 break;
4138 }
4139 case 240: {
4140 UseFeasibilityPolishing = input.ReadBool();
4141 break;
4142 }
4143 case 249: {
4144 LogIntervalSeconds = input.ReadDouble();
4145 break;
4146 }
4147 case 256: {
4148 SchedulerType = (global::Google.OrTools.PDLP.SchedulerType) input.ReadEnum();
4149 break;
4150 }
4151 case 264: {
4152 ApplyFeasibilityPolishingAfterLimitsReached = input.ReadBool();
4153 break;
4154 }
4155 case 272: {
4156 ApplyFeasibilityPolishingIfSolverIsInterrupted = input.ReadBool();
4157 break;
4158 }
4159 }
4160 }
4161 }
4162 #endif
4163
4164 #region Nested types
4166 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4167 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4168 public static partial class Types {
4169 public enum RestartStrategy {
4170 [pbr::OriginalName("RESTART_STRATEGY_UNSPECIFIED")] Unspecified = 0,
4171 /// <summary>
4172 /// No restarts are performed. The average solution is cleared every major
4173 /// iteration, but the current solution is not changed.
4174 /// </summary>
4175 [pbr::OriginalName("NO_RESTARTS")] NoRestarts = 1,
4180 [pbr::OriginalName("EVERY_MAJOR_ITERATION")] EveryMajorIteration = 2,
4189 [pbr::OriginalName("ADAPTIVE_HEURISTIC")] AdaptiveHeuristic = 3,
4197 [pbr::OriginalName("ADAPTIVE_DISTANCE_BASED")] AdaptiveDistanceBased = 4,
4198 }
4200 public enum LinesearchRule {
4201 [pbr::OriginalName("LINESEARCH_RULE_UNSPECIFIED")] Unspecified = 0,
4202 /// <summary>
4203 /// Applies the heuristic rule presented in Section 3.1 of
4204 /// https://arxiv.org/pdf/2106.04756.pdf (further generalized to QP). There
4205 /// is not a proof of convergence for it. It is usually the fastest in
4206 /// practice but sometimes behaves poorly.
4207 /// </summary>
4208 [pbr::OriginalName("ADAPTIVE_LINESEARCH_RULE")] AdaptiveLinesearchRule = 1,
4215 [pbr::OriginalName("MALITSKY_POCK_LINESEARCH_RULE")] MalitskyPockLinesearchRule = 2,
4220 [pbr::OriginalName("CONSTANT_STEP_SIZE_RULE")] ConstantStepSizeRule = 3,
4221 }
4223 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
4224 public sealed partial class PresolveOptions : pb::IMessage<PresolveOptions>
4225 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4226 , pb::IBufferMessage
4227 #endif
4228 {
4229 private static readonly pb::MessageParser<PresolveOptions> _parser = new pb::MessageParser<PresolveOptions>(() => new PresolveOptions());
4230 private pb::UnknownFieldSet _unknownFields;
4231 private int _hasBits0;
4232 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4233 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4234 public static pb::MessageParser<PresolveOptions> Parser { get { return _parser; } }
4235
4236 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4237 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4238 public static pbr::MessageDescriptor Descriptor {
4239 get { return global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Descriptor.NestedTypes[0]; }
4241
4242 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4243 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4244 pbr::MessageDescriptor pb::IMessage.Descriptor {
4245 get { return Descriptor; }
4246 }
4247
4248 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4249 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4250 public PresolveOptions() {
4251 OnConstruction();
4253
4254 partial void OnConstruction();
4255
4256 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4257 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4258 public PresolveOptions(PresolveOptions other) : this() {
4259 _hasBits0 = other._hasBits0;
4260 useGlop_ = other.useGlop_;
4261 glopParameters_ = other.glopParameters_ != null ? other.glopParameters_.Clone() : null;
4262 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4263 }
4264
4265 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4266 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4267 public PresolveOptions Clone() {
4268 return new PresolveOptions(this);
4270
4272 public const int UseGlopFieldNumber = 1;
4273 private readonly static bool UseGlopDefaultValue = false;
4275 private bool useGlop_;
4286 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4287 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4288 public bool UseGlop {
4289 get { if ((_hasBits0 & 1) != 0) { return useGlop_; } else { return UseGlopDefaultValue; } }
4290 set {
4291 _hasBits0 |= 1;
4292 useGlop_ = value;
4293 }
4294 }
4296 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4297 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4298 public bool HasUseGlop {
4299 get { return (_hasBits0 & 1) != 0; }
4302 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4303 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4304 public void ClearUseGlop() {
4305 _hasBits0 &= ~1;
4307
4309 public const int GlopParametersFieldNumber = 2;
4310 private global::Google.OrTools.Glop.GlopParameters glopParameters_;
4315 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4316 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4317 public global::Google.OrTools.Glop.GlopParameters GlopParameters {
4318 get { return glopParameters_; }
4319 set {
4320 glopParameters_ = value;
4321 }
4322 }
4323
4324 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4325 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4326 public override bool Equals(object other) {
4327 return Equals(other as PresolveOptions);
4329
4330 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4331 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4332 public bool Equals(PresolveOptions other) {
4333 if (ReferenceEquals(other, null)) {
4334 return false;
4335 }
4336 if (ReferenceEquals(other, this)) {
4337 return true;
4338 }
4339 if (UseGlop != other.UseGlop) return false;
4340 if (!object.Equals(GlopParameters, other.GlopParameters)) return false;
4341 return Equals(_unknownFields, other._unknownFields);
4342 }
4343
4344 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4345 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4346 public override int GetHashCode() {
4347 int hash = 1;
4348 if (HasUseGlop) hash ^= UseGlop.GetHashCode();
4349 if (glopParameters_ != null) hash ^= GlopParameters.GetHashCode();
4350 if (_unknownFields != null) {
4351 hash ^= _unknownFields.GetHashCode();
4352 }
4353 return hash;
4354 }
4355
4356 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4357 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4358 public override string ToString() {
4359 return pb::JsonFormatter.ToDiagnosticString(this);
4361
4362 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4363 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4364 public void WriteTo(pb::CodedOutputStream output) {
4365 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4366 output.WriteRawMessage(this);
4367 #else
4368 if (HasUseGlop) {
4369 output.WriteRawTag(8);
4370 output.WriteBool(UseGlop);
4371 }
4372 if (glopParameters_ != null) {
4373 output.WriteRawTag(18);
4374 output.WriteMessage(GlopParameters);
4375 }
4376 if (_unknownFields != null) {
4377 _unknownFields.WriteTo(output);
4378 }
4379 #endif
4380 }
4381
4382 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4383 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4384 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4385 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
4386 if (HasUseGlop) {
4387 output.WriteRawTag(8);
4388 output.WriteBool(UseGlop);
4389 }
4390 if (glopParameters_ != null) {
4391 output.WriteRawTag(18);
4392 output.WriteMessage(GlopParameters);
4393 }
4394 if (_unknownFields != null) {
4395 _unknownFields.WriteTo(ref output);
4396 }
4397 }
4398 #endif
4399
4400 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4401 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4402 public int CalculateSize() {
4403 int size = 0;
4405 size += 1 + 1;
4406 }
4407 if (glopParameters_ != null) {
4408 size += 1 + pb::CodedOutputStream.ComputeMessageSize(GlopParameters);
4409 }
4410 if (_unknownFields != null) {
4411 size += _unknownFields.CalculateSize();
4412 }
4413 return size;
4414 }
4415
4416 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4417 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4418 public void MergeFrom(PresolveOptions other) {
4419 if (other == null) {
4420 return;
4421 }
4422 if (other.HasUseGlop) {
4423 UseGlop = other.UseGlop;
4424 }
4425 if (other.glopParameters_ != null) {
4426 if (glopParameters_ == null) {
4427 GlopParameters = new global::Google.OrTools.Glop.GlopParameters();
4428 }
4429 GlopParameters.MergeFrom(other.GlopParameters);
4430 }
4431 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4432 }
4433
4434 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4435 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4436 public void MergeFrom(pb::CodedInputStream input) {
4437 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4438 input.ReadRawMessage(this);
4439 #else
4440 uint tag;
4441 while ((tag = input.ReadTag()) != 0) {
4442 if ((tag & 7) == 4) {
4443 // Abort on any end group tag.
4444 return;
4445 }
4446 switch(tag) {
4447 default:
4448 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4449 break;
4450 case 8: {
4451 UseGlop = input.ReadBool();
4452 break;
4453 }
4454 case 18: {
4455 if (glopParameters_ == null) {
4456 GlopParameters = new global::Google.OrTools.Glop.GlopParameters();
4457 }
4458 input.ReadMessage(GlopParameters);
4459 break;
4460 }
4461 }
4462 }
4463 #endif
4464 }
4465
4466 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
4467 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4468 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4469 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
4470 uint tag;
4471 while ((tag = input.ReadTag()) != 0) {
4472 if ((tag & 7) == 4) {
4473 // Abort on any end group tag.
4474 return;
4475 }
4476 switch(tag) {
4477 default:
4478 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
4479 break;
4480 case 8: {
4481 UseGlop = input.ReadBool();
4482 break;
4483 }
4484 case 18: {
4485 if (glopParameters_ == null) {
4486 GlopParameters = new global::Google.OrTools.Glop.GlopParameters();
4487 }
4488 input.ReadMessage(GlopParameters);
4489 break;
4490 }
4491 }
4492 }
4493 }
4494 #endif
4495
4496 }
4497
4498 }
4499 #endregion
4500
4501 }
4502
4503 #endregion
4504
4505}
4506
4507#endregion Designer generated code
global::Google.Protobuf pb
global::Google.Protobuf.Reflection pbr
global::System.Collections.Generic scg
global::Google.Protobuf.Collections pbc
At the end of each iteration, regardless of whether the step was accepted or not, the adaptive rule u...
static pb::MessageParser< AdaptiveLinesearchParams > Parser
void WriteTo(pb::CodedOutputStream output)
static pbr::MessageDescriptor Descriptor
bool Equals(AdaptiveLinesearchParams other)
double StepSizeReductionExponent
The step size reduction exponent defines a step size given by (1 - (total_steps_attempted + 1)^(-step...
bool HasStepSizeReductionExponent
Gets whether the "step_size_reduction_exponent" field is set.
double StepSizeGrowthExponent
The step size growth exponent defines a step size given by (1 + (total_steps_attempted + 1)^(-step_si...
const int StepSizeGrowthExponentFieldNumber
Field number for the "step_size_growth_exponent" field.
void ClearStepSizeReductionExponent()
Clears the value of the "step_size_reduction_exponent" field.
bool HasStepSizeGrowthExponent
Gets whether the "step_size_growth_exponent" field is set.
void ClearStepSizeGrowthExponent()
Clears the value of the "step_size_growth_exponent" field.
AdaptiveLinesearchParams(AdaptiveLinesearchParams other)
const int StepSizeReductionExponentFieldNumber
Field number for the "step_size_reduction_exponent" field.
void MergeFrom(AdaptiveLinesearchParams other)
void MergeFrom(pb::CodedInputStream input)
const int StepSizeDownscalingFactorFieldNumber
Field number for the "step_size_downscaling_factor" field.
void ClearLinesearchContractionFactor()
Clears the value of the "linesearch_contraction_factor" field.
bool HasStepSizeDownscalingFactor
Gets whether the "step_size_downscaling_factor" field is set.
override bool Equals(object other)
double StepSizeInterpolation
Malitsky and Pock linesearch rule permits an arbitrary choice of the first step size guess within an ...
double StepSizeDownscalingFactor
At every inner iteration the algorithm can decide to accept the step size or to update it to step_siz...
void ClearStepSizeDownscalingFactor()
Clears the value of the "step_size_downscaling_factor" field.
const int LinesearchContractionFactorFieldNumber
Field number for the "linesearch_contraction_factor" field.
static pb::MessageParser< MalitskyPockParams > Parser
double LinesearchContractionFactor
Contraction factor used in the linesearch condition of Malitsky and Pock. A step size is accepted if ...
MalitskyPockParams(MalitskyPockParams other)
void WriteTo(pb::CodedOutputStream output)
bool HasStepSizeInterpolation
Gets whether the "step_size_interpolation" field is set.
bool HasLinesearchContractionFactor
Gets whether the "linesearch_contraction_factor" field is set.
const int StepSizeInterpolationFieldNumber
Field number for the "step_size_interpolation" field.
void MergeFrom(pb::CodedInputStream input)
bool Equals(MalitskyPockParams other)
static pbr::MessageDescriptor Descriptor
void MergeFrom(MalitskyPockParams other)
void ClearStepSizeInterpolation()
Clears the value of the "step_size_interpolation" field.
global::Google.OrTools.Glop.GlopParameters GlopParameters
Parameters to control glop's presolver. Only used when use_glop is true. These are merged with and ov...
bool UseGlop
If true runs Glop's presolver on the given instance prior to solving.
Container for nested types declared in the PrimalDualHybridGradientParams message type.
@ AdaptiveHeuristic
A heuristic that adaptively decides on every major iteration whether to restart (this is forced appro...
@ AdaptiveDistanceBased
A distance-based restarting scheme that restarts the algorithm whenever an appropriate potential func...
@ EveryMajorIteration
On every major iteration, the current solution is reset to the average since the last major iteration...
@ NoRestarts
No restarts are performed. The average solution is cleared every major iteration, but the current sol...
@ MalitskyPockLinesearchRule
Applies Malitsky & Pock linesearch rule. This guarantees an ergodic O(1/N) convergence rate https://a...
@ ConstantStepSizeRule
Uses a constant step size corresponding to an estimate of the maximum singular value of the constrain...
@ AdaptiveLinesearchRule
Applies the heuristic rule presented in Section 3.1 of https://arxiv.org/pdf/2106....
Parameters for PrimalDualHybridGradient() in primal_dual_hybrid_gradient.h. While the defaults are ge...
void ClearPrimalWeightUpdateSmoothing()
Clears the value of the "primal_weight_update_smoothing" field.
double InitialStepSizeScaling
Scaling factor applied to the initial step size (all step sizes if linesearch_rule == CONSTANT_STEP_S...
void ClearLinesearchRule()
Clears the value of the "linesearch_rule" field.
void ClearTerminationCheckFrequency()
Clears the value of the "termination_check_frequency" field.
const int MalitskyPockParametersFieldNumber
Field number for the "malitsky_pock_parameters" field.
const int L2NormRescalingFieldNumber
Field number for the "l2_norm_rescaling" field.
const int TerminationCriteriaFieldNumber
Field number for the "termination_criteria" field.
bool HasApplyFeasibilityPolishingAfterLimitsReached
Gets whether the "apply_feasibility_polishing_after_limits_reached" field is set.
global::Google.OrTools.PDLP.SchedulerType SchedulerType
The type of scheduler used for CPU multi-threading. See the documentation of the corresponding enum f...
bool HasRecordIterationStats
Gets whether the "record_iteration_stats" field is set.
global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.LinesearchRule LinesearchRule
Linesearch rule applied at each major iteration.
const int TerminationCheckFrequencyFieldNumber
Field number for the "termination_check_frequency" field.
bool HasApplyFeasibilityPolishingIfSolverIsInterrupted
Gets whether the "apply_feasibility_polishing_if_solver_is_interrupted" field is set.
bool HasInitialPrimalWeight
Gets whether the "initial_primal_weight" field is set.
bool HasRestartStrategy
Gets whether the "restart_strategy" field is set.
bool UseDiagonalQpTrustRegionSolver
When solving QPs with diagonal objective matrices, this option can be turned on to enable an experime...
double DiagonalQpTrustRegionSolverTolerance
The solve tolerance of the experimental trust region solver for diagonal QPs, controlling the accurac...
bool HasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals
Gets whether the "handle_some_primal_gradients_on_finite_bounds_as_residuals" field is set.
bool HasTerminationCheckFrequency
Gets whether the "termination_check_frequency" field is set.
int NumShards
For more efficient parallel computation, the matrices and vectors are divided (virtually) into num_sh...
void ClearNecessaryReductionForRestart()
Clears the value of the "necessary_reduction_for_restart" field.
bool HasDiagonalQpTrustRegionSolverTolerance
Gets whether the "diagonal_qp_trust_region_solver_tolerance" field is set.
bool UseFeasibilityPolishing
If true, periodically runs feasibility polishing, which attempts to move from latest average iterate ...
bool ApplyFeasibilityPolishingAfterLimitsReached
If true, feasibility polishing will be applied after the iteration limit, kkt limit,...
const int RecordIterationStatsFieldNumber
Field number for the "record_iteration_stats" field.
void ClearMajorIterationFrequency()
Clears the value of the "major_iteration_frequency" field.
const int MajorIterationFrequencyFieldNumber
Field number for the "major_iteration_frequency" field.
const int SufficientReductionForRestartFieldNumber
Field number for the "sufficient_reduction_for_restart" field.
void ClearDiagonalQpTrustRegionSolverTolerance()
Clears the value of the "diagonal_qp_trust_region_solver_tolerance" field.
const int PrimalWeightUpdateSmoothingFieldNumber
Field number for the "primal_weight_update_smoothing" field.
void ClearSchedulerType()
Clears the value of the "scheduler_type" field.
void ClearUseDiagonalQpTrustRegionSolver()
Clears the value of the "use_diagonal_qp_trust_region_solver" field.
bool ApplyFeasibilityPolishingIfSolverIsInterrupted
If true, feasibility polishing will be applied after the solver is interrupted. This can result in a ...
bool HasLogIntervalSeconds
Gets whether the "log_interval_seconds" field is set.
int TerminationCheckFrequency
The frequency (based on a counter reset every major iteration) to check for termination (involves ext...
void ClearInitialPrimalWeight()
Clears the value of the "initial_primal_weight" field.
void ClearVerbosityLevel()
Clears the value of the "verbosity_level" field.
bool HasVerbosityLevel
Gets whether the "verbosity_level" field is set.
int VerbosityLevel
The verbosity of logging. 0: No informational logging. (Errors are logged.) 1: Summary statistics onl...
int LInfRuizIterations
Number of L_infinity Ruiz rescaling iterations to apply to the constraint matrix. Zero disables this ...
const int NecessaryReductionForRestartFieldNumber
Field number for the "necessary_reduction_for_restart" field.
void ClearRestartStrategy()
Clears the value of the "restart_strategy" field.
bool HasInfiniteConstraintBoundThreshold
Gets whether the "infinite_constraint_bound_threshold" field is set.
bool HasNumThreads
Gets whether the "num_threads" field is set.
bool HasLInfRuizIterations
Gets whether the "l_inf_ruiz_iterations" field is set.
const int PresolveOptionsFieldNumber
Field number for the "presolve_options" field.
const int UseDiagonalQpTrustRegionSolverFieldNumber
Field number for the "use_diagonal_qp_trust_region_solver" field.
bool HasSufficientReductionForRestart
Gets whether the "sufficient_reduction_for_restart" field is set.
const int InfiniteConstraintBoundThresholdFieldNumber
Field number for the "infinite_constraint_bound_threshold" field.
double InfiniteConstraintBoundThreshold
Constraint bounds with absolute value at least this threshold are replaced with infinities.
bool HasL2NormRescaling
Gets whether the "l2_norm_rescaling" field is set.
const int LInfRuizIterationsFieldNumber
Field number for the "l_inf_ruiz_iterations" field.
void ClearInitialStepSizeScaling()
Clears the value of the "initial_step_size_scaling" field.
bool HasPrimalWeightUpdateSmoothing
Gets whether the "primal_weight_update_smoothing" field is set.
bool HasUseFeasibilityPolishing
Gets whether the "use_feasibility_polishing" field is set.
void WriteTo(pb::CodedOutputStream output)
global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.RestartStrategy RestartStrategy
NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default. If using a strategy other ...
global::Google.OrTools.PDLP.TerminationCriteria TerminationCriteria
void ClearInfiniteConstraintBoundThreshold()
Clears the value of the "infinite_constraint_bound_threshold" field.
bool HasNecessaryReductionForRestart
Gets whether the "necessary_reduction_for_restart" field is set.
void ClearNumThreads()
Clears the value of the "num_threads" field.
bool HasUseDiagonalQpTrustRegionSolver
Gets whether the "use_diagonal_qp_trust_region_solver" field is set.
const int LinesearchRuleFieldNumber
Field number for the "linesearch_rule" field.
double LogIntervalSeconds
Time between iteration-level statistics logging (if verbosity_level > 1). Since iteration-level stati...
global::Google.OrTools.PDLP.PrimalDualHybridGradientParams.Types.PresolveOptions PresolveOptions
double NecessaryReductionForRestart
For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function by this amount triggers a...
int NumThreads
The number of threads to use. Must be positive. Try various values of num_threads,...
const int HandleSomePrimalGradientsOnFiniteBoundsAsResidualsFieldNumber
Field number for the "handle_some_primal_gradients_on_finite_bounds_as_residuals" field.
bool L2NormRescaling
If true, applies L_2 norm rescaling after the Ruiz rescaling. Heuristically this has been found to he...
bool RecordIterationStats
If true, the iteration_stats field of the SolveLog output will be populated at every iteration....
const int InitialStepSizeScalingFieldNumber
Field number for the "initial_step_size_scaling" field.
void ClearLInfRuizIterations()
Clears the value of the "l_inf_ruiz_iterations" field.
static pb::MessageParser< PrimalDualHybridGradientParams > Parser
void ClearRecordIterationStats()
Clears the value of the "record_iteration_stats" field.
bool HasMajorIterationFrequency
Gets whether the "major_iteration_frequency" field is set.
global::Google.OrTools.PDLP.AdaptiveLinesearchParams AdaptiveLinesearchParameters
const int SchedulerTypeFieldNumber
Field number for the "scheduler_type" field.
void ClearHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
Clears the value of the "handle_some_primal_gradients_on_finite_bounds_as_residuals" field.
double SufficientReductionForRestart
For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative reduction in the potential functi...
double InitialPrimalWeight
The initial value of the primal weight (i.e., the ratio of primal and dual step sizes)....
pbc::RepeatedField< int > RandomProjectionSeeds
Seeds for generating (pseudo-)random projections of iterates during termination checks....
void ClearNumShards()
Clears the value of the "num_shards" field.
bool HandleSomePrimalGradientsOnFiniteBoundsAsResiduals
See https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite...
const int NumShardsFieldNumber
Field number for the "num_shards" field.
bool HasNumShards
Gets whether the "num_shards" field is set.
PrimalDualHybridGradientParams(PrimalDualHybridGradientParams other)
global::Google.OrTools.PDLP.MalitskyPockParams MalitskyPockParameters
bool HasSchedulerType
Gets whether the "scheduler_type" field is set.
const int NumThreadsFieldNumber
Field number for the "num_threads" field.
int MajorIterationFrequency
The frequency at which extra work is performed to make major algorithmic decisions,...
const int LogIntervalSecondsFieldNumber
Field number for the "log_interval_seconds" field.
const int DiagonalQpTrustRegionSolverToleranceFieldNumber
Field number for the "diagonal_qp_trust_region_solver_tolerance" field.
const int AdaptiveLinesearchParametersFieldNumber
Field number for the "adaptive_linesearch_parameters" field.
bool HasInitialStepSizeScaling
Gets whether the "initial_step_size_scaling" field is set.
const int UseFeasibilityPolishingFieldNumber
Field number for the "use_feasibility_polishing" field.
const int RandomProjectionSeedsFieldNumber
Field number for the "random_projection_seeds" field.
void ClearL2NormRescaling()
Clears the value of the "l2_norm_rescaling" field.
bool HasLinesearchRule
Gets whether the "linesearch_rule" field is set.
const int InitialPrimalWeightFieldNumber
Field number for the "initial_primal_weight" field.
double PrimalWeightUpdateSmoothing
This parameter controls exponential smoothing of log(primal_weight) when a primal weight update occur...
const int VerbosityLevelFieldNumber
Field number for the "verbosity_level" field.
void ClearSufficientReductionForRestart()
Clears the value of the "sufficient_reduction_for_restart" field.
void ClearLogIntervalSeconds()
Clears the value of the "log_interval_seconds" field.
const int RestartStrategyFieldNumber
Field number for the "restart_strategy" field.
Holder for reflection information generated from ortools/pdlp/solvers.proto.
Definition Solvers.pb.cs:15
static pbr::FileDescriptor Descriptor
File descriptor for ortools/pdlp/solvers.proto.
Definition Solvers.pb.cs:19
const int EpsOptimalPrimalResidualRelativeFieldNumber
Field number for the "eps_optimal_primal_residual_relative" field.
void ClearEpsOptimalObjectiveGapAbsolute()
Clears the value of the "eps_optimal_objective_gap_absolute" field.
bool HasEpsOptimalDualResidualRelative
Gets whether the "eps_optimal_dual_residual_relative" field is set.
void ClearEpsOptimalDualResidualAbsolute()
Clears the value of the "eps_optimal_dual_residual_absolute" field.
double EpsOptimalObjectiveGapAbsolute
Absolute tolerance on the objective gap.
const int EpsOptimalDualResidualAbsoluteFieldNumber
Field number for the "eps_optimal_dual_residual_absolute" field.
void ClearEpsOptimalPrimalResidualRelative()
Clears the value of the "eps_optimal_primal_residual_relative" field.
static pb::MessageParser< DetailedOptimalityCriteria > Parser
bool HasEpsOptimalPrimalResidualAbsolute
Gets whether the "eps_optimal_primal_residual_absolute" field is set.
const int EpsOptimalObjectiveGapAbsoluteFieldNumber
Field number for the "eps_optimal_objective_gap_absolute" field.
void ClearEpsOptimalObjectiveGapRelative()
Clears the value of the "eps_optimal_objective_gap_relative" field.
bool HasEpsOptimalObjectiveGapAbsolute
Gets whether the "eps_optimal_objective_gap_absolute" field is set.
const int EpsOptimalObjectiveGapRelativeFieldNumber
Field number for the "eps_optimal_objective_gap_relative" field.
bool HasEpsOptimalObjectiveGapRelative
Gets whether the "eps_optimal_objective_gap_relative" field is set.
void ClearEpsOptimalDualResidualRelative()
Clears the value of the "eps_optimal_dual_residual_relative" field.
double EpsOptimalPrimalResidualRelative
Relative tolerance on the primal residual.
const int EpsOptimalPrimalResidualAbsoluteFieldNumber
Field number for the "eps_optimal_primal_residual_absolute" field.
bool HasEpsOptimalDualResidualAbsolute
Gets whether the "eps_optimal_dual_residual_absolute" field is set.
const int EpsOptimalDualResidualRelativeFieldNumber
Field number for the "eps_optimal_dual_residual_relative" field.
bool HasEpsOptimalPrimalResidualRelative
Gets whether the "eps_optimal_primal_residual_relative" field is set.
double EpsOptimalObjectiveGapRelative
Relative tolerance on the objective gap.
double EpsOptimalDualResidualAbsolute
Absolute tolerance on the dual residual.
void ClearEpsOptimalPrimalResidualAbsolute()
Clears the value of the "eps_optimal_primal_residual_absolute" field.
double EpsOptimalDualResidualRelative
Relative tolerance on the dual residual.
double EpsOptimalPrimalResidualAbsolute
Absolute tolerance on the primal residual.
static pb::MessageParser< SimpleOptimalityCriteria > Parser
bool HasEpsOptimalAbsolute
Gets whether the "eps_optimal_absolute" field is set.
double EpsOptimalRelative
Relative tolerance on the primal residual, dual residual, and objective gap.
void ClearEpsOptimalAbsolute()
Clears the value of the "eps_optimal_absolute" field.
const int EpsOptimalRelativeFieldNumber
Field number for the "eps_optimal_relative" field.
double EpsOptimalAbsolute
Absolute tolerance on the primal residual, dual residual, and objective gap.
const int EpsOptimalAbsoluteFieldNumber
Field number for the "eps_optimal_absolute" field.
void ClearEpsOptimalRelative()
Clears the value of the "eps_optimal_relative" field.
bool HasEpsOptimalRelative
Gets whether the "eps_optimal_relative" field is set.
Container for nested types declared in the TerminationCriteria message type.
Relevant readings on infeasibility certificates: (1) https://docs.mosek.com/modeling-cookbook/qcqo....
void ClearKktMatrixPassLimit()
Clears the value of the "kkt_matrix_pass_limit" field.
const int IterationLimitFieldNumber
Field number for the "iteration_limit" field.
bool HasOptimalityNorm
Gets whether the "optimality_norm" field is set.
const int SimpleOptimalityCriteriaFieldNumber
Field number for the "simple_optimality_criteria" field.
void ClearEpsPrimalInfeasible()
Clears the value of the "eps_primal_infeasible" field.
int IterationLimit
If termination_reason = TERMINATION_REASON_ITERATION_LIMIT then the solver has taken at least iterati...
double TimeSecLimit
If termination_reason = TERMINATION_REASON_TIME_LIMIT then the solver has taken at least time_sec_lim...
const int EpsDualInfeasibleFieldNumber
Field number for the "eps_dual_infeasible" field.
bool HasEpsOptimalRelative
Gets whether the "eps_optimal_relative" field is set.
const int EpsOptimalAbsoluteFieldNumber
Field number for the "eps_optimal_absolute" field.
double EpsPrimalInfeasible
If the following two conditions hold we say that we have obtained an approximate dual ray,...
bool Equals(TerminationCriteria other)
void ClearEpsOptimalRelative()
Clears the value of the "eps_optimal_relative" field.
static pbr::MessageDescriptor Descriptor
OptimalityCriteriaOneofCase OptimalityCriteriaCase
OptimalityCriteriaOneofCase
Enum of possible cases for the "optimality_criteria" oneof.
bool HasEpsOptimalAbsolute
Gets whether the "eps_optimal_absolute" field is set.
bool HasEpsPrimalInfeasible
Gets whether the "eps_primal_infeasible" field is set.
double EpsDualInfeasible
If the following three conditions hold we say we have obtained an approximate primal ray,...
const int EpsOptimalRelativeFieldNumber
Field number for the "eps_optimal_relative" field.
const int DetailedOptimalityCriteriaFieldNumber
Field number for the "detailed_optimality_criteria" field.
void ClearEpsDualInfeasible()
Clears the value of the "eps_dual_infeasible" field.
static pb::MessageParser< TerminationCriteria > Parser
bool HasKktMatrixPassLimit
Gets whether the "kkt_matrix_pass_limit" field is set.
double KktMatrixPassLimit
If termination_reason = TERMINATION_REASON_KKT_MATRIX_PASS_LIMIT then cumulative_kkt_matrix_passes is...
const int TimeSecLimitFieldNumber
Field number for the "time_sec_limit" field.
const int KktMatrixPassLimitFieldNumber
Field number for the "kkt_matrix_pass_limit" field.
bool HasEpsDualInfeasible
Gets whether the "eps_dual_infeasible" field is set.
void MergeFrom(TerminationCriteria other)
global::Google.OrTools.PDLP.TerminationCriteria.Types.SimpleOptimalityCriteria SimpleOptimalityCriteria
TerminationCriteria(TerminationCriteria other)
override bool Equals(object other)
void MergeFrom(pb::CodedInputStream input)
void ClearEpsOptimalAbsolute()
Clears the value of the "eps_optimal_absolute" field.
void ClearTimeSecLimit()
Clears the value of the "time_sec_limit" field.
double EpsOptimalAbsolute
Absolute tolerance on primal residual, dual residual, and the objective gap.
const int OptimalityNormFieldNumber
Field number for the "optimality_norm" field.
global::Google.OrTools.PDLP.TerminationCriteria.Types.DetailedOptimalityCriteria DetailedOptimalityCriteria
bool HasTimeSecLimit
Gets whether the "time_sec_limit" field is set.
global::Google.OrTools.PDLP.OptimalityNorm OptimalityNorm
The norm that we are measuring the optimality criteria in.
const int EpsPrimalInfeasibleFieldNumber
Field number for the "eps_primal_infeasible" field.
void ClearIterationLimit()
Clears the value of the "iteration_limit" field.
void WriteTo(pb::CodedOutputStream output)
bool HasIterationLimit
Gets whether the "iteration_limit" field is set.
void ClearOptimalityNorm()
Clears the value of the "optimality_norm" field.
double EpsOptimalRelative
Relative tolerance on primal residual, dual residual, and the objective gap.
@ LInfComponentwise
The infinity norm of component-wise relative errors offset by the ratio of the absolute and relative ...
SchedulerType
The type of system used to schedule CPU threads to do work in parallel.
@ GoogleThreadpool
Google ThreadPool with barrier synchronization.
@ EigenThreadpool
Eigen non-blocking ThreadPool with barrier synchronization (see <Eigen/ThreadPool>).