Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
SatParameters.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/sat/sat_parameters.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.Sat {
13
15 public static partial class SatParametersReflection {
16
17 #region Descriptor
19 public static pbr::FileDescriptor Descriptor {
20 get { return descriptor; }
21 }
22 private static pbr::FileDescriptor descriptor;
23
25 byte[] descriptorData = global::System.Convert.FromBase64String(
26 string.Concat(
27 "CiBvcnRvb2xzL3NhdC9zYXRfcGFyYW1ldGVycy5wcm90bxIXb3BlcmF0aW9u",
28 "c19yZXNlYXJjaC5zYXQitHUKDVNhdFBhcmFtZXRlcnMSDwoEbmFtZRirASAB",
29 "KAk6ABJgChhwcmVmZXJyZWRfdmFyaWFibGVfb3JkZXIYASABKA4yNC5vcGVy",
30 "YXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJzLlZhcmlhYmxlT3Jk",
31 "ZXI6CElOX09SREVSElkKEGluaXRpYWxfcG9sYXJpdHkYAiABKA4yLy5vcGVy",
32 "YXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJzLlBvbGFyaXR5Og5Q",
33 "T0xBUklUWV9GQUxTRRIeChB1c2VfcGhhc2Vfc2F2aW5nGCwgASgIOgR0cnVl",
34 "EikKGnBvbGFyaXR5X3JlcGhhc2VfaW5jcmVtZW50GKgBIAEoBToEMTAwMBIp",
35 "Chlwb2xhcml0eV9leHBsb2l0X2xzX2hpbnRzGLUCIAEoCDoFZmFsc2USIAoV",
36 "cmFuZG9tX3BvbGFyaXR5X3JhdGlvGC0gASgBOgEwEiAKFXJhbmRvbV9icmFu",
37 "Y2hlc19yYXRpbxggIAEoAToBMBIhChJ1c2VfZXJ3YV9oZXVyaXN0aWMYSyAB",
38 "KAg6BWZhbHNlEiUKGmluaXRpYWxfdmFyaWFibGVzX2FjdGl2aXR5GEwgASgB",
39 "OgEwEjYKJ2Fsc29fYnVtcF92YXJpYWJsZXNfaW5fY29uZmxpY3RfcmVhc29u",
40 "cxhNIAEoCDoFZmFsc2USbwoWbWluaW1pemF0aW9uX2FsZ29yaXRobRgEIAEo",
41 "DjJELm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LlNhdFBhcmFtZXRlcnMuQ29u",
42 "ZmxpY3RNaW5pbWl6YXRpb25BbGdvcml0aG06CVJFQ1VSU0lWRRKTAQodYmlu",
43 "YXJ5X21pbmltaXphdGlvbl9hbGdvcml0aG0YIiABKA4yQC5vcGVyYXRpb25z",
44 "X3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJzLkJpbmFyeU1pbml6YXRpb25B",
45 "bGdvcml0aG06KkJJTkFSWV9NSU5JTUlaQVRJT05fRlJPTV9VSVBfQU5EX0RF",
46 "Q0lTSU9OUxIyCiRzdWJzdW1wdGlvbl9kdXJpbmdfY29uZmxpY3RfYW5hbHlz",
47 "aXMYOCABKAg6BHRydWUSOQoqZXh0cmFfc3Vic3VtcHRpb25fZHVyaW5nX2Nv",
48 "bmZsaWN0X2FuYWx5c2lzGN8CIAEoCDoEdHJ1ZRI8Ci1kZWNpc2lvbl9zdWJz",
49 "dW1wdGlvbl9kdXJpbmdfY29uZmxpY3RfYW5hbHlzaXMY4QIgASgIOgR0cnVl",
50 "EiwKIGVhZ2VybHlfc3Vic3VtZV9sYXN0X25fY29uZmxpY3RzGNcCIAEoBToB",
51 "NBIqChtzdWJzdW1lX2R1cmluZ192aXZpZmljYXRpb24Y4wIgASgIOgR0cnVl",
52 "Ei4KHnVzZV9jaHJvbm9sb2dpY2FsX2JhY2t0cmFja2luZxjKAiABKAg6BWZh",
53 "bHNlEiAKE21heF9iYWNranVtcF9sZXZlbHMYywIgASgFOgI1MBI0CiVjaHJv",
54 "bm9sb2dpY2FsX2JhY2t0cmFja19taW5fY29uZmxpY3RzGMwCIAEoBToEMTAw",
55 "MBIkChVjbGF1c2VfY2xlYW51cF9wZXJpb2QYCyABKAU6BTEwMDAwEisKH2Ns",
56 "YXVzZV9jbGVhbnVwX3BlcmlvZF9pbmNyZW1lbnQY0QIgASgFOgEwEiAKFWNs",
57 "YXVzZV9jbGVhbnVwX3RhcmdldBgNIAEoBToBMBIiChRjbGF1c2VfY2xlYW51",
58 "cF9yYXRpbxi+ASABKAE6AzAuNRIjChhjbGF1c2VfY2xlYW51cF9sYmRfYm91",
59 "bmQYOyABKAU6ATUSJAoYY2xhdXNlX2NsZWFudXBfbGJkX3RpZXIxGN0CIAEo",
60 "BToBMBIkChhjbGF1c2VfY2xlYW51cF9sYmRfdGllcjIY3gIgASgFOgEwEmcK",
61 "F2NsYXVzZV9jbGVhbnVwX29yZGVyaW5nGDwgASgOMjUub3BlcmF0aW9uc19y",
62 "ZXNlYXJjaC5zYXQuU2F0UGFyYW1ldGVycy5DbGF1c2VPcmRlcmluZzoPQ0xB",
63 "VVNFX0FDVElWSVRZEiEKFHBiX2NsZWFudXBfaW5jcmVtZW50GC4gASgFOgMy",
64 "MDASHQoQcGJfY2xlYW51cF9yYXRpbxgvIAEoAToDMC41EiQKF3ZhcmlhYmxl",
65 "X2FjdGl2aXR5X2RlY2F5GA8gASgBOgMwLjgSKwobbWF4X3ZhcmlhYmxlX2Fj",
66 "dGl2aXR5X3ZhbHVlGBAgASgBOgYxZSsxMDASHwoRZ2x1Y29zZV9tYXhfZGVj",
67 "YXkYFiABKAE6BDAuOTUSJQoXZ2x1Y29zZV9kZWNheV9pbmNyZW1lbnQYFyAB",
68 "KAE6BDAuMDESLAoeZ2x1Y29zZV9kZWNheV9pbmNyZW1lbnRfcGVyaW9kGBgg",
69 "ASgFOgQ1MDAwEiQKFWNsYXVzZV9hY3Rpdml0eV9kZWNheRgRIAEoAToFMC45",
70 "OTkSKAoZbWF4X2NsYXVzZV9hY3Rpdml0eV92YWx1ZRgSIAEoAToFMWUrMjAS",
71 "UwoScmVzdGFydF9hbGdvcml0aG1zGD0gAygOMjcub3BlcmF0aW9uc19yZXNl",
72 "YXJjaC5zYXQuU2F0UGFyYW1ldGVycy5SZXN0YXJ0QWxnb3JpdGhtEmUKGmRl",
73 "ZmF1bHRfcmVzdGFydF9hbGdvcml0aG1zGEYgASgJOkFMVUJZX1JFU1RBUlQs",
74 "TEJEX01PVklOR19BVkVSQUdFX1JFU1RBUlQsRExfTU9WSU5HX0FWRVJBR0Vf",
75 "UkVTVEFSVBIaCg5yZXN0YXJ0X3BlcmlvZBgeIAEoBToCNTASJwobcmVzdGFy",
76 "dF9ydW5uaW5nX3dpbmRvd19zaXplGD4gASgFOgI1MBIjChhyZXN0YXJ0X2Rs",
77 "X2F2ZXJhZ2VfcmF0aW8YPyABKAE6ATESJAoZcmVzdGFydF9sYmRfYXZlcmFn",
78 "ZV9yYXRpbxhHIAEoAToBMRIjChR1c2VfYmxvY2tpbmdfcmVzdGFydBhAIAEo",
79 "CDoFZmFsc2USKgocYmxvY2tpbmdfcmVzdGFydF93aW5kb3dfc2l6ZRhBIAEo",
80 "BToENTAwMBIoChtibG9ja2luZ19yZXN0YXJ0X211bHRpcGxpZXIYQiABKAE6",
81 "AzEuNBIwCiVudW1fY29uZmxpY3RzX2JlZm9yZV9zdHJhdGVneV9jaGFuZ2Vz",
82 "GEQgASgFOgEwEikKHnN0cmF0ZWd5X2NoYW5nZV9pbmNyZWFzZV9yYXRpbxhF",
83 "IAEoAToBMBIgChNtYXhfdGltZV9pbl9zZWNvbmRzGCQgASgBOgNpbmYSIwoW",
84 "bWF4X2RldGVybWluaXN0aWNfdGltZRhDIAEoAToDaW5mEikKHW1heF9udW1f",
85 "ZGV0ZXJtaW5pc3RpY19iYXRjaGVzGKMCIAEoBToBMBI0ChdtYXhfbnVtYmVy",
86 "X29mX2NvbmZsaWN0cxglIAEoAzoTOTIyMzM3MjAzNjg1NDc3NTgwNxIfChBt",
87 "YXhfbWVtb3J5X2luX21iGCggASgDOgUxMDAwMBIjChJhYnNvbHV0ZV9nYXBf",
88 "bGltaXQYnwEgASgBOgYwLjAwMDESHgoScmVsYXRpdmVfZ2FwX2xpbWl0GKAB",
89 "IAEoAToBMBIWCgtyYW5kb21fc2VlZBgfIAEoBToBMRIpChlwZXJtdXRlX3Zh",
90 "cmlhYmxlX3JhbmRvbWx5GLIBIAEoCDoFZmFsc2USMQohcGVybXV0ZV9wcmVz",
91 "b2x2ZV9jb25zdHJhaW50X29yZGVyGLMBIAEoCDoFZmFsc2USHwoPdXNlX2Fi",
92 "c2xfcmFuZG9tGLQBIAEoCDoFZmFsc2USIgoTbG9nX3NlYXJjaF9wcm9ncmVz",
93 "cxgpIAEoCDoFZmFsc2USKAoYbG9nX3N1YnNvbHZlcl9zdGF0aXN0aWNzGL0B",
94 "IAEoCDoFZmFsc2USFQoKbG9nX3ByZWZpeBi5ASABKAk6ABIcCg1sb2dfdG9f",
95 "c3Rkb3V0GLoBIAEoCDoEdHJ1ZRIfCg9sb2dfdG9fcmVzcG9uc2UYuwEgASgI",
96 "OgVmYWxzZRIgChF1c2VfcGJfcmVzb2x1dGlvbhgrIAEoCDoFZmFsc2USNgon",
97 "bWluaW1pemVfcmVkdWN0aW9uX2R1cmluZ19wYl9yZXNvbHV0aW9uGDAgASgI",
98 "OgVmYWxzZRIsCh5jb3VudF9hc3N1bXB0aW9uX2xldmVsc19pbl9sYmQYMSAB",
99 "KAg6BHRydWUSIwoWcHJlc29sdmVfYnZlX3RocmVzaG9sZBg2IAEoBToDNTAw",
100 "EiwKHGZpbHRlcl9zYXRfcG9zdHNvbHZlX2NsYXVzZXMYxAIgASgIOgVmYWxz",
101 "ZRIlChpwcmVzb2x2ZV9idmVfY2xhdXNlX3dlaWdodBg3IAEoBToBMxIsCiBw",
102 "cm9iaW5nX2RldGVybWluaXN0aWNfdGltZV9saW1pdBjiASABKAE6ATESNQop",
103 "cHJlc29sdmVfcHJvYmluZ19kZXRlcm1pbmlzdGljX3RpbWVfbGltaXQYOSAB",
104 "KAE6AjMwEiUKF3ByZXNvbHZlX2Jsb2NrZWRfY2xhdXNlGFggASgIOgR0cnVl",
105 "Eh4KEHByZXNvbHZlX3VzZV9idmEYSCABKAg6BHRydWUSIQoWcHJlc29sdmVf",
106 "YnZhX3RocmVzaG9sZBhJIAEoBToBMRIjChdtYXhfcHJlc29sdmVfaXRlcmF0",
107 "aW9ucxiKASABKAU6ATMSHwoRY3BfbW9kZWxfcHJlc29sdmUYViABKAg6BHRy",
108 "dWUSIQoWY3BfbW9kZWxfcHJvYmluZ19sZXZlbBhuIAEoBToBMhInChljcF9t",
109 "b2RlbF91c2Vfc2F0X3ByZXNvbHZlGF0gASgIOgR0cnVlEjEKIWxvYWRfYXRf",
110 "bW9zdF9vbmVzX2luX3NhdF9wcmVzb2x2ZRjPAiABKAg6BWZhbHNlEisKHHJl",
111 "bW92ZV9maXhlZF92YXJpYWJsZXNfZWFybHkYtgIgASgIOgR0cnVlEiYKFmRl",
112 "dGVjdF90YWJsZV93aXRoX2Nvc3QY2AEgASgIOgVmYWxzZRIjChd0YWJsZV9j",
113 "b21wcmVzc2lvbl9sZXZlbBjZASABKAU6ATISKgoaZXhwYW5kX2FsbGRpZmZf",
114 "Y29uc3RyYWludHMYqgEgASgIOgVmYWxzZRIlChdtYXhfYWxsZGlmZl9kb21h",
115 "aW5fc2l6ZRjAAiABKAU6AzI1NhIrChxleHBhbmRfcmVzZXJ2b2lyX2NvbnN0",
116 "cmFpbnRzGLYBIAEoCDoEdHJ1ZRIxCiVtYXhfZG9tYWluX3NpemVfZm9yX2xp",
117 "bmVhcjJfZXhwYW5zaW9uGNQCIAEoBToBOBIuCh5leHBhbmRfcmVzZXJ2b2ly",
118 "X3VzaW5nX2NpcmN1aXQYoAIgASgIOgVmYWxzZRIuCh5lbmNvZGVfY3VtdWxh",
119 "dGl2ZV9hc19yZXNlcnZvaXIYnwIgASgIOgVmYWxzZRIqCh5tYXhfbGluX21h",
120 "eF9zaXplX2Zvcl9leHBhbnNpb24YmAIgASgFOgEwEiwKHGRpc2FibGVfY29u",
121 "c3RyYWludF9leHBhbnNpb24YtQEgASgIOgVmYWxzZRI9Ci1lbmNvZGVfY29t",
122 "cGxleF9saW5lYXJfY29uc3RyYWludF93aXRoX2ludGVnZXIY3wEgASgIOgVm",
123 "YWxzZRIzChttZXJnZV9ub19vdmVybGFwX3dvcmtfbGltaXQYkQEgASgBOg0x",
124 "MDAwMDAwMDAwMDAwEjAKHG1lcmdlX2F0X21vc3Rfb25lX3dvcmtfbGltaXQY",
125 "kgEgASgBOgkxMDAwMDAwMDASJwobcHJlc29sdmVfc3Vic3RpdHV0aW9uX2xl",
126 "dmVsGJMBIAEoBToBMRI0CiRwcmVzb2x2ZV9leHRyYWN0X2ludGVnZXJfZW5m",
127 "b3JjZW1lbnQYrgEgASgIOgVmYWxzZRIxCh1wcmVzb2x2ZV9pbmNsdXNpb25f",
128 "d29ya19saW1pdBjJASABKAM6CTEwMDAwMDAwMBIbCgxpZ25vcmVfbmFtZXMY",
129 "ygEgASgIOgR0cnVlEh4KD2luZmVyX2FsbF9kaWZmcxjpASABKAg6BHRydWUS",
130 "JgoXZmluZF9iaWdfbGluZWFyX292ZXJsYXAY6gEgASgIOgR0cnVlEjAKIWZp",
131 "bmRfY2xhdXNlc190aGF0X2FyZV9leGFjdGx5X29uZRjNAiABKAg6BHRydWUS",
132 "IwoUdXNlX3NhdF9pbnByb2Nlc3NpbmcYowEgASgIOgR0cnVlEiYKGGlucHJv",
133 "Y2Vzc2luZ19kdGltZV9yYXRpbxiRAiABKAE6AzAuMhImChppbnByb2Nlc3Np",
134 "bmdfcHJvYmluZ19kdGltZRiSAiABKAE6ATESKwofaW5wcm9jZXNzaW5nX21p",
135 "bmltaXphdGlvbl9kdGltZRiTAiABKAE6ATESPgovaW5wcm9jZXNzaW5nX21p",
136 "bmltaXphdGlvbl91c2VfY29uZmxpY3RfYW5hbHlzaXMYqQIgASgIOgR0cnVl",
137 "EjsKK2lucHJvY2Vzc2luZ19taW5pbWl6YXRpb25fdXNlX2FsbF9vcmRlcmlu",
138 "Z3MYqgIgASgIOgVmYWxzZRIyCiNpbnByb2Nlc3NpbmdfdXNlX2NvbmdydWVu",
139 "Y2VfY2xvc3VyZRjWAiABKAg6BHRydWUSLQodaW5wcm9jZXNzaW5nX3VzZV9z",
140 "YXRfc3dlZXBpbmcY4gIgASgIOgVmYWxzZRIXCgtudW1fd29ya2VycxjOASAB",
141 "KAU6ATASHQoSbnVtX3NlYXJjaF93b3JrZXJzGGQgASgFOgEwEh8KE251bV9m",
142 "dWxsX3N1YnNvbHZlcnMYpgIgASgFOgEwEhMKCnN1YnNvbHZlcnMYzwEgAygJ",
143 "EhkKEGV4dHJhX3N1YnNvbHZlcnMY2wEgAygJEhoKEWlnbm9yZV9zdWJzb2x2",
144 "ZXJzGNEBIAMoCRIaChFmaWx0ZXJfc3Vic29sdmVycxilAiADKAkSQQoQc3Vi",
145 "c29sdmVyX3BhcmFtcxjSASADKAsyJi5vcGVyYXRpb25zX3Jlc2VhcmNoLnNh",
146 "dC5TYXRQYXJhbWV0ZXJzEiEKEWludGVybGVhdmVfc2VhcmNoGIgBIAEoCDoF",
147 "ZmFsc2USIQoVaW50ZXJsZWF2ZV9iYXRjaF9zaXplGIYBIAEoBToBMBIkChZz",
148 "aGFyZV9vYmplY3RpdmVfYm91bmRzGHEgASgIOgR0cnVlEiUKF3NoYXJlX2xl",
149 "dmVsX3plcm9fYm91bmRzGHIgASgIOgR0cnVlEiQKFHNoYXJlX2xpbmVhcjJf",
150 "Ym91bmRzGMYCIAEoCDoFZmFsc2USIwoUc2hhcmVfYmluYXJ5X2NsYXVzZXMY",
151 "ywEgASgIOgR0cnVlEiEKEnNoYXJlX2dsdWVfY2xhdXNlcxidAiABKAg6BHRy",
152 "dWUSJgoXbWluaW1pemVfc2hhcmVkX2NsYXVzZXMYrAIgASgIOgR0cnVlEiQK",
153 "GHNoYXJlX2dsdWVfY2xhdXNlc19kdGltZRjCAiABKAE6ATESIAoQY2hlY2tf",
154 "bHJhdF9wcm9vZhjYAiABKAg6BWZhbHNlEicKF2NoZWNrX21lcmdlZF9scmF0",
155 "X3Byb29mGOACIAEoCDoFZmFsc2USIQoRb3V0cHV0X2xyYXRfcHJvb2YY2QIg",
156 "ASgIOgVmYWxzZRIgChBjaGVja19kcmF0X3Byb29mGNoCIAEoCDoFZmFsc2US",
157 "IQoRb3V0cHV0X2RyYXRfcHJvb2YY2wIgASgIOgVmYWxzZRImChhtYXhfZHJh",
158 "dF90aW1lX2luX3NlY29uZHMY3AIgASgBOgNpbmYSMAogZGVidWdfcG9zdHNv",
159 "bHZlX3dpdGhfZnVsbF9zb2x2ZXIYogEgASgIOgVmYWxzZRItCiFkZWJ1Z19t",
160 "YXhfbnVtX3ByZXNvbHZlX29wZXJhdGlvbnMYlwEgASgFOgEwEicKF2RlYnVn",
161 "X2NyYXNoX29uX2JhZF9oaW50GMMBIAEoCDoFZmFsc2USMwojZGVidWdfY3Jh",
162 "c2hfaWZfcHJlc29sdmVfYnJlYWtzX2hpbnQYsgIgASgIOgVmYWxzZRIvCh9k",
163 "ZWJ1Z19jcmFzaF9pZl9scmF0X2NoZWNrX2ZhaWxzGNMCIAEoCDoFZmFsc2US",
164 "JAoWdXNlX29wdGltaXphdGlvbl9oaW50cxgjIAEoCDoEdHJ1ZRIiChdjb3Jl",
165 "X21pbmltaXphdGlvbl9sZXZlbBgyIAEoBToBMhIhChNmaW5kX211bHRpcGxl",
166 "X2NvcmVzGFQgASgIOgR0cnVlEiAKEmNvdmVyX29wdGltaXphdGlvbhhZIAEo",
167 "CDoEdHJ1ZRJ4ChhtYXhfc2F0X2Fzc3VtcHRpb25fb3JkZXIYMyABKA4yPC5v",
168 "cGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5TYXRQYXJhbWV0ZXJzLk1heFNhdEFz",
169 "c3VtcHRpb25PcmRlcjoYREVGQVVMVF9BU1NVTVBUSU9OX09SREVSEi8KIG1h",
170 "eF9zYXRfcmV2ZXJzZV9hc3N1bXB0aW9uX29yZGVyGDQgASgIOgVmYWxzZRJ8",
171 "ChZtYXhfc2F0X3N0cmF0aWZpY2F0aW9uGDUgASgOMkQub3BlcmF0aW9uc19y",
172 "ZXNlYXJjaC5zYXQuU2F0UGFyYW1ldGVycy5NYXhTYXRTdHJhdGlmaWNhdGlv",
173 "bkFsZ29yaXRobToWU1RSQVRJRklDQVRJT05fREVTQ0VOVBIuCiFwcm9wYWdh",
174 "dGlvbl9sb29wX2RldGVjdGlvbl9mYWN0b3IY3QEgASgBOgIxMBI3Cil1c2Vf",
175 "cHJlY2VkZW5jZXNfaW5fZGlzanVuY3RpdmVfY29uc3RyYWludBhKIAEoCDoE",
176 "dHJ1ZRIzCiF0cmFuc2l0aXZlX3ByZWNlZGVuY2VzX3dvcmtfbGltaXQYxwIg",
177 "ASgFOgcxMDAwMDAwEkIKNW1heF9zaXplX3RvX2NyZWF0ZV9wcmVjZWRlbmNl",
178 "X2xpdGVyYWxzX2luX2Rpc2p1bmN0aXZlGOUBIAEoBToCNjASNQoldXNlX3N0",
179 "cm9uZ19wcm9wYWdhdGlvbl9pbl9kaXNqdW5jdGl2ZRjmASABKAg6BWZhbHNl",
180 "EjUKJXVzZV9keW5hbWljX3ByZWNlZGVuY2VfaW5fZGlzanVuY3RpdmUYhwIg",
181 "ASgIOgVmYWxzZRI0CiR1c2VfZHluYW1pY19wcmVjZWRlbmNlX2luX2N1bXVs",
182 "YXRpdmUYjAIgASgIOgVmYWxzZRIxCiJ1c2Vfb3ZlcmxvYWRfY2hlY2tlcl9p",
183 "bl9jdW11bGF0aXZlGE4gASgIOgVmYWxzZRI3Cid1c2VfY29uc2VydmF0aXZl",
184 "X3NjYWxlX292ZXJsb2FkX2NoZWNrZXIYngIgASgIOgVmYWxzZRI3Cih1c2Vf",
185 "dGltZXRhYmxlX2VkZ2VfZmluZGluZ19pbl9jdW11bGF0aXZlGE8gASgIOgVm",
186 "YWxzZRI6CixtYXhfbnVtX2ludGVydmFsc19mb3JfdGltZXRhYmxlX2VkZ2Vf",
187 "ZmluZGluZxiEAiABKAU6AzEwMBIyCiJ1c2VfaGFyZF9wcmVjZWRlbmNlc19p",
188 "bl9jdW11bGF0aXZlGNcBIAEoCDoFZmFsc2USJwoXZXhwbG9pdF9hbGxfcHJl",
189 "Y2VkZW5jZXMY3AEgASgIOgVmYWxzZRI2Cih1c2VfZGlzanVuY3RpdmVfY29u",
190 "c3RyYWludF9pbl9jdW11bGF0aXZlGFAgASgIOgR0cnVlEjIKJW5vX292ZXJs",
191 "YXBfMmRfYm9vbGVhbl9yZWxhdGlvbnNfbGltaXQYwQIgASgFOgIxMBIwCiB1",
192 "c2VfdGltZXRhYmxpbmdfaW5fbm9fb3ZlcmxhcF8yZBjIASABKAg6BWZhbHNl",
193 "EjgKKHVzZV9lbmVyZ2V0aWNfcmVhc29uaW5nX2luX25vX292ZXJsYXBfMmQY",
194 "1QEgASgIOgVmYWxzZRI9Ci11c2VfYXJlYV9lbmVyZ2V0aWNfcmVhc29uaW5n",
195 "X2luX25vX292ZXJsYXBfMmQYjwIgASgIOgVmYWxzZRI3Cid1c2VfdHJ5X2Vk",
196 "Z2VfcmVhc29uaW5nX2luX25vX292ZXJsYXBfMmQYqwIgASgIOgVmYWxzZRI8",
197 "Ci1tYXhfcGFpcnNfcGFpcndpc2VfcmVhc29uaW5nX2luX25vX292ZXJsYXBf",
198 "MmQYlAIgASgFOgQxMjUwEkIKNm1heGltdW1fcmVnaW9uc190b19zcGxpdF9p",
199 "bl9kaXNjb25uZWN0ZWRfbm9fb3ZlcmxhcF8yZBi7AiABKAU6ATASOAopdXNl",
200 "X2xpbmVhcjNfZm9yX25vX292ZXJsYXBfMmRfcHJlY2VkZW5jZXMYwwIgASgI",
201 "OgR0cnVlEi0KHnVzZV9kdWFsX3NjaGVkdWxpbmdfaGV1cmlzdGljcxjWASAB",
202 "KAg6BHRydWUSLQoddXNlX2FsbF9kaWZmZXJlbnRfZm9yX2NpcmN1aXQYtwIg",
203 "ASgIOgVmYWxzZRI9CjFyb3V0aW5nX2N1dF9zdWJzZXRfc2l6ZV9mb3JfYmlu",
204 "YXJ5X3JlbGF0aW9uX2JvdW5kGLgCIAEoBToBMBJDCjdyb3V0aW5nX2N1dF9z",
205 "dWJzZXRfc2l6ZV9mb3JfdGlnaHRfYmluYXJ5X3JlbGF0aW9uX2JvdW5kGLkC",
206 "IAEoBToBMBJDCjdyb3V0aW5nX2N1dF9zdWJzZXRfc2l6ZV9mb3JfZXhhY3Rf",
207 "YmluYXJ5X3JlbGF0aW9uX2JvdW5kGLwCIAEoBToBOBI8CjByb3V0aW5nX2N1",
208 "dF9zdWJzZXRfc2l6ZV9mb3Jfc2hvcnRlc3RfcGF0aHNfYm91bmQYvgIgASgF",
209 "OgE4EigKFXJvdXRpbmdfY3V0X2RwX2VmZm9ydBi6AiABKAE6CDEwMDAwMDAw",
210 "EjIKJnJvdXRpbmdfY3V0X21heF9pbmZlYXNpYmxlX3BhdGhfbGVuZ3RoGL0C",
211 "IAEoBToBNhJiChBzZWFyY2hfYnJhbmNoaW5nGFIgASgOMjYub3BlcmF0aW9u",
212 "c19yZXNlYXJjaC5zYXQuU2F0UGFyYW1ldGVycy5TZWFyY2hCcmFuY2hpbmc6",
213 "EEFVVE9NQVRJQ19TRUFSQ0gSIAoTaGludF9jb25mbGljdF9saW1pdBiZASAB",
214 "KAU6AjEwEhsKC3JlcGFpcl9oaW50GKcBIAEoCDoFZmFsc2USMwojZml4X3Zh",
215 "cmlhYmxlc190b190aGVpcl9oaW50ZWRfdmFsdWUYwAEgASgIOgVmYWxzZRIi",
216 "ChJ1c2VfcHJvYmluZ19zZWFyY2gYsAEgASgIOgVmYWxzZRIjChR1c2VfZXh0",
217 "ZW5kZWRfcHJvYmluZxiNAiABKAg6BHRydWUSLgoecHJvYmluZ19udW1fY29t",
218 "YmluYXRpb25zX2xpbWl0GJACIAEoBToFMjAwMDASPAosc2hhdmluZ19kZXRl",
219 "cm1pbmlzdGljX3RpbWVfaW5fcHJvYmluZ19zZWFyY2gYzAEgASgBOgUwLjAw",
220 "MRIvCiFzaGF2aW5nX3NlYXJjaF9kZXRlcm1pbmlzdGljX3RpbWUYzQEgASgB",
221 "OgMwLjESJQoYc2hhdmluZ19zZWFyY2hfdGhyZXNob2xkGKICIAEoAzoCNjQS",
222 "JwoXdXNlX29iamVjdGl2ZV9sYl9zZWFyY2gY5AEgASgIOgVmYWxzZRIsChx1",
223 "c2Vfb2JqZWN0aXZlX3NoYXZpbmdfc2VhcmNoGP0BIAEoCDoFZmFsc2USJAoX",
224 "dmFyaWFibGVzX3NoYXZpbmdfbGV2ZWwYoQIgASgFOgItMRIuCiFwc2V1ZG9f",
225 "Y29zdF9yZWxpYWJpbGl0eV90aHJlc2hvbGQYeyABKAM6AzEwMBIhChJvcHRp",
226 "bWl6ZV93aXRoX2NvcmUYUyABKAg6BWZhbHNlEiwKHG9wdGltaXplX3dpdGhf",
227 "bGJfdHJlZV9zZWFyY2gYvAEgASgIOgVmYWxzZRIvCh9zYXZlX2xwX2Jhc2lz",
228 "X2luX2xiX3RyZWVfc2VhcmNoGJwCIAEoCDoFZmFsc2USJwobYmluYXJ5X3Nl",
229 "YXJjaF9udW1fY29uZmxpY3RzGGMgASgFOgItMRIjChRvcHRpbWl6ZV93aXRo",
230 "X21heF9ocxhVIAEoCDoFZmFsc2USIwoUdXNlX2ZlYXNpYmlsaXR5X2p1bXAY",
231 "iQIgASgIOgR0cnVlEhsKC3VzZV9sc19vbmx5GPABIAEoCDoFZmFsc2USJQoW",
232 "ZmVhc2liaWxpdHlfanVtcF9kZWNheRjyASABKAE6BDAuOTUSMAokZmVhc2li",
233 "aWxpdHlfanVtcF9saW5lYXJpemF0aW9uX2xldmVsGIECIAEoBToBMhIrCh9m",
234 "ZWFzaWJpbGl0eV9qdW1wX3Jlc3RhcnRfZmFjdG9yGIICIAEoBToBMRIqChxm",
235 "ZWFzaWJpbGl0eV9qdW1wX2JhdGNoX2R0aW1lGKQCIAEoAToDMC4xEj0KLmZl",
236 "YXNpYmlsaXR5X2p1bXBfdmFyX3JhbmRvbWl6YXRpb25fcHJvYmFiaWxpdHkY",
237 "9wEgASgBOgQwLjA1EjsKLWZlYXNpYmlsaXR5X2p1bXBfdmFyX3BlcmJ1cmJh",
238 "dGlvbl9yYW5nZV9yYXRpbxj4ASABKAE6AzAuMhIvCiBmZWFzaWJpbGl0eV9q",
239 "dW1wX2VuYWJsZV9yZXN0YXJ0cxj6ASABKAg6BHRydWUSOwotZmVhc2liaWxp",
240 "dHlfanVtcF9tYXhfZXhwYW5kZWRfY29uc3RyYWludF9zaXplGIgCIAEoBToD",
241 "NTAwEhwKEG51bV92aW9sYXRpb25fbHMY9AEgASgFOgEwEi4KIHZpb2xhdGlv",
242 "bl9sc19wZXJ0dXJiYXRpb25fcGVyaW9kGPkBIAEoBToDMTAwEjQKJnZpb2xh",
243 "dGlvbl9sc19jb21wb3VuZF9tb3ZlX3Byb2JhYmlsaXR5GIMCIAEoAToDMC41",
244 "EiQKF3NoYXJlZF90cmVlX251bV93b3JrZXJzGOsBIAEoBToCLTESJgoWdXNl",
245 "X3NoYXJlZF90cmVlX3NlYXJjaBjsASABKAg6BWZhbHNlEjcKK3NoYXJlZF90",
246 "cmVlX3dvcmtlcl9taW5fcmVzdGFydHNfcGVyX3N1YnRyZWUYmgIgASgFOgEx",
247 "EjYKJ3NoYXJlZF90cmVlX3dvcmtlcl9lbmFibGVfdHJhaWxfc2hhcmluZxin",
248 "AiABKAg6BHRydWUSNgonc2hhcmVkX3RyZWVfd29ya2VyX2VuYWJsZV9waGFz",
249 "ZV9zaGFyaW5nGLACIAEoCDoEdHJ1ZRIuCiJzaGFyZWRfdHJlZV9vcGVuX2xl",
250 "YXZlc19wZXJfd29ya2VyGJkCIAEoAToBMhIwCiBzaGFyZWRfdHJlZV9tYXhf",
251 "bm9kZXNfcGVyX3dvcmtlchjuASABKAU6BTEwMDAwEngKGnNoYXJlZF90cmVl",
252 "X3NwbGl0X3N0cmF0ZWd5GO8BIAEoDjI+Lm9wZXJhdGlvbnNfcmVzZWFyY2gu",
253 "c2F0LlNhdFBhcmFtZXRlcnMuU2hhcmVkVHJlZVNwbGl0U3RyYXRlZ3k6E1NQ",
254 "TElUX1NUUkFURUdZX0FVVE8SKQodc2hhcmVkX3RyZWVfYmFsYW5jZV90b2xl",
255 "cmFuY2UYsQIgASgFOgExEikKG3NoYXJlZF90cmVlX3NwbGl0X21pbl9kdGlt",
256 "ZRjIAiABKAE6AzAuMRImChdlbnVtZXJhdGVfYWxsX3NvbHV0aW9ucxhXIAEo",
257 "CDoFZmFsc2USNwona2VlcF9hbGxfZmVhc2libGVfc29sdXRpb25zX2luX3By",
258 "ZXNvbHZlGK0BIAEoCDoFZmFsc2USMgoiZmlsbF90aWdodGVuZWRfZG9tYWlu",
259 "c19pbl9yZXNwb25zZRiEASABKAg6BWZhbHNlEjUKJWZpbGxfYWRkaXRpb25h",
260 "bF9zb2x1dGlvbnNfaW5fcmVzcG9uc2UYwgEgASgIOgVmYWxzZRInChlpbnN0",
261 "YW50aWF0ZV9hbGxfdmFyaWFibGVzGGogASgIOgR0cnVlEjYKKGF1dG9fZGV0",
262 "ZWN0X2dyZWF0ZXJfdGhhbl9hdF9sZWFzdF9vbmVfb2YYXyABKAg6BHRydWUS",
263 "KAoZc3RvcF9hZnRlcl9maXJzdF9zb2x1dGlvbhhiIAEoCDoFZmFsc2USIwoT",
264 "c3RvcF9hZnRlcl9wcmVzb2x2ZRiVASABKAg6BWZhbHNlEisKG3N0b3BfYWZ0",
265 "ZXJfcm9vdF9wcm9wYWdhdGlvbhj8ASABKAg6BWZhbHNlEiQKFmxuc19pbml0",
266 "aWFsX2RpZmZpY3VsdHkYswIgASgBOgMwLjUSLQofbG5zX2luaXRpYWxfZGV0",
267 "ZXJtaW5pc3RpY19saW1pdBi0AiABKAE6AzAuMRIWCgd1c2VfbG5zGJsCIAEo",
268 "CDoEdHJ1ZRIbCgx1c2VfbG5zX29ubHkYZSABKAg6BWZhbHNlEh4KEnNvbHV0",
269 "aW9uX3Bvb2xfc2l6ZRjBASABKAU6ATMSKgodc29sdXRpb25fcG9vbF9kaXZl",
270 "cnNpdHlfbGltaXQYyQIgASgFOgIxMBIhChVhbHRlcm5hdGl2ZV9wb29sX3Np",
271 "emUYxQIgASgFOgExEhsKDHVzZV9yaW5zX2xucxiBASABKAg6BHRydWUSIwoU",
272 "dXNlX2ZlYXNpYmlsaXR5X3B1bXAYpAEgASgIOgR0cnVlEh8KEHVzZV9sYl9y",
273 "ZWxheF9sbnMY/wEgASgIOgR0cnVlEisKHmxiX3JlbGF4X251bV93b3JrZXJz",
274 "X3RocmVzaG9sZBioAiABKAU6AjE2EmMKC2ZwX3JvdW5kaW5nGKUBIAEoDjI3",
275 "Lm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LlNhdFBhcmFtZXRlcnMuRlBSb3Vu",
276 "ZGluZ01ldGhvZDoUUFJPUEFHQVRJT05fQVNTSVNURUQSJAoUZGl2ZXJzaWZ5",
277 "X2xuc19wYXJhbXMYiQEgASgIOgVmYWxzZRIfChByYW5kb21pemVfc2VhcmNo",
278 "GGcgASgIOgVmYWxzZRIrCiBzZWFyY2hfcmFuZG9tX3ZhcmlhYmxlX3Bvb2xf",
279 "c2l6ZRhoIAEoAzoBMBIrChtwdXNoX2FsbF90YXNrc190b3dhcmRfc3RhcnQY",
280 "hgIgASgIOgVmYWxzZRIlChZ1c2Vfb3B0aW9uYWxfdmFyaWFibGVzGGwgASgI",
281 "OgVmYWxzZRIhChN1c2VfZXhhY3RfbHBfcmVhc29uGG0gASgIOgR0cnVlEicK",
282 "F3VzZV9jb21iaW5lZF9ub19vdmVybGFwGIUBIAEoCDoFZmFsc2USKgoeYXRf",
283 "bW9zdF9vbmVfbWF4X2V4cGFuc2lvbl9zaXplGI4CIAEoBToBMxIiChNjYXRj",
284 "aF9zaWdpbnRfc2lnbmFsGIcBIAEoCDoEdHJ1ZRIhChJ1c2VfaW1wbGllZF9i",
285 "b3VuZHMYkAEgASgIOgR0cnVlEiIKEnBvbGlzaF9scF9zb2x1dGlvbhivASAB",
286 "KAg6BWZhbHNlEiMKE2xwX3ByaW1hbF90b2xlcmFuY2UYigIgASgBOgUxZS0w",
287 "NxIhChFscF9kdWFsX3RvbGVyYW5jZRiLAiABKAE6BTFlLTA3EiAKEWNvbnZl",
288 "cnRfaW50ZXJ2YWxzGLEBIAEoCDoEdHJ1ZRIaCg5zeW1tZXRyeV9sZXZlbBi3",
289 "ASABKAU6ATISIgoSdXNlX3N5bW1ldHJ5X2luX2xwGK0CIAEoCDoFZmFsc2US",
290 "KQoZa2VlcF9zeW1tZXRyeV9pbl9wcmVzb2x2ZRivAiABKAg6BWZhbHNlEjcK",
291 "K3N5bW1ldHJ5X2RldGVjdGlvbl9kZXRlcm1pbmlzdGljX3RpbWVfbGltaXQY",
292 "rgIgASgBOgExEiUKFm5ld19saW5lYXJfcHJvcGFnYXRpb24Y4AEgASgIOgR0",
293 "cnVlEh8KEWxpbmVhcl9zcGxpdF9zaXplGIACIAEoBToDMTAwEh4KE2xpbmVh",
294 "cml6YXRpb25fbGV2ZWwYWiABKAU6ATESIQoWYm9vbGVhbl9lbmNvZGluZ19s",
295 "ZXZlbBhrIAEoBToBMRI9CjBtYXhfZG9tYWluX3NpemVfd2hlbl9lbmNvZGlu",
296 "Z19lcV9uZXFfY29uc3RyYWludHMYvwEgASgFOgIxNhIbCgxtYXhfbnVtX2N1",
297 "dHMYWyABKAU6BTEwMDAwEhUKCWN1dF9sZXZlbBjEASABKAU6ATESKgobb25s",
298 "eV9hZGRfY3V0c19hdF9sZXZlbF96ZXJvGFwgASgIOgVmYWxzZRIhChFhZGRf",
299 "b2JqZWN0aXZlX2N1dBjFASABKAg6BWZhbHNlEhkKC2FkZF9jZ19jdXRzGHUg",
300 "ASgIOgR0cnVlEhoKDGFkZF9taXJfY3V0cxh4IAEoCDoEdHJ1ZRIhChJhZGRf",
301 "emVyb19oYWxmX2N1dHMYqQEgASgIOgR0cnVlEh4KD2FkZF9jbGlxdWVfY3V0",
302 "cxisASABKAg6BHRydWUSGwoMYWRkX3JsdF9jdXRzGJcCIAEoCDoEdHJ1ZRIi",
303 "ChVtYXhfYWxsX2RpZmZfY3V0X3NpemUYlAEgASgFOgI2NBIfChBhZGRfbGlu",
304 "X21heF9jdXRzGJgBIAEoCDoEdHJ1ZRIpChxtYXhfaW50ZWdlcl9yb3VuZGlu",
305 "Z19zY2FsaW5nGHcgASgFOgM2MDASJwoZYWRkX2xwX2NvbnN0cmFpbnRzX2xh",
306 "emlseRhwIAEoCDoEdHJ1ZRIhChJyb290X2xwX2l0ZXJhdGlvbnMY4wEgASgF",
307 "OgQyMDAwEjIKJG1pbl9vcnRob2dvbmFsaXR5X2Zvcl9scF9jb25zdHJhaW50",
308 "cxhzIAEoAToEMC4wNRIoChxtYXhfY3V0X3JvdW5kc19hdF9sZXZlbF96ZXJv",
309 "GJoBIAEoBToBMRIrCh5tYXhfY29uc2VjdXRpdmVfaW5hY3RpdmVfY291bnQY",
310 "eSABKAU6AzEwMBIwChpjdXRfbWF4X2FjdGl2ZV9jb3VudF92YWx1ZRibASAB",
311 "KAE6CzEwMDAwMDAwMDAwEiQKFmN1dF9hY3RpdmVfY291bnRfZGVjYXkYnAEg",
312 "ASgBOgMwLjgSIQoSY3V0X2NsZWFudXBfdGFyZ2V0GJ0BIAEoBToEMTAwMBIm",
313 "ChpuZXdfY29uc3RyYWludHNfYmF0Y2hfc2l6ZRh6IAEoBToCNTASKQobZXhw",
314 "bG9pdF9pbnRlZ2VyX2xwX3NvbHV0aW9uGF4gASgIOgR0cnVlEiUKF2V4cGxv",
315 "aXRfYWxsX2xwX3NvbHV0aW9uGHQgASgIOgR0cnVlEiUKFWV4cGxvaXRfYmVz",
316 "dF9zb2x1dGlvbhiCASABKAg6BWZhbHNlEisKG2V4cGxvaXRfcmVsYXhhdGlv",
317 "bl9zb2x1dGlvbhihASABKAg6BWZhbHNlEiAKEWV4cGxvaXRfb2JqZWN0aXZl",
318 "GIMBIAEoCDoEdHJ1ZRIpChlkZXRlY3RfbGluZWFyaXplZF9wcm9kdWN0GJUC",
319 "IAEoCDoFZmFsc2USMwojdXNlX25ld19pbnRlZ2VyX2NvbmZsaWN0X3Jlc29s",
320 "dXRpb24Y0AIgASgIOgVmYWxzZRItCh5jcmVhdGVfMXVpcF9ib29sZWFuX2R1",
321 "cmluZ19pY3IY1QIgASgIOgR0cnVlEh8KDW1pcF9tYXhfYm91bmQYfCABKAE6",
322 "CDEwMDAwMDAwEhoKD21pcF92YXJfc2NhbGluZxh9IAEoAToBMRImChZtaXBf",
323 "c2NhbGVfbGFyZ2VfZG9tYWluGOEBIAEoCDoFZmFsc2USMAohbWlwX2F1dG9t",
324 "YXRpY2FsbHlfc2NhbGVfdmFyaWFibGVzGKYBIAEoCDoEdHJ1ZRIdCg1vbmx5",
325 "X3NvbHZlX2lwGN4BIAEoCDoFZmFsc2USIwoUbWlwX3dhbnRlZF9wcmVjaXNp",
326 "b24YfiABKAE6BTFlLTA2EiUKGW1pcF9tYXhfYWN0aXZpdHlfZXhwb25lbnQY",
327 "fyABKAU6AjUzEiQKE21pcF9jaGVja19wcmVjaXNpb24YgAEgASgBOgYwLjAw",
328 "MDESLwogbWlwX2NvbXB1dGVfdHJ1ZV9vYmplY3RpdmVfYm91bmQYxgEgASgI",
329 "OgR0cnVlEicKF21pcF9tYXhfdmFsaWRfbWFnbml0dWRlGMcBIAEoAToFMWUr",
330 "MjASOworbWlwX3RyZWF0X2hpZ2hfbWFnbml0dWRlX2JvdW5kc19hc19pbmZp",
331 "bml0eRiWAiABKAg6BWZhbHNlEiIKEm1pcF9kcm9wX3RvbGVyYW5jZRjoASAB",
332 "KAE6BTFlLTE2Eh4KEm1pcF9wcmVzb2x2ZV9sZXZlbBiFAiABKAU6ATIiSAoN",
333 "VmFyaWFibGVPcmRlchIMCghJTl9PUkRFUhAAEhQKEElOX1JFVkVSU0VfT1JE",
334 "RVIQARITCg9JTl9SQU5ET01fT1JERVIQAiJGCghQb2xhcml0eRIRCg1QT0xB",
335 "UklUWV9UUlVFEAASEgoOUE9MQVJJVFlfRkFMU0UQARITCg9QT0xBUklUWV9S",
336 "QU5ET00QAiJKCh1Db25mbGljdE1pbmltaXphdGlvbkFsZ29yaXRobRIICgRO",
337 "T05FEAASCgoGU0lNUExFEAESDQoJUkVDVVJTSVZFEAIiBAgDEAMimwEKGUJp",
338 "bmFyeU1pbml6YXRpb25BbGdvcml0aG0SGgoWTk9fQklOQVJZX01JTklNSVpB",
339 "VElPThAAEiAKHEJJTkFSWV9NSU5JTUlaQVRJT05fRlJPTV9VSVAQARIuCipC",
340 "SU5BUllfTUlOSU1JWkFUSU9OX0ZST01fVUlQX0FORF9ERUNJU0lPTlMQBSIE",
341 "CAIQAiIECAMQAyIECAQQBCI1Cg5DbGF1c2VPcmRlcmluZxITCg9DTEFVU0Vf",
342 "QUNUSVZJVFkQABIOCgpDTEFVU0VfTEJEEAEihgEKEFJlc3RhcnRBbGdvcml0",
343 "aG0SDgoKTk9fUkVTVEFSVBAAEhAKDExVQllfUkVTVEFSVBABEh0KGURMX01P",
344 "VklOR19BVkVSQUdFX1JFU1RBUlQQAhIeChpMQkRfTU9WSU5HX0FWRVJBR0Vf",
345 "UkVTVEFSVBADEhEKDUZJWEVEX1JFU1RBUlQQBCJ0ChVNYXhTYXRBc3N1bXB0",
346 "aW9uT3JkZXISHAoYREVGQVVMVF9BU1NVTVBUSU9OX09SREVSEAASHQoZT1JE",
347 "RVJfQVNTVU1QVElPTl9CWV9ERVBUSBABEh4KGk9SREVSX0FTU1VNUFRJT05f",
348 "QllfV0VJR0hUEAIibwodTWF4U2F0U3RyYXRpZmljYXRpb25BbGdvcml0aG0S",
349 "FwoTU1RSQVRJRklDQVRJT05fTk9ORRAAEhoKFlNUUkFUSUZJQ0FUSU9OX0RF",
350 "U0NFTlQQARIZChVTVFJBVElGSUNBVElPTl9BU0NFTlQQAiLhAQoPU2VhcmNo",
351 "QnJhbmNoaW5nEhQKEEFVVE9NQVRJQ19TRUFSQ0gQABIQCgxGSVhFRF9TRUFS",
352 "Q0gQARIUChBQT1JURk9MSU9fU0VBUkNIEAISDQoJTFBfU0VBUkNIEAMSFgoS",
353 "UFNFVURPX0NPU1RfU0VBUkNIEAQSJwojUE9SVEZPTElPX1dJVEhfUVVJQ0tf",
354 "UkVTVEFSVF9TRUFSQ0gQBRIPCgtISU5UX1NFQVJDSBAGEhgKFFBBUlRJQUxf",
355 "RklYRURfU0VBUkNIEAcSFQoRUkFORE9NSVpFRF9TRUFSQ0gQCCK4AQoXU2hh",
356 "cmVkVHJlZVNwbGl0U3RyYXRlZ3kSFwoTU1BMSVRfU1RSQVRFR1lfQVVUTxAA",
357 "Eh4KGlNQTElUX1NUUkFURUdZX0RJU0NSRVBBTkNZEAESHwobU1BMSVRfU1RS",
358 "QVRFR1lfT0JKRUNUSVZFX0xCEAISIAocU1BMSVRfU1RSQVRFR1lfQkFMQU5D",
359 "RURfVFJFRRADEiEKHVNQTElUX1NUUkFURUdZX0ZJUlNUX1BST1BPU0FMEAQi",
360 "aAoQRlBSb3VuZGluZ01ldGhvZBITCg9ORUFSRVNUX0lOVEVHRVIQABIOCgpM",
361 "T0NLX0JBU0VEEAESFQoRQUNUSVZFX0xPQ0tfQkFTRUQQAxIYChRQUk9QQUdB",
362 "VElPTl9BU1NJU1RFRBACQmsKFmNvbS5nb29nbGUub3J0b29scy5zYXRQAVo6",
363 "Z2l0aHViLmNvbS9nb29nbGUvb3ItdG9vbHMvb3J0b29scy9zYXQvcHJvdG8v",
364 "c2F0cGFyYW1ldGVyc6oCEkdvb2dsZS5PclRvb2xzLlNhdA=="));
365 descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
366 new pbr::FileDescriptor[] { },
367 new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
368 new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.SatParameters), global::Google.OrTools.Sat.SatParameters.Parser, new[]{ "Name", "PreferredVariableOrder", "InitialPolarity", "UsePhaseSaving", "PolarityRephaseIncrement", "PolarityExploitLsHints", "RandomPolarityRatio", "RandomBranchesRatio", "UseErwaHeuristic", "InitialVariablesActivity", "AlsoBumpVariablesInConflictReasons", "MinimizationAlgorithm", "BinaryMinimizationAlgorithm", "SubsumptionDuringConflictAnalysis", "ExtraSubsumptionDuringConflictAnalysis", "DecisionSubsumptionDuringConflictAnalysis", "EagerlySubsumeLastNConflicts", "SubsumeDuringVivification", "UseChronologicalBacktracking", "MaxBackjumpLevels", "ChronologicalBacktrackMinConflicts", "ClauseCleanupPeriod", "ClauseCleanupPeriodIncrement", "ClauseCleanupTarget", "ClauseCleanupRatio", "ClauseCleanupLbdBound", "ClauseCleanupLbdTier1", "ClauseCleanupLbdTier2", "ClauseCleanupOrdering", "PbCleanupIncrement", "PbCleanupRatio", "VariableActivityDecay", "MaxVariableActivityValue", "GlucoseMaxDecay", "GlucoseDecayIncrement", "GlucoseDecayIncrementPeriod", "ClauseActivityDecay", "MaxClauseActivityValue", "RestartAlgorithms", "DefaultRestartAlgorithms", "RestartPeriod", "RestartRunningWindowSize", "RestartDlAverageRatio", "RestartLbdAverageRatio", "UseBlockingRestart", "BlockingRestartWindowSize", "BlockingRestartMultiplier", "NumConflictsBeforeStrategyChanges", "StrategyChangeIncreaseRatio", "MaxTimeInSeconds", "MaxDeterministicTime", "MaxNumDeterministicBatches", "MaxNumberOfConflicts", "MaxMemoryInMb", "AbsoluteGapLimit", "RelativeGapLimit", "RandomSeed", "PermuteVariableRandomly", "PermutePresolveConstraintOrder", "UseAbslRandom", "LogSearchProgress", "LogSubsolverStatistics", "LogPrefix", "LogToStdout", "LogToResponse", "UsePbResolution", "MinimizeReductionDuringPbResolution", "CountAssumptionLevelsInLbd", "PresolveBveThreshold", "FilterSatPostsolveClauses", "PresolveBveClauseWeight", "ProbingDeterministicTimeLimit", "PresolveProbingDeterministicTimeLimit", "PresolveBlockedClause", "PresolveUseBva", "PresolveBvaThreshold", "MaxPresolveIterations", "CpModelPresolve", "CpModelProbingLevel", "CpModelUseSatPresolve", "LoadAtMostOnesInSatPresolve", "RemoveFixedVariablesEarly", "DetectTableWithCost", "TableCompressionLevel", "ExpandAlldiffConstraints", "MaxAlldiffDomainSize", "ExpandReservoirConstraints", "MaxDomainSizeForLinear2Expansion", "ExpandReservoirUsingCircuit", "EncodeCumulativeAsReservoir", "MaxLinMaxSizeForExpansion", "DisableConstraintExpansion", "EncodeComplexLinearConstraintWithInteger", "MergeNoOverlapWorkLimit", "MergeAtMostOneWorkLimit", "PresolveSubstitutionLevel", "PresolveExtractIntegerEnforcement", "PresolveInclusionWorkLimit", "IgnoreNames", "InferAllDiffs", "FindBigLinearOverlap", "FindClausesThatAreExactlyOne", "UseSatInprocessing", "InprocessingDtimeRatio", "InprocessingProbingDtime", "InprocessingMinimizationDtime", "InprocessingMinimizationUseConflictAnalysis", "InprocessingMinimizationUseAllOrderings", "InprocessingUseCongruenceClosure", "InprocessingUseSatSweeping", "NumWorkers", "NumSearchWorkers", "NumFullSubsolvers", "Subsolvers", "ExtraSubsolvers", "IgnoreSubsolvers", "FilterSubsolvers", "SubsolverParams", "InterleaveSearch", "InterleaveBatchSize", "ShareObjectiveBounds", "ShareLevelZeroBounds", "ShareLinear2Bounds", "ShareBinaryClauses", "ShareGlueClauses", "MinimizeSharedClauses", "ShareGlueClausesDtime", "CheckLratProof", "CheckMergedLratProof", "OutputLratProof", "CheckDratProof", "OutputDratProof", "MaxDratTimeInSeconds", "DebugPostsolveWithFullSolver", "DebugMaxNumPresolveOperations", "DebugCrashOnBadHint", "DebugCrashIfPresolveBreaksHint", "DebugCrashIfLratCheckFails", "UseOptimizationHints", "CoreMinimizationLevel", "FindMultipleCores", "CoverOptimization", "MaxSatAssumptionOrder", "MaxSatReverseAssumptionOrder", "MaxSatStratification", "PropagationLoopDetectionFactor", "UsePrecedencesInDisjunctiveConstraint", "TransitivePrecedencesWorkLimit", "MaxSizeToCreatePrecedenceLiteralsInDisjunctive", "UseStrongPropagationInDisjunctive", "UseDynamicPrecedenceInDisjunctive", "UseDynamicPrecedenceInCumulative", "UseOverloadCheckerInCumulative", "UseConservativeScaleOverloadChecker", "UseTimetableEdgeFindingInCumulative", "MaxNumIntervalsForTimetableEdgeFinding", "UseHardPrecedencesInCumulative", "ExploitAllPrecedences", "UseDisjunctiveConstraintInCumulative", "NoOverlap2DBooleanRelationsLimit", "UseTimetablingInNoOverlap2D", "UseEnergeticReasoningInNoOverlap2D", "UseAreaEnergeticReasoningInNoOverlap2D", "UseTryEdgeReasoningInNoOverlap2D", "MaxPairsPairwiseReasoningInNoOverlap2D", "MaximumRegionsToSplitInDisconnectedNoOverlap2D", "UseLinear3ForNoOverlap2DPrecedences", "UseDualSchedulingHeuristics", "UseAllDifferentForCircuit", "RoutingCutSubsetSizeForBinaryRelationBound", "RoutingCutSubsetSizeForTightBinaryRelationBound", "RoutingCutSubsetSizeForExactBinaryRelationBound", "RoutingCutSubsetSizeForShortestPathsBound", "RoutingCutDpEffort", "RoutingCutMaxInfeasiblePathLength", "SearchBranching", "HintConflictLimit", "RepairHint", "FixVariablesToTheirHintedValue", "UseProbingSearch", "UseExtendedProbing", "ProbingNumCombinationsLimit", "ShavingDeterministicTimeInProbingSearch", "ShavingSearchDeterministicTime", "ShavingSearchThreshold", "UseObjectiveLbSearch", "UseObjectiveShavingSearch", "VariablesShavingLevel", "PseudoCostReliabilityThreshold", "OptimizeWithCore", "OptimizeWithLbTreeSearch", "SaveLpBasisInLbTreeSearch", "BinarySearchNumConflicts", "OptimizeWithMaxHs", "UseFeasibilityJump", "UseLsOnly", "FeasibilityJumpDecay", "FeasibilityJumpLinearizationLevel", "FeasibilityJumpRestartFactor", "FeasibilityJumpBatchDtime", "FeasibilityJumpVarRandomizationProbability", "FeasibilityJumpVarPerburbationRangeRatio", "FeasibilityJumpEnableRestarts", "FeasibilityJumpMaxExpandedConstraintSize", "NumViolationLs", "ViolationLsPerturbationPeriod", "ViolationLsCompoundMoveProbability", "SharedTreeNumWorkers", "UseSharedTreeSearch", "SharedTreeWorkerMinRestartsPerSubtree", "SharedTreeWorkerEnableTrailSharing", "SharedTreeWorkerEnablePhaseSharing", "SharedTreeOpenLeavesPerWorker", "SharedTreeMaxNodesPerWorker", "SharedTreeSplitStrategy", "SharedTreeBalanceTolerance", "SharedTreeSplitMinDtime", "EnumerateAllSolutions", "KeepAllFeasibleSolutionsInPresolve", "FillTightenedDomainsInResponse", "FillAdditionalSolutionsInResponse", "InstantiateAllVariables", "AutoDetectGreaterThanAtLeastOneOf", "StopAfterFirstSolution", "StopAfterPresolve", "StopAfterRootPropagation", "LnsInitialDifficulty", "LnsInitialDeterministicLimit", "UseLns", "UseLnsOnly", "SolutionPoolSize", "SolutionPoolDiversityLimit", "AlternativePoolSize", "UseRinsLns", "UseFeasibilityPump", "UseLbRelaxLns", "LbRelaxNumWorkersThreshold", "FpRounding", "DiversifyLnsParams", "RandomizeSearch", "SearchRandomVariablePoolSize", "PushAllTasksTowardStart", "UseOptionalVariables", "UseExactLpReason", "UseCombinedNoOverlap", "AtMostOneMaxExpansionSize", "CatchSigintSignal", "UseImpliedBounds", "PolishLpSolution", "LpPrimalTolerance", "LpDualTolerance", "ConvertIntervals", "SymmetryLevel", "UseSymmetryInLp", "KeepSymmetryInPresolve", "SymmetryDetectionDeterministicTimeLimit", "NewLinearPropagation", "LinearSplitSize", "LinearizationLevel", "BooleanEncodingLevel", "MaxDomainSizeWhenEncodingEqNeqConstraints", "MaxNumCuts", "CutLevel", "OnlyAddCutsAtLevelZero", "AddObjectiveCut", "AddCgCuts", "AddMirCuts", "AddZeroHalfCuts", "AddCliqueCuts", "AddRltCuts", "MaxAllDiffCutSize", "AddLinMaxCuts", "MaxIntegerRoundingScaling", "AddLpConstraintsLazily", "RootLpIterations", "MinOrthogonalityForLpConstraints", "MaxCutRoundsAtLevelZero", "MaxConsecutiveInactiveCount", "CutMaxActiveCountValue", "CutActiveCountDecay", "CutCleanupTarget", "NewConstraintsBatchSize", "ExploitIntegerLpSolution", "ExploitAllLpSolution", "ExploitBestSolution", "ExploitRelaxationSolution", "ExploitObjective", "DetectLinearizedProduct", "UseNewIntegerConflictResolution", "Create1UipBooleanDuringIcr", "MipMaxBound", "MipVarScaling", "MipScaleLargeDomain", "MipAutomaticallyScaleVariables", "OnlySolveIp", "MipWantedPrecision", "MipMaxActivityExponent", "MipCheckPrecision", "MipComputeTrueObjectiveBound", "MipMaxValidMagnitude", "MipTreatHighMagnitudeBoundsAsInfinity", "MipDropTolerance", "MipPresolveLevel" }, null, new[]{ typeof(global::Google.OrTools.Sat.SatParameters.Types.VariableOrder), typeof(global::Google.OrTools.Sat.SatParameters.Types.Polarity), typeof(global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm), typeof(global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm), typeof(global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering), typeof(global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm), typeof(global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder), typeof(global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm), typeof(global::Google.OrTools.Sat.SatParameters.Types.SearchBranching), typeof(global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy), typeof(global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod) }, null, null)
369 }));
370 }
371 #endregion
372
373 }
374 #region Messages
381 [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
382 public sealed partial class SatParameters : pb::IMessage<SatParameters>
383 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
384 , pb::IBufferMessage
385 #endif
386 {
387 private static readonly pb::MessageParser<SatParameters> _parser = new pb::MessageParser<SatParameters>(() => new SatParameters());
388 private pb::UnknownFieldSet _unknownFields;
389 private int _hasBits0;
390 private int _hasBits1;
391 private int _hasBits2;
392 private int _hasBits3;
393 private int _hasBits4;
394 private int _hasBits5;
395 private int _hasBits6;
396 private int _hasBits7;
397 private int _hasBits8;
398 private int _hasBits9;
399 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
400 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
401 public static pb::MessageParser<SatParameters> Parser { get { return _parser; } }
403 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
404 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
405 public static pbr::MessageDescriptor Descriptor {
406 get { return global::Google.OrTools.Sat.SatParametersReflection.Descriptor.MessageTypes[0]; }
407 }
408
409 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
410 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
411 pbr::MessageDescriptor pb::IMessage.Descriptor {
412 get { return Descriptor; }
413 }
414
415 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
416 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
417 public SatParameters() {
418 OnConstruction();
419 }
420
421 partial void OnConstruction();
422
423 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
424 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
425 public SatParameters(SatParameters other) : this() {
426 _hasBits0 = other._hasBits0;
427 _hasBits1 = other._hasBits1;
428 _hasBits2 = other._hasBits2;
429 _hasBits3 = other._hasBits3;
430 _hasBits4 = other._hasBits4;
431 _hasBits5 = other._hasBits5;
432 _hasBits6 = other._hasBits6;
433 _hasBits7 = other._hasBits7;
434 _hasBits8 = other._hasBits8;
435 _hasBits9 = other._hasBits9;
436 name_ = other.name_;
437 preferredVariableOrder_ = other.preferredVariableOrder_;
438 initialPolarity_ = other.initialPolarity_;
439 usePhaseSaving_ = other.usePhaseSaving_;
440 polarityRephaseIncrement_ = other.polarityRephaseIncrement_;
441 polarityExploitLsHints_ = other.polarityExploitLsHints_;
442 randomPolarityRatio_ = other.randomPolarityRatio_;
443 randomBranchesRatio_ = other.randomBranchesRatio_;
444 useErwaHeuristic_ = other.useErwaHeuristic_;
445 initialVariablesActivity_ = other.initialVariablesActivity_;
446 alsoBumpVariablesInConflictReasons_ = other.alsoBumpVariablesInConflictReasons_;
447 minimizationAlgorithm_ = other.minimizationAlgorithm_;
448 binaryMinimizationAlgorithm_ = other.binaryMinimizationAlgorithm_;
449 subsumptionDuringConflictAnalysis_ = other.subsumptionDuringConflictAnalysis_;
450 extraSubsumptionDuringConflictAnalysis_ = other.extraSubsumptionDuringConflictAnalysis_;
451 decisionSubsumptionDuringConflictAnalysis_ = other.decisionSubsumptionDuringConflictAnalysis_;
452 eagerlySubsumeLastNConflicts_ = other.eagerlySubsumeLastNConflicts_;
453 subsumeDuringVivification_ = other.subsumeDuringVivification_;
454 useChronologicalBacktracking_ = other.useChronologicalBacktracking_;
455 maxBackjumpLevels_ = other.maxBackjumpLevels_;
456 chronologicalBacktrackMinConflicts_ = other.chronologicalBacktrackMinConflicts_;
457 clauseCleanupPeriod_ = other.clauseCleanupPeriod_;
458 clauseCleanupPeriodIncrement_ = other.clauseCleanupPeriodIncrement_;
459 clauseCleanupTarget_ = other.clauseCleanupTarget_;
460 clauseCleanupRatio_ = other.clauseCleanupRatio_;
461 clauseCleanupLbdBound_ = other.clauseCleanupLbdBound_;
462 clauseCleanupLbdTier1_ = other.clauseCleanupLbdTier1_;
463 clauseCleanupLbdTier2_ = other.clauseCleanupLbdTier2_;
464 clauseCleanupOrdering_ = other.clauseCleanupOrdering_;
465 pbCleanupIncrement_ = other.pbCleanupIncrement_;
466 pbCleanupRatio_ = other.pbCleanupRatio_;
467 variableActivityDecay_ = other.variableActivityDecay_;
468 maxVariableActivityValue_ = other.maxVariableActivityValue_;
469 glucoseMaxDecay_ = other.glucoseMaxDecay_;
470 glucoseDecayIncrement_ = other.glucoseDecayIncrement_;
471 glucoseDecayIncrementPeriod_ = other.glucoseDecayIncrementPeriod_;
472 clauseActivityDecay_ = other.clauseActivityDecay_;
473 maxClauseActivityValue_ = other.maxClauseActivityValue_;
474 restartAlgorithms_ = other.restartAlgorithms_.Clone();
475 defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
476 restartPeriod_ = other.restartPeriod_;
477 restartRunningWindowSize_ = other.restartRunningWindowSize_;
478 restartDlAverageRatio_ = other.restartDlAverageRatio_;
479 restartLbdAverageRatio_ = other.restartLbdAverageRatio_;
480 useBlockingRestart_ = other.useBlockingRestart_;
481 blockingRestartWindowSize_ = other.blockingRestartWindowSize_;
482 blockingRestartMultiplier_ = other.blockingRestartMultiplier_;
483 numConflictsBeforeStrategyChanges_ = other.numConflictsBeforeStrategyChanges_;
484 strategyChangeIncreaseRatio_ = other.strategyChangeIncreaseRatio_;
485 maxTimeInSeconds_ = other.maxTimeInSeconds_;
486 maxDeterministicTime_ = other.maxDeterministicTime_;
487 maxNumDeterministicBatches_ = other.maxNumDeterministicBatches_;
488 maxNumberOfConflicts_ = other.maxNumberOfConflicts_;
489 maxMemoryInMb_ = other.maxMemoryInMb_;
490 absoluteGapLimit_ = other.absoluteGapLimit_;
491 relativeGapLimit_ = other.relativeGapLimit_;
492 randomSeed_ = other.randomSeed_;
493 permuteVariableRandomly_ = other.permuteVariableRandomly_;
494 permutePresolveConstraintOrder_ = other.permutePresolveConstraintOrder_;
495 useAbslRandom_ = other.useAbslRandom_;
496 logSearchProgress_ = other.logSearchProgress_;
497 logSubsolverStatistics_ = other.logSubsolverStatistics_;
498 logPrefix_ = other.logPrefix_;
499 logToStdout_ = other.logToStdout_;
500 logToResponse_ = other.logToResponse_;
501 usePbResolution_ = other.usePbResolution_;
502 minimizeReductionDuringPbResolution_ = other.minimizeReductionDuringPbResolution_;
503 countAssumptionLevelsInLbd_ = other.countAssumptionLevelsInLbd_;
504 presolveBveThreshold_ = other.presolveBveThreshold_;
505 filterSatPostsolveClauses_ = other.filterSatPostsolveClauses_;
506 presolveBveClauseWeight_ = other.presolveBveClauseWeight_;
507 probingDeterministicTimeLimit_ = other.probingDeterministicTimeLimit_;
508 presolveProbingDeterministicTimeLimit_ = other.presolveProbingDeterministicTimeLimit_;
509 presolveBlockedClause_ = other.presolveBlockedClause_;
510 presolveUseBva_ = other.presolveUseBva_;
511 presolveBvaThreshold_ = other.presolveBvaThreshold_;
512 maxPresolveIterations_ = other.maxPresolveIterations_;
513 cpModelPresolve_ = other.cpModelPresolve_;
514 cpModelProbingLevel_ = other.cpModelProbingLevel_;
515 cpModelUseSatPresolve_ = other.cpModelUseSatPresolve_;
516 loadAtMostOnesInSatPresolve_ = other.loadAtMostOnesInSatPresolve_;
517 removeFixedVariablesEarly_ = other.removeFixedVariablesEarly_;
518 detectTableWithCost_ = other.detectTableWithCost_;
519 tableCompressionLevel_ = other.tableCompressionLevel_;
520 expandAlldiffConstraints_ = other.expandAlldiffConstraints_;
521 maxAlldiffDomainSize_ = other.maxAlldiffDomainSize_;
522 expandReservoirConstraints_ = other.expandReservoirConstraints_;
523 maxDomainSizeForLinear2Expansion_ = other.maxDomainSizeForLinear2Expansion_;
524 expandReservoirUsingCircuit_ = other.expandReservoirUsingCircuit_;
525 encodeCumulativeAsReservoir_ = other.encodeCumulativeAsReservoir_;
526 maxLinMaxSizeForExpansion_ = other.maxLinMaxSizeForExpansion_;
527 disableConstraintExpansion_ = other.disableConstraintExpansion_;
528 encodeComplexLinearConstraintWithInteger_ = other.encodeComplexLinearConstraintWithInteger_;
529 mergeNoOverlapWorkLimit_ = other.mergeNoOverlapWorkLimit_;
530 mergeAtMostOneWorkLimit_ = other.mergeAtMostOneWorkLimit_;
531 presolveSubstitutionLevel_ = other.presolveSubstitutionLevel_;
532 presolveExtractIntegerEnforcement_ = other.presolveExtractIntegerEnforcement_;
533 presolveInclusionWorkLimit_ = other.presolveInclusionWorkLimit_;
534 ignoreNames_ = other.ignoreNames_;
535 inferAllDiffs_ = other.inferAllDiffs_;
536 findBigLinearOverlap_ = other.findBigLinearOverlap_;
537 findClausesThatAreExactlyOne_ = other.findClausesThatAreExactlyOne_;
538 useSatInprocessing_ = other.useSatInprocessing_;
539 inprocessingDtimeRatio_ = other.inprocessingDtimeRatio_;
540 inprocessingProbingDtime_ = other.inprocessingProbingDtime_;
541 inprocessingMinimizationDtime_ = other.inprocessingMinimizationDtime_;
542 inprocessingMinimizationUseConflictAnalysis_ = other.inprocessingMinimizationUseConflictAnalysis_;
543 inprocessingMinimizationUseAllOrderings_ = other.inprocessingMinimizationUseAllOrderings_;
544 inprocessingUseCongruenceClosure_ = other.inprocessingUseCongruenceClosure_;
545 inprocessingUseSatSweeping_ = other.inprocessingUseSatSweeping_;
546 numWorkers_ = other.numWorkers_;
547 numSearchWorkers_ = other.numSearchWorkers_;
548 numFullSubsolvers_ = other.numFullSubsolvers_;
549 subsolvers_ = other.subsolvers_.Clone();
550 extraSubsolvers_ = other.extraSubsolvers_.Clone();
551 ignoreSubsolvers_ = other.ignoreSubsolvers_.Clone();
552 filterSubsolvers_ = other.filterSubsolvers_.Clone();
553 subsolverParams_ = other.subsolverParams_.Clone();
554 interleaveSearch_ = other.interleaveSearch_;
555 interleaveBatchSize_ = other.interleaveBatchSize_;
556 shareObjectiveBounds_ = other.shareObjectiveBounds_;
557 shareLevelZeroBounds_ = other.shareLevelZeroBounds_;
558 shareLinear2Bounds_ = other.shareLinear2Bounds_;
559 shareBinaryClauses_ = other.shareBinaryClauses_;
560 shareGlueClauses_ = other.shareGlueClauses_;
561 minimizeSharedClauses_ = other.minimizeSharedClauses_;
562 shareGlueClausesDtime_ = other.shareGlueClausesDtime_;
563 checkLratProof_ = other.checkLratProof_;
564 checkMergedLratProof_ = other.checkMergedLratProof_;
565 outputLratProof_ = other.outputLratProof_;
566 checkDratProof_ = other.checkDratProof_;
567 outputDratProof_ = other.outputDratProof_;
568 maxDratTimeInSeconds_ = other.maxDratTimeInSeconds_;
569 debugPostsolveWithFullSolver_ = other.debugPostsolveWithFullSolver_;
570 debugMaxNumPresolveOperations_ = other.debugMaxNumPresolveOperations_;
571 debugCrashOnBadHint_ = other.debugCrashOnBadHint_;
572 debugCrashIfPresolveBreaksHint_ = other.debugCrashIfPresolveBreaksHint_;
573 debugCrashIfLratCheckFails_ = other.debugCrashIfLratCheckFails_;
574 useOptimizationHints_ = other.useOptimizationHints_;
575 coreMinimizationLevel_ = other.coreMinimizationLevel_;
576 findMultipleCores_ = other.findMultipleCores_;
577 coverOptimization_ = other.coverOptimization_;
578 maxSatAssumptionOrder_ = other.maxSatAssumptionOrder_;
579 maxSatReverseAssumptionOrder_ = other.maxSatReverseAssumptionOrder_;
580 maxSatStratification_ = other.maxSatStratification_;
581 propagationLoopDetectionFactor_ = other.propagationLoopDetectionFactor_;
582 usePrecedencesInDisjunctiveConstraint_ = other.usePrecedencesInDisjunctiveConstraint_;
583 transitivePrecedencesWorkLimit_ = other.transitivePrecedencesWorkLimit_;
584 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = other.maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
585 useStrongPropagationInDisjunctive_ = other.useStrongPropagationInDisjunctive_;
586 useDynamicPrecedenceInDisjunctive_ = other.useDynamicPrecedenceInDisjunctive_;
587 useDynamicPrecedenceInCumulative_ = other.useDynamicPrecedenceInCumulative_;
588 useOverloadCheckerInCumulative_ = other.useOverloadCheckerInCumulative_;
589 useConservativeScaleOverloadChecker_ = other.useConservativeScaleOverloadChecker_;
590 useTimetableEdgeFindingInCumulative_ = other.useTimetableEdgeFindingInCumulative_;
591 maxNumIntervalsForTimetableEdgeFinding_ = other.maxNumIntervalsForTimetableEdgeFinding_;
592 useHardPrecedencesInCumulative_ = other.useHardPrecedencesInCumulative_;
593 exploitAllPrecedences_ = other.exploitAllPrecedences_;
594 useDisjunctiveConstraintInCumulative_ = other.useDisjunctiveConstraintInCumulative_;
595 noOverlap2DBooleanRelationsLimit_ = other.noOverlap2DBooleanRelationsLimit_;
596 useTimetablingInNoOverlap2D_ = other.useTimetablingInNoOverlap2D_;
597 useEnergeticReasoningInNoOverlap2D_ = other.useEnergeticReasoningInNoOverlap2D_;
598 useAreaEnergeticReasoningInNoOverlap2D_ = other.useAreaEnergeticReasoningInNoOverlap2D_;
599 useTryEdgeReasoningInNoOverlap2D_ = other.useTryEdgeReasoningInNoOverlap2D_;
600 maxPairsPairwiseReasoningInNoOverlap2D_ = other.maxPairsPairwiseReasoningInNoOverlap2D_;
601 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = other.maximumRegionsToSplitInDisconnectedNoOverlap2D_;
602 useLinear3ForNoOverlap2DPrecedences_ = other.useLinear3ForNoOverlap2DPrecedences_;
603 useDualSchedulingHeuristics_ = other.useDualSchedulingHeuristics_;
604 useAllDifferentForCircuit_ = other.useAllDifferentForCircuit_;
605 routingCutSubsetSizeForBinaryRelationBound_ = other.routingCutSubsetSizeForBinaryRelationBound_;
606 routingCutSubsetSizeForTightBinaryRelationBound_ = other.routingCutSubsetSizeForTightBinaryRelationBound_;
607 routingCutSubsetSizeForExactBinaryRelationBound_ = other.routingCutSubsetSizeForExactBinaryRelationBound_;
608 routingCutSubsetSizeForShortestPathsBound_ = other.routingCutSubsetSizeForShortestPathsBound_;
609 routingCutDpEffort_ = other.routingCutDpEffort_;
610 routingCutMaxInfeasiblePathLength_ = other.routingCutMaxInfeasiblePathLength_;
611 searchBranching_ = other.searchBranching_;
612 hintConflictLimit_ = other.hintConflictLimit_;
613 repairHint_ = other.repairHint_;
614 fixVariablesToTheirHintedValue_ = other.fixVariablesToTheirHintedValue_;
615 useProbingSearch_ = other.useProbingSearch_;
616 useExtendedProbing_ = other.useExtendedProbing_;
617 probingNumCombinationsLimit_ = other.probingNumCombinationsLimit_;
618 shavingDeterministicTimeInProbingSearch_ = other.shavingDeterministicTimeInProbingSearch_;
619 shavingSearchDeterministicTime_ = other.shavingSearchDeterministicTime_;
620 shavingSearchThreshold_ = other.shavingSearchThreshold_;
621 useObjectiveLbSearch_ = other.useObjectiveLbSearch_;
622 useObjectiveShavingSearch_ = other.useObjectiveShavingSearch_;
623 variablesShavingLevel_ = other.variablesShavingLevel_;
624 pseudoCostReliabilityThreshold_ = other.pseudoCostReliabilityThreshold_;
625 optimizeWithCore_ = other.optimizeWithCore_;
626 optimizeWithLbTreeSearch_ = other.optimizeWithLbTreeSearch_;
627 saveLpBasisInLbTreeSearch_ = other.saveLpBasisInLbTreeSearch_;
628 binarySearchNumConflicts_ = other.binarySearchNumConflicts_;
629 optimizeWithMaxHs_ = other.optimizeWithMaxHs_;
630 useFeasibilityJump_ = other.useFeasibilityJump_;
631 useLsOnly_ = other.useLsOnly_;
632 feasibilityJumpDecay_ = other.feasibilityJumpDecay_;
633 feasibilityJumpLinearizationLevel_ = other.feasibilityJumpLinearizationLevel_;
634 feasibilityJumpRestartFactor_ = other.feasibilityJumpRestartFactor_;
635 feasibilityJumpBatchDtime_ = other.feasibilityJumpBatchDtime_;
636 feasibilityJumpVarRandomizationProbability_ = other.feasibilityJumpVarRandomizationProbability_;
637 feasibilityJumpVarPerburbationRangeRatio_ = other.feasibilityJumpVarPerburbationRangeRatio_;
638 feasibilityJumpEnableRestarts_ = other.feasibilityJumpEnableRestarts_;
639 feasibilityJumpMaxExpandedConstraintSize_ = other.feasibilityJumpMaxExpandedConstraintSize_;
640 numViolationLs_ = other.numViolationLs_;
641 violationLsPerturbationPeriod_ = other.violationLsPerturbationPeriod_;
642 violationLsCompoundMoveProbability_ = other.violationLsCompoundMoveProbability_;
643 sharedTreeNumWorkers_ = other.sharedTreeNumWorkers_;
644 useSharedTreeSearch_ = other.useSharedTreeSearch_;
645 sharedTreeWorkerMinRestartsPerSubtree_ = other.sharedTreeWorkerMinRestartsPerSubtree_;
646 sharedTreeWorkerEnableTrailSharing_ = other.sharedTreeWorkerEnableTrailSharing_;
647 sharedTreeWorkerEnablePhaseSharing_ = other.sharedTreeWorkerEnablePhaseSharing_;
648 sharedTreeOpenLeavesPerWorker_ = other.sharedTreeOpenLeavesPerWorker_;
649 sharedTreeMaxNodesPerWorker_ = other.sharedTreeMaxNodesPerWorker_;
650 sharedTreeSplitStrategy_ = other.sharedTreeSplitStrategy_;
651 sharedTreeBalanceTolerance_ = other.sharedTreeBalanceTolerance_;
652 sharedTreeSplitMinDtime_ = other.sharedTreeSplitMinDtime_;
653 enumerateAllSolutions_ = other.enumerateAllSolutions_;
654 keepAllFeasibleSolutionsInPresolve_ = other.keepAllFeasibleSolutionsInPresolve_;
655 fillTightenedDomainsInResponse_ = other.fillTightenedDomainsInResponse_;
656 fillAdditionalSolutionsInResponse_ = other.fillAdditionalSolutionsInResponse_;
657 instantiateAllVariables_ = other.instantiateAllVariables_;
658 autoDetectGreaterThanAtLeastOneOf_ = other.autoDetectGreaterThanAtLeastOneOf_;
659 stopAfterFirstSolution_ = other.stopAfterFirstSolution_;
660 stopAfterPresolve_ = other.stopAfterPresolve_;
661 stopAfterRootPropagation_ = other.stopAfterRootPropagation_;
662 lnsInitialDifficulty_ = other.lnsInitialDifficulty_;
663 lnsInitialDeterministicLimit_ = other.lnsInitialDeterministicLimit_;
664 useLns_ = other.useLns_;
665 useLnsOnly_ = other.useLnsOnly_;
666 solutionPoolSize_ = other.solutionPoolSize_;
667 solutionPoolDiversityLimit_ = other.solutionPoolDiversityLimit_;
668 alternativePoolSize_ = other.alternativePoolSize_;
669 useRinsLns_ = other.useRinsLns_;
670 useFeasibilityPump_ = other.useFeasibilityPump_;
671 useLbRelaxLns_ = other.useLbRelaxLns_;
672 lbRelaxNumWorkersThreshold_ = other.lbRelaxNumWorkersThreshold_;
673 fpRounding_ = other.fpRounding_;
674 diversifyLnsParams_ = other.diversifyLnsParams_;
675 randomizeSearch_ = other.randomizeSearch_;
676 searchRandomVariablePoolSize_ = other.searchRandomVariablePoolSize_;
677 pushAllTasksTowardStart_ = other.pushAllTasksTowardStart_;
678 useOptionalVariables_ = other.useOptionalVariables_;
679 useExactLpReason_ = other.useExactLpReason_;
680 useCombinedNoOverlap_ = other.useCombinedNoOverlap_;
681 atMostOneMaxExpansionSize_ = other.atMostOneMaxExpansionSize_;
682 catchSigintSignal_ = other.catchSigintSignal_;
683 useImpliedBounds_ = other.useImpliedBounds_;
684 polishLpSolution_ = other.polishLpSolution_;
685 lpPrimalTolerance_ = other.lpPrimalTolerance_;
686 lpDualTolerance_ = other.lpDualTolerance_;
687 convertIntervals_ = other.convertIntervals_;
688 symmetryLevel_ = other.symmetryLevel_;
689 useSymmetryInLp_ = other.useSymmetryInLp_;
690 keepSymmetryInPresolve_ = other.keepSymmetryInPresolve_;
691 symmetryDetectionDeterministicTimeLimit_ = other.symmetryDetectionDeterministicTimeLimit_;
692 newLinearPropagation_ = other.newLinearPropagation_;
693 linearSplitSize_ = other.linearSplitSize_;
694 linearizationLevel_ = other.linearizationLevel_;
695 booleanEncodingLevel_ = other.booleanEncodingLevel_;
696 maxDomainSizeWhenEncodingEqNeqConstraints_ = other.maxDomainSizeWhenEncodingEqNeqConstraints_;
697 maxNumCuts_ = other.maxNumCuts_;
698 cutLevel_ = other.cutLevel_;
699 onlyAddCutsAtLevelZero_ = other.onlyAddCutsAtLevelZero_;
700 addObjectiveCut_ = other.addObjectiveCut_;
701 addCgCuts_ = other.addCgCuts_;
702 addMirCuts_ = other.addMirCuts_;
703 addZeroHalfCuts_ = other.addZeroHalfCuts_;
704 addCliqueCuts_ = other.addCliqueCuts_;
705 addRltCuts_ = other.addRltCuts_;
706 maxAllDiffCutSize_ = other.maxAllDiffCutSize_;
707 addLinMaxCuts_ = other.addLinMaxCuts_;
708 maxIntegerRoundingScaling_ = other.maxIntegerRoundingScaling_;
709 addLpConstraintsLazily_ = other.addLpConstraintsLazily_;
710 rootLpIterations_ = other.rootLpIterations_;
711 minOrthogonalityForLpConstraints_ = other.minOrthogonalityForLpConstraints_;
712 maxCutRoundsAtLevelZero_ = other.maxCutRoundsAtLevelZero_;
713 maxConsecutiveInactiveCount_ = other.maxConsecutiveInactiveCount_;
714 cutMaxActiveCountValue_ = other.cutMaxActiveCountValue_;
715 cutActiveCountDecay_ = other.cutActiveCountDecay_;
716 cutCleanupTarget_ = other.cutCleanupTarget_;
717 newConstraintsBatchSize_ = other.newConstraintsBatchSize_;
718 exploitIntegerLpSolution_ = other.exploitIntegerLpSolution_;
719 exploitAllLpSolution_ = other.exploitAllLpSolution_;
720 exploitBestSolution_ = other.exploitBestSolution_;
721 exploitRelaxationSolution_ = other.exploitRelaxationSolution_;
722 exploitObjective_ = other.exploitObjective_;
723 detectLinearizedProduct_ = other.detectLinearizedProduct_;
724 useNewIntegerConflictResolution_ = other.useNewIntegerConflictResolution_;
725 create1UipBooleanDuringIcr_ = other.create1UipBooleanDuringIcr_;
726 mipMaxBound_ = other.mipMaxBound_;
727 mipVarScaling_ = other.mipVarScaling_;
728 mipScaleLargeDomain_ = other.mipScaleLargeDomain_;
729 mipAutomaticallyScaleVariables_ = other.mipAutomaticallyScaleVariables_;
730 onlySolveIp_ = other.onlySolveIp_;
731 mipWantedPrecision_ = other.mipWantedPrecision_;
732 mipMaxActivityExponent_ = other.mipMaxActivityExponent_;
733 mipCheckPrecision_ = other.mipCheckPrecision_;
734 mipComputeTrueObjectiveBound_ = other.mipComputeTrueObjectiveBound_;
735 mipMaxValidMagnitude_ = other.mipMaxValidMagnitude_;
736 mipTreatHighMagnitudeBoundsAsInfinity_ = other.mipTreatHighMagnitudeBoundsAsInfinity_;
737 mipDropTolerance_ = other.mipDropTolerance_;
738 mipPresolveLevel_ = other.mipPresolveLevel_;
739 _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
740 }
741
742 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
743 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
744 public SatParameters Clone() {
745 return new SatParameters(this);
746 }
747
748
749 public const int NameFieldNumber = 171;
750 private readonly static string NameDefaultValue = "";
751
752 private string name_;
757 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
758 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
759 public string Name {
760 get { return name_ ?? NameDefaultValue; }
761 set {
762 name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
763 }
764 }
766 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
767 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
768 public bool HasName {
769 get { return name_ != null; }
770 }
772 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
773 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
774 public void ClearName() {
775 name_ = null;
776 }
777
778
779 public const int PreferredVariableOrderFieldNumber = 1;
780 private readonly static global::Google.OrTools.Sat.SatParameters.Types.VariableOrder PreferredVariableOrderDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.VariableOrder.InOrder;
781
782 private global::Google.OrTools.Sat.SatParameters.Types.VariableOrder preferredVariableOrder_;
783 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
784 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
786 get { if ((_hasBits0 & 1) != 0) { return preferredVariableOrder_; } else { return PreferredVariableOrderDefaultValue; } }
787 set {
788 _hasBits0 |= 1;
789 preferredVariableOrder_ = value;
790 }
791 }
793 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
794 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
795 public bool HasPreferredVariableOrder {
796 get { return (_hasBits0 & 1) != 0; }
797 }
799 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
800 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
801 public void ClearPreferredVariableOrder() {
802 _hasBits0 &= ~1;
803 }
804
805
806 public const int InitialPolarityFieldNumber = 2;
807 private readonly static global::Google.OrTools.Sat.SatParameters.Types.Polarity InitialPolarityDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.Polarity.False;
808
809 private global::Google.OrTools.Sat.SatParameters.Types.Polarity initialPolarity_;
810 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
811 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
812 public global::Google.OrTools.Sat.SatParameters.Types.Polarity InitialPolarity {
813 get { if ((_hasBits0 & 2) != 0) { return initialPolarity_; } else { return InitialPolarityDefaultValue; } }
814 set {
815 _hasBits0 |= 2;
816 initialPolarity_ = value;
817 }
818 }
820 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
821 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
822 public bool HasInitialPolarity {
823 get { return (_hasBits0 & 2) != 0; }
824 }
826 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
827 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
828 public void ClearInitialPolarity() {
829 _hasBits0 &= ~2;
830 }
831
832
833 public const int UsePhaseSavingFieldNumber = 44;
834 private readonly static bool UsePhaseSavingDefaultValue = true;
835
836 private bool usePhaseSaving_;
850 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
851 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
852 public bool UsePhaseSaving {
853 get { if ((_hasBits0 & 4194304) != 0) { return usePhaseSaving_; } else { return UsePhaseSavingDefaultValue; } }
854 set {
855 _hasBits0 |= 4194304;
856 usePhaseSaving_ = value;
857 }
858 }
860 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
861 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
862 public bool HasUsePhaseSaving {
863 get { return (_hasBits0 & 4194304) != 0; }
864 }
865 /// <summary>Clears the value of the "use_phase_saving" field</summary>
866 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
867 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
868 public void ClearUsePhaseSaving() {
869 _hasBits0 &= ~4194304;
870 }
873 public const int PolarityRephaseIncrementFieldNumber = 168;
874 private readonly static int PolarityRephaseIncrementDefaultValue = 1000;
875
876 private int polarityRephaseIncrement_;
882 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
883 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
884 public int PolarityRephaseIncrement {
885 get { if ((_hasBits4 & 2) != 0) { return polarityRephaseIncrement_; } else { return PolarityRephaseIncrementDefaultValue; } }
886 set {
887 _hasBits4 |= 2;
888 polarityRephaseIncrement_ = value;
889 }
890 }
892 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
893 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
894 public bool HasPolarityRephaseIncrement {
895 get { return (_hasBits4 & 2) != 0; }
896 }
897 /// <summary>Clears the value of the "polarity_rephase_increment" field</summary>
898 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
899 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
900 public void ClearPolarityRephaseIncrement() {
901 _hasBits4 &= ~2;
902 }
905 public const int PolarityExploitLsHintsFieldNumber = 309;
906 private readonly static bool PolarityExploitLsHintsDefaultValue = false;
907
908 private bool polarityExploitLsHints_;
913 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
914 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
915 public bool PolarityExploitLsHints {
916 get { if ((_hasBits7 & 67108864) != 0) { return polarityExploitLsHints_; } else { return PolarityExploitLsHintsDefaultValue; } }
917 set {
918 _hasBits7 |= 67108864;
919 polarityExploitLsHints_ = value;
920 }
921 }
923 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
924 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
925 public bool HasPolarityExploitLsHints {
926 get { return (_hasBits7 & 67108864) != 0; }
927 }
928 /// <summary>Clears the value of the "polarity_exploit_ls_hints" field</summary>
929 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
930 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
931 public void ClearPolarityExploitLsHints() {
932 _hasBits7 &= ~67108864;
933 }
936 public const int RandomPolarityRatioFieldNumber = 45;
937 private readonly static double RandomPolarityRatioDefaultValue = 0D;
938
939 private double randomPolarityRatio_;
947 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
948 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
949 public double RandomPolarityRatio {
950 get { if ((_hasBits0 & 8388608) != 0) { return randomPolarityRatio_; } else { return RandomPolarityRatioDefaultValue; } }
951 set {
952 _hasBits0 |= 8388608;
953 randomPolarityRatio_ = value;
954 }
955 }
957 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
958 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
959 public bool HasRandomPolarityRatio {
960 get { return (_hasBits0 & 8388608) != 0; }
961 }
962 /// <summary>Clears the value of the "random_polarity_ratio" field</summary>
963 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
964 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
965 public void ClearRandomPolarityRatio() {
966 _hasBits0 &= ~8388608;
967 }
970 public const int RandomBranchesRatioFieldNumber = 32;
971 private readonly static double RandomBranchesRatioDefaultValue = 0D;
972
973 private double randomBranchesRatio_;
979 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
980 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
981 public double RandomBranchesRatio {
982 get { if ((_hasBits0 & 16384) != 0) { return randomBranchesRatio_; } else { return RandomBranchesRatioDefaultValue; } }
983 set {
984 _hasBits0 |= 16384;
985 randomBranchesRatio_ = value;
986 }
987 }
989 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
990 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
991 public bool HasRandomBranchesRatio {
992 get { return (_hasBits0 & 16384) != 0; }
993 }
994 /// <summary>Clears the value of the "random_branches_ratio" field</summary>
995 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
996 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
997 public void ClearRandomBranchesRatio() {
998 _hasBits0 &= ~16384;
999 }
1002 public const int UseErwaHeuristicFieldNumber = 75;
1003 private readonly static bool UseErwaHeuristicDefaultValue = false;
1004
1005 private bool useErwaHeuristic_;
1011 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1012 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1013 public bool UseErwaHeuristic {
1014 get { if ((_hasBits1 & 262144) != 0) { return useErwaHeuristic_; } else { return UseErwaHeuristicDefaultValue; } }
1015 set {
1016 _hasBits1 |= 262144;
1017 useErwaHeuristic_ = value;
1018 }
1019 }
1021 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1022 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1023 public bool HasUseErwaHeuristic {
1024 get { return (_hasBits1 & 262144) != 0; }
1025 }
1026 /// <summary>Clears the value of the "use_erwa_heuristic" field</summary>
1027 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1028 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1029 public void ClearUseErwaHeuristic() {
1030 _hasBits1 &= ~262144;
1031 }
1034 public const int InitialVariablesActivityFieldNumber = 76;
1035 private readonly static double InitialVariablesActivityDefaultValue = 0D;
1036
1037 private double initialVariablesActivity_;
1046 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1047 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1048 public double InitialVariablesActivity {
1049 get { if ((_hasBits1 & 524288) != 0) { return initialVariablesActivity_; } else { return InitialVariablesActivityDefaultValue; } }
1050 set {
1051 _hasBits1 |= 524288;
1052 initialVariablesActivity_ = value;
1053 }
1054 }
1056 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1057 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1058 public bool HasInitialVariablesActivity {
1059 get { return (_hasBits1 & 524288) != 0; }
1060 }
1061 /// <summary>Clears the value of the "initial_variables_activity" field</summary>
1062 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1063 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1064 public void ClearInitialVariablesActivity() {
1065 _hasBits1 &= ~524288;
1066 }
1070 private readonly static bool AlsoBumpVariablesInConflictReasonsDefaultValue = false;
1071
1072 private bool alsoBumpVariablesInConflictReasons_;
1079 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1080 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1082 get { if ((_hasBits1 & 1048576) != 0) { return alsoBumpVariablesInConflictReasons_; } else { return AlsoBumpVariablesInConflictReasonsDefaultValue; } }
1083 set {
1084 _hasBits1 |= 1048576;
1085 alsoBumpVariablesInConflictReasons_ = value;
1086 }
1087 }
1089 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1090 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1091 public bool HasAlsoBumpVariablesInConflictReasons {
1092 get { return (_hasBits1 & 1048576) != 0; }
1093 }
1094 /// <summary>Clears the value of the "also_bump_variables_in_conflict_reasons" field</summary>
1095 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1096 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1098 _hasBits1 &= ~1048576;
1099 }
1102 public const int MinimizationAlgorithmFieldNumber = 4;
1103 private readonly static global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm MinimizationAlgorithmDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm.Recursive;
1104
1105 private global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm minimizationAlgorithm_;
1106 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1107 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1109 get { if ((_hasBits0 & 4) != 0) { return minimizationAlgorithm_; } else { return MinimizationAlgorithmDefaultValue; } }
1110 set {
1111 _hasBits0 |= 4;
1112 minimizationAlgorithm_ = value;
1113 }
1114 }
1116 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1117 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1118 public bool HasMinimizationAlgorithm {
1119 get { return (_hasBits0 & 4) != 0; }
1120 }
1121 /// <summary>Clears the value of the "minimization_algorithm" field</summary>
1122 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1123 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1124 public void ClearMinimizationAlgorithm() {
1125 _hasBits0 &= ~4;
1126 }
1129 public const int BinaryMinimizationAlgorithmFieldNumber = 34;
1130 private readonly static global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm BinaryMinimizationAlgorithmDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm.BinaryMinimizationFromUipAndDecisions;
1131
1132 private global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm binaryMinimizationAlgorithm_;
1133 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1134 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1136 get { if ((_hasBits0 & 32768) != 0) { return binaryMinimizationAlgorithm_; } else { return BinaryMinimizationAlgorithmDefaultValue; } }
1137 set {
1138 _hasBits0 |= 32768;
1139 binaryMinimizationAlgorithm_ = value;
1140 }
1141 }
1143 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1144 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1145 public bool HasBinaryMinimizationAlgorithm {
1146 get { return (_hasBits0 & 32768) != 0; }
1147 }
1148 /// <summary>Clears the value of the "binary_minimization_algorithm" field</summary>
1149 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1150 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1151 public void ClearBinaryMinimizationAlgorithm() {
1152 _hasBits0 &= ~32768;
1153 }
1157 private readonly static bool SubsumptionDuringConflictAnalysisDefaultValue = true;
1158
1159 private bool subsumptionDuringConflictAnalysis_;
1166 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1167 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1169 get { if ((_hasBits1 & 4) != 0) { return subsumptionDuringConflictAnalysis_; } else { return SubsumptionDuringConflictAnalysisDefaultValue; } }
1170 set {
1171 _hasBits1 |= 4;
1172 subsumptionDuringConflictAnalysis_ = value;
1173 }
1174 }
1176 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1177 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1178 public bool HasSubsumptionDuringConflictAnalysis {
1179 get { return (_hasBits1 & 4) != 0; }
1180 }
1181 /// <summary>Clears the value of the "subsumption_during_conflict_analysis" field</summary>
1182 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1183 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1185 _hasBits1 &= ~4;
1186 }
1190 private readonly static bool ExtraSubsumptionDuringConflictAnalysisDefaultValue = true;
1191
1192 private bool extraSubsumptionDuringConflictAnalysis_;
1198 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1199 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1201 get { if ((_hasBits9 & 2) != 0) { return extraSubsumptionDuringConflictAnalysis_; } else { return ExtraSubsumptionDuringConflictAnalysisDefaultValue; } }
1202 set {
1203 _hasBits9 |= 2;
1204 extraSubsumptionDuringConflictAnalysis_ = value;
1205 }
1206 }
1208 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1209 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1210 public bool HasExtraSubsumptionDuringConflictAnalysis {
1211 get { return (_hasBits9 & 2) != 0; }
1212 }
1213 /// <summary>Clears the value of the "extra_subsumption_during_conflict_analysis" field</summary>
1214 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1215 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1217 _hasBits9 &= ~2;
1218 }
1222 private readonly static bool DecisionSubsumptionDuringConflictAnalysisDefaultValue = true;
1223
1224 private bool decisionSubsumptionDuringConflictAnalysis_;
1228 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1229 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1231 get { if ((_hasBits9 & 8) != 0) { return decisionSubsumptionDuringConflictAnalysis_; } else { return DecisionSubsumptionDuringConflictAnalysisDefaultValue; } }
1232 set {
1233 _hasBits9 |= 8;
1234 decisionSubsumptionDuringConflictAnalysis_ = value;
1235 }
1236 }
1238 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1239 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1240 public bool HasDecisionSubsumptionDuringConflictAnalysis {
1241 get { return (_hasBits9 & 8) != 0; }
1242 }
1243 /// <summary>Clears the value of the "decision_subsumption_during_conflict_analysis" field</summary>
1244 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1245 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1247 _hasBits9 &= ~8;
1248 }
1251 public const int EagerlySubsumeLastNConflictsFieldNumber = 343;
1252 private readonly static int EagerlySubsumeLastNConflictsDefaultValue = 4;
1253
1254 private int eagerlySubsumeLastNConflicts_;
1259 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1260 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1261 public int EagerlySubsumeLastNConflicts {
1262 get { if ((_hasBits8 & 33554432) != 0) { return eagerlySubsumeLastNConflicts_; } else { return EagerlySubsumeLastNConflictsDefaultValue; } }
1263 set {
1264 _hasBits8 |= 33554432;
1265 eagerlySubsumeLastNConflicts_ = value;
1266 }
1267 }
1269 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1270 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1271 public bool HasEagerlySubsumeLastNConflicts {
1272 get { return (_hasBits8 & 33554432) != 0; }
1273 }
1274 /// <summary>Clears the value of the "eagerly_subsume_last_n_conflicts" field</summary>
1275 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1276 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1277 public void ClearEagerlySubsumeLastNConflicts() {
1278 _hasBits8 &= ~33554432;
1279 }
1282 public const int SubsumeDuringVivificationFieldNumber = 355;
1283 private readonly static bool SubsumeDuringVivificationDefaultValue = true;
1284
1285 private bool subsumeDuringVivification_;
1290 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1291 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1292 public bool SubsumeDuringVivification {
1293 get { if ((_hasBits9 & 32) != 0) { return subsumeDuringVivification_; } else { return SubsumeDuringVivificationDefaultValue; } }
1294 set {
1295 _hasBits9 |= 32;
1296 subsumeDuringVivification_ = value;
1297 }
1298 }
1300 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1301 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1302 public bool HasSubsumeDuringVivification {
1303 get { return (_hasBits9 & 32) != 0; }
1304 }
1305 /// <summary>Clears the value of the "subsume_during_vivification" field</summary>
1306 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1307 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1308 public void ClearSubsumeDuringVivification() {
1309 _hasBits9 &= ~32;
1310 }
1313 public const int UseChronologicalBacktrackingFieldNumber = 330;
1314 private readonly static bool UseChronologicalBacktrackingDefaultValue = false;
1315
1316 private bool useChronologicalBacktracking_;
1324 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1325 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1326 public bool UseChronologicalBacktracking {
1327 get { if ((_hasBits8 & 16384) != 0) { return useChronologicalBacktracking_; } else { return UseChronologicalBacktrackingDefaultValue; } }
1328 set {
1329 _hasBits8 |= 16384;
1330 useChronologicalBacktracking_ = value;
1331 }
1332 }
1334 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1335 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1336 public bool HasUseChronologicalBacktracking {
1337 get { return (_hasBits8 & 16384) != 0; }
1338 }
1339 /// <summary>Clears the value of the "use_chronological_backtracking" field</summary>
1340 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1341 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1342 public void ClearUseChronologicalBacktracking() {
1343 _hasBits8 &= ~16384;
1344 }
1347 public const int MaxBackjumpLevelsFieldNumber = 331;
1348 private readonly static int MaxBackjumpLevelsDefaultValue = 50;
1349
1350 private int maxBackjumpLevels_;
1355 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1356 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1357 public int MaxBackjumpLevels {
1358 get { if ((_hasBits8 & 32768) != 0) { return maxBackjumpLevels_; } else { return MaxBackjumpLevelsDefaultValue; } }
1359 set {
1360 _hasBits8 |= 32768;
1361 maxBackjumpLevels_ = value;
1362 }
1363 }
1365 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1366 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1367 public bool HasMaxBackjumpLevels {
1368 get { return (_hasBits8 & 32768) != 0; }
1369 }
1370 /// <summary>Clears the value of the "max_backjump_levels" field</summary>
1371 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1372 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1373 public void ClearMaxBackjumpLevels() {
1374 _hasBits8 &= ~32768;
1375 }
1379 private readonly static int ChronologicalBacktrackMinConflictsDefaultValue = 1000;
1380
1381 private int chronologicalBacktrackMinConflicts_;
1386 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1387 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1389 get { if ((_hasBits8 & 65536) != 0) { return chronologicalBacktrackMinConflicts_; } else { return ChronologicalBacktrackMinConflictsDefaultValue; } }
1390 set {
1391 _hasBits8 |= 65536;
1392 chronologicalBacktrackMinConflicts_ = value;
1393 }
1394 }
1396 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1397 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1398 public bool HasChronologicalBacktrackMinConflicts {
1399 get { return (_hasBits8 & 65536) != 0; }
1400 }
1401 /// <summary>Clears the value of the "chronological_backtrack_min_conflicts" field</summary>
1402 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1403 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1405 _hasBits8 &= ~65536;
1406 }
1409 public const int ClauseCleanupPeriodFieldNumber = 11;
1410 private readonly static int ClauseCleanupPeriodDefaultValue = 10000;
1411
1412 private int clauseCleanupPeriod_;
1416 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1417 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1418 public int ClauseCleanupPeriod {
1419 get { if ((_hasBits0 & 8) != 0) { return clauseCleanupPeriod_; } else { return ClauseCleanupPeriodDefaultValue; } }
1420 set {
1421 _hasBits0 |= 8;
1422 clauseCleanupPeriod_ = value;
1423 }
1424 }
1426 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1427 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1428 public bool HasClauseCleanupPeriod {
1429 get { return (_hasBits0 & 8) != 0; }
1430 }
1431 /// <summary>Clears the value of the "clause_cleanup_period" field</summary>
1432 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1433 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1434 public void ClearClauseCleanupPeriod() {
1435 _hasBits0 &= ~8;
1436 }
1439 public const int ClauseCleanupPeriodIncrementFieldNumber = 337;
1440 private readonly static int ClauseCleanupPeriodIncrementDefaultValue = 0;
1441
1442 private int clauseCleanupPeriodIncrement_;
1446 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1447 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1448 public int ClauseCleanupPeriodIncrement {
1449 get { if ((_hasBits8 & 1048576) != 0) { return clauseCleanupPeriodIncrement_; } else { return ClauseCleanupPeriodIncrementDefaultValue; } }
1450 set {
1451 _hasBits8 |= 1048576;
1452 clauseCleanupPeriodIncrement_ = value;
1453 }
1454 }
1456 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1457 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1458 public bool HasClauseCleanupPeriodIncrement {
1459 get { return (_hasBits8 & 1048576) != 0; }
1460 }
1461 /// <summary>Clears the value of the "clause_cleanup_period_increment" field</summary>
1462 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1463 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1464 public void ClearClauseCleanupPeriodIncrement() {
1465 _hasBits8 &= ~1048576;
1466 }
1469 public const int ClauseCleanupTargetFieldNumber = 13;
1470 private readonly static int ClauseCleanupTargetDefaultValue = 0;
1471
1472 private int clauseCleanupTarget_;
1477 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1478 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1479 public int ClauseCleanupTarget {
1480 get { if ((_hasBits0 & 16) != 0) { return clauseCleanupTarget_; } else { return ClauseCleanupTargetDefaultValue; } }
1481 set {
1482 _hasBits0 |= 16;
1483 clauseCleanupTarget_ = value;
1484 }
1485 }
1487 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1488 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1489 public bool HasClauseCleanupTarget {
1490 get { return (_hasBits0 & 16) != 0; }
1491 }
1492 /// <summary>Clears the value of the "clause_cleanup_target" field</summary>
1493 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1494 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1495 public void ClearClauseCleanupTarget() {
1496 _hasBits0 &= ~16;
1497 }
1500 public const int ClauseCleanupRatioFieldNumber = 190;
1501 private readonly static double ClauseCleanupRatioDefaultValue = 0.5D;
1502
1503 private double clauseCleanupRatio_;
1509 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1510 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1511 public double ClauseCleanupRatio {
1512 get { if ((_hasBits4 & 1048576) != 0) { return clauseCleanupRatio_; } else { return ClauseCleanupRatioDefaultValue; } }
1513 set {
1514 _hasBits4 |= 1048576;
1515 clauseCleanupRatio_ = value;
1516 }
1517 }
1519 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1520 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1521 public bool HasClauseCleanupRatio {
1522 get { return (_hasBits4 & 1048576) != 0; }
1523 }
1524 /// <summary>Clears the value of the "clause_cleanup_ratio" field</summary>
1525 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1526 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1527 public void ClearClauseCleanupRatio() {
1528 _hasBits4 &= ~1048576;
1529 }
1532 public const int ClauseCleanupLbdBoundFieldNumber = 59;
1533 private readonly static int ClauseCleanupLbdBoundDefaultValue = 5;
1534
1535 private int clauseCleanupLbdBound_;
1545 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1546 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1547 public int ClauseCleanupLbdBound {
1548 get { if ((_hasBits1 & 16) != 0) { return clauseCleanupLbdBound_; } else { return ClauseCleanupLbdBoundDefaultValue; } }
1549 set {
1550 _hasBits1 |= 16;
1551 clauseCleanupLbdBound_ = value;
1552 }
1553 }
1555 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1556 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1557 public bool HasClauseCleanupLbdBound {
1558 get { return (_hasBits1 & 16) != 0; }
1559 }
1561 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1562 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1563 public void ClearClauseCleanupLbdBound() {
1564 _hasBits1 &= ~16;
1565 }
1566
1567 /// <summary>Field number for the "clause_cleanup_lbd_tier1" field.</summary>
1568 public const int ClauseCleanupLbdTier1FieldNumber = 349;
1569 private readonly static int ClauseCleanupLbdTier1DefaultValue = 0;
1570
1571 private int clauseCleanupLbdTier1_;
1577 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1578 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1579 public int ClauseCleanupLbdTier1 {
1580 get { if ((_hasBits8 & -2147483648) != 0) { return clauseCleanupLbdTier1_; } else { return ClauseCleanupLbdTier1DefaultValue; } }
1581 set {
1582 _hasBits8 |= -2147483648;
1583 clauseCleanupLbdTier1_ = value;
1584 }
1585 }
1587 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1588 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1589 public bool HasClauseCleanupLbdTier1 {
1590 get { return (_hasBits8 & -2147483648) != 0; }
1591 }
1593 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1594 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1595 public void ClearClauseCleanupLbdTier1() {
1596 _hasBits8 &= ~-2147483648;
1597 }
1598
1599 /// <summary>Field number for the "clause_cleanup_lbd_tier2" field.</summary>
1600 public const int ClauseCleanupLbdTier2FieldNumber = 350;
1601 private readonly static int ClauseCleanupLbdTier2DefaultValue = 0;
1602
1603 private int clauseCleanupLbdTier2_;
1610 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1611 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1612 public int ClauseCleanupLbdTier2 {
1613 get { if ((_hasBits9 & 1) != 0) { return clauseCleanupLbdTier2_; } else { return ClauseCleanupLbdTier2DefaultValue; } }
1614 set {
1615 _hasBits9 |= 1;
1616 clauseCleanupLbdTier2_ = value;
1617 }
1618 }
1620 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1621 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1622 public bool HasClauseCleanupLbdTier2 {
1623 get { return (_hasBits9 & 1) != 0; }
1624 }
1626 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1627 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1628 public void ClearClauseCleanupLbdTier2() {
1629 _hasBits9 &= ~1;
1630 }
1631
1632 /// <summary>Field number for the "clause_cleanup_ordering" field.</summary>
1633 public const int ClauseCleanupOrderingFieldNumber = 60;
1634 private readonly static global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering ClauseCleanupOrderingDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering.ClauseActivity;
1635
1636 private global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering clauseCleanupOrdering_;
1637 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1638 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1640 get { if ((_hasBits1 & 32) != 0) { return clauseCleanupOrdering_; } else { return ClauseCleanupOrderingDefaultValue; } }
1641 set {
1642 _hasBits1 |= 32;
1643 clauseCleanupOrdering_ = value;
1644 }
1645 }
1647 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1648 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1649 public bool HasClauseCleanupOrdering {
1650 get { return (_hasBits1 & 32) != 0; }
1651 }
1653 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1654 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1655 public void ClearClauseCleanupOrdering() {
1656 _hasBits1 &= ~32;
1657 }
1658
1659 /// <summary>Field number for the "pb_cleanup_increment" field.</summary>
1660 public const int PbCleanupIncrementFieldNumber = 46;
1661 private readonly static int PbCleanupIncrementDefaultValue = 200;
1662
1663 private int pbCleanupIncrement_;
1667 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1668 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1669 public int PbCleanupIncrement {
1670 get { if ((_hasBits0 & 16777216) != 0) { return pbCleanupIncrement_; } else { return PbCleanupIncrementDefaultValue; } }
1671 set {
1672 _hasBits0 |= 16777216;
1673 pbCleanupIncrement_ = value;
1674 }
1675 }
1677 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1678 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1679 public bool HasPbCleanupIncrement {
1680 get { return (_hasBits0 & 16777216) != 0; }
1681 }
1683 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1684 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1685 public void ClearPbCleanupIncrement() {
1686 _hasBits0 &= ~16777216;
1687 }
1688
1689 /// <summary>Field number for the "pb_cleanup_ratio" field.</summary>
1690 public const int PbCleanupRatioFieldNumber = 47;
1691 private readonly static double PbCleanupRatioDefaultValue = 0.5D;
1692
1693 private double pbCleanupRatio_;
1694 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1695 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1696 public double PbCleanupRatio {
1697 get { if ((_hasBits0 & 33554432) != 0) { return pbCleanupRatio_; } else { return PbCleanupRatioDefaultValue; } }
1698 set {
1699 _hasBits0 |= 33554432;
1700 pbCleanupRatio_ = value;
1701 }
1702 }
1704 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1705 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1706 public bool HasPbCleanupRatio {
1707 get { return (_hasBits0 & 33554432) != 0; }
1708 }
1710 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1711 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1712 public void ClearPbCleanupRatio() {
1713 _hasBits0 &= ~33554432;
1714 }
1715
1716 /// <summary>Field number for the "variable_activity_decay" field.</summary>
1717 public const int VariableActivityDecayFieldNumber = 15;
1718 private readonly static double VariableActivityDecayDefaultValue = 0.8D;
1719
1720 private double variableActivityDecay_;
1731 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1732 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1733 public double VariableActivityDecay {
1734 get { if ((_hasBits0 & 32) != 0) { return variableActivityDecay_; } else { return VariableActivityDecayDefaultValue; } }
1735 set {
1736 _hasBits0 |= 32;
1737 variableActivityDecay_ = value;
1739 }
1741 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1742 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1743 public bool HasVariableActivityDecay {
1744 get { return (_hasBits0 & 32) != 0; }
1745 }
1747 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1748 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1749 public void ClearVariableActivityDecay() {
1750 _hasBits0 &= ~32;
1751 }
1752
1755 private readonly static double MaxVariableActivityValueDefaultValue = 1e+100D;
1756
1757 private double maxVariableActivityValue_;
1758 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1759 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1760 public double MaxVariableActivityValue {
1761 get { if ((_hasBits0 & 64) != 0) { return maxVariableActivityValue_; } else { return MaxVariableActivityValueDefaultValue; } }
1762 set {
1763 _hasBits0 |= 64;
1764 maxVariableActivityValue_ = value;
1766 }
1768 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1769 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1770 public bool HasMaxVariableActivityValue {
1771 get { return (_hasBits0 & 64) != 0; }
1772 }
1774 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1775 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1776 public void ClearMaxVariableActivityValue() {
1777 _hasBits0 &= ~64;
1778 }
1779
1781 public const int GlucoseMaxDecayFieldNumber = 22;
1782 private readonly static double GlucoseMaxDecayDefaultValue = 0.95D;
1783
1784 private double glucoseMaxDecay_;
1792 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1793 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1794 public double GlucoseMaxDecay {
1795 get { if ((_hasBits0 & 512) != 0) { return glucoseMaxDecay_; } else { return GlucoseMaxDecayDefaultValue; } }
1796 set {
1797 _hasBits0 |= 512;
1798 glucoseMaxDecay_ = value;
1799 }
1802 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1803 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1804 public bool HasGlucoseMaxDecay {
1805 get { return (_hasBits0 & 512) != 0; }
1806 }
1807
1808 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1809 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1810 public void ClearGlucoseMaxDecay() {
1811 _hasBits0 &= ~512;
1812 }
1813
1815 public const int GlucoseDecayIncrementFieldNumber = 23;
1816 private readonly static double GlucoseDecayIncrementDefaultValue = 0.01D;
1817
1818 private double glucoseDecayIncrement_;
1819 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1820 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1822 get { if ((_hasBits0 & 1024) != 0) { return glucoseDecayIncrement_; } else { return GlucoseDecayIncrementDefaultValue; } }
1823 set {
1824 _hasBits0 |= 1024;
1825 glucoseDecayIncrement_ = value;
1826 }
1829 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1830 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1831 public bool HasGlucoseDecayIncrement {
1832 get { return (_hasBits0 & 1024) != 0; }
1833 }
1834
1835 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1836 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1838 _hasBits0 &= ~1024;
1839 }
1840
1842 public const int GlucoseDecayIncrementPeriodFieldNumber = 24;
1843 private readonly static int GlucoseDecayIncrementPeriodDefaultValue = 5000;
1844
1845 private int glucoseDecayIncrementPeriod_;
1846 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1847 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1849 get { if ((_hasBits0 & 2048) != 0) { return glucoseDecayIncrementPeriod_; } else { return GlucoseDecayIncrementPeriodDefaultValue; } }
1850 set {
1851 _hasBits0 |= 2048;
1852 glucoseDecayIncrementPeriod_ = value;
1853 }
1856 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1857 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1858 public bool HasGlucoseDecayIncrementPeriod {
1859 get { return (_hasBits0 & 2048) != 0; }
1860 }
1861
1862 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1863 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1865 _hasBits0 &= ~2048;
1866 }
1867
1869 public const int ClauseActivityDecayFieldNumber = 17;
1870 private readonly static double ClauseActivityDecayDefaultValue = 0.999D;
1871
1872 private double clauseActivityDecay_;
1873
1876 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1877 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1878 public double ClauseActivityDecay {
1879 get { if ((_hasBits0 & 128) != 0) { return clauseActivityDecay_; } else { return ClauseActivityDecayDefaultValue; } }
1880 set {
1881 _hasBits0 |= 128;
1882 clauseActivityDecay_ = value;
1883 }
1886 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1887 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1888 public bool HasClauseActivityDecay {
1889 get { return (_hasBits0 & 128) != 0; }
1890 }
1891
1892 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1893 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1895 _hasBits0 &= ~128;
1896 }
1897
1899 public const int MaxClauseActivityValueFieldNumber = 18;
1900 private readonly static double MaxClauseActivityValueDefaultValue = 1e+20D;
1901
1902 private double maxClauseActivityValue_;
1903 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1904 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1906 get { if ((_hasBits0 & 256) != 0) { return maxClauseActivityValue_; } else { return MaxClauseActivityValueDefaultValue; } }
1907 set {
1908 _hasBits0 |= 256;
1909 maxClauseActivityValue_ = value;
1910 }
1913 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1914 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1915 public bool HasMaxClauseActivityValue {
1916 get { return (_hasBits0 & 256) != 0; }
1917 }
1918
1919 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1920 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1922 _hasBits0 &= ~256;
1923 }
1924
1926 public const int RestartAlgorithmsFieldNumber = 61;
1927 private static readonly pb::FieldCodec<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm> _repeated_restartAlgorithms_codec
1928 = pb::FieldCodec.ForEnum(488, x => (int) x, x => (global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm) x);
1929 private readonly pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm> restartAlgorithms_ = new pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm>();
1930
1941 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1942 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1943 public pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm> RestartAlgorithms {
1944 get { return restartAlgorithms_; }
1945 }
1946
1948 public const int DefaultRestartAlgorithmsFieldNumber = 70;
1949 private readonly static string DefaultRestartAlgorithmsDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("TFVCWV9SRVNUQVJULExCRF9NT1ZJTkdfQVZFUkFHRV9SRVNUQVJULERMX01PVklOR19BVkVSQUdFX1JFU1RBUlQ="), 0, 65);
1951 private string defaultRestartAlgorithms_;
1952 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1953 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1954 public string DefaultRestartAlgorithms {
1955 get { return defaultRestartAlgorithms_ ?? DefaultRestartAlgorithmsDefaultValue; }
1956 set {
1957 defaultRestartAlgorithms_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1958 }
1959 }
1961 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1962 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1963 public bool HasDefaultRestartAlgorithms {
1964 get { return defaultRestartAlgorithms_ != null; }
1965 }
1967 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1968 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1969 public void ClearDefaultRestartAlgorithms() {
1970 defaultRestartAlgorithms_ = null;
1971 }
1972
1973
1974 public const int RestartPeriodFieldNumber = 30;
1975 private readonly static int RestartPeriodDefaultValue = 50;
1977 private int restartPeriod_;
1979
1982 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1983 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1984 public int RestartPeriod {
1985 get { if ((_hasBits0 & 4096) != 0) { return restartPeriod_; } else { return RestartPeriodDefaultValue; } }
1986 set {
1987 _hasBits0 |= 4096;
1988 restartPeriod_ = value;
1989 }
1990 }
1991 /// <summary>Gets whether the "restart_period" field is set</summary>
1992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
1994 public bool HasRestartPeriod {
1995 get { return (_hasBits0 & 4096) != 0; }
1996 }
1998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2000 public void ClearRestartPeriod() {
2001 _hasBits0 &= ~4096;
2002 }
2003
2004
2005 public const int RestartRunningWindowSizeFieldNumber = 62;
2006 private readonly static int RestartRunningWindowSizeDefaultValue = 50;
2008 private int restartRunningWindowSize_;
2010
2012 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2013 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2014 public int RestartRunningWindowSize {
2015 get { if ((_hasBits1 & 64) != 0) { return restartRunningWindowSize_; } else { return RestartRunningWindowSizeDefaultValue; } }
2016 set {
2017 _hasBits1 |= 64;
2018 restartRunningWindowSize_ = value;
2019 }
2020 }
2021 /// <summary>Gets whether the "restart_running_window_size" field is set</summary>
2022 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2023 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2024 public bool HasRestartRunningWindowSize {
2025 get { return (_hasBits1 & 64) != 0; }
2026 }
2028 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2029 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2030 public void ClearRestartRunningWindowSize() {
2031 _hasBits1 &= ~64;
2032 }
2033
2034
2035 public const int RestartDlAverageRatioFieldNumber = 63;
2036 private readonly static double RestartDlAverageRatioDefaultValue = 1D;
2038 private double restartDlAverageRatio_;
2040
2043 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2044 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2045 public double RestartDlAverageRatio {
2046 get { if ((_hasBits1 & 128) != 0) { return restartDlAverageRatio_; } else { return RestartDlAverageRatioDefaultValue; } }
2047 set {
2048 _hasBits1 |= 128;
2049 restartDlAverageRatio_ = value;
2050 }
2051 }
2052 /// <summary>Gets whether the "restart_dl_average_ratio" field is set</summary>
2053 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2054 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2055 public bool HasRestartDlAverageRatio {
2056 get { return (_hasBits1 & 128) != 0; }
2057 }
2059 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2060 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2061 public void ClearRestartDlAverageRatio() {
2062 _hasBits1 &= ~128;
2063 }
2064
2065
2066 public const int RestartLbdAverageRatioFieldNumber = 71;
2067 private readonly static double RestartLbdAverageRatioDefaultValue = 1D;
2069 private double restartLbdAverageRatio_;
2070 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2071 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2072 public double RestartLbdAverageRatio {
2073 get { if ((_hasBits1 & 16384) != 0) { return restartLbdAverageRatio_; } else { return RestartLbdAverageRatioDefaultValue; } }
2074 set {
2075 _hasBits1 |= 16384;
2076 restartLbdAverageRatio_ = value;
2077 }
2078 }
2079 /// <summary>Gets whether the "restart_lbd_average_ratio" field is set</summary>
2080 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2081 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2082 public bool HasRestartLbdAverageRatio {
2083 get { return (_hasBits1 & 16384) != 0; }
2084 }
2086 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2087 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2088 public void ClearRestartLbdAverageRatio() {
2089 _hasBits1 &= ~16384;
2090 }
2091
2092
2093 public const int UseBlockingRestartFieldNumber = 64;
2094 private readonly static bool UseBlockingRestartDefaultValue = false;
2096 private bool useBlockingRestart_;
2098
2102 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2103 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2104 public bool UseBlockingRestart {
2105 get { if ((_hasBits1 & 256) != 0) { return useBlockingRestart_; } else { return UseBlockingRestartDefaultValue; } }
2106 set {
2107 _hasBits1 |= 256;
2108 useBlockingRestart_ = value;
2109 }
2110 }
2111 /// <summary>Gets whether the "use_blocking_restart" field is set</summary>
2112 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2113 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2114 public bool HasUseBlockingRestart {
2115 get { return (_hasBits1 & 256) != 0; }
2116 }
2118 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2119 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2120 public void ClearUseBlockingRestart() {
2121 _hasBits1 &= ~256;
2122 }
2123
2124
2125 public const int BlockingRestartWindowSizeFieldNumber = 65;
2126 private readonly static int BlockingRestartWindowSizeDefaultValue = 5000;
2128 private int blockingRestartWindowSize_;
2129 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2130 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2131 public int BlockingRestartWindowSize {
2132 get { if ((_hasBits1 & 512) != 0) { return blockingRestartWindowSize_; } else { return BlockingRestartWindowSizeDefaultValue; } }
2133 set {
2134 _hasBits1 |= 512;
2135 blockingRestartWindowSize_ = value;
2136 }
2137 }
2138 /// <summary>Gets whether the "blocking_restart_window_size" field is set</summary>
2139 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2140 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2141 public bool HasBlockingRestartWindowSize {
2142 get { return (_hasBits1 & 512) != 0; }
2143 }
2145 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2146 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2147 public void ClearBlockingRestartWindowSize() {
2148 _hasBits1 &= ~512;
2149 }
2150
2151
2152 public const int BlockingRestartMultiplierFieldNumber = 66;
2153 private readonly static double BlockingRestartMultiplierDefaultValue = 1.4D;
2155 private double blockingRestartMultiplier_;
2156 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2157 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2158 public double BlockingRestartMultiplier {
2159 get { if ((_hasBits1 & 1024) != 0) { return blockingRestartMultiplier_; } else { return BlockingRestartMultiplierDefaultValue; } }
2160 set {
2161 _hasBits1 |= 1024;
2162 blockingRestartMultiplier_ = value;
2163 }
2164 }
2165 /// <summary>Gets whether the "blocking_restart_multiplier" field is set</summary>
2166 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2167 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2168 public bool HasBlockingRestartMultiplier {
2169 get { return (_hasBits1 & 1024) != 0; }
2170 }
2172 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2173 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2174 public void ClearBlockingRestartMultiplier() {
2175 _hasBits1 &= ~1024;
2176 }
2177
2178
2179 public const int NumConflictsBeforeStrategyChangesFieldNumber = 68;
2180 private readonly static int NumConflictsBeforeStrategyChangesDefaultValue = 0;
2182 private int numConflictsBeforeStrategyChanges_;
2184
2188 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2189 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2191 get { if ((_hasBits1 & 4096) != 0) { return numConflictsBeforeStrategyChanges_; } else { return NumConflictsBeforeStrategyChangesDefaultValue; } }
2192 set {
2193 _hasBits1 |= 4096;
2194 numConflictsBeforeStrategyChanges_ = value;
2195 }
2196 }
2197 /// <summary>Gets whether the "num_conflicts_before_strategy_changes" field is set</summary>
2198 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2199 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2201 get { return (_hasBits1 & 4096) != 0; }
2202 }
2204 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2205 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2206 public void ClearNumConflictsBeforeStrategyChanges() {
2207 _hasBits1 &= ~4096;
2208 }
2209
2210
2211 public const int StrategyChangeIncreaseRatioFieldNumber = 69;
2212 private readonly static double StrategyChangeIncreaseRatioDefaultValue = 0D;
2214 private double strategyChangeIncreaseRatio_;
2216
2219 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2220 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2221 public double StrategyChangeIncreaseRatio {
2222 get { if ((_hasBits1 & 8192) != 0) { return strategyChangeIncreaseRatio_; } else { return StrategyChangeIncreaseRatioDefaultValue; } }
2223 set {
2224 _hasBits1 |= 8192;
2225 strategyChangeIncreaseRatio_ = value;
2226 }
2227 }
2228 /// <summary>Gets whether the "strategy_change_increase_ratio" field is set</summary>
2229 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2230 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2231 public bool HasStrategyChangeIncreaseRatio {
2232 get { return (_hasBits1 & 8192) != 0; }
2233 }
2235 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2236 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2237 public void ClearStrategyChangeIncreaseRatio() {
2238 _hasBits1 &= ~8192;
2239 }
2240
2241
2242 public const int MaxTimeInSecondsFieldNumber = 36;
2243 private readonly static double MaxTimeInSecondsDefaultValue = double.PositiveInfinity;
2245 private double maxTimeInSeconds_;
2247
2250 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2251 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2252 public double MaxTimeInSeconds {
2253 get { if ((_hasBits0 & 131072) != 0) { return maxTimeInSeconds_; } else { return MaxTimeInSecondsDefaultValue; } }
2254 set {
2255 _hasBits0 |= 131072;
2256 maxTimeInSeconds_ = value;
2257 }
2258 }
2259 /// <summary>Gets whether the "max_time_in_seconds" field is set</summary>
2260 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2261 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2262 public bool HasMaxTimeInSeconds {
2263 get { return (_hasBits0 & 131072) != 0; }
2264 }
2266 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2267 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2268 public void ClearMaxTimeInSeconds() {
2269 _hasBits0 &= ~131072;
2270 }
2271
2272
2273 public const int MaxDeterministicTimeFieldNumber = 67;
2274 private readonly static double MaxDeterministicTimeDefaultValue = double.PositiveInfinity;
2276 private double maxDeterministicTime_;
2278
2282 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2283 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2284 public double MaxDeterministicTime {
2285 get { if ((_hasBits1 & 2048) != 0) { return maxDeterministicTime_; } else { return MaxDeterministicTimeDefaultValue; } }
2286 set {
2287 _hasBits1 |= 2048;
2288 maxDeterministicTime_ = value;
2289 }
2290 }
2291 /// <summary>Gets whether the "max_deterministic_time" field is set</summary>
2292 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2293 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2294 public bool HasMaxDeterministicTime {
2295 get { return (_hasBits1 & 2048) != 0; }
2296 }
2298 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2299 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2300 public void ClearMaxDeterministicTime() {
2301 _hasBits1 &= ~2048;
2302 }
2303
2304
2305 public const int MaxNumDeterministicBatchesFieldNumber = 291;
2306 private readonly static int MaxNumDeterministicBatchesDefaultValue = 0;
2308 private int maxNumDeterministicBatches_;
2310
2313 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2314 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2315 public int MaxNumDeterministicBatches {
2316 get { if ((_hasBits7 & 512) != 0) { return maxNumDeterministicBatches_; } else { return MaxNumDeterministicBatchesDefaultValue; } }
2317 set {
2318 _hasBits7 |= 512;
2319 maxNumDeterministicBatches_ = value;
2320 }
2321 }
2322 /// <summary>Gets whether the "max_num_deterministic_batches" field is set</summary>
2323 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2324 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2325 public bool HasMaxNumDeterministicBatches {
2326 get { return (_hasBits7 & 512) != 0; }
2327 }
2329 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2330 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2331 public void ClearMaxNumDeterministicBatches() {
2332 _hasBits7 &= ~512;
2333 }
2334
2335
2336 public const int MaxNumberOfConflictsFieldNumber = 37;
2337 private readonly static long MaxNumberOfConflictsDefaultValue = 9223372036854775807L;
2339 private long maxNumberOfConflicts_;
2341
2349 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2350 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2351 public long MaxNumberOfConflicts {
2352 get { if ((_hasBits0 & 262144) != 0) { return maxNumberOfConflicts_; } else { return MaxNumberOfConflictsDefaultValue; } }
2353 set {
2354 _hasBits0 |= 262144;
2355 maxNumberOfConflicts_ = value;
2356 }
2357 }
2359 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2360 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2361 public bool HasMaxNumberOfConflicts {
2362 get { return (_hasBits0 & 262144) != 0; }
2363 }
2365 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2366 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2367 public void ClearMaxNumberOfConflicts() {
2368 _hasBits0 &= ~262144;
2370
2372 public const int MaxMemoryInMbFieldNumber = 40;
2373 private readonly static long MaxMemoryInMbDefaultValue = 10000L;
2374
2375 private long maxMemoryInMb_;
2378
2384 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2385 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2386 public long MaxMemoryInMb {
2387 get { if ((_hasBits0 & 524288) != 0) { return maxMemoryInMb_; } else { return MaxMemoryInMbDefaultValue; } }
2388 set {
2389 _hasBits0 |= 524288;
2390 maxMemoryInMb_ = value;
2391 }
2392 }
2394 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2395 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2396 public bool HasMaxMemoryInMb {
2397 get { return (_hasBits0 & 524288) != 0; }
2398 }
2400 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2401 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2402 public void ClearMaxMemoryInMb() {
2403 _hasBits0 &= ~524288;
2404 }
2407 public const int AbsoluteGapLimitFieldNumber = 159;
2408 private readonly static double AbsoluteGapLimitDefaultValue = 0.0001D;
2409
2410 private double absoluteGapLimit_;
2411 /// <summary>
2412 /// Stop the search when the gap between the best feasible objective (O) and
2413 /// our best objective bound (B) is smaller than a limit.
2414 /// The exact definition is:
2415 /// - Absolute: abs(O - B)
2416 /// - Relative: abs(O - B) / max(1, abs(O)).
2417 ///
2418 /// Important: The relative gap depends on the objective offset! If you
2419 /// artificially shift the objective, you will get widely different value of
2420 /// the relative gap.
2421 ///
2422 /// Note that if the gap is reached, the search status will be OPTIMAL. But
2423 /// one can check the best objective bound to see the actual gap.
2424 ///
2425 /// If the objective is integer, then any absolute gap &lt; 1 will lead to a true
2426 /// optimal. If the objective is floating point, a gap of zero make little
2427 /// sense so is is why we use a non-zero default value. At the end of the
2428 /// search, we will display a warning if OPTIMAL is reported yet the gap is
2429 /// greater than this absolute gap.
2430 /// </summary>
2431 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2432 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2433 public double AbsoluteGapLimit {
2434 get { if ((_hasBits3 & 16777216) != 0) { return absoluteGapLimit_; } else { return AbsoluteGapLimitDefaultValue; } }
2435 set {
2436 _hasBits3 |= 16777216;
2437 absoluteGapLimit_ = value;
2438 }
2439 }
2441 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2442 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2443 public bool HasAbsoluteGapLimit {
2444 get { return (_hasBits3 & 16777216) != 0; }
2447 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2448 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2449 public void ClearAbsoluteGapLimit() {
2450 _hasBits3 &= ~16777216;
2451 }
2452
2454 public const int RelativeGapLimitFieldNumber = 160;
2455 private readonly static double RelativeGapLimitDefaultValue = 0D;
2456
2457 private double relativeGapLimit_;
2458 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2459 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2460 public double RelativeGapLimit {
2461 get { if ((_hasBits3 & 33554432) != 0) { return relativeGapLimit_; } else { return RelativeGapLimitDefaultValue; } }
2462 set {
2463 _hasBits3 |= 33554432;
2464 relativeGapLimit_ = value;
2465 }
2468 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2469 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2470 public bool HasRelativeGapLimit {
2471 get { return (_hasBits3 & 33554432) != 0; }
2474 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2475 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2476 public void ClearRelativeGapLimit() {
2477 _hasBits3 &= ~33554432;
2478 }
2479
2481 public const int RandomSeedFieldNumber = 31;
2482 private readonly static int RandomSeedDefaultValue = 1;
2483
2484 private int randomSeed_;
2485
2488 /// seed, the solver may make different choices during the solving process.
2489 ///
2490 /// For some problems, the running time may vary a lot depending on small
2491 /// change in the solving algorithm. Running the solver with different seeds
2492 /// enables to have more robust benchmarks when evaluating new features.
2493 /// </summary>
2494 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2495 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2496 public int RandomSeed {
2497 get { if ((_hasBits0 & 8192) != 0) { return randomSeed_; } else { return RandomSeedDefaultValue; } }
2498 set {
2499 _hasBits0 |= 8192;
2500 randomSeed_ = value;
2501 }
2502 }
2504 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2505 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2506 public bool HasRandomSeed {
2507 get { return (_hasBits0 & 8192) != 0; }
2508 }
2509 /// <summary>Clears the value of the "random_seed" field</summary>
2510 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2511 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2512 public void ClearRandomSeed() {
2513 _hasBits0 &= ~8192;
2514 }
2515
2516
2517 public const int PermuteVariableRandomlyFieldNumber = 178;
2518 private readonly static bool PermuteVariableRandomlyDefaultValue = false;
2520 private bool permuteVariableRandomly_;
2522
2525 /// many equivalent optimal solutions.
2526 /// </summary>
2527 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2528 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2529 public bool PermuteVariableRandomly {
2530 get { if ((_hasBits4 & 1024) != 0) { return permuteVariableRandomly_; } else { return PermuteVariableRandomlyDefaultValue; } }
2531 set {
2532 _hasBits4 |= 1024;
2533 permuteVariableRandomly_ = value;
2534 }
2535 }
2537 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2538 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2539 public bool HasPermuteVariableRandomly {
2540 get { return (_hasBits4 & 1024) != 0; }
2541 }
2542 /// <summary>Clears the value of the "permute_variable_randomly" field</summary>
2543 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2544 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2545 public void ClearPermuteVariableRandomly() {
2546 _hasBits4 &= ~1024;
2547 }
2548
2549
2550 public const int PermutePresolveConstraintOrderFieldNumber = 179;
2551 private readonly static bool PermutePresolveConstraintOrderDefaultValue = false;
2553 private bool permutePresolveConstraintOrder_;
2554 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2555 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2556 public bool PermutePresolveConstraintOrder {
2557 get { if ((_hasBits4 & 2048) != 0) { return permutePresolveConstraintOrder_; } else { return PermutePresolveConstraintOrderDefaultValue; } }
2558 set {
2559 _hasBits4 |= 2048;
2560 permutePresolveConstraintOrder_ = value;
2561 }
2562 }
2564 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2565 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2567 get { return (_hasBits4 & 2048) != 0; }
2568 }
2569 /// <summary>Clears the value of the "permute_presolve_constraint_order" field</summary>
2570 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2571 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2573 _hasBits4 &= ~2048;
2574 }
2575
2576
2577 public const int UseAbslRandomFieldNumber = 180;
2578 private readonly static bool UseAbslRandomDefaultValue = false;
2580 private bool useAbslRandom_;
2581 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2582 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2583 public bool UseAbslRandom {
2584 get { if ((_hasBits4 & 4096) != 0) { return useAbslRandom_; } else { return UseAbslRandomDefaultValue; } }
2585 set {
2586 _hasBits4 |= 4096;
2587 useAbslRandom_ = value;
2588 }
2589 }
2591 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2592 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2593 public bool HasUseAbslRandom {
2594 get { return (_hasBits4 & 4096) != 0; }
2595 }
2596 /// <summary>Clears the value of the "use_absl_random" field</summary>
2597 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2598 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2599 public void ClearUseAbslRandom() {
2600 _hasBits4 &= ~4096;
2601 }
2602
2603
2604 public const int LogSearchProgressFieldNumber = 41;
2605 private readonly static bool LogSearchProgressDefaultValue = false;
2607 private bool logSearchProgress_;
2609
2612 /// </summary>
2613 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2614 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2615 public bool LogSearchProgress {
2616 get { if ((_hasBits0 & 1048576) != 0) { return logSearchProgress_; } else { return LogSearchProgressDefaultValue; } }
2617 set {
2618 _hasBits0 |= 1048576;
2619 logSearchProgress_ = value;
2620 }
2621 }
2623 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2624 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2625 public bool HasLogSearchProgress {
2626 get { return (_hasBits0 & 1048576) != 0; }
2627 }
2628 /// <summary>Clears the value of the "log_search_progress" field</summary>
2629 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2630 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2631 public void ClearLogSearchProgress() {
2632 _hasBits0 &= ~1048576;
2633 }
2634
2635
2636 public const int LogSubsolverStatisticsFieldNumber = 189;
2637 private readonly static bool LogSubsolverStatisticsDefaultValue = false;
2639 private bool logSubsolverStatistics_;
2641
2644 /// of stats with one line per subsolver.
2645 /// </summary>
2646 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2647 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2648 public bool LogSubsolverStatistics {
2649 get { if ((_hasBits4 & 524288) != 0) { return logSubsolverStatistics_; } else { return LogSubsolverStatisticsDefaultValue; } }
2650 set {
2651 _hasBits4 |= 524288;
2652 logSubsolverStatistics_ = value;
2653 }
2654 }
2656 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2657 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2658 public bool HasLogSubsolverStatistics {
2659 get { return (_hasBits4 & 524288) != 0; }
2660 }
2661 /// <summary>Clears the value of the "log_subsolver_statistics" field</summary>
2662 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2663 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2664 public void ClearLogSubsolverStatistics() {
2665 _hasBits4 &= ~524288;
2666 }
2667
2668
2669 public const int LogPrefixFieldNumber = 185;
2670 private readonly static string LogPrefixDefaultValue = "";
2672 private string logPrefix_;
2674
2676 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2677 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2678 public string LogPrefix {
2679 get { return logPrefix_ ?? LogPrefixDefaultValue; }
2680 set {
2681 logPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2683 }
2685 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2686 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2687 public bool HasLogPrefix {
2688 get { return logPrefix_ != null; }
2689 }
2691 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2692 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2693 public void ClearLogPrefix() {
2694 logPrefix_ = null;
2695 }
2696
2697
2698 public const int LogToStdoutFieldNumber = 186;
2699 private readonly static bool LogToStdoutDefaultValue = true;
2701 private bool logToStdout_;
2703
2705 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2706 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2707 public bool LogToStdout {
2708 get { if ((_hasBits4 & 65536) != 0) { return logToStdout_; } else { return LogToStdoutDefaultValue; } }
2709 set {
2710 _hasBits4 |= 65536;
2711 logToStdout_ = value;
2712 }
2713 }
2715 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2716 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2717 public bool HasLogToStdout {
2718 get { return (_hasBits4 & 65536) != 0; }
2719 }
2720 /// <summary>Clears the value of the "log_to_stdout" field</summary>
2721 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2722 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2723 public void ClearLogToStdout() {
2724 _hasBits4 &= ~65536;
2725 }
2726
2727
2728 public const int LogToResponseFieldNumber = 187;
2729 private readonly static bool LogToResponseDefaultValue = false;
2731 private bool logToResponse_;
2733
2735 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2736 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2737 public bool LogToResponse {
2738 get { if ((_hasBits4 & 131072) != 0) { return logToResponse_; } else { return LogToResponseDefaultValue; } }
2739 set {
2740 _hasBits4 |= 131072;
2741 logToResponse_ = value;
2742 }
2743 }
2745 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2746 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2747 public bool HasLogToResponse {
2748 get { return (_hasBits4 & 131072) != 0; }
2749 }
2750 /// <summary>Clears the value of the "log_to_response" field</summary>
2751 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2752 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2753 public void ClearLogToResponse() {
2754 _hasBits4 &= ~131072;
2755 }
2756
2757
2758 public const int UsePbResolutionFieldNumber = 43;
2759 private readonly static bool UsePbResolutionDefaultValue = false;
2761 private bool usePbResolution_;
2763
2766 /// should double check the solver result. It can still be used if you only
2767 /// care about feasible solutions (these are checked) and it gives good result
2768 /// on your problem. We might revive it at some point.
2769 ///
2770 /// Whether to use pseudo-Boolean resolution to analyze a conflict. Note that
2771 /// this option only make sense if your problem is modelized using
2772 /// pseudo-Boolean constraints. If you only have clauses, this shouldn't change
2773 /// anything (except slow the solver down).
2774 /// </summary>
2775 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2776 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2777 public bool UsePbResolution {
2778 get { if ((_hasBits0 & 2097152) != 0) { return usePbResolution_; } else { return UsePbResolutionDefaultValue; } }
2779 set {
2780 _hasBits0 |= 2097152;
2781 usePbResolution_ = value;
2782 }
2783 }
2785 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2786 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2787 public bool HasUsePbResolution {
2788 get { return (_hasBits0 & 2097152) != 0; }
2789 }
2791 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2792 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2793 public void ClearUsePbResolution() {
2794 _hasBits0 &= ~2097152;
2795 }
2796
2798 public const int MinimizeReductionDuringPbResolutionFieldNumber = 48;
2799 private readonly static bool MinimizeReductionDuringPbResolutionDefaultValue = false;
2800
2801 private bool minimizeReductionDuringPbResolution_;
2802 /// <summary>
2803 /// A different algorithm during PB resolution. It minimizes the number of
2804 /// calls to ReduceCoefficients() which can be time consuming. However, the
2805 /// search space will be different and if the coefficients are large, this may
2806 /// lead to integer overflows that could otherwise be prevented.
2807 /// </summary>
2808 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2809 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2811 get { if ((_hasBits0 & 67108864) != 0) { return minimizeReductionDuringPbResolution_; } else { return MinimizeReductionDuringPbResolutionDefaultValue; } }
2812 set {
2813 _hasBits0 |= 67108864;
2814 minimizeReductionDuringPbResolution_ = value;
2815 }
2816 }
2818 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2819 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2820 public bool HasMinimizeReductionDuringPbResolution {
2821 get { return (_hasBits0 & 67108864) != 0; }
2822 }
2824 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2825 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2827 _hasBits0 &= ~67108864;
2828 }
2829
2831 public const int CountAssumptionLevelsInLbdFieldNumber = 49;
2832 private readonly static bool CountAssumptionLevelsInLbdDefaultValue = true;
2833
2834 private bool countAssumptionLevelsInLbd_;
2835 /// <summary>
2836 /// Whether or not the assumption levels are taken into account during the LBD
2837 /// computation. According to the reference below, not counting them improves
2838 /// the solver in some situation. Note that this only impact solves under
2839 /// assumptions.
2840 ///
2841 /// Gilles Audemard, Jean-Marie Lagniez, Laurent Simon, "Improving Glucose for
2842 /// Incremental SAT Solving with Assumptions: Application to MUS Extraction"
2843 /// Theory and Applications of Satisfiability Testing - SAT 2013, Lecture Notes
2844 /// in Computer Science Volume 7962, 2013, pp 309-317.
2845 /// </summary>
2846 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2847 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2848 public bool CountAssumptionLevelsInLbd {
2849 get { if ((_hasBits0 & 134217728) != 0) { return countAssumptionLevelsInLbd_; } else { return CountAssumptionLevelsInLbdDefaultValue; } }
2850 set {
2851 _hasBits0 |= 134217728;
2852 countAssumptionLevelsInLbd_ = value;
2853 }
2854 }
2856 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2857 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2858 public bool HasCountAssumptionLevelsInLbd {
2859 get { return (_hasBits0 & 134217728) != 0; }
2860 }
2862 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2863 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2865 _hasBits0 &= ~134217728;
2866 }
2867
2869 public const int PresolveBveThresholdFieldNumber = 54;
2870 private readonly static int PresolveBveThresholdDefaultValue = 500;
2871
2872 private int presolveBveThreshold_;
2874 /// During presolve, only try to perform the bounded variable elimination (BVE)
2875 /// of a variable x if the number of occurrences of x times the number of
2876 /// occurrences of not(x) is not greater than this parameter.
2877 /// </summary>
2878 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2879 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2881 get { if ((_hasBits1 & 1) != 0) { return presolveBveThreshold_; } else { return PresolveBveThresholdDefaultValue; } }
2882 set {
2883 _hasBits1 |= 1;
2884 presolveBveThreshold_ = value;
2886 }
2888 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2889 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2890 public bool HasPresolveBveThreshold {
2891 get { return (_hasBits1 & 1) != 0; }
2892 }
2894 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2895 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2897 _hasBits1 &= ~1;
2898 }
2899
2901 public const int FilterSatPostsolveClausesFieldNumber = 324;
2902 private readonly static bool FilterSatPostsolveClausesDefaultValue = false;
2903
2904 private bool filterSatPostsolveClauses_;
2906 /// Internal parameter. During BVE, if we eliminate a variable x, by default we
2907 /// will push all clauses containing x and all clauses containing not(x) to the
2908 /// postsolve. However, it is possible to write the postsolve code so that only
2909 /// one such set is needed. The idea is that, if we push the set containing a
2910 /// literal l, is to set l to false except if it is needed to satisfy one of
2911 /// the clause in the set. This is always beneficial, but for historical
2912 /// reason, not all our postsolve algorithm support this.
2913 /// </summary>
2914 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2915 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2916 public bool FilterSatPostsolveClauses {
2917 get { if ((_hasBits8 & 256) != 0) { return filterSatPostsolveClauses_; } else { return FilterSatPostsolveClausesDefaultValue; } }
2918 set {
2919 _hasBits8 |= 256;
2920 filterSatPostsolveClauses_ = value;
2921 }
2922 }
2924 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2925 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2926 public bool HasFilterSatPostsolveClauses {
2927 get { return (_hasBits8 & 256) != 0; }
2928 }
2930 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2931 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2933 _hasBits8 &= ~256;
2934 }
2935
2937 public const int PresolveBveClauseWeightFieldNumber = 55;
2938 private readonly static int PresolveBveClauseWeightDefaultValue = 3;
2939
2940 private int presolveBveClauseWeight_;
2942 /// During presolve, we apply BVE only if this weight times the number of
2943 /// clauses plus the number of clause literals is not increased.
2944 /// </summary>
2945 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2946 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2947 public int PresolveBveClauseWeight {
2948 get { if ((_hasBits1 & 2) != 0) { return presolveBveClauseWeight_; } else { return PresolveBveClauseWeightDefaultValue; } }
2949 set {
2950 _hasBits1 |= 2;
2951 presolveBveClauseWeight_ = value;
2952 }
2955 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2956 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2957 public bool HasPresolveBveClauseWeight {
2958 get { return (_hasBits1 & 2) != 0; }
2959 }
2961 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2962 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2964 _hasBits1 &= ~2;
2965 }
2966
2968 public const int ProbingDeterministicTimeLimitFieldNumber = 226;
2969 private readonly static double ProbingDeterministicTimeLimitDefaultValue = 1D;
2970
2971 private double probingDeterministicTimeLimit_;
2973 /// The maximum "deterministic" time limit to spend in probing. A value of
2974 /// zero will disable the probing.
2975 ///
2976 /// TODO(user): Clean up. The first one is used in CP-SAT, the other in pure
2977 /// SAT presolve.
2978 /// </summary>
2979 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2980 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2981 public double ProbingDeterministicTimeLimit {
2982 get { if ((_hasBits5 & 65536) != 0) { return probingDeterministicTimeLimit_; } else { return ProbingDeterministicTimeLimitDefaultValue; } }
2983 set {
2984 _hasBits5 |= 65536;
2985 probingDeterministicTimeLimit_ = value;
2986 }
2987 }
2989 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2990 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2991 public bool HasProbingDeterministicTimeLimit {
2992 get { return (_hasBits5 & 65536) != 0; }
2993 }
2995 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2996 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
2997 public void ClearProbingDeterministicTimeLimit() {
2998 _hasBits5 &= ~65536;
2999 }
3000
3002 public const int PresolveProbingDeterministicTimeLimitFieldNumber = 57;
3003 private readonly static double PresolveProbingDeterministicTimeLimitDefaultValue = 30D;
3004
3005 private double presolveProbingDeterministicTimeLimit_;
3006 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3007 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3009 get { if ((_hasBits1 & 8) != 0) { return presolveProbingDeterministicTimeLimit_; } else { return PresolveProbingDeterministicTimeLimitDefaultValue; } }
3010 set {
3011 _hasBits1 |= 8;
3012 presolveProbingDeterministicTimeLimit_ = value;
3013 }
3016 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3017 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3018 public bool HasPresolveProbingDeterministicTimeLimit {
3019 get { return (_hasBits1 & 8) != 0; }
3020 }
3022 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3023 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3024 public void ClearPresolveProbingDeterministicTimeLimit() {
3025 _hasBits1 &= ~8;
3026 }
3027
3029 public const int PresolveBlockedClauseFieldNumber = 88;
3030 private readonly static bool PresolveBlockedClauseDefaultValue = true;
3031
3032 private bool presolveBlockedClause_;
3035 /// in the SAT presolve.
3036 /// </summary>
3037 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3038 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3039 public bool PresolveBlockedClause {
3040 get { if ((_hasBits1 & 1073741824) != 0) { return presolveBlockedClause_; } else { return PresolveBlockedClauseDefaultValue; } }
3041 set {
3042 _hasBits1 |= 1073741824;
3043 presolveBlockedClause_ = value;
3044 }
3045 }
3047 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3048 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3049 public bool HasPresolveBlockedClause {
3050 get { return (_hasBits1 & 1073741824) != 0; }
3051 }
3053 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3054 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3055 public void ClearPresolveBlockedClause() {
3056 _hasBits1 &= ~1073741824;
3057 }
3058
3060 public const int PresolveUseBvaFieldNumber = 72;
3061 private readonly static bool PresolveUseBvaDefaultValue = true;
3062
3063 private bool presolveUseBva_;
3066 /// </summary>
3067 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3068 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3069 public bool PresolveUseBva {
3070 get { if ((_hasBits1 & 32768) != 0) { return presolveUseBva_; } else { return PresolveUseBvaDefaultValue; } }
3071 set {
3072 _hasBits1 |= 32768;
3073 presolveUseBva_ = value;
3074 }
3075 }
3077 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3078 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3079 public bool HasPresolveUseBva {
3080 get { return (_hasBits1 & 32768) != 0; }
3081 }
3083 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3084 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3085 public void ClearPresolveUseBva() {
3086 _hasBits1 &= ~32768;
3087 }
3088
3090 public const int PresolveBvaThresholdFieldNumber = 73;
3091 private readonly static int PresolveBvaThresholdDefaultValue = 1;
3092
3093 private int presolveBvaThreshold_;
3096 /// by stricly more than this threshold. The algorithm described in the paper
3097 /// uses 0, but quick experiments showed that 1 is a good value. It may not be
3098 /// worth it to add a new variable just to remove one clause.
3099 /// </summary>
3100 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3101 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3103 get { if ((_hasBits1 & 65536) != 0) { return presolveBvaThreshold_; } else { return PresolveBvaThresholdDefaultValue; } }
3104 set {
3105 _hasBits1 |= 65536;
3106 presolveBvaThreshold_ = value;
3108 }
3110 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3111 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3112 public bool HasPresolveBvaThreshold {
3113 get { return (_hasBits1 & 65536) != 0; }
3114 }
3116 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3117 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3118 public void ClearPresolveBvaThreshold() {
3119 _hasBits1 &= ~65536;
3120 }
3121
3123 public const int MaxPresolveIterationsFieldNumber = 138;
3124 private readonly static int MaxPresolveIterationsDefaultValue = 3;
3125
3126 private int maxPresolveIterations_;
3129 /// presolve iterations. This parameter controls the maximum number of such
3130 /// presolve iterations.
3131 /// </summary>
3132 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3133 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3134 public int MaxPresolveIterations {
3135 get { if ((_hasBits3 & 1024) != 0) { return maxPresolveIterations_; } else { return MaxPresolveIterationsDefaultValue; } }
3136 set {
3137 _hasBits3 |= 1024;
3138 maxPresolveIterations_ = value;
3139 }
3142 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3143 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3144 public bool HasMaxPresolveIterations {
3145 get { return (_hasBits3 & 1024) != 0; }
3146 }
3148 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3149 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3150 public void ClearMaxPresolveIterations() {
3151 _hasBits3 &= ~1024;
3152 }
3153
3155 public const int CpModelPresolveFieldNumber = 86;
3156 private readonly static bool CpModelPresolveDefaultValue = true;
3157
3158 private bool cpModelPresolve_;
3161 /// </summary>
3162 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3163 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3164 public bool CpModelPresolve {
3165 get { if ((_hasBits1 & 268435456) != 0) { return cpModelPresolve_; } else { return CpModelPresolveDefaultValue; } }
3166 set {
3167 _hasBits1 |= 268435456;
3168 cpModelPresolve_ = value;
3169 }
3170 }
3172 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3173 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3174 public bool HasCpModelPresolve {
3175 get { return (_hasBits1 & 268435456) != 0; }
3176 }
3178 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3179 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3180 public void ClearCpModelPresolve() {
3181 _hasBits1 &= ~268435456;
3182 }
3183
3185 public const int CpModelProbingLevelFieldNumber = 110;
3186 private readonly static int CpModelProbingLevelDefaultValue = 2;
3187
3188 private int cpModelProbingLevel_;
3191 /// </summary>
3192 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3193 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3194 public int CpModelProbingLevel {
3195 get { if ((_hasBits2 & 65536) != 0) { return cpModelProbingLevel_; } else { return CpModelProbingLevelDefaultValue; } }
3196 set {
3197 _hasBits2 |= 65536;
3198 cpModelProbingLevel_ = value;
3199 }
3200 }
3202 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3203 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3204 public bool HasCpModelProbingLevel {
3205 get { return (_hasBits2 & 65536) != 0; }
3206 }
3208 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3209 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3210 public void ClearCpModelProbingLevel() {
3211 _hasBits2 &= ~65536;
3212 }
3213
3215 public const int CpModelUseSatPresolveFieldNumber = 93;
3216 private readonly static bool CpModelUseSatPresolveDefaultValue = true;
3217
3218 private bool cpModelUseSatPresolve_;
3221 /// </summary>
3222 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3223 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3224 public bool CpModelUseSatPresolve {
3225 get { if ((_hasBits2 & 8) != 0) { return cpModelUseSatPresolve_; } else { return CpModelUseSatPresolveDefaultValue; } }
3226 set {
3227 _hasBits2 |= 8;
3228 cpModelUseSatPresolve_ = value;
3229 }
3230 }
3232 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3233 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3234 public bool HasCpModelUseSatPresolve {
3235 get { return (_hasBits2 & 8) != 0; }
3236 }
3238 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3239 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3240 public void ClearCpModelUseSatPresolve() {
3241 _hasBits2 &= ~8;
3242 }
3243
3245 public const int LoadAtMostOnesInSatPresolveFieldNumber = 335;
3246 private readonly static bool LoadAtMostOnesInSatPresolveDefaultValue = false;
3247
3248 private bool loadAtMostOnesInSatPresolve_;
3251 /// the pure SAT presolve. Or if we just ignore them.
3252 ///
3253 /// If one detects at_most_one via merge_at_most_one_work_limit or exactly one
3254 /// with find_clauses_that_are_exactly_one, it might be good to also set this
3255 /// to true.
3256 /// </summary>
3257 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3258 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3259 public bool LoadAtMostOnesInSatPresolve {
3260 get { if ((_hasBits8 & 262144) != 0) { return loadAtMostOnesInSatPresolve_; } else { return LoadAtMostOnesInSatPresolveDefaultValue; } }
3261 set {
3262 _hasBits8 |= 262144;
3263 loadAtMostOnesInSatPresolve_ = value;
3264 }
3265 }
3267 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3268 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3269 public bool HasLoadAtMostOnesInSatPresolve {
3270 get { return (_hasBits8 & 262144) != 0; }
3271 }
3273 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3274 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3275 public void ClearLoadAtMostOnesInSatPresolve() {
3276 _hasBits8 &= ~262144;
3278
3280 public const int RemoveFixedVariablesEarlyFieldNumber = 310;
3281 private readonly static bool RemoveFixedVariablesEarlyDefaultValue = true;
3282
3283 private bool removeFixedVariablesEarly_;
3284
3287 /// variable before the full presolve even starts. This should help for LNS on
3288 /// large models.
3289 /// </summary>
3290 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3291 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3292 public bool RemoveFixedVariablesEarly {
3293 get { if ((_hasBits7 & 134217728) != 0) { return removeFixedVariablesEarly_; } else { return RemoveFixedVariablesEarlyDefaultValue; } }
3294 set {
3295 _hasBits7 |= 134217728;
3296 removeFixedVariablesEarly_ = value;
3297 }
3300 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3301 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3302 public bool HasRemoveFixedVariablesEarly {
3303 get { return (_hasBits7 & 134217728) != 0; }
3304 }
3306 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3307 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3308 public void ClearRemoveFixedVariablesEarly() {
3309 _hasBits7 &= ~134217728;
3311
3313 public const int DetectTableWithCostFieldNumber = 216;
3314 private readonly static bool DetectTableWithCostDefaultValue = false;
3315
3316 private bool detectTableWithCost_;
3317
3320 /// (weighted constraint program) is encoded into CP-SAT format.
3321 ///
3322 /// This can lead to a dramatic speed-up for such problems but is still
3323 /// experimental at this point.
3324 /// </summary>
3325 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3326 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3327 public bool DetectTableWithCost {
3328 get { if ((_hasBits5 & 256) != 0) { return detectTableWithCost_; } else { return DetectTableWithCostDefaultValue; } }
3329 set {
3330 _hasBits5 |= 256;
3331 detectTableWithCost_ = value;
3332 }
3333 }
3335 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3336 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3337 public bool HasDetectTableWithCost {
3338 get { return (_hasBits5 & 256) != 0; }
3339 }
3341 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3342 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3343 public void ClearDetectTableWithCost() {
3344 _hasBits5 &= ~256;
3345 }
3348 public const int TableCompressionLevelFieldNumber = 217;
3349 private readonly static int TableCompressionLevelDefaultValue = 2;
3350
3351 private int tableCompressionLevel_;
3353
3356 /// table. At 2, we try to automatically decide if it is worth it.
3357 /// </summary>
3358 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3359 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3360 public int TableCompressionLevel {
3361 get { if ((_hasBits5 & 512) != 0) { return tableCompressionLevel_; } else { return TableCompressionLevelDefaultValue; } }
3362 set {
3363 _hasBits5 |= 512;
3364 tableCompressionLevel_ = value;
3365 }
3366 }
3368 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3369 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3370 public bool HasTableCompressionLevel {
3371 get { return (_hasBits5 & 512) != 0; }
3372 }
3374 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3375 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3376 public void ClearTableCompressionLevel() {
3377 _hasBits5 &= ~512;
3378 }
3381 public const int ExpandAlldiffConstraintsFieldNumber = 170;
3382 private readonly static bool ExpandAlldiffConstraintsDefaultValue = false;
3383
3384 private bool expandAlldiffConstraints_;
3386
3389 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3390 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3391 public bool ExpandAlldiffConstraints {
3392 get { if ((_hasBits4 & 8) != 0) { return expandAlldiffConstraints_; } else { return ExpandAlldiffConstraintsDefaultValue; } }
3393 set {
3394 _hasBits4 |= 8;
3395 expandAlldiffConstraints_ = value;
3396 }
3397 }
3398
3399 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3400 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3401 public bool HasExpandAlldiffConstraints {
3402 get { return (_hasBits4 & 8) != 0; }
3403 }
3405 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3406 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3407 public void ClearExpandAlldiffConstraints() {
3408 _hasBits4 &= ~8;
3409 }
3412 public const int MaxAlldiffDomainSizeFieldNumber = 320;
3413 private readonly static int MaxAlldiffDomainSizeDefaultValue = 256;
3414
3415 private int maxAlldiffDomainSize_;
3417
3419 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3420 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3421 public int MaxAlldiffDomainSize {
3422 get { if ((_hasBits8 & 16) != 0) { return maxAlldiffDomainSize_; } else { return MaxAlldiffDomainSizeDefaultValue; } }
3423 set {
3424 _hasBits8 |= 16;
3425 maxAlldiffDomainSize_ = value;
3427 }
3429 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3430 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3432 get { return (_hasBits8 & 16) != 0; }
3433 }
3435 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3436 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3437 public void ClearMaxAlldiffDomainSize() {
3438 _hasBits8 &= ~16;
3439 }
3442 public const int ExpandReservoirConstraintsFieldNumber = 182;
3443 private readonly static bool ExpandReservoirConstraintsDefaultValue = true;
3444
3445 private bool expandReservoirConstraints_;
3447
3450 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3451 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3452 public bool ExpandReservoirConstraints {
3453 get { if ((_hasBits4 & 16384) != 0) { return expandReservoirConstraints_; } else { return ExpandReservoirConstraintsDefaultValue; } }
3454 set {
3455 _hasBits4 |= 16384;
3456 expandReservoirConstraints_ = value;
3457 }
3458 }
3459
3460 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3461 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3462 public bool HasExpandReservoirConstraints {
3463 get { return (_hasBits4 & 16384) != 0; }
3464 }
3466 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3467 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3468 public void ClearExpandReservoirConstraints() {
3469 _hasBits4 &= ~16384;
3470 }
3473 public const int MaxDomainSizeForLinear2ExpansionFieldNumber = 340;
3474 private readonly static int MaxDomainSizeForLinear2ExpansionDefaultValue = 8;
3475
3476 private int maxDomainSizeForLinear2Expansion_;
3478
3480 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3481 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3483 get { if ((_hasBits8 & 4194304) != 0) { return maxDomainSizeForLinear2Expansion_; } else { return MaxDomainSizeForLinear2ExpansionDefaultValue; } }
3484 set {
3485 _hasBits8 |= 4194304;
3486 maxDomainSizeForLinear2Expansion_ = value;
3488 }
3490 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3491 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3493 get { return (_hasBits8 & 4194304) != 0; }
3494 }
3496 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3497 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3498 public void ClearMaxDomainSizeForLinear2Expansion() {
3499 _hasBits8 &= ~4194304;
3500 }
3503 public const int ExpandReservoirUsingCircuitFieldNumber = 288;
3504 private readonly static bool ExpandReservoirUsingCircuitDefaultValue = false;
3505
3506 private bool expandReservoirUsingCircuit_;
3508
3511 /// encoding of the reservoir constraint using circuit instead of precedences.
3512 /// Note that this is usually slower, but can exercise different part of the
3513 /// solver. Note that contrary to the precedence encoding, this easily support
3514 /// variable demands.
3515 ///
3516 /// WARNING: with this encoding, the constraint takes a slightly different
3517 /// meaning. There must exist a permutation of the events occurring at the same
3518 /// time such that the level is within the reservoir after each of these events
3519 /// (in this permuted order). So we cannot have +100 and -100 at the same time
3520 /// if the level must be between 0 and 10 (as authorized by the reservoir
3521 /// constraint).
3522 /// </summary>
3523 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3524 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3525 public bool ExpandReservoirUsingCircuit {
3526 get { if ((_hasBits7 & 64) != 0) { return expandReservoirUsingCircuit_; } else { return ExpandReservoirUsingCircuitDefaultValue; } }
3527 set {
3528 _hasBits7 |= 64;
3529 expandReservoirUsingCircuit_ = value;
3530 }
3531 }
3533 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3534 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3535 public bool HasExpandReservoirUsingCircuit {
3536 get { return (_hasBits7 & 64) != 0; }
3537 }
3539 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3540 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3541 public void ClearExpandReservoirUsingCircuit() {
3542 _hasBits7 &= ~64;
3543 }
3544
3547 private readonly static bool EncodeCumulativeAsReservoirDefaultValue = false;
3548
3549 private bool encodeCumulativeAsReservoir_;
3553
3555 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3556 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3557 public bool EncodeCumulativeAsReservoir {
3558 get { if ((_hasBits7 & 32) != 0) { return encodeCumulativeAsReservoir_; } else { return EncodeCumulativeAsReservoirDefaultValue; } }
3559 set {
3560 _hasBits7 |= 32;
3561 encodeCumulativeAsReservoir_ = value;
3563 }
3565 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3566 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3568 get { return (_hasBits7 & 32) != 0; }
3569 }
3571 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3572 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3573 public void ClearEncodeCumulativeAsReservoir() {
3574 _hasBits7 &= ~32;
3575 }
3576
3579 private readonly static int MaxLinMaxSizeForExpansionDefaultValue = 0;
3580
3581 private int maxLinMaxSizeForExpansion_;
3585
3588 /// </summary>
3589 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3590 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3591 public int MaxLinMaxSizeForExpansion {
3592 get { if ((_hasBits6 & 1073741824) != 0) { return maxLinMaxSizeForExpansion_; } else { return MaxLinMaxSizeForExpansionDefaultValue; } }
3593 set {
3594 _hasBits6 |= 1073741824;
3595 maxLinMaxSizeForExpansion_ = value;
3596 }
3597 }
3599 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3600 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3601 public bool HasMaxLinMaxSizeForExpansion {
3602 get { return (_hasBits6 & 1073741824) != 0; }
3603 }
3605 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3606 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3607 public void ClearMaxLinMaxSizeForExpansion() {
3608 _hasBits6 &= ~1073741824;
3609 }
3610
3612 public const int DisableConstraintExpansionFieldNumber = 181;
3613 private readonly static bool DisableConstraintExpansionDefaultValue = false;
3614
3615 private bool disableConstraintExpansion_;
3620 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3621 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3622 public bool DisableConstraintExpansion {
3623 get { if ((_hasBits4 & 8192) != 0) { return disableConstraintExpansion_; } else { return DisableConstraintExpansionDefaultValue; } }
3624 set {
3625 _hasBits4 |= 8192;
3626 disableConstraintExpansion_ = value;
3627 }
3628 }
3629 /// <summary>Gets whether the "disable_constraint_expansion" field is set</summary>
3630 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3631 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3632 public bool HasDisableConstraintExpansion {
3633 get { return (_hasBits4 & 8192) != 0; }
3636 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3637 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3638 public void ClearDisableConstraintExpansion() {
3639 _hasBits4 &= ~8192;
3640 }
3641
3643 public const int EncodeComplexLinearConstraintWithIntegerFieldNumber = 223;
3644 private readonly static bool EncodeComplexLinearConstraintWithIntegerDefaultValue = false;
3645
3646 private bool encodeComplexLinearConstraintWithInteger_;
3651 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3652 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3654 get { if ((_hasBits5 & 8192) != 0) { return encodeComplexLinearConstraintWithInteger_; } else { return EncodeComplexLinearConstraintWithIntegerDefaultValue; } }
3655 set {
3656 _hasBits5 |= 8192;
3657 encodeComplexLinearConstraintWithInteger_ = value;
3658 }
3659 }
3660 /// <summary>Gets whether the "encode_complex_linear_constraint_with_integer" field is set</summary>
3661 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3662 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3664 get { return (_hasBits5 & 8192) != 0; }
3667 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3668 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3669 public void ClearEncodeComplexLinearConstraintWithInteger() {
3670 _hasBits5 &= ~8192;
3671 }
3672
3674 public const int MergeNoOverlapWorkLimitFieldNumber = 145;
3675 private readonly static double MergeNoOverlapWorkLimitDefaultValue = 1e+12D;
3676
3677 private double mergeNoOverlapWorkLimit_;
3682
3685 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3686 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3687 public double MergeNoOverlapWorkLimit {
3688 get { if ((_hasBits3 & 4096) != 0) { return mergeNoOverlapWorkLimit_; } else { return MergeNoOverlapWorkLimitDefaultValue; } }
3689 set {
3690 _hasBits3 |= 4096;
3691 mergeNoOverlapWorkLimit_ = value;
3692 }
3693 }
3694
3695 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3696 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3697 public bool HasMergeNoOverlapWorkLimit {
3698 get { return (_hasBits3 & 4096) != 0; }
3699 }
3701 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3702 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3703 public void ClearMergeNoOverlapWorkLimit() {
3704 _hasBits3 &= ~4096;
3705 }
3706
3708 public const int MergeAtMostOneWorkLimitFieldNumber = 146;
3709 private readonly static double MergeAtMostOneWorkLimitDefaultValue = 1e+08D;
3710
3711 private double mergeAtMostOneWorkLimit_;
3712 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3713 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3714 public double MergeAtMostOneWorkLimit {
3715 get { if ((_hasBits3 & 8192) != 0) { return mergeAtMostOneWorkLimit_; } else { return MergeAtMostOneWorkLimitDefaultValue; } }
3716 set {
3717 _hasBits3 |= 8192;
3718 mergeAtMostOneWorkLimit_ = value;
3720 }
3722 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3723 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3724 public bool HasMergeAtMostOneWorkLimit {
3725 get { return (_hasBits3 & 8192) != 0; }
3726 }
3728 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3729 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3731 _hasBits3 &= ~8192;
3732 }
3733
3735 public const int PresolveSubstitutionLevelFieldNumber = 147;
3736 private readonly static int PresolveSubstitutionLevelDefaultValue = 1;
3737
3738 private int presolveSubstitutionLevel_;
3743
3745 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3746 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3747 public int PresolveSubstitutionLevel {
3748 get { if ((_hasBits3 & 16384) != 0) { return presolveSubstitutionLevel_; } else { return PresolveSubstitutionLevelDefaultValue; } }
3749 set {
3750 _hasBits3 |= 16384;
3751 presolveSubstitutionLevel_ = value;
3753 }
3755 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3756 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3758 get { return (_hasBits3 & 16384) != 0; }
3759 }
3761 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3762 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3763 public void ClearPresolveSubstitutionLevel() {
3764 _hasBits3 &= ~16384;
3765 }
3766
3768 public const int PresolveExtractIntegerEnforcementFieldNumber = 174;
3769 private readonly static bool PresolveExtractIntegerEnforcementDefaultValue = false;
3770
3771 private bool presolveExtractIntegerEnforcement_;
3776
3779 /// </summary>
3780 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3781 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3783 get { if ((_hasBits4 & 64) != 0) { return presolveExtractIntegerEnforcement_; } else { return PresolveExtractIntegerEnforcementDefaultValue; } }
3784 set {
3785 _hasBits4 |= 64;
3786 presolveExtractIntegerEnforcement_ = value;
3787 }
3788 }
3790 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3791 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3793 get { return (_hasBits4 & 64) != 0; }
3794 }
3796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3798 public void ClearPresolveExtractIntegerEnforcement() {
3799 _hasBits4 &= ~64;
3800 }
3801
3803 public const int PresolveInclusionWorkLimitFieldNumber = 201;
3804 private readonly static long PresolveInclusionWorkLimitDefaultValue = 100000000L;
3805
3806 private long presolveInclusionWorkLimit_;
3811
3814 /// A value of zero will disable these presolve rules completely.
3815 /// </summary>
3816 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3817 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3818 public long PresolveInclusionWorkLimit {
3819 get { if ((_hasBits4 & -2147483648) != 0) { return presolveInclusionWorkLimit_; } else { return PresolveInclusionWorkLimitDefaultValue; } }
3820 set {
3821 _hasBits4 |= -2147483648;
3822 presolveInclusionWorkLimit_ = value;
3823 }
3824 }
3826 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3827 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3828 public bool HasPresolveInclusionWorkLimit {
3829 get { return (_hasBits4 & -2147483648) != 0; }
3830 }
3832 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3833 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3834 public void ClearPresolveInclusionWorkLimit() {
3835 _hasBits4 &= ~-2147483648;
3836 }
3837
3839 public const int IgnoreNamesFieldNumber = 202;
3840 private readonly static bool IgnoreNamesDefaultValue = true;
3842 private bool ignoreNames_;
3846 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3847 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3848 public bool IgnoreNames {
3849 get { if ((_hasBits5 & 1) != 0) { return ignoreNames_; } else { return IgnoreNamesDefaultValue; } }
3850 set {
3851 _hasBits5 |= 1;
3852 ignoreNames_ = value;
3853 }
3854 }
3856 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3857 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3858 public bool HasIgnoreNames {
3859 get { return (_hasBits5 & 1) != 0; }
3860 }
3862 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3863 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3864 public void ClearIgnoreNames() {
3865 _hasBits5 &= ~1;
3866 }
3867
3869 public const int InferAllDiffsFieldNumber = 233;
3870 private readonly static bool InferAllDiffsDefaultValue = true;
3872 private bool inferAllDiffs_;
3878
3881 /// x != y have "offsets" between them. I.e. x > y + offset.
3882 /// </summary>
3883 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3884 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3885 public bool InferAllDiffs {
3886 get { if ((_hasBits5 & 4194304) != 0) { return inferAllDiffs_; } else { return InferAllDiffsDefaultValue; } }
3887 set {
3888 _hasBits5 |= 4194304;
3889 inferAllDiffs_ = value;
3890 }
3891 }
3893 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3894 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3895 public bool HasInferAllDiffs {
3896 get { return (_hasBits5 & 4194304) != 0; }
3897 }
3899 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3900 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3901 public void ClearInferAllDiffs() {
3902 _hasBits5 &= ~4194304;
3903 }
3904
3906 public const int FindBigLinearOverlapFieldNumber = 234;
3907 private readonly static bool FindBigLinearOverlapDefaultValue = true;
3908
3909 private bool findBigLinearOverlap_;
3916 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3917 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3918 public bool FindBigLinearOverlap {
3919 get { if ((_hasBits5 & 8388608) != 0) { return findBigLinearOverlap_; } else { return FindBigLinearOverlapDefaultValue; } }
3920 set {
3921 _hasBits5 |= 8388608;
3922 findBigLinearOverlap_ = value;
3923 }
3924 }
3925 /// <summary>Gets whether the "find_big_linear_overlap" field is set</summary>
3926 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3927 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3928 public bool HasFindBigLinearOverlap {
3929 get { return (_hasBits5 & 8388608) != 0; }
3932 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3933 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3934 public void ClearFindBigLinearOverlap() {
3935 _hasBits5 &= ~8388608;
3936 }
3937
3939 public const int FindClausesThatAreExactlyOneFieldNumber = 333;
3940 private readonly static bool FindClausesThatAreExactlyOneDefaultValue = true;
3941
3942 private bool findClausesThatAreExactlyOne_;
3949
3950 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3951 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3953 get { if ((_hasBits8 & 131072) != 0) { return findClausesThatAreExactlyOne_; } else { return FindClausesThatAreExactlyOneDefaultValue; } }
3954 set {
3955 _hasBits8 |= 131072;
3956 findClausesThatAreExactlyOne_ = value;
3957 }
3960 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3961 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3962 public bool HasFindClausesThatAreExactlyOne {
3963 get { return (_hasBits8 & 131072) != 0; }
3964 }
3966 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3967 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3968 public void ClearFindClausesThatAreExactlyOne() {
3969 _hasBits8 &= ~131072;
3970 }
3971
3973 public const int UseSatInprocessingFieldNumber = 163;
3974 private readonly static bool UseSatInprocessingDefaultValue = true;
3975
3976 private bool useSatInprocessing_;
3981 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3982 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3983 public bool UseSatInprocessing {
3984 get { if ((_hasBits3 & 268435456) != 0) { return useSatInprocessing_; } else { return UseSatInprocessingDefaultValue; } }
3985 set {
3986 _hasBits3 |= 268435456;
3987 useSatInprocessing_ = value;
3988 }
3989 }
3991 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3992 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3993 public bool HasUseSatInprocessing {
3994 get { return (_hasBits3 & 268435456) != 0; }
3995 }
3997 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3998 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3999 public void ClearUseSatInprocessing() {
4000 _hasBits3 &= ~268435456;
4001 }
4002
4004 public const int InprocessingDtimeRatioFieldNumber = 273;
4005 private readonly static double InprocessingDtimeRatioDefaultValue = 0.2D;
4006
4007 private double inprocessingDtimeRatio_;
4013 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4014 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4015 public double InprocessingDtimeRatio {
4016 get { if ((_hasBits6 & 8388608) != 0) { return inprocessingDtimeRatio_; } else { return InprocessingDtimeRatioDefaultValue; } }
4017 set {
4018 _hasBits6 |= 8388608;
4019 inprocessingDtimeRatio_ = value;
4020 }
4021 }
4023 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4024 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4025 public bool HasInprocessingDtimeRatio {
4026 get { return (_hasBits6 & 8388608) != 0; }
4027 }
4029 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4030 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4031 public void ClearInprocessingDtimeRatio() {
4032 _hasBits6 &= ~8388608;
4033 }
4034
4036 public const int InprocessingProbingDtimeFieldNumber = 274;
4037 private readonly static double InprocessingProbingDtimeDefaultValue = 1D;
4038
4039 private double inprocessingProbingDtime_;
4043 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4044 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4045 public double InprocessingProbingDtime {
4046 get { if ((_hasBits6 & 16777216) != 0) { return inprocessingProbingDtime_; } else { return InprocessingProbingDtimeDefaultValue; } }
4047 set {
4048 _hasBits6 |= 16777216;
4049 inprocessingProbingDtime_ = value;
4050 }
4051 }
4052
4053 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4054 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4056 get { return (_hasBits6 & 16777216) != 0; }
4057 }
4058
4059 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4060 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4061 public void ClearInprocessingProbingDtime() {
4062 _hasBits6 &= ~16777216;
4063 }
4064
4066 public const int InprocessingMinimizationDtimeFieldNumber = 275;
4067 private readonly static double InprocessingMinimizationDtimeDefaultValue = 1D;
4068
4069 private double inprocessingMinimizationDtime_;
4076
4079 /// max-sat. We also minimize problem clauses and not just the learned clause
4080 /// that we keep forever like in the paper.
4081 /// </summary>
4082 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4083 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4084 public double InprocessingMinimizationDtime {
4085 get { if ((_hasBits6 & 33554432) != 0) { return inprocessingMinimizationDtime_; } else { return InprocessingMinimizationDtimeDefaultValue; } }
4086 set {
4087 _hasBits6 |= 33554432;
4088 inprocessingMinimizationDtime_ = value;
4089 }
4092 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4093 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4094 public bool HasInprocessingMinimizationDtime {
4095 get { return (_hasBits6 & 33554432) != 0; }
4096 }
4098 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4099 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4100 public void ClearInprocessingMinimizationDtime() {
4101 _hasBits6 &= ~33554432;
4102 }
4103
4105 public const int InprocessingMinimizationUseConflictAnalysisFieldNumber = 297;
4106 private readonly static bool InprocessingMinimizationUseConflictAnalysisDefaultValue = true;
4107
4108 private bool inprocessingMinimizationUseConflictAnalysis_;
4109 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4110 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4112 get { if ((_hasBits7 & 16384) != 0) { return inprocessingMinimizationUseConflictAnalysis_; } else { return InprocessingMinimizationUseConflictAnalysisDefaultValue; } }
4113 set {
4114 _hasBits7 |= 16384;
4115 inprocessingMinimizationUseConflictAnalysis_ = value;
4116 }
4117 }
4119 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4120 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4122 get { return (_hasBits7 & 16384) != 0; }
4123 }
4125 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4126 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4128 _hasBits7 &= ~16384;
4129 }
4130
4133 private readonly static bool InprocessingMinimizationUseAllOrderingsDefaultValue = false;
4134
4135 private bool inprocessingMinimizationUseAllOrderings_;
4136 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4137 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4139 get { if ((_hasBits7 & 32768) != 0) { return inprocessingMinimizationUseAllOrderings_; } else { return InprocessingMinimizationUseAllOrderingsDefaultValue; } }
4140 set {
4141 _hasBits7 |= 32768;
4142 inprocessingMinimizationUseAllOrderings_ = value;
4143 }
4144 }
4146 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4147 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4149 get { return (_hasBits7 & 32768) != 0; }
4150 }
4152 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4153 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4155 _hasBits7 &= ~32768;
4156 }
4157
4159 public const int InprocessingUseCongruenceClosureFieldNumber = 342;
4160 private readonly static bool InprocessingUseCongruenceClosureDefaultValue = true;
4161
4162 private bool inprocessingUseCongruenceClosure_;
4164 /// Whether we use the algorithm described in "Clausal Congruence closure",
4165 /// Armin Biere, Katalin Fazekas, Mathias Fleury, Nils Froleyks, 2024.
4166 ///
4167 /// Note that we only have a basic version currently.
4168 /// </summary>
4169 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4170 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4172 get { if ((_hasBits8 & 16777216) != 0) { return inprocessingUseCongruenceClosure_; } else { return InprocessingUseCongruenceClosureDefaultValue; } }
4173 set {
4174 _hasBits8 |= 16777216;
4175 inprocessingUseCongruenceClosure_ = value;
4176 }
4177 }
4179 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4180 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4182 get { return (_hasBits8 & 16777216) != 0; }
4183 }
4185 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4186 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4188 _hasBits8 &= ~16777216;
4189 }
4190
4192 public const int InprocessingUseSatSweepingFieldNumber = 354;
4193 private readonly static bool InprocessingUseSatSweepingDefaultValue = false;
4194
4195 private bool inprocessingUseSatSweeping_;
4198 /// Sweeping", Armin Biere, Katalin Fazekas, Mathias Fleury, Nils Froleyks,
4199 /// 2025.
4200 /// </summary>
4201 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4202 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4203 public bool InprocessingUseSatSweeping {
4204 get { if ((_hasBits9 & 16) != 0) { return inprocessingUseSatSweeping_; } else { return InprocessingUseSatSweepingDefaultValue; } }
4205 set {
4206 _hasBits9 |= 16;
4207 inprocessingUseSatSweeping_ = value;
4209 }
4211 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4212 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4213 public bool HasInprocessingUseSatSweeping {
4214 get { return (_hasBits9 & 16) != 0; }
4215 }
4217 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4218 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4220 _hasBits9 &= ~16;
4221 }
4222
4224 public const int NumWorkersFieldNumber = 206;
4225 private readonly static int NumWorkersDefaultValue = 0;
4226
4227 private int numWorkers_;
4230 /// This should usually be lower than your number of available cpus +
4231 /// hyperthread in your machine.
4232 ///
4233 /// A value of 0 means the solver will try to use all cores on the machine.
4234 /// A number of 1 means no parallelism.
4235 ///
4236 /// Note that 'num_workers' is the preferred name, but if it is set to zero,
4237 /// we will still read the deprecated 'num_search_workers'.
4238 ///
4239 /// As of 2020-04-10, if you're using SAT via MPSolver (to solve integer
4240 /// programs) this field is overridden with a value of 8, if the field is not
4241 /// set *explicitly*. Thus, always set this field explicitly or via
4242 /// MPSolver::SetNumThreads().
4243 /// </summary>
4244 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4245 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4246 public int NumWorkers {
4247 get { if ((_hasBits5 & 16) != 0) { return numWorkers_; } else { return NumWorkersDefaultValue; } }
4248 set {
4249 _hasBits5 |= 16;
4250 numWorkers_ = value;
4252 }
4254 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4255 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4256 public bool HasNumWorkers {
4257 get { return (_hasBits5 & 16) != 0; }
4258 }
4260 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4261 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4262 public void ClearNumWorkers() {
4263 _hasBits5 &= ~16;
4264 }
4265
4267 public const int NumSearchWorkersFieldNumber = 100;
4268 private readonly static int NumSearchWorkersDefaultValue = 0;
4269
4270 private int numSearchWorkers_;
4271 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4272 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4273 public int NumSearchWorkers {
4274 get { if ((_hasBits2 & 256) != 0) { return numSearchWorkers_; } else { return NumSearchWorkersDefaultValue; } }
4275 set {
4276 _hasBits2 |= 256;
4277 numSearchWorkers_ = value;
4278 }
4279 }
4281 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4282 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4283 public bool HasNumSearchWorkers {
4284 get { return (_hasBits2 & 256) != 0; }
4285 }
4286 /// <summary>Clears the value of the "num_search_workers" field</summary>
4287 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4288 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4289 public void ClearNumSearchWorkers() {
4290 _hasBits2 &= ~256;
4291 }
4294 public const int NumFullSubsolversFieldNumber = 294;
4295 private readonly static int NumFullSubsolversDefaultValue = 0;
4296
4297 private int numFullSubsolvers_;
4303 /// you use.
4304 /// </summary>
4305 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4306 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4307 public int NumFullSubsolvers {
4308 get { if ((_hasBits7 & 2048) != 0) { return numFullSubsolvers_; } else { return NumFullSubsolversDefaultValue; } }
4309 set {
4310 _hasBits7 |= 2048;
4311 numFullSubsolvers_ = value;
4312 }
4315 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4316 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4317 public bool HasNumFullSubsolvers {
4318 get { return (_hasBits7 & 2048) != 0; }
4321 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4322 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4323 public void ClearNumFullSubsolvers() {
4324 _hasBits7 &= ~2048;
4325 }
4326
4328 public const int SubsolversFieldNumber = 207;
4329 private static readonly pb::FieldCodec<string> _repeated_subsolvers_codec
4330 = pb::FieldCodec.ForString(1658);
4331 private readonly pbc::RepeatedField<string> subsolvers_ = new pbc::RepeatedField<string>();
4337 /// See cp_model_search.cc to see a list of the names and the default value (if
4338 /// left empty) that looks like:
4339 /// - default_lp (linearization_level:1)
4340 /// - fixed (only if fixed search specified or scheduling)
4341 /// - no_lp (linearization_level:0)
4342 /// - max_lp (linearization_level:2)
4343 /// - pseudo_costs (only if objective, change search heuristic)
4344 /// - reduced_costs (only if objective, change search heuristic)
4345 /// - quick_restart (kind of probing)
4346 /// - quick_restart_no_lp (kind of probing with linearization_level:0)
4347 /// - lb_tree_search (to improve lower bound, MIP like tree search)
4348 /// - probing (continuous probing and shaving)
4349 ///
4350 /// Also, note that some set of parameters will be ignored if they do not make
4351 /// sense. For instance if there is no objective, pseudo_cost or reduced_cost
4352 /// search will be ignored. Core based search will only work if the objective
4353 /// has many terms. If there is no fixed strategy fixed will be ignored. And so
4354 /// on.
4355 ///
4356 /// The order is important, as only the first num_full_subsolvers will be
4357 /// scheduled. You can see in the log which one are selected for a given run.
4358 /// </summary>
4359 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4360 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4361 public pbc::RepeatedField<string> Subsolvers {
4362 get { return subsolvers_; }
4363 }
4364
4366 public const int ExtraSubsolversFieldNumber = 219;
4367 private static readonly pb::FieldCodec<string> _repeated_extraSubsolvers_codec
4368 = pb::FieldCodec.ForString(1754);
4369 private readonly pbc::RepeatedField<string> extraSubsolvers_ = new pbc::RepeatedField<string>();
4374 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4375 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4376 public pbc::RepeatedField<string> ExtraSubsolvers {
4377 get { return extraSubsolvers_; }
4378 }
4379
4381 public const int IgnoreSubsolversFieldNumber = 209;
4382 private static readonly pb::FieldCodec<string> _repeated_ignoreSubsolvers_codec
4383 = pb::FieldCodec.ForString(1674);
4384 private readonly pbc::RepeatedField<string> ignoreSubsolvers_ = new pbc::RepeatedField<string>();
4394 /// specified via the subsolvers field.
4395 /// </summary>
4396 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4397 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4398 public pbc::RepeatedField<string> IgnoreSubsolvers {
4399 get { return ignoreSubsolvers_; }
4400 }
4401
4403 public const int FilterSubsolversFieldNumber = 293;
4404 private static readonly pb::FieldCodec<string> _repeated_filterSubsolvers_codec
4405 = pb::FieldCodec.ForString(2346);
4406 private readonly pbc::RepeatedField<string> filterSubsolvers_ = new pbc::RepeatedField<string>();
4407 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4408 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4409 public pbc::RepeatedField<string> FilterSubsolvers {
4410 get { return filterSubsolvers_; }
4411 }
4412
4414 public const int SubsolverParamsFieldNumber = 210;
4415 private static readonly pb::FieldCodec<global::Google.OrTools.Sat.SatParameters> _repeated_subsolverParams_codec
4416 = pb::FieldCodec.ForMessage(1682, global::Google.OrTools.Sat.SatParameters.Parser);
4417 private readonly pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters> subsolverParams_ = new pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters>();
4425 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4426 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4427 public pbc::RepeatedField<global::Google.OrTools.Sat.SatParameters> SubsolverParams {
4428 get { return subsolverParams_; }
4429 }
4430
4432 public const int InterleaveSearchFieldNumber = 136;
4433 private readonly static bool InterleaveSearchDefaultValue = false;
4434
4435 private bool interleaveSearch_;
4443 /// </summary>
4444 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4445 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4446 public bool InterleaveSearch {
4447 get { if ((_hasBits3 & 256) != 0) { return interleaveSearch_; } else { return InterleaveSearchDefaultValue; } }
4448 set {
4449 _hasBits3 |= 256;
4450 interleaveSearch_ = value;
4451 }
4452 }
4454 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4455 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4456 public bool HasInterleaveSearch {
4457 get { return (_hasBits3 & 256) != 0; }
4458 }
4460 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4461 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4462 public void ClearInterleaveSearch() {
4463 _hasBits3 &= ~256;
4464 }
4465
4467 public const int InterleaveBatchSizeFieldNumber = 134;
4468 private readonly static int InterleaveBatchSizeDefaultValue = 0;
4469
4470 private int interleaveBatchSize_;
4471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4473 public int InterleaveBatchSize {
4474 get { if ((_hasBits3 & 64) != 0) { return interleaveBatchSize_; } else { return InterleaveBatchSizeDefaultValue; } }
4475 set {
4476 _hasBits3 |= 64;
4477 interleaveBatchSize_ = value;
4478 }
4479 }
4481 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4482 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4483 public bool HasInterleaveBatchSize {
4484 get { return (_hasBits3 & 64) != 0; }
4485 }
4487 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4488 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4489 public void ClearInterleaveBatchSize() {
4490 _hasBits3 &= ~64;
4492
4494 public const int ShareObjectiveBoundsFieldNumber = 113;
4495 private readonly static bool ShareObjectiveBoundsDefaultValue = true;
4496
4497 private bool shareObjectiveBounds_;
4500
4501 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4502 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4503 public bool ShareObjectiveBounds {
4504 get { if ((_hasBits2 & 262144) != 0) { return shareObjectiveBounds_; } else { return ShareObjectiveBoundsDefaultValue; } }
4505 set {
4506 _hasBits2 |= 262144;
4507 shareObjectiveBounds_ = value;
4509 }
4511 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4512 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4513 public bool HasShareObjectiveBounds {
4514 get { return (_hasBits2 & 262144) != 0; }
4515 }
4517 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4518 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4519 public void ClearShareObjectiveBounds() {
4520 _hasBits2 &= ~262144;
4521 }
4522
4524 public const int ShareLevelZeroBoundsFieldNumber = 114;
4525 private readonly static bool ShareLevelZeroBoundsDefaultValue = true;
4526
4527 private bool shareLevelZeroBounds_;
4531 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4532 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4533 public bool ShareLevelZeroBounds {
4534 get { if ((_hasBits2 & 524288) != 0) { return shareLevelZeroBounds_; } else { return ShareLevelZeroBoundsDefaultValue; } }
4535 set {
4536 _hasBits2 |= 524288;
4537 shareLevelZeroBounds_ = value;
4539 }
4541 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4542 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4543 public bool HasShareLevelZeroBounds {
4544 get { return (_hasBits2 & 524288) != 0; }
4545 }
4547 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4548 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4549 public void ClearShareLevelZeroBounds() {
4550 _hasBits2 &= ~524288;
4551 }
4552
4554 public const int ShareLinear2BoundsFieldNumber = 326;
4555 private readonly static bool ShareLinear2BoundsDefaultValue = false;
4556
4557 private bool shareLinear2Bounds_;
4565 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4566 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4567 public bool ShareLinear2Bounds {
4568 get { if ((_hasBits8 & 1024) != 0) { return shareLinear2Bounds_; } else { return ShareLinear2BoundsDefaultValue; } }
4569 set {
4570 _hasBits8 |= 1024;
4571 shareLinear2Bounds_ = value;
4572 }
4573 }
4575 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4576 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4577 public bool HasShareLinear2Bounds {
4578 get { return (_hasBits8 & 1024) != 0; }
4579 }
4581 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4582 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4583 public void ClearShareLinear2Bounds() {
4584 _hasBits8 &= ~1024;
4585 }
4586
4587
4588 public const int ShareBinaryClausesFieldNumber = 203;
4589 private readonly static bool ShareBinaryClausesDefaultValue = true;
4590
4591 private bool shareBinaryClauses_;
4595 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4596 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4597 public bool ShareBinaryClauses {
4598 get { if ((_hasBits5 & 2) != 0) { return shareBinaryClauses_; } else { return ShareBinaryClausesDefaultValue; } }
4599 set {
4600 _hasBits5 |= 2;
4601 shareBinaryClauses_ = value;
4602 }
4605 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4606 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4607 public bool HasShareBinaryClauses {
4608 get { return (_hasBits5 & 2) != 0; }
4609 }
4610
4611 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4612 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4614 _hasBits5 &= ~2;
4615 }
4616
4618 public const int ShareGlueClausesFieldNumber = 285;
4619 private readonly static bool ShareGlueClausesDefaultValue = true;
4620
4621 private bool shareGlueClauses_;
4622
4626 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4627 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4628 public bool ShareGlueClauses {
4629 get { if ((_hasBits7 & 8) != 0) { return shareGlueClauses_; } else { return ShareGlueClausesDefaultValue; } }
4630 set {
4631 _hasBits7 |= 8;
4632 shareGlueClauses_ = value;
4634 }
4636 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4637 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4638 public bool HasShareGlueClauses {
4639 get { return (_hasBits7 & 8) != 0; }
4640 }
4642 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4643 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4644 public void ClearShareGlueClauses() {
4645 _hasBits7 &= ~8;
4646 }
4647
4649 public const int MinimizeSharedClausesFieldNumber = 300;
4650 private readonly static bool MinimizeSharedClausesDefaultValue = true;
4651
4652 private bool minimizeSharedClauses_;
4657 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4658 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4659 public bool MinimizeSharedClauses {
4660 get { if ((_hasBits7 & 131072) != 0) { return minimizeSharedClauses_; } else { return MinimizeSharedClausesDefaultValue; } }
4661 set {
4662 _hasBits7 |= 131072;
4663 minimizeSharedClauses_ = value;
4665 }
4667 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4668 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4669 public bool HasMinimizeSharedClauses {
4670 get { return (_hasBits7 & 131072) != 0; }
4671 }
4673 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4674 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4675 public void ClearMinimizeSharedClauses() {
4676 _hasBits7 &= ~131072;
4677 }
4678
4680 public const int ShareGlueClausesDtimeFieldNumber = 322;
4681 private readonly static double ShareGlueClausesDtimeDefaultValue = 1D;
4682
4683 private double shareGlueClausesDtime_;
4687 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4688 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4689 public double ShareGlueClausesDtime {
4690 get { if ((_hasBits8 & 64) != 0) { return shareGlueClausesDtime_; } else { return ShareGlueClausesDtimeDefaultValue; } }
4691 set {
4692 _hasBits8 |= 64;
4693 shareGlueClausesDtime_ = value;
4694 }
4697 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4698 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4699 public bool HasShareGlueClausesDtime {
4700 get { return (_hasBits8 & 64) != 0; }
4701 }
4702
4703 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4704 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4706 _hasBits8 &= ~64;
4707 }
4708
4710 public const int CheckLratProofFieldNumber = 344;
4711 private readonly static bool CheckLratProofDefaultValue = false;
4712
4713 private bool checkLratProof_;
4714
4723 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4724 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4725 public bool CheckLratProof {
4726 get { if ((_hasBits8 & 67108864) != 0) { return checkLratProof_; } else { return CheckLratProofDefaultValue; } }
4727 set {
4728 _hasBits8 |= 67108864;
4729 checkLratProof_ = value;
4730 }
4731 }
4732
4733 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4734 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4735 public bool HasCheckLratProof {
4736 get { return (_hasBits8 & 67108864) != 0; }
4737 }
4738
4739 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4740 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4741 public void ClearCheckLratProof() {
4742 _hasBits8 &= ~67108864;
4743 }
4744
4746 public const int CheckMergedLratProofFieldNumber = 352;
4747 private readonly static bool CheckMergedLratProofDefaultValue = false;
4748
4749 private bool checkMergedLratProof_;
4757 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4758 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4759 public bool CheckMergedLratProof {
4760 get { if ((_hasBits9 & 4) != 0) { return checkMergedLratProof_; } else { return CheckMergedLratProofDefaultValue; } }
4761 set {
4762 _hasBits9 |= 4;
4763 checkMergedLratProof_ = value;
4764 }
4765 }
4767 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4768 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4769 public bool HasCheckMergedLratProof {
4770 get { return (_hasBits9 & 4) != 0; }
4773 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4774 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4775 public void ClearCheckMergedLratProof() {
4776 _hasBits9 &= ~4;
4778
4780 public const int OutputLratProofFieldNumber = 345;
4781 private readonly static bool OutputLratProofDefaultValue = false;
4783 private bool outputLratProof_;
4794 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4795 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4796 public bool OutputLratProof {
4797 get { if ((_hasBits8 & 134217728) != 0) { return outputLratProof_; } else { return OutputLratProofDefaultValue; } }
4798 set {
4799 _hasBits8 |= 134217728;
4800 outputLratProof_ = value;
4801 }
4802 }
4804 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4805 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4806 public bool HasOutputLratProof {
4807 get { return (_hasBits8 & 134217728) != 0; }
4808 }
4810 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4811 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4812 public void ClearOutputLratProof() {
4813 _hasBits8 &= ~134217728;
4814 }
4815
4817 public const int CheckDratProofFieldNumber = 346;
4818 private readonly static bool CheckDratProofDefaultValue = false;
4819
4820 private bool checkDratProof_;
4830 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4831 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4832 public bool CheckDratProof {
4833 get { if ((_hasBits8 & 268435456) != 0) { return checkDratProof_; } else { return CheckDratProofDefaultValue; } }
4834 set {
4835 _hasBits8 |= 268435456;
4836 checkDratProof_ = value;
4837 }
4838 }
4839
4840 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4841 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4842 public bool HasCheckDratProof {
4843 get { return (_hasBits8 & 268435456) != 0; }
4844 }
4845
4846 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4847 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4848 public void ClearCheckDratProof() {
4849 _hasBits8 &= ~268435456;
4850 }
4851
4853 public const int OutputDratProofFieldNumber = 347;
4854 private readonly static bool OutputDratProofDefaultValue = false;
4855
4856 private bool outputDratProof_;
4866 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4867 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4868 public bool OutputDratProof {
4869 get { if ((_hasBits8 & 536870912) != 0) { return outputDratProof_; } else { return OutputDratProofDefaultValue; } }
4870 set {
4871 _hasBits8 |= 536870912;
4872 outputDratProof_ = value;
4873 }
4874 }
4875
4876 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4877 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4879 get { return (_hasBits8 & 536870912) != 0; }
4880 }
4881
4882 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4883 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4884 public void ClearOutputDratProof() {
4885 _hasBits8 &= ~536870912;
4886 }
4887
4889 public const int MaxDratTimeInSecondsFieldNumber = 348;
4890 private readonly static double MaxDratTimeInSecondsDefaultValue = double.PositiveInfinity;
4891
4892 private double maxDratTimeInSeconds_;
4897 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4898 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4899 public double MaxDratTimeInSeconds {
4900 get { if ((_hasBits8 & 1073741824) != 0) { return maxDratTimeInSeconds_; } else { return MaxDratTimeInSecondsDefaultValue; } }
4901 set {
4902 _hasBits8 |= 1073741824;
4903 maxDratTimeInSeconds_ = value;
4905 }
4907 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4908 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4909 public bool HasMaxDratTimeInSeconds {
4910 get { return (_hasBits8 & 1073741824) != 0; }
4911 }
4913 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4914 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4915 public void ClearMaxDratTimeInSeconds() {
4916 _hasBits8 &= ~1073741824;
4917 }
4918
4921 private readonly static bool DebugPostsolveWithFullSolverDefaultValue = false;
4922
4923 private bool debugPostsolveWithFullSolver_;
4929 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4930 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4931 public bool DebugPostsolveWithFullSolver {
4932 get { if ((_hasBits3 & 134217728) != 0) { return debugPostsolveWithFullSolver_; } else { return DebugPostsolveWithFullSolverDefaultValue; } }
4933 set {
4934 _hasBits3 |= 134217728;
4935 debugPostsolveWithFullSolver_ = value;
4936 }
4937 }
4939 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4940 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4941 public bool HasDebugPostsolveWithFullSolver {
4942 get { return (_hasBits3 & 134217728) != 0; }
4943 }
4945 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4946 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4947 public void ClearDebugPostsolveWithFullSolver() {
4948 _hasBits3 &= ~134217728;
4949 }
4950
4951 /// <summary>Field number for the "debug_max_num_presolve_operations" field.</summary>
4952 public const int DebugMaxNumPresolveOperationsFieldNumber = 151;
4953 private readonly static int DebugMaxNumPresolveOperationsDefaultValue = 0;
4954
4955 private int debugMaxNumPresolveOperations_;
4960 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4961 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4963 get { if ((_hasBits3 & 131072) != 0) { return debugMaxNumPresolveOperations_; } else { return DebugMaxNumPresolveOperationsDefaultValue; } }
4964 set {
4965 _hasBits3 |= 131072;
4966 debugMaxNumPresolveOperations_ = value;
4968 }
4970 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4971 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4972 public bool HasDebugMaxNumPresolveOperations {
4973 get { return (_hasBits3 & 131072) != 0; }
4974 }
4976 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4977 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4979 _hasBits3 &= ~131072;
4980 }
4981
4983 public const int DebugCrashOnBadHintFieldNumber = 195;
4984 private readonly static bool DebugCrashOnBadHintDefaultValue = false;
4985
4986 private bool debugCrashOnBadHint_;
4990 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4991 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
4992 public bool DebugCrashOnBadHint {
4993 get { if ((_hasBits4 & 33554432) != 0) { return debugCrashOnBadHint_; } else { return DebugCrashOnBadHintDefaultValue; } }
4994 set {
4995 _hasBits4 |= 33554432;
4996 debugCrashOnBadHint_ = value;
4997 }
5000 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5001 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5002 public bool HasDebugCrashOnBadHint {
5003 get { return (_hasBits4 & 33554432) != 0; }
5004 }
5005
5006 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5007 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5009 _hasBits4 &= ~33554432;
5010 }
5011
5013 public const int DebugCrashIfPresolveBreaksHintFieldNumber = 306;
5014 private readonly static bool DebugCrashIfPresolveBreaksHintDefaultValue = false;
5015
5016 private bool debugCrashIfPresolveBreaksHint_;
5017
5020 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5021 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5022 public bool DebugCrashIfPresolveBreaksHint {
5023 get { if ((_hasBits7 & 8388608) != 0) { return debugCrashIfPresolveBreaksHint_; } else { return DebugCrashIfPresolveBreaksHintDefaultValue; } }
5024 set {
5025 _hasBits7 |= 8388608;
5026 debugCrashIfPresolveBreaksHint_ = value;
5027 }
5030 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5031 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5032 public bool HasDebugCrashIfPresolveBreaksHint {
5033 get { return (_hasBits7 & 8388608) != 0; }
5034 }
5035
5036 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5037 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5039 _hasBits7 &= ~8388608;
5040 }
5041
5043 public const int DebugCrashIfLratCheckFailsFieldNumber = 339;
5044 private readonly static bool DebugCrashIfLratCheckFailsDefaultValue = false;
5045
5046 private bool debugCrashIfLratCheckFails_;
5047
5050 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5051 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5052 public bool DebugCrashIfLratCheckFails {
5053 get { if ((_hasBits8 & 2097152) != 0) { return debugCrashIfLratCheckFails_; } else { return DebugCrashIfLratCheckFailsDefaultValue; } }
5054 set {
5055 _hasBits8 |= 2097152;
5056 debugCrashIfLratCheckFails_ = value;
5057 }
5060 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5061 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5062 public bool HasDebugCrashIfLratCheckFails {
5063 get { return (_hasBits8 & 2097152) != 0; }
5064 }
5065
5066 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5067 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5069 _hasBits8 &= ~2097152;
5070 }
5071
5073 public const int UseOptimizationHintsFieldNumber = 35;
5074 private readonly static bool UseOptimizationHintsDefaultValue = true;
5075
5076 private bool useOptimizationHints_;
5077
5083 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5084 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5085 public bool UseOptimizationHints {
5086 get { if ((_hasBits0 & 65536) != 0) { return useOptimizationHints_; } else { return UseOptimizationHintsDefaultValue; } }
5087 set {
5088 _hasBits0 |= 65536;
5089 useOptimizationHints_ = value;
5090 }
5091 }
5093 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5094 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5095 public bool HasUseOptimizationHints {
5096 get { return (_hasBits0 & 65536) != 0; }
5097 }
5098 /// <summary>Clears the value of the "use_optimization_hints" field</summary>
5099 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5100 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5101 public void ClearUseOptimizationHints() {
5102 _hasBits0 &= ~65536;
5103 }
5106 public const int CoreMinimizationLevelFieldNumber = 50;
5107 private readonly static int CoreMinimizationLevelDefaultValue = 2;
5108
5109 private int coreMinimizationLevel_;
5116 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5117 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5118 public int CoreMinimizationLevel {
5119 get { if ((_hasBits0 & 268435456) != 0) { return coreMinimizationLevel_; } else { return CoreMinimizationLevelDefaultValue; } }
5120 set {
5121 _hasBits0 |= 268435456;
5122 coreMinimizationLevel_ = value;
5123 }
5124 }
5126 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5127 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5128 public bool HasCoreMinimizationLevel {
5129 get { return (_hasBits0 & 268435456) != 0; }
5130 }
5131 /// <summary>Clears the value of the "core_minimization_level" field</summary>
5132 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5133 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5134 public void ClearCoreMinimizationLevel() {
5135 _hasBits0 &= ~268435456;
5136 }
5139 public const int FindMultipleCoresFieldNumber = 84;
5140 private readonly static bool FindMultipleCoresDefaultValue = true;
5141
5142 private bool findMultipleCores_;
5147 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5148 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5149 public bool FindMultipleCores {
5150 get { if ((_hasBits1 & 67108864) != 0) { return findMultipleCores_; } else { return FindMultipleCoresDefaultValue; } }
5151 set {
5152 _hasBits1 |= 67108864;
5153 findMultipleCores_ = value;
5155 }
5157 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5158 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5159 public bool HasFindMultipleCores {
5160 get { return (_hasBits1 & 67108864) != 0; }
5161 }
5163 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5164 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5165 public void ClearFindMultipleCores() {
5166 _hasBits1 &= ~67108864;
5167 }
5168
5170 public const int CoverOptimizationFieldNumber = 89;
5171 private readonly static bool CoverOptimizationDefaultValue = true;
5172
5173 private bool coverOptimization_;
5179 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5180 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5181 public bool CoverOptimization {
5182 get { if ((_hasBits1 & -2147483648) != 0) { return coverOptimization_; } else { return CoverOptimizationDefaultValue; } }
5183 set {
5184 _hasBits1 |= -2147483648;
5185 coverOptimization_ = value;
5186 }
5187 }
5189 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5190 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5191 public bool HasCoverOptimization {
5192 get { return (_hasBits1 & -2147483648) != 0; }
5193 }
5195 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5196 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5197 public void ClearCoverOptimization() {
5198 _hasBits1 &= ~-2147483648;
5199 }
5200
5201 /// <summary>Field number for the "max_sat_assumption_order" field.</summary>
5202 public const int MaxSatAssumptionOrderFieldNumber = 51;
5203 private readonly static global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder MaxSatAssumptionOrderDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder.DefaultAssumptionOrder;
5204
5205 private global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder maxSatAssumptionOrder_;
5206 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5207 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5208 public global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder MaxSatAssumptionOrder {
5209 get { if ((_hasBits0 & 536870912) != 0) { return maxSatAssumptionOrder_; } else { return MaxSatAssumptionOrderDefaultValue; } }
5210 set {
5211 _hasBits0 |= 536870912;
5212 maxSatAssumptionOrder_ = value;
5213 }
5214 }
5216 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5217 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5218 public bool HasMaxSatAssumptionOrder {
5219 get { return (_hasBits0 & 536870912) != 0; }
5220 }
5222 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5223 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5224 public void ClearMaxSatAssumptionOrder() {
5225 _hasBits0 &= ~536870912;
5226 }
5229 public const int MaxSatReverseAssumptionOrderFieldNumber = 52;
5230 private readonly static bool MaxSatReverseAssumptionOrderDefaultValue = false;
5231
5232 private bool maxSatReverseAssumptionOrder_;
5233 /// <summary>
5234 /// If true, adds the assumption in the reverse order of the one defined by
5235 /// max_sat_assumption_order.
5236 /// </summary>
5237 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5238 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5239 public bool MaxSatReverseAssumptionOrder {
5240 get { if ((_hasBits0 & 1073741824) != 0) { return maxSatReverseAssumptionOrder_; } else { return MaxSatReverseAssumptionOrderDefaultValue; } }
5241 set {
5242 _hasBits0 |= 1073741824;
5243 maxSatReverseAssumptionOrder_ = value;
5245 }
5247 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5248 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5249 public bool HasMaxSatReverseAssumptionOrder {
5250 get { return (_hasBits0 & 1073741824) != 0; }
5251 }
5253 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5254 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5255 public void ClearMaxSatReverseAssumptionOrder() {
5256 _hasBits0 &= ~1073741824;
5257 }
5258
5260 public const int MaxSatStratificationFieldNumber = 53;
5261 private readonly static global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm MaxSatStratificationDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm.StratificationDescent;
5262
5263 private global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm maxSatStratification_;
5264 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5265 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5266 public global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm MaxSatStratification {
5267 get { if ((_hasBits0 & -2147483648) != 0) { return maxSatStratification_; } else { return MaxSatStratificationDefaultValue; } }
5268 set {
5269 _hasBits0 |= -2147483648;
5270 maxSatStratification_ = value;
5271 }
5272 }
5274 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5275 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5276 public bool HasMaxSatStratification {
5277 get { return (_hasBits0 & -2147483648) != 0; }
5278 }
5280 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5281 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5282 public void ClearMaxSatStratification() {
5283 _hasBits0 &= ~-2147483648;
5284 }
5287 public const int PropagationLoopDetectionFactorFieldNumber = 221;
5288 private readonly static double PropagationLoopDetectionFactorDefaultValue = 10D;
5289
5290 private double propagationLoopDetectionFactor_;
5291 /// <summary>
5292 /// Some search decisions might cause a really large number of propagations to
5293 /// happen when integer variables with large domains are only reduced by 1 at
5294 /// each step. If we propagate more than the number of variable times this
5295 /// parameters we try to take counter-measure. Setting this to 0.0 disable this
5296 /// feature.
5297 ///
5298 /// TODO(user): Setting this to something like 10 helps in most cases, but the
5299 /// code is currently buggy and can cause the solve to enter a bad state where
5300 /// no progress is made.
5301 /// </summary>
5302 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5303 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5304 public double PropagationLoopDetectionFactor {
5305 get { if ((_hasBits5 & 2048) != 0) { return propagationLoopDetectionFactor_; } else { return PropagationLoopDetectionFactorDefaultValue; } }
5306 set {
5307 _hasBits5 |= 2048;
5308 propagationLoopDetectionFactor_ = value;
5309 }
5310 }
5312 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5313 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5315 get { return (_hasBits5 & 2048) != 0; }
5316 }
5318 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5319 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5321 _hasBits5 &= ~2048;
5322 }
5326 private readonly static bool UsePrecedencesInDisjunctiveConstraintDefaultValue = true;
5327
5328 private bool usePrecedencesInDisjunctiveConstraint_;
5340 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5341 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5343 get { if ((_hasBits1 & 131072) != 0) { return usePrecedencesInDisjunctiveConstraint_; } else { return UsePrecedencesInDisjunctiveConstraintDefaultValue; } }
5344 set {
5345 _hasBits1 |= 131072;
5346 usePrecedencesInDisjunctiveConstraint_ = value;
5347 }
5348 }
5350 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5351 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5353 get { return (_hasBits1 & 131072) != 0; }
5354 }
5356 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5357 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5359 _hasBits1 &= ~131072;
5360 }
5361
5363 public const int TransitivePrecedencesWorkLimitFieldNumber = 327;
5364 private readonly static int TransitivePrecedencesWorkLimitDefaultValue = 1000000;
5365
5366 private int transitivePrecedencesWorkLimit_;
5372 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5373 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5375 get { if ((_hasBits8 & 2048) != 0) { return transitivePrecedencesWorkLimit_; } else { return TransitivePrecedencesWorkLimitDefaultValue; } }
5376 set {
5377 _hasBits8 |= 2048;
5378 transitivePrecedencesWorkLimit_ = value;
5379 }
5382 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5383 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5384 public bool HasTransitivePrecedencesWorkLimit {
5385 get { return (_hasBits8 & 2048) != 0; }
5386 }
5387
5388 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5389 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5391 _hasBits8 &= ~2048;
5392 }
5393
5395 public const int MaxSizeToCreatePrecedenceLiteralsInDisjunctiveFieldNumber = 229;
5396 private readonly static int MaxSizeToCreatePrecedenceLiteralsInDisjunctiveDefaultValue = 60;
5397
5398 private int maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
5399
5406 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5407 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5409 get { if ((_hasBits5 & 524288) != 0) { return maxSizeToCreatePrecedenceLiteralsInDisjunctive_; } else { return MaxSizeToCreatePrecedenceLiteralsInDisjunctiveDefaultValue; } }
5410 set {
5411 _hasBits5 |= 524288;
5412 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = value;
5413 }
5414 }
5416 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5417 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5418 public bool HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive {
5419 get { return (_hasBits5 & 524288) != 0; }
5420 }
5422 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5423 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5425 _hasBits5 &= ~524288;
5426 }
5427
5428 /// <summary>Field number for the "use_strong_propagation_in_disjunctive" field.</summary>
5429 public const int UseStrongPropagationInDisjunctiveFieldNumber = 230;
5430 private readonly static bool UseStrongPropagationInDisjunctiveDefaultValue = false;
5431
5432 private bool useStrongPropagationInDisjunctive_;
5436 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5437 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5439 get { if ((_hasBits5 & 1048576) != 0) { return useStrongPropagationInDisjunctive_; } else { return UseStrongPropagationInDisjunctiveDefaultValue; } }
5440 set {
5441 _hasBits5 |= 1048576;
5442 useStrongPropagationInDisjunctive_ = value;
5443 }
5444 }
5446 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5447 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5449 get { return (_hasBits5 & 1048576) != 0; }
5450 }
5452 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5453 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5454 public void ClearUseStrongPropagationInDisjunctive() {
5455 _hasBits5 &= ~1048576;
5457
5459 public const int UseDynamicPrecedenceInDisjunctiveFieldNumber = 263;
5460 private readonly static bool UseDynamicPrecedenceInDisjunctiveDefaultValue = false;
5461
5462 private bool useDynamicPrecedenceInDisjunctive_;
5465
5471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5474 get { if ((_hasBits6 & 8192) != 0) { return useDynamicPrecedenceInDisjunctive_; } else { return UseDynamicPrecedenceInDisjunctiveDefaultValue; } }
5475 set {
5476 _hasBits6 |= 8192;
5477 useDynamicPrecedenceInDisjunctive_ = value;
5478 }
5479 }
5481 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5482 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5483 public bool HasUseDynamicPrecedenceInDisjunctive {
5484 get { return (_hasBits6 & 8192) != 0; }
5485 }
5486 /// <summary>Clears the value of the "use_dynamic_precedence_in_disjunctive" field</summary>
5487 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5488 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5490 _hasBits6 &= ~8192;
5491 }
5495 private readonly static bool UseDynamicPrecedenceInCumulativeDefaultValue = false;
5496
5497 private bool useDynamicPrecedenceInCumulative_;
5498 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5499 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5501 get { if ((_hasBits6 & 262144) != 0) { return useDynamicPrecedenceInCumulative_; } else { return UseDynamicPrecedenceInCumulativeDefaultValue; } }
5502 set {
5503 _hasBits6 |= 262144;
5504 useDynamicPrecedenceInCumulative_ = value;
5505 }
5506 }
5508 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5509 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5510 public bool HasUseDynamicPrecedenceInCumulative {
5511 get { return (_hasBits6 & 262144) != 0; }
5514 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5515 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5516 public void ClearUseDynamicPrecedenceInCumulative() {
5517 _hasBits6 &= ~262144;
5518 }
5519
5521 public const int UseOverloadCheckerInCumulativeFieldNumber = 78;
5522 private readonly static bool UseOverloadCheckerInCumulativeDefaultValue = false;
5523
5524 private bool useOverloadCheckerInCumulative_;
5525
5528 /// additional level supplements the default level of reasoning as well as
5529 /// timetable edge finding.
5530 ///
5531 /// This always result in better propagation, but it is usually slow, so
5532 /// depending on the problem, turning this off may lead to a faster solution.
5533 /// </summary>
5534 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5535 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5536 public bool UseOverloadCheckerInCumulative {
5537 get { if ((_hasBits1 & 2097152) != 0) { return useOverloadCheckerInCumulative_; } else { return UseOverloadCheckerInCumulativeDefaultValue; } }
5538 set {
5539 _hasBits1 |= 2097152;
5540 useOverloadCheckerInCumulative_ = value;
5541 }
5542 }
5544 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5545 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5546 public bool HasUseOverloadCheckerInCumulative {
5547 get { return (_hasBits1 & 2097152) != 0; }
5548 }
5549 /// <summary>Clears the value of the "use_overload_checker_in_cumulative" field</summary>
5550 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5551 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5553 _hasBits1 &= ~2097152;
5554 }
5558 private readonly static bool UseConservativeScaleOverloadCheckerDefaultValue = false;
5559
5560 private bool useConservativeScaleOverloadChecker_;
5570 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5571 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5573 get { if ((_hasBits7 & 16) != 0) { return useConservativeScaleOverloadChecker_; } else { return UseConservativeScaleOverloadCheckerDefaultValue; } }
5574 set {
5575 _hasBits7 |= 16;
5576 useConservativeScaleOverloadChecker_ = value;
5577 }
5578 }
5580 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5581 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5582 public bool HasUseConservativeScaleOverloadChecker {
5583 get { return (_hasBits7 & 16) != 0; }
5584 }
5586 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5587 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5589 _hasBits7 &= ~16;
5590 }
5591
5592 /// <summary>Field number for the "use_timetable_edge_finding_in_cumulative" field.</summary>
5594 private readonly static bool UseTimetableEdgeFindingInCumulativeDefaultValue = false;
5595
5596 private bool useTimetableEdgeFindingInCumulative_;
5606 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5607 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5609 get { if ((_hasBits1 & 4194304) != 0) { return useTimetableEdgeFindingInCumulative_; } else { return UseTimetableEdgeFindingInCumulativeDefaultValue; } }
5610 set {
5611 _hasBits1 |= 4194304;
5612 useTimetableEdgeFindingInCumulative_ = value;
5614 }
5616 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5617 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5618 public bool HasUseTimetableEdgeFindingInCumulative {
5619 get { return (_hasBits1 & 4194304) != 0; }
5620 }
5622 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5623 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5625 _hasBits1 &= ~4194304;
5626 }
5627
5630 private readonly static int MaxNumIntervalsForTimetableEdgeFindingDefaultValue = 100;
5631
5632 private int maxNumIntervalsForTimetableEdgeFinding_;
5637 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5638 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5640 get { if ((_hasBits6 & 1024) != 0) { return maxNumIntervalsForTimetableEdgeFinding_; } else { return MaxNumIntervalsForTimetableEdgeFindingDefaultValue; } }
5641 set {
5642 _hasBits6 |= 1024;
5643 maxNumIntervalsForTimetableEdgeFinding_ = value;
5644 }
5645 }
5647 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5648 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5649 public bool HasMaxNumIntervalsForTimetableEdgeFinding {
5650 get { return (_hasBits6 & 1024) != 0; }
5651 }
5653 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5654 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5655 public void ClearMaxNumIntervalsForTimetableEdgeFinding() {
5656 _hasBits6 &= ~1024;
5657 }
5658
5661 private readonly static bool UseHardPrecedencesInCumulativeDefaultValue = false;
5662
5663 private bool useHardPrecedencesInCumulative_;
5666 /// a set of intervals in the same cumulative constraint.
5667 ///
5668 /// Experimental: by default we just use "direct" precedences. If
5669 /// exploit_all_precedences is true, we explore the full precedence graph. This
5670 /// assumes we have a DAG otherwise it fails.
5671 /// </summary>
5672 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5673 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5674 public bool UseHardPrecedencesInCumulative {
5675 get { if ((_hasBits5 & 128) != 0) { return useHardPrecedencesInCumulative_; } else { return UseHardPrecedencesInCumulativeDefaultValue; } }
5676 set {
5677 _hasBits5 |= 128;
5678 useHardPrecedencesInCumulative_ = value;
5679 }
5680 }
5681 /// <summary>Gets whether the "use_hard_precedences_in_cumulative" field is set</summary>
5682 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5683 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5685 get { return (_hasBits5 & 128) != 0; }
5686 }
5688 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5689 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5690 public void ClearUseHardPrecedencesInCumulative() {
5691 _hasBits5 &= ~128;
5692 }
5693
5694
5695 public const int ExploitAllPrecedencesFieldNumber = 220;
5696 private readonly static bool ExploitAllPrecedencesDefaultValue = false;
5698 private bool exploitAllPrecedences_;
5699 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5700 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5701 public bool ExploitAllPrecedences {
5702 get { if ((_hasBits5 & 1024) != 0) { return exploitAllPrecedences_; } else { return ExploitAllPrecedencesDefaultValue; } }
5703 set {
5704 _hasBits5 |= 1024;
5705 exploitAllPrecedences_ = value;
5706 }
5707 }
5709 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5710 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5711 public bool HasExploitAllPrecedences {
5712 get { return (_hasBits5 & 1024) != 0; }
5713 }
5715 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5716 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5718 _hasBits5 &= ~1024;
5719 }
5720
5722 public const int UseDisjunctiveConstraintInCumulativeFieldNumber = 80;
5723 private readonly static bool UseDisjunctiveConstraintInCumulativeDefaultValue = true;
5724
5725 private bool useDisjunctiveConstraintInCumulative_;
5727 /// When this is true, the cumulative constraint is reinforced with propagators
5728 /// from the disjunctive constraint to improve the inference on a set of tasks
5729 /// that are disjunctive at the root of the problem. This additional level
5730 /// supplements the default level of reasoning.
5731 ///
5732 /// Propagators of the cumulative constraint will not be used at all if all the
5733 /// tasks are disjunctive at root node.
5734 ///
5735 /// This always result in better propagation, but it is usually slow, so
5736 /// depending on the problem, turning this off may lead to a faster solution.
5737 /// </summary>
5738 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5739 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5741 get { if ((_hasBits1 & 8388608) != 0) { return useDisjunctiveConstraintInCumulative_; } else { return UseDisjunctiveConstraintInCumulativeDefaultValue; } }
5742 set {
5743 _hasBits1 |= 8388608;
5744 useDisjunctiveConstraintInCumulative_ = value;
5745 }
5746 }
5748 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5749 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5750 public bool HasUseDisjunctiveConstraintInCumulative {
5751 get { return (_hasBits1 & 8388608) != 0; }
5752 }
5754 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5755 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5757 _hasBits1 &= ~8388608;
5758 }
5759
5760 /// <summary>Field number for the "no_overlap_2d_boolean_relations_limit" field.</summary>
5761 public const int NoOverlap2DBooleanRelationsLimitFieldNumber = 321;
5762 private readonly static int NoOverlap2DBooleanRelationsLimitDefaultValue = 10;
5763
5764 private int noOverlap2DBooleanRelationsLimit_;
5780 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5781 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5783 get { if ((_hasBits8 & 32) != 0) { return noOverlap2DBooleanRelationsLimit_; } else { return NoOverlap2DBooleanRelationsLimitDefaultValue; } }
5784 set {
5785 _hasBits8 |= 32;
5786 noOverlap2DBooleanRelationsLimit_ = value;
5787 }
5788 }
5790 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5791 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5792 public bool HasNoOverlap2DBooleanRelationsLimit {
5793 get { return (_hasBits8 & 32) != 0; }
5794 }
5795 /// <summary>Clears the value of the "no_overlap_2d_boolean_relations_limit" field</summary>
5796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5799 _hasBits8 &= ~32;
5800 }
5803 public const int UseTimetablingInNoOverlap2DFieldNumber = 200;
5804 private readonly static bool UseTimetablingInNoOverlap2DDefaultValue = false;
5805
5806 private bool useTimetablingInNoOverlap2D_;
5814 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5815 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5816 public bool UseTimetablingInNoOverlap2D {
5817 get { if ((_hasBits4 & 1073741824) != 0) { return useTimetablingInNoOverlap2D_; } else { return UseTimetablingInNoOverlap2DDefaultValue; } }
5818 set {
5819 _hasBits4 |= 1073741824;
5820 useTimetablingInNoOverlap2D_ = value;
5821 }
5822 }
5824 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5825 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5826 public bool HasUseTimetablingInNoOverlap2D {
5827 get { return (_hasBits4 & 1073741824) != 0; }
5828 }
5829 /// <summary>Clears the value of the "use_timetabling_in_no_overlap_2d" field</summary>
5830 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5831 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5832 public void ClearUseTimetablingInNoOverlap2D() {
5833 _hasBits4 &= ~1073741824;
5834 }
5835
5836
5837 public const int UseEnergeticReasoningInNoOverlap2DFieldNumber = 213;
5838 private readonly static bool UseEnergeticReasoningInNoOverlap2DDefaultValue = false;
5840 private bool useEnergeticReasoningInNoOverlap2D_;
5842
5845 /// </summary>
5846 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5847 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5849 get { if ((_hasBits5 & 32) != 0) { return useEnergeticReasoningInNoOverlap2D_; } else { return UseEnergeticReasoningInNoOverlap2DDefaultValue; } }
5850 set {
5851 _hasBits5 |= 32;
5852 useEnergeticReasoningInNoOverlap2D_ = value;
5853 }
5854 }
5856 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5857 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5858 public bool HasUseEnergeticReasoningInNoOverlap2D {
5859 get { return (_hasBits5 & 32) != 0; }
5860 }
5862 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5863 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5865 _hasBits5 &= ~32;
5866 }
5867
5869 public const int UseAreaEnergeticReasoningInNoOverlap2DFieldNumber = 271;
5870 private readonly static bool UseAreaEnergeticReasoningInNoOverlap2DDefaultValue = false;
5871
5872 private bool useAreaEnergeticReasoningInNoOverlap2D_;
5873 /// <summary>
5874 /// When this is true, the no_overlap_2d constraint is reinforced with
5875 /// an energetic reasoning that uses an area-based energy. This can be combined
5876 /// with the two other overlap heuristics above.
5877 /// </summary>
5878 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5879 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5881 get { if ((_hasBits6 & 2097152) != 0) { return useAreaEnergeticReasoningInNoOverlap2D_; } else { return UseAreaEnergeticReasoningInNoOverlap2DDefaultValue; } }
5882 set {
5883 _hasBits6 |= 2097152;
5884 useAreaEnergeticReasoningInNoOverlap2D_ = value;
5885 }
5886 }
5888 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5889 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5890 public bool HasUseAreaEnergeticReasoningInNoOverlap2D {
5891 get { return (_hasBits6 & 2097152) != 0; }
5892 }
5894 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5895 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5897 _hasBits6 &= ~2097152;
5898 }
5899
5901 public const int UseTryEdgeReasoningInNoOverlap2DFieldNumber = 299;
5902 private readonly static bool UseTryEdgeReasoningInNoOverlap2DDefaultValue = false;
5903
5904 private bool useTryEdgeReasoningInNoOverlap2D_;
5905 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5906 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5908 get { if ((_hasBits7 & 65536) != 0) { return useTryEdgeReasoningInNoOverlap2D_; } else { return UseTryEdgeReasoningInNoOverlap2DDefaultValue; } }
5909 set {
5910 _hasBits7 |= 65536;
5911 useTryEdgeReasoningInNoOverlap2D_ = value;
5912 }
5913 }
5914
5915 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5916 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5918 get { return (_hasBits7 & 65536) != 0; }
5919 }
5921 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5922 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5923 public void ClearUseTryEdgeReasoningInNoOverlap2D() {
5924 _hasBits7 &= ~65536;
5925 }
5926
5927 /// <summary>Field number for the "max_pairs_pairwise_reasoning_in_no_overlap_2d" field.</summary>
5929 private readonly static int MaxPairsPairwiseReasoningInNoOverlap2DDefaultValue = 1250;
5930
5931 private int maxPairsPairwiseReasoningInNoOverlap2D_;
5934
5937 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5938 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5940 get { if ((_hasBits6 & 67108864) != 0) { return maxPairsPairwiseReasoningInNoOverlap2D_; } else { return MaxPairsPairwiseReasoningInNoOverlap2DDefaultValue; } }
5941 set {
5942 _hasBits6 |= 67108864;
5943 maxPairsPairwiseReasoningInNoOverlap2D_ = value;
5944 }
5945 }
5946
5947 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5948 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5950 get { return (_hasBits6 & 67108864) != 0; }
5951 }
5953 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5954 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5956 _hasBits6 &= ~67108864;
5957 }
5958
5960 public const int MaximumRegionsToSplitInDisconnectedNoOverlap2DFieldNumber = 315;
5961 private readonly static int MaximumRegionsToSplitInDisconnectedNoOverlap2DDefaultValue = 0;
5962
5963 private int maximumRegionsToSplitInDisconnectedNoOverlap2D_;
5964 /// <summary>
5965 /// Detects when the space where items of a no_overlap_2d constraint can placed
5966 /// is disjoint (ie., fixed boxes split the domain). When it is the case, we
5967 /// can introduce a boolean for each pair &lt;item, component> encoding whether
5968 /// the item is in the component or not. Then we replace the original
5969 /// no_overlap_2d constraint by one no_overlap_2d constraint for each
5970 /// component, with the new booleans as the enforcement_literal of the
5971 /// intervals. This is equivalent to expanding the original no_overlap_2d
5972 /// constraint into a bin packing problem with each connected component being a
5973 /// bin. This heuristic is only done when the number of regions to split
5974 /// is less than this parameter and &lt;= 1 disables it.
5975 /// </summary>
5976 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5977 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5979 get { if ((_hasBits8 & 1) != 0) { return maximumRegionsToSplitInDisconnectedNoOverlap2D_; } else { return MaximumRegionsToSplitInDisconnectedNoOverlap2DDefaultValue; } }
5980 set {
5981 _hasBits8 |= 1;
5982 maximumRegionsToSplitInDisconnectedNoOverlap2D_ = value;
5983 }
5984 }
5986 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5987 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5989 get { return (_hasBits8 & 1) != 0; }
5990 }
5992 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5993 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
5994 public void ClearMaximumRegionsToSplitInDisconnectedNoOverlap2D() {
5995 _hasBits8 &= ~1;
5997
5999 public const int UseLinear3ForNoOverlap2DPrecedencesFieldNumber = 323;
6000 private readonly static bool UseLinear3ForNoOverlap2DPrecedencesDefaultValue = true;
6001
6002 private bool useLinear3ForNoOverlap2DPrecedences_;
6005
6011 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6012 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6014 get { if ((_hasBits8 & 128) != 0) { return useLinear3ForNoOverlap2DPrecedences_; } else { return UseLinear3ForNoOverlap2DPrecedencesDefaultValue; } }
6015 set {
6016 _hasBits8 |= 128;
6017 useLinear3ForNoOverlap2DPrecedences_ = value;
6018 }
6019 }
6021 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6022 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6023 public bool HasUseLinear3ForNoOverlap2DPrecedences {
6024 get { return (_hasBits8 & 128) != 0; }
6027 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6028 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6029 public void ClearUseLinear3ForNoOverlap2DPrecedences() {
6030 _hasBits8 &= ~128;
6031 }
6032
6034 public const int UseDualSchedulingHeuristicsFieldNumber = 214;
6035 private readonly static bool UseDualSchedulingHeuristicsDefaultValue = true;
6036
6037 private bool useDualSchedulingHeuristics_;
6038
6041 /// as it modifies the reduced_cost, lb_tree_search, and probing workers.
6042 /// </summary>
6043 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6044 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6045 public bool UseDualSchedulingHeuristics {
6046 get { if ((_hasBits5 & 64) != 0) { return useDualSchedulingHeuristics_; } else { return UseDualSchedulingHeuristicsDefaultValue; } }
6047 set {
6048 _hasBits5 |= 64;
6049 useDualSchedulingHeuristics_ = value;
6050 }
6051 }
6053 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6054 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6055 public bool HasUseDualSchedulingHeuristics {
6056 get { return (_hasBits5 & 64) != 0; }
6057 }
6059 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6060 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6061 public void ClearUseDualSchedulingHeuristics() {
6062 _hasBits5 &= ~64;
6063 }
6064
6066 public const int UseAllDifferentForCircuitFieldNumber = 311;
6067 private readonly static bool UseAllDifferentForCircuitDefaultValue = false;
6068
6069 private bool useAllDifferentForCircuit_;
6070 /// <summary>
6071 /// Turn on extra propagation for the circuit constraint.
6072 /// This can be quite slow.
6073 /// </summary>
6074 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6075 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6077 get { if ((_hasBits7 & 268435456) != 0) { return useAllDifferentForCircuit_; } else { return UseAllDifferentForCircuitDefaultValue; } }
6078 set {
6079 _hasBits7 |= 268435456;
6080 useAllDifferentForCircuit_ = value;
6082 }
6084 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6085 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6086 public bool HasUseAllDifferentForCircuit {
6087 get { return (_hasBits7 & 268435456) != 0; }
6088 }
6090 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6091 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6093 _hasBits7 &= ~268435456;
6094 }
6095
6097 public const int RoutingCutSubsetSizeForBinaryRelationBoundFieldNumber = 312;
6098 private readonly static int RoutingCutSubsetSizeForBinaryRelationBoundDefaultValue = 0;
6099
6100 private int routingCutSubsetSizeForBinaryRelationBound_;
6102 /// If the size of a subset of nodes of a RoutesConstraint is less than this
6103 /// value, use linear constraints of size 1 and 2 (such as capacity and time
6104 /// window constraints) enforced by the arc literals to compute cuts for this
6105 /// subset (unless the subset size is less than
6106 /// routing_cut_subset_size_for_tight_binary_relation_bound, in which case the
6107 /// corresponding algorithm is used instead). The algorithm for these cuts has
6108 /// a O(n^3) complexity, where n is the subset size. Hence the value of this
6109 /// parameter should not be too large (e.g. 10 or 20).
6110 /// </summary>
6111 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6112 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6114 get { if ((_hasBits7 & 536870912) != 0) { return routingCutSubsetSizeForBinaryRelationBound_; } else { return RoutingCutSubsetSizeForBinaryRelationBoundDefaultValue; } }
6115 set {
6116 _hasBits7 |= 536870912;
6117 routingCutSubsetSizeForBinaryRelationBound_ = value;
6118 }
6119 }
6121 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6122 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6124 get { return (_hasBits7 & 536870912) != 0; }
6125 }
6127 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6128 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6129 public void ClearRoutingCutSubsetSizeForBinaryRelationBound() {
6130 _hasBits7 &= ~536870912;
6131 }
6132
6133 /// <summary>Field number for the "routing_cut_subset_size_for_tight_binary_relation_bound" field.</summary>
6135 private readonly static int RoutingCutSubsetSizeForTightBinaryRelationBoundDefaultValue = 0;
6136
6137 private int routingCutSubsetSizeForTightBinaryRelationBound_;
6139 /// Similar to above, but with a different algorithm producing better cuts, at
6140 /// the price of a higher O(2^n) complexity, where n is the subset size. Hence
6141 /// the value of this parameter should be small (e.g. less than 10).
6142 /// </summary>
6143 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6144 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6146 get { if ((_hasBits7 & 1073741824) != 0) { return routingCutSubsetSizeForTightBinaryRelationBound_; } else { return RoutingCutSubsetSizeForTightBinaryRelationBoundDefaultValue; } }
6147 set {
6148 _hasBits7 |= 1073741824;
6149 routingCutSubsetSizeForTightBinaryRelationBound_ = value;
6150 }
6151 }
6153 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6154 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6155 public bool HasRoutingCutSubsetSizeForTightBinaryRelationBound {
6156 get { return (_hasBits7 & 1073741824) != 0; }
6157 }
6159 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6160 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6162 _hasBits7 &= ~1073741824;
6163 }
6164
6166 public const int RoutingCutSubsetSizeForExactBinaryRelationBoundFieldNumber = 316;
6167 private readonly static int RoutingCutSubsetSizeForExactBinaryRelationBoundDefaultValue = 8;
6168
6169 private int routingCutSubsetSizeForExactBinaryRelationBound_;
6170 /// <summary>
6171 /// Similar to above, but with an even stronger algorithm in O(n!). We try to
6172 /// be defensive and abort early or not run that often. Still the value of
6173 /// that parameter shouldn't really be much more than 10.
6174 /// </summary>
6175 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6176 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6178 get { if ((_hasBits8 & 2) != 0) { return routingCutSubsetSizeForExactBinaryRelationBound_; } else { return RoutingCutSubsetSizeForExactBinaryRelationBoundDefaultValue; } }
6179 set {
6180 _hasBits8 |= 2;
6181 routingCutSubsetSizeForExactBinaryRelationBound_ = value;
6182 }
6183 }
6185 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6186 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6187 public bool HasRoutingCutSubsetSizeForExactBinaryRelationBound {
6188 get { return (_hasBits8 & 2) != 0; }
6189 }
6191 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6192 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6194 _hasBits8 &= ~2;
6195 }
6196
6198 public const int RoutingCutSubsetSizeForShortestPathsBoundFieldNumber = 318;
6199 private readonly static int RoutingCutSubsetSizeForShortestPathsBoundDefaultValue = 8;
6200
6201 private int routingCutSubsetSizeForShortestPathsBound_;
6202 /// <summary>
6203 /// Similar to routing_cut_subset_size_for_exact_binary_relation_bound but
6204 /// use a bound based on shortest path distances (which respect triangular
6205 /// inequality). This allows to derive bounds that are valid for any superset
6206 /// of a given subset. This is slow, so it shouldn't really be larger than 10.
6207 /// </summary>
6208 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6209 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6211 get { if ((_hasBits8 & 8) != 0) { return routingCutSubsetSizeForShortestPathsBound_; } else { return RoutingCutSubsetSizeForShortestPathsBoundDefaultValue; } }
6212 set {
6213 _hasBits8 |= 8;
6214 routingCutSubsetSizeForShortestPathsBound_ = value;
6215 }
6216 }
6218 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6219 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6220 public bool HasRoutingCutSubsetSizeForShortestPathsBound {
6221 get { return (_hasBits8 & 8) != 0; }
6222 }
6224 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6225 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6227 _hasBits8 &= ~8;
6228 }
6229
6231 public const int RoutingCutDpEffortFieldNumber = 314;
6232 private readonly static double RoutingCutDpEffortDefaultValue = 1e+07D;
6233
6234 private double routingCutDpEffort_;
6237
6240 /// </summary>
6241 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6242 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6243 public double RoutingCutDpEffort {
6244 get { if ((_hasBits7 & -2147483648) != 0) { return routingCutDpEffort_; } else { return RoutingCutDpEffortDefaultValue; } }
6245 set {
6246 _hasBits7 |= -2147483648;
6247 routingCutDpEffort_ = value;
6248 }
6249 }
6251 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6252 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6253 public bool HasRoutingCutDpEffort {
6254 get { return (_hasBits7 & -2147483648) != 0; }
6255 }
6257 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6258 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6259 public void ClearRoutingCutDpEffort() {
6260 _hasBits7 &= ~-2147483648;
6261 }
6262
6264 public const int RoutingCutMaxInfeasiblePathLengthFieldNumber = 317;
6265 private readonly static int RoutingCutMaxInfeasiblePathLengthDefaultValue = 6;
6266
6267 private int routingCutMaxInfeasiblePathLength_;
6270
6272 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6273 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6275 get { if ((_hasBits8 & 4) != 0) { return routingCutMaxInfeasiblePathLength_; } else { return RoutingCutMaxInfeasiblePathLengthDefaultValue; } }
6276 set {
6277 _hasBits8 |= 4;
6278 routingCutMaxInfeasiblePathLength_ = value;
6279 }
6280 }
6282 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6283 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6284 public bool HasRoutingCutMaxInfeasiblePathLength {
6285 get { return (_hasBits8 & 4) != 0; }
6286 }
6288 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6289 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6291 _hasBits8 &= ~4;
6292 }
6293
6295 public const int SearchBranchingFieldNumber = 82;
6296 private readonly static global::Google.OrTools.Sat.SatParameters.Types.SearchBranching SearchBranchingDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.SearchBranching.AutomaticSearch;
6297
6298 private global::Google.OrTools.Sat.SatParameters.Types.SearchBranching searchBranching_;
6299 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6300 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6301 public global::Google.OrTools.Sat.SatParameters.Types.SearchBranching SearchBranching {
6302 get { if ((_hasBits1 & 16777216) != 0) { return searchBranching_; } else { return SearchBranchingDefaultValue; } }
6303 set {
6304 _hasBits1 |= 16777216;
6305 searchBranching_ = value;
6307 }
6309 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6310 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6312 get { return (_hasBits1 & 16777216) != 0; }
6313 }
6315 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6316 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6317 public void ClearSearchBranching() {
6318 _hasBits1 &= ~16777216;
6319 }
6320
6321 /// <summary>Field number for the "hint_conflict_limit" field.</summary>
6322 public const int HintConflictLimitFieldNumber = 153;
6323 private readonly static int HintConflictLimitDefaultValue = 10;
6324
6325 private int hintConflictLimit_;
6328
6329 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6330 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6332 get { if ((_hasBits3 & 524288) != 0) { return hintConflictLimit_; } else { return HintConflictLimitDefaultValue; } }
6333 set {
6334 _hasBits3 |= 524288;
6335 hintConflictLimit_ = value;
6336 }
6339 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6340 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6341 public bool HasHintConflictLimit {
6342 get { return (_hasBits3 & 524288) != 0; }
6343 }
6345 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6346 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6347 public void ClearHintConflictLimit() {
6348 _hasBits3 &= ~524288;
6349 }
6350
6352 public const int RepairHintFieldNumber = 167;
6353 private readonly static bool RepairHintDefaultValue = false;
6354
6355 private bool repairHint_;
6358 /// search terminates after the 'hint_conflict_limit' is reached and the solver
6359 /// switches to regular search. If false, then we do a FIXED_SEARCH using the
6360 /// hint until the hint_conflict_limit is reached.
6361 /// </summary>
6362 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6363 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6364 public bool RepairHint {
6365 get { if ((_hasBits4 & 1) != 0) { return repairHint_; } else { return RepairHintDefaultValue; } }
6366 set {
6367 _hasBits4 |= 1;
6368 repairHint_ = value;
6370 }
6372 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6373 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6374 public bool HasRepairHint {
6375 get { return (_hasBits4 & 1) != 0; }
6376 }
6378 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6379 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6380 public void ClearRepairHint() {
6381 _hasBits4 &= ~1;
6382 }
6383
6385 public const int FixVariablesToTheirHintedValueFieldNumber = 192;
6386 private readonly static bool FixVariablesToTheirHintedValueDefaultValue = false;
6387
6388 private bool fixVariablesToTheirHintedValue_;
6391
6393 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6394 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6395 public bool FixVariablesToTheirHintedValue {
6396 get { if ((_hasBits4 & 4194304) != 0) { return fixVariablesToTheirHintedValue_; } else { return FixVariablesToTheirHintedValueDefaultValue; } }
6397 set {
6398 _hasBits4 |= 4194304;
6399 fixVariablesToTheirHintedValue_ = value;
6400 }
6401 }
6403 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6404 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6405 public bool HasFixVariablesToTheirHintedValue {
6406 get { return (_hasBits4 & 4194304) != 0; }
6407 }
6409 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6410 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6412 _hasBits4 &= ~4194304;
6413 }
6414
6416 public const int UseProbingSearchFieldNumber = 176;
6417 private readonly static bool UseProbingSearchDefaultValue = false;
6418
6419 private bool useProbingSearch_;
6421 /// If true, search will continuously probe Boolean variables, and integer
6422 /// variable bounds. This parameter is set to true in parallel on the probing
6423 /// worker.
6424 /// </summary>
6425 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6426 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6427 public bool UseProbingSearch {
6428 get { if ((_hasBits4 & 256) != 0) { return useProbingSearch_; } else { return UseProbingSearchDefaultValue; } }
6429 set {
6430 _hasBits4 |= 256;
6431 useProbingSearch_ = value;
6433 }
6435 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6436 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6437 public bool HasUseProbingSearch {
6438 get { return (_hasBits4 & 256) != 0; }
6439 }
6441 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6442 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6443 public void ClearUseProbingSearch() {
6444 _hasBits4 &= ~256;
6445 }
6446
6448 public const int UseExtendedProbingFieldNumber = 269;
6449 private readonly static bool UseExtendedProbingDefaultValue = true;
6450
6451 private bool useExtendedProbing_;
6452 /// <summary>
6453 /// Use extended probing (probe bool_or, at_most_one, exactly_one).
6454 /// </summary>
6455 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6456 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6457 public bool UseExtendedProbing {
6458 get { if ((_hasBits6 & 524288) != 0) { return useExtendedProbing_; } else { return UseExtendedProbingDefaultValue; } }
6459 set {
6460 _hasBits6 |= 524288;
6461 useExtendedProbing_ = value;
6462 }
6465 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6466 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6467 public bool HasUseExtendedProbing {
6468 get { return (_hasBits6 & 524288) != 0; }
6469 }
6471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6473 public void ClearUseExtendedProbing() {
6474 _hasBits6 &= ~524288;
6475 }
6476
6478 public const int ProbingNumCombinationsLimitFieldNumber = 272;
6479 private readonly static int ProbingNumCombinationsLimitDefaultValue = 20000;
6480
6481 private int probingNumCombinationsLimit_;
6484 /// </summary>
6485 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6486 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6487 public int ProbingNumCombinationsLimit {
6488 get { if ((_hasBits6 & 4194304) != 0) { return probingNumCombinationsLimit_; } else { return ProbingNumCombinationsLimitDefaultValue; } }
6489 set {
6490 _hasBits6 |= 4194304;
6491 probingNumCombinationsLimit_ = value;
6492 }
6493 }
6495 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6496 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6497 public bool HasProbingNumCombinationsLimit {
6498 get { return (_hasBits6 & 4194304) != 0; }
6499 }
6501 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6502 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6503 public void ClearProbingNumCombinationsLimit() {
6504 _hasBits6 &= ~4194304;
6505 }
6506
6508 public const int ShavingDeterministicTimeInProbingSearchFieldNumber = 204;
6509 private readonly static double ShavingDeterministicTimeInProbingSearchDefaultValue = 0.001D;
6510
6511 private double shavingDeterministicTimeInProbingSearch_;
6514 /// upper bound of a variable are infeasible) to the probing search. (&lt;= 0
6515 /// disables it).
6516 /// </summary>
6517 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6518 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6520 get { if ((_hasBits5 & 4) != 0) { return shavingDeterministicTimeInProbingSearch_; } else { return ShavingDeterministicTimeInProbingSearchDefaultValue; } }
6521 set {
6522 _hasBits5 |= 4;
6523 shavingDeterministicTimeInProbingSearch_ = value;
6524 }
6527 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6528 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6529 public bool HasShavingDeterministicTimeInProbingSearch {
6530 get { return (_hasBits5 & 4) != 0; }
6531 }
6533 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6534 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6536 _hasBits5 &= ~4;
6537 }
6538
6540 public const int ShavingSearchDeterministicTimeFieldNumber = 205;
6541 private readonly static double ShavingSearchDeterministicTimeDefaultValue = 0.1D;
6542
6543 private double shavingSearchDeterministicTime_;
6544 /// <summary>
6545 /// Specifies the amount of deterministic time spent of each try at shaving a
6546 /// bound in the shaving search.
6547 /// </summary>
6548 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6549 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6551 get { if ((_hasBits5 & 8) != 0) { return shavingSearchDeterministicTime_; } else { return ShavingSearchDeterministicTimeDefaultValue; } }
6552 set {
6553 _hasBits5 |= 8;
6554 shavingSearchDeterministicTime_ = value;
6556 }
6558 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6559 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6560 public bool HasShavingSearchDeterministicTime {
6561 get { return (_hasBits5 & 8) != 0; }
6562 }
6564 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6565 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6567 _hasBits5 &= ~8;
6568 }
6569
6571 public const int ShavingSearchThresholdFieldNumber = 290;
6572 private readonly static long ShavingSearchThresholdDefaultValue = 64L;
6573
6574 private long shavingSearchThreshold_;
6576 /// Specifies the threshold between two modes in the shaving procedure.
6577 /// If the range of the variable/objective is less than this threshold, then
6578 /// the shaving procedure will try to remove values one by one. Otherwise, it
6579 /// will try to remove one range at a time.
6580 /// </summary>
6581 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6582 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6583 public long ShavingSearchThreshold {
6584 get { if ((_hasBits7 & 256) != 0) { return shavingSearchThreshold_; } else { return ShavingSearchThresholdDefaultValue; } }
6585 set {
6586 _hasBits7 |= 256;
6587 shavingSearchThreshold_ = value;
6588 }
6589 }
6591 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6592 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6593 public bool HasShavingSearchThreshold {
6594 get { return (_hasBits7 & 256) != 0; }
6595 }
6597 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6598 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6599 public void ClearShavingSearchThreshold() {
6600 _hasBits7 &= ~256;
6601 }
6602
6604 public const int UseObjectiveLbSearchFieldNumber = 228;
6605 private readonly static bool UseObjectiveLbSearchDefaultValue = false;
6606
6607 private bool useObjectiveLbSearch_;
6610
6612 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6613 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6614 public bool UseObjectiveLbSearch {
6615 get { if ((_hasBits5 & 262144) != 0) { return useObjectiveLbSearch_; } else { return UseObjectiveLbSearchDefaultValue; } }
6616 set {
6617 _hasBits5 |= 262144;
6618 useObjectiveLbSearch_ = value;
6619 }
6620 }
6622 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6623 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6624 public bool HasUseObjectiveLbSearch {
6625 get { return (_hasBits5 & 262144) != 0; }
6626 }
6628 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6629 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6631 _hasBits5 &= ~262144;
6632 }
6633
6635 public const int UseObjectiveShavingSearchFieldNumber = 253;
6636 private readonly static bool UseObjectiveShavingSearchDefaultValue = false;
6637
6638 private bool useObjectiveShavingSearch_;
6640 /// This search differs from the previous search as it will not use assumptions
6641 /// to bound the objective, and it will recreate a full model with the
6642 /// hardcoded objective value.
6643 /// </summary>
6644 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6645 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6647 get { if ((_hasBits6 & 16) != 0) { return useObjectiveShavingSearch_; } else { return UseObjectiveShavingSearchDefaultValue; } }
6648 set {
6649 _hasBits6 |= 16;
6650 useObjectiveShavingSearch_ = value;
6652 }
6654 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6655 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6656 public bool HasUseObjectiveShavingSearch {
6657 get { return (_hasBits6 & 16) != 0; }
6658 }
6660 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6661 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6662 public void ClearUseObjectiveShavingSearch() {
6663 _hasBits6 &= ~16;
6664 }
6665
6667 public const int VariablesShavingLevelFieldNumber = 289;
6668 private readonly static int VariablesShavingLevelDefaultValue = -1;
6669
6670 private int variablesShavingLevel_;
6671 /// <summary>
6672 /// This search takes all Boolean or integer variables, and maximize or
6673 /// minimize them in order to reduce their domain. -1 is automatic, otherwise
6674 /// value 0 disables it, and 1, 2, or 3 changes something.
6675 /// </summary>
6676 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6677 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6678 public int VariablesShavingLevel {
6679 get { if ((_hasBits7 & 128) != 0) { return variablesShavingLevel_; } else { return VariablesShavingLevelDefaultValue; } }
6680 set {
6681 _hasBits7 |= 128;
6682 variablesShavingLevel_ = value;
6683 }
6684 }
6686 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6687 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6688 public bool HasVariablesShavingLevel {
6689 get { return (_hasBits7 & 128) != 0; }
6690 }
6692 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6693 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6694 public void ClearVariablesShavingLevel() {
6695 _hasBits7 &= ~128;
6696 }
6697
6699 public const int PseudoCostReliabilityThresholdFieldNumber = 123;
6700 private readonly static long PseudoCostReliabilityThresholdDefaultValue = 100L;
6701
6702 private long pseudoCostReliabilityThreshold_;
6703 /// <summary>
6704 /// The solver ignores the pseudo costs of variables with number of recordings
6705 /// less than this threshold.
6706 /// </summary>
6707 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6708 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6710 get { if ((_hasBits2 & 134217728) != 0) { return pseudoCostReliabilityThreshold_; } else { return PseudoCostReliabilityThresholdDefaultValue; } }
6711 set {
6712 _hasBits2 |= 134217728;
6713 pseudoCostReliabilityThreshold_ = value;
6715 }
6717 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6718 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6719 public bool HasPseudoCostReliabilityThreshold {
6720 get { return (_hasBits2 & 134217728) != 0; }
6721 }
6723 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6724 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6726 _hasBits2 &= ~134217728;
6727 }
6728
6730 public const int OptimizeWithCoreFieldNumber = 83;
6731 private readonly static bool OptimizeWithCoreDefaultValue = false;
6732
6733 private bool optimizeWithCore_;
6735 /// The default optimization method is a simple "linear scan", each time trying
6736 /// to find a better solution than the previous one. If this is true, then we
6737 /// use a core-based approach (like in max-SAT) when we try to increase the
6738 /// lower bound instead.
6739 /// </summary>
6740 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6741 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6742 public bool OptimizeWithCore {
6743 get { if ((_hasBits1 & 33554432) != 0) { return optimizeWithCore_; } else { return OptimizeWithCoreDefaultValue; } }
6744 set {
6745 _hasBits1 |= 33554432;
6746 optimizeWithCore_ = value;
6747 }
6748 }
6750 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6751 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6752 public bool HasOptimizeWithCore {
6753 get { return (_hasBits1 & 33554432) != 0; }
6754 }
6756 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6757 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6758 public void ClearOptimizeWithCore() {
6759 _hasBits1 &= ~33554432;
6760 }
6761
6763 public const int OptimizeWithLbTreeSearchFieldNumber = 188;
6764 private readonly static bool OptimizeWithLbTreeSearchDefaultValue = false;
6765
6766 private bool optimizeWithLbTreeSearch_;
6769
6772 /// the worst open node in the tree.
6773 /// </summary>
6774 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6775 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6776 public bool OptimizeWithLbTreeSearch {
6777 get { if ((_hasBits4 & 262144) != 0) { return optimizeWithLbTreeSearch_; } else { return OptimizeWithLbTreeSearchDefaultValue; } }
6778 set {
6779 _hasBits4 |= 262144;
6780 optimizeWithLbTreeSearch_ = value;
6781 }
6782 }
6784 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6785 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6786 public bool HasOptimizeWithLbTreeSearch {
6787 get { return (_hasBits4 & 262144) != 0; }
6788 }
6789 /// <summary>Clears the value of the "optimize_with_lb_tree_search" field</summary>
6790 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6791 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6792 public void ClearOptimizeWithLbTreeSearch() {
6793 _hasBits4 &= ~262144;
6794 }
6795
6796
6797 public const int SaveLpBasisInLbTreeSearchFieldNumber = 284;
6798 private readonly static bool SaveLpBasisInLbTreeSearchDefaultValue = false;
6800 private bool saveLpBasisInLbTreeSearch_;
6802
6805 ///
6806 /// It currently works okay if we do not change the lp with cuts or
6807 /// simplification... More work is needed to make it robust in all cases.
6808 /// </summary>
6809 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6810 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6811 public bool SaveLpBasisInLbTreeSearch {
6812 get { if ((_hasBits7 & 4) != 0) { return saveLpBasisInLbTreeSearch_; } else { return SaveLpBasisInLbTreeSearchDefaultValue; } }
6813 set {
6814 _hasBits7 |= 4;
6815 saveLpBasisInLbTreeSearch_ = value;
6816 }
6817 }
6819 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6820 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6821 public bool HasSaveLpBasisInLbTreeSearch {
6822 get { return (_hasBits7 & 4) != 0; }
6825 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6826 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6827 public void ClearSaveLpBasisInLbTreeSearch() {
6828 _hasBits7 &= ~4;
6829 }
6830
6832 public const int BinarySearchNumConflictsFieldNumber = 99;
6833 private readonly static int BinarySearchNumConflictsDefaultValue = -1;
6834
6835 private int binarySearchNumConflicts_;
6836
6839 /// under this amount of conflict. This can quickly reduce the objective domain
6840 /// on some problems.
6841 /// </summary>
6842 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6843 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6845 get { if ((_hasBits2 & 128) != 0) { return binarySearchNumConflicts_; } else { return BinarySearchNumConflictsDefaultValue; } }
6846 set {
6847 _hasBits2 |= 128;
6848 binarySearchNumConflicts_ = value;
6849 }
6850 }
6852 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6853 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6854 public bool HasBinarySearchNumConflicts {
6855 get { return (_hasBits2 & 128) != 0; }
6856 }
6858 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6859 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6860 public void ClearBinarySearchNumConflicts() {
6861 _hasBits2 &= ~128;
6862 }
6863
6865 public const int OptimizeWithMaxHsFieldNumber = 85;
6866 private readonly static bool OptimizeWithMaxHsDefaultValue = false;
6867
6868 private bool optimizeWithMaxHs_;
6869 /// <summary>
6870 /// This has no effect if optimize_with_core is false. If true, use a different
6871 /// core-based algorithm similar to the max-HS algo for max-SAT. This is a
6872 /// hybrid MIP/CP approach and it uses a MIP solver in addition to the CP/SAT
6873 /// one. This is also related to the PhD work of tobyodavies@
6874 /// "Automatic Logic-Based Benders Decomposition with MiniZinc"
6875 /// http://aaai.org/ocs/index.php/AAAI/AAAI17/paper/view/14489
6876 /// </summary>
6877 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6878 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6879 public bool OptimizeWithMaxHs {
6880 get { if ((_hasBits1 & 134217728) != 0) { return optimizeWithMaxHs_; } else { return OptimizeWithMaxHsDefaultValue; } }
6881 set {
6882 _hasBits1 |= 134217728;
6883 optimizeWithMaxHs_ = value;
6884 }
6885 }
6887 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6888 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6889 public bool HasOptimizeWithMaxHs {
6890 get { return (_hasBits1 & 134217728) != 0; }
6891 }
6892 /// <summary>Clears the value of the "optimize_with_max_hs" field</summary>
6893 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6894 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6895 public void ClearOptimizeWithMaxHs() {
6896 _hasBits1 &= ~134217728;
6897 }
6898
6899
6900 public const int UseFeasibilityJumpFieldNumber = 265;
6901 private readonly static bool UseFeasibilityJumpDefaultValue = true;
6903 private bool useFeasibilityJump_;
6905
6908 /// </summary>
6909 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6910 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6911 public bool UseFeasibilityJump {
6912 get { if ((_hasBits6 & 32768) != 0) { return useFeasibilityJump_; } else { return UseFeasibilityJumpDefaultValue; } }
6913 set {
6914 _hasBits6 |= 32768;
6915 useFeasibilityJump_ = value;
6916 }
6917 }
6919 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6920 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6921 public bool HasUseFeasibilityJump {
6922 get { return (_hasBits6 & 32768) != 0; }
6923 }
6925 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6926 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6928 _hasBits6 &= ~32768;
6929 }
6930
6932 public const int UseLsOnlyFieldNumber = 240;
6933 private readonly static bool UseLsOnlyDefaultValue = false;
6934
6935 private bool useLsOnly_;
6937 /// Disable every other type of subsolver, setting this turns CP-SAT into a
6938 /// pure local-search solver.
6939 /// </summary>
6940 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6941 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6942 public bool UseLsOnly {
6943 get { if ((_hasBits5 & 268435456) != 0) { return useLsOnly_; } else { return UseLsOnlyDefaultValue; } }
6944 set {
6945 _hasBits5 |= 268435456;
6946 useLsOnly_ = value;
6947 }
6950 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6951 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6952 public bool HasUseLsOnly {
6953 get { return (_hasBits5 & 268435456) != 0; }
6954 }
6956 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6957 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6958 public void ClearUseLsOnly() {
6959 _hasBits5 &= ~268435456;
6960 }
6961
6963 public const int FeasibilityJumpDecayFieldNumber = 242;
6964 private readonly static double FeasibilityJumpDecayDefaultValue = 0.95D;
6965
6966 private double feasibilityJumpDecay_;
6969 /// or no decay.
6970 /// </summary>
6971 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6972 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6973 public double FeasibilityJumpDecay {
6974 get { if ((_hasBits5 & 536870912) != 0) { return feasibilityJumpDecay_; } else { return FeasibilityJumpDecayDefaultValue; } }
6975 set {
6976 _hasBits5 |= 536870912;
6977 feasibilityJumpDecay_ = value;
6978 }
6979 }
6981 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6982 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6983 public bool HasFeasibilityJumpDecay {
6984 get { return (_hasBits5 & 536870912) != 0; }
6985 }
6987 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6988 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
6989 public void ClearFeasibilityJumpDecay() {
6990 _hasBits5 &= ~536870912;
6991 }
6992
6994 public const int FeasibilityJumpLinearizationLevelFieldNumber = 257;
6995 private readonly static int FeasibilityJumpLinearizationLevelDefaultValue = 2;
6996
6997 private int feasibilityJumpLinearizationLevel_;
7000 /// </summary>
7001 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7002 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7004 get { if ((_hasBits6 & 128) != 0) { return feasibilityJumpLinearizationLevel_; } else { return FeasibilityJumpLinearizationLevelDefaultValue; } }
7005 set {
7006 _hasBits6 |= 128;
7007 feasibilityJumpLinearizationLevel_ = value;
7008 }
7009 }
7011 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7012 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7014 get { return (_hasBits6 & 128) != 0; }
7015 }
7017 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7018 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7019 public void ClearFeasibilityJumpLinearizationLevel() {
7020 _hasBits6 &= ~128;
7022
7024 public const int FeasibilityJumpRestartFactorFieldNumber = 258;
7025 private readonly static int FeasibilityJumpRestartFactorDefaultValue = 1;
7026
7027 private int feasibilityJumpRestartFactor_;
7028
7031 /// </summary>
7032 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7033 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7034 public int FeasibilityJumpRestartFactor {
7035 get { if ((_hasBits6 & 256) != 0) { return feasibilityJumpRestartFactor_; } else { return FeasibilityJumpRestartFactorDefaultValue; } }
7036 set {
7037 _hasBits6 |= 256;
7038 feasibilityJumpRestartFactor_ = value;
7039 }
7040 }
7042 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7043 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7045 get { return (_hasBits6 & 256) != 0; }
7046 }
7048 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7049 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7050 public void ClearFeasibilityJumpRestartFactor() {
7051 _hasBits6 &= ~256;
7052 }
7053
7055 public const int FeasibilityJumpBatchDtimeFieldNumber = 292;
7056 private readonly static double FeasibilityJumpBatchDtimeDefaultValue = 0.1D;
7057
7058 private double feasibilityJumpBatchDtime_;
7061 /// </summary>
7062 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7063 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7064 public double FeasibilityJumpBatchDtime {
7065 get { if ((_hasBits7 & 1024) != 0) { return feasibilityJumpBatchDtime_; } else { return FeasibilityJumpBatchDtimeDefaultValue; } }
7066 set {
7067 _hasBits7 |= 1024;
7068 feasibilityJumpBatchDtime_ = value;
7069 }
7070 }
7072 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7073 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7074 public bool HasFeasibilityJumpBatchDtime {
7075 get { return (_hasBits7 & 1024) != 0; }
7076 }
7078 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7079 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7080 public void ClearFeasibilityJumpBatchDtime() {
7081 _hasBits7 &= ~1024;
7083
7085 public const int FeasibilityJumpVarRandomizationProbabilityFieldNumber = 247;
7086 private readonly static double FeasibilityJumpVarRandomizationProbabilityDefaultValue = 0.05D;
7087
7088 private double feasibilityJumpVarRandomizationProbability_;
7089
7092 /// </summary>
7093 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7094 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7096 get { if ((_hasBits5 & -2147483648) != 0) { return feasibilityJumpVarRandomizationProbability_; } else { return FeasibilityJumpVarRandomizationProbabilityDefaultValue; } }
7097 set {
7098 _hasBits5 |= -2147483648;
7099 feasibilityJumpVarRandomizationProbability_ = value;
7100 }
7101 }
7103 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7104 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7106 get { return (_hasBits5 & -2147483648) != 0; }
7107 }
7109 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7110 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7111 public void ClearFeasibilityJumpVarRandomizationProbability() {
7112 _hasBits5 &= ~-2147483648;
7113 }
7114
7116 public const int FeasibilityJumpVarPerburbationRangeRatioFieldNumber = 248;
7117 private readonly static double FeasibilityJumpVarPerburbationRangeRatioDefaultValue = 0.2D;
7118
7119 private double feasibilityJumpVarPerburbationRangeRatio_;
7122 /// the range of the domain of the variable.
7123 /// </summary>
7124 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7125 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7127 get { if ((_hasBits6 & 1) != 0) { return feasibilityJumpVarPerburbationRangeRatio_; } else { return FeasibilityJumpVarPerburbationRangeRatioDefaultValue; } }
7128 set {
7129 _hasBits6 |= 1;
7130 feasibilityJumpVarPerburbationRangeRatio_ = value;
7131 }
7132 }
7134 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7135 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7137 get { return (_hasBits6 & 1) != 0; }
7138 }
7140 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7141 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7142 public void ClearFeasibilityJumpVarPerburbationRangeRatio() {
7143 _hasBits6 &= ~1;
7144 }
7145
7147 public const int FeasibilityJumpEnableRestartsFieldNumber = 250;
7148 private readonly static bool FeasibilityJumpEnableRestartsDefaultValue = true;
7149
7150 private bool feasibilityJumpEnableRestarts_;
7153 /// solution (with some possible randomization), or randomly pertubate the
7154 /// current solution. This parameter selects the first option.
7155 /// </summary>
7156 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7157 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7158 public bool FeasibilityJumpEnableRestarts {
7159 get { if ((_hasBits6 & 4) != 0) { return feasibilityJumpEnableRestarts_; } else { return FeasibilityJumpEnableRestartsDefaultValue; } }
7160 set {
7161 _hasBits6 |= 4;
7162 feasibilityJumpEnableRestarts_ = value;
7163 }
7166 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7167 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7168 public bool HasFeasibilityJumpEnableRestarts {
7169 get { return (_hasBits6 & 4) != 0; }
7170 }
7172 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7173 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7175 _hasBits6 &= ~4;
7176 }
7177
7179 public const int FeasibilityJumpMaxExpandedConstraintSizeFieldNumber = 264;
7180 private readonly static int FeasibilityJumpMaxExpandedConstraintSizeDefaultValue = 500;
7181
7182 private int feasibilityJumpMaxExpandedConstraintSize_;
7184 /// Maximum size of no_overlap or no_overlap_2d constraint for a quadratic
7185 /// expansion. This might look a lot, but by expanding such constraint, we get
7186 /// a linear time evaluation per single variable moves instead of a slow O(n
7187 /// log n) one.
7188 /// </summary>
7189 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7190 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7192 get { if ((_hasBits6 & 16384) != 0) { return feasibilityJumpMaxExpandedConstraintSize_; } else { return FeasibilityJumpMaxExpandedConstraintSizeDefaultValue; } }
7193 set {
7194 _hasBits6 |= 16384;
7195 feasibilityJumpMaxExpandedConstraintSize_ = value;
7196 }
7197 }
7199 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7200 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7201 public bool HasFeasibilityJumpMaxExpandedConstraintSize {
7202 get { return (_hasBits6 & 16384) != 0; }
7203 }
7205 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7206 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7208 _hasBits6 &= ~16384;
7209 }
7210
7212 public const int NumViolationLsFieldNumber = 244;
7213 private readonly static int NumViolationLsDefaultValue = 0;
7214
7215 private int numViolationLs_;
7216 /// <summary>
7217 /// This will create incomplete subsolvers (that are not LNS subsolvers)
7218 /// that use the feasibility jump code to find improving solution, treating
7219 /// the objective improvement as a hard constraint.
7220 /// </summary>
7221 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7222 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7223 public int NumViolationLs {
7224 get { if ((_hasBits5 & 1073741824) != 0) { return numViolationLs_; } else { return NumViolationLsDefaultValue; } }
7225 set {
7226 _hasBits5 |= 1073741824;
7227 numViolationLs_ = value;
7228 }
7229 }
7231 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7232 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7233 public bool HasNumViolationLs {
7234 get { return (_hasBits5 & 1073741824) != 0; }
7235 }
7237 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7238 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7239 public void ClearNumViolationLs() {
7240 _hasBits5 &= ~1073741824;
7241 }
7242
7244 public const int ViolationLsPerturbationPeriodFieldNumber = 249;
7245 private readonly static int ViolationLsPerturbationPeriodDefaultValue = 100;
7246
7247 private int violationLsPerturbationPeriod_;
7249 /// How long violation_ls should wait before perturbating a solution.
7250 /// </summary>
7251 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7252 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7254 get { if ((_hasBits6 & 2) != 0) { return violationLsPerturbationPeriod_; } else { return ViolationLsPerturbationPeriodDefaultValue; } }
7255 set {
7256 _hasBits6 |= 2;
7257 violationLsPerturbationPeriod_ = value;
7258 }
7259 }
7261 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7262 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7264 get { return (_hasBits6 & 2) != 0; }
7265 }
7267 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7268 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7269 public void ClearViolationLsPerturbationPeriod() {
7270 _hasBits6 &= ~2;
7272
7274 public const int ViolationLsCompoundMoveProbabilityFieldNumber = 259;
7275 private readonly static double ViolationLsCompoundMoveProbabilityDefaultValue = 0.5D;
7276
7277 private double violationLsCompoundMoveProbability_;
7278
7281 /// </summary>
7282 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7283 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7285 get { if ((_hasBits6 & 512) != 0) { return violationLsCompoundMoveProbability_; } else { return ViolationLsCompoundMoveProbabilityDefaultValue; } }
7286 set {
7287 _hasBits6 |= 512;
7288 violationLsCompoundMoveProbability_ = value;
7289 }
7290 }
7292 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7293 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7295 get { return (_hasBits6 & 512) != 0; }
7296 }
7298 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7299 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7300 public void ClearViolationLsCompoundMoveProbability() {
7301 _hasBits6 &= ~512;
7302 }
7303
7305 public const int SharedTreeNumWorkersFieldNumber = 235;
7306 private readonly static int SharedTreeNumWorkersDefaultValue = -1;
7307
7308 private int sharedTreeNumWorkers_;
7311 /// If positive, start this many complete worker threads to explore a shared
7312 /// search tree. These workers communicate objective bounds and simple decision
7313 /// nogoods relating to the shared prefix of the tree, and will avoid exploring
7314 /// the same subtrees as one another.
7315 /// Specifying a negative number uses a heuristic to select an appropriate
7316 /// number of shared tree workeres based on the total number of workers.
7317 /// </summary>
7318 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7319 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7320 public int SharedTreeNumWorkers {
7321 get { if ((_hasBits5 & 16777216) != 0) { return sharedTreeNumWorkers_; } else { return SharedTreeNumWorkersDefaultValue; } }
7322 set {
7323 _hasBits5 |= 16777216;
7324 sharedTreeNumWorkers_ = value;
7325 }
7326 }
7328 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7329 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7330 public bool HasSharedTreeNumWorkers {
7331 get { return (_hasBits5 & 16777216) != 0; }
7334 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7335 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7336 public void ClearSharedTreeNumWorkers() {
7337 _hasBits5 &= ~16777216;
7338 }
7339
7341 public const int UseSharedTreeSearchFieldNumber = 236;
7342 private readonly static bool UseSharedTreeSearchDefaultValue = false;
7343
7344 private bool useSharedTreeSearch_;
7345
7348 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7349 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7350 public bool UseSharedTreeSearch {
7351 get { if ((_hasBits5 & 33554432) != 0) { return useSharedTreeSearch_; } else { return UseSharedTreeSearchDefaultValue; } }
7352 set {
7353 _hasBits5 |= 33554432;
7354 useSharedTreeSearch_ = value;
7355 }
7356 }
7358 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7359 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7360 public bool HasUseSharedTreeSearch {
7361 get { return (_hasBits5 & 33554432) != 0; }
7362 }
7364 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7365 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7366 public void ClearUseSharedTreeSearch() {
7367 _hasBits5 &= ~33554432;
7369
7371 public const int SharedTreeWorkerMinRestartsPerSubtreeFieldNumber = 282;
7372 private readonly static int SharedTreeWorkerMinRestartsPerSubtreeDefaultValue = 1;
7373
7374 private int sharedTreeWorkerMinRestartsPerSubtree_;
7375
7378 /// </summary>
7379 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7380 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7382 get { if ((_hasBits7 & 1) != 0) { return sharedTreeWorkerMinRestartsPerSubtree_; } else { return SharedTreeWorkerMinRestartsPerSubtreeDefaultValue; } }
7383 set {
7384 _hasBits7 |= 1;
7385 sharedTreeWorkerMinRestartsPerSubtree_ = value;
7386 }
7387 }
7389 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7390 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7392 get { return (_hasBits7 & 1) != 0; }
7393 }
7395 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7396 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7397 public void ClearSharedTreeWorkerMinRestartsPerSubtree() {
7398 _hasBits7 &= ~1;
7399 }
7400
7402 public const int SharedTreeWorkerEnableTrailSharingFieldNumber = 295;
7403 private readonly static bool SharedTreeWorkerEnableTrailSharingDefaultValue = true;
7404
7405 private bool sharedTreeWorkerEnableTrailSharing_;
7408 /// Specifically, literals implied by the shared tree decisions.
7409 /// </summary>
7410 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7411 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7413 get { if ((_hasBits7 & 4096) != 0) { return sharedTreeWorkerEnableTrailSharing_; } else { return SharedTreeWorkerEnableTrailSharingDefaultValue; } }
7414 set {
7415 _hasBits7 |= 4096;
7416 sharedTreeWorkerEnableTrailSharing_ = value;
7417 }
7418 }
7420 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7421 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7423 get { return (_hasBits7 & 4096) != 0; }
7424 }
7426 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7427 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7428 public void ClearSharedTreeWorkerEnableTrailSharing() {
7429 _hasBits7 &= ~4096;
7430 }
7431
7433 public const int SharedTreeWorkerEnablePhaseSharingFieldNumber = 304;
7434 private readonly static bool SharedTreeWorkerEnablePhaseSharingDefaultValue = true;
7435
7436 private bool sharedTreeWorkerEnablePhaseSharing_;
7439 /// assigned subtree for the next worker to use.
7440 /// </summary>
7441 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7442 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7444 get { if ((_hasBits7 & 2097152) != 0) { return sharedTreeWorkerEnablePhaseSharing_; } else { return SharedTreeWorkerEnablePhaseSharingDefaultValue; } }
7445 set {
7446 _hasBits7 |= 2097152;
7447 sharedTreeWorkerEnablePhaseSharing_ = value;
7448 }
7449 }
7451 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7452 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7454 get { return (_hasBits7 & 2097152) != 0; }
7455 }
7457 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7458 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7459 public void ClearSharedTreeWorkerEnablePhaseSharing() {
7460 _hasBits7 &= ~2097152;
7461 }
7462
7464 public const int SharedTreeOpenLeavesPerWorkerFieldNumber = 281;
7465 private readonly static double SharedTreeOpenLeavesPerWorkerDefaultValue = 2D;
7466
7467 private double sharedTreeOpenLeavesPerWorker_;
7470 /// </summary>
7471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7473 public double SharedTreeOpenLeavesPerWorker {
7474 get { if ((_hasBits6 & -2147483648) != 0) { return sharedTreeOpenLeavesPerWorker_; } else { return SharedTreeOpenLeavesPerWorkerDefaultValue; } }
7475 set {
7476 _hasBits6 |= -2147483648;
7477 sharedTreeOpenLeavesPerWorker_ = value;
7478 }
7479 }
7481 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7482 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7484 get { return (_hasBits6 & -2147483648) != 0; }
7485 }
7487 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7488 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7489 public void ClearSharedTreeOpenLeavesPerWorker() {
7490 _hasBits6 &= ~-2147483648;
7492
7494 public const int SharedTreeMaxNodesPerWorkerFieldNumber = 238;
7495 private readonly static int SharedTreeMaxNodesPerWorkerDefaultValue = 10000;
7496
7497 private int sharedTreeMaxNodesPerWorker_;
7498
7501 /// shared tree runs out of unassigned leaves, workers act as portfolio
7502 /// workers. Note: this limit includes interior nodes, not just leaves.
7503 /// </summary>
7504 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7505 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7506 public int SharedTreeMaxNodesPerWorker {
7507 get { if ((_hasBits5 & 67108864) != 0) { return sharedTreeMaxNodesPerWorker_; } else { return SharedTreeMaxNodesPerWorkerDefaultValue; } }
7508 set {
7509 _hasBits5 |= 67108864;
7510 sharedTreeMaxNodesPerWorker_ = value;
7511 }
7514 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7515 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7516 public bool HasSharedTreeMaxNodesPerWorker {
7517 get { return (_hasBits5 & 67108864) != 0; }
7518 }
7520 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7521 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7522 public void ClearSharedTreeMaxNodesPerWorker() {
7523 _hasBits5 &= ~67108864;
7524 }
7525
7527 public const int SharedTreeSplitStrategyFieldNumber = 239;
7528 private readonly static global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy SharedTreeSplitStrategyDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy.SplitStrategyAuto;
7529
7530 private global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy sharedTreeSplitStrategy_;
7531 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7532 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7533 public global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy SharedTreeSplitStrategy {
7534 get { if ((_hasBits5 & 134217728) != 0) { return sharedTreeSplitStrategy_; } else { return SharedTreeSplitStrategyDefaultValue; } }
7535 set {
7536 _hasBits5 |= 134217728;
7537 sharedTreeSplitStrategy_ = value;
7538 }
7539 }
7540
7541 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7542 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7543 public bool HasSharedTreeSplitStrategy {
7544 get { return (_hasBits5 & 134217728) != 0; }
7545 }
7547 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7548 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7549 public void ClearSharedTreeSplitStrategy() {
7550 _hasBits5 &= ~134217728;
7551 }
7552
7555 private readonly static int SharedTreeBalanceToleranceDefaultValue = 1;
7556
7557 private int sharedTreeBalanceTolerance_;
7561
7564 /// split becomes required. This only has an effect on
7565 /// SPLIT_STRATEGY_BALANCED_TREE and SPLIT_STRATEGY_DISCREPANCY.
7566 /// </summary>
7567 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7568 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7569 public int SharedTreeBalanceTolerance {
7570 get { if ((_hasBits7 & 4194304) != 0) { return sharedTreeBalanceTolerance_; } else { return SharedTreeBalanceToleranceDefaultValue; } }
7571 set {
7572 _hasBits7 |= 4194304;
7573 sharedTreeBalanceTolerance_ = value;
7574 }
7577 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7578 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7579 public bool HasSharedTreeBalanceTolerance {
7580 get { return (_hasBits7 & 4194304) != 0; }
7583 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7584 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7585 public void ClearSharedTreeBalanceTolerance() {
7586 _hasBits7 &= ~4194304;
7587 }
7588
7590 public const int SharedTreeSplitMinDtimeFieldNumber = 328;
7591 private readonly static double SharedTreeSplitMinDtimeDefaultValue = 0.1D;
7592
7593 private double sharedTreeSplitMinDtime_;
7594
7597 /// the number of too-easy subtrees that are generates.
7598 /// </summary>
7599 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7600 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7601 public double SharedTreeSplitMinDtime {
7602 get { if ((_hasBits8 & 4096) != 0) { return sharedTreeSplitMinDtime_; } else { return SharedTreeSplitMinDtimeDefaultValue; } }
7603 set {
7604 _hasBits8 |= 4096;
7605 sharedTreeSplitMinDtime_ = value;
7606 }
7607 }
7609 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7610 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7611 public bool HasSharedTreeSplitMinDtime {
7612 get { return (_hasBits8 & 4096) != 0; }
7613 }
7615 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7616 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7618 _hasBits8 &= ~4096;
7619 }
7620
7622 public const int EnumerateAllSolutionsFieldNumber = 87;
7623 private readonly static bool EnumerateAllSolutionsDefaultValue = false;
7624
7625 private bool enumerateAllSolutions_;
7627 /// Whether we enumerate all solutions of a problem without objective.
7628 ///
7629 /// WARNING:
7630 /// - This can be used with num_workers > 1 but then each solutions can be
7631 /// found more than once, so it is up to the client to deduplicate them.
7632 /// - If keep_all_feasible_solutions_in_presolve is unset, we will set it to
7633 /// true as otherwise, many feasible solution can just be removed by the
7634 /// presolve. It is still possible to manually set this to false if one only
7635 /// wants to enumerate all solutions of the presolved model.
7636 /// </summary>
7637 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7638 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7639 public bool EnumerateAllSolutions {
7640 get { if ((_hasBits1 & 536870912) != 0) { return enumerateAllSolutions_; } else { return EnumerateAllSolutionsDefaultValue; } }
7641 set {
7642 _hasBits1 |= 536870912;
7643 enumerateAllSolutions_ = value;
7644 }
7645 }
7647 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7648 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7650 get { return (_hasBits1 & 536870912) != 0; }
7651 }
7653 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7654 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7655 public void ClearEnumerateAllSolutions() {
7656 _hasBits1 &= ~536870912;
7657 }
7658
7659 /// <summary>Field number for the "keep_all_feasible_solutions_in_presolve" field.</summary>
7660 public const int KeepAllFeasibleSolutionsInPresolveFieldNumber = 173;
7661 private readonly static bool KeepAllFeasibleSolutionsInPresolveDefaultValue = false;
7662
7663 private bool keepAllFeasibleSolutionsInPresolve_;
7665 /// If true, we disable the presolve reductions that remove feasible solutions
7666 /// from the search space. Such solution are usually dominated by a "better"
7667 /// solution that is kept, but depending on the situation, we might want to
7668 /// keep all solutions.
7669 ///
7670 /// A trivial example is when a variable is unused. If this is true, then the
7671 /// presolve will not fix it to an arbitrary value and it will stay in the
7672 /// search space.
7673 /// </summary>
7674 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7675 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7677 get { if ((_hasBits4 & 32) != 0) { return keepAllFeasibleSolutionsInPresolve_; } else { return KeepAllFeasibleSolutionsInPresolveDefaultValue; } }
7678 set {
7679 _hasBits4 |= 32;
7680 keepAllFeasibleSolutionsInPresolve_ = value;
7681 }
7682 }
7684 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7685 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7686 public bool HasKeepAllFeasibleSolutionsInPresolve {
7687 get { return (_hasBits4 & 32) != 0; }
7690 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7691 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7692 public void ClearKeepAllFeasibleSolutionsInPresolve() {
7693 _hasBits4 &= ~32;
7694 }
7695
7697 public const int FillTightenedDomainsInResponseFieldNumber = 132;
7698 private readonly static bool FillTightenedDomainsInResponseDefaultValue = false;
7699
7700 private bool fillTightenedDomainsInResponse_;
7701
7704 /// bigger and there is a bit more work involved during the postsolve to
7705 /// construct it, but it should still have a low overhead. See the
7706 /// tightened_variables field in CpSolverResponse for more details.
7707 /// </summary>
7708 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7709 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7710 public bool FillTightenedDomainsInResponse {
7711 get { if ((_hasBits3 & 16) != 0) { return fillTightenedDomainsInResponse_; } else { return FillTightenedDomainsInResponseDefaultValue; } }
7712 set {
7713 _hasBits3 |= 16;
7714 fillTightenedDomainsInResponse_ = value;
7715 }
7716 }
7718 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7719 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7720 public bool HasFillTightenedDomainsInResponse {
7721 get { return (_hasBits3 & 16) != 0; }
7722 }
7724 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7725 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7727 _hasBits3 &= ~16;
7728 }
7729
7731 public const int FillAdditionalSolutionsInResponseFieldNumber = 194;
7732 private readonly static bool FillAdditionalSolutionsInResponseDefaultValue = false;
7733
7734 private bool fillAdditionalSolutionsInResponse_;
7736 /// If true, the final response addition_solutions field will be filled with
7737 /// all solutions from our solutions pool.
7738 ///
7739 /// Note that if both this field and enumerate_all_solutions is true, we will
7740 /// copy to the pool all of the solution found. So if solution_pool_size is big
7741 /// enough, you can get all solutions this way instead of using the solution
7742 /// callback.
7743 ///
7744 /// Note that this only affect the "final" solution, not the one passed to the
7745 /// solution callbacks.
7746 /// </summary>
7747 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7748 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7750 get { if ((_hasBits4 & 16777216) != 0) { return fillAdditionalSolutionsInResponse_; } else { return FillAdditionalSolutionsInResponseDefaultValue; } }
7751 set {
7752 _hasBits4 |= 16777216;
7753 fillAdditionalSolutionsInResponse_ = value;
7754 }
7755 }
7757 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7758 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7759 public bool HasFillAdditionalSolutionsInResponse {
7760 get { return (_hasBits4 & 16777216) != 0; }
7761 }
7763 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7764 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7765 public void ClearFillAdditionalSolutionsInResponse() {
7766 _hasBits4 &= ~16777216;
7767 }
7768
7771 private readonly static bool InstantiateAllVariablesDefaultValue = true;
7772
7773 private bool instantiateAllVariables_;
7776 /// already defined search strategy. If not, some variable might still not be
7777 /// fixed at the end of the search. For now we assume these variable can just
7778 /// be set to their lower bound.
7779 /// </summary>
7780 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7781 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7782 public bool InstantiateAllVariables {
7783 get { if ((_hasBits2 & 4096) != 0) { return instantiateAllVariables_; } else { return InstantiateAllVariablesDefaultValue; } }
7784 set {
7785 _hasBits2 |= 4096;
7786 instantiateAllVariables_ = value;
7787 }
7788 }
7790 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7791 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7792 public bool HasInstantiateAllVariables {
7793 get { return (_hasBits2 & 4096) != 0; }
7794 }
7796 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7797 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7798 public void ClearInstantiateAllVariables() {
7799 _hasBits2 &= ~4096;
7800 }
7804 private readonly static bool AutoDetectGreaterThanAtLeastOneOfDefaultValue = true;
7805
7806 private bool autoDetectGreaterThanAtLeastOneOf_;
7808
7811 /// of precedence.
7812 /// </summary>
7813 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7814 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7816 get { if ((_hasBits2 & 32) != 0) { return autoDetectGreaterThanAtLeastOneOf_; } else { return AutoDetectGreaterThanAtLeastOneOfDefaultValue; } }
7817 set {
7818 _hasBits2 |= 32;
7819 autoDetectGreaterThanAtLeastOneOf_ = value;
7820 }
7821 }
7823 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7824 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7826 get { return (_hasBits2 & 32) != 0; }
7827 }
7829 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7830 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7831 public void ClearAutoDetectGreaterThanAtLeastOneOf() {
7832 _hasBits2 &= ~32;
7833 }
7836 public const int StopAfterFirstSolutionFieldNumber = 98;
7837 private readonly static bool StopAfterFirstSolutionDefaultValue = false;
7838
7839 private bool stopAfterFirstSolution_;
7841
7843 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7844 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7845 public bool StopAfterFirstSolution {
7846 get { if ((_hasBits2 & 64) != 0) { return stopAfterFirstSolution_; } else { return StopAfterFirstSolutionDefaultValue; } }
7847 set {
7848 _hasBits2 |= 64;
7849 stopAfterFirstSolution_ = value;
7851 }
7853 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7854 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7856 get { return (_hasBits2 & 64) != 0; }
7857 }
7859 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7860 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7861 public void ClearStopAfterFirstSolution() {
7862 _hasBits2 &= ~64;
7863 }
7864
7866 public const int StopAfterPresolveFieldNumber = 149;
7867 private readonly static bool StopAfterPresolveDefaultValue = false;
7868
7869 private bool stopAfterPresolve_;
7874 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7875 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7876 public bool StopAfterPresolve {
7877 get { if ((_hasBits3 & 65536) != 0) { return stopAfterPresolve_; } else { return StopAfterPresolveDefaultValue; } }
7878 set {
7879 _hasBits3 |= 65536;
7880 stopAfterPresolve_ = value;
7881 }
7882 }
7883 /// <summary>Gets whether the "stop_after_presolve" field is set</summary>
7884 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7885 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7886 public bool HasStopAfterPresolve {
7887 get { return (_hasBits3 & 65536) != 0; }
7890 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7891 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7892 public void ClearStopAfterPresolve() {
7893 _hasBits3 &= ~65536;
7894 }
7895
7898 private readonly static bool StopAfterRootPropagationDefaultValue = false;
7899
7900 private bool stopAfterRootPropagation_;
7901 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7902 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7903 public bool StopAfterRootPropagation {
7904 get { if ((_hasBits6 & 8) != 0) { return stopAfterRootPropagation_; } else { return StopAfterRootPropagationDefaultValue; } }
7905 set {
7906 _hasBits6 |= 8;
7907 stopAfterRootPropagation_ = value;
7908 }
7909 }
7910
7911 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7912 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7914 get { return (_hasBits6 & 8) != 0; }
7915 }
7916
7917 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7918 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7919 public void ClearStopAfterRootPropagation() {
7920 _hasBits6 &= ~8;
7921 }
7922
7924 public const int LnsInitialDifficultyFieldNumber = 307;
7925 private readonly static double LnsInitialDifficultyDefaultValue = 0.5D;
7926
7927 private double lnsInitialDifficulty_;
7928 /// <summary>
7929 /// Initial parameters for neighborhood generation.
7930 /// </summary>
7931 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7932 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7933 public double LnsInitialDifficulty {
7934 get { if ((_hasBits7 & 16777216) != 0) { return lnsInitialDifficulty_; } else { return LnsInitialDifficultyDefaultValue; } }
7935 set {
7936 _hasBits7 |= 16777216;
7937 lnsInitialDifficulty_ = value;
7939 }
7941 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7942 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7943 public bool HasLnsInitialDifficulty {
7944 get { return (_hasBits7 & 16777216) != 0; }
7945 }
7947 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7948 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7950 _hasBits7 &= ~16777216;
7951 }
7952
7954 public const int LnsInitialDeterministicLimitFieldNumber = 308;
7955 private readonly static double LnsInitialDeterministicLimitDefaultValue = 0.1D;
7956
7957 private double lnsInitialDeterministicLimit_;
7958 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7959 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7960 public double LnsInitialDeterministicLimit {
7961 get { if ((_hasBits7 & 33554432) != 0) { return lnsInitialDeterministicLimit_; } else { return LnsInitialDeterministicLimitDefaultValue; } }
7962 set {
7963 _hasBits7 |= 33554432;
7964 lnsInitialDeterministicLimit_ = value;
7966 }
7968 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7969 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7970 public bool HasLnsInitialDeterministicLimit {
7971 get { return (_hasBits7 & 33554432) != 0; }
7972 }
7974 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7975 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7977 _hasBits7 &= ~33554432;
7978 }
7979
7981 public const int UseLnsFieldNumber = 283;
7982 private readonly static bool UseLnsDefaultValue = true;
7983
7984 private bool useLns_;
7985 /// <summary>
7986 /// Testing parameters used to disable all lns workers.
7987 /// </summary>
7988 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7989 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
7990 public bool UseLns {
7991 get { if ((_hasBits7 & 2) != 0) { return useLns_; } else { return UseLnsDefaultValue; } }
7992 set {
7993 _hasBits7 |= 2;
7994 useLns_ = value;
7996 }
7998 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
7999 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8000 public bool HasUseLns {
8001 get { return (_hasBits7 & 2) != 0; }
8002 }
8004 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8005 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8006 public void ClearUseLns() {
8007 _hasBits7 &= ~2;
8008 }
8009
8011 public const int UseLnsOnlyFieldNumber = 101;
8012 private readonly static bool UseLnsOnlyDefaultValue = false;
8013
8014 private bool useLnsOnly_;
8018 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8019 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8020 public bool UseLnsOnly {
8021 get { if ((_hasBits2 & 512) != 0) { return useLnsOnly_; } else { return UseLnsOnlyDefaultValue; } }
8022 set {
8023 _hasBits2 |= 512;
8024 useLnsOnly_ = value;
8025 }
8026 }
8028 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8029 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8030 public bool HasUseLnsOnly {
8031 get { return (_hasBits2 & 512) != 0; }
8032 }
8034 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8035 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8036 public void ClearUseLnsOnly() {
8037 _hasBits2 &= ~512;
8038 }
8039
8041 public const int SolutionPoolSizeFieldNumber = 193;
8042 private readonly static int SolutionPoolSizeDefaultValue = 3;
8043
8044 private int solutionPoolSize_;
8049
8050 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8051 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8052 public int SolutionPoolSize {
8053 get { if ((_hasBits4 & 8388608) != 0) { return solutionPoolSize_; } else { return SolutionPoolSizeDefaultValue; } }
8054 set {
8055 _hasBits4 |= 8388608;
8056 solutionPoolSize_ = value;
8057 }
8060 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8061 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8062 public bool HasSolutionPoolSize {
8063 get { return (_hasBits4 & 8388608) != 0; }
8064 }
8066 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8067 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8068 public void ClearSolutionPoolSize() {
8069 _hasBits4 &= ~8388608;
8070 }
8071
8072 /// <summary>Field number for the "solution_pool_diversity_limit" field.</summary>
8073 public const int SolutionPoolDiversityLimitFieldNumber = 329;
8074 private readonly static int SolutionPoolDiversityLimitDefaultValue = 10;
8075
8076 private int solutionPoolDiversityLimit_;
8079
8082 /// </summary>
8083 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8084 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8085 public int SolutionPoolDiversityLimit {
8086 get { if ((_hasBits8 & 8192) != 0) { return solutionPoolDiversityLimit_; } else { return SolutionPoolDiversityLimitDefaultValue; } }
8087 set {
8088 _hasBits8 |= 8192;
8089 solutionPoolDiversityLimit_ = value;
8090 }
8091 }
8093 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8094 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8095 public bool HasSolutionPoolDiversityLimit {
8096 get { return (_hasBits8 & 8192) != 0; }
8097 }
8099 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8100 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8101 public void ClearSolutionPoolDiversityLimit() {
8102 _hasBits8 &= ~8192;
8103 }
8106 public const int AlternativePoolSizeFieldNumber = 325;
8107 private readonly static int AlternativePoolSizeDefaultValue = 1;
8108
8109 private int alternativePoolSize_;
8111
8114 /// </summary>
8115 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8116 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8117 public int AlternativePoolSize {
8118 get { if ((_hasBits8 & 512) != 0) { return alternativePoolSize_; } else { return AlternativePoolSizeDefaultValue; } }
8119 set {
8120 _hasBits8 |= 512;
8121 alternativePoolSize_ = value;
8122 }
8123 }
8125 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8126 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8127 public bool HasAlternativePoolSize {
8128 get { return (_hasBits8 & 512) != 0; }
8129 }
8131 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8132 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8133 public void ClearAlternativePoolSize() {
8134 _hasBits8 &= ~512;
8135 }
8136
8137 /// <summary>Field number for the "use_rins_lns" field.</summary>
8138 public const int UseRinsLnsFieldNumber = 129;
8139 private readonly static bool UseRinsLnsDefaultValue = true;
8140
8141 private bool useRinsLns_;
8144
8145 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8146 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8147 public bool UseRinsLns {
8148 get { if ((_hasBits3 & 2) != 0) { return useRinsLns_; } else { return UseRinsLnsDefaultValue; } }
8149 set {
8150 _hasBits3 |= 2;
8151 useRinsLns_ = value;
8152 }
8155 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8156 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8157 public bool HasUseRinsLns {
8158 get { return (_hasBits3 & 2) != 0; }
8159 }
8161 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8162 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8163 public void ClearUseRinsLns() {
8164 _hasBits3 &= ~2;
8165 }
8166
8168 public const int UseFeasibilityPumpFieldNumber = 164;
8169 private readonly static bool UseFeasibilityPumpDefaultValue = true;
8170
8171 private bool useFeasibilityPump_;
8175 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8176 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8177 public bool UseFeasibilityPump {
8178 get { if ((_hasBits3 & 536870912) != 0) { return useFeasibilityPump_; } else { return UseFeasibilityPumpDefaultValue; } }
8179 set {
8180 _hasBits3 |= 536870912;
8181 useFeasibilityPump_ = value;
8182 }
8183 }
8185 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8186 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8187 public bool HasUseFeasibilityPump {
8188 get { return (_hasBits3 & 536870912) != 0; }
8189 }
8191 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8192 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8193 public void ClearUseFeasibilityPump() {
8194 _hasBits3 &= ~536870912;
8195 }
8196
8198 public const int UseLbRelaxLnsFieldNumber = 255;
8199 private readonly static bool UseLbRelaxLnsDefaultValue = true;
8200
8201 private bool useLbRelaxLns_;
8206
8207 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8208 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8209 public bool UseLbRelaxLns {
8210 get { if ((_hasBits6 & 32) != 0) { return useLbRelaxLns_; } else { return UseLbRelaxLnsDefaultValue; } }
8211 set {
8212 _hasBits6 |= 32;
8213 useLbRelaxLns_ = value;
8214 }
8217 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8218 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8219 public bool HasUseLbRelaxLns {
8220 get { return (_hasBits6 & 32) != 0; }
8221 }
8223 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8224 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8225 public void ClearUseLbRelaxLns() {
8226 _hasBits6 &= ~32;
8227 }
8228
8229 /// <summary>Field number for the "lb_relax_num_workers_threshold" field.</summary>
8230 public const int LbRelaxNumWorkersThresholdFieldNumber = 296;
8231 private readonly static int LbRelaxNumWorkersThresholdDefaultValue = 16;
8232
8233 private int lbRelaxNumWorkersThreshold_;
8236
8237 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8238 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8240 get { if ((_hasBits7 & 8192) != 0) { return lbRelaxNumWorkersThreshold_; } else { return LbRelaxNumWorkersThresholdDefaultValue; } }
8241 set {
8242 _hasBits7 |= 8192;
8243 lbRelaxNumWorkersThreshold_ = value;
8244 }
8247 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8248 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8249 public bool HasLbRelaxNumWorkersThreshold {
8250 get { return (_hasBits7 & 8192) != 0; }
8251 }
8253 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8254 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8255 public void ClearLbRelaxNumWorkersThreshold() {
8256 _hasBits7 &= ~8192;
8257 }
8258
8260 public const int FpRoundingFieldNumber = 165;
8261 private readonly static global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod FpRoundingDefaultValue = global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod.PropagationAssisted;
8262
8263 private global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod fpRounding_;
8264 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8265 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8266 public global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod FpRounding {
8267 get { if ((_hasBits3 & 1073741824) != 0) { return fpRounding_; } else { return FpRoundingDefaultValue; } }
8268 set {
8269 _hasBits3 |= 1073741824;
8270 fpRounding_ = value;
8272 }
8274 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8275 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8276 public bool HasFpRounding {
8277 get { return (_hasBits3 & 1073741824) != 0; }
8278 }
8280 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8281 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8282 public void ClearFpRounding() {
8283 _hasBits3 &= ~1073741824;
8284 }
8285
8287 public const int DiversifyLnsParamsFieldNumber = 137;
8288 private readonly static bool DiversifyLnsParamsDefaultValue = false;
8289
8290 private bool diversifyLnsParams_;
8291 /// <summary>
8292 /// If true, registers more lns subsolvers with different parameters.
8293 /// </summary>
8294 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8295 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8296 public bool DiversifyLnsParams {
8297 get { if ((_hasBits3 & 512) != 0) { return diversifyLnsParams_; } else { return DiversifyLnsParamsDefaultValue; } }
8298 set {
8299 _hasBits3 |= 512;
8300 diversifyLnsParams_ = value;
8302 }
8304 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8305 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8306 public bool HasDiversifyLnsParams {
8307 get { return (_hasBits3 & 512) != 0; }
8308 }
8310 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8311 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8313 _hasBits3 &= ~512;
8314 }
8315
8317 public const int RandomizeSearchFieldNumber = 103;
8318 private readonly static bool RandomizeSearchDefaultValue = false;
8319
8320 private bool randomizeSearch_;
8324 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8325 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8326 public bool RandomizeSearch {
8327 get { if ((_hasBits2 & 1024) != 0) { return randomizeSearch_; } else { return RandomizeSearchDefaultValue; } }
8328 set {
8329 _hasBits2 |= 1024;
8330 randomizeSearch_ = value;
8331 }
8332 }
8334 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8335 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8336 public bool HasRandomizeSearch {
8337 get { return (_hasBits2 & 1024) != 0; }
8338 }
8340 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8341 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8342 public void ClearRandomizeSearch() {
8343 _hasBits2 &= ~1024;
8344 }
8345
8347 public const int SearchRandomVariablePoolSizeFieldNumber = 104;
8348 private readonly static long SearchRandomVariablePoolSizeDefaultValue = 0L;
8349
8350 private long searchRandomVariablePoolSize_;
8355
8356 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8357 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8359 get { if ((_hasBits2 & 2048) != 0) { return searchRandomVariablePoolSize_; } else { return SearchRandomVariablePoolSizeDefaultValue; } }
8360 set {
8361 _hasBits2 |= 2048;
8362 searchRandomVariablePoolSize_ = value;
8363 }
8366 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8367 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8368 public bool HasSearchRandomVariablePoolSize {
8369 get { return (_hasBits2 & 2048) != 0; }
8370 }
8372 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8373 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8374 public void ClearSearchRandomVariablePoolSize() {
8375 _hasBits2 &= ~2048;
8376 }
8377
8378 /// <summary>Field number for the "push_all_tasks_toward_start" field.</summary>
8379 public const int PushAllTasksTowardStartFieldNumber = 262;
8380 private readonly static bool PushAllTasksTowardStartDefaultValue = false;
8381
8382 private bool pushAllTasksTowardStart_;
8385
8387 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8388 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8389 public bool PushAllTasksTowardStart {
8390 get { if ((_hasBits6 & 4096) != 0) { return pushAllTasksTowardStart_; } else { return PushAllTasksTowardStartDefaultValue; } }
8391 set {
8392 _hasBits6 |= 4096;
8393 pushAllTasksTowardStart_ = value;
8395 }
8397 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8398 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8400 get { return (_hasBits6 & 4096) != 0; }
8401 }
8403 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8404 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8405 public void ClearPushAllTasksTowardStart() {
8406 _hasBits6 &= ~4096;
8407 }
8408
8410 public const int UseOptionalVariablesFieldNumber = 108;
8411 private readonly static bool UseOptionalVariablesDefaultValue = false;
8412
8413 private bool useOptionalVariables_;
8417
8420 /// some situation. It should however gives correct solutions. Fix.
8421 /// </summary>
8422 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8423 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8424 public bool UseOptionalVariables {
8425 get { if ((_hasBits2 & 16384) != 0) { return useOptionalVariables_; } else { return UseOptionalVariablesDefaultValue; } }
8426 set {
8427 _hasBits2 |= 16384;
8428 useOptionalVariables_ = value;
8429 }
8430 }
8432 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8433 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8434 public bool HasUseOptionalVariables {
8435 get { return (_hasBits2 & 16384) != 0; }
8436 }
8438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8440 public void ClearUseOptionalVariables() {
8441 _hasBits2 &= ~16384;
8442 }
8443
8445 public const int UseExactLpReasonFieldNumber = 109;
8446 private readonly static bool UseExactLpReasonDefaultValue = true;
8447
8448 private bool useExactLpReason_;
8451 /// true, then whatever is infered by the LP will be used like an heuristic to
8452 /// compute EXACT propagation on the IP. So with this option, there is no
8453 /// numerical imprecision issues.
8454 /// </summary>
8455 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8456 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8457 public bool UseExactLpReason {
8458 get { if ((_hasBits2 & 32768) != 0) { return useExactLpReason_; } else { return UseExactLpReasonDefaultValue; } }
8459 set {
8460 _hasBits2 |= 32768;
8461 useExactLpReason_ = value;
8463 }
8465 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8466 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8467 public bool HasUseExactLpReason {
8468 get { return (_hasBits2 & 32768) != 0; }
8469 }
8471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8473 public void ClearUseExactLpReason() {
8474 _hasBits2 &= ~32768;
8475 }
8476
8477 /// <summary>Field number for the "use_combined_no_overlap" field.</summary>
8478 public const int UseCombinedNoOverlapFieldNumber = 133;
8479 private readonly static bool UseCombinedNoOverlapDefaultValue = false;
8480
8481 private bool useCombinedNoOverlap_;
8484
8487 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8488 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8489 public bool UseCombinedNoOverlap {
8490 get { if ((_hasBits3 & 32) != 0) { return useCombinedNoOverlap_; } else { return UseCombinedNoOverlapDefaultValue; } }
8491 set {
8492 _hasBits3 |= 32;
8493 useCombinedNoOverlap_ = value;
8494 }
8495 }
8496
8497 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8498 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8499 public bool HasUseCombinedNoOverlap {
8500 get { return (_hasBits3 & 32) != 0; }
8501 }
8503 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8504 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8505 public void ClearUseCombinedNoOverlap() {
8506 _hasBits3 &= ~32;
8507 }
8508
8511 private readonly static int AtMostOneMaxExpansionSizeDefaultValue = 3;
8512
8513 private int atMostOneMaxExpansionSize_;
8517
8518 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8519 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8521 get { if ((_hasBits6 & 1048576) != 0) { return atMostOneMaxExpansionSize_; } else { return AtMostOneMaxExpansionSizeDefaultValue; } }
8522 set {
8523 _hasBits6 |= 1048576;
8524 atMostOneMaxExpansionSize_ = value;
8525 }
8528 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8529 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8530 public bool HasAtMostOneMaxExpansionSize {
8531 get { return (_hasBits6 & 1048576) != 0; }
8532 }
8534 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8535 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8536 public void ClearAtMostOneMaxExpansionSize() {
8537 _hasBits6 &= ~1048576;
8538 }
8539
8541 public const int CatchSigintSignalFieldNumber = 135;
8542 private readonly static bool CatchSigintSignalDefaultValue = true;
8543
8544 private bool catchSigintSignal_;
8549
8550 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8551 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8552 public bool CatchSigintSignal {
8553 get { if ((_hasBits3 & 128) != 0) { return catchSigintSignal_; } else { return CatchSigintSignalDefaultValue; } }
8554 set {
8555 _hasBits3 |= 128;
8556 catchSigintSignal_ = value;
8557 }
8560 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8561 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8562 public bool HasCatchSigintSignal {
8563 get { return (_hasBits3 & 128) != 0; }
8564 }
8566 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8567 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8568 public void ClearCatchSigintSignal() {
8569 _hasBits3 &= ~128;
8570 }
8571
8573 public const int UseImpliedBoundsFieldNumber = 144;
8574 private readonly static bool UseImpliedBoundsDefaultValue = true;
8575
8576 private bool useImpliedBounds_;
8580
8582 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8583 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8584 public bool UseImpliedBounds {
8585 get { if ((_hasBits3 & 2048) != 0) { return useImpliedBounds_; } else { return UseImpliedBoundsDefaultValue; } }
8586 set {
8587 _hasBits3 |= 2048;
8588 useImpliedBounds_ = value;
8590 }
8592 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8593 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8595 get { return (_hasBits3 & 2048) != 0; }
8596 }
8598 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8599 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8600 public void ClearUseImpliedBounds() {
8601 _hasBits3 &= ~2048;
8602 }
8603
8605 public const int PolishLpSolutionFieldNumber = 175;
8606 private readonly static bool PolishLpSolutionDefaultValue = false;
8607
8608 private bool polishLpSolution_;
8612
8615 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8616 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8617 public bool PolishLpSolution {
8618 get { if ((_hasBits4 & 128) != 0) { return polishLpSolution_; } else { return PolishLpSolutionDefaultValue; } }
8619 set {
8620 _hasBits4 |= 128;
8621 polishLpSolution_ = value;
8622 }
8623 }
8624
8625 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8626 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8627 public bool HasPolishLpSolution {
8628 get { return (_hasBits4 & 128) != 0; }
8629 }
8631 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8632 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8633 public void ClearPolishLpSolution() {
8634 _hasBits4 &= ~128;
8635 }
8636
8637 /// <summary>Field number for the "lp_primal_tolerance" field.</summary>
8638 public const int LpPrimalToleranceFieldNumber = 266;
8639 private readonly static double LpPrimalToleranceDefaultValue = 1e-07D;
8640
8641 private double lpPrimalTolerance_;
8644
8647 /// solves.
8648 /// </summary>
8649 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8650 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8651 public double LpPrimalTolerance {
8652 get { if ((_hasBits6 & 65536) != 0) { return lpPrimalTolerance_; } else { return LpPrimalToleranceDefaultValue; } }
8653 set {
8654 _hasBits6 |= 65536;
8655 lpPrimalTolerance_ = value;
8656 }
8657 }
8659 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8660 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8661 public bool HasLpPrimalTolerance {
8662 get { return (_hasBits6 & 65536) != 0; }
8663 }
8665 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8666 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8667 public void ClearLpPrimalTolerance() {
8668 _hasBits6 &= ~65536;
8669 }
8672 public const int LpDualToleranceFieldNumber = 267;
8673 private readonly static double LpDualToleranceDefaultValue = 1e-07D;
8674
8675 private double lpDualTolerance_;
8676 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8677 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8678 public double LpDualTolerance {
8679 get { if ((_hasBits6 & 131072) != 0) { return lpDualTolerance_; } else { return LpDualToleranceDefaultValue; } }
8680 set {
8681 _hasBits6 |= 131072;
8682 lpDualTolerance_ = value;
8683 }
8684 }
8686 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8687 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8688 public bool HasLpDualTolerance {
8689 get { return (_hasBits6 & 131072) != 0; }
8690 }
8692 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8693 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8694 public void ClearLpDualTolerance() {
8695 _hasBits6 &= ~131072;
8696 }
8697
8699 public const int ConvertIntervalsFieldNumber = 177;
8700 private readonly static bool ConvertIntervalsDefaultValue = true;
8701
8702 private bool convertIntervals_;
8704 /// Temporary flag util the feature is more mature. This convert intervals to
8705 /// the newer proto format that support affine start/var/end instead of just
8706 /// variables.
8707 /// </summary>
8708 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8709 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8710 public bool ConvertIntervals {
8711 get { if ((_hasBits4 & 512) != 0) { return convertIntervals_; } else { return ConvertIntervalsDefaultValue; } }
8712 set {
8713 _hasBits4 |= 512;
8714 convertIntervals_ = value;
8715 }
8716 }
8717
8718 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8719 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8721 get { return (_hasBits4 & 512) != 0; }
8722 }
8723
8724 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8725 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8726 public void ClearConvertIntervals() {
8727 _hasBits4 &= ~512;
8728 }
8729
8731 public const int SymmetryLevelFieldNumber = 183;
8732 private readonly static int SymmetryLevelDefaultValue = 2;
8733
8734 private int symmetryLevel_;
8738
8741 /// symmetry as possible in presolve.
8742 /// </summary>
8743 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8744 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8745 public int SymmetryLevel {
8746 get { if ((_hasBits4 & 32768) != 0) { return symmetryLevel_; } else { return SymmetryLevelDefaultValue; } }
8747 set {
8748 _hasBits4 |= 32768;
8749 symmetryLevel_ = value;
8750 }
8751 }
8753 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8754 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8755 public bool HasSymmetryLevel {
8756 get { return (_hasBits4 & 32768) != 0; }
8757 }
8759 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8760 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8761 public void ClearSymmetryLevel() {
8762 _hasBits4 &= ~32768;
8764
8766 public const int UseSymmetryInLpFieldNumber = 301;
8767 private readonly static bool UseSymmetryInLpDefaultValue = false;
8768
8769 private bool useSymmetryInLp_;
8770
8773 /// This can help significantly on symmetric problem. However there is
8774 /// currently a bit of overhead as the rest of the solver need to do some
8775 /// translation between the folded LP and the rest of the problem.
8776 /// </summary>
8777 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8778 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8779 public bool UseSymmetryInLp {
8780 get { if ((_hasBits7 & 262144) != 0) { return useSymmetryInLp_; } else { return UseSymmetryInLpDefaultValue; } }
8781 set {
8782 _hasBits7 |= 262144;
8783 useSymmetryInLp_ = value;
8785 }
8787 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8788 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8789 public bool HasUseSymmetryInLp {
8790 get { return (_hasBits7 & 262144) != 0; }
8791 }
8793 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8794 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8795 public void ClearUseSymmetryInLp() {
8796 _hasBits7 &= ~262144;
8797 }
8800 public const int KeepSymmetryInPresolveFieldNumber = 303;
8801 private readonly static bool KeepSymmetryInPresolveDefaultValue = false;
8802
8803 private bool keepSymmetryInPresolve_;
8805
8808 /// will disable a bunch of presolve operations that could be supported.
8809 /// </summary>
8810 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8811 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8812 public bool KeepSymmetryInPresolve {
8813 get { if ((_hasBits7 & 1048576) != 0) { return keepSymmetryInPresolve_; } else { return KeepSymmetryInPresolveDefaultValue; } }
8814 set {
8815 _hasBits7 |= 1048576;
8816 keepSymmetryInPresolve_ = value;
8817 }
8818 }
8820 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8821 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8822 public bool HasKeepSymmetryInPresolve {
8823 get { return (_hasBits7 & 1048576) != 0; }
8824 }
8826 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8827 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8828 public void ClearKeepSymmetryInPresolve() {
8829 _hasBits7 &= ~1048576;
8830 }
8831
8832 /// <summary>Field number for the "symmetry_detection_deterministic_time_limit" field.</summary>
8834 private readonly static double SymmetryDetectionDeterministicTimeLimitDefaultValue = 1D;
8835
8836 private double symmetryDetectionDeterministicTimeLimit_;
8839
8840 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8841 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8843 get { if ((_hasBits7 & 524288) != 0) { return symmetryDetectionDeterministicTimeLimit_; } else { return SymmetryDetectionDeterministicTimeLimitDefaultValue; } }
8844 set {
8845 _hasBits7 |= 524288;
8846 symmetryDetectionDeterministicTimeLimit_ = value;
8847 }
8850 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8851 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8852 public bool HasSymmetryDetectionDeterministicTimeLimit {
8853 get { return (_hasBits7 & 524288) != 0; }
8854 }
8856 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8857 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8858 public void ClearSymmetryDetectionDeterministicTimeLimit() {
8859 _hasBits7 &= ~524288;
8860 }
8861
8863 public const int NewLinearPropagationFieldNumber = 224;
8864 private readonly static bool NewLinearPropagationDefaultValue = true;
8866 private bool newLinearPropagation_;
8872 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8873 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8874 public bool NewLinearPropagation {
8875 get { if ((_hasBits5 & 16384) != 0) { return newLinearPropagation_; } else { return NewLinearPropagationDefaultValue; } }
8876 set {
8877 _hasBits5 |= 16384;
8878 newLinearPropagation_ = value;
8879 }
8880 }
8881 /// <summary>Gets whether the "new_linear_propagation" field is set</summary>
8882 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8883 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8884 public bool HasNewLinearPropagation {
8885 get { return (_hasBits5 & 16384) != 0; }
8888 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8889 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8890 public void ClearNewLinearPropagation() {
8891 _hasBits5 &= ~16384;
8892 }
8893
8895 public const int LinearSplitSizeFieldNumber = 256;
8896 private readonly static int LinearSplitSizeDefaultValue = 100;
8897
8898 private int linearSplitSize_;
8902
8904 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8905 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8906 public int LinearSplitSize {
8907 get { if ((_hasBits6 & 64) != 0) { return linearSplitSize_; } else { return LinearSplitSizeDefaultValue; } }
8908 set {
8909 _hasBits6 |= 64;
8910 linearSplitSize_ = value;
8912 }
8914 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8915 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8917 get { return (_hasBits6 & 64) != 0; }
8918 }
8920 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8921 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8922 public void ClearLinearSplitSize() {
8923 _hasBits6 &= ~64;
8924 }
8925
8927 public const int LinearizationLevelFieldNumber = 90;
8928 private readonly static int LinearizationLevelDefaultValue = 1;
8929
8930 private int linearizationLevel_;
8934
8937 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8938 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8939 public int LinearizationLevel {
8940 get { if ((_hasBits2 & 1) != 0) { return linearizationLevel_; } else { return LinearizationLevelDefaultValue; } }
8941 set {
8942 _hasBits2 |= 1;
8943 linearizationLevel_ = value;
8944 }
8945 }
8946
8947 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8948 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8949 public bool HasLinearizationLevel {
8950 get { return (_hasBits2 & 1) != 0; }
8951 }
8953 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8954 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8955 public void ClearLinearizationLevel() {
8956 _hasBits2 &= ~1;
8957 }
8958
8959 /// <summary>Field number for the "boolean_encoding_level" field.</summary>
8960 public const int BooleanEncodingLevelFieldNumber = 107;
8961 private readonly static int BooleanEncodingLevelDefaultValue = 1;
8962
8963 private int booleanEncodingLevel_;
8966
8968 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8969 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8970 public int BooleanEncodingLevel {
8971 get { if ((_hasBits2 & 8192) != 0) { return booleanEncodingLevel_; } else { return BooleanEncodingLevelDefaultValue; } }
8972 set {
8973 _hasBits2 |= 8192;
8974 booleanEncodingLevel_ = value;
8976 }
8978 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8979 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8981 get { return (_hasBits2 & 8192) != 0; }
8982 }
8984 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
8985 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
8986 public void ClearBooleanEncodingLevel() {
8987 _hasBits2 &= ~8192;
8988 }
8989
8991 public const int MaxDomainSizeWhenEncodingEqNeqConstraintsFieldNumber = 191;
8992 private readonly static int MaxDomainSizeWhenEncodingEqNeqConstraintsDefaultValue = 16;
8993
8994 private int maxDomainSizeWhenEncodingEqNeqConstraints_;
8999
9001 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9002 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9004 get { if ((_hasBits4 & 2097152) != 0) { return maxDomainSizeWhenEncodingEqNeqConstraints_; } else { return MaxDomainSizeWhenEncodingEqNeqConstraintsDefaultValue; } }
9005 set {
9006 _hasBits4 |= 2097152;
9007 maxDomainSizeWhenEncodingEqNeqConstraints_ = value;
9009 }
9011 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9012 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9014 get { return (_hasBits4 & 2097152) != 0; }
9015 }
9017 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9018 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9019 public void ClearMaxDomainSizeWhenEncodingEqNeqConstraints() {
9020 _hasBits4 &= ~2097152;
9021 }
9022
9023 /// <summary>Field number for the "max_num_cuts" field.</summary>
9024 public const int MaxNumCutsFieldNumber = 91;
9025 private readonly static int MaxNumCutsDefaultValue = 10000;
9026
9027 private int maxNumCuts_;
9030
9033 /// generate cuts but only keep the best n or something.
9034 /// </summary>
9035 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9036 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9037 public int MaxNumCuts {
9038 get { if ((_hasBits2 & 2) != 0) { return maxNumCuts_; } else { return MaxNumCutsDefaultValue; } }
9039 set {
9040 _hasBits2 |= 2;
9041 maxNumCuts_ = value;
9042 }
9043 }
9045 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9046 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9047 public bool HasMaxNumCuts {
9048 get { return (_hasBits2 & 2) != 0; }
9049 }
9051 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9052 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9053 public void ClearMaxNumCuts() {
9054 _hasBits2 &= ~2;
9055 }
9058 public const int CutLevelFieldNumber = 196;
9059 private readonly static int CutLevelDefaultValue = 1;
9060
9061 private int cutLevel_;
9063
9066 /// </summary>
9067 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9068 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9069 public int CutLevel {
9070 get { if ((_hasBits4 & 67108864) != 0) { return cutLevel_; } else { return CutLevelDefaultValue; } }
9071 set {
9072 _hasBits4 |= 67108864;
9073 cutLevel_ = value;
9074 }
9075 }
9077 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9078 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9079 public bool HasCutLevel {
9080 get { return (_hasBits4 & 67108864) != 0; }
9081 }
9083 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9084 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9085 public void ClearCutLevel() {
9086 _hasBits4 &= ~67108864;
9087 }
9088
9090 public const int OnlyAddCutsAtLevelZeroFieldNumber = 92;
9091 private readonly static bool OnlyAddCutsAtLevelZeroDefaultValue = false;
9092
9093 private bool onlyAddCutsAtLevelZero_;
9098 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9099 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9100 public bool OnlyAddCutsAtLevelZero {
9101 get { if ((_hasBits2 & 4) != 0) { return onlyAddCutsAtLevelZero_; } else { return OnlyAddCutsAtLevelZeroDefaultValue; } }
9102 set {
9103 _hasBits2 |= 4;
9104 onlyAddCutsAtLevelZero_ = value;
9105 }
9106 }
9107 /// <summary>Gets whether the "only_add_cuts_at_level_zero" field is set</summary>
9108 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9109 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9110 public bool HasOnlyAddCutsAtLevelZero {
9111 get { return (_hasBits2 & 4) != 0; }
9114 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9115 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9116 public void ClearOnlyAddCutsAtLevelZero() {
9117 _hasBits2 &= ~4;
9118 }
9119
9121 public const int AddObjectiveCutFieldNumber = 197;
9122 private readonly static bool AddObjectiveCutDefaultValue = false;
9124 private bool addObjectiveCut_;
9130
9132 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9133 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9134 public bool AddObjectiveCut {
9135 get { if ((_hasBits4 & 134217728) != 0) { return addObjectiveCut_; } else { return AddObjectiveCutDefaultValue; } }
9136 set {
9137 _hasBits4 |= 134217728;
9138 addObjectiveCut_ = value;
9140 }
9142 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9143 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9145 get { return (_hasBits4 & 134217728) != 0; }
9146 }
9148 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9149 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9150 public void ClearAddObjectiveCut() {
9151 _hasBits4 &= ~134217728;
9152 }
9153
9154 /// <summary>Field number for the "add_cg_cuts" field.</summary>
9155 public const int AddCgCutsFieldNumber = 117;
9156 private readonly static bool AddCgCutsDefaultValue = true;
9157
9158 private bool addCgCuts_;
9161
9163 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9164 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9165 public bool AddCgCuts {
9166 get { if ((_hasBits2 & 4194304) != 0) { return addCgCuts_; } else { return AddCgCutsDefaultValue; } }
9167 set {
9168 _hasBits2 |= 4194304;
9169 addCgCuts_ = value;
9171 }
9173 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9174 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9175 public bool HasAddCgCuts {
9176 get { return (_hasBits2 & 4194304) != 0; }
9177 }
9179 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9180 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9181 public void ClearAddCgCuts() {
9182 _hasBits2 &= ~4194304;
9183 }
9184
9186 public const int AddMirCutsFieldNumber = 120;
9187 private readonly static bool AddMirCutsDefaultValue = true;
9189 private bool addMirCuts_;
9194 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9195 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9196 public bool AddMirCuts {
9197 get { if ((_hasBits2 & 16777216) != 0) { return addMirCuts_; } else { return AddMirCutsDefaultValue; } }
9198 set {
9199 _hasBits2 |= 16777216;
9200 addMirCuts_ = value;
9201 }
9202 }
9204 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9205 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9206 public bool HasAddMirCuts {
9207 get { return (_hasBits2 & 16777216) != 0; }
9208 }
9210 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9211 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9212 public void ClearAddMirCuts() {
9213 _hasBits2 &= ~16777216;
9214 }
9215
9217 public const int AddZeroHalfCutsFieldNumber = 169;
9218 private readonly static bool AddZeroHalfCutsDefaultValue = true;
9220 private bool addZeroHalfCuts_;
9225 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9226 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9227 public bool AddZeroHalfCuts {
9228 get { if ((_hasBits4 & 4) != 0) { return addZeroHalfCuts_; } else { return AddZeroHalfCutsDefaultValue; } }
9229 set {
9230 _hasBits4 |= 4;
9231 addZeroHalfCuts_ = value;
9232 }
9233 }
9235 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9236 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9237 public bool HasAddZeroHalfCuts {
9238 get { return (_hasBits4 & 4) != 0; }
9239 }
9241 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9242 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9243 public void ClearAddZeroHalfCuts() {
9244 _hasBits4 &= ~4;
9245 }
9246
9248 public const int AddCliqueCutsFieldNumber = 172;
9249 private readonly static bool AddCliqueCutsDefaultValue = true;
9251 private bool addCliqueCuts_;
9257 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9258 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9259 public bool AddCliqueCuts {
9260 get { if ((_hasBits4 & 16) != 0) { return addCliqueCuts_; } else { return AddCliqueCutsDefaultValue; } }
9261 set {
9262 _hasBits4 |= 16;
9263 addCliqueCuts_ = value;
9264 }
9265 }
9266 /// <summary>Gets whether the "add_clique_cuts" field is set</summary>
9267 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9268 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9269 public bool HasAddCliqueCuts {
9270 get { return (_hasBits4 & 16) != 0; }
9273 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9274 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9275 public void ClearAddCliqueCuts() {
9276 _hasBits4 &= ~16;
9277 }
9278
9280 public const int AddRltCutsFieldNumber = 279;
9281 private readonly static bool AddRltCutsDefaultValue = true;
9282
9283 private bool addRltCuts_;
9288 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9289 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9290 public bool AddRltCuts {
9291 get { if ((_hasBits6 & 536870912) != 0) { return addRltCuts_; } else { return AddRltCutsDefaultValue; } }
9292 set {
9293 _hasBits6 |= 536870912;
9294 addRltCuts_ = value;
9295 }
9296 }
9297 /// <summary>Gets whether the "add_rlt_cuts" field is set</summary>
9298 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9299 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9300 public bool HasAddRltCuts {
9301 get { return (_hasBits6 & 536870912) != 0; }
9304 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9305 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9306 public void ClearAddRltCuts() {
9307 _hasBits6 &= ~536870912;
9308 }
9309
9311 public const int MaxAllDiffCutSizeFieldNumber = 148;
9312 private readonly static int MaxAllDiffCutSizeDefaultValue = 64;
9314 private int maxAllDiffCutSize_;
9320 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9321 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9322 public int MaxAllDiffCutSize {
9323 get { if ((_hasBits3 & 32768) != 0) { return maxAllDiffCutSize_; } else { return MaxAllDiffCutSizeDefaultValue; } }
9324 set {
9325 _hasBits3 |= 32768;
9326 maxAllDiffCutSize_ = value;
9327 }
9328 }
9329 /// <summary>Gets whether the "max_all_diff_cut_size" field is set</summary>
9330 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9331 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9332 public bool HasMaxAllDiffCutSize {
9333 get { return (_hasBits3 & 32768) != 0; }
9336 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9337 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9338 public void ClearMaxAllDiffCutSize() {
9339 _hasBits3 &= ~32768;
9340 }
9341
9343 public const int AddLinMaxCutsFieldNumber = 152;
9344 private readonly static bool AddLinMaxCutsDefaultValue = true;
9345
9346 private bool addLinMaxCuts_;
9351
9352 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9353 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9354 public bool AddLinMaxCuts {
9355 get { if ((_hasBits3 & 262144) != 0) { return addLinMaxCuts_; } else { return AddLinMaxCutsDefaultValue; } }
9356 set {
9357 _hasBits3 |= 262144;
9358 addLinMaxCuts_ = value;
9359 }
9362 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9363 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9364 public bool HasAddLinMaxCuts {
9365 get { return (_hasBits3 & 262144) != 0; }
9366 }
9368 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9369 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9370 public void ClearAddLinMaxCuts() {
9371 _hasBits3 &= ~262144;
9372 }
9373
9375 public const int MaxIntegerRoundingScalingFieldNumber = 119;
9376 private readonly static int MaxIntegerRoundingScalingDefaultValue = 600;
9377
9378 private int maxIntegerRoundingScaling_;
9383
9386 /// Setting this to 2 result in the "strong fractional rouding" of Letchford
9387 /// and Lodi.
9388 /// </summary>
9389 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9390 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9391 public int MaxIntegerRoundingScaling {
9392 get { if ((_hasBits2 & 8388608) != 0) { return maxIntegerRoundingScaling_; } else { return MaxIntegerRoundingScalingDefaultValue; } }
9393 set {
9394 _hasBits2 |= 8388608;
9395 maxIntegerRoundingScaling_ = value;
9396 }
9399 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9400 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9401 public bool HasMaxIntegerRoundingScaling {
9402 get { return (_hasBits2 & 8388608) != 0; }
9403 }
9405 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9406 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9407 public void ClearMaxIntegerRoundingScaling() {
9408 _hasBits2 &= ~8388608;
9409 }
9410
9412 public const int AddLpConstraintsLazilyFieldNumber = 112;
9413 private readonly static bool AddLpConstraintsLazilyDefaultValue = true;
9414
9415 private bool addLpConstraintsLazily_;
9418 /// by the current LP solution batch by batch. A constraint that is only added
9419 /// like this is known as a "lazy" constraint in the literature, except that we
9420 /// currently consider all constraints as lazy here.
9421 /// </summary>
9422 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9423 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9425 get { if ((_hasBits2 & 131072) != 0) { return addLpConstraintsLazily_; } else { return AddLpConstraintsLazilyDefaultValue; } }
9426 set {
9427 _hasBits2 |= 131072;
9428 addLpConstraintsLazily_ = value;
9430 }
9432 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9433 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9434 public bool HasAddLpConstraintsLazily {
9435 get { return (_hasBits2 & 131072) != 0; }
9436 }
9438 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9439 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9440 public void ClearAddLpConstraintsLazily() {
9441 _hasBits2 &= ~131072;
9442 }
9443
9445 public const int RootLpIterationsFieldNumber = 227;
9446 private readonly static int RootLpIterationsDefaultValue = 2000;
9447
9448 private int rootLpIterations_;
9453
9455 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9456 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9457 public int RootLpIterations {
9458 get { if ((_hasBits5 & 131072) != 0) { return rootLpIterations_; } else { return RootLpIterationsDefaultValue; } }
9459 set {
9460 _hasBits5 |= 131072;
9461 rootLpIterations_ = value;
9463 }
9465 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9466 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9468 get { return (_hasBits5 & 131072) != 0; }
9469 }
9471 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9472 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9473 public void ClearRootLpIterations() {
9474 _hasBits5 &= ~131072;
9475 }
9476
9478 public const int MinOrthogonalityForLpConstraintsFieldNumber = 115;
9479 private readonly static double MinOrthogonalityForLpConstraintsDefaultValue = 0.05D;
9480
9481 private double minOrthogonalityForLpConstraints_;
9486
9489 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9490 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9491 public double MinOrthogonalityForLpConstraints {
9492 get { if ((_hasBits2 & 1048576) != 0) { return minOrthogonalityForLpConstraints_; } else { return MinOrthogonalityForLpConstraintsDefaultValue; } }
9493 set {
9494 _hasBits2 |= 1048576;
9495 minOrthogonalityForLpConstraints_ = value;
9496 }
9497 }
9498
9499 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9500 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9502 get { return (_hasBits2 & 1048576) != 0; }
9503 }
9505 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9506 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9507 public void ClearMinOrthogonalityForLpConstraints() {
9508 _hasBits2 &= ~1048576;
9509 }
9510
9513 private readonly static int MaxCutRoundsAtLevelZeroDefaultValue = 1;
9514
9515 private int maxCutRoundsAtLevelZero_;
9519 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9520 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9521 public int MaxCutRoundsAtLevelZero {
9522 get { if ((_hasBits3 & 1048576) != 0) { return maxCutRoundsAtLevelZero_; } else { return MaxCutRoundsAtLevelZeroDefaultValue; } }
9523 set {
9524 _hasBits3 |= 1048576;
9525 maxCutRoundsAtLevelZero_ = value;
9526 }
9527 }
9528 /// <summary>Gets whether the "max_cut_rounds_at_level_zero" field is set</summary>
9529 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9530 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9531 public bool HasMaxCutRoundsAtLevelZero {
9532 get { return (_hasBits3 & 1048576) != 0; }
9535 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9536 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9537 public void ClearMaxCutRoundsAtLevelZero() {
9538 _hasBits3 &= ~1048576;
9539 }
9540
9542 public const int MaxConsecutiveInactiveCountFieldNumber = 121;
9543 private readonly static int MaxConsecutiveInactiveCountDefaultValue = 100;
9544
9545 private int maxConsecutiveInactiveCount_;
9546 /// <summary>
9547 /// If a constraint/cut in LP is not active for that many consecutive OPTIMAL
9548 /// solves, remove it from the LP. Note that it might be added again later if
9549 /// it become violated by the current LP solution.
9550 /// </summary>
9551 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9552 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9553 public int MaxConsecutiveInactiveCount {
9554 get { if ((_hasBits2 & 33554432) != 0) { return maxConsecutiveInactiveCount_; } else { return MaxConsecutiveInactiveCountDefaultValue; } }
9555 set {
9556 _hasBits2 |= 33554432;
9557 maxConsecutiveInactiveCount_ = value;
9558 }
9559 }
9561 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9562 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9563 public bool HasMaxConsecutiveInactiveCount {
9564 get { return (_hasBits2 & 33554432) != 0; }
9565 }
9567 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9568 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9569 public void ClearMaxConsecutiveInactiveCount() {
9570 _hasBits2 &= ~33554432;
9571 }
9572
9574 public const int CutMaxActiveCountValueFieldNumber = 155;
9575 private readonly static double CutMaxActiveCountValueDefaultValue = 1e+10D;
9577 private double cutMaxActiveCountValue_;
9583 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9584 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9585 public double CutMaxActiveCountValue {
9586 get { if ((_hasBits3 & 2097152) != 0) { return cutMaxActiveCountValue_; } else { return CutMaxActiveCountValueDefaultValue; } }
9587 set {
9588 _hasBits3 |= 2097152;
9589 cutMaxActiveCountValue_ = value;
9590 }
9591 }
9592 /// <summary>Gets whether the "cut_max_active_count_value" field is set</summary>
9593 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9594 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9595 public bool HasCutMaxActiveCountValue {
9596 get { return (_hasBits3 & 2097152) != 0; }
9599 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9600 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9601 public void ClearCutMaxActiveCountValue() {
9602 _hasBits3 &= ~2097152;
9603 }
9604
9606 public const int CutActiveCountDecayFieldNumber = 156;
9607 private readonly static double CutActiveCountDecayDefaultValue = 0.8D;
9609 private double cutActiveCountDecay_;
9610 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9611 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9612 public double CutActiveCountDecay {
9613 get { if ((_hasBits3 & 4194304) != 0) { return cutActiveCountDecay_; } else { return CutActiveCountDecayDefaultValue; } }
9614 set {
9615 _hasBits3 |= 4194304;
9616 cutActiveCountDecay_ = value;
9617 }
9620 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9621 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9622 public bool HasCutActiveCountDecay {
9623 get { return (_hasBits3 & 4194304) != 0; }
9626 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9627 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9628 public void ClearCutActiveCountDecay() {
9629 _hasBits3 &= ~4194304;
9630 }
9631
9633 public const int CutCleanupTargetFieldNumber = 157;
9634 private readonly static int CutCleanupTargetDefaultValue = 1000;
9635
9636 private int cutCleanupTarget_;
9640 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9641 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9642 public int CutCleanupTarget {
9643 get { if ((_hasBits3 & 8388608) != 0) { return cutCleanupTarget_; } else { return CutCleanupTargetDefaultValue; } }
9644 set {
9645 _hasBits3 |= 8388608;
9646 cutCleanupTarget_ = value;
9647 }
9648 }
9650 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9651 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9652 public bool HasCutCleanupTarget {
9653 get { return (_hasBits3 & 8388608) != 0; }
9654 }
9656 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9657 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9658 public void ClearCutCleanupTarget() {
9659 _hasBits3 &= ~8388608;
9660 }
9663 public const int NewConstraintsBatchSizeFieldNumber = 122;
9664 private readonly static int NewConstraintsBatchSizeDefaultValue = 50;
9665
9666 private int newConstraintsBatchSize_;
9667 /// <summary>
9668 /// Add that many lazy constraints (or cuts) at once in the LP. Note that at
9669 /// the beginning of the solve, we do add more than this.
9670 /// </summary>
9671 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9672 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9673 public int NewConstraintsBatchSize {
9674 get { if ((_hasBits2 & 67108864) != 0) { return newConstraintsBatchSize_; } else { return NewConstraintsBatchSizeDefaultValue; } }
9675 set {
9676 _hasBits2 |= 67108864;
9677 newConstraintsBatchSize_ = value;
9678 }
9679 }
9680
9681 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9682 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9684 get { return (_hasBits2 & 67108864) != 0; }
9685 }
9686
9687 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9688 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9689 public void ClearNewConstraintsBatchSize() {
9690 _hasBits2 &= ~67108864;
9691 }
9692
9694 public const int ExploitIntegerLpSolutionFieldNumber = 94;
9695 private readonly static bool ExploitIntegerLpSolutionDefaultValue = true;
9696
9697 private bool exploitIntegerLpSolution_;
9704 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9705 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9706 public bool ExploitIntegerLpSolution {
9707 get { if ((_hasBits2 & 16) != 0) { return exploitIntegerLpSolution_; } else { return ExploitIntegerLpSolutionDefaultValue; } }
9708 set {
9709 _hasBits2 |= 16;
9710 exploitIntegerLpSolution_ = value;
9711 }
9712 }
9713 /// <summary>Gets whether the "exploit_integer_lp_solution" field is set</summary>
9714 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9715 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9716 public bool HasExploitIntegerLpSolution {
9717 get { return (_hasBits2 & 16) != 0; }
9720 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9721 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9722 public void ClearExploitIntegerLpSolution() {
9723 _hasBits2 &= ~16;
9724 }
9725
9727 public const int ExploitAllLpSolutionFieldNumber = 116;
9728 private readonly static bool ExploitAllLpSolutionDefaultValue = true;
9729
9730 private bool exploitAllLpSolution_;
9735
9736 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9737 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9739 get { if ((_hasBits2 & 2097152) != 0) { return exploitAllLpSolution_; } else { return ExploitAllLpSolutionDefaultValue; } }
9740 set {
9741 _hasBits2 |= 2097152;
9742 exploitAllLpSolution_ = value;
9743 }
9746 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9747 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9748 public bool HasExploitAllLpSolution {
9749 get { return (_hasBits2 & 2097152) != 0; }
9750 }
9752 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9753 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9754 public void ClearExploitAllLpSolution() {
9755 _hasBits2 &= ~2097152;
9756 }
9757
9759 public const int ExploitBestSolutionFieldNumber = 130;
9760 private readonly static bool ExploitBestSolutionDefaultValue = false;
9762 private bool exploitBestSolution_;
9766 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9767 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9768 public bool ExploitBestSolution {
9769 get { if ((_hasBits3 & 4) != 0) { return exploitBestSolution_; } else { return ExploitBestSolutionDefaultValue; } }
9770 set {
9771 _hasBits3 |= 4;
9772 exploitBestSolution_ = value;
9773 }
9774 }
9776 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9777 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9778 public bool HasExploitBestSolution {
9779 get { return (_hasBits3 & 4) != 0; }
9780 }
9782 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9783 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9784 public void ClearExploitBestSolution() {
9785 _hasBits3 &= ~4;
9786 }
9787
9789 public const int ExploitRelaxationSolutionFieldNumber = 161;
9790 private readonly static bool ExploitRelaxationSolutionDefaultValue = false;
9791
9792 private bool exploitRelaxationSolution_;
9793 /// <summary>
9794 /// When branching on a variable, follow the last best relaxation solution
9795 /// value. We use the relaxation with the tightest bound on the objective as
9796 /// the best relaxation solution.
9797 /// </summary>
9798 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9799 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9800 public bool ExploitRelaxationSolution {
9801 get { if ((_hasBits3 & 67108864) != 0) { return exploitRelaxationSolution_; } else { return ExploitRelaxationSolutionDefaultValue; } }
9802 set {
9803 _hasBits3 |= 67108864;
9804 exploitRelaxationSolution_ = value;
9805 }
9806 }
9808 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9809 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9810 public bool HasExploitRelaxationSolution {
9811 get { return (_hasBits3 & 67108864) != 0; }
9812 }
9814 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9815 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9816 public void ClearExploitRelaxationSolution() {
9817 _hasBits3 &= ~67108864;
9818 }
9819
9821 public const int ExploitObjectiveFieldNumber = 131;
9822 private readonly static bool ExploitObjectiveDefaultValue = true;
9824 private bool exploitObjective_;
9829 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9830 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9831 public bool ExploitObjective {
9832 get { if ((_hasBits3 & 8) != 0) { return exploitObjective_; } else { return ExploitObjectiveDefaultValue; } }
9833 set {
9834 _hasBits3 |= 8;
9835 exploitObjective_ = value;
9836 }
9837 }
9839 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9840 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9841 public bool HasExploitObjective {
9842 get { return (_hasBits3 & 8) != 0; }
9843 }
9845 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9846 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9847 public void ClearExploitObjective() {
9848 _hasBits3 &= ~8;
9849 }
9850
9852 public const int DetectLinearizedProductFieldNumber = 277;
9853 private readonly static bool DetectLinearizedProductDefaultValue = false;
9854
9855 private bool detectLinearizedProduct_;
9861 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9862 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9863 public bool DetectLinearizedProduct {
9864 get { if ((_hasBits6 & 134217728) != 0) { return detectLinearizedProduct_; } else { return DetectLinearizedProductDefaultValue; } }
9865 set {
9866 _hasBits6 |= 134217728;
9867 detectLinearizedProduct_ = value;
9868 }
9869 }
9871 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9872 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9873 public bool HasDetectLinearizedProduct {
9874 get { return (_hasBits6 & 134217728) != 0; }
9875 }
9877 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9878 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9879 public void ClearDetectLinearizedProduct() {
9880 _hasBits6 &= ~134217728;
9881 }
9882
9884 public const int UseNewIntegerConflictResolutionFieldNumber = 336;
9885 private readonly static bool UseNewIntegerConflictResolutionDefaultValue = false;
9887 private bool useNewIntegerConflictResolution_;
9892 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9893 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9895 get { if ((_hasBits8 & 524288) != 0) { return useNewIntegerConflictResolution_; } else { return UseNewIntegerConflictResolutionDefaultValue; } }
9896 set {
9897 _hasBits8 |= 524288;
9898 useNewIntegerConflictResolution_ = value;
9899 }
9900 }
9902 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9903 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9905 get { return (_hasBits8 & 524288) != 0; }
9906 }
9908 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9909 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9911 _hasBits8 &= ~524288;
9912 }
9913
9915 public const int Create1UipBooleanDuringIcrFieldNumber = 341;
9916 private readonly static bool Create1UipBooleanDuringIcrDefaultValue = true;
9917
9918 private bool create1UipBooleanDuringIcr_;
9923 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9924 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9925 public bool Create1UipBooleanDuringIcr {
9926 get { if ((_hasBits8 & 8388608) != 0) { return create1UipBooleanDuringIcr_; } else { return Create1UipBooleanDuringIcrDefaultValue; } }
9927 set {
9928 _hasBits8 |= 8388608;
9929 create1UipBooleanDuringIcr_ = value;
9930 }
9931 }
9933 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9934 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9935 public bool HasCreate1UipBooleanDuringIcr {
9936 get { return (_hasBits8 & 8388608) != 0; }
9937 }
9939 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9940 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9941 public void ClearCreate1UipBooleanDuringIcr() {
9942 _hasBits8 &= ~8388608;
9943 }
9944
9946 public const int MipMaxBoundFieldNumber = 124;
9947 private readonly static double MipMaxBoundDefaultValue = 1e+07D;
9948
9949 private double mipMaxBound_;
9955 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9956 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9957 public double MipMaxBound {
9958 get { if ((_hasBits2 & 268435456) != 0) { return mipMaxBound_; } else { return MipMaxBoundDefaultValue; } }
9959 set {
9960 _hasBits2 |= 268435456;
9961 mipMaxBound_ = value;
9962 }
9963 }
9965 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9966 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9967 public bool HasMipMaxBound {
9968 get { return (_hasBits2 & 268435456) != 0; }
9969 }
9971 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9972 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9973 public void ClearMipMaxBound() {
9974 _hasBits2 &= ~268435456;
9975 }
9976
9978 public const int MipVarScalingFieldNumber = 125;
9979 private readonly static double MipVarScalingDefaultValue = 1D;
9981 private double mipVarScaling_;
9987 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9988 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9989 public double MipVarScaling {
9990 get { if ((_hasBits2 & 536870912) != 0) { return mipVarScaling_; } else { return MipVarScalingDefaultValue; } }
9991 set {
9992 _hasBits2 |= 536870912;
9993 mipVarScaling_ = value;
9994 }
9995 }
9996 /// <summary>Gets whether the "mip_var_scaling" field is set</summary>
9997 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
9998 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
9999 public bool HasMipVarScaling {
10000 get { return (_hasBits2 & 536870912) != 0; }
10003 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10004 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10005 public void ClearMipVarScaling() {
10006 _hasBits2 &= ~536870912;
10007 }
10008
10010 public const int MipScaleLargeDomainFieldNumber = 225;
10011 private readonly static bool MipScaleLargeDomainDefaultValue = false;
10013 private bool mipScaleLargeDomain_;
10019 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10020 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10021 public bool MipScaleLargeDomain {
10022 get { if ((_hasBits5 & 32768) != 0) { return mipScaleLargeDomain_; } else { return MipScaleLargeDomainDefaultValue; } }
10023 set {
10024 _hasBits5 |= 32768;
10025 mipScaleLargeDomain_ = value;
10026 }
10027 }
10028 /// <summary>Gets whether the "mip_scale_large_domain" field is set</summary>
10029 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10030 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10031 public bool HasMipScaleLargeDomain {
10032 get { return (_hasBits5 & 32768) != 0; }
10035 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10036 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10037 public void ClearMipScaleLargeDomain() {
10038 _hasBits5 &= ~32768;
10039 }
10040
10042 public const int MipAutomaticallyScaleVariablesFieldNumber = 166;
10043 private readonly static bool MipAutomaticallyScaleVariablesDefaultValue = true;
10045 private bool mipAutomaticallyScaleVariables_;
10051
10053 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10054 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10055 public bool MipAutomaticallyScaleVariables {
10056 get { if ((_hasBits3 & -2147483648) != 0) { return mipAutomaticallyScaleVariables_; } else { return MipAutomaticallyScaleVariablesDefaultValue; } }
10057 set {
10058 _hasBits3 |= -2147483648;
10059 mipAutomaticallyScaleVariables_ = value;
10061 }
10063 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10064 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10066 get { return (_hasBits3 & -2147483648) != 0; }
10067 }
10069 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10070 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10071 public void ClearMipAutomaticallyScaleVariables() {
10072 _hasBits3 &= ~-2147483648;
10073 }
10074
10076 public const int OnlySolveIpFieldNumber = 222;
10077 private readonly static bool OnlySolveIpDefaultValue = false;
10078
10079 private bool onlySolveIp_;
10083
10086 /// This parameters is here to prevent user to think the solution is optimal
10087 /// when it might not be. One will need to manually set this to false to solve
10088 /// a MIP model where the optimal might be different.
10089 ///
10090 /// Note that this is tested after some MIP presolve steps, so even if not
10091 /// all original variable are integer, we might end up with a pure IP after
10092 /// presolve and after implied integer detection.
10093 /// </summary>
10094 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10095 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10096 public bool OnlySolveIp {
10097 get { if ((_hasBits5 & 4096) != 0) { return onlySolveIp_; } else { return OnlySolveIpDefaultValue; } }
10098 set {
10099 _hasBits5 |= 4096;
10100 onlySolveIp_ = value;
10101 }
10102 }
10104 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10105 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10106 public bool HasOnlySolveIp {
10107 get { return (_hasBits5 & 4096) != 0; }
10108 }
10110 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10111 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10112 public void ClearOnlySolveIp() {
10113 _hasBits5 &= ~4096;
10114 }
10115
10117 public const int MipWantedPrecisionFieldNumber = 126;
10118 private readonly static double MipWantedPrecisionDefaultValue = 1e-06D;
10119
10120 private double mipWantedPrecision_;
10123
10126 /// does not exceed this threshold.
10127 ///
10128 /// Note that we also detect constraint with rational coefficients and scale
10129 /// them accordingly when it seems better instead of using a power of 2.
10130 ///
10131 /// We also relax all constraint bounds by this absolute value. For pure
10132 /// integer constraint, if this value if lower than one, this will not change
10133 /// anything. However it is needed when scaling MIP problems.
10134 ///
10135 /// If we manage to scale a constraint correctly, the maximum error we can make
10136 /// will be twice this value (once for the scaling error and once for the
10137 /// relaxed bounds). If we are not able to scale that well, we will display
10138 /// that fact but still scale as best as we can.
10139 /// </summary>
10140 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10141 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10142 public double MipWantedPrecision {
10143 get { if ((_hasBits2 & 1073741824) != 0) { return mipWantedPrecision_; } else { return MipWantedPrecisionDefaultValue; } }
10144 set {
10145 _hasBits2 |= 1073741824;
10146 mipWantedPrecision_ = value;
10147 }
10148 }
10150 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10151 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10152 public bool HasMipWantedPrecision {
10153 get { return (_hasBits2 & 1073741824) != 0; }
10154 }
10156 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10157 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10158 public void ClearMipWantedPrecision() {
10159 _hasBits2 &= ~1073741824;
10160 }
10161
10164 private readonly static int MipMaxActivityExponentDefaultValue = 53;
10165
10166 private int mipMaxActivityExponent_;
10169 /// activity (and objective value) according to the initial variable domain to
10170 /// be smaller than 2 to this given power. Because of this, we cannot always
10171 /// reach the "mip_wanted_precision" parameter above.
10172 ///
10173 /// This can go as high as 62, but some internal algo currently abort early if
10174 /// they might run into integer overflow, so it is better to keep it a bit
10175 /// lower than this.
10176 /// </summary>
10177 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10178 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10179 public int MipMaxActivityExponent {
10180 get { if ((_hasBits2 & -2147483648) != 0) { return mipMaxActivityExponent_; } else { return MipMaxActivityExponentDefaultValue; } }
10181 set {
10182 _hasBits2 |= -2147483648;
10183 mipMaxActivityExponent_ = value;
10184 }
10185 }
10187 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10188 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10189 public bool HasMipMaxActivityExponent {
10190 get { return (_hasBits2 & -2147483648) != 0; }
10191 }
10193 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10194 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10195 public void ClearMipMaxActivityExponent() {
10196 _hasBits2 &= ~-2147483648;
10197 }
10198
10200 public const int MipCheckPrecisionFieldNumber = 128;
10201 private readonly static double MipCheckPrecisionDefaultValue = 0.0001D;
10203 private double mipCheckPrecision_;
10209 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10210 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10211 public double MipCheckPrecision {
10212 get { if ((_hasBits3 & 1) != 0) { return mipCheckPrecision_; } else { return MipCheckPrecisionDefaultValue; } }
10213 set {
10214 _hasBits3 |= 1;
10215 mipCheckPrecision_ = value;
10216 }
10217 }
10218 /// <summary>Gets whether the "mip_check_precision" field is set</summary>
10219 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10220 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10221 public bool HasMipCheckPrecision {
10222 get { return (_hasBits3 & 1) != 0; }
10225 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10226 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10227 public void ClearMipCheckPrecision() {
10228 _hasBits3 &= ~1;
10229 }
10230
10232 public const int MipComputeTrueObjectiveBoundFieldNumber = 198;
10233 private readonly static bool MipComputeTrueObjectiveBoundDefaultValue = true;
10234
10235 private bool mipComputeTrueObjectiveBound_;
10240 /// but if you don't care about having a precise lower bound, you can turn it
10241 /// off.
10242 /// </summary>
10243 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10244 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10245 public bool MipComputeTrueObjectiveBound {
10246 get { if ((_hasBits4 & 268435456) != 0) { return mipComputeTrueObjectiveBound_; } else { return MipComputeTrueObjectiveBoundDefaultValue; } }
10247 set {
10248 _hasBits4 |= 268435456;
10249 mipComputeTrueObjectiveBound_ = value;
10251 }
10253 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10254 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10255 public bool HasMipComputeTrueObjectiveBound {
10256 get { return (_hasBits4 & 268435456) != 0; }
10257 }
10259 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10260 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10262 _hasBits4 &= ~268435456;
10263 }
10264
10266 public const int MipMaxValidMagnitudeFieldNumber = 199;
10267 private readonly static double MipMaxValidMagnitudeDefaultValue = 1e+20D;
10268
10269 private double mipMaxValidMagnitude_;
10272 /// the model will be reported invalid. This is needed to avoid floating point
10273 /// overflow when evaluating bounds * coeff for instance. We are a bit more
10274 /// defensive, but in practice, users shouldn't use super large values in a
10275 /// MIP.
10276 /// </summary>
10277 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10278 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10279 public double MipMaxValidMagnitude {
10280 get { if ((_hasBits4 & 536870912) != 0) { return mipMaxValidMagnitude_; } else { return MipMaxValidMagnitudeDefaultValue; } }
10281 set {
10282 _hasBits4 |= 536870912;
10283 mipMaxValidMagnitude_ = value;
10284 }
10285 }
10287 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10288 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10289 public bool HasMipMaxValidMagnitude {
10290 get { return (_hasBits4 & 536870912) != 0; }
10291 }
10293 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10294 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10295 public void ClearMipMaxValidMagnitude() {
10296 _hasBits4 &= ~536870912;
10297 }
10298
10300 public const int MipTreatHighMagnitudeBoundsAsInfinityFieldNumber = 278;
10301 private readonly static bool MipTreatHighMagnitudeBoundsAsInfinityDefaultValue = false;
10302
10303 private bool mipTreatHighMagnitudeBoundsAsInfinity_;
10306 /// magnitude greater than the mip_max_valid_magnitude will result with a
10307 /// invalid model. This flags change the behavior such that such bounds are
10308 /// silently transformed to +∞ or -∞.
10309 ///
10310 /// It is recommended to keep it at false, and create valid bounds.
10311 /// </summary>
10312 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10313 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10315 get { if ((_hasBits6 & 268435456) != 0) { return mipTreatHighMagnitudeBoundsAsInfinity_; } else { return MipTreatHighMagnitudeBoundsAsInfinityDefaultValue; } }
10316 set {
10317 _hasBits6 |= 268435456;
10318 mipTreatHighMagnitudeBoundsAsInfinity_ = value;
10319 }
10320 }
10322 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10323 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10325 get { return (_hasBits6 & 268435456) != 0; }
10326 }
10328 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10329 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10331 _hasBits6 &= ~268435456;
10332 }
10333
10335 public const int MipDropToleranceFieldNumber = 232;
10336 private readonly static double MipDropToleranceDefaultValue = 1e-16D;
10337
10338 private double mipDropTolerance_;
10340 /// Any value in the input mip with a magnitude lower than this will be set to
10341 /// zero. This is to avoid some issue in LP presolving.
10342 /// </summary>
10343 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10344 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10345 public double MipDropTolerance {
10346 get { if ((_hasBits5 & 2097152) != 0) { return mipDropTolerance_; } else { return MipDropToleranceDefaultValue; } }
10347 set {
10348 _hasBits5 |= 2097152;
10349 mipDropTolerance_ = value;
10351 }
10353 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10354 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10355 public bool HasMipDropTolerance {
10356 get { return (_hasBits5 & 2097152) != 0; }
10357 }
10359 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10360 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10362 _hasBits5 &= ~2097152;
10363 }
10364
10366 public const int MipPresolveLevelFieldNumber = 261;
10367 private readonly static int MipPresolveLevelDefaultValue = 2;
10368
10369 private int mipPresolveLevel_;
10376 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10377 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10378 public int MipPresolveLevel {
10379 get { if ((_hasBits6 & 2048) != 0) { return mipPresolveLevel_; } else { return MipPresolveLevelDefaultValue; } }
10380 set {
10381 _hasBits6 |= 2048;
10382 mipPresolveLevel_ = value;
10383 }
10384 }
10386 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10387 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10388 public bool HasMipPresolveLevel {
10389 get { return (_hasBits6 & 2048) != 0; }
10390 }
10392 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10393 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10394 public void ClearMipPresolveLevel() {
10395 _hasBits6 &= ~2048;
10396 }
10398 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10399 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10400 public override bool Equals(object other) {
10401 return Equals(other as SatParameters);
10402 }
10403
10404 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10405 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10406 public bool Equals(SatParameters other) {
10407 if (ReferenceEquals(other, null)) {
10408 return false;
10409 }
10410 if (ReferenceEquals(other, this)) {
10411 return true;
10412 }
10413 if (Name != other.Name) return false;
10414 if (PreferredVariableOrder != other.PreferredVariableOrder) return false;
10415 if (InitialPolarity != other.InitialPolarity) return false;
10416 if (UsePhaseSaving != other.UsePhaseSaving) return false;
10418 if (PolarityExploitLsHints != other.PolarityExploitLsHints) return false;
10419 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RandomPolarityRatio, other.RandomPolarityRatio)) return false;
10420 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RandomBranchesRatio, other.RandomBranchesRatio)) return false;
10421 if (UseErwaHeuristic != other.UseErwaHeuristic) return false;
10422 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InitialVariablesActivity, other.InitialVariablesActivity)) return false;
10430 if (SubsumeDuringVivification != other.SubsumeDuringVivification) return false;
10432 if (MaxBackjumpLevels != other.MaxBackjumpLevels) return false;
10434 if (ClauseCleanupPeriod != other.ClauseCleanupPeriod) return false;
10436 if (ClauseCleanupTarget != other.ClauseCleanupTarget) return false;
10437 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ClauseCleanupRatio, other.ClauseCleanupRatio)) return false;
10438 if (ClauseCleanupLbdBound != other.ClauseCleanupLbdBound) return false;
10439 if (ClauseCleanupLbdTier1 != other.ClauseCleanupLbdTier1) return false;
10441 if (ClauseCleanupOrdering != other.ClauseCleanupOrdering) return false;
10442 if (PbCleanupIncrement != other.PbCleanupIncrement) return false;
10443 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PbCleanupRatio, other.PbCleanupRatio)) return false;
10444 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(VariableActivityDecay, other.VariableActivityDecay)) return false;
10445 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxVariableActivityValue, other.MaxVariableActivityValue)) return false;
10446 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GlucoseMaxDecay, other.GlucoseMaxDecay)) return false;
10447 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(GlucoseDecayIncrement, other.GlucoseDecayIncrement)) return false;
10449 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ClauseActivityDecay, other.ClauseActivityDecay)) return false;
10450 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxClauseActivityValue, other.MaxClauseActivityValue)) return false;
10451 if(!restartAlgorithms_.Equals(other.restartAlgorithms_)) return false;
10452 if (DefaultRestartAlgorithms != other.DefaultRestartAlgorithms) return false;
10453 if (RestartPeriod != other.RestartPeriod) return false;
10454 if (RestartRunningWindowSize != other.RestartRunningWindowSize) return false;
10455 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RestartDlAverageRatio, other.RestartDlAverageRatio)) return false;
10456 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RestartLbdAverageRatio, other.RestartLbdAverageRatio)) return false;
10457 if (UseBlockingRestart != other.UseBlockingRestart) return false;
10458 if (BlockingRestartWindowSize != other.BlockingRestartWindowSize) return false;
10459 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(BlockingRestartMultiplier, other.BlockingRestartMultiplier)) return false;
10461 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(StrategyChangeIncreaseRatio, other.StrategyChangeIncreaseRatio)) return false;
10462 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxTimeInSeconds, other.MaxTimeInSeconds)) return false;
10463 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxDeterministicTime, other.MaxDeterministicTime)) return false;
10464 if (MaxNumDeterministicBatches != other.MaxNumDeterministicBatches) return false;
10465 if (MaxNumberOfConflicts != other.MaxNumberOfConflicts) return false;
10466 if (MaxMemoryInMb != other.MaxMemoryInMb) return false;
10467 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(AbsoluteGapLimit, other.AbsoluteGapLimit)) return false;
10468 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RelativeGapLimit, other.RelativeGapLimit)) return false;
10469 if (RandomSeed != other.RandomSeed) return false;
10470 if (PermuteVariableRandomly != other.PermuteVariableRandomly) return false;
10472 if (UseAbslRandom != other.UseAbslRandom) return false;
10473 if (LogSearchProgress != other.LogSearchProgress) return false;
10474 if (LogSubsolverStatistics != other.LogSubsolverStatistics) return false;
10475 if (LogPrefix != other.LogPrefix) return false;
10476 if (LogToStdout != other.LogToStdout) return false;
10477 if (LogToResponse != other.LogToResponse) return false;
10478 if (UsePbResolution != other.UsePbResolution) return false;
10480 if (CountAssumptionLevelsInLbd != other.CountAssumptionLevelsInLbd) return false;
10481 if (PresolveBveThreshold != other.PresolveBveThreshold) return false;
10482 if (FilterSatPostsolveClauses != other.FilterSatPostsolveClauses) return false;
10483 if (PresolveBveClauseWeight != other.PresolveBveClauseWeight) return false;
10484 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ProbingDeterministicTimeLimit, other.ProbingDeterministicTimeLimit)) return false;
10485 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PresolveProbingDeterministicTimeLimit, other.PresolveProbingDeterministicTimeLimit)) return false;
10486 if (PresolveBlockedClause != other.PresolveBlockedClause) return false;
10487 if (PresolveUseBva != other.PresolveUseBva) return false;
10488 if (PresolveBvaThreshold != other.PresolveBvaThreshold) return false;
10489 if (MaxPresolveIterations != other.MaxPresolveIterations) return false;
10490 if (CpModelPresolve != other.CpModelPresolve) return false;
10491 if (CpModelProbingLevel != other.CpModelProbingLevel) return false;
10492 if (CpModelUseSatPresolve != other.CpModelUseSatPresolve) return false;
10494 if (RemoveFixedVariablesEarly != other.RemoveFixedVariablesEarly) return false;
10495 if (DetectTableWithCost != other.DetectTableWithCost) return false;
10496 if (TableCompressionLevel != other.TableCompressionLevel) return false;
10497 if (ExpandAlldiffConstraints != other.ExpandAlldiffConstraints) return false;
10498 if (MaxAlldiffDomainSize != other.MaxAlldiffDomainSize) return false;
10499 if (ExpandReservoirConstraints != other.ExpandReservoirConstraints) return false;
10503 if (MaxLinMaxSizeForExpansion != other.MaxLinMaxSizeForExpansion) return false;
10504 if (DisableConstraintExpansion != other.DisableConstraintExpansion) return false;
10506 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MergeNoOverlapWorkLimit, other.MergeNoOverlapWorkLimit)) return false;
10507 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MergeAtMostOneWorkLimit, other.MergeAtMostOneWorkLimit)) return false;
10508 if (PresolveSubstitutionLevel != other.PresolveSubstitutionLevel) return false;
10510 if (PresolveInclusionWorkLimit != other.PresolveInclusionWorkLimit) return false;
10511 if (IgnoreNames != other.IgnoreNames) return false;
10512 if (InferAllDiffs != other.InferAllDiffs) return false;
10513 if (FindBigLinearOverlap != other.FindBigLinearOverlap) return false;
10515 if (UseSatInprocessing != other.UseSatInprocessing) return false;
10516 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InprocessingDtimeRatio, other.InprocessingDtimeRatio)) return false;
10517 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InprocessingProbingDtime, other.InprocessingProbingDtime)) return false;
10518 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InprocessingMinimizationDtime, other.InprocessingMinimizationDtime)) return false;
10522 if (InprocessingUseSatSweeping != other.InprocessingUseSatSweeping) return false;
10523 if (NumWorkers != other.NumWorkers) return false;
10524 if (NumSearchWorkers != other.NumSearchWorkers) return false;
10525 if (NumFullSubsolvers != other.NumFullSubsolvers) return false;
10526 if(!subsolvers_.Equals(other.subsolvers_)) return false;
10527 if(!extraSubsolvers_.Equals(other.extraSubsolvers_)) return false;
10528 if(!ignoreSubsolvers_.Equals(other.ignoreSubsolvers_)) return false;
10529 if(!filterSubsolvers_.Equals(other.filterSubsolvers_)) return false;
10530 if(!subsolverParams_.Equals(other.subsolverParams_)) return false;
10531 if (InterleaveSearch != other.InterleaveSearch) return false;
10532 if (InterleaveBatchSize != other.InterleaveBatchSize) return false;
10533 if (ShareObjectiveBounds != other.ShareObjectiveBounds) return false;
10534 if (ShareLevelZeroBounds != other.ShareLevelZeroBounds) return false;
10535 if (ShareLinear2Bounds != other.ShareLinear2Bounds) return false;
10536 if (ShareBinaryClauses != other.ShareBinaryClauses) return false;
10537 if (ShareGlueClauses != other.ShareGlueClauses) return false;
10538 if (MinimizeSharedClauses != other.MinimizeSharedClauses) return false;
10539 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ShareGlueClausesDtime, other.ShareGlueClausesDtime)) return false;
10540 if (CheckLratProof != other.CheckLratProof) return false;
10541 if (CheckMergedLratProof != other.CheckMergedLratProof) return false;
10542 if (OutputLratProof != other.OutputLratProof) return false;
10543 if (CheckDratProof != other.CheckDratProof) return false;
10544 if (OutputDratProof != other.OutputDratProof) return false;
10545 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MaxDratTimeInSeconds, other.MaxDratTimeInSeconds)) return false;
10548 if (DebugCrashOnBadHint != other.DebugCrashOnBadHint) return false;
10550 if (DebugCrashIfLratCheckFails != other.DebugCrashIfLratCheckFails) return false;
10551 if (UseOptimizationHints != other.UseOptimizationHints) return false;
10552 if (CoreMinimizationLevel != other.CoreMinimizationLevel) return false;
10553 if (FindMultipleCores != other.FindMultipleCores) return false;
10554 if (CoverOptimization != other.CoverOptimization) return false;
10555 if (MaxSatAssumptionOrder != other.MaxSatAssumptionOrder) return false;
10557 if (MaxSatStratification != other.MaxSatStratification) return false;
10558 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PropagationLoopDetectionFactor, other.PropagationLoopDetectionFactor)) return false;
10570 if (ExploitAllPrecedences != other.ExploitAllPrecedences) return false;
10581 if (UseAllDifferentForCircuit != other.UseAllDifferentForCircuit) return false;
10586 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(RoutingCutDpEffort, other.RoutingCutDpEffort)) return false;
10588 if (SearchBranching != other.SearchBranching) return false;
10589 if (HintConflictLimit != other.HintConflictLimit) return false;
10590 if (RepairHint != other.RepairHint) return false;
10592 if (UseProbingSearch != other.UseProbingSearch) return false;
10593 if (UseExtendedProbing != other.UseExtendedProbing) return false;
10595 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ShavingDeterministicTimeInProbingSearch, other.ShavingDeterministicTimeInProbingSearch)) return false;
10596 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ShavingSearchDeterministicTime, other.ShavingSearchDeterministicTime)) return false;
10597 if (ShavingSearchThreshold != other.ShavingSearchThreshold) return false;
10598 if (UseObjectiveLbSearch != other.UseObjectiveLbSearch) return false;
10599 if (UseObjectiveShavingSearch != other.UseObjectiveShavingSearch) return false;
10600 if (VariablesShavingLevel != other.VariablesShavingLevel) return false;
10602 if (OptimizeWithCore != other.OptimizeWithCore) return false;
10603 if (OptimizeWithLbTreeSearch != other.OptimizeWithLbTreeSearch) return false;
10604 if (SaveLpBasisInLbTreeSearch != other.SaveLpBasisInLbTreeSearch) return false;
10605 if (BinarySearchNumConflicts != other.BinarySearchNumConflicts) return false;
10606 if (OptimizeWithMaxHs != other.OptimizeWithMaxHs) return false;
10607 if (UseFeasibilityJump != other.UseFeasibilityJump) return false;
10608 if (UseLsOnly != other.UseLsOnly) return false;
10609 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpDecay, other.FeasibilityJumpDecay)) return false;
10612 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpBatchDtime, other.FeasibilityJumpBatchDtime)) return false;
10613 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpVarRandomizationProbability, other.FeasibilityJumpVarRandomizationProbability)) return false;
10614 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(FeasibilityJumpVarPerburbationRangeRatio, other.FeasibilityJumpVarPerburbationRangeRatio)) return false;
10617 if (NumViolationLs != other.NumViolationLs) return false;
10619 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ViolationLsCompoundMoveProbability, other.ViolationLsCompoundMoveProbability)) return false;
10620 if (SharedTreeNumWorkers != other.SharedTreeNumWorkers) return false;
10621 if (UseSharedTreeSearch != other.UseSharedTreeSearch) return false;
10625 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SharedTreeOpenLeavesPerWorker, other.SharedTreeOpenLeavesPerWorker)) return false;
10627 if (SharedTreeSplitStrategy != other.SharedTreeSplitStrategy) return false;
10628 if (SharedTreeBalanceTolerance != other.SharedTreeBalanceTolerance) return false;
10629 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SharedTreeSplitMinDtime, other.SharedTreeSplitMinDtime)) return false;
10630 if (EnumerateAllSolutions != other.EnumerateAllSolutions) return false;
10634 if (InstantiateAllVariables != other.InstantiateAllVariables) return false;
10636 if (StopAfterFirstSolution != other.StopAfterFirstSolution) return false;
10637 if (StopAfterPresolve != other.StopAfterPresolve) return false;
10638 if (StopAfterRootPropagation != other.StopAfterRootPropagation) return false;
10639 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LnsInitialDifficulty, other.LnsInitialDifficulty)) return false;
10640 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LnsInitialDeterministicLimit, other.LnsInitialDeterministicLimit)) return false;
10641 if (UseLns != other.UseLns) return false;
10642 if (UseLnsOnly != other.UseLnsOnly) return false;
10643 if (SolutionPoolSize != other.SolutionPoolSize) return false;
10644 if (SolutionPoolDiversityLimit != other.SolutionPoolDiversityLimit) return false;
10645 if (AlternativePoolSize != other.AlternativePoolSize) return false;
10646 if (UseRinsLns != other.UseRinsLns) return false;
10647 if (UseFeasibilityPump != other.UseFeasibilityPump) return false;
10648 if (UseLbRelaxLns != other.UseLbRelaxLns) return false;
10649 if (LbRelaxNumWorkersThreshold != other.LbRelaxNumWorkersThreshold) return false;
10650 if (FpRounding != other.FpRounding) return false;
10651 if (DiversifyLnsParams != other.DiversifyLnsParams) return false;
10652 if (RandomizeSearch != other.RandomizeSearch) return false;
10654 if (PushAllTasksTowardStart != other.PushAllTasksTowardStart) return false;
10655 if (UseOptionalVariables != other.UseOptionalVariables) return false;
10656 if (UseExactLpReason != other.UseExactLpReason) return false;
10657 if (UseCombinedNoOverlap != other.UseCombinedNoOverlap) return false;
10658 if (AtMostOneMaxExpansionSize != other.AtMostOneMaxExpansionSize) return false;
10659 if (CatchSigintSignal != other.CatchSigintSignal) return false;
10660 if (UseImpliedBounds != other.UseImpliedBounds) return false;
10661 if (PolishLpSolution != other.PolishLpSolution) return false;
10662 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LpPrimalTolerance, other.LpPrimalTolerance)) return false;
10663 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(LpDualTolerance, other.LpDualTolerance)) return false;
10664 if (ConvertIntervals != other.ConvertIntervals) return false;
10665 if (SymmetryLevel != other.SymmetryLevel) return false;
10666 if (UseSymmetryInLp != other.UseSymmetryInLp) return false;
10667 if (KeepSymmetryInPresolve != other.KeepSymmetryInPresolve) return false;
10668 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SymmetryDetectionDeterministicTimeLimit, other.SymmetryDetectionDeterministicTimeLimit)) return false;
10669 if (NewLinearPropagation != other.NewLinearPropagation) return false;
10670 if (LinearSplitSize != other.LinearSplitSize) return false;
10671 if (LinearizationLevel != other.LinearizationLevel) return false;
10672 if (BooleanEncodingLevel != other.BooleanEncodingLevel) return false;
10674 if (MaxNumCuts != other.MaxNumCuts) return false;
10675 if (CutLevel != other.CutLevel) return false;
10676 if (OnlyAddCutsAtLevelZero != other.OnlyAddCutsAtLevelZero) return false;
10677 if (AddObjectiveCut != other.AddObjectiveCut) return false;
10678 if (AddCgCuts != other.AddCgCuts) return false;
10679 if (AddMirCuts != other.AddMirCuts) return false;
10680 if (AddZeroHalfCuts != other.AddZeroHalfCuts) return false;
10681 if (AddCliqueCuts != other.AddCliqueCuts) return false;
10682 if (AddRltCuts != other.AddRltCuts) return false;
10683 if (MaxAllDiffCutSize != other.MaxAllDiffCutSize) return false;
10684 if (AddLinMaxCuts != other.AddLinMaxCuts) return false;
10685 if (MaxIntegerRoundingScaling != other.MaxIntegerRoundingScaling) return false;
10686 if (AddLpConstraintsLazily != other.AddLpConstraintsLazily) return false;
10687 if (RootLpIterations != other.RootLpIterations) return false;
10688 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MinOrthogonalityForLpConstraints, other.MinOrthogonalityForLpConstraints)) return false;
10689 if (MaxCutRoundsAtLevelZero != other.MaxCutRoundsAtLevelZero) return false;
10691 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CutMaxActiveCountValue, other.CutMaxActiveCountValue)) return false;
10692 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(CutActiveCountDecay, other.CutActiveCountDecay)) return false;
10693 if (CutCleanupTarget != other.CutCleanupTarget) return false;
10694 if (NewConstraintsBatchSize != other.NewConstraintsBatchSize) return false;
10695 if (ExploitIntegerLpSolution != other.ExploitIntegerLpSolution) return false;
10696 if (ExploitAllLpSolution != other.ExploitAllLpSolution) return false;
10697 if (ExploitBestSolution != other.ExploitBestSolution) return false;
10698 if (ExploitRelaxationSolution != other.ExploitRelaxationSolution) return false;
10699 if (ExploitObjective != other.ExploitObjective) return false;
10700 if (DetectLinearizedProduct != other.DetectLinearizedProduct) return false;
10702 if (Create1UipBooleanDuringIcr != other.Create1UipBooleanDuringIcr) return false;
10703 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipMaxBound, other.MipMaxBound)) return false;
10704 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipVarScaling, other.MipVarScaling)) return false;
10705 if (MipScaleLargeDomain != other.MipScaleLargeDomain) return false;
10707 if (OnlySolveIp != other.OnlySolveIp) return false;
10708 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipWantedPrecision, other.MipWantedPrecision)) return false;
10709 if (MipMaxActivityExponent != other.MipMaxActivityExponent) return false;
10710 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipCheckPrecision, other.MipCheckPrecision)) return false;
10712 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipMaxValidMagnitude, other.MipMaxValidMagnitude)) return false;
10714 if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(MipDropTolerance, other.MipDropTolerance)) return false;
10715 if (MipPresolveLevel != other.MipPresolveLevel) return false;
10716 return Equals(_unknownFields, other._unknownFields);
10717 }
10718
10719 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
10720 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
10721 public override int GetHashCode() {
10722 int hash = 1;
10723 if (HasName) hash ^= Name.GetHashCode();
10724 if (HasPreferredVariableOrder) hash ^= PreferredVariableOrder.GetHashCode();
10725 if (HasInitialPolarity) hash ^= InitialPolarity.GetHashCode();
10726 if (HasUsePhaseSaving) hash ^= UsePhaseSaving.GetHashCode();
10727 if (HasPolarityRephaseIncrement) hash ^= PolarityRephaseIncrement.GetHashCode();
10728 if (HasPolarityExploitLsHints) hash ^= PolarityExploitLsHints.GetHashCode();
10729 if (HasRandomPolarityRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RandomPolarityRatio);
10730 if (HasRandomBranchesRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RandomBranchesRatio);
10731 if (HasUseErwaHeuristic) hash ^= UseErwaHeuristic.GetHashCode();
10732 if (HasInitialVariablesActivity) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InitialVariablesActivity);
10733 if (HasAlsoBumpVariablesInConflictReasons) hash ^= AlsoBumpVariablesInConflictReasons.GetHashCode();
10734 if (HasMinimizationAlgorithm) hash ^= MinimizationAlgorithm.GetHashCode();
10735 if (HasBinaryMinimizationAlgorithm) hash ^= BinaryMinimizationAlgorithm.GetHashCode();
10736 if (HasSubsumptionDuringConflictAnalysis) hash ^= SubsumptionDuringConflictAnalysis.GetHashCode();
10737 if (HasExtraSubsumptionDuringConflictAnalysis) hash ^= ExtraSubsumptionDuringConflictAnalysis.GetHashCode();
10738 if (HasDecisionSubsumptionDuringConflictAnalysis) hash ^= DecisionSubsumptionDuringConflictAnalysis.GetHashCode();
10739 if (HasEagerlySubsumeLastNConflicts) hash ^= EagerlySubsumeLastNConflicts.GetHashCode();
10740 if (HasSubsumeDuringVivification) hash ^= SubsumeDuringVivification.GetHashCode();
10741 if (HasUseChronologicalBacktracking) hash ^= UseChronologicalBacktracking.GetHashCode();
10742 if (HasMaxBackjumpLevels) hash ^= MaxBackjumpLevels.GetHashCode();
10743 if (HasChronologicalBacktrackMinConflicts) hash ^= ChronologicalBacktrackMinConflicts.GetHashCode();
10744 if (HasClauseCleanupPeriod) hash ^= ClauseCleanupPeriod.GetHashCode();
10745 if (HasClauseCleanupPeriodIncrement) hash ^= ClauseCleanupPeriodIncrement.GetHashCode();
10746 if (HasClauseCleanupTarget) hash ^= ClauseCleanupTarget.GetHashCode();
10747 if (HasClauseCleanupRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ClauseCleanupRatio);
10748 if (HasClauseCleanupLbdBound) hash ^= ClauseCleanupLbdBound.GetHashCode();
10749 if (HasClauseCleanupLbdTier1) hash ^= ClauseCleanupLbdTier1.GetHashCode();
10750 if (HasClauseCleanupLbdTier2) hash ^= ClauseCleanupLbdTier2.GetHashCode();
10751 if (HasClauseCleanupOrdering) hash ^= ClauseCleanupOrdering.GetHashCode();
10752 if (HasPbCleanupIncrement) hash ^= PbCleanupIncrement.GetHashCode();
10753 if (HasPbCleanupRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PbCleanupRatio);
10754 if (HasVariableActivityDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(VariableActivityDecay);
10755 if (HasMaxVariableActivityValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxVariableActivityValue);
10756 if (HasGlucoseMaxDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GlucoseMaxDecay);
10757 if (HasGlucoseDecayIncrement) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(GlucoseDecayIncrement);
10758 if (HasGlucoseDecayIncrementPeriod) hash ^= GlucoseDecayIncrementPeriod.GetHashCode();
10759 if (HasClauseActivityDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ClauseActivityDecay);
10760 if (HasMaxClauseActivityValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxClauseActivityValue);
10761 hash ^= restartAlgorithms_.GetHashCode();
10762 if (HasDefaultRestartAlgorithms) hash ^= DefaultRestartAlgorithms.GetHashCode();
10763 if (HasRestartPeriod) hash ^= RestartPeriod.GetHashCode();
10764 if (HasRestartRunningWindowSize) hash ^= RestartRunningWindowSize.GetHashCode();
10765 if (HasRestartDlAverageRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RestartDlAverageRatio);
10766 if (HasRestartLbdAverageRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RestartLbdAverageRatio);
10767 if (HasUseBlockingRestart) hash ^= UseBlockingRestart.GetHashCode();
10768 if (HasBlockingRestartWindowSize) hash ^= BlockingRestartWindowSize.GetHashCode();
10769 if (HasBlockingRestartMultiplier) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(BlockingRestartMultiplier);
10770 if (HasNumConflictsBeforeStrategyChanges) hash ^= NumConflictsBeforeStrategyChanges.GetHashCode();
10771 if (HasStrategyChangeIncreaseRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(StrategyChangeIncreaseRatio);
10772 if (HasMaxTimeInSeconds) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxTimeInSeconds);
10773 if (HasMaxDeterministicTime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxDeterministicTime);
10774 if (HasMaxNumDeterministicBatches) hash ^= MaxNumDeterministicBatches.GetHashCode();
10775 if (HasMaxNumberOfConflicts) hash ^= MaxNumberOfConflicts.GetHashCode();
10776 if (HasMaxMemoryInMb) hash ^= MaxMemoryInMb.GetHashCode();
10777 if (HasAbsoluteGapLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(AbsoluteGapLimit);
10778 if (HasRelativeGapLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RelativeGapLimit);
10779 if (HasRandomSeed) hash ^= RandomSeed.GetHashCode();
10780 if (HasPermuteVariableRandomly) hash ^= PermuteVariableRandomly.GetHashCode();
10781 if (HasPermutePresolveConstraintOrder) hash ^= PermutePresolveConstraintOrder.GetHashCode();
10782 if (HasUseAbslRandom) hash ^= UseAbslRandom.GetHashCode();
10783 if (HasLogSearchProgress) hash ^= LogSearchProgress.GetHashCode();
10784 if (HasLogSubsolverStatistics) hash ^= LogSubsolverStatistics.GetHashCode();
10785 if (HasLogPrefix) hash ^= LogPrefix.GetHashCode();
10786 if (HasLogToStdout) hash ^= LogToStdout.GetHashCode();
10787 if (HasLogToResponse) hash ^= LogToResponse.GetHashCode();
10788 if (HasUsePbResolution) hash ^= UsePbResolution.GetHashCode();
10791 if (HasPresolveBveThreshold) hash ^= PresolveBveThreshold.GetHashCode();
10793 if (HasPresolveBveClauseWeight) hash ^= PresolveBveClauseWeight.GetHashCode();
10794 if (HasProbingDeterministicTimeLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ProbingDeterministicTimeLimit);
10795 if (HasPresolveProbingDeterministicTimeLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PresolveProbingDeterministicTimeLimit);
10796 if (HasPresolveBlockedClause) hash ^= PresolveBlockedClause.GetHashCode();
10797 if (HasPresolveUseBva) hash ^= PresolveUseBva.GetHashCode();
10798 if (HasPresolveBvaThreshold) hash ^= PresolveBvaThreshold.GetHashCode();
10799 if (HasMaxPresolveIterations) hash ^= MaxPresolveIterations.GetHashCode();
10800 if (HasCpModelPresolve) hash ^= CpModelPresolve.GetHashCode();
10801 if (HasCpModelProbingLevel) hash ^= CpModelProbingLevel.GetHashCode();
10802 if (HasCpModelUseSatPresolve) hash ^= CpModelUseSatPresolve.GetHashCode();
10805 if (HasDetectTableWithCost) hash ^= DetectTableWithCost.GetHashCode();
10806 if (HasTableCompressionLevel) hash ^= TableCompressionLevel.GetHashCode();
10807 if (HasExpandAlldiffConstraints) hash ^= ExpandAlldiffConstraints.GetHashCode();
10808 if (HasMaxAlldiffDomainSize) hash ^= MaxAlldiffDomainSize.GetHashCode();
10816 if (HasMergeNoOverlapWorkLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MergeNoOverlapWorkLimit);
10817 if (HasMergeAtMostOneWorkLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MergeAtMostOneWorkLimit);
10821 if (HasIgnoreNames) hash ^= IgnoreNames.GetHashCode();
10822 if (HasInferAllDiffs) hash ^= InferAllDiffs.GetHashCode();
10823 if (HasFindBigLinearOverlap) hash ^= FindBigLinearOverlap.GetHashCode();
10825 if (HasUseSatInprocessing) hash ^= UseSatInprocessing.GetHashCode();
10826 if (HasInprocessingDtimeRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InprocessingDtimeRatio);
10827 if (HasInprocessingProbingDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InprocessingProbingDtime);
10828 if (HasInprocessingMinimizationDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InprocessingMinimizationDtime);
10833 if (HasNumWorkers) hash ^= NumWorkers.GetHashCode();
10834 if (HasNumSearchWorkers) hash ^= NumSearchWorkers.GetHashCode();
10835 if (HasNumFullSubsolvers) hash ^= NumFullSubsolvers.GetHashCode();
10836 hash ^= subsolvers_.GetHashCode();
10837 hash ^= extraSubsolvers_.GetHashCode();
10838 hash ^= ignoreSubsolvers_.GetHashCode();
10839 hash ^= filterSubsolvers_.GetHashCode();
10840 hash ^= subsolverParams_.GetHashCode();
10841 if (HasInterleaveSearch) hash ^= InterleaveSearch.GetHashCode();
10842 if (HasInterleaveBatchSize) hash ^= InterleaveBatchSize.GetHashCode();
10843 if (HasShareObjectiveBounds) hash ^= ShareObjectiveBounds.GetHashCode();
10844 if (HasShareLevelZeroBounds) hash ^= ShareLevelZeroBounds.GetHashCode();
10845 if (HasShareLinear2Bounds) hash ^= ShareLinear2Bounds.GetHashCode();
10846 if (HasShareBinaryClauses) hash ^= ShareBinaryClauses.GetHashCode();
10847 if (HasShareGlueClauses) hash ^= ShareGlueClauses.GetHashCode();
10848 if (HasMinimizeSharedClauses) hash ^= MinimizeSharedClauses.GetHashCode();
10849 if (HasShareGlueClausesDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ShareGlueClausesDtime);
10850 if (HasCheckLratProof) hash ^= CheckLratProof.GetHashCode();
10851 if (HasCheckMergedLratProof) hash ^= CheckMergedLratProof.GetHashCode();
10852 if (HasOutputLratProof) hash ^= OutputLratProof.GetHashCode();
10853 if (HasCheckDratProof) hash ^= CheckDratProof.GetHashCode();
10854 if (HasOutputDratProof) hash ^= OutputDratProof.GetHashCode();
10855 if (HasMaxDratTimeInSeconds) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MaxDratTimeInSeconds);
10858 if (HasDebugCrashOnBadHint) hash ^= DebugCrashOnBadHint.GetHashCode();
10861 if (HasUseOptimizationHints) hash ^= UseOptimizationHints.GetHashCode();
10862 if (HasCoreMinimizationLevel) hash ^= CoreMinimizationLevel.GetHashCode();
10863 if (HasFindMultipleCores) hash ^= FindMultipleCores.GetHashCode();
10864 if (HasCoverOptimization) hash ^= CoverOptimization.GetHashCode();
10865 if (HasMaxSatAssumptionOrder) hash ^= MaxSatAssumptionOrder.GetHashCode();
10867 if (HasMaxSatStratification) hash ^= MaxSatStratification.GetHashCode();
10868 if (HasPropagationLoopDetectionFactor) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PropagationLoopDetectionFactor);
10880 if (HasExploitAllPrecedences) hash ^= ExploitAllPrecedences.GetHashCode();
10896 if (HasRoutingCutDpEffort) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(RoutingCutDpEffort);
10898 if (HasSearchBranching) hash ^= SearchBranching.GetHashCode();
10899 if (HasHintConflictLimit) hash ^= HintConflictLimit.GetHashCode();
10900 if (HasRepairHint) hash ^= RepairHint.GetHashCode();
10902 if (HasUseProbingSearch) hash ^= UseProbingSearch.GetHashCode();
10903 if (HasUseExtendedProbing) hash ^= UseExtendedProbing.GetHashCode();
10905 if (HasShavingDeterministicTimeInProbingSearch) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ShavingDeterministicTimeInProbingSearch);
10906 if (HasShavingSearchDeterministicTime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ShavingSearchDeterministicTime);
10907 if (HasShavingSearchThreshold) hash ^= ShavingSearchThreshold.GetHashCode();
10908 if (HasUseObjectiveLbSearch) hash ^= UseObjectiveLbSearch.GetHashCode();
10910 if (HasVariablesShavingLevel) hash ^= VariablesShavingLevel.GetHashCode();
10912 if (HasOptimizeWithCore) hash ^= OptimizeWithCore.GetHashCode();
10913 if (HasOptimizeWithLbTreeSearch) hash ^= OptimizeWithLbTreeSearch.GetHashCode();
10915 if (HasBinarySearchNumConflicts) hash ^= BinarySearchNumConflicts.GetHashCode();
10916 if (HasOptimizeWithMaxHs) hash ^= OptimizeWithMaxHs.GetHashCode();
10917 if (HasUseFeasibilityJump) hash ^= UseFeasibilityJump.GetHashCode();
10918 if (HasUseLsOnly) hash ^= UseLsOnly.GetHashCode();
10919 if (HasFeasibilityJumpDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpDecay);
10922 if (HasFeasibilityJumpBatchDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpBatchDtime);
10923 if (HasFeasibilityJumpVarRandomizationProbability) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpVarRandomizationProbability);
10924 if (HasFeasibilityJumpVarPerburbationRangeRatio) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(FeasibilityJumpVarPerburbationRangeRatio);
10927 if (HasNumViolationLs) hash ^= NumViolationLs.GetHashCode();
10929 if (HasViolationLsCompoundMoveProbability) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ViolationLsCompoundMoveProbability);
10930 if (HasSharedTreeNumWorkers) hash ^= SharedTreeNumWorkers.GetHashCode();
10931 if (HasUseSharedTreeSearch) hash ^= UseSharedTreeSearch.GetHashCode();
10935 if (HasSharedTreeOpenLeavesPerWorker) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SharedTreeOpenLeavesPerWorker);
10937 if (HasSharedTreeSplitStrategy) hash ^= SharedTreeSplitStrategy.GetHashCode();
10939 if (HasSharedTreeSplitMinDtime) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SharedTreeSplitMinDtime);
10940 if (HasEnumerateAllSolutions) hash ^= EnumerateAllSolutions.GetHashCode();
10944 if (HasInstantiateAllVariables) hash ^= InstantiateAllVariables.GetHashCode();
10946 if (HasStopAfterFirstSolution) hash ^= StopAfterFirstSolution.GetHashCode();
10947 if (HasStopAfterPresolve) hash ^= StopAfterPresolve.GetHashCode();
10948 if (HasStopAfterRootPropagation) hash ^= StopAfterRootPropagation.GetHashCode();
10949 if (HasLnsInitialDifficulty) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LnsInitialDifficulty);
10950 if (HasLnsInitialDeterministicLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LnsInitialDeterministicLimit);
10951 if (HasUseLns) hash ^= UseLns.GetHashCode();
10952 if (HasUseLnsOnly) hash ^= UseLnsOnly.GetHashCode();
10953 if (HasSolutionPoolSize) hash ^= SolutionPoolSize.GetHashCode();
10955 if (HasAlternativePoolSize) hash ^= AlternativePoolSize.GetHashCode();
10956 if (HasUseRinsLns) hash ^= UseRinsLns.GetHashCode();
10957 if (HasUseFeasibilityPump) hash ^= UseFeasibilityPump.GetHashCode();
10958 if (HasUseLbRelaxLns) hash ^= UseLbRelaxLns.GetHashCode();
10960 if (HasFpRounding) hash ^= FpRounding.GetHashCode();
10961 if (HasDiversifyLnsParams) hash ^= DiversifyLnsParams.GetHashCode();
10962 if (HasRandomizeSearch) hash ^= RandomizeSearch.GetHashCode();
10964 if (HasPushAllTasksTowardStart) hash ^= PushAllTasksTowardStart.GetHashCode();
10965 if (HasUseOptionalVariables) hash ^= UseOptionalVariables.GetHashCode();
10966 if (HasUseExactLpReason) hash ^= UseExactLpReason.GetHashCode();
10967 if (HasUseCombinedNoOverlap) hash ^= UseCombinedNoOverlap.GetHashCode();
10969 if (HasCatchSigintSignal) hash ^= CatchSigintSignal.GetHashCode();
10970 if (HasUseImpliedBounds) hash ^= UseImpliedBounds.GetHashCode();
10971 if (HasPolishLpSolution) hash ^= PolishLpSolution.GetHashCode();
10972 if (HasLpPrimalTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LpPrimalTolerance);
10973 if (HasLpDualTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(LpDualTolerance);
10974 if (HasConvertIntervals) hash ^= ConvertIntervals.GetHashCode();
10975 if (HasSymmetryLevel) hash ^= SymmetryLevel.GetHashCode();
10976 if (HasUseSymmetryInLp) hash ^= UseSymmetryInLp.GetHashCode();
10977 if (HasKeepSymmetryInPresolve) hash ^= KeepSymmetryInPresolve.GetHashCode();
10978 if (HasSymmetryDetectionDeterministicTimeLimit) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SymmetryDetectionDeterministicTimeLimit);
10979 if (HasNewLinearPropagation) hash ^= NewLinearPropagation.GetHashCode();
10980 if (HasLinearSplitSize) hash ^= LinearSplitSize.GetHashCode();
10981 if (HasLinearizationLevel) hash ^= LinearizationLevel.GetHashCode();
10982 if (HasBooleanEncodingLevel) hash ^= BooleanEncodingLevel.GetHashCode();
10984 if (HasMaxNumCuts) hash ^= MaxNumCuts.GetHashCode();
10985 if (HasCutLevel) hash ^= CutLevel.GetHashCode();
10986 if (HasOnlyAddCutsAtLevelZero) hash ^= OnlyAddCutsAtLevelZero.GetHashCode();
10987 if (HasAddObjectiveCut) hash ^= AddObjectiveCut.GetHashCode();
10988 if (HasAddCgCuts) hash ^= AddCgCuts.GetHashCode();
10989 if (HasAddMirCuts) hash ^= AddMirCuts.GetHashCode();
10990 if (HasAddZeroHalfCuts) hash ^= AddZeroHalfCuts.GetHashCode();
10991 if (HasAddCliqueCuts) hash ^= AddCliqueCuts.GetHashCode();
10992 if (HasAddRltCuts) hash ^= AddRltCuts.GetHashCode();
10993 if (HasMaxAllDiffCutSize) hash ^= MaxAllDiffCutSize.GetHashCode();
10994 if (HasAddLinMaxCuts) hash ^= AddLinMaxCuts.GetHashCode();
10996 if (HasAddLpConstraintsLazily) hash ^= AddLpConstraintsLazily.GetHashCode();
10997 if (HasRootLpIterations) hash ^= RootLpIterations.GetHashCode();
10998 if (HasMinOrthogonalityForLpConstraints) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MinOrthogonalityForLpConstraints);
10999 if (HasMaxCutRoundsAtLevelZero) hash ^= MaxCutRoundsAtLevelZero.GetHashCode();
11001 if (HasCutMaxActiveCountValue) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CutMaxActiveCountValue);
11002 if (HasCutActiveCountDecay) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(CutActiveCountDecay);
11003 if (HasCutCleanupTarget) hash ^= CutCleanupTarget.GetHashCode();
11004 if (HasNewConstraintsBatchSize) hash ^= NewConstraintsBatchSize.GetHashCode();
11005 if (HasExploitIntegerLpSolution) hash ^= ExploitIntegerLpSolution.GetHashCode();
11006 if (HasExploitAllLpSolution) hash ^= ExploitAllLpSolution.GetHashCode();
11007 if (HasExploitBestSolution) hash ^= ExploitBestSolution.GetHashCode();
11009 if (HasExploitObjective) hash ^= ExploitObjective.GetHashCode();
11010 if (HasDetectLinearizedProduct) hash ^= DetectLinearizedProduct.GetHashCode();
11013 if (HasMipMaxBound) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipMaxBound);
11014 if (HasMipVarScaling) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipVarScaling);
11015 if (HasMipScaleLargeDomain) hash ^= MipScaleLargeDomain.GetHashCode();
11017 if (HasOnlySolveIp) hash ^= OnlySolveIp.GetHashCode();
11018 if (HasMipWantedPrecision) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipWantedPrecision);
11019 if (HasMipMaxActivityExponent) hash ^= MipMaxActivityExponent.GetHashCode();
11020 if (HasMipCheckPrecision) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipCheckPrecision);
11022 if (HasMipMaxValidMagnitude) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipMaxValidMagnitude);
11024 if (HasMipDropTolerance) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(MipDropTolerance);
11025 if (HasMipPresolveLevel) hash ^= MipPresolveLevel.GetHashCode();
11026 if (_unknownFields != null) {
11027 hash ^= _unknownFields.GetHashCode();
11028 }
11029 return hash;
11030 }
11031
11032 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11033 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
11034 public override string ToString() {
11035 return pb::JsonFormatter.ToDiagnosticString(this);
11036 }
11037
11038 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
11039 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
11040 public void WriteTo(pb::CodedOutputStream output) {
11041 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
11042 output.WriteRawMessage(this);
11043 #else
11044 if (HasPreferredVariableOrder) {
11045 output.WriteRawTag(8);
11046 output.WriteEnum((int) PreferredVariableOrder);
11047 }
11048 if (HasInitialPolarity) {
11049 output.WriteRawTag(16);
11050 output.WriteEnum((int) InitialPolarity);
11051 }
11052 if (HasMinimizationAlgorithm) {
11053 output.WriteRawTag(32);
11054 output.WriteEnum((int) MinimizationAlgorithm);
11055 }
11056 if (HasClauseCleanupPeriod) {
11057 output.WriteRawTag(88);
11058 output.WriteInt32(ClauseCleanupPeriod);
11059 }
11060 if (HasClauseCleanupTarget) {
11061 output.WriteRawTag(104);
11062 output.WriteInt32(ClauseCleanupTarget);
11063 }
11064 if (HasVariableActivityDecay) {
11065 output.WriteRawTag(121);
11066 output.WriteDouble(VariableActivityDecay);
11067 }
11068 if (HasMaxVariableActivityValue) {
11069 output.WriteRawTag(129, 1);
11070 output.WriteDouble(MaxVariableActivityValue);
11071 }
11072 if (HasClauseActivityDecay) {
11073 output.WriteRawTag(137, 1);
11074 output.WriteDouble(ClauseActivityDecay);
11075 }
11076 if (HasMaxClauseActivityValue) {
11077 output.WriteRawTag(145, 1);
11078 output.WriteDouble(MaxClauseActivityValue);
11079 }
11080 if (HasGlucoseMaxDecay) {
11081 output.WriteRawTag(177, 1);
11082 output.WriteDouble(GlucoseMaxDecay);
11083 }
11084 if (HasGlucoseDecayIncrement) {
11085 output.WriteRawTag(185, 1);
11086 output.WriteDouble(GlucoseDecayIncrement);
11087 }
11088 if (HasGlucoseDecayIncrementPeriod) {
11089 output.WriteRawTag(192, 1);
11090 output.WriteInt32(GlucoseDecayIncrementPeriod);
11091 }
11092 if (HasRestartPeriod) {
11093 output.WriteRawTag(240, 1);
11094 output.WriteInt32(RestartPeriod);
11095 }
11097 output.WriteRawTag(248, 1);
11098 output.WriteInt32(RandomSeed);
11099 }
11100 if (HasRandomBranchesRatio) {
11101 output.WriteRawTag(129, 2);
11102 output.WriteDouble(RandomBranchesRatio);
11103 }
11104 if (HasBinaryMinimizationAlgorithm) {
11105 output.WriteRawTag(144, 2);
11106 output.WriteEnum((int) BinaryMinimizationAlgorithm);
11107 }
11108 if (HasUseOptimizationHints) {
11109 output.WriteRawTag(152, 2);
11110 output.WriteBool(UseOptimizationHints);
11111 }
11112 if (HasMaxTimeInSeconds) {
11113 output.WriteRawTag(161, 2);
11114 output.WriteDouble(MaxTimeInSeconds);
11115 }
11116 if (HasMaxNumberOfConflicts) {
11117 output.WriteRawTag(168, 2);
11118 output.WriteInt64(MaxNumberOfConflicts);
11119 }
11120 if (HasMaxMemoryInMb) {
11121 output.WriteRawTag(192, 2);
11122 output.WriteInt64(MaxMemoryInMb);
11123 }
11124 if (HasLogSearchProgress) {
11125 output.WriteRawTag(200, 2);
11126 output.WriteBool(LogSearchProgress);
11127 }
11128 if (HasUsePbResolution) {
11129 output.WriteRawTag(216, 2);
11130 output.WriteBool(UsePbResolution);
11131 }
11132 if (HasUsePhaseSaving) {
11133 output.WriteRawTag(224, 2);
11134 output.WriteBool(UsePhaseSaving);
11135 }
11136 if (HasRandomPolarityRatio) {
11137 output.WriteRawTag(233, 2);
11138 output.WriteDouble(RandomPolarityRatio);
11139 }
11140 if (HasPbCleanupIncrement) {
11141 output.WriteRawTag(240, 2);
11142 output.WriteInt32(PbCleanupIncrement);
11143 }
11144 if (HasPbCleanupRatio) {
11145 output.WriteRawTag(249, 2);
11146 output.WriteDouble(PbCleanupRatio);
11147 }
11148 if (HasMinimizeReductionDuringPbResolution) {
11149 output.WriteRawTag(128, 3);
11150 output.WriteBool(MinimizeReductionDuringPbResolution);
11151 }
11152 if (HasCountAssumptionLevelsInLbd) {
11153 output.WriteRawTag(136, 3);
11154 output.WriteBool(CountAssumptionLevelsInLbd);
11155 }
11156 if (HasCoreMinimizationLevel) {
11157 output.WriteRawTag(144, 3);
11158 output.WriteInt32(CoreMinimizationLevel);
11159 }
11160 if (HasMaxSatAssumptionOrder) {
11161 output.WriteRawTag(152, 3);
11162 output.WriteEnum((int) MaxSatAssumptionOrder);
11163 }
11164 if (HasMaxSatReverseAssumptionOrder) {
11165 output.WriteRawTag(160, 3);
11166 output.WriteBool(MaxSatReverseAssumptionOrder);
11167 }
11168 if (HasMaxSatStratification) {
11169 output.WriteRawTag(168, 3);
11170 output.WriteEnum((int) MaxSatStratification);
11171 }
11172 if (HasPresolveBveThreshold) {
11173 output.WriteRawTag(176, 3);
11174 output.WriteInt32(PresolveBveThreshold);
11175 }
11176 if (HasPresolveBveClauseWeight) {
11177 output.WriteRawTag(184, 3);
11178 output.WriteInt32(PresolveBveClauseWeight);
11179 }
11180 if (HasSubsumptionDuringConflictAnalysis) {
11181 output.WriteRawTag(192, 3);
11182 output.WriteBool(SubsumptionDuringConflictAnalysis);
11183 }
11184 if (HasPresolveProbingDeterministicTimeLimit) {
11185 output.WriteRawTag(201, 3);
11186 output.WriteDouble(PresolveProbingDeterministicTimeLimit);
11187 }
11188 if (HasClauseCleanupLbdBound) {
11189 output.WriteRawTag(216, 3);
11190 output.WriteInt32(ClauseCleanupLbdBound);
11191 }
11192 if (HasClauseCleanupOrdering) {
11193 output.WriteRawTag(224, 3);
11194 output.WriteEnum((int) ClauseCleanupOrdering);
11195 }
11196 restartAlgorithms_.WriteTo(output, _repeated_restartAlgorithms_codec);
11197 if (HasRestartRunningWindowSize) {
11198 output.WriteRawTag(240, 3);
11199 output.WriteInt32(RestartRunningWindowSize);
11200 }
11201 if (HasRestartDlAverageRatio) {
11202 output.WriteRawTag(249, 3);
11203 output.WriteDouble(RestartDlAverageRatio);
11204 }
11205 if (HasUseBlockingRestart) {
11206 output.WriteRawTag(128, 4);
11207 output.WriteBool(UseBlockingRestart);
11208 }
11209 if (HasBlockingRestartWindowSize) {
11210 output.WriteRawTag(136, 4);
11211 output.WriteInt32(BlockingRestartWindowSize);
11212 }
11213 if (HasBlockingRestartMultiplier) {
11214 output.WriteRawTag(145, 4);
11215 output.WriteDouble(BlockingRestartMultiplier);
11216 }
11217 if (HasMaxDeterministicTime) {
11218 output.WriteRawTag(153, 4);
11219 output.WriteDouble(MaxDeterministicTime);
11220 }
11221 if (HasNumConflictsBeforeStrategyChanges) {
11222 output.WriteRawTag(160, 4);
11223 output.WriteInt32(NumConflictsBeforeStrategyChanges);
11224 }
11225 if (HasStrategyChangeIncreaseRatio) {
11226 output.WriteRawTag(169, 4);
11227 output.WriteDouble(StrategyChangeIncreaseRatio);
11228 }
11229 if (HasDefaultRestartAlgorithms) {
11230 output.WriteRawTag(178, 4);
11231 output.WriteString(DefaultRestartAlgorithms);
11232 }
11233 if (HasRestartLbdAverageRatio) {
11234 output.WriteRawTag(185, 4);
11235 output.WriteDouble(RestartLbdAverageRatio);
11236 }
11237 if (HasPresolveUseBva) {
11238 output.WriteRawTag(192, 4);
11239 output.WriteBool(PresolveUseBva);
11240 }
11241 if (HasPresolveBvaThreshold) {
11242 output.WriteRawTag(200, 4);
11243 output.WriteInt32(PresolveBvaThreshold);
11244 }
11245 if (HasUsePrecedencesInDisjunctiveConstraint) {
11246 output.WriteRawTag(208, 4);
11247 output.WriteBool(UsePrecedencesInDisjunctiveConstraint);
11248 }
11249 if (HasUseErwaHeuristic) {
11250 output.WriteRawTag(216, 4);
11251 output.WriteBool(UseErwaHeuristic);
11252 }
11253 if (HasInitialVariablesActivity) {
11254 output.WriteRawTag(225, 4);
11255 output.WriteDouble(InitialVariablesActivity);
11256 }
11257 if (HasAlsoBumpVariablesInConflictReasons) {
11258 output.WriteRawTag(232, 4);
11259 output.WriteBool(AlsoBumpVariablesInConflictReasons);
11260 }
11261 if (HasUseOverloadCheckerInCumulative) {
11262 output.WriteRawTag(240, 4);
11263 output.WriteBool(UseOverloadCheckerInCumulative);
11264 }
11265 if (HasUseTimetableEdgeFindingInCumulative) {
11266 output.WriteRawTag(248, 4);
11267 output.WriteBool(UseTimetableEdgeFindingInCumulative);
11268 }
11269 if (HasUseDisjunctiveConstraintInCumulative) {
11270 output.WriteRawTag(128, 5);
11271 output.WriteBool(UseDisjunctiveConstraintInCumulative);
11272 }
11273 if (HasSearchBranching) {
11274 output.WriteRawTag(144, 5);
11275 output.WriteEnum((int) SearchBranching);
11276 }
11277 if (HasOptimizeWithCore) {
11278 output.WriteRawTag(152, 5);
11279 output.WriteBool(OptimizeWithCore);
11280 }
11281 if (HasFindMultipleCores) {
11282 output.WriteRawTag(160, 5);
11283 output.WriteBool(FindMultipleCores);
11284 }
11285 if (HasOptimizeWithMaxHs) {
11286 output.WriteRawTag(168, 5);
11287 output.WriteBool(OptimizeWithMaxHs);
11288 }
11289 if (HasCpModelPresolve) {
11290 output.WriteRawTag(176, 5);
11291 output.WriteBool(CpModelPresolve);
11292 }
11293 if (HasEnumerateAllSolutions) {
11294 output.WriteRawTag(184, 5);
11295 output.WriteBool(EnumerateAllSolutions);
11296 }
11297 if (HasPresolveBlockedClause) {
11298 output.WriteRawTag(192, 5);
11299 output.WriteBool(PresolveBlockedClause);
11300 }
11301 if (HasCoverOptimization) {
11302 output.WriteRawTag(200, 5);
11303 output.WriteBool(CoverOptimization);
11304 }
11305 if (HasLinearizationLevel) {
11306 output.WriteRawTag(208, 5);
11307 output.WriteInt32(LinearizationLevel);
11308 }
11309 if (HasMaxNumCuts) {
11310 output.WriteRawTag(216, 5);
11311 output.WriteInt32(MaxNumCuts);
11312 }
11313 if (HasOnlyAddCutsAtLevelZero) {
11314 output.WriteRawTag(224, 5);
11315 output.WriteBool(OnlyAddCutsAtLevelZero);
11316 }
11317 if (HasCpModelUseSatPresolve) {
11318 output.WriteRawTag(232, 5);
11319 output.WriteBool(CpModelUseSatPresolve);
11320 }
11321 if (HasExploitIntegerLpSolution) {
11322 output.WriteRawTag(240, 5);
11323 output.WriteBool(ExploitIntegerLpSolution);
11324 }
11325 if (HasAutoDetectGreaterThanAtLeastOneOf) {
11326 output.WriteRawTag(248, 5);
11327 output.WriteBool(AutoDetectGreaterThanAtLeastOneOf);
11328 }
11329 if (HasStopAfterFirstSolution) {
11330 output.WriteRawTag(144, 6);
11331 output.WriteBool(StopAfterFirstSolution);
11332 }
11333 if (HasBinarySearchNumConflicts) {
11334 output.WriteRawTag(152, 6);
11335 output.WriteInt32(BinarySearchNumConflicts);
11336 }
11337 if (HasNumSearchWorkers) {
11338 output.WriteRawTag(160, 6);
11339 output.WriteInt32(NumSearchWorkers);
11340 }
11341 if (HasUseLnsOnly) {
11342 output.WriteRawTag(168, 6);
11343 output.WriteBool(UseLnsOnly);
11344 }
11345 if (HasRandomizeSearch) {
11346 output.WriteRawTag(184, 6);
11347 output.WriteBool(RandomizeSearch);
11348 }
11349 if (HasSearchRandomVariablePoolSize) {
11350 output.WriteRawTag(192, 6);
11351 output.WriteInt64(SearchRandomVariablePoolSize);
11352 }
11353 if (HasInstantiateAllVariables) {
11354 output.WriteRawTag(208, 6);
11355 output.WriteBool(InstantiateAllVariables);
11356 }
11357 if (HasBooleanEncodingLevel) {
11358 output.WriteRawTag(216, 6);
11359 output.WriteInt32(BooleanEncodingLevel);
11360 }
11361 if (HasUseOptionalVariables) {
11362 output.WriteRawTag(224, 6);
11363 output.WriteBool(UseOptionalVariables);
11364 }
11365 if (HasUseExactLpReason) {
11366 output.WriteRawTag(232, 6);
11367 output.WriteBool(UseExactLpReason);
11368 }
11369 if (HasCpModelProbingLevel) {
11370 output.WriteRawTag(240, 6);
11371 output.WriteInt32(CpModelProbingLevel);
11372 }
11373 if (HasAddLpConstraintsLazily) {
11374 output.WriteRawTag(128, 7);
11375 output.WriteBool(AddLpConstraintsLazily);
11376 }
11377 if (HasShareObjectiveBounds) {
11378 output.WriteRawTag(136, 7);
11379 output.WriteBool(ShareObjectiveBounds);
11380 }
11381 if (HasShareLevelZeroBounds) {
11382 output.WriteRawTag(144, 7);
11383 output.WriteBool(ShareLevelZeroBounds);
11384 }
11385 if (HasMinOrthogonalityForLpConstraints) {
11386 output.WriteRawTag(153, 7);
11387 output.WriteDouble(MinOrthogonalityForLpConstraints);
11388 }
11389 if (HasExploitAllLpSolution) {
11390 output.WriteRawTag(160, 7);
11391 output.WriteBool(ExploitAllLpSolution);
11392 }
11393 if (HasAddCgCuts) {
11394 output.WriteRawTag(168, 7);
11395 output.WriteBool(AddCgCuts);
11396 }
11397 if (HasMaxIntegerRoundingScaling) {
11398 output.WriteRawTag(184, 7);
11399 output.WriteInt32(MaxIntegerRoundingScaling);
11400 }
11401 if (HasAddMirCuts) {
11402 output.WriteRawTag(192, 7);
11403 output.WriteBool(AddMirCuts);
11404 }
11405 if (HasMaxConsecutiveInactiveCount) {
11406 output.WriteRawTag(200, 7);
11407 output.WriteInt32(MaxConsecutiveInactiveCount);
11408 }
11409 if (HasNewConstraintsBatchSize) {
11410 output.WriteRawTag(208, 7);
11411 output.WriteInt32(NewConstraintsBatchSize);
11412 }
11413 if (HasPseudoCostReliabilityThreshold) {
11414 output.WriteRawTag(216, 7);
11415 output.WriteInt64(PseudoCostReliabilityThreshold);
11416 }
11417 if (HasMipMaxBound) {
11418 output.WriteRawTag(225, 7);
11419 output.WriteDouble(MipMaxBound);
11420 }
11421 if (HasMipVarScaling) {
11422 output.WriteRawTag(233, 7);
11423 output.WriteDouble(MipVarScaling);
11424 }
11425 if (HasMipWantedPrecision) {
11426 output.WriteRawTag(241, 7);
11427 output.WriteDouble(MipWantedPrecision);
11428 }
11429 if (HasMipMaxActivityExponent) {
11430 output.WriteRawTag(248, 7);
11431 output.WriteInt32(MipMaxActivityExponent);
11432 }
11433 if (HasMipCheckPrecision) {
11434 output.WriteRawTag(129, 8);
11435 output.WriteDouble(MipCheckPrecision);
11436 }
11437 if (HasUseRinsLns) {
11438 output.WriteRawTag(136, 8);
11439 output.WriteBool(UseRinsLns);
11440 }
11441 if (HasExploitBestSolution) {
11442 output.WriteRawTag(144, 8);
11443 output.WriteBool(ExploitBestSolution);
11444 }
11445 if (HasExploitObjective) {
11446 output.WriteRawTag(152, 8);
11447 output.WriteBool(ExploitObjective);
11448 }
11449 if (HasFillTightenedDomainsInResponse) {
11450 output.WriteRawTag(160, 8);
11451 output.WriteBool(FillTightenedDomainsInResponse);
11452 }
11453 if (HasUseCombinedNoOverlap) {
11454 output.WriteRawTag(168, 8);
11455 output.WriteBool(UseCombinedNoOverlap);
11456 }
11457 if (HasInterleaveBatchSize) {
11458 output.WriteRawTag(176, 8);
11459 output.WriteInt32(InterleaveBatchSize);
11460 }
11461 if (HasCatchSigintSignal) {
11462 output.WriteRawTag(184, 8);
11463 output.WriteBool(CatchSigintSignal);
11464 }
11465 if (HasInterleaveSearch) {
11466 output.WriteRawTag(192, 8);
11467 output.WriteBool(InterleaveSearch);
11468 }
11469 if (HasDiversifyLnsParams) {
11470 output.WriteRawTag(200, 8);
11471 output.WriteBool(DiversifyLnsParams);
11472 }
11473 if (HasMaxPresolveIterations) {
11474 output.WriteRawTag(208, 8);
11475 output.WriteInt32(MaxPresolveIterations);
11476 }
11477 if (HasUseImpliedBounds) {
11478 output.WriteRawTag(128, 9);
11479 output.WriteBool(UseImpliedBounds);
11480 }
11481 if (HasMergeNoOverlapWorkLimit) {
11482 output.WriteRawTag(137, 9);
11483 output.WriteDouble(MergeNoOverlapWorkLimit);
11484 }
11485 if (HasMergeAtMostOneWorkLimit) {
11486 output.WriteRawTag(145, 9);
11487 output.WriteDouble(MergeAtMostOneWorkLimit);
11488 }
11489 if (HasPresolveSubstitutionLevel) {
11490 output.WriteRawTag(152, 9);
11491 output.WriteInt32(PresolveSubstitutionLevel);
11492 }
11493 if (HasMaxAllDiffCutSize) {
11494 output.WriteRawTag(160, 9);
11495 output.WriteInt32(MaxAllDiffCutSize);
11496 }
11497 if (HasStopAfterPresolve) {
11498 output.WriteRawTag(168, 9);
11499 output.WriteBool(StopAfterPresolve);
11500 }
11501 if (HasDebugMaxNumPresolveOperations) {
11502 output.WriteRawTag(184, 9);
11503 output.WriteInt32(DebugMaxNumPresolveOperations);
11504 }
11505 if (HasAddLinMaxCuts) {
11506 output.WriteRawTag(192, 9);
11507 output.WriteBool(AddLinMaxCuts);
11508 }
11509 if (HasHintConflictLimit) {
11510 output.WriteRawTag(200, 9);
11511 output.WriteInt32(HintConflictLimit);
11512 }
11513 if (HasMaxCutRoundsAtLevelZero) {
11514 output.WriteRawTag(208, 9);
11515 output.WriteInt32(MaxCutRoundsAtLevelZero);
11516 }
11517 if (HasCutMaxActiveCountValue) {
11518 output.WriteRawTag(217, 9);
11519 output.WriteDouble(CutMaxActiveCountValue);
11520 }
11521 if (HasCutActiveCountDecay) {
11522 output.WriteRawTag(225, 9);
11523 output.WriteDouble(CutActiveCountDecay);
11524 }
11525 if (HasCutCleanupTarget) {
11526 output.WriteRawTag(232, 9);
11527 output.WriteInt32(CutCleanupTarget);
11528 }
11529 if (HasAbsoluteGapLimit) {
11530 output.WriteRawTag(249, 9);
11531 output.WriteDouble(AbsoluteGapLimit);
11532 }
11533 if (HasRelativeGapLimit) {
11534 output.WriteRawTag(129, 10);
11535 output.WriteDouble(RelativeGapLimit);
11536 }
11537 if (HasExploitRelaxationSolution) {
11538 output.WriteRawTag(136, 10);
11539 output.WriteBool(ExploitRelaxationSolution);
11540 }
11541 if (HasDebugPostsolveWithFullSolver) {
11542 output.WriteRawTag(144, 10);
11543 output.WriteBool(DebugPostsolveWithFullSolver);
11544 }
11545 if (HasUseSatInprocessing) {
11546 output.WriteRawTag(152, 10);
11547 output.WriteBool(UseSatInprocessing);
11548 }
11549 if (HasUseFeasibilityPump) {
11550 output.WriteRawTag(160, 10);
11551 output.WriteBool(UseFeasibilityPump);
11552 }
11553 if (HasFpRounding) {
11554 output.WriteRawTag(168, 10);
11555 output.WriteEnum((int) FpRounding);
11556 }
11557 if (HasMipAutomaticallyScaleVariables) {
11558 output.WriteRawTag(176, 10);
11559 output.WriteBool(MipAutomaticallyScaleVariables);
11560 }
11561 if (HasRepairHint) {
11562 output.WriteRawTag(184, 10);
11563 output.WriteBool(RepairHint);
11564 }
11565 if (HasPolarityRephaseIncrement) {
11566 output.WriteRawTag(192, 10);
11567 output.WriteInt32(PolarityRephaseIncrement);
11568 }
11569 if (HasAddZeroHalfCuts) {
11570 output.WriteRawTag(200, 10);
11571 output.WriteBool(AddZeroHalfCuts);
11572 }
11573 if (HasExpandAlldiffConstraints) {
11574 output.WriteRawTag(208, 10);
11575 output.WriteBool(ExpandAlldiffConstraints);
11576 }
11577 if (HasName) {
11578 output.WriteRawTag(218, 10);
11579 output.WriteString(Name);
11580 }
11581 if (HasAddCliqueCuts) {
11582 output.WriteRawTag(224, 10);
11583 output.WriteBool(AddCliqueCuts);
11584 }
11585 if (HasKeepAllFeasibleSolutionsInPresolve) {
11586 output.WriteRawTag(232, 10);
11587 output.WriteBool(KeepAllFeasibleSolutionsInPresolve);
11588 }
11589 if (HasPresolveExtractIntegerEnforcement) {
11590 output.WriteRawTag(240, 10);
11591 output.WriteBool(PresolveExtractIntegerEnforcement);
11592 }
11593 if (HasPolishLpSolution) {
11594 output.WriteRawTag(248, 10);
11595 output.WriteBool(PolishLpSolution);
11596 }
11597 if (HasUseProbingSearch) {
11598 output.WriteRawTag(128, 11);
11599 output.WriteBool(UseProbingSearch);
11600 }
11601 if (HasConvertIntervals) {
11602 output.WriteRawTag(136, 11);
11603 output.WriteBool(ConvertIntervals);
11604 }
11605 if (HasPermuteVariableRandomly) {
11606 output.WriteRawTag(144, 11);
11607 output.WriteBool(PermuteVariableRandomly);
11608 }
11609 if (HasPermutePresolveConstraintOrder) {
11610 output.WriteRawTag(152, 11);
11611 output.WriteBool(PermutePresolveConstraintOrder);
11612 }
11613 if (HasUseAbslRandom) {
11614 output.WriteRawTag(160, 11);
11615 output.WriteBool(UseAbslRandom);
11616 }
11617 if (HasDisableConstraintExpansion) {
11618 output.WriteRawTag(168, 11);
11619 output.WriteBool(DisableConstraintExpansion);
11620 }
11621 if (HasExpandReservoirConstraints) {
11622 output.WriteRawTag(176, 11);
11623 output.WriteBool(ExpandReservoirConstraints);
11624 }
11625 if (HasSymmetryLevel) {
11626 output.WriteRawTag(184, 11);
11627 output.WriteInt32(SymmetryLevel);
11628 }
11629 if (HasLogPrefix) {
11630 output.WriteRawTag(202, 11);
11631 output.WriteString(LogPrefix);
11632 }
11633 if (HasLogToStdout) {
11634 output.WriteRawTag(208, 11);
11635 output.WriteBool(LogToStdout);
11636 }
11637 if (HasLogToResponse) {
11638 output.WriteRawTag(216, 11);
11639 output.WriteBool(LogToResponse);
11640 }
11641 if (HasOptimizeWithLbTreeSearch) {
11642 output.WriteRawTag(224, 11);
11643 output.WriteBool(OptimizeWithLbTreeSearch);
11644 }
11645 if (HasLogSubsolverStatistics) {
11646 output.WriteRawTag(232, 11);
11647 output.WriteBool(LogSubsolverStatistics);
11648 }
11649 if (HasClauseCleanupRatio) {
11650 output.WriteRawTag(241, 11);
11651 output.WriteDouble(ClauseCleanupRatio);
11652 }
11653 if (HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
11654 output.WriteRawTag(248, 11);
11655 output.WriteInt32(MaxDomainSizeWhenEncodingEqNeqConstraints);
11656 }
11657 if (HasFixVariablesToTheirHintedValue) {
11658 output.WriteRawTag(128, 12);
11659 output.WriteBool(FixVariablesToTheirHintedValue);
11660 }
11661 if (HasSolutionPoolSize) {
11662 output.WriteRawTag(136, 12);
11663 output.WriteInt32(SolutionPoolSize);
11664 }
11665 if (HasFillAdditionalSolutionsInResponse) {
11666 output.WriteRawTag(144, 12);
11667 output.WriteBool(FillAdditionalSolutionsInResponse);
11668 }
11669 if (HasDebugCrashOnBadHint) {
11670 output.WriteRawTag(152, 12);
11671 output.WriteBool(DebugCrashOnBadHint);
11672 }
11673 if (HasCutLevel) {
11674 output.WriteRawTag(160, 12);
11675 output.WriteInt32(CutLevel);
11676 }
11677 if (HasAddObjectiveCut) {
11678 output.WriteRawTag(168, 12);
11679 output.WriteBool(AddObjectiveCut);
11680 }
11681 if (HasMipComputeTrueObjectiveBound) {
11682 output.WriteRawTag(176, 12);
11683 output.WriteBool(MipComputeTrueObjectiveBound);
11684 }
11685 if (HasMipMaxValidMagnitude) {
11686 output.WriteRawTag(185, 12);
11687 output.WriteDouble(MipMaxValidMagnitude);
11688 }
11689 if (HasUseTimetablingInNoOverlap2D) {
11690 output.WriteRawTag(192, 12);
11691 output.WriteBool(UseTimetablingInNoOverlap2D);
11692 }
11693 if (HasPresolveInclusionWorkLimit) {
11694 output.WriteRawTag(200, 12);
11695 output.WriteInt64(PresolveInclusionWorkLimit);
11696 }
11697 if (HasIgnoreNames) {
11698 output.WriteRawTag(208, 12);
11699 output.WriteBool(IgnoreNames);
11700 }
11701 if (HasShareBinaryClauses) {
11702 output.WriteRawTag(216, 12);
11703 output.WriteBool(ShareBinaryClauses);
11704 }
11705 if (HasShavingDeterministicTimeInProbingSearch) {
11706 output.WriteRawTag(225, 12);
11707 output.WriteDouble(ShavingDeterministicTimeInProbingSearch);
11708 }
11709 if (HasShavingSearchDeterministicTime) {
11710 output.WriteRawTag(233, 12);
11711 output.WriteDouble(ShavingSearchDeterministicTime);
11712 }
11713 if (HasNumWorkers) {
11714 output.WriteRawTag(240, 12);
11715 output.WriteInt32(NumWorkers);
11716 }
11717 subsolvers_.WriteTo(output, _repeated_subsolvers_codec);
11718 ignoreSubsolvers_.WriteTo(output, _repeated_ignoreSubsolvers_codec);
11719 subsolverParams_.WriteTo(output, _repeated_subsolverParams_codec);
11720 if (HasUseEnergeticReasoningInNoOverlap2D) {
11721 output.WriteRawTag(168, 13);
11722 output.WriteBool(UseEnergeticReasoningInNoOverlap2D);
11723 }
11724 if (HasUseDualSchedulingHeuristics) {
11725 output.WriteRawTag(176, 13);
11726 output.WriteBool(UseDualSchedulingHeuristics);
11727 }
11728 if (HasUseHardPrecedencesInCumulative) {
11729 output.WriteRawTag(184, 13);
11730 output.WriteBool(UseHardPrecedencesInCumulative);
11731 }
11732 if (HasDetectTableWithCost) {
11733 output.WriteRawTag(192, 13);
11734 output.WriteBool(DetectTableWithCost);
11735 }
11736 if (HasTableCompressionLevel) {
11737 output.WriteRawTag(200, 13);
11738 output.WriteInt32(TableCompressionLevel);
11739 }
11740 extraSubsolvers_.WriteTo(output, _repeated_extraSubsolvers_codec);
11741 if (HasExploitAllPrecedences) {
11742 output.WriteRawTag(224, 13);
11743 output.WriteBool(ExploitAllPrecedences);
11744 }
11745 if (HasPropagationLoopDetectionFactor) {
11746 output.WriteRawTag(233, 13);
11747 output.WriteDouble(PropagationLoopDetectionFactor);
11748 }
11749 if (HasOnlySolveIp) {
11750 output.WriteRawTag(240, 13);
11751 output.WriteBool(OnlySolveIp);
11752 }
11753 if (HasEncodeComplexLinearConstraintWithInteger) {
11754 output.WriteRawTag(248, 13);
11755 output.WriteBool(EncodeComplexLinearConstraintWithInteger);
11756 }
11757 if (HasNewLinearPropagation) {
11758 output.WriteRawTag(128, 14);
11759 output.WriteBool(NewLinearPropagation);
11760 }
11761 if (HasMipScaleLargeDomain) {
11762 output.WriteRawTag(136, 14);
11763 output.WriteBool(MipScaleLargeDomain);
11764 }
11765 if (HasProbingDeterministicTimeLimit) {
11766 output.WriteRawTag(145, 14);
11767 output.WriteDouble(ProbingDeterministicTimeLimit);
11768 }
11769 if (HasRootLpIterations) {
11770 output.WriteRawTag(152, 14);
11771 output.WriteInt32(RootLpIterations);
11772 }
11773 if (HasUseObjectiveLbSearch) {
11774 output.WriteRawTag(160, 14);
11775 output.WriteBool(UseObjectiveLbSearch);
11776 }
11777 if (HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
11778 output.WriteRawTag(168, 14);
11779 output.WriteInt32(MaxSizeToCreatePrecedenceLiteralsInDisjunctive);
11780 }
11781 if (HasUseStrongPropagationInDisjunctive) {
11782 output.WriteRawTag(176, 14);
11783 output.WriteBool(UseStrongPropagationInDisjunctive);
11784 }
11785 if (HasMipDropTolerance) {
11786 output.WriteRawTag(193, 14);
11787 output.WriteDouble(MipDropTolerance);
11788 }
11789 if (HasInferAllDiffs) {
11790 output.WriteRawTag(200, 14);
11791 output.WriteBool(InferAllDiffs);
11792 }
11793 if (HasFindBigLinearOverlap) {
11794 output.WriteRawTag(208, 14);
11795 output.WriteBool(FindBigLinearOverlap);
11796 }
11797 if (HasSharedTreeNumWorkers) {
11798 output.WriteRawTag(216, 14);
11799 output.WriteInt32(SharedTreeNumWorkers);
11800 }
11801 if (HasUseSharedTreeSearch) {
11802 output.WriteRawTag(224, 14);
11803 output.WriteBool(UseSharedTreeSearch);
11804 }
11805 if (HasSharedTreeMaxNodesPerWorker) {
11806 output.WriteRawTag(240, 14);
11807 output.WriteInt32(SharedTreeMaxNodesPerWorker);
11808 }
11809 if (HasSharedTreeSplitStrategy) {
11810 output.WriteRawTag(248, 14);
11811 output.WriteEnum((int) SharedTreeSplitStrategy);
11812 }
11813 if (HasUseLsOnly) {
11814 output.WriteRawTag(128, 15);
11815 output.WriteBool(UseLsOnly);
11816 }
11817 if (HasFeasibilityJumpDecay) {
11818 output.WriteRawTag(145, 15);
11819 output.WriteDouble(FeasibilityJumpDecay);
11820 }
11821 if (HasNumViolationLs) {
11822 output.WriteRawTag(160, 15);
11823 output.WriteInt32(NumViolationLs);
11824 }
11825 if (HasFeasibilityJumpVarRandomizationProbability) {
11826 output.WriteRawTag(185, 15);
11827 output.WriteDouble(FeasibilityJumpVarRandomizationProbability);
11828 }
11829 if (HasFeasibilityJumpVarPerburbationRangeRatio) {
11830 output.WriteRawTag(193, 15);
11831 output.WriteDouble(FeasibilityJumpVarPerburbationRangeRatio);
11832 }
11833 if (HasViolationLsPerturbationPeriod) {
11834 output.WriteRawTag(200, 15);
11835 output.WriteInt32(ViolationLsPerturbationPeriod);
11836 }
11837 if (HasFeasibilityJumpEnableRestarts) {
11838 output.WriteRawTag(208, 15);
11839 output.WriteBool(FeasibilityJumpEnableRestarts);
11840 }
11841 if (HasStopAfterRootPropagation) {
11842 output.WriteRawTag(224, 15);
11843 output.WriteBool(StopAfterRootPropagation);
11844 }
11845 if (HasUseObjectiveShavingSearch) {
11846 output.WriteRawTag(232, 15);
11847 output.WriteBool(UseObjectiveShavingSearch);
11848 }
11849 if (HasUseLbRelaxLns) {
11850 output.WriteRawTag(248, 15);
11851 output.WriteBool(UseLbRelaxLns);
11852 }
11853 if (HasLinearSplitSize) {
11854 output.WriteRawTag(128, 16);
11855 output.WriteInt32(LinearSplitSize);
11856 }
11857 if (HasFeasibilityJumpLinearizationLevel) {
11858 output.WriteRawTag(136, 16);
11859 output.WriteInt32(FeasibilityJumpLinearizationLevel);
11860 }
11861 if (HasFeasibilityJumpRestartFactor) {
11862 output.WriteRawTag(144, 16);
11863 output.WriteInt32(FeasibilityJumpRestartFactor);
11864 }
11865 if (HasViolationLsCompoundMoveProbability) {
11866 output.WriteRawTag(153, 16);
11867 output.WriteDouble(ViolationLsCompoundMoveProbability);
11868 }
11869 if (HasMaxNumIntervalsForTimetableEdgeFinding) {
11870 output.WriteRawTag(160, 16);
11871 output.WriteInt32(MaxNumIntervalsForTimetableEdgeFinding);
11872 }
11873 if (HasMipPresolveLevel) {
11874 output.WriteRawTag(168, 16);
11875 output.WriteInt32(MipPresolveLevel);
11876 }
11877 if (HasPushAllTasksTowardStart) {
11878 output.WriteRawTag(176, 16);
11879 output.WriteBool(PushAllTasksTowardStart);
11880 }
11881 if (HasUseDynamicPrecedenceInDisjunctive) {
11882 output.WriteRawTag(184, 16);
11883 output.WriteBool(UseDynamicPrecedenceInDisjunctive);
11884 }
11885 if (HasFeasibilityJumpMaxExpandedConstraintSize) {
11886 output.WriteRawTag(192, 16);
11887 output.WriteInt32(FeasibilityJumpMaxExpandedConstraintSize);
11888 }
11889 if (HasUseFeasibilityJump) {
11890 output.WriteRawTag(200, 16);
11891 output.WriteBool(UseFeasibilityJump);
11892 }
11893 if (HasLpPrimalTolerance) {
11894 output.WriteRawTag(209, 16);
11895 output.WriteDouble(LpPrimalTolerance);
11896 }
11897 if (HasLpDualTolerance) {
11898 output.WriteRawTag(217, 16);
11899 output.WriteDouble(LpDualTolerance);
11900 }
11901 if (HasUseDynamicPrecedenceInCumulative) {
11902 output.WriteRawTag(224, 16);
11903 output.WriteBool(UseDynamicPrecedenceInCumulative);
11904 }
11905 if (HasUseExtendedProbing) {
11906 output.WriteRawTag(232, 16);
11907 output.WriteBool(UseExtendedProbing);
11908 }
11909 if (HasAtMostOneMaxExpansionSize) {
11910 output.WriteRawTag(240, 16);
11911 output.WriteInt32(AtMostOneMaxExpansionSize);
11912 }
11913 if (HasUseAreaEnergeticReasoningInNoOverlap2D) {
11914 output.WriteRawTag(248, 16);
11915 output.WriteBool(UseAreaEnergeticReasoningInNoOverlap2D);
11916 }
11917 if (HasProbingNumCombinationsLimit) {
11918 output.WriteRawTag(128, 17);
11919 output.WriteInt32(ProbingNumCombinationsLimit);
11920 }
11921 if (HasInprocessingDtimeRatio) {
11922 output.WriteRawTag(137, 17);
11923 output.WriteDouble(InprocessingDtimeRatio);
11924 }
11925 if (HasInprocessingProbingDtime) {
11926 output.WriteRawTag(145, 17);
11927 output.WriteDouble(InprocessingProbingDtime);
11928 }
11929 if (HasInprocessingMinimizationDtime) {
11930 output.WriteRawTag(153, 17);
11931 output.WriteDouble(InprocessingMinimizationDtime);
11932 }
11933 if (HasMaxPairsPairwiseReasoningInNoOverlap2D) {
11934 output.WriteRawTag(160, 17);
11935 output.WriteInt32(MaxPairsPairwiseReasoningInNoOverlap2D);
11936 }
11937 if (HasDetectLinearizedProduct) {
11938 output.WriteRawTag(168, 17);
11939 output.WriteBool(DetectLinearizedProduct);
11940 }
11941 if (HasMipTreatHighMagnitudeBoundsAsInfinity) {
11942 output.WriteRawTag(176, 17);
11943 output.WriteBool(MipTreatHighMagnitudeBoundsAsInfinity);
11944 }
11945 if (HasAddRltCuts) {
11946 output.WriteRawTag(184, 17);
11947 output.WriteBool(AddRltCuts);
11948 }
11949 if (HasMaxLinMaxSizeForExpansion) {
11950 output.WriteRawTag(192, 17);
11951 output.WriteInt32(MaxLinMaxSizeForExpansion);
11952 }
11953 if (HasSharedTreeOpenLeavesPerWorker) {
11954 output.WriteRawTag(201, 17);
11955 output.WriteDouble(SharedTreeOpenLeavesPerWorker);
11956 }
11957 if (HasSharedTreeWorkerMinRestartsPerSubtree) {
11958 output.WriteRawTag(208, 17);
11959 output.WriteInt32(SharedTreeWorkerMinRestartsPerSubtree);
11960 }
11961 if (HasUseLns) {
11962 output.WriteRawTag(216, 17);
11963 output.WriteBool(UseLns);
11964 }
11965 if (HasSaveLpBasisInLbTreeSearch) {
11966 output.WriteRawTag(224, 17);
11967 output.WriteBool(SaveLpBasisInLbTreeSearch);
11968 }
11969 if (HasShareGlueClauses) {
11970 output.WriteRawTag(232, 17);
11971 output.WriteBool(ShareGlueClauses);
11972 }
11973 if (HasUseConservativeScaleOverloadChecker) {
11974 output.WriteRawTag(240, 17);
11975 output.WriteBool(UseConservativeScaleOverloadChecker);
11976 }
11977 if (HasEncodeCumulativeAsReservoir) {
11978 output.WriteRawTag(248, 17);
11979 output.WriteBool(EncodeCumulativeAsReservoir);
11980 }
11981 if (HasExpandReservoirUsingCircuit) {
11982 output.WriteRawTag(128, 18);
11983 output.WriteBool(ExpandReservoirUsingCircuit);
11984 }
11985 if (HasVariablesShavingLevel) {
11986 output.WriteRawTag(136, 18);
11987 output.WriteInt32(VariablesShavingLevel);
11988 }
11989 if (HasShavingSearchThreshold) {
11990 output.WriteRawTag(144, 18);
11991 output.WriteInt64(ShavingSearchThreshold);
11992 }
11993 if (HasMaxNumDeterministicBatches) {
11994 output.WriteRawTag(152, 18);
11995 output.WriteInt32(MaxNumDeterministicBatches);
11996 }
11997 if (HasFeasibilityJumpBatchDtime) {
11998 output.WriteRawTag(161, 18);
11999 output.WriteDouble(FeasibilityJumpBatchDtime);
12000 }
12001 filterSubsolvers_.WriteTo(output, _repeated_filterSubsolvers_codec);
12002 if (HasNumFullSubsolvers) {
12003 output.WriteRawTag(176, 18);
12004 output.WriteInt32(NumFullSubsolvers);
12005 }
12006 if (HasSharedTreeWorkerEnableTrailSharing) {
12007 output.WriteRawTag(184, 18);
12008 output.WriteBool(SharedTreeWorkerEnableTrailSharing);
12009 }
12010 if (HasLbRelaxNumWorkersThreshold) {
12011 output.WriteRawTag(192, 18);
12012 output.WriteInt32(LbRelaxNumWorkersThreshold);
12013 }
12014 if (HasInprocessingMinimizationUseConflictAnalysis) {
12015 output.WriteRawTag(200, 18);
12016 output.WriteBool(InprocessingMinimizationUseConflictAnalysis);
12017 }
12018 if (HasInprocessingMinimizationUseAllOrderings) {
12019 output.WriteRawTag(208, 18);
12020 output.WriteBool(InprocessingMinimizationUseAllOrderings);
12021 }
12022 if (HasUseTryEdgeReasoningInNoOverlap2D) {
12023 output.WriteRawTag(216, 18);
12024 output.WriteBool(UseTryEdgeReasoningInNoOverlap2D);
12025 }
12026 if (HasMinimizeSharedClauses) {
12027 output.WriteRawTag(224, 18);
12028 output.WriteBool(MinimizeSharedClauses);
12029 }
12030 if (HasUseSymmetryInLp) {
12031 output.WriteRawTag(232, 18);
12032 output.WriteBool(UseSymmetryInLp);
12033 }
12034 if (HasSymmetryDetectionDeterministicTimeLimit) {
12035 output.WriteRawTag(241, 18);
12036 output.WriteDouble(SymmetryDetectionDeterministicTimeLimit);
12037 }
12038 if (HasKeepSymmetryInPresolve) {
12039 output.WriteRawTag(248, 18);
12040 output.WriteBool(KeepSymmetryInPresolve);
12041 }
12042 if (HasSharedTreeWorkerEnablePhaseSharing) {
12043 output.WriteRawTag(128, 19);
12044 output.WriteBool(SharedTreeWorkerEnablePhaseSharing);
12045 }
12046 if (HasSharedTreeBalanceTolerance) {
12047 output.WriteRawTag(136, 19);
12048 output.WriteInt32(SharedTreeBalanceTolerance);
12049 }
12050 if (HasDebugCrashIfPresolveBreaksHint) {
12051 output.WriteRawTag(144, 19);
12052 output.WriteBool(DebugCrashIfPresolveBreaksHint);
12053 }
12054 if (HasLnsInitialDifficulty) {
12055 output.WriteRawTag(153, 19);
12056 output.WriteDouble(LnsInitialDifficulty);
12057 }
12058 if (HasLnsInitialDeterministicLimit) {
12059 output.WriteRawTag(161, 19);
12060 output.WriteDouble(LnsInitialDeterministicLimit);
12061 }
12062 if (HasPolarityExploitLsHints) {
12063 output.WriteRawTag(168, 19);
12064 output.WriteBool(PolarityExploitLsHints);
12065 }
12066 if (HasRemoveFixedVariablesEarly) {
12067 output.WriteRawTag(176, 19);
12068 output.WriteBool(RemoveFixedVariablesEarly);
12069 }
12070 if (HasUseAllDifferentForCircuit) {
12071 output.WriteRawTag(184, 19);
12072 output.WriteBool(UseAllDifferentForCircuit);
12073 }
12074 if (HasRoutingCutSubsetSizeForBinaryRelationBound) {
12075 output.WriteRawTag(192, 19);
12076 output.WriteInt32(RoutingCutSubsetSizeForBinaryRelationBound);
12077 }
12078 if (HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
12079 output.WriteRawTag(200, 19);
12080 output.WriteInt32(RoutingCutSubsetSizeForTightBinaryRelationBound);
12081 }
12082 if (HasRoutingCutDpEffort) {
12083 output.WriteRawTag(209, 19);
12084 output.WriteDouble(RoutingCutDpEffort);
12085 }
12086 if (HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
12087 output.WriteRawTag(216, 19);
12088 output.WriteInt32(MaximumRegionsToSplitInDisconnectedNoOverlap2D);
12089 }
12090 if (HasRoutingCutSubsetSizeForExactBinaryRelationBound) {
12091 output.WriteRawTag(224, 19);
12092 output.WriteInt32(RoutingCutSubsetSizeForExactBinaryRelationBound);
12093 }
12094 if (HasRoutingCutMaxInfeasiblePathLength) {
12095 output.WriteRawTag(232, 19);
12096 output.WriteInt32(RoutingCutMaxInfeasiblePathLength);
12097 }
12098 if (HasRoutingCutSubsetSizeForShortestPathsBound) {
12099 output.WriteRawTag(240, 19);
12100 output.WriteInt32(RoutingCutSubsetSizeForShortestPathsBound);
12101 }
12102 if (HasMaxAlldiffDomainSize) {
12103 output.WriteRawTag(128, 20);
12104 output.WriteInt32(MaxAlldiffDomainSize);
12105 }
12106 if (HasNoOverlap2DBooleanRelationsLimit) {
12107 output.WriteRawTag(136, 20);
12108 output.WriteInt32(NoOverlap2DBooleanRelationsLimit);
12109 }
12110 if (HasShareGlueClausesDtime) {
12111 output.WriteRawTag(145, 20);
12112 output.WriteDouble(ShareGlueClausesDtime);
12113 }
12114 if (HasUseLinear3ForNoOverlap2DPrecedences) {
12115 output.WriteRawTag(152, 20);
12116 output.WriteBool(UseLinear3ForNoOverlap2DPrecedences);
12117 }
12118 if (HasFilterSatPostsolveClauses) {
12119 output.WriteRawTag(160, 20);
12120 output.WriteBool(FilterSatPostsolveClauses);
12121 }
12122 if (HasAlternativePoolSize) {
12123 output.WriteRawTag(168, 20);
12124 output.WriteInt32(AlternativePoolSize);
12125 }
12126 if (HasShareLinear2Bounds) {
12127 output.WriteRawTag(176, 20);
12128 output.WriteBool(ShareLinear2Bounds);
12129 }
12130 if (HasTransitivePrecedencesWorkLimit) {
12131 output.WriteRawTag(184, 20);
12132 output.WriteInt32(TransitivePrecedencesWorkLimit);
12133 }
12134 if (HasSharedTreeSplitMinDtime) {
12135 output.WriteRawTag(193, 20);
12136 output.WriteDouble(SharedTreeSplitMinDtime);
12137 }
12138 if (HasSolutionPoolDiversityLimit) {
12139 output.WriteRawTag(200, 20);
12140 output.WriteInt32(SolutionPoolDiversityLimit);
12141 }
12142 if (HasUseChronologicalBacktracking) {
12143 output.WriteRawTag(208, 20);
12144 output.WriteBool(UseChronologicalBacktracking);
12145 }
12146 if (HasMaxBackjumpLevels) {
12147 output.WriteRawTag(216, 20);
12148 output.WriteInt32(MaxBackjumpLevels);
12149 }
12150 if (HasChronologicalBacktrackMinConflicts) {
12151 output.WriteRawTag(224, 20);
12152 output.WriteInt32(ChronologicalBacktrackMinConflicts);
12153 }
12154 if (HasFindClausesThatAreExactlyOne) {
12155 output.WriteRawTag(232, 20);
12156 output.WriteBool(FindClausesThatAreExactlyOne);
12157 }
12158 if (HasLoadAtMostOnesInSatPresolve) {
12159 output.WriteRawTag(248, 20);
12160 output.WriteBool(LoadAtMostOnesInSatPresolve);
12161 }
12162 if (HasUseNewIntegerConflictResolution) {
12163 output.WriteRawTag(128, 21);
12164 output.WriteBool(UseNewIntegerConflictResolution);
12165 }
12166 if (HasClauseCleanupPeriodIncrement) {
12167 output.WriteRawTag(136, 21);
12168 output.WriteInt32(ClauseCleanupPeriodIncrement);
12169 }
12170 if (HasDebugCrashIfLratCheckFails) {
12171 output.WriteRawTag(152, 21);
12172 output.WriteBool(DebugCrashIfLratCheckFails);
12173 }
12174 if (HasMaxDomainSizeForLinear2Expansion) {
12175 output.WriteRawTag(160, 21);
12176 output.WriteInt32(MaxDomainSizeForLinear2Expansion);
12177 }
12178 if (HasCreate1UipBooleanDuringIcr) {
12179 output.WriteRawTag(168, 21);
12180 output.WriteBool(Create1UipBooleanDuringIcr);
12181 }
12182 if (HasInprocessingUseCongruenceClosure) {
12183 output.WriteRawTag(176, 21);
12184 output.WriteBool(InprocessingUseCongruenceClosure);
12185 }
12186 if (HasEagerlySubsumeLastNConflicts) {
12187 output.WriteRawTag(184, 21);
12188 output.WriteInt32(EagerlySubsumeLastNConflicts);
12189 }
12190 if (HasCheckLratProof) {
12191 output.WriteRawTag(192, 21);
12192 output.WriteBool(CheckLratProof);
12193 }
12194 if (HasOutputLratProof) {
12195 output.WriteRawTag(200, 21);
12196 output.WriteBool(OutputLratProof);
12197 }
12198 if (HasCheckDratProof) {
12199 output.WriteRawTag(208, 21);
12200 output.WriteBool(CheckDratProof);
12201 }
12202 if (HasOutputDratProof) {
12203 output.WriteRawTag(216, 21);
12204 output.WriteBool(OutputDratProof);
12205 }
12206 if (HasMaxDratTimeInSeconds) {
12207 output.WriteRawTag(225, 21);
12208 output.WriteDouble(MaxDratTimeInSeconds);
12209 }
12210 if (HasClauseCleanupLbdTier1) {
12211 output.WriteRawTag(232, 21);
12212 output.WriteInt32(ClauseCleanupLbdTier1);
12213 }
12214 if (HasClauseCleanupLbdTier2) {
12215 output.WriteRawTag(240, 21);
12216 output.WriteInt32(ClauseCleanupLbdTier2);
12217 }
12218 if (HasExtraSubsumptionDuringConflictAnalysis) {
12219 output.WriteRawTag(248, 21);
12220 output.WriteBool(ExtraSubsumptionDuringConflictAnalysis);
12221 }
12222 if (HasCheckMergedLratProof) {
12223 output.WriteRawTag(128, 22);
12224 output.WriteBool(CheckMergedLratProof);
12225 }
12226 if (HasDecisionSubsumptionDuringConflictAnalysis) {
12227 output.WriteRawTag(136, 22);
12228 output.WriteBool(DecisionSubsumptionDuringConflictAnalysis);
12229 }
12230 if (HasInprocessingUseSatSweeping) {
12231 output.WriteRawTag(144, 22);
12232 output.WriteBool(InprocessingUseSatSweeping);
12233 }
12234 if (HasSubsumeDuringVivification) {
12235 output.WriteRawTag(152, 22);
12236 output.WriteBool(SubsumeDuringVivification);
12237 }
12238 if (_unknownFields != null) {
12239 _unknownFields.WriteTo(output);
12240 }
12241 #endif
12242 }
12243
12244 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
12245 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12246 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
12247 void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
12248 if (HasPreferredVariableOrder) {
12249 output.WriteRawTag(8);
12250 output.WriteEnum((int) PreferredVariableOrder);
12251 }
12252 if (HasInitialPolarity) {
12253 output.WriteRawTag(16);
12254 output.WriteEnum((int) InitialPolarity);
12255 }
12256 if (HasMinimizationAlgorithm) {
12257 output.WriteRawTag(32);
12258 output.WriteEnum((int) MinimizationAlgorithm);
12259 }
12260 if (HasClauseCleanupPeriod) {
12261 output.WriteRawTag(88);
12262 output.WriteInt32(ClauseCleanupPeriod);
12263 }
12264 if (HasClauseCleanupTarget) {
12265 output.WriteRawTag(104);
12266 output.WriteInt32(ClauseCleanupTarget);
12267 }
12268 if (HasVariableActivityDecay) {
12269 output.WriteRawTag(121);
12270 output.WriteDouble(VariableActivityDecay);
12271 }
12272 if (HasMaxVariableActivityValue) {
12273 output.WriteRawTag(129, 1);
12274 output.WriteDouble(MaxVariableActivityValue);
12275 }
12276 if (HasClauseActivityDecay) {
12277 output.WriteRawTag(137, 1);
12278 output.WriteDouble(ClauseActivityDecay);
12279 }
12280 if (HasMaxClauseActivityValue) {
12281 output.WriteRawTag(145, 1);
12282 output.WriteDouble(MaxClauseActivityValue);
12283 }
12284 if (HasGlucoseMaxDecay) {
12285 output.WriteRawTag(177, 1);
12286 output.WriteDouble(GlucoseMaxDecay);
12287 }
12288 if (HasGlucoseDecayIncrement) {
12289 output.WriteRawTag(185, 1);
12290 output.WriteDouble(GlucoseDecayIncrement);
12291 }
12292 if (HasGlucoseDecayIncrementPeriod) {
12293 output.WriteRawTag(192, 1);
12294 output.WriteInt32(GlucoseDecayIncrementPeriod);
12295 }
12296 if (HasRestartPeriod) {
12297 output.WriteRawTag(240, 1);
12298 output.WriteInt32(RestartPeriod);
12299 }
12300 if (HasRandomSeed) {
12301 output.WriteRawTag(248, 1);
12302 output.WriteInt32(RandomSeed);
12303 }
12304 if (HasRandomBranchesRatio) {
12305 output.WriteRawTag(129, 2);
12306 output.WriteDouble(RandomBranchesRatio);
12307 }
12308 if (HasBinaryMinimizationAlgorithm) {
12309 output.WriteRawTag(144, 2);
12310 output.WriteEnum((int) BinaryMinimizationAlgorithm);
12311 }
12312 if (HasUseOptimizationHints) {
12313 output.WriteRawTag(152, 2);
12314 output.WriteBool(UseOptimizationHints);
12315 }
12316 if (HasMaxTimeInSeconds) {
12317 output.WriteRawTag(161, 2);
12318 output.WriteDouble(MaxTimeInSeconds);
12319 }
12320 if (HasMaxNumberOfConflicts) {
12321 output.WriteRawTag(168, 2);
12322 output.WriteInt64(MaxNumberOfConflicts);
12323 }
12324 if (HasMaxMemoryInMb) {
12325 output.WriteRawTag(192, 2);
12326 output.WriteInt64(MaxMemoryInMb);
12327 }
12328 if (HasLogSearchProgress) {
12329 output.WriteRawTag(200, 2);
12330 output.WriteBool(LogSearchProgress);
12331 }
12332 if (HasUsePbResolution) {
12333 output.WriteRawTag(216, 2);
12334 output.WriteBool(UsePbResolution);
12335 }
12336 if (HasUsePhaseSaving) {
12337 output.WriteRawTag(224, 2);
12338 output.WriteBool(UsePhaseSaving);
12339 }
12340 if (HasRandomPolarityRatio) {
12341 output.WriteRawTag(233, 2);
12342 output.WriteDouble(RandomPolarityRatio);
12343 }
12344 if (HasPbCleanupIncrement) {
12345 output.WriteRawTag(240, 2);
12346 output.WriteInt32(PbCleanupIncrement);
12347 }
12348 if (HasPbCleanupRatio) {
12349 output.WriteRawTag(249, 2);
12350 output.WriteDouble(PbCleanupRatio);
12351 }
12352 if (HasMinimizeReductionDuringPbResolution) {
12353 output.WriteRawTag(128, 3);
12354 output.WriteBool(MinimizeReductionDuringPbResolution);
12355 }
12356 if (HasCountAssumptionLevelsInLbd) {
12357 output.WriteRawTag(136, 3);
12358 output.WriteBool(CountAssumptionLevelsInLbd);
12359 }
12360 if (HasCoreMinimizationLevel) {
12361 output.WriteRawTag(144, 3);
12362 output.WriteInt32(CoreMinimizationLevel);
12363 }
12364 if (HasMaxSatAssumptionOrder) {
12365 output.WriteRawTag(152, 3);
12366 output.WriteEnum((int) MaxSatAssumptionOrder);
12367 }
12368 if (HasMaxSatReverseAssumptionOrder) {
12369 output.WriteRawTag(160, 3);
12370 output.WriteBool(MaxSatReverseAssumptionOrder);
12371 }
12372 if (HasMaxSatStratification) {
12373 output.WriteRawTag(168, 3);
12374 output.WriteEnum((int) MaxSatStratification);
12375 }
12376 if (HasPresolveBveThreshold) {
12377 output.WriteRawTag(176, 3);
12378 output.WriteInt32(PresolveBveThreshold);
12379 }
12380 if (HasPresolveBveClauseWeight) {
12381 output.WriteRawTag(184, 3);
12382 output.WriteInt32(PresolveBveClauseWeight);
12383 }
12384 if (HasSubsumptionDuringConflictAnalysis) {
12385 output.WriteRawTag(192, 3);
12386 output.WriteBool(SubsumptionDuringConflictAnalysis);
12387 }
12388 if (HasPresolveProbingDeterministicTimeLimit) {
12389 output.WriteRawTag(201, 3);
12390 output.WriteDouble(PresolveProbingDeterministicTimeLimit);
12391 }
12392 if (HasClauseCleanupLbdBound) {
12393 output.WriteRawTag(216, 3);
12394 output.WriteInt32(ClauseCleanupLbdBound);
12395 }
12396 if (HasClauseCleanupOrdering) {
12397 output.WriteRawTag(224, 3);
12398 output.WriteEnum((int) ClauseCleanupOrdering);
12399 }
12400 restartAlgorithms_.WriteTo(ref output, _repeated_restartAlgorithms_codec);
12401 if (HasRestartRunningWindowSize) {
12402 output.WriteRawTag(240, 3);
12403 output.WriteInt32(RestartRunningWindowSize);
12404 }
12405 if (HasRestartDlAverageRatio) {
12406 output.WriteRawTag(249, 3);
12407 output.WriteDouble(RestartDlAverageRatio);
12408 }
12409 if (HasUseBlockingRestart) {
12410 output.WriteRawTag(128, 4);
12411 output.WriteBool(UseBlockingRestart);
12412 }
12413 if (HasBlockingRestartWindowSize) {
12414 output.WriteRawTag(136, 4);
12415 output.WriteInt32(BlockingRestartWindowSize);
12416 }
12417 if (HasBlockingRestartMultiplier) {
12418 output.WriteRawTag(145, 4);
12419 output.WriteDouble(BlockingRestartMultiplier);
12420 }
12421 if (HasMaxDeterministicTime) {
12422 output.WriteRawTag(153, 4);
12423 output.WriteDouble(MaxDeterministicTime);
12424 }
12425 if (HasNumConflictsBeforeStrategyChanges) {
12426 output.WriteRawTag(160, 4);
12427 output.WriteInt32(NumConflictsBeforeStrategyChanges);
12428 }
12429 if (HasStrategyChangeIncreaseRatio) {
12430 output.WriteRawTag(169, 4);
12431 output.WriteDouble(StrategyChangeIncreaseRatio);
12432 }
12433 if (HasDefaultRestartAlgorithms) {
12434 output.WriteRawTag(178, 4);
12435 output.WriteString(DefaultRestartAlgorithms);
12436 }
12437 if (HasRestartLbdAverageRatio) {
12438 output.WriteRawTag(185, 4);
12439 output.WriteDouble(RestartLbdAverageRatio);
12440 }
12441 if (HasPresolveUseBva) {
12442 output.WriteRawTag(192, 4);
12443 output.WriteBool(PresolveUseBva);
12444 }
12445 if (HasPresolveBvaThreshold) {
12446 output.WriteRawTag(200, 4);
12447 output.WriteInt32(PresolveBvaThreshold);
12448 }
12449 if (HasUsePrecedencesInDisjunctiveConstraint) {
12450 output.WriteRawTag(208, 4);
12451 output.WriteBool(UsePrecedencesInDisjunctiveConstraint);
12452 }
12453 if (HasUseErwaHeuristic) {
12454 output.WriteRawTag(216, 4);
12455 output.WriteBool(UseErwaHeuristic);
12456 }
12457 if (HasInitialVariablesActivity) {
12458 output.WriteRawTag(225, 4);
12459 output.WriteDouble(InitialVariablesActivity);
12460 }
12461 if (HasAlsoBumpVariablesInConflictReasons) {
12462 output.WriteRawTag(232, 4);
12463 output.WriteBool(AlsoBumpVariablesInConflictReasons);
12464 }
12465 if (HasUseOverloadCheckerInCumulative) {
12466 output.WriteRawTag(240, 4);
12467 output.WriteBool(UseOverloadCheckerInCumulative);
12468 }
12469 if (HasUseTimetableEdgeFindingInCumulative) {
12470 output.WriteRawTag(248, 4);
12471 output.WriteBool(UseTimetableEdgeFindingInCumulative);
12472 }
12473 if (HasUseDisjunctiveConstraintInCumulative) {
12474 output.WriteRawTag(128, 5);
12475 output.WriteBool(UseDisjunctiveConstraintInCumulative);
12476 }
12477 if (HasSearchBranching) {
12478 output.WriteRawTag(144, 5);
12479 output.WriteEnum((int) SearchBranching);
12480 }
12481 if (HasOptimizeWithCore) {
12482 output.WriteRawTag(152, 5);
12483 output.WriteBool(OptimizeWithCore);
12484 }
12485 if (HasFindMultipleCores) {
12486 output.WriteRawTag(160, 5);
12487 output.WriteBool(FindMultipleCores);
12488 }
12489 if (HasOptimizeWithMaxHs) {
12490 output.WriteRawTag(168, 5);
12491 output.WriteBool(OptimizeWithMaxHs);
12492 }
12493 if (HasCpModelPresolve) {
12494 output.WriteRawTag(176, 5);
12495 output.WriteBool(CpModelPresolve);
12496 }
12497 if (HasEnumerateAllSolutions) {
12498 output.WriteRawTag(184, 5);
12499 output.WriteBool(EnumerateAllSolutions);
12500 }
12501 if (HasPresolveBlockedClause) {
12502 output.WriteRawTag(192, 5);
12503 output.WriteBool(PresolveBlockedClause);
12504 }
12505 if (HasCoverOptimization) {
12506 output.WriteRawTag(200, 5);
12507 output.WriteBool(CoverOptimization);
12508 }
12509 if (HasLinearizationLevel) {
12510 output.WriteRawTag(208, 5);
12511 output.WriteInt32(LinearizationLevel);
12512 }
12513 if (HasMaxNumCuts) {
12514 output.WriteRawTag(216, 5);
12515 output.WriteInt32(MaxNumCuts);
12516 }
12517 if (HasOnlyAddCutsAtLevelZero) {
12518 output.WriteRawTag(224, 5);
12519 output.WriteBool(OnlyAddCutsAtLevelZero);
12520 }
12521 if (HasCpModelUseSatPresolve) {
12522 output.WriteRawTag(232, 5);
12523 output.WriteBool(CpModelUseSatPresolve);
12524 }
12525 if (HasExploitIntegerLpSolution) {
12526 output.WriteRawTag(240, 5);
12527 output.WriteBool(ExploitIntegerLpSolution);
12528 }
12529 if (HasAutoDetectGreaterThanAtLeastOneOf) {
12530 output.WriteRawTag(248, 5);
12531 output.WriteBool(AutoDetectGreaterThanAtLeastOneOf);
12532 }
12533 if (HasStopAfterFirstSolution) {
12534 output.WriteRawTag(144, 6);
12535 output.WriteBool(StopAfterFirstSolution);
12536 }
12537 if (HasBinarySearchNumConflicts) {
12538 output.WriteRawTag(152, 6);
12539 output.WriteInt32(BinarySearchNumConflicts);
12540 }
12541 if (HasNumSearchWorkers) {
12542 output.WriteRawTag(160, 6);
12543 output.WriteInt32(NumSearchWorkers);
12544 }
12545 if (HasUseLnsOnly) {
12546 output.WriteRawTag(168, 6);
12547 output.WriteBool(UseLnsOnly);
12548 }
12549 if (HasRandomizeSearch) {
12550 output.WriteRawTag(184, 6);
12551 output.WriteBool(RandomizeSearch);
12552 }
12553 if (HasSearchRandomVariablePoolSize) {
12554 output.WriteRawTag(192, 6);
12555 output.WriteInt64(SearchRandomVariablePoolSize);
12556 }
12557 if (HasInstantiateAllVariables) {
12558 output.WriteRawTag(208, 6);
12559 output.WriteBool(InstantiateAllVariables);
12560 }
12561 if (HasBooleanEncodingLevel) {
12562 output.WriteRawTag(216, 6);
12563 output.WriteInt32(BooleanEncodingLevel);
12564 }
12565 if (HasUseOptionalVariables) {
12566 output.WriteRawTag(224, 6);
12567 output.WriteBool(UseOptionalVariables);
12568 }
12569 if (HasUseExactLpReason) {
12570 output.WriteRawTag(232, 6);
12571 output.WriteBool(UseExactLpReason);
12572 }
12573 if (HasCpModelProbingLevel) {
12574 output.WriteRawTag(240, 6);
12575 output.WriteInt32(CpModelProbingLevel);
12576 }
12577 if (HasAddLpConstraintsLazily) {
12578 output.WriteRawTag(128, 7);
12579 output.WriteBool(AddLpConstraintsLazily);
12580 }
12581 if (HasShareObjectiveBounds) {
12582 output.WriteRawTag(136, 7);
12583 output.WriteBool(ShareObjectiveBounds);
12584 }
12585 if (HasShareLevelZeroBounds) {
12586 output.WriteRawTag(144, 7);
12587 output.WriteBool(ShareLevelZeroBounds);
12588 }
12589 if (HasMinOrthogonalityForLpConstraints) {
12590 output.WriteRawTag(153, 7);
12591 output.WriteDouble(MinOrthogonalityForLpConstraints);
12592 }
12593 if (HasExploitAllLpSolution) {
12594 output.WriteRawTag(160, 7);
12595 output.WriteBool(ExploitAllLpSolution);
12596 }
12597 if (HasAddCgCuts) {
12598 output.WriteRawTag(168, 7);
12599 output.WriteBool(AddCgCuts);
12600 }
12601 if (HasMaxIntegerRoundingScaling) {
12602 output.WriteRawTag(184, 7);
12603 output.WriteInt32(MaxIntegerRoundingScaling);
12604 }
12605 if (HasAddMirCuts) {
12606 output.WriteRawTag(192, 7);
12607 output.WriteBool(AddMirCuts);
12608 }
12609 if (HasMaxConsecutiveInactiveCount) {
12610 output.WriteRawTag(200, 7);
12611 output.WriteInt32(MaxConsecutiveInactiveCount);
12612 }
12613 if (HasNewConstraintsBatchSize) {
12614 output.WriteRawTag(208, 7);
12615 output.WriteInt32(NewConstraintsBatchSize);
12616 }
12617 if (HasPseudoCostReliabilityThreshold) {
12618 output.WriteRawTag(216, 7);
12619 output.WriteInt64(PseudoCostReliabilityThreshold);
12620 }
12621 if (HasMipMaxBound) {
12622 output.WriteRawTag(225, 7);
12623 output.WriteDouble(MipMaxBound);
12624 }
12625 if (HasMipVarScaling) {
12626 output.WriteRawTag(233, 7);
12627 output.WriteDouble(MipVarScaling);
12628 }
12629 if (HasMipWantedPrecision) {
12630 output.WriteRawTag(241, 7);
12631 output.WriteDouble(MipWantedPrecision);
12632 }
12633 if (HasMipMaxActivityExponent) {
12634 output.WriteRawTag(248, 7);
12635 output.WriteInt32(MipMaxActivityExponent);
12636 }
12637 if (HasMipCheckPrecision) {
12638 output.WriteRawTag(129, 8);
12639 output.WriteDouble(MipCheckPrecision);
12640 }
12641 if (HasUseRinsLns) {
12642 output.WriteRawTag(136, 8);
12643 output.WriteBool(UseRinsLns);
12644 }
12645 if (HasExploitBestSolution) {
12646 output.WriteRawTag(144, 8);
12647 output.WriteBool(ExploitBestSolution);
12648 }
12649 if (HasExploitObjective) {
12650 output.WriteRawTag(152, 8);
12651 output.WriteBool(ExploitObjective);
12652 }
12653 if (HasFillTightenedDomainsInResponse) {
12654 output.WriteRawTag(160, 8);
12655 output.WriteBool(FillTightenedDomainsInResponse);
12656 }
12657 if (HasUseCombinedNoOverlap) {
12658 output.WriteRawTag(168, 8);
12659 output.WriteBool(UseCombinedNoOverlap);
12660 }
12661 if (HasInterleaveBatchSize) {
12662 output.WriteRawTag(176, 8);
12663 output.WriteInt32(InterleaveBatchSize);
12664 }
12665 if (HasCatchSigintSignal) {
12666 output.WriteRawTag(184, 8);
12667 output.WriteBool(CatchSigintSignal);
12668 }
12669 if (HasInterleaveSearch) {
12670 output.WriteRawTag(192, 8);
12671 output.WriteBool(InterleaveSearch);
12672 }
12673 if (HasDiversifyLnsParams) {
12674 output.WriteRawTag(200, 8);
12675 output.WriteBool(DiversifyLnsParams);
12676 }
12677 if (HasMaxPresolveIterations) {
12678 output.WriteRawTag(208, 8);
12679 output.WriteInt32(MaxPresolveIterations);
12680 }
12681 if (HasUseImpliedBounds) {
12682 output.WriteRawTag(128, 9);
12683 output.WriteBool(UseImpliedBounds);
12684 }
12685 if (HasMergeNoOverlapWorkLimit) {
12686 output.WriteRawTag(137, 9);
12687 output.WriteDouble(MergeNoOverlapWorkLimit);
12688 }
12689 if (HasMergeAtMostOneWorkLimit) {
12690 output.WriteRawTag(145, 9);
12691 output.WriteDouble(MergeAtMostOneWorkLimit);
12692 }
12693 if (HasPresolveSubstitutionLevel) {
12694 output.WriteRawTag(152, 9);
12695 output.WriteInt32(PresolveSubstitutionLevel);
12696 }
12697 if (HasMaxAllDiffCutSize) {
12698 output.WriteRawTag(160, 9);
12699 output.WriteInt32(MaxAllDiffCutSize);
12700 }
12701 if (HasStopAfterPresolve) {
12702 output.WriteRawTag(168, 9);
12703 output.WriteBool(StopAfterPresolve);
12704 }
12705 if (HasDebugMaxNumPresolveOperations) {
12706 output.WriteRawTag(184, 9);
12707 output.WriteInt32(DebugMaxNumPresolveOperations);
12708 }
12709 if (HasAddLinMaxCuts) {
12710 output.WriteRawTag(192, 9);
12711 output.WriteBool(AddLinMaxCuts);
12712 }
12713 if (HasHintConflictLimit) {
12714 output.WriteRawTag(200, 9);
12715 output.WriteInt32(HintConflictLimit);
12716 }
12717 if (HasMaxCutRoundsAtLevelZero) {
12718 output.WriteRawTag(208, 9);
12719 output.WriteInt32(MaxCutRoundsAtLevelZero);
12720 }
12721 if (HasCutMaxActiveCountValue) {
12722 output.WriteRawTag(217, 9);
12723 output.WriteDouble(CutMaxActiveCountValue);
12724 }
12725 if (HasCutActiveCountDecay) {
12726 output.WriteRawTag(225, 9);
12727 output.WriteDouble(CutActiveCountDecay);
12728 }
12729 if (HasCutCleanupTarget) {
12730 output.WriteRawTag(232, 9);
12731 output.WriteInt32(CutCleanupTarget);
12732 }
12733 if (HasAbsoluteGapLimit) {
12734 output.WriteRawTag(249, 9);
12735 output.WriteDouble(AbsoluteGapLimit);
12736 }
12737 if (HasRelativeGapLimit) {
12738 output.WriteRawTag(129, 10);
12739 output.WriteDouble(RelativeGapLimit);
12740 }
12741 if (HasExploitRelaxationSolution) {
12742 output.WriteRawTag(136, 10);
12743 output.WriteBool(ExploitRelaxationSolution);
12744 }
12745 if (HasDebugPostsolveWithFullSolver) {
12746 output.WriteRawTag(144, 10);
12747 output.WriteBool(DebugPostsolveWithFullSolver);
12748 }
12749 if (HasUseSatInprocessing) {
12750 output.WriteRawTag(152, 10);
12751 output.WriteBool(UseSatInprocessing);
12752 }
12753 if (HasUseFeasibilityPump) {
12754 output.WriteRawTag(160, 10);
12755 output.WriteBool(UseFeasibilityPump);
12756 }
12757 if (HasFpRounding) {
12758 output.WriteRawTag(168, 10);
12759 output.WriteEnum((int) FpRounding);
12760 }
12761 if (HasMipAutomaticallyScaleVariables) {
12762 output.WriteRawTag(176, 10);
12763 output.WriteBool(MipAutomaticallyScaleVariables);
12764 }
12765 if (HasRepairHint) {
12766 output.WriteRawTag(184, 10);
12767 output.WriteBool(RepairHint);
12768 }
12769 if (HasPolarityRephaseIncrement) {
12770 output.WriteRawTag(192, 10);
12771 output.WriteInt32(PolarityRephaseIncrement);
12772 }
12773 if (HasAddZeroHalfCuts) {
12774 output.WriteRawTag(200, 10);
12775 output.WriteBool(AddZeroHalfCuts);
12776 }
12777 if (HasExpandAlldiffConstraints) {
12778 output.WriteRawTag(208, 10);
12779 output.WriteBool(ExpandAlldiffConstraints);
12780 }
12781 if (HasName) {
12782 output.WriteRawTag(218, 10);
12783 output.WriteString(Name);
12784 }
12785 if (HasAddCliqueCuts) {
12786 output.WriteRawTag(224, 10);
12787 output.WriteBool(AddCliqueCuts);
12788 }
12789 if (HasKeepAllFeasibleSolutionsInPresolve) {
12790 output.WriteRawTag(232, 10);
12791 output.WriteBool(KeepAllFeasibleSolutionsInPresolve);
12792 }
12793 if (HasPresolveExtractIntegerEnforcement) {
12794 output.WriteRawTag(240, 10);
12795 output.WriteBool(PresolveExtractIntegerEnforcement);
12796 }
12797 if (HasPolishLpSolution) {
12798 output.WriteRawTag(248, 10);
12799 output.WriteBool(PolishLpSolution);
12800 }
12801 if (HasUseProbingSearch) {
12802 output.WriteRawTag(128, 11);
12803 output.WriteBool(UseProbingSearch);
12804 }
12805 if (HasConvertIntervals) {
12806 output.WriteRawTag(136, 11);
12807 output.WriteBool(ConvertIntervals);
12808 }
12809 if (HasPermuteVariableRandomly) {
12810 output.WriteRawTag(144, 11);
12811 output.WriteBool(PermuteVariableRandomly);
12812 }
12813 if (HasPermutePresolveConstraintOrder) {
12814 output.WriteRawTag(152, 11);
12815 output.WriteBool(PermutePresolveConstraintOrder);
12816 }
12817 if (HasUseAbslRandom) {
12818 output.WriteRawTag(160, 11);
12819 output.WriteBool(UseAbslRandom);
12820 }
12821 if (HasDisableConstraintExpansion) {
12822 output.WriteRawTag(168, 11);
12823 output.WriteBool(DisableConstraintExpansion);
12824 }
12825 if (HasExpandReservoirConstraints) {
12826 output.WriteRawTag(176, 11);
12827 output.WriteBool(ExpandReservoirConstraints);
12828 }
12829 if (HasSymmetryLevel) {
12830 output.WriteRawTag(184, 11);
12831 output.WriteInt32(SymmetryLevel);
12832 }
12833 if (HasLogPrefix) {
12834 output.WriteRawTag(202, 11);
12835 output.WriteString(LogPrefix);
12836 }
12837 if (HasLogToStdout) {
12838 output.WriteRawTag(208, 11);
12839 output.WriteBool(LogToStdout);
12840 }
12841 if (HasLogToResponse) {
12842 output.WriteRawTag(216, 11);
12843 output.WriteBool(LogToResponse);
12844 }
12845 if (HasOptimizeWithLbTreeSearch) {
12846 output.WriteRawTag(224, 11);
12847 output.WriteBool(OptimizeWithLbTreeSearch);
12848 }
12849 if (HasLogSubsolverStatistics) {
12850 output.WriteRawTag(232, 11);
12851 output.WriteBool(LogSubsolverStatistics);
12852 }
12853 if (HasClauseCleanupRatio) {
12854 output.WriteRawTag(241, 11);
12855 output.WriteDouble(ClauseCleanupRatio);
12856 }
12857 if (HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
12858 output.WriteRawTag(248, 11);
12859 output.WriteInt32(MaxDomainSizeWhenEncodingEqNeqConstraints);
12860 }
12861 if (HasFixVariablesToTheirHintedValue) {
12862 output.WriteRawTag(128, 12);
12863 output.WriteBool(FixVariablesToTheirHintedValue);
12864 }
12865 if (HasSolutionPoolSize) {
12866 output.WriteRawTag(136, 12);
12867 output.WriteInt32(SolutionPoolSize);
12868 }
12869 if (HasFillAdditionalSolutionsInResponse) {
12870 output.WriteRawTag(144, 12);
12871 output.WriteBool(FillAdditionalSolutionsInResponse);
12872 }
12873 if (HasDebugCrashOnBadHint) {
12874 output.WriteRawTag(152, 12);
12875 output.WriteBool(DebugCrashOnBadHint);
12876 }
12877 if (HasCutLevel) {
12878 output.WriteRawTag(160, 12);
12879 output.WriteInt32(CutLevel);
12880 }
12881 if (HasAddObjectiveCut) {
12882 output.WriteRawTag(168, 12);
12883 output.WriteBool(AddObjectiveCut);
12884 }
12885 if (HasMipComputeTrueObjectiveBound) {
12886 output.WriteRawTag(176, 12);
12887 output.WriteBool(MipComputeTrueObjectiveBound);
12888 }
12889 if (HasMipMaxValidMagnitude) {
12890 output.WriteRawTag(185, 12);
12891 output.WriteDouble(MipMaxValidMagnitude);
12892 }
12893 if (HasUseTimetablingInNoOverlap2D) {
12894 output.WriteRawTag(192, 12);
12895 output.WriteBool(UseTimetablingInNoOverlap2D);
12896 }
12897 if (HasPresolveInclusionWorkLimit) {
12898 output.WriteRawTag(200, 12);
12899 output.WriteInt64(PresolveInclusionWorkLimit);
12900 }
12901 if (HasIgnoreNames) {
12902 output.WriteRawTag(208, 12);
12903 output.WriteBool(IgnoreNames);
12904 }
12905 if (HasShareBinaryClauses) {
12906 output.WriteRawTag(216, 12);
12907 output.WriteBool(ShareBinaryClauses);
12908 }
12909 if (HasShavingDeterministicTimeInProbingSearch) {
12910 output.WriteRawTag(225, 12);
12911 output.WriteDouble(ShavingDeterministicTimeInProbingSearch);
12912 }
12913 if (HasShavingSearchDeterministicTime) {
12914 output.WriteRawTag(233, 12);
12915 output.WriteDouble(ShavingSearchDeterministicTime);
12916 }
12917 if (HasNumWorkers) {
12918 output.WriteRawTag(240, 12);
12919 output.WriteInt32(NumWorkers);
12920 }
12921 subsolvers_.WriteTo(ref output, _repeated_subsolvers_codec);
12922 ignoreSubsolvers_.WriteTo(ref output, _repeated_ignoreSubsolvers_codec);
12923 subsolverParams_.WriteTo(ref output, _repeated_subsolverParams_codec);
12924 if (HasUseEnergeticReasoningInNoOverlap2D) {
12925 output.WriteRawTag(168, 13);
12926 output.WriteBool(UseEnergeticReasoningInNoOverlap2D);
12927 }
12928 if (HasUseDualSchedulingHeuristics) {
12929 output.WriteRawTag(176, 13);
12930 output.WriteBool(UseDualSchedulingHeuristics);
12931 }
12932 if (HasUseHardPrecedencesInCumulative) {
12933 output.WriteRawTag(184, 13);
12934 output.WriteBool(UseHardPrecedencesInCumulative);
12935 }
12936 if (HasDetectTableWithCost) {
12937 output.WriteRawTag(192, 13);
12938 output.WriteBool(DetectTableWithCost);
12939 }
12940 if (HasTableCompressionLevel) {
12941 output.WriteRawTag(200, 13);
12942 output.WriteInt32(TableCompressionLevel);
12943 }
12944 extraSubsolvers_.WriteTo(ref output, _repeated_extraSubsolvers_codec);
12945 if (HasExploitAllPrecedences) {
12946 output.WriteRawTag(224, 13);
12947 output.WriteBool(ExploitAllPrecedences);
12948 }
12949 if (HasPropagationLoopDetectionFactor) {
12950 output.WriteRawTag(233, 13);
12951 output.WriteDouble(PropagationLoopDetectionFactor);
12952 }
12953 if (HasOnlySolveIp) {
12954 output.WriteRawTag(240, 13);
12955 output.WriteBool(OnlySolveIp);
12956 }
12957 if (HasEncodeComplexLinearConstraintWithInteger) {
12958 output.WriteRawTag(248, 13);
12959 output.WriteBool(EncodeComplexLinearConstraintWithInteger);
12960 }
12961 if (HasNewLinearPropagation) {
12962 output.WriteRawTag(128, 14);
12963 output.WriteBool(NewLinearPropagation);
12964 }
12965 if (HasMipScaleLargeDomain) {
12966 output.WriteRawTag(136, 14);
12967 output.WriteBool(MipScaleLargeDomain);
12968 }
12969 if (HasProbingDeterministicTimeLimit) {
12970 output.WriteRawTag(145, 14);
12971 output.WriteDouble(ProbingDeterministicTimeLimit);
12972 }
12973 if (HasRootLpIterations) {
12974 output.WriteRawTag(152, 14);
12975 output.WriteInt32(RootLpIterations);
12976 }
12977 if (HasUseObjectiveLbSearch) {
12978 output.WriteRawTag(160, 14);
12979 output.WriteBool(UseObjectiveLbSearch);
12980 }
12981 if (HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
12982 output.WriteRawTag(168, 14);
12983 output.WriteInt32(MaxSizeToCreatePrecedenceLiteralsInDisjunctive);
12984 }
12985 if (HasUseStrongPropagationInDisjunctive) {
12986 output.WriteRawTag(176, 14);
12987 output.WriteBool(UseStrongPropagationInDisjunctive);
12988 }
12989 if (HasMipDropTolerance) {
12990 output.WriteRawTag(193, 14);
12991 output.WriteDouble(MipDropTolerance);
12992 }
12993 if (HasInferAllDiffs) {
12994 output.WriteRawTag(200, 14);
12995 output.WriteBool(InferAllDiffs);
12996 }
12997 if (HasFindBigLinearOverlap) {
12998 output.WriteRawTag(208, 14);
12999 output.WriteBool(FindBigLinearOverlap);
13000 }
13001 if (HasSharedTreeNumWorkers) {
13002 output.WriteRawTag(216, 14);
13003 output.WriteInt32(SharedTreeNumWorkers);
13004 }
13005 if (HasUseSharedTreeSearch) {
13006 output.WriteRawTag(224, 14);
13007 output.WriteBool(UseSharedTreeSearch);
13008 }
13009 if (HasSharedTreeMaxNodesPerWorker) {
13010 output.WriteRawTag(240, 14);
13011 output.WriteInt32(SharedTreeMaxNodesPerWorker);
13012 }
13013 if (HasSharedTreeSplitStrategy) {
13014 output.WriteRawTag(248, 14);
13015 output.WriteEnum((int) SharedTreeSplitStrategy);
13016 }
13017 if (HasUseLsOnly) {
13018 output.WriteRawTag(128, 15);
13019 output.WriteBool(UseLsOnly);
13020 }
13021 if (HasFeasibilityJumpDecay) {
13022 output.WriteRawTag(145, 15);
13023 output.WriteDouble(FeasibilityJumpDecay);
13024 }
13025 if (HasNumViolationLs) {
13026 output.WriteRawTag(160, 15);
13027 output.WriteInt32(NumViolationLs);
13028 }
13029 if (HasFeasibilityJumpVarRandomizationProbability) {
13030 output.WriteRawTag(185, 15);
13031 output.WriteDouble(FeasibilityJumpVarRandomizationProbability);
13032 }
13033 if (HasFeasibilityJumpVarPerburbationRangeRatio) {
13034 output.WriteRawTag(193, 15);
13035 output.WriteDouble(FeasibilityJumpVarPerburbationRangeRatio);
13036 }
13037 if (HasViolationLsPerturbationPeriod) {
13038 output.WriteRawTag(200, 15);
13039 output.WriteInt32(ViolationLsPerturbationPeriod);
13040 }
13041 if (HasFeasibilityJumpEnableRestarts) {
13042 output.WriteRawTag(208, 15);
13043 output.WriteBool(FeasibilityJumpEnableRestarts);
13044 }
13045 if (HasStopAfterRootPropagation) {
13046 output.WriteRawTag(224, 15);
13047 output.WriteBool(StopAfterRootPropagation);
13048 }
13049 if (HasUseObjectiveShavingSearch) {
13050 output.WriteRawTag(232, 15);
13051 output.WriteBool(UseObjectiveShavingSearch);
13052 }
13053 if (HasUseLbRelaxLns) {
13054 output.WriteRawTag(248, 15);
13055 output.WriteBool(UseLbRelaxLns);
13056 }
13057 if (HasLinearSplitSize) {
13058 output.WriteRawTag(128, 16);
13059 output.WriteInt32(LinearSplitSize);
13060 }
13061 if (HasFeasibilityJumpLinearizationLevel) {
13062 output.WriteRawTag(136, 16);
13063 output.WriteInt32(FeasibilityJumpLinearizationLevel);
13064 }
13065 if (HasFeasibilityJumpRestartFactor) {
13066 output.WriteRawTag(144, 16);
13067 output.WriteInt32(FeasibilityJumpRestartFactor);
13068 }
13069 if (HasViolationLsCompoundMoveProbability) {
13070 output.WriteRawTag(153, 16);
13071 output.WriteDouble(ViolationLsCompoundMoveProbability);
13072 }
13073 if (HasMaxNumIntervalsForTimetableEdgeFinding) {
13074 output.WriteRawTag(160, 16);
13075 output.WriteInt32(MaxNumIntervalsForTimetableEdgeFinding);
13076 }
13077 if (HasMipPresolveLevel) {
13078 output.WriteRawTag(168, 16);
13079 output.WriteInt32(MipPresolveLevel);
13080 }
13081 if (HasPushAllTasksTowardStart) {
13082 output.WriteRawTag(176, 16);
13083 output.WriteBool(PushAllTasksTowardStart);
13084 }
13085 if (HasUseDynamicPrecedenceInDisjunctive) {
13086 output.WriteRawTag(184, 16);
13087 output.WriteBool(UseDynamicPrecedenceInDisjunctive);
13088 }
13089 if (HasFeasibilityJumpMaxExpandedConstraintSize) {
13090 output.WriteRawTag(192, 16);
13091 output.WriteInt32(FeasibilityJumpMaxExpandedConstraintSize);
13092 }
13093 if (HasUseFeasibilityJump) {
13094 output.WriteRawTag(200, 16);
13095 output.WriteBool(UseFeasibilityJump);
13096 }
13097 if (HasLpPrimalTolerance) {
13098 output.WriteRawTag(209, 16);
13099 output.WriteDouble(LpPrimalTolerance);
13100 }
13101 if (HasLpDualTolerance) {
13102 output.WriteRawTag(217, 16);
13103 output.WriteDouble(LpDualTolerance);
13104 }
13105 if (HasUseDynamicPrecedenceInCumulative) {
13106 output.WriteRawTag(224, 16);
13107 output.WriteBool(UseDynamicPrecedenceInCumulative);
13108 }
13109 if (HasUseExtendedProbing) {
13110 output.WriteRawTag(232, 16);
13111 output.WriteBool(UseExtendedProbing);
13112 }
13113 if (HasAtMostOneMaxExpansionSize) {
13114 output.WriteRawTag(240, 16);
13115 output.WriteInt32(AtMostOneMaxExpansionSize);
13116 }
13117 if (HasUseAreaEnergeticReasoningInNoOverlap2D) {
13118 output.WriteRawTag(248, 16);
13119 output.WriteBool(UseAreaEnergeticReasoningInNoOverlap2D);
13120 }
13121 if (HasProbingNumCombinationsLimit) {
13122 output.WriteRawTag(128, 17);
13123 output.WriteInt32(ProbingNumCombinationsLimit);
13124 }
13125 if (HasInprocessingDtimeRatio) {
13126 output.WriteRawTag(137, 17);
13127 output.WriteDouble(InprocessingDtimeRatio);
13128 }
13129 if (HasInprocessingProbingDtime) {
13130 output.WriteRawTag(145, 17);
13131 output.WriteDouble(InprocessingProbingDtime);
13132 }
13133 if (HasInprocessingMinimizationDtime) {
13134 output.WriteRawTag(153, 17);
13135 output.WriteDouble(InprocessingMinimizationDtime);
13136 }
13137 if (HasMaxPairsPairwiseReasoningInNoOverlap2D) {
13138 output.WriteRawTag(160, 17);
13139 output.WriteInt32(MaxPairsPairwiseReasoningInNoOverlap2D);
13140 }
13141 if (HasDetectLinearizedProduct) {
13142 output.WriteRawTag(168, 17);
13143 output.WriteBool(DetectLinearizedProduct);
13144 }
13145 if (HasMipTreatHighMagnitudeBoundsAsInfinity) {
13146 output.WriteRawTag(176, 17);
13147 output.WriteBool(MipTreatHighMagnitudeBoundsAsInfinity);
13148 }
13149 if (HasAddRltCuts) {
13150 output.WriteRawTag(184, 17);
13151 output.WriteBool(AddRltCuts);
13152 }
13153 if (HasMaxLinMaxSizeForExpansion) {
13154 output.WriteRawTag(192, 17);
13155 output.WriteInt32(MaxLinMaxSizeForExpansion);
13156 }
13157 if (HasSharedTreeOpenLeavesPerWorker) {
13158 output.WriteRawTag(201, 17);
13159 output.WriteDouble(SharedTreeOpenLeavesPerWorker);
13160 }
13161 if (HasSharedTreeWorkerMinRestartsPerSubtree) {
13162 output.WriteRawTag(208, 17);
13163 output.WriteInt32(SharedTreeWorkerMinRestartsPerSubtree);
13164 }
13165 if (HasUseLns) {
13166 output.WriteRawTag(216, 17);
13167 output.WriteBool(UseLns);
13168 }
13169 if (HasSaveLpBasisInLbTreeSearch) {
13170 output.WriteRawTag(224, 17);
13171 output.WriteBool(SaveLpBasisInLbTreeSearch);
13172 }
13173 if (HasShareGlueClauses) {
13174 output.WriteRawTag(232, 17);
13175 output.WriteBool(ShareGlueClauses);
13176 }
13177 if (HasUseConservativeScaleOverloadChecker) {
13178 output.WriteRawTag(240, 17);
13179 output.WriteBool(UseConservativeScaleOverloadChecker);
13180 }
13181 if (HasEncodeCumulativeAsReservoir) {
13182 output.WriteRawTag(248, 17);
13183 output.WriteBool(EncodeCumulativeAsReservoir);
13184 }
13185 if (HasExpandReservoirUsingCircuit) {
13186 output.WriteRawTag(128, 18);
13187 output.WriteBool(ExpandReservoirUsingCircuit);
13188 }
13189 if (HasVariablesShavingLevel) {
13190 output.WriteRawTag(136, 18);
13191 output.WriteInt32(VariablesShavingLevel);
13192 }
13193 if (HasShavingSearchThreshold) {
13194 output.WriteRawTag(144, 18);
13195 output.WriteInt64(ShavingSearchThreshold);
13196 }
13197 if (HasMaxNumDeterministicBatches) {
13198 output.WriteRawTag(152, 18);
13199 output.WriteInt32(MaxNumDeterministicBatches);
13200 }
13201 if (HasFeasibilityJumpBatchDtime) {
13202 output.WriteRawTag(161, 18);
13203 output.WriteDouble(FeasibilityJumpBatchDtime);
13204 }
13205 filterSubsolvers_.WriteTo(ref output, _repeated_filterSubsolvers_codec);
13206 if (HasNumFullSubsolvers) {
13207 output.WriteRawTag(176, 18);
13208 output.WriteInt32(NumFullSubsolvers);
13209 }
13210 if (HasSharedTreeWorkerEnableTrailSharing) {
13211 output.WriteRawTag(184, 18);
13212 output.WriteBool(SharedTreeWorkerEnableTrailSharing);
13213 }
13214 if (HasLbRelaxNumWorkersThreshold) {
13215 output.WriteRawTag(192, 18);
13216 output.WriteInt32(LbRelaxNumWorkersThreshold);
13217 }
13218 if (HasInprocessingMinimizationUseConflictAnalysis) {
13219 output.WriteRawTag(200, 18);
13220 output.WriteBool(InprocessingMinimizationUseConflictAnalysis);
13221 }
13222 if (HasInprocessingMinimizationUseAllOrderings) {
13223 output.WriteRawTag(208, 18);
13224 output.WriteBool(InprocessingMinimizationUseAllOrderings);
13225 }
13226 if (HasUseTryEdgeReasoningInNoOverlap2D) {
13227 output.WriteRawTag(216, 18);
13228 output.WriteBool(UseTryEdgeReasoningInNoOverlap2D);
13229 }
13230 if (HasMinimizeSharedClauses) {
13231 output.WriteRawTag(224, 18);
13232 output.WriteBool(MinimizeSharedClauses);
13233 }
13234 if (HasUseSymmetryInLp) {
13235 output.WriteRawTag(232, 18);
13236 output.WriteBool(UseSymmetryInLp);
13237 }
13238 if (HasSymmetryDetectionDeterministicTimeLimit) {
13239 output.WriteRawTag(241, 18);
13240 output.WriteDouble(SymmetryDetectionDeterministicTimeLimit);
13241 }
13242 if (HasKeepSymmetryInPresolve) {
13243 output.WriteRawTag(248, 18);
13244 output.WriteBool(KeepSymmetryInPresolve);
13245 }
13246 if (HasSharedTreeWorkerEnablePhaseSharing) {
13247 output.WriteRawTag(128, 19);
13248 output.WriteBool(SharedTreeWorkerEnablePhaseSharing);
13249 }
13250 if (HasSharedTreeBalanceTolerance) {
13251 output.WriteRawTag(136, 19);
13252 output.WriteInt32(SharedTreeBalanceTolerance);
13253 }
13254 if (HasDebugCrashIfPresolveBreaksHint) {
13255 output.WriteRawTag(144, 19);
13256 output.WriteBool(DebugCrashIfPresolveBreaksHint);
13257 }
13258 if (HasLnsInitialDifficulty) {
13259 output.WriteRawTag(153, 19);
13260 output.WriteDouble(LnsInitialDifficulty);
13261 }
13262 if (HasLnsInitialDeterministicLimit) {
13263 output.WriteRawTag(161, 19);
13264 output.WriteDouble(LnsInitialDeterministicLimit);
13265 }
13266 if (HasPolarityExploitLsHints) {
13267 output.WriteRawTag(168, 19);
13268 output.WriteBool(PolarityExploitLsHints);
13269 }
13270 if (HasRemoveFixedVariablesEarly) {
13271 output.WriteRawTag(176, 19);
13272 output.WriteBool(RemoveFixedVariablesEarly);
13273 }
13274 if (HasUseAllDifferentForCircuit) {
13275 output.WriteRawTag(184, 19);
13276 output.WriteBool(UseAllDifferentForCircuit);
13277 }
13278 if (HasRoutingCutSubsetSizeForBinaryRelationBound) {
13279 output.WriteRawTag(192, 19);
13280 output.WriteInt32(RoutingCutSubsetSizeForBinaryRelationBound);
13281 }
13282 if (HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
13283 output.WriteRawTag(200, 19);
13284 output.WriteInt32(RoutingCutSubsetSizeForTightBinaryRelationBound);
13285 }
13286 if (HasRoutingCutDpEffort) {
13287 output.WriteRawTag(209, 19);
13288 output.WriteDouble(RoutingCutDpEffort);
13289 }
13290 if (HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
13291 output.WriteRawTag(216, 19);
13292 output.WriteInt32(MaximumRegionsToSplitInDisconnectedNoOverlap2D);
13293 }
13294 if (HasRoutingCutSubsetSizeForExactBinaryRelationBound) {
13295 output.WriteRawTag(224, 19);
13296 output.WriteInt32(RoutingCutSubsetSizeForExactBinaryRelationBound);
13297 }
13298 if (HasRoutingCutMaxInfeasiblePathLength) {
13299 output.WriteRawTag(232, 19);
13300 output.WriteInt32(RoutingCutMaxInfeasiblePathLength);
13301 }
13302 if (HasRoutingCutSubsetSizeForShortestPathsBound) {
13303 output.WriteRawTag(240, 19);
13304 output.WriteInt32(RoutingCutSubsetSizeForShortestPathsBound);
13305 }
13306 if (HasMaxAlldiffDomainSize) {
13307 output.WriteRawTag(128, 20);
13308 output.WriteInt32(MaxAlldiffDomainSize);
13309 }
13310 if (HasNoOverlap2DBooleanRelationsLimit) {
13311 output.WriteRawTag(136, 20);
13312 output.WriteInt32(NoOverlap2DBooleanRelationsLimit);
13313 }
13314 if (HasShareGlueClausesDtime) {
13315 output.WriteRawTag(145, 20);
13316 output.WriteDouble(ShareGlueClausesDtime);
13317 }
13318 if (HasUseLinear3ForNoOverlap2DPrecedences) {
13319 output.WriteRawTag(152, 20);
13320 output.WriteBool(UseLinear3ForNoOverlap2DPrecedences);
13321 }
13322 if (HasFilterSatPostsolveClauses) {
13323 output.WriteRawTag(160, 20);
13324 output.WriteBool(FilterSatPostsolveClauses);
13325 }
13326 if (HasAlternativePoolSize) {
13327 output.WriteRawTag(168, 20);
13328 output.WriteInt32(AlternativePoolSize);
13329 }
13330 if (HasShareLinear2Bounds) {
13331 output.WriteRawTag(176, 20);
13332 output.WriteBool(ShareLinear2Bounds);
13333 }
13334 if (HasTransitivePrecedencesWorkLimit) {
13335 output.WriteRawTag(184, 20);
13336 output.WriteInt32(TransitivePrecedencesWorkLimit);
13337 }
13338 if (HasSharedTreeSplitMinDtime) {
13339 output.WriteRawTag(193, 20);
13340 output.WriteDouble(SharedTreeSplitMinDtime);
13341 }
13342 if (HasSolutionPoolDiversityLimit) {
13343 output.WriteRawTag(200, 20);
13344 output.WriteInt32(SolutionPoolDiversityLimit);
13345 }
13346 if (HasUseChronologicalBacktracking) {
13347 output.WriteRawTag(208, 20);
13348 output.WriteBool(UseChronologicalBacktracking);
13349 }
13350 if (HasMaxBackjumpLevels) {
13351 output.WriteRawTag(216, 20);
13352 output.WriteInt32(MaxBackjumpLevels);
13353 }
13354 if (HasChronologicalBacktrackMinConflicts) {
13355 output.WriteRawTag(224, 20);
13356 output.WriteInt32(ChronologicalBacktrackMinConflicts);
13357 }
13358 if (HasFindClausesThatAreExactlyOne) {
13359 output.WriteRawTag(232, 20);
13360 output.WriteBool(FindClausesThatAreExactlyOne);
13361 }
13362 if (HasLoadAtMostOnesInSatPresolve) {
13363 output.WriteRawTag(248, 20);
13364 output.WriteBool(LoadAtMostOnesInSatPresolve);
13365 }
13366 if (HasUseNewIntegerConflictResolution) {
13367 output.WriteRawTag(128, 21);
13368 output.WriteBool(UseNewIntegerConflictResolution);
13369 }
13370 if (HasClauseCleanupPeriodIncrement) {
13371 output.WriteRawTag(136, 21);
13372 output.WriteInt32(ClauseCleanupPeriodIncrement);
13373 }
13374 if (HasDebugCrashIfLratCheckFails) {
13375 output.WriteRawTag(152, 21);
13376 output.WriteBool(DebugCrashIfLratCheckFails);
13377 }
13378 if (HasMaxDomainSizeForLinear2Expansion) {
13379 output.WriteRawTag(160, 21);
13380 output.WriteInt32(MaxDomainSizeForLinear2Expansion);
13381 }
13382 if (HasCreate1UipBooleanDuringIcr) {
13383 output.WriteRawTag(168, 21);
13384 output.WriteBool(Create1UipBooleanDuringIcr);
13385 }
13386 if (HasInprocessingUseCongruenceClosure) {
13387 output.WriteRawTag(176, 21);
13388 output.WriteBool(InprocessingUseCongruenceClosure);
13389 }
13390 if (HasEagerlySubsumeLastNConflicts) {
13391 output.WriteRawTag(184, 21);
13392 output.WriteInt32(EagerlySubsumeLastNConflicts);
13393 }
13394 if (HasCheckLratProof) {
13395 output.WriteRawTag(192, 21);
13396 output.WriteBool(CheckLratProof);
13397 }
13398 if (HasOutputLratProof) {
13399 output.WriteRawTag(200, 21);
13400 output.WriteBool(OutputLratProof);
13401 }
13402 if (HasCheckDratProof) {
13403 output.WriteRawTag(208, 21);
13404 output.WriteBool(CheckDratProof);
13405 }
13406 if (HasOutputDratProof) {
13407 output.WriteRawTag(216, 21);
13408 output.WriteBool(OutputDratProof);
13409 }
13410 if (HasMaxDratTimeInSeconds) {
13411 output.WriteRawTag(225, 21);
13412 output.WriteDouble(MaxDratTimeInSeconds);
13413 }
13414 if (HasClauseCleanupLbdTier1) {
13415 output.WriteRawTag(232, 21);
13416 output.WriteInt32(ClauseCleanupLbdTier1);
13417 }
13418 if (HasClauseCleanupLbdTier2) {
13419 output.WriteRawTag(240, 21);
13420 output.WriteInt32(ClauseCleanupLbdTier2);
13421 }
13422 if (HasExtraSubsumptionDuringConflictAnalysis) {
13423 output.WriteRawTag(248, 21);
13424 output.WriteBool(ExtraSubsumptionDuringConflictAnalysis);
13425 }
13426 if (HasCheckMergedLratProof) {
13427 output.WriteRawTag(128, 22);
13428 output.WriteBool(CheckMergedLratProof);
13429 }
13430 if (HasDecisionSubsumptionDuringConflictAnalysis) {
13431 output.WriteRawTag(136, 22);
13432 output.WriteBool(DecisionSubsumptionDuringConflictAnalysis);
13433 }
13434 if (HasInprocessingUseSatSweeping) {
13435 output.WriteRawTag(144, 22);
13436 output.WriteBool(InprocessingUseSatSweeping);
13437 }
13438 if (HasSubsumeDuringVivification) {
13439 output.WriteRawTag(152, 22);
13440 output.WriteBool(SubsumeDuringVivification);
13441 }
13442 if (_unknownFields != null) {
13443 _unknownFields.WriteTo(ref output);
13444 }
13445 }
13446 #endif
13447
13448 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
13449 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
13450 public int CalculateSize() {
13451 int size = 0;
13452 if (HasName) {
13453 size += 2 + pb::CodedOutputStream.ComputeStringSize(Name);
13454 }
13455 if (HasPreferredVariableOrder) {
13456 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PreferredVariableOrder);
13457 }
13458 if (HasInitialPolarity) {
13459 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) InitialPolarity);
13460 }
13461 if (HasUsePhaseSaving) {
13462 size += 2 + 1;
13463 }
13464 if (HasPolarityRephaseIncrement) {
13465 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PolarityRephaseIncrement);
13466 }
13467 if (HasPolarityExploitLsHints) {
13468 size += 2 + 1;
13469 }
13470 if (HasRandomPolarityRatio) {
13471 size += 2 + 8;
13472 }
13473 if (HasRandomBranchesRatio) {
13474 size += 2 + 8;
13475 }
13476 if (HasUseErwaHeuristic) {
13477 size += 2 + 1;
13478 }
13479 if (HasInitialVariablesActivity) {
13480 size += 2 + 8;
13481 }
13482 if (HasAlsoBumpVariablesInConflictReasons) {
13483 size += 2 + 1;
13484 }
13485 if (HasMinimizationAlgorithm) {
13486 size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MinimizationAlgorithm);
13487 }
13488 if (HasBinaryMinimizationAlgorithm) {
13489 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) BinaryMinimizationAlgorithm);
13490 }
13491 if (HasSubsumptionDuringConflictAnalysis) {
13492 size += 2 + 1;
13493 }
13494 if (HasExtraSubsumptionDuringConflictAnalysis) {
13495 size += 2 + 1;
13496 }
13497 if (HasDecisionSubsumptionDuringConflictAnalysis) {
13498 size += 2 + 1;
13499 }
13500 if (HasEagerlySubsumeLastNConflicts) {
13501 size += 2 + pb::CodedOutputStream.ComputeInt32Size(EagerlySubsumeLastNConflicts);
13502 }
13503 if (HasSubsumeDuringVivification) {
13504 size += 2 + 1;
13505 }
13506 if (HasUseChronologicalBacktracking) {
13507 size += 2 + 1;
13508 }
13509 if (HasMaxBackjumpLevels) {
13510 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxBackjumpLevels);
13511 }
13513 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ChronologicalBacktrackMinConflicts);
13514 }
13515 if (HasClauseCleanupPeriod) {
13516 size += 1 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupPeriod);
13517 }
13518 if (HasClauseCleanupPeriodIncrement) {
13519 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupPeriodIncrement);
13520 }
13521 if (HasClauseCleanupTarget) {
13522 size += 1 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupTarget);
13523 }
13524 if (HasClauseCleanupRatio) {
13525 size += 2 + 8;
13526 }
13527 if (HasClauseCleanupLbdBound) {
13528 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupLbdBound);
13529 }
13530 if (HasClauseCleanupLbdTier1) {
13531 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupLbdTier1);
13532 }
13533 if (HasClauseCleanupLbdTier2) {
13534 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ClauseCleanupLbdTier2);
13535 }
13536 if (HasClauseCleanupOrdering) {
13537 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ClauseCleanupOrdering);
13538 }
13539 if (HasPbCleanupIncrement) {
13540 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PbCleanupIncrement);
13541 }
13542 if (HasPbCleanupRatio) {
13543 size += 2 + 8;
13544 }
13545 if (HasVariableActivityDecay) {
13546 size += 1 + 8;
13547 }
13548 if (HasMaxVariableActivityValue) {
13549 size += 2 + 8;
13550 }
13551 if (HasGlucoseMaxDecay) {
13552 size += 2 + 8;
13553 }
13554 if (HasGlucoseDecayIncrement) {
13555 size += 2 + 8;
13556 }
13557 if (HasGlucoseDecayIncrementPeriod) {
13558 size += 2 + pb::CodedOutputStream.ComputeInt32Size(GlucoseDecayIncrementPeriod);
13559 }
13560 if (HasClauseActivityDecay) {
13561 size += 2 + 8;
13562 }
13563 if (HasMaxClauseActivityValue) {
13564 size += 2 + 8;
13565 }
13566 size += restartAlgorithms_.CalculateSize(_repeated_restartAlgorithms_codec);
13567 if (HasDefaultRestartAlgorithms) {
13568 size += 2 + pb::CodedOutputStream.ComputeStringSize(DefaultRestartAlgorithms);
13569 }
13570 if (HasRestartPeriod) {
13571 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RestartPeriod);
13572 }
13573 if (HasRestartRunningWindowSize) {
13574 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RestartRunningWindowSize);
13575 }
13576 if (HasRestartDlAverageRatio) {
13577 size += 2 + 8;
13578 }
13579 if (HasRestartLbdAverageRatio) {
13580 size += 2 + 8;
13581 }
13582 if (HasUseBlockingRestart) {
13583 size += 2 + 1;
13584 }
13585 if (HasBlockingRestartWindowSize) {
13586 size += 2 + pb::CodedOutputStream.ComputeInt32Size(BlockingRestartWindowSize);
13587 }
13588 if (HasBlockingRestartMultiplier) {
13589 size += 2 + 8;
13590 }
13591 if (HasNumConflictsBeforeStrategyChanges) {
13592 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumConflictsBeforeStrategyChanges);
13593 }
13594 if (HasStrategyChangeIncreaseRatio) {
13595 size += 2 + 8;
13596 }
13597 if (HasMaxTimeInSeconds) {
13598 size += 2 + 8;
13599 }
13600 if (HasMaxDeterministicTime) {
13601 size += 2 + 8;
13602 }
13603 if (HasMaxNumDeterministicBatches) {
13604 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxNumDeterministicBatches);
13605 }
13606 if (HasMaxNumberOfConflicts) {
13607 size += 2 + pb::CodedOutputStream.ComputeInt64Size(MaxNumberOfConflicts);
13608 }
13609 if (HasMaxMemoryInMb) {
13610 size += 2 + pb::CodedOutputStream.ComputeInt64Size(MaxMemoryInMb);
13611 }
13612 if (HasAbsoluteGapLimit) {
13613 size += 2 + 8;
13614 }
13615 if (HasRelativeGapLimit) {
13616 size += 2 + 8;
13617 }
13618 if (HasRandomSeed) {
13619 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RandomSeed);
13620 }
13621 if (HasPermuteVariableRandomly) {
13622 size += 2 + 1;
13623 }
13624 if (HasPermutePresolveConstraintOrder) {
13625 size += 2 + 1;
13626 }
13627 if (HasUseAbslRandom) {
13628 size += 2 + 1;
13629 }
13630 if (HasLogSearchProgress) {
13631 size += 2 + 1;
13632 }
13633 if (HasLogSubsolverStatistics) {
13634 size += 2 + 1;
13635 }
13636 if (HasLogPrefix) {
13637 size += 2 + pb::CodedOutputStream.ComputeStringSize(LogPrefix);
13638 }
13639 if (HasLogToStdout) {
13640 size += 2 + 1;
13641 }
13642 if (HasLogToResponse) {
13643 size += 2 + 1;
13644 }
13645 if (HasUsePbResolution) {
13646 size += 2 + 1;
13647 }
13648 if (HasMinimizeReductionDuringPbResolution) {
13649 size += 2 + 1;
13650 }
13651 if (HasCountAssumptionLevelsInLbd) {
13652 size += 2 + 1;
13653 }
13654 if (HasPresolveBveThreshold) {
13655 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveBveThreshold);
13656 }
13657 if (HasFilterSatPostsolveClauses) {
13658 size += 2 + 1;
13659 }
13660 if (HasPresolveBveClauseWeight) {
13661 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveBveClauseWeight);
13662 }
13663 if (HasProbingDeterministicTimeLimit) {
13664 size += 2 + 8;
13665 }
13666 if (HasPresolveProbingDeterministicTimeLimit) {
13667 size += 2 + 8;
13668 }
13669 if (HasPresolveBlockedClause) {
13670 size += 2 + 1;
13671 }
13672 if (HasPresolveUseBva) {
13673 size += 2 + 1;
13674 }
13675 if (HasPresolveBvaThreshold) {
13676 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveBvaThreshold);
13677 }
13678 if (HasMaxPresolveIterations) {
13679 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxPresolveIterations);
13680 }
13681 if (HasCpModelPresolve) {
13682 size += 2 + 1;
13683 }
13684 if (HasCpModelProbingLevel) {
13685 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CpModelProbingLevel);
13686 }
13687 if (HasCpModelUseSatPresolve) {
13688 size += 2 + 1;
13689 }
13690 if (HasLoadAtMostOnesInSatPresolve) {
13691 size += 2 + 1;
13692 }
13693 if (HasRemoveFixedVariablesEarly) {
13694 size += 2 + 1;
13695 }
13696 if (HasDetectTableWithCost) {
13697 size += 2 + 1;
13698 }
13699 if (HasTableCompressionLevel) {
13700 size += 2 + pb::CodedOutputStream.ComputeInt32Size(TableCompressionLevel);
13701 }
13702 if (HasExpandAlldiffConstraints) {
13703 size += 2 + 1;
13704 }
13705 if (HasMaxAlldiffDomainSize) {
13706 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxAlldiffDomainSize);
13707 }
13708 if (HasExpandReservoirConstraints) {
13709 size += 2 + 1;
13710 }
13711 if (HasMaxDomainSizeForLinear2Expansion) {
13712 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxDomainSizeForLinear2Expansion);
13713 }
13714 if (HasExpandReservoirUsingCircuit) {
13715 size += 2 + 1;
13716 }
13717 if (HasEncodeCumulativeAsReservoir) {
13718 size += 2 + 1;
13719 }
13720 if (HasMaxLinMaxSizeForExpansion) {
13721 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxLinMaxSizeForExpansion);
13722 }
13723 if (HasDisableConstraintExpansion) {
13724 size += 2 + 1;
13725 }
13726 if (HasEncodeComplexLinearConstraintWithInteger) {
13727 size += 2 + 1;
13728 }
13729 if (HasMergeNoOverlapWorkLimit) {
13730 size += 2 + 8;
13731 }
13732 if (HasMergeAtMostOneWorkLimit) {
13733 size += 2 + 8;
13734 }
13735 if (HasPresolveSubstitutionLevel) {
13736 size += 2 + pb::CodedOutputStream.ComputeInt32Size(PresolveSubstitutionLevel);
13737 }
13738 if (HasPresolveExtractIntegerEnforcement) {
13739 size += 2 + 1;
13740 }
13741 if (HasPresolveInclusionWorkLimit) {
13742 size += 2 + pb::CodedOutputStream.ComputeInt64Size(PresolveInclusionWorkLimit);
13743 }
13744 if (HasIgnoreNames) {
13745 size += 2 + 1;
13746 }
13747 if (HasInferAllDiffs) {
13748 size += 2 + 1;
13749 }
13750 if (HasFindBigLinearOverlap) {
13751 size += 2 + 1;
13752 }
13753 if (HasFindClausesThatAreExactlyOne) {
13754 size += 2 + 1;
13755 }
13756 if (HasUseSatInprocessing) {
13757 size += 2 + 1;
13758 }
13759 if (HasInprocessingDtimeRatio) {
13760 size += 2 + 8;
13761 }
13762 if (HasInprocessingProbingDtime) {
13763 size += 2 + 8;
13764 }
13765 if (HasInprocessingMinimizationDtime) {
13766 size += 2 + 8;
13767 }
13768 if (HasInprocessingMinimizationUseConflictAnalysis) {
13769 size += 2 + 1;
13770 }
13771 if (HasInprocessingMinimizationUseAllOrderings) {
13772 size += 2 + 1;
13773 }
13774 if (HasInprocessingUseCongruenceClosure) {
13775 size += 2 + 1;
13776 }
13777 if (HasInprocessingUseSatSweeping) {
13778 size += 2 + 1;
13779 }
13780 if (HasNumWorkers) {
13781 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumWorkers);
13782 }
13783 if (HasNumSearchWorkers) {
13784 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumSearchWorkers);
13785 }
13786 if (HasNumFullSubsolvers) {
13787 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumFullSubsolvers);
13788 }
13789 size += subsolvers_.CalculateSize(_repeated_subsolvers_codec);
13790 size += extraSubsolvers_.CalculateSize(_repeated_extraSubsolvers_codec);
13791 size += ignoreSubsolvers_.CalculateSize(_repeated_ignoreSubsolvers_codec);
13792 size += filterSubsolvers_.CalculateSize(_repeated_filterSubsolvers_codec);
13793 size += subsolverParams_.CalculateSize(_repeated_subsolverParams_codec);
13794 if (HasInterleaveSearch) {
13795 size += 2 + 1;
13796 }
13797 if (HasInterleaveBatchSize) {
13798 size += 2 + pb::CodedOutputStream.ComputeInt32Size(InterleaveBatchSize);
13799 }
13800 if (HasShareObjectiveBounds) {
13801 size += 2 + 1;
13802 }
13803 if (HasShareLevelZeroBounds) {
13804 size += 2 + 1;
13805 }
13806 if (HasShareLinear2Bounds) {
13807 size += 2 + 1;
13808 }
13809 if (HasShareBinaryClauses) {
13810 size += 2 + 1;
13811 }
13812 if (HasShareGlueClauses) {
13813 size += 2 + 1;
13814 }
13815 if (HasMinimizeSharedClauses) {
13816 size += 2 + 1;
13817 }
13818 if (HasShareGlueClausesDtime) {
13819 size += 2 + 8;
13820 }
13821 if (HasCheckLratProof) {
13822 size += 2 + 1;
13823 }
13824 if (HasCheckMergedLratProof) {
13825 size += 2 + 1;
13826 }
13827 if (HasOutputLratProof) {
13828 size += 2 + 1;
13829 }
13830 if (HasCheckDratProof) {
13831 size += 2 + 1;
13832 }
13833 if (HasOutputDratProof) {
13834 size += 2 + 1;
13835 }
13836 if (HasMaxDratTimeInSeconds) {
13837 size += 2 + 8;
13838 }
13839 if (HasDebugPostsolveWithFullSolver) {
13840 size += 2 + 1;
13841 }
13842 if (HasDebugMaxNumPresolveOperations) {
13843 size += 2 + pb::CodedOutputStream.ComputeInt32Size(DebugMaxNumPresolveOperations);
13844 }
13845 if (HasDebugCrashOnBadHint) {
13846 size += 2 + 1;
13847 }
13848 if (HasDebugCrashIfPresolveBreaksHint) {
13849 size += 2 + 1;
13850 }
13851 if (HasDebugCrashIfLratCheckFails) {
13852 size += 2 + 1;
13853 }
13854 if (HasUseOptimizationHints) {
13855 size += 2 + 1;
13856 }
13857 if (HasCoreMinimizationLevel) {
13858 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CoreMinimizationLevel);
13859 }
13860 if (HasFindMultipleCores) {
13861 size += 2 + 1;
13862 }
13863 if (HasCoverOptimization) {
13864 size += 2 + 1;
13865 }
13866 if (HasMaxSatAssumptionOrder) {
13867 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MaxSatAssumptionOrder);
13868 }
13869 if (HasMaxSatReverseAssumptionOrder) {
13870 size += 2 + 1;
13871 }
13872 if (HasMaxSatStratification) {
13873 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MaxSatStratification);
13874 }
13875 if (HasPropagationLoopDetectionFactor) {
13876 size += 2 + 8;
13877 }
13878 if (HasUsePrecedencesInDisjunctiveConstraint) {
13879 size += 2 + 1;
13880 }
13881 if (HasTransitivePrecedencesWorkLimit) {
13882 size += 2 + pb::CodedOutputStream.ComputeInt32Size(TransitivePrecedencesWorkLimit);
13883 }
13884 if (HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
13885 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxSizeToCreatePrecedenceLiteralsInDisjunctive);
13886 }
13887 if (HasUseStrongPropagationInDisjunctive) {
13888 size += 2 + 1;
13889 }
13890 if (HasUseDynamicPrecedenceInDisjunctive) {
13891 size += 2 + 1;
13892 }
13893 if (HasUseDynamicPrecedenceInCumulative) {
13894 size += 2 + 1;
13895 }
13896 if (HasUseOverloadCheckerInCumulative) {
13897 size += 2 + 1;
13898 }
13899 if (HasUseConservativeScaleOverloadChecker) {
13900 size += 2 + 1;
13901 }
13902 if (HasUseTimetableEdgeFindingInCumulative) {
13903 size += 2 + 1;
13904 }
13905 if (HasMaxNumIntervalsForTimetableEdgeFinding) {
13906 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxNumIntervalsForTimetableEdgeFinding);
13907 }
13908 if (HasUseHardPrecedencesInCumulative) {
13909 size += 2 + 1;
13910 }
13911 if (HasExploitAllPrecedences) {
13912 size += 2 + 1;
13913 }
13914 if (HasUseDisjunctiveConstraintInCumulative) {
13915 size += 2 + 1;
13916 }
13917 if (HasNoOverlap2DBooleanRelationsLimit) {
13918 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NoOverlap2DBooleanRelationsLimit);
13919 }
13920 if (HasUseTimetablingInNoOverlap2D) {
13921 size += 2 + 1;
13922 }
13923 if (HasUseEnergeticReasoningInNoOverlap2D) {
13924 size += 2 + 1;
13925 }
13926 if (HasUseAreaEnergeticReasoningInNoOverlap2D) {
13927 size += 2 + 1;
13928 }
13929 if (HasUseTryEdgeReasoningInNoOverlap2D) {
13930 size += 2 + 1;
13931 }
13932 if (HasMaxPairsPairwiseReasoningInNoOverlap2D) {
13933 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxPairsPairwiseReasoningInNoOverlap2D);
13934 }
13935 if (HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
13936 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaximumRegionsToSplitInDisconnectedNoOverlap2D);
13937 }
13938 if (HasUseLinear3ForNoOverlap2DPrecedences) {
13939 size += 2 + 1;
13940 }
13941 if (HasUseDualSchedulingHeuristics) {
13942 size += 2 + 1;
13943 }
13944 if (HasUseAllDifferentForCircuit) {
13945 size += 2 + 1;
13946 }
13947 if (HasRoutingCutSubsetSizeForBinaryRelationBound) {
13948 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForBinaryRelationBound);
13949 }
13950 if (HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
13951 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForTightBinaryRelationBound);
13952 }
13953 if (HasRoutingCutSubsetSizeForExactBinaryRelationBound) {
13954 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForExactBinaryRelationBound);
13955 }
13956 if (HasRoutingCutSubsetSizeForShortestPathsBound) {
13957 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutSubsetSizeForShortestPathsBound);
13958 }
13959 if (HasRoutingCutDpEffort) {
13960 size += 2 + 8;
13961 }
13962 if (HasRoutingCutMaxInfeasiblePathLength) {
13963 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RoutingCutMaxInfeasiblePathLength);
13964 }
13965 if (HasSearchBranching) {
13966 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SearchBranching);
13967 }
13968 if (HasHintConflictLimit) {
13969 size += 2 + pb::CodedOutputStream.ComputeInt32Size(HintConflictLimit);
13970 }
13971 if (HasRepairHint) {
13972 size += 2 + 1;
13973 }
13974 if (HasFixVariablesToTheirHintedValue) {
13975 size += 2 + 1;
13976 }
13977 if (HasUseProbingSearch) {
13978 size += 2 + 1;
13979 }
13980 if (HasUseExtendedProbing) {
13981 size += 2 + 1;
13982 }
13983 if (HasProbingNumCombinationsLimit) {
13984 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ProbingNumCombinationsLimit);
13985 }
13986 if (HasShavingDeterministicTimeInProbingSearch) {
13987 size += 2 + 8;
13988 }
13989 if (HasShavingSearchDeterministicTime) {
13990 size += 2 + 8;
13991 }
13992 if (HasShavingSearchThreshold) {
13993 size += 2 + pb::CodedOutputStream.ComputeInt64Size(ShavingSearchThreshold);
13994 }
13995 if (HasUseObjectiveLbSearch) {
13996 size += 2 + 1;
13997 }
13998 if (HasUseObjectiveShavingSearch) {
13999 size += 2 + 1;
14000 }
14001 if (HasVariablesShavingLevel) {
14002 size += 2 + pb::CodedOutputStream.ComputeInt32Size(VariablesShavingLevel);
14003 }
14004 if (HasPseudoCostReliabilityThreshold) {
14005 size += 2 + pb::CodedOutputStream.ComputeInt64Size(PseudoCostReliabilityThreshold);
14006 }
14007 if (HasOptimizeWithCore) {
14008 size += 2 + 1;
14009 }
14010 if (HasOptimizeWithLbTreeSearch) {
14011 size += 2 + 1;
14012 }
14013 if (HasSaveLpBasisInLbTreeSearch) {
14014 size += 2 + 1;
14015 }
14016 if (HasBinarySearchNumConflicts) {
14017 size += 2 + pb::CodedOutputStream.ComputeInt32Size(BinarySearchNumConflicts);
14018 }
14019 if (HasOptimizeWithMaxHs) {
14020 size += 2 + 1;
14021 }
14022 if (HasUseFeasibilityJump) {
14023 size += 2 + 1;
14024 }
14025 if (HasUseLsOnly) {
14026 size += 2 + 1;
14027 }
14028 if (HasFeasibilityJumpDecay) {
14029 size += 2 + 8;
14030 }
14031 if (HasFeasibilityJumpLinearizationLevel) {
14032 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FeasibilityJumpLinearizationLevel);
14033 }
14034 if (HasFeasibilityJumpRestartFactor) {
14035 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FeasibilityJumpRestartFactor);
14036 }
14037 if (HasFeasibilityJumpBatchDtime) {
14038 size += 2 + 8;
14039 }
14040 if (HasFeasibilityJumpVarRandomizationProbability) {
14041 size += 2 + 8;
14042 }
14043 if (HasFeasibilityJumpVarPerburbationRangeRatio) {
14044 size += 2 + 8;
14045 }
14046 if (HasFeasibilityJumpEnableRestarts) {
14047 size += 2 + 1;
14048 }
14049 if (HasFeasibilityJumpMaxExpandedConstraintSize) {
14050 size += 2 + pb::CodedOutputStream.ComputeInt32Size(FeasibilityJumpMaxExpandedConstraintSize);
14051 }
14052 if (HasNumViolationLs) {
14053 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NumViolationLs);
14054 }
14055 if (HasViolationLsPerturbationPeriod) {
14056 size += 2 + pb::CodedOutputStream.ComputeInt32Size(ViolationLsPerturbationPeriod);
14057 }
14058 if (HasViolationLsCompoundMoveProbability) {
14059 size += 2 + 8;
14060 }
14061 if (HasSharedTreeNumWorkers) {
14062 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeNumWorkers);
14063 }
14064 if (HasUseSharedTreeSearch) {
14065 size += 2 + 1;
14066 }
14067 if (HasSharedTreeWorkerMinRestartsPerSubtree) {
14068 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeWorkerMinRestartsPerSubtree);
14069 }
14070 if (HasSharedTreeWorkerEnableTrailSharing) {
14071 size += 2 + 1;
14072 }
14073 if (HasSharedTreeWorkerEnablePhaseSharing) {
14074 size += 2 + 1;
14075 }
14076 if (HasSharedTreeOpenLeavesPerWorker) {
14077 size += 2 + 8;
14078 }
14079 if (HasSharedTreeMaxNodesPerWorker) {
14080 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeMaxNodesPerWorker);
14081 }
14082 if (HasSharedTreeSplitStrategy) {
14083 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SharedTreeSplitStrategy);
14084 }
14085 if (HasSharedTreeBalanceTolerance) {
14086 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SharedTreeBalanceTolerance);
14087 }
14088 if (HasSharedTreeSplitMinDtime) {
14089 size += 2 + 8;
14090 }
14091 if (HasEnumerateAllSolutions) {
14092 size += 2 + 1;
14093 }
14094 if (HasKeepAllFeasibleSolutionsInPresolve) {
14095 size += 2 + 1;
14096 }
14097 if (HasFillTightenedDomainsInResponse) {
14098 size += 2 + 1;
14099 }
14100 if (HasFillAdditionalSolutionsInResponse) {
14101 size += 2 + 1;
14102 }
14103 if (HasInstantiateAllVariables) {
14104 size += 2 + 1;
14105 }
14106 if (HasAutoDetectGreaterThanAtLeastOneOf) {
14107 size += 2 + 1;
14108 }
14109 if (HasStopAfterFirstSolution) {
14110 size += 2 + 1;
14111 }
14112 if (HasStopAfterPresolve) {
14113 size += 2 + 1;
14114 }
14115 if (HasStopAfterRootPropagation) {
14116 size += 2 + 1;
14117 }
14118 if (HasLnsInitialDifficulty) {
14119 size += 2 + 8;
14120 }
14121 if (HasLnsInitialDeterministicLimit) {
14122 size += 2 + 8;
14123 }
14124 if (HasUseLns) {
14125 size += 2 + 1;
14126 }
14127 if (HasUseLnsOnly) {
14128 size += 2 + 1;
14129 }
14130 if (HasSolutionPoolSize) {
14131 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SolutionPoolSize);
14132 }
14133 if (HasSolutionPoolDiversityLimit) {
14134 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SolutionPoolDiversityLimit);
14135 }
14136 if (HasAlternativePoolSize) {
14137 size += 2 + pb::CodedOutputStream.ComputeInt32Size(AlternativePoolSize);
14138 }
14139 if (HasUseRinsLns) {
14140 size += 2 + 1;
14141 }
14142 if (HasUseFeasibilityPump) {
14143 size += 2 + 1;
14144 }
14145 if (HasUseLbRelaxLns) {
14146 size += 2 + 1;
14147 }
14148 if (HasLbRelaxNumWorkersThreshold) {
14149 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LbRelaxNumWorkersThreshold);
14150 }
14151 if (HasFpRounding) {
14152 size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) FpRounding);
14153 }
14154 if (HasDiversifyLnsParams) {
14155 size += 2 + 1;
14156 }
14157 if (HasRandomizeSearch) {
14158 size += 2 + 1;
14159 }
14160 if (HasSearchRandomVariablePoolSize) {
14161 size += 2 + pb::CodedOutputStream.ComputeInt64Size(SearchRandomVariablePoolSize);
14162 }
14163 if (HasPushAllTasksTowardStart) {
14164 size += 2 + 1;
14165 }
14166 if (HasUseOptionalVariables) {
14167 size += 2 + 1;
14168 }
14169 if (HasUseExactLpReason) {
14170 size += 2 + 1;
14171 }
14172 if (HasUseCombinedNoOverlap) {
14173 size += 2 + 1;
14174 }
14175 if (HasAtMostOneMaxExpansionSize) {
14176 size += 2 + pb::CodedOutputStream.ComputeInt32Size(AtMostOneMaxExpansionSize);
14177 }
14178 if (HasCatchSigintSignal) {
14179 size += 2 + 1;
14180 }
14181 if (HasUseImpliedBounds) {
14182 size += 2 + 1;
14183 }
14184 if (HasPolishLpSolution) {
14185 size += 2 + 1;
14186 }
14187 if (HasLpPrimalTolerance) {
14188 size += 2 + 8;
14189 }
14190 if (HasLpDualTolerance) {
14191 size += 2 + 8;
14192 }
14193 if (HasConvertIntervals) {
14194 size += 2 + 1;
14195 }
14196 if (HasSymmetryLevel) {
14197 size += 2 + pb::CodedOutputStream.ComputeInt32Size(SymmetryLevel);
14198 }
14199 if (HasUseSymmetryInLp) {
14200 size += 2 + 1;
14201 }
14202 if (HasKeepSymmetryInPresolve) {
14203 size += 2 + 1;
14204 }
14205 if (HasSymmetryDetectionDeterministicTimeLimit) {
14206 size += 2 + 8;
14207 }
14208 if (HasNewLinearPropagation) {
14209 size += 2 + 1;
14210 }
14211 if (HasLinearSplitSize) {
14212 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LinearSplitSize);
14213 }
14214 if (HasLinearizationLevel) {
14215 size += 2 + pb::CodedOutputStream.ComputeInt32Size(LinearizationLevel);
14216 }
14217 if (HasBooleanEncodingLevel) {
14218 size += 2 + pb::CodedOutputStream.ComputeInt32Size(BooleanEncodingLevel);
14219 }
14220 if (HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
14221 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxDomainSizeWhenEncodingEqNeqConstraints);
14222 }
14223 if (HasMaxNumCuts) {
14224 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxNumCuts);
14225 }
14226 if (HasCutLevel) {
14227 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CutLevel);
14228 }
14229 if (HasOnlyAddCutsAtLevelZero) {
14230 size += 2 + 1;
14231 }
14232 if (HasAddObjectiveCut) {
14233 size += 2 + 1;
14234 }
14235 if (HasAddCgCuts) {
14236 size += 2 + 1;
14237 }
14238 if (HasAddMirCuts) {
14239 size += 2 + 1;
14240 }
14241 if (HasAddZeroHalfCuts) {
14242 size += 2 + 1;
14243 }
14244 if (HasAddCliqueCuts) {
14245 size += 2 + 1;
14246 }
14247 if (HasAddRltCuts) {
14248 size += 2 + 1;
14249 }
14250 if (HasMaxAllDiffCutSize) {
14251 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxAllDiffCutSize);
14252 }
14253 if (HasAddLinMaxCuts) {
14254 size += 2 + 1;
14255 }
14256 if (HasMaxIntegerRoundingScaling) {
14257 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxIntegerRoundingScaling);
14258 }
14259 if (HasAddLpConstraintsLazily) {
14260 size += 2 + 1;
14261 }
14262 if (HasRootLpIterations) {
14263 size += 2 + pb::CodedOutputStream.ComputeInt32Size(RootLpIterations);
14264 }
14265 if (HasMinOrthogonalityForLpConstraints) {
14266 size += 2 + 8;
14267 }
14268 if (HasMaxCutRoundsAtLevelZero) {
14269 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxCutRoundsAtLevelZero);
14270 }
14271 if (HasMaxConsecutiveInactiveCount) {
14272 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MaxConsecutiveInactiveCount);
14273 }
14274 if (HasCutMaxActiveCountValue) {
14275 size += 2 + 8;
14276 }
14277 if (HasCutActiveCountDecay) {
14278 size += 2 + 8;
14279 }
14280 if (HasCutCleanupTarget) {
14281 size += 2 + pb::CodedOutputStream.ComputeInt32Size(CutCleanupTarget);
14282 }
14283 if (HasNewConstraintsBatchSize) {
14284 size += 2 + pb::CodedOutputStream.ComputeInt32Size(NewConstraintsBatchSize);
14285 }
14286 if (HasExploitIntegerLpSolution) {
14287 size += 2 + 1;
14288 }
14289 if (HasExploitAllLpSolution) {
14290 size += 2 + 1;
14291 }
14292 if (HasExploitBestSolution) {
14293 size += 2 + 1;
14294 }
14295 if (HasExploitRelaxationSolution) {
14296 size += 2 + 1;
14297 }
14298 if (HasExploitObjective) {
14299 size += 2 + 1;
14300 }
14301 if (HasDetectLinearizedProduct) {
14302 size += 2 + 1;
14303 }
14304 if (HasUseNewIntegerConflictResolution) {
14305 size += 2 + 1;
14306 }
14307 if (HasCreate1UipBooleanDuringIcr) {
14308 size += 2 + 1;
14309 }
14310 if (HasMipMaxBound) {
14311 size += 2 + 8;
14312 }
14313 if (HasMipVarScaling) {
14314 size += 2 + 8;
14315 }
14316 if (HasMipScaleLargeDomain) {
14317 size += 2 + 1;
14318 }
14319 if (HasMipAutomaticallyScaleVariables) {
14320 size += 2 + 1;
14321 }
14322 if (HasOnlySolveIp) {
14323 size += 2 + 1;
14324 }
14325 if (HasMipWantedPrecision) {
14326 size += 2 + 8;
14327 }
14328 if (HasMipMaxActivityExponent) {
14329 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MipMaxActivityExponent);
14330 }
14331 if (HasMipCheckPrecision) {
14332 size += 2 + 8;
14333 }
14334 if (HasMipComputeTrueObjectiveBound) {
14335 size += 2 + 1;
14336 }
14337 if (HasMipMaxValidMagnitude) {
14338 size += 2 + 8;
14339 }
14340 if (HasMipTreatHighMagnitudeBoundsAsInfinity) {
14341 size += 2 + 1;
14342 }
14343 if (HasMipDropTolerance) {
14344 size += 2 + 8;
14345 }
14346 if (HasMipPresolveLevel) {
14347 size += 2 + pb::CodedOutputStream.ComputeInt32Size(MipPresolveLevel);
14348 }
14349 if (_unknownFields != null) {
14350 size += _unknownFields.CalculateSize();
14351 }
14352 return size;
14353 }
14354
14355 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
14356 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
14357 public void MergeFrom(SatParameters other) {
14358 if (other == null) {
14359 return;
14360 }
14361 if (other.HasName) {
14362 Name = other.Name;
14363 }
14364 if (other.HasPreferredVariableOrder) {
14365 PreferredVariableOrder = other.PreferredVariableOrder;
14366 }
14367 if (other.HasInitialPolarity) {
14368 InitialPolarity = other.InitialPolarity;
14369 }
14370 if (other.HasUsePhaseSaving) {
14371 UsePhaseSaving = other.UsePhaseSaving;
14372 }
14373 if (other.HasPolarityRephaseIncrement) {
14374 PolarityRephaseIncrement = other.PolarityRephaseIncrement;
14375 }
14376 if (other.HasPolarityExploitLsHints) {
14377 PolarityExploitLsHints = other.PolarityExploitLsHints;
14378 }
14379 if (other.HasRandomPolarityRatio) {
14380 RandomPolarityRatio = other.RandomPolarityRatio;
14381 }
14382 if (other.HasRandomBranchesRatio) {
14383 RandomBranchesRatio = other.RandomBranchesRatio;
14384 }
14385 if (other.HasUseErwaHeuristic) {
14386 UseErwaHeuristic = other.UseErwaHeuristic;
14387 }
14388 if (other.HasInitialVariablesActivity) {
14389 InitialVariablesActivity = other.InitialVariablesActivity;
14390 }
14391 if (other.HasAlsoBumpVariablesInConflictReasons) {
14392 AlsoBumpVariablesInConflictReasons = other.AlsoBumpVariablesInConflictReasons;
14393 }
14394 if (other.HasMinimizationAlgorithm) {
14395 MinimizationAlgorithm = other.MinimizationAlgorithm;
14396 }
14397 if (other.HasBinaryMinimizationAlgorithm) {
14398 BinaryMinimizationAlgorithm = other.BinaryMinimizationAlgorithm;
14399 }
14400 if (other.HasSubsumptionDuringConflictAnalysis) {
14401 SubsumptionDuringConflictAnalysis = other.SubsumptionDuringConflictAnalysis;
14402 }
14403 if (other.HasExtraSubsumptionDuringConflictAnalysis) {
14404 ExtraSubsumptionDuringConflictAnalysis = other.ExtraSubsumptionDuringConflictAnalysis;
14405 }
14406 if (other.HasDecisionSubsumptionDuringConflictAnalysis) {
14407 DecisionSubsumptionDuringConflictAnalysis = other.DecisionSubsumptionDuringConflictAnalysis;
14408 }
14409 if (other.HasEagerlySubsumeLastNConflicts) {
14410 EagerlySubsumeLastNConflicts = other.EagerlySubsumeLastNConflicts;
14411 }
14412 if (other.HasSubsumeDuringVivification) {
14413 SubsumeDuringVivification = other.SubsumeDuringVivification;
14414 }
14415 if (other.HasUseChronologicalBacktracking) {
14416 UseChronologicalBacktracking = other.UseChronologicalBacktracking;
14417 }
14418 if (other.HasMaxBackjumpLevels) {
14419 MaxBackjumpLevels = other.MaxBackjumpLevels;
14420 }
14421 if (other.HasChronologicalBacktrackMinConflicts) {
14422 ChronologicalBacktrackMinConflicts = other.ChronologicalBacktrackMinConflicts;
14423 }
14424 if (other.HasClauseCleanupPeriod) {
14425 ClauseCleanupPeriod = other.ClauseCleanupPeriod;
14426 }
14427 if (other.HasClauseCleanupPeriodIncrement) {
14428 ClauseCleanupPeriodIncrement = other.ClauseCleanupPeriodIncrement;
14429 }
14430 if (other.HasClauseCleanupTarget) {
14431 ClauseCleanupTarget = other.ClauseCleanupTarget;
14432 }
14433 if (other.HasClauseCleanupRatio) {
14434 ClauseCleanupRatio = other.ClauseCleanupRatio;
14435 }
14436 if (other.HasClauseCleanupLbdBound) {
14437 ClauseCleanupLbdBound = other.ClauseCleanupLbdBound;
14438 }
14439 if (other.HasClauseCleanupLbdTier1) {
14440 ClauseCleanupLbdTier1 = other.ClauseCleanupLbdTier1;
14441 }
14442 if (other.HasClauseCleanupLbdTier2) {
14443 ClauseCleanupLbdTier2 = other.ClauseCleanupLbdTier2;
14444 }
14445 if (other.HasClauseCleanupOrdering) {
14446 ClauseCleanupOrdering = other.ClauseCleanupOrdering;
14447 }
14448 if (other.HasPbCleanupIncrement) {
14449 PbCleanupIncrement = other.PbCleanupIncrement;
14450 }
14451 if (other.HasPbCleanupRatio) {
14452 PbCleanupRatio = other.PbCleanupRatio;
14453 }
14454 if (other.HasVariableActivityDecay) {
14455 VariableActivityDecay = other.VariableActivityDecay;
14456 }
14457 if (other.HasMaxVariableActivityValue) {
14458 MaxVariableActivityValue = other.MaxVariableActivityValue;
14459 }
14460 if (other.HasGlucoseMaxDecay) {
14461 GlucoseMaxDecay = other.GlucoseMaxDecay;
14462 }
14463 if (other.HasGlucoseDecayIncrement) {
14464 GlucoseDecayIncrement = other.GlucoseDecayIncrement;
14465 }
14466 if (other.HasGlucoseDecayIncrementPeriod) {
14467 GlucoseDecayIncrementPeriod = other.GlucoseDecayIncrementPeriod;
14468 }
14469 if (other.HasClauseActivityDecay) {
14470 ClauseActivityDecay = other.ClauseActivityDecay;
14471 }
14472 if (other.HasMaxClauseActivityValue) {
14473 MaxClauseActivityValue = other.MaxClauseActivityValue;
14474 }
14475 restartAlgorithms_.Add(other.restartAlgorithms_);
14476 if (other.HasDefaultRestartAlgorithms) {
14477 DefaultRestartAlgorithms = other.DefaultRestartAlgorithms;
14478 }
14479 if (other.HasRestartPeriod) {
14480 RestartPeriod = other.RestartPeriod;
14481 }
14482 if (other.HasRestartRunningWindowSize) {
14483 RestartRunningWindowSize = other.RestartRunningWindowSize;
14484 }
14485 if (other.HasRestartDlAverageRatio) {
14486 RestartDlAverageRatio = other.RestartDlAverageRatio;
14487 }
14488 if (other.HasRestartLbdAverageRatio) {
14489 RestartLbdAverageRatio = other.RestartLbdAverageRatio;
14490 }
14491 if (other.HasUseBlockingRestart) {
14492 UseBlockingRestart = other.UseBlockingRestart;
14493 }
14494 if (other.HasBlockingRestartWindowSize) {
14495 BlockingRestartWindowSize = other.BlockingRestartWindowSize;
14496 }
14497 if (other.HasBlockingRestartMultiplier) {
14498 BlockingRestartMultiplier = other.BlockingRestartMultiplier;
14499 }
14500 if (other.HasNumConflictsBeforeStrategyChanges) {
14501 NumConflictsBeforeStrategyChanges = other.NumConflictsBeforeStrategyChanges;
14502 }
14503 if (other.HasStrategyChangeIncreaseRatio) {
14504 StrategyChangeIncreaseRatio = other.StrategyChangeIncreaseRatio;
14505 }
14506 if (other.HasMaxTimeInSeconds) {
14507 MaxTimeInSeconds = other.MaxTimeInSeconds;
14508 }
14509 if (other.HasMaxDeterministicTime) {
14510 MaxDeterministicTime = other.MaxDeterministicTime;
14511 }
14512 if (other.HasMaxNumDeterministicBatches) {
14513 MaxNumDeterministicBatches = other.MaxNumDeterministicBatches;
14514 }
14515 if (other.HasMaxNumberOfConflicts) {
14516 MaxNumberOfConflicts = other.MaxNumberOfConflicts;
14517 }
14518 if (other.HasMaxMemoryInMb) {
14519 MaxMemoryInMb = other.MaxMemoryInMb;
14520 }
14521 if (other.HasAbsoluteGapLimit) {
14522 AbsoluteGapLimit = other.AbsoluteGapLimit;
14523 }
14524 if (other.HasRelativeGapLimit) {
14525 RelativeGapLimit = other.RelativeGapLimit;
14526 }
14527 if (other.HasRandomSeed) {
14528 RandomSeed = other.RandomSeed;
14529 }
14530 if (other.HasPermuteVariableRandomly) {
14531 PermuteVariableRandomly = other.PermuteVariableRandomly;
14532 }
14533 if (other.HasPermutePresolveConstraintOrder) {
14534 PermutePresolveConstraintOrder = other.PermutePresolveConstraintOrder;
14535 }
14536 if (other.HasUseAbslRandom) {
14537 UseAbslRandom = other.UseAbslRandom;
14538 }
14539 if (other.HasLogSearchProgress) {
14540 LogSearchProgress = other.LogSearchProgress;
14541 }
14542 if (other.HasLogSubsolverStatistics) {
14543 LogSubsolverStatistics = other.LogSubsolverStatistics;
14544 }
14545 if (other.HasLogPrefix) {
14546 LogPrefix = other.LogPrefix;
14547 }
14548 if (other.HasLogToStdout) {
14549 LogToStdout = other.LogToStdout;
14550 }
14551 if (other.HasLogToResponse) {
14552 LogToResponse = other.LogToResponse;
14553 }
14554 if (other.HasUsePbResolution) {
14555 UsePbResolution = other.UsePbResolution;
14556 }
14557 if (other.HasMinimizeReductionDuringPbResolution) {
14558 MinimizeReductionDuringPbResolution = other.MinimizeReductionDuringPbResolution;
14559 }
14560 if (other.HasCountAssumptionLevelsInLbd) {
14561 CountAssumptionLevelsInLbd = other.CountAssumptionLevelsInLbd;
14562 }
14563 if (other.HasPresolveBveThreshold) {
14564 PresolveBveThreshold = other.PresolveBveThreshold;
14565 }
14566 if (other.HasFilterSatPostsolveClauses) {
14567 FilterSatPostsolveClauses = other.FilterSatPostsolveClauses;
14568 }
14569 if (other.HasPresolveBveClauseWeight) {
14570 PresolveBveClauseWeight = other.PresolveBveClauseWeight;
14571 }
14572 if (other.HasProbingDeterministicTimeLimit) {
14573 ProbingDeterministicTimeLimit = other.ProbingDeterministicTimeLimit;
14574 }
14575 if (other.HasPresolveProbingDeterministicTimeLimit) {
14576 PresolveProbingDeterministicTimeLimit = other.PresolveProbingDeterministicTimeLimit;
14577 }
14578 if (other.HasPresolveBlockedClause) {
14579 PresolveBlockedClause = other.PresolveBlockedClause;
14580 }
14581 if (other.HasPresolveUseBva) {
14582 PresolveUseBva = other.PresolveUseBva;
14583 }
14584 if (other.HasPresolveBvaThreshold) {
14585 PresolveBvaThreshold = other.PresolveBvaThreshold;
14586 }
14587 if (other.HasMaxPresolveIterations) {
14588 MaxPresolveIterations = other.MaxPresolveIterations;
14589 }
14590 if (other.HasCpModelPresolve) {
14591 CpModelPresolve = other.CpModelPresolve;
14592 }
14593 if (other.HasCpModelProbingLevel) {
14594 CpModelProbingLevel = other.CpModelProbingLevel;
14595 }
14596 if (other.HasCpModelUseSatPresolve) {
14597 CpModelUseSatPresolve = other.CpModelUseSatPresolve;
14598 }
14599 if (other.HasLoadAtMostOnesInSatPresolve) {
14600 LoadAtMostOnesInSatPresolve = other.LoadAtMostOnesInSatPresolve;
14601 }
14602 if (other.HasRemoveFixedVariablesEarly) {
14603 RemoveFixedVariablesEarly = other.RemoveFixedVariablesEarly;
14604 }
14605 if (other.HasDetectTableWithCost) {
14606 DetectTableWithCost = other.DetectTableWithCost;
14607 }
14608 if (other.HasTableCompressionLevel) {
14609 TableCompressionLevel = other.TableCompressionLevel;
14610 }
14611 if (other.HasExpandAlldiffConstraints) {
14612 ExpandAlldiffConstraints = other.ExpandAlldiffConstraints;
14613 }
14614 if (other.HasMaxAlldiffDomainSize) {
14615 MaxAlldiffDomainSize = other.MaxAlldiffDomainSize;
14616 }
14617 if (other.HasExpandReservoirConstraints) {
14618 ExpandReservoirConstraints = other.ExpandReservoirConstraints;
14619 }
14620 if (other.HasMaxDomainSizeForLinear2Expansion) {
14621 MaxDomainSizeForLinear2Expansion = other.MaxDomainSizeForLinear2Expansion;
14622 }
14623 if (other.HasExpandReservoirUsingCircuit) {
14624 ExpandReservoirUsingCircuit = other.ExpandReservoirUsingCircuit;
14625 }
14626 if (other.HasEncodeCumulativeAsReservoir) {
14627 EncodeCumulativeAsReservoir = other.EncodeCumulativeAsReservoir;
14628 }
14629 if (other.HasMaxLinMaxSizeForExpansion) {
14630 MaxLinMaxSizeForExpansion = other.MaxLinMaxSizeForExpansion;
14631 }
14632 if (other.HasDisableConstraintExpansion) {
14633 DisableConstraintExpansion = other.DisableConstraintExpansion;
14634 }
14635 if (other.HasEncodeComplexLinearConstraintWithInteger) {
14636 EncodeComplexLinearConstraintWithInteger = other.EncodeComplexLinearConstraintWithInteger;
14637 }
14638 if (other.HasMergeNoOverlapWorkLimit) {
14639 MergeNoOverlapWorkLimit = other.MergeNoOverlapWorkLimit;
14640 }
14641 if (other.HasMergeAtMostOneWorkLimit) {
14642 MergeAtMostOneWorkLimit = other.MergeAtMostOneWorkLimit;
14643 }
14644 if (other.HasPresolveSubstitutionLevel) {
14645 PresolveSubstitutionLevel = other.PresolveSubstitutionLevel;
14646 }
14647 if (other.HasPresolveExtractIntegerEnforcement) {
14648 PresolveExtractIntegerEnforcement = other.PresolveExtractIntegerEnforcement;
14649 }
14650 if (other.HasPresolveInclusionWorkLimit) {
14651 PresolveInclusionWorkLimit = other.PresolveInclusionWorkLimit;
14652 }
14653 if (other.HasIgnoreNames) {
14654 IgnoreNames = other.IgnoreNames;
14655 }
14656 if (other.HasInferAllDiffs) {
14657 InferAllDiffs = other.InferAllDiffs;
14658 }
14659 if (other.HasFindBigLinearOverlap) {
14660 FindBigLinearOverlap = other.FindBigLinearOverlap;
14661 }
14662 if (other.HasFindClausesThatAreExactlyOne) {
14663 FindClausesThatAreExactlyOne = other.FindClausesThatAreExactlyOne;
14664 }
14665 if (other.HasUseSatInprocessing) {
14666 UseSatInprocessing = other.UseSatInprocessing;
14667 }
14668 if (other.HasInprocessingDtimeRatio) {
14669 InprocessingDtimeRatio = other.InprocessingDtimeRatio;
14670 }
14671 if (other.HasInprocessingProbingDtime) {
14672 InprocessingProbingDtime = other.InprocessingProbingDtime;
14673 }
14674 if (other.HasInprocessingMinimizationDtime) {
14675 InprocessingMinimizationDtime = other.InprocessingMinimizationDtime;
14676 }
14677 if (other.HasInprocessingMinimizationUseConflictAnalysis) {
14678 InprocessingMinimizationUseConflictAnalysis = other.InprocessingMinimizationUseConflictAnalysis;
14679 }
14680 if (other.HasInprocessingMinimizationUseAllOrderings) {
14681 InprocessingMinimizationUseAllOrderings = other.InprocessingMinimizationUseAllOrderings;
14682 }
14683 if (other.HasInprocessingUseCongruenceClosure) {
14684 InprocessingUseCongruenceClosure = other.InprocessingUseCongruenceClosure;
14685 }
14686 if (other.HasInprocessingUseSatSweeping) {
14687 InprocessingUseSatSweeping = other.InprocessingUseSatSweeping;
14688 }
14689 if (other.HasNumWorkers) {
14690 NumWorkers = other.NumWorkers;
14691 }
14692 if (other.HasNumSearchWorkers) {
14693 NumSearchWorkers = other.NumSearchWorkers;
14694 }
14695 if (other.HasNumFullSubsolvers) {
14696 NumFullSubsolvers = other.NumFullSubsolvers;
14697 }
14698 subsolvers_.Add(other.subsolvers_);
14699 extraSubsolvers_.Add(other.extraSubsolvers_);
14700 ignoreSubsolvers_.Add(other.ignoreSubsolvers_);
14701 filterSubsolvers_.Add(other.filterSubsolvers_);
14702 subsolverParams_.Add(other.subsolverParams_);
14703 if (other.HasInterleaveSearch) {
14704 InterleaveSearch = other.InterleaveSearch;
14705 }
14706 if (other.HasInterleaveBatchSize) {
14707 InterleaveBatchSize = other.InterleaveBatchSize;
14708 }
14709 if (other.HasShareObjectiveBounds) {
14710 ShareObjectiveBounds = other.ShareObjectiveBounds;
14711 }
14712 if (other.HasShareLevelZeroBounds) {
14713 ShareLevelZeroBounds = other.ShareLevelZeroBounds;
14714 }
14715 if (other.HasShareLinear2Bounds) {
14716 ShareLinear2Bounds = other.ShareLinear2Bounds;
14717 }
14718 if (other.HasShareBinaryClauses) {
14719 ShareBinaryClauses = other.ShareBinaryClauses;
14720 }
14721 if (other.HasShareGlueClauses) {
14722 ShareGlueClauses = other.ShareGlueClauses;
14723 }
14724 if (other.HasMinimizeSharedClauses) {
14725 MinimizeSharedClauses = other.MinimizeSharedClauses;
14726 }
14727 if (other.HasShareGlueClausesDtime) {
14728 ShareGlueClausesDtime = other.ShareGlueClausesDtime;
14729 }
14730 if (other.HasCheckLratProof) {
14731 CheckLratProof = other.CheckLratProof;
14732 }
14733 if (other.HasCheckMergedLratProof) {
14734 CheckMergedLratProof = other.CheckMergedLratProof;
14735 }
14736 if (other.HasOutputLratProof) {
14737 OutputLratProof = other.OutputLratProof;
14738 }
14739 if (other.HasCheckDratProof) {
14740 CheckDratProof = other.CheckDratProof;
14741 }
14742 if (other.HasOutputDratProof) {
14743 OutputDratProof = other.OutputDratProof;
14744 }
14745 if (other.HasMaxDratTimeInSeconds) {
14746 MaxDratTimeInSeconds = other.MaxDratTimeInSeconds;
14747 }
14748 if (other.HasDebugPostsolveWithFullSolver) {
14749 DebugPostsolveWithFullSolver = other.DebugPostsolveWithFullSolver;
14750 }
14751 if (other.HasDebugMaxNumPresolveOperations) {
14752 DebugMaxNumPresolveOperations = other.DebugMaxNumPresolveOperations;
14753 }
14754 if (other.HasDebugCrashOnBadHint) {
14755 DebugCrashOnBadHint = other.DebugCrashOnBadHint;
14756 }
14757 if (other.HasDebugCrashIfPresolveBreaksHint) {
14758 DebugCrashIfPresolveBreaksHint = other.DebugCrashIfPresolveBreaksHint;
14759 }
14760 if (other.HasDebugCrashIfLratCheckFails) {
14761 DebugCrashIfLratCheckFails = other.DebugCrashIfLratCheckFails;
14762 }
14763 if (other.HasUseOptimizationHints) {
14764 UseOptimizationHints = other.UseOptimizationHints;
14765 }
14766 if (other.HasCoreMinimizationLevel) {
14767 CoreMinimizationLevel = other.CoreMinimizationLevel;
14768 }
14769 if (other.HasFindMultipleCores) {
14770 FindMultipleCores = other.FindMultipleCores;
14771 }
14772 if (other.HasCoverOptimization) {
14773 CoverOptimization = other.CoverOptimization;
14774 }
14775 if (other.HasMaxSatAssumptionOrder) {
14776 MaxSatAssumptionOrder = other.MaxSatAssumptionOrder;
14777 }
14778 if (other.HasMaxSatReverseAssumptionOrder) {
14779 MaxSatReverseAssumptionOrder = other.MaxSatReverseAssumptionOrder;
14780 }
14781 if (other.HasMaxSatStratification) {
14782 MaxSatStratification = other.MaxSatStratification;
14783 }
14784 if (other.HasPropagationLoopDetectionFactor) {
14785 PropagationLoopDetectionFactor = other.PropagationLoopDetectionFactor;
14786 }
14787 if (other.HasUsePrecedencesInDisjunctiveConstraint) {
14788 UsePrecedencesInDisjunctiveConstraint = other.UsePrecedencesInDisjunctiveConstraint;
14789 }
14790 if (other.HasTransitivePrecedencesWorkLimit) {
14791 TransitivePrecedencesWorkLimit = other.TransitivePrecedencesWorkLimit;
14792 }
14793 if (other.HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive) {
14794 MaxSizeToCreatePrecedenceLiteralsInDisjunctive = other.MaxSizeToCreatePrecedenceLiteralsInDisjunctive;
14795 }
14796 if (other.HasUseStrongPropagationInDisjunctive) {
14797 UseStrongPropagationInDisjunctive = other.UseStrongPropagationInDisjunctive;
14798 }
14799 if (other.HasUseDynamicPrecedenceInDisjunctive) {
14800 UseDynamicPrecedenceInDisjunctive = other.UseDynamicPrecedenceInDisjunctive;
14801 }
14802 if (other.HasUseDynamicPrecedenceInCumulative) {
14803 UseDynamicPrecedenceInCumulative = other.UseDynamicPrecedenceInCumulative;
14804 }
14805 if (other.HasUseOverloadCheckerInCumulative) {
14806 UseOverloadCheckerInCumulative = other.UseOverloadCheckerInCumulative;
14807 }
14808 if (other.HasUseConservativeScaleOverloadChecker) {
14809 UseConservativeScaleOverloadChecker = other.UseConservativeScaleOverloadChecker;
14810 }
14811 if (other.HasUseTimetableEdgeFindingInCumulative) {
14812 UseTimetableEdgeFindingInCumulative = other.UseTimetableEdgeFindingInCumulative;
14813 }
14814 if (other.HasMaxNumIntervalsForTimetableEdgeFinding) {
14815 MaxNumIntervalsForTimetableEdgeFinding = other.MaxNumIntervalsForTimetableEdgeFinding;
14816 }
14817 if (other.HasUseHardPrecedencesInCumulative) {
14818 UseHardPrecedencesInCumulative = other.UseHardPrecedencesInCumulative;
14819 }
14820 if (other.HasExploitAllPrecedences) {
14821 ExploitAllPrecedences = other.ExploitAllPrecedences;
14822 }
14823 if (other.HasUseDisjunctiveConstraintInCumulative) {
14824 UseDisjunctiveConstraintInCumulative = other.UseDisjunctiveConstraintInCumulative;
14825 }
14826 if (other.HasNoOverlap2DBooleanRelationsLimit) {
14827 NoOverlap2DBooleanRelationsLimit = other.NoOverlap2DBooleanRelationsLimit;
14828 }
14829 if (other.HasUseTimetablingInNoOverlap2D) {
14830 UseTimetablingInNoOverlap2D = other.UseTimetablingInNoOverlap2D;
14831 }
14832 if (other.HasUseEnergeticReasoningInNoOverlap2D) {
14833 UseEnergeticReasoningInNoOverlap2D = other.UseEnergeticReasoningInNoOverlap2D;
14834 }
14835 if (other.HasUseAreaEnergeticReasoningInNoOverlap2D) {
14836 UseAreaEnergeticReasoningInNoOverlap2D = other.UseAreaEnergeticReasoningInNoOverlap2D;
14837 }
14838 if (other.HasUseTryEdgeReasoningInNoOverlap2D) {
14839 UseTryEdgeReasoningInNoOverlap2D = other.UseTryEdgeReasoningInNoOverlap2D;
14840 }
14841 if (other.HasMaxPairsPairwiseReasoningInNoOverlap2D) {
14842 MaxPairsPairwiseReasoningInNoOverlap2D = other.MaxPairsPairwiseReasoningInNoOverlap2D;
14843 }
14844 if (other.HasMaximumRegionsToSplitInDisconnectedNoOverlap2D) {
14845 MaximumRegionsToSplitInDisconnectedNoOverlap2D = other.MaximumRegionsToSplitInDisconnectedNoOverlap2D;
14846 }
14847 if (other.HasUseLinear3ForNoOverlap2DPrecedences) {
14848 UseLinear3ForNoOverlap2DPrecedences = other.UseLinear3ForNoOverlap2DPrecedences;
14849 }
14850 if (other.HasUseDualSchedulingHeuristics) {
14851 UseDualSchedulingHeuristics = other.UseDualSchedulingHeuristics;
14852 }
14853 if (other.HasUseAllDifferentForCircuit) {
14854 UseAllDifferentForCircuit = other.UseAllDifferentForCircuit;
14855 }
14856 if (other.HasRoutingCutSubsetSizeForBinaryRelationBound) {
14857 RoutingCutSubsetSizeForBinaryRelationBound = other.RoutingCutSubsetSizeForBinaryRelationBound;
14858 }
14859 if (other.HasRoutingCutSubsetSizeForTightBinaryRelationBound) {
14860 RoutingCutSubsetSizeForTightBinaryRelationBound = other.RoutingCutSubsetSizeForTightBinaryRelationBound;
14861 }
14862 if (other.HasRoutingCutSubsetSizeForExactBinaryRelationBound) {
14863 RoutingCutSubsetSizeForExactBinaryRelationBound = other.RoutingCutSubsetSizeForExactBinaryRelationBound;
14864 }
14865 if (other.HasRoutingCutSubsetSizeForShortestPathsBound) {
14866 RoutingCutSubsetSizeForShortestPathsBound = other.RoutingCutSubsetSizeForShortestPathsBound;
14867 }
14868 if (other.HasRoutingCutDpEffort) {
14869 RoutingCutDpEffort = other.RoutingCutDpEffort;
14870 }
14871 if (other.HasRoutingCutMaxInfeasiblePathLength) {
14872 RoutingCutMaxInfeasiblePathLength = other.RoutingCutMaxInfeasiblePathLength;
14873 }
14874 if (other.HasSearchBranching) {
14875 SearchBranching = other.SearchBranching;
14876 }
14877 if (other.HasHintConflictLimit) {
14878 HintConflictLimit = other.HintConflictLimit;
14879 }
14880 if (other.HasRepairHint) {
14881 RepairHint = other.RepairHint;
14882 }
14883 if (other.HasFixVariablesToTheirHintedValue) {
14884 FixVariablesToTheirHintedValue = other.FixVariablesToTheirHintedValue;
14885 }
14886 if (other.HasUseProbingSearch) {
14887 UseProbingSearch = other.UseProbingSearch;
14888 }
14889 if (other.HasUseExtendedProbing) {
14890 UseExtendedProbing = other.UseExtendedProbing;
14891 }
14892 if (other.HasProbingNumCombinationsLimit) {
14893 ProbingNumCombinationsLimit = other.ProbingNumCombinationsLimit;
14894 }
14895 if (other.HasShavingDeterministicTimeInProbingSearch) {
14896 ShavingDeterministicTimeInProbingSearch = other.ShavingDeterministicTimeInProbingSearch;
14897 }
14898 if (other.HasShavingSearchDeterministicTime) {
14899 ShavingSearchDeterministicTime = other.ShavingSearchDeterministicTime;
14900 }
14901 if (other.HasShavingSearchThreshold) {
14902 ShavingSearchThreshold = other.ShavingSearchThreshold;
14903 }
14904 if (other.HasUseObjectiveLbSearch) {
14905 UseObjectiveLbSearch = other.UseObjectiveLbSearch;
14906 }
14907 if (other.HasUseObjectiveShavingSearch) {
14908 UseObjectiveShavingSearch = other.UseObjectiveShavingSearch;
14909 }
14910 if (other.HasVariablesShavingLevel) {
14911 VariablesShavingLevel = other.VariablesShavingLevel;
14912 }
14913 if (other.HasPseudoCostReliabilityThreshold) {
14914 PseudoCostReliabilityThreshold = other.PseudoCostReliabilityThreshold;
14915 }
14916 if (other.HasOptimizeWithCore) {
14917 OptimizeWithCore = other.OptimizeWithCore;
14918 }
14919 if (other.HasOptimizeWithLbTreeSearch) {
14920 OptimizeWithLbTreeSearch = other.OptimizeWithLbTreeSearch;
14921 }
14922 if (other.HasSaveLpBasisInLbTreeSearch) {
14923 SaveLpBasisInLbTreeSearch = other.SaveLpBasisInLbTreeSearch;
14924 }
14925 if (other.HasBinarySearchNumConflicts) {
14926 BinarySearchNumConflicts = other.BinarySearchNumConflicts;
14927 }
14928 if (other.HasOptimizeWithMaxHs) {
14929 OptimizeWithMaxHs = other.OptimizeWithMaxHs;
14930 }
14931 if (other.HasUseFeasibilityJump) {
14932 UseFeasibilityJump = other.UseFeasibilityJump;
14933 }
14934 if (other.HasUseLsOnly) {
14935 UseLsOnly = other.UseLsOnly;
14936 }
14937 if (other.HasFeasibilityJumpDecay) {
14938 FeasibilityJumpDecay = other.FeasibilityJumpDecay;
14939 }
14940 if (other.HasFeasibilityJumpLinearizationLevel) {
14941 FeasibilityJumpLinearizationLevel = other.FeasibilityJumpLinearizationLevel;
14942 }
14943 if (other.HasFeasibilityJumpRestartFactor) {
14944 FeasibilityJumpRestartFactor = other.FeasibilityJumpRestartFactor;
14945 }
14946 if (other.HasFeasibilityJumpBatchDtime) {
14947 FeasibilityJumpBatchDtime = other.FeasibilityJumpBatchDtime;
14948 }
14949 if (other.HasFeasibilityJumpVarRandomizationProbability) {
14950 FeasibilityJumpVarRandomizationProbability = other.FeasibilityJumpVarRandomizationProbability;
14951 }
14952 if (other.HasFeasibilityJumpVarPerburbationRangeRatio) {
14953 FeasibilityJumpVarPerburbationRangeRatio = other.FeasibilityJumpVarPerburbationRangeRatio;
14954 }
14955 if (other.HasFeasibilityJumpEnableRestarts) {
14956 FeasibilityJumpEnableRestarts = other.FeasibilityJumpEnableRestarts;
14957 }
14958 if (other.HasFeasibilityJumpMaxExpandedConstraintSize) {
14959 FeasibilityJumpMaxExpandedConstraintSize = other.FeasibilityJumpMaxExpandedConstraintSize;
14960 }
14961 if (other.HasNumViolationLs) {
14962 NumViolationLs = other.NumViolationLs;
14963 }
14964 if (other.HasViolationLsPerturbationPeriod) {
14965 ViolationLsPerturbationPeriod = other.ViolationLsPerturbationPeriod;
14966 }
14967 if (other.HasViolationLsCompoundMoveProbability) {
14968 ViolationLsCompoundMoveProbability = other.ViolationLsCompoundMoveProbability;
14969 }
14970 if (other.HasSharedTreeNumWorkers) {
14971 SharedTreeNumWorkers = other.SharedTreeNumWorkers;
14972 }
14973 if (other.HasUseSharedTreeSearch) {
14974 UseSharedTreeSearch = other.UseSharedTreeSearch;
14975 }
14976 if (other.HasSharedTreeWorkerMinRestartsPerSubtree) {
14977 SharedTreeWorkerMinRestartsPerSubtree = other.SharedTreeWorkerMinRestartsPerSubtree;
14978 }
14979 if (other.HasSharedTreeWorkerEnableTrailSharing) {
14980 SharedTreeWorkerEnableTrailSharing = other.SharedTreeWorkerEnableTrailSharing;
14981 }
14982 if (other.HasSharedTreeWorkerEnablePhaseSharing) {
14983 SharedTreeWorkerEnablePhaseSharing = other.SharedTreeWorkerEnablePhaseSharing;
14984 }
14985 if (other.HasSharedTreeOpenLeavesPerWorker) {
14986 SharedTreeOpenLeavesPerWorker = other.SharedTreeOpenLeavesPerWorker;
14987 }
14988 if (other.HasSharedTreeMaxNodesPerWorker) {
14989 SharedTreeMaxNodesPerWorker = other.SharedTreeMaxNodesPerWorker;
14990 }
14991 if (other.HasSharedTreeSplitStrategy) {
14992 SharedTreeSplitStrategy = other.SharedTreeSplitStrategy;
14993 }
14994 if (other.HasSharedTreeBalanceTolerance) {
14995 SharedTreeBalanceTolerance = other.SharedTreeBalanceTolerance;
14996 }
14997 if (other.HasSharedTreeSplitMinDtime) {
14998 SharedTreeSplitMinDtime = other.SharedTreeSplitMinDtime;
14999 }
15000 if (other.HasEnumerateAllSolutions) {
15001 EnumerateAllSolutions = other.EnumerateAllSolutions;
15002 }
15003 if (other.HasKeepAllFeasibleSolutionsInPresolve) {
15004 KeepAllFeasibleSolutionsInPresolve = other.KeepAllFeasibleSolutionsInPresolve;
15005 }
15006 if (other.HasFillTightenedDomainsInResponse) {
15007 FillTightenedDomainsInResponse = other.FillTightenedDomainsInResponse;
15008 }
15009 if (other.HasFillAdditionalSolutionsInResponse) {
15010 FillAdditionalSolutionsInResponse = other.FillAdditionalSolutionsInResponse;
15011 }
15012 if (other.HasInstantiateAllVariables) {
15013 InstantiateAllVariables = other.InstantiateAllVariables;
15014 }
15015 if (other.HasAutoDetectGreaterThanAtLeastOneOf) {
15016 AutoDetectGreaterThanAtLeastOneOf = other.AutoDetectGreaterThanAtLeastOneOf;
15017 }
15018 if (other.HasStopAfterFirstSolution) {
15019 StopAfterFirstSolution = other.StopAfterFirstSolution;
15020 }
15021 if (other.HasStopAfterPresolve) {
15022 StopAfterPresolve = other.StopAfterPresolve;
15023 }
15024 if (other.HasStopAfterRootPropagation) {
15025 StopAfterRootPropagation = other.StopAfterRootPropagation;
15026 }
15027 if (other.HasLnsInitialDifficulty) {
15028 LnsInitialDifficulty = other.LnsInitialDifficulty;
15029 }
15030 if (other.HasLnsInitialDeterministicLimit) {
15031 LnsInitialDeterministicLimit = other.LnsInitialDeterministicLimit;
15032 }
15033 if (other.HasUseLns) {
15034 UseLns = other.UseLns;
15035 }
15036 if (other.HasUseLnsOnly) {
15037 UseLnsOnly = other.UseLnsOnly;
15038 }
15039 if (other.HasSolutionPoolSize) {
15040 SolutionPoolSize = other.SolutionPoolSize;
15041 }
15042 if (other.HasSolutionPoolDiversityLimit) {
15043 SolutionPoolDiversityLimit = other.SolutionPoolDiversityLimit;
15044 }
15045 if (other.HasAlternativePoolSize) {
15046 AlternativePoolSize = other.AlternativePoolSize;
15047 }
15048 if (other.HasUseRinsLns) {
15049 UseRinsLns = other.UseRinsLns;
15050 }
15051 if (other.HasUseFeasibilityPump) {
15052 UseFeasibilityPump = other.UseFeasibilityPump;
15053 }
15054 if (other.HasUseLbRelaxLns) {
15055 UseLbRelaxLns = other.UseLbRelaxLns;
15056 }
15057 if (other.HasLbRelaxNumWorkersThreshold) {
15058 LbRelaxNumWorkersThreshold = other.LbRelaxNumWorkersThreshold;
15059 }
15060 if (other.HasFpRounding) {
15061 FpRounding = other.FpRounding;
15062 }
15063 if (other.HasDiversifyLnsParams) {
15064 DiversifyLnsParams = other.DiversifyLnsParams;
15065 }
15066 if (other.HasRandomizeSearch) {
15067 RandomizeSearch = other.RandomizeSearch;
15068 }
15069 if (other.HasSearchRandomVariablePoolSize) {
15070 SearchRandomVariablePoolSize = other.SearchRandomVariablePoolSize;
15071 }
15072 if (other.HasPushAllTasksTowardStart) {
15073 PushAllTasksTowardStart = other.PushAllTasksTowardStart;
15074 }
15075 if (other.HasUseOptionalVariables) {
15076 UseOptionalVariables = other.UseOptionalVariables;
15077 }
15078 if (other.HasUseExactLpReason) {
15079 UseExactLpReason = other.UseExactLpReason;
15080 }
15081 if (other.HasUseCombinedNoOverlap) {
15082 UseCombinedNoOverlap = other.UseCombinedNoOverlap;
15083 }
15084 if (other.HasAtMostOneMaxExpansionSize) {
15085 AtMostOneMaxExpansionSize = other.AtMostOneMaxExpansionSize;
15086 }
15087 if (other.HasCatchSigintSignal) {
15088 CatchSigintSignal = other.CatchSigintSignal;
15089 }
15090 if (other.HasUseImpliedBounds) {
15091 UseImpliedBounds = other.UseImpliedBounds;
15092 }
15093 if (other.HasPolishLpSolution) {
15094 PolishLpSolution = other.PolishLpSolution;
15095 }
15096 if (other.HasLpPrimalTolerance) {
15097 LpPrimalTolerance = other.LpPrimalTolerance;
15098 }
15099 if (other.HasLpDualTolerance) {
15100 LpDualTolerance = other.LpDualTolerance;
15101 }
15102 if (other.HasConvertIntervals) {
15103 ConvertIntervals = other.ConvertIntervals;
15104 }
15105 if (other.HasSymmetryLevel) {
15106 SymmetryLevel = other.SymmetryLevel;
15107 }
15108 if (other.HasUseSymmetryInLp) {
15109 UseSymmetryInLp = other.UseSymmetryInLp;
15110 }
15111 if (other.HasKeepSymmetryInPresolve) {
15112 KeepSymmetryInPresolve = other.KeepSymmetryInPresolve;
15113 }
15114 if (other.HasSymmetryDetectionDeterministicTimeLimit) {
15115 SymmetryDetectionDeterministicTimeLimit = other.SymmetryDetectionDeterministicTimeLimit;
15116 }
15117 if (other.HasNewLinearPropagation) {
15118 NewLinearPropagation = other.NewLinearPropagation;
15119 }
15120 if (other.HasLinearSplitSize) {
15121 LinearSplitSize = other.LinearSplitSize;
15122 }
15123 if (other.HasLinearizationLevel) {
15124 LinearizationLevel = other.LinearizationLevel;
15125 }
15126 if (other.HasBooleanEncodingLevel) {
15127 BooleanEncodingLevel = other.BooleanEncodingLevel;
15128 }
15129 if (other.HasMaxDomainSizeWhenEncodingEqNeqConstraints) {
15130 MaxDomainSizeWhenEncodingEqNeqConstraints = other.MaxDomainSizeWhenEncodingEqNeqConstraints;
15131 }
15132 if (other.HasMaxNumCuts) {
15133 MaxNumCuts = other.MaxNumCuts;
15134 }
15135 if (other.HasCutLevel) {
15136 CutLevel = other.CutLevel;
15137 }
15138 if (other.HasOnlyAddCutsAtLevelZero) {
15139 OnlyAddCutsAtLevelZero = other.OnlyAddCutsAtLevelZero;
15140 }
15141 if (other.HasAddObjectiveCut) {
15142 AddObjectiveCut = other.AddObjectiveCut;
15143 }
15144 if (other.HasAddCgCuts) {
15145 AddCgCuts = other.AddCgCuts;
15146 }
15147 if (other.HasAddMirCuts) {
15148 AddMirCuts = other.AddMirCuts;
15149 }
15150 if (other.HasAddZeroHalfCuts) {
15151 AddZeroHalfCuts = other.AddZeroHalfCuts;
15152 }
15153 if (other.HasAddCliqueCuts) {
15154 AddCliqueCuts = other.AddCliqueCuts;
15155 }
15156 if (other.HasAddRltCuts) {
15157 AddRltCuts = other.AddRltCuts;
15158 }
15159 if (other.HasMaxAllDiffCutSize) {
15160 MaxAllDiffCutSize = other.MaxAllDiffCutSize;
15161 }
15162 if (other.HasAddLinMaxCuts) {
15163 AddLinMaxCuts = other.AddLinMaxCuts;
15164 }
15165 if (other.HasMaxIntegerRoundingScaling) {
15166 MaxIntegerRoundingScaling = other.MaxIntegerRoundingScaling;
15167 }
15168 if (other.HasAddLpConstraintsLazily) {
15169 AddLpConstraintsLazily = other.AddLpConstraintsLazily;
15170 }
15171 if (other.HasRootLpIterations) {
15172 RootLpIterations = other.RootLpIterations;
15173 }
15174 if (other.HasMinOrthogonalityForLpConstraints) {
15175 MinOrthogonalityForLpConstraints = other.MinOrthogonalityForLpConstraints;
15176 }
15177 if (other.HasMaxCutRoundsAtLevelZero) {
15178 MaxCutRoundsAtLevelZero = other.MaxCutRoundsAtLevelZero;
15179 }
15180 if (other.HasMaxConsecutiveInactiveCount) {
15181 MaxConsecutiveInactiveCount = other.MaxConsecutiveInactiveCount;
15182 }
15183 if (other.HasCutMaxActiveCountValue) {
15184 CutMaxActiveCountValue = other.CutMaxActiveCountValue;
15185 }
15186 if (other.HasCutActiveCountDecay) {
15187 CutActiveCountDecay = other.CutActiveCountDecay;
15188 }
15189 if (other.HasCutCleanupTarget) {
15190 CutCleanupTarget = other.CutCleanupTarget;
15191 }
15192 if (other.HasNewConstraintsBatchSize) {
15193 NewConstraintsBatchSize = other.NewConstraintsBatchSize;
15194 }
15195 if (other.HasExploitIntegerLpSolution) {
15196 ExploitIntegerLpSolution = other.ExploitIntegerLpSolution;
15197 }
15198 if (other.HasExploitAllLpSolution) {
15199 ExploitAllLpSolution = other.ExploitAllLpSolution;
15200 }
15201 if (other.HasExploitBestSolution) {
15202 ExploitBestSolution = other.ExploitBestSolution;
15203 }
15204 if (other.HasExploitRelaxationSolution) {
15205 ExploitRelaxationSolution = other.ExploitRelaxationSolution;
15206 }
15207 if (other.HasExploitObjective) {
15208 ExploitObjective = other.ExploitObjective;
15209 }
15210 if (other.HasDetectLinearizedProduct) {
15211 DetectLinearizedProduct = other.DetectLinearizedProduct;
15212 }
15213 if (other.HasUseNewIntegerConflictResolution) {
15214 UseNewIntegerConflictResolution = other.UseNewIntegerConflictResolution;
15215 }
15216 if (other.HasCreate1UipBooleanDuringIcr) {
15217 Create1UipBooleanDuringIcr = other.Create1UipBooleanDuringIcr;
15218 }
15219 if (other.HasMipMaxBound) {
15220 MipMaxBound = other.MipMaxBound;
15221 }
15222 if (other.HasMipVarScaling) {
15223 MipVarScaling = other.MipVarScaling;
15224 }
15225 if (other.HasMipScaleLargeDomain) {
15226 MipScaleLargeDomain = other.MipScaleLargeDomain;
15227 }
15228 if (other.HasMipAutomaticallyScaleVariables) {
15229 MipAutomaticallyScaleVariables = other.MipAutomaticallyScaleVariables;
15230 }
15231 if (other.HasOnlySolveIp) {
15232 OnlySolveIp = other.OnlySolveIp;
15233 }
15234 if (other.HasMipWantedPrecision) {
15235 MipWantedPrecision = other.MipWantedPrecision;
15236 }
15237 if (other.HasMipMaxActivityExponent) {
15238 MipMaxActivityExponent = other.MipMaxActivityExponent;
15239 }
15240 if (other.HasMipCheckPrecision) {
15241 MipCheckPrecision = other.MipCheckPrecision;
15242 }
15243 if (other.HasMipComputeTrueObjectiveBound) {
15244 MipComputeTrueObjectiveBound = other.MipComputeTrueObjectiveBound;
15245 }
15246 if (other.HasMipMaxValidMagnitude) {
15247 MipMaxValidMagnitude = other.MipMaxValidMagnitude;
15248 }
15249 if (other.HasMipTreatHighMagnitudeBoundsAsInfinity) {
15250 MipTreatHighMagnitudeBoundsAsInfinity = other.MipTreatHighMagnitudeBoundsAsInfinity;
15251 }
15252 if (other.HasMipDropTolerance) {
15253 MipDropTolerance = other.MipDropTolerance;
15254 }
15255 if (other.HasMipPresolveLevel) {
15256 MipPresolveLevel = other.MipPresolveLevel;
15257 }
15258 _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
15259 }
15260
15261 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
15262 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
15263 public void MergeFrom(pb::CodedInputStream input) {
15264 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
15265 input.ReadRawMessage(this);
15266 #else
15267 uint tag;
15268 while ((tag = input.ReadTag()) != 0) {
15269 if ((tag & 7) == 4) {
15270 // Abort on any end group tag.
15271 return;
15272 }
15273 switch(tag) {
15274 default:
15275 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
15276 break;
15277 case 8: {
15278 PreferredVariableOrder = (global::Google.OrTools.Sat.SatParameters.Types.VariableOrder) input.ReadEnum();
15279 break;
15280 }
15281 case 16: {
15282 InitialPolarity = (global::Google.OrTools.Sat.SatParameters.Types.Polarity) input.ReadEnum();
15283 break;
15284 }
15285 case 32: {
15286 MinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm) input.ReadEnum();
15287 break;
15288 }
15289 case 88: {
15290 ClauseCleanupPeriod = input.ReadInt32();
15291 break;
15292 }
15293 case 104: {
15294 ClauseCleanupTarget = input.ReadInt32();
15295 break;
15296 }
15297 case 121: {
15298 VariableActivityDecay = input.ReadDouble();
15299 break;
15300 }
15301 case 129: {
15302 MaxVariableActivityValue = input.ReadDouble();
15303 break;
15304 }
15305 case 137: {
15306 ClauseActivityDecay = input.ReadDouble();
15307 break;
15308 }
15309 case 145: {
15310 MaxClauseActivityValue = input.ReadDouble();
15311 break;
15312 }
15313 case 177: {
15314 GlucoseMaxDecay = input.ReadDouble();
15315 break;
15316 }
15317 case 185: {
15318 GlucoseDecayIncrement = input.ReadDouble();
15319 break;
15320 }
15321 case 192: {
15322 GlucoseDecayIncrementPeriod = input.ReadInt32();
15323 break;
15324 }
15325 case 240: {
15326 RestartPeriod = input.ReadInt32();
15327 break;
15328 }
15329 case 248: {
15330 RandomSeed = input.ReadInt32();
15331 break;
15332 }
15333 case 257: {
15334 RandomBranchesRatio = input.ReadDouble();
15335 break;
15336 }
15337 case 272: {
15338 BinaryMinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm) input.ReadEnum();
15339 break;
15340 }
15341 case 280: {
15342 UseOptimizationHints = input.ReadBool();
15343 break;
15344 }
15345 case 289: {
15346 MaxTimeInSeconds = input.ReadDouble();
15347 break;
15348 }
15349 case 296: {
15350 MaxNumberOfConflicts = input.ReadInt64();
15351 break;
15352 }
15353 case 320: {
15354 MaxMemoryInMb = input.ReadInt64();
15355 break;
15356 }
15357 case 328: {
15358 LogSearchProgress = input.ReadBool();
15359 break;
15360 }
15361 case 344: {
15362 UsePbResolution = input.ReadBool();
15363 break;
15364 }
15365 case 352: {
15366 UsePhaseSaving = input.ReadBool();
15367 break;
15368 }
15369 case 361: {
15370 RandomPolarityRatio = input.ReadDouble();
15371 break;
15372 }
15373 case 368: {
15374 PbCleanupIncrement = input.ReadInt32();
15375 break;
15376 }
15377 case 377: {
15378 PbCleanupRatio = input.ReadDouble();
15379 break;
15380 }
15381 case 384: {
15382 MinimizeReductionDuringPbResolution = input.ReadBool();
15383 break;
15384 }
15385 case 392: {
15386 CountAssumptionLevelsInLbd = input.ReadBool();
15387 break;
15388 }
15389 case 400: {
15390 CoreMinimizationLevel = input.ReadInt32();
15391 break;
15392 }
15393 case 408: {
15394 MaxSatAssumptionOrder = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder) input.ReadEnum();
15395 break;
15396 }
15397 case 416: {
15398 MaxSatReverseAssumptionOrder = input.ReadBool();
15399 break;
15400 }
15401 case 424: {
15402 MaxSatStratification = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm) input.ReadEnum();
15403 break;
15404 }
15405 case 432: {
15406 PresolveBveThreshold = input.ReadInt32();
15407 break;
15408 }
15409 case 440: {
15410 PresolveBveClauseWeight = input.ReadInt32();
15411 break;
15412 }
15413 case 448: {
15414 SubsumptionDuringConflictAnalysis = input.ReadBool();
15415 break;
15416 }
15417 case 457: {
15418 PresolveProbingDeterministicTimeLimit = input.ReadDouble();
15419 break;
15420 }
15421 case 472: {
15422 ClauseCleanupLbdBound = input.ReadInt32();
15423 break;
15424 }
15425 case 480: {
15426 ClauseCleanupOrdering = (global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering) input.ReadEnum();
15427 break;
15428 }
15429 case 490:
15430 case 488: {
15431 restartAlgorithms_.AddEntriesFrom(input, _repeated_restartAlgorithms_codec);
15432 break;
15433 }
15434 case 496: {
15435 RestartRunningWindowSize = input.ReadInt32();
15436 break;
15437 }
15438 case 505: {
15439 RestartDlAverageRatio = input.ReadDouble();
15440 break;
15441 }
15442 case 512: {
15443 UseBlockingRestart = input.ReadBool();
15444 break;
15445 }
15446 case 520: {
15447 BlockingRestartWindowSize = input.ReadInt32();
15448 break;
15449 }
15450 case 529: {
15451 BlockingRestartMultiplier = input.ReadDouble();
15452 break;
15453 }
15454 case 537: {
15455 MaxDeterministicTime = input.ReadDouble();
15456 break;
15457 }
15458 case 544: {
15459 NumConflictsBeforeStrategyChanges = input.ReadInt32();
15460 break;
15461 }
15462 case 553: {
15463 StrategyChangeIncreaseRatio = input.ReadDouble();
15464 break;
15465 }
15466 case 562: {
15467 DefaultRestartAlgorithms = input.ReadString();
15468 break;
15469 }
15470 case 569: {
15471 RestartLbdAverageRatio = input.ReadDouble();
15472 break;
15473 }
15474 case 576: {
15475 PresolveUseBva = input.ReadBool();
15476 break;
15477 }
15478 case 584: {
15479 PresolveBvaThreshold = input.ReadInt32();
15480 break;
15481 }
15482 case 592: {
15483 UsePrecedencesInDisjunctiveConstraint = input.ReadBool();
15484 break;
15485 }
15486 case 600: {
15487 UseErwaHeuristic = input.ReadBool();
15488 break;
15489 }
15490 case 609: {
15491 InitialVariablesActivity = input.ReadDouble();
15492 break;
15493 }
15494 case 616: {
15495 AlsoBumpVariablesInConflictReasons = input.ReadBool();
15496 break;
15497 }
15498 case 624: {
15499 UseOverloadCheckerInCumulative = input.ReadBool();
15500 break;
15501 }
15502 case 632: {
15503 UseTimetableEdgeFindingInCumulative = input.ReadBool();
15504 break;
15505 }
15506 case 640: {
15507 UseDisjunctiveConstraintInCumulative = input.ReadBool();
15508 break;
15509 }
15510 case 656: {
15511 SearchBranching = (global::Google.OrTools.Sat.SatParameters.Types.SearchBranching) input.ReadEnum();
15512 break;
15513 }
15514 case 664: {
15515 OptimizeWithCore = input.ReadBool();
15516 break;
15517 }
15518 case 672: {
15519 FindMultipleCores = input.ReadBool();
15520 break;
15521 }
15522 case 680: {
15523 OptimizeWithMaxHs = input.ReadBool();
15524 break;
15525 }
15526 case 688: {
15527 CpModelPresolve = input.ReadBool();
15528 break;
15529 }
15530 case 696: {
15531 EnumerateAllSolutions = input.ReadBool();
15532 break;
15533 }
15534 case 704: {
15535 PresolveBlockedClause = input.ReadBool();
15536 break;
15537 }
15538 case 712: {
15539 CoverOptimization = input.ReadBool();
15540 break;
15541 }
15542 case 720: {
15543 LinearizationLevel = input.ReadInt32();
15544 break;
15545 }
15546 case 728: {
15547 MaxNumCuts = input.ReadInt32();
15548 break;
15549 }
15550 case 736: {
15551 OnlyAddCutsAtLevelZero = input.ReadBool();
15552 break;
15553 }
15554 case 744: {
15555 CpModelUseSatPresolve = input.ReadBool();
15556 break;
15557 }
15558 case 752: {
15559 ExploitIntegerLpSolution = input.ReadBool();
15560 break;
15561 }
15562 case 760: {
15563 AutoDetectGreaterThanAtLeastOneOf = input.ReadBool();
15564 break;
15565 }
15566 case 784: {
15567 StopAfterFirstSolution = input.ReadBool();
15568 break;
15569 }
15570 case 792: {
15571 BinarySearchNumConflicts = input.ReadInt32();
15572 break;
15573 }
15574 case 800: {
15575 NumSearchWorkers = input.ReadInt32();
15576 break;
15577 }
15578 case 808: {
15579 UseLnsOnly = input.ReadBool();
15580 break;
15581 }
15582 case 824: {
15583 RandomizeSearch = input.ReadBool();
15584 break;
15585 }
15586 case 832: {
15587 SearchRandomVariablePoolSize = input.ReadInt64();
15588 break;
15589 }
15590 case 848: {
15591 InstantiateAllVariables = input.ReadBool();
15592 break;
15593 }
15594 case 856: {
15595 BooleanEncodingLevel = input.ReadInt32();
15596 break;
15597 }
15598 case 864: {
15599 UseOptionalVariables = input.ReadBool();
15600 break;
15601 }
15602 case 872: {
15603 UseExactLpReason = input.ReadBool();
15604 break;
15605 }
15606 case 880: {
15607 CpModelProbingLevel = input.ReadInt32();
15608 break;
15609 }
15610 case 896: {
15611 AddLpConstraintsLazily = input.ReadBool();
15612 break;
15613 }
15614 case 904: {
15615 ShareObjectiveBounds = input.ReadBool();
15616 break;
15617 }
15618 case 912: {
15619 ShareLevelZeroBounds = input.ReadBool();
15620 break;
15621 }
15622 case 921: {
15623 MinOrthogonalityForLpConstraints = input.ReadDouble();
15624 break;
15625 }
15626 case 928: {
15627 ExploitAllLpSolution = input.ReadBool();
15628 break;
15629 }
15630 case 936: {
15631 AddCgCuts = input.ReadBool();
15632 break;
15633 }
15634 case 952: {
15635 MaxIntegerRoundingScaling = input.ReadInt32();
15636 break;
15637 }
15638 case 960: {
15639 AddMirCuts = input.ReadBool();
15640 break;
15641 }
15642 case 968: {
15643 MaxConsecutiveInactiveCount = input.ReadInt32();
15644 break;
15645 }
15646 case 976: {
15647 NewConstraintsBatchSize = input.ReadInt32();
15648 break;
15649 }
15650 case 984: {
15651 PseudoCostReliabilityThreshold = input.ReadInt64();
15652 break;
15653 }
15654 case 993: {
15655 MipMaxBound = input.ReadDouble();
15656 break;
15657 }
15658 case 1001: {
15659 MipVarScaling = input.ReadDouble();
15660 break;
15661 }
15662 case 1009: {
15663 MipWantedPrecision = input.ReadDouble();
15664 break;
15665 }
15666 case 1016: {
15667 MipMaxActivityExponent = input.ReadInt32();
15668 break;
15669 }
15670 case 1025: {
15671 MipCheckPrecision = input.ReadDouble();
15672 break;
15673 }
15674 case 1032: {
15675 UseRinsLns = input.ReadBool();
15676 break;
15677 }
15678 case 1040: {
15679 ExploitBestSolution = input.ReadBool();
15680 break;
15681 }
15682 case 1048: {
15683 ExploitObjective = input.ReadBool();
15684 break;
15685 }
15686 case 1056: {
15687 FillTightenedDomainsInResponse = input.ReadBool();
15688 break;
15689 }
15690 case 1064: {
15691 UseCombinedNoOverlap = input.ReadBool();
15692 break;
15693 }
15694 case 1072: {
15695 InterleaveBatchSize = input.ReadInt32();
15696 break;
15697 }
15698 case 1080: {
15699 CatchSigintSignal = input.ReadBool();
15700 break;
15701 }
15702 case 1088: {
15703 InterleaveSearch = input.ReadBool();
15704 break;
15705 }
15706 case 1096: {
15707 DiversifyLnsParams = input.ReadBool();
15708 break;
15709 }
15710 case 1104: {
15711 MaxPresolveIterations = input.ReadInt32();
15712 break;
15713 }
15714 case 1152: {
15715 UseImpliedBounds = input.ReadBool();
15716 break;
15717 }
15718 case 1161: {
15719 MergeNoOverlapWorkLimit = input.ReadDouble();
15720 break;
15721 }
15722 case 1169: {
15723 MergeAtMostOneWorkLimit = input.ReadDouble();
15724 break;
15725 }
15726 case 1176: {
15727 PresolveSubstitutionLevel = input.ReadInt32();
15728 break;
15729 }
15730 case 1184: {
15731 MaxAllDiffCutSize = input.ReadInt32();
15732 break;
15733 }
15734 case 1192: {
15735 StopAfterPresolve = input.ReadBool();
15736 break;
15737 }
15738 case 1208: {
15739 DebugMaxNumPresolveOperations = input.ReadInt32();
15740 break;
15741 }
15742 case 1216: {
15743 AddLinMaxCuts = input.ReadBool();
15744 break;
15745 }
15746 case 1224: {
15747 HintConflictLimit = input.ReadInt32();
15748 break;
15749 }
15750 case 1232: {
15751 MaxCutRoundsAtLevelZero = input.ReadInt32();
15752 break;
15753 }
15754 case 1241: {
15755 CutMaxActiveCountValue = input.ReadDouble();
15756 break;
15757 }
15758 case 1249: {
15759 CutActiveCountDecay = input.ReadDouble();
15760 break;
15761 }
15762 case 1256: {
15763 CutCleanupTarget = input.ReadInt32();
15764 break;
15765 }
15766 case 1273: {
15767 AbsoluteGapLimit = input.ReadDouble();
15768 break;
15769 }
15770 case 1281: {
15771 RelativeGapLimit = input.ReadDouble();
15772 break;
15773 }
15774 case 1288: {
15775 ExploitRelaxationSolution = input.ReadBool();
15776 break;
15777 }
15778 case 1296: {
15779 DebugPostsolveWithFullSolver = input.ReadBool();
15780 break;
15781 }
15782 case 1304: {
15783 UseSatInprocessing = input.ReadBool();
15784 break;
15785 }
15786 case 1312: {
15787 UseFeasibilityPump = input.ReadBool();
15788 break;
15789 }
15790 case 1320: {
15791 FpRounding = (global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod) input.ReadEnum();
15792 break;
15793 }
15794 case 1328: {
15795 MipAutomaticallyScaleVariables = input.ReadBool();
15796 break;
15797 }
15798 case 1336: {
15799 RepairHint = input.ReadBool();
15800 break;
15801 }
15802 case 1344: {
15803 PolarityRephaseIncrement = input.ReadInt32();
15804 break;
15805 }
15806 case 1352: {
15807 AddZeroHalfCuts = input.ReadBool();
15808 break;
15809 }
15810 case 1360: {
15811 ExpandAlldiffConstraints = input.ReadBool();
15812 break;
15813 }
15814 case 1370: {
15815 Name = input.ReadString();
15816 break;
15817 }
15818 case 1376: {
15819 AddCliqueCuts = input.ReadBool();
15820 break;
15821 }
15822 case 1384: {
15823 KeepAllFeasibleSolutionsInPresolve = input.ReadBool();
15824 break;
15825 }
15826 case 1392: {
15827 PresolveExtractIntegerEnforcement = input.ReadBool();
15828 break;
15829 }
15830 case 1400: {
15831 PolishLpSolution = input.ReadBool();
15832 break;
15833 }
15834 case 1408: {
15835 UseProbingSearch = input.ReadBool();
15836 break;
15837 }
15838 case 1416: {
15839 ConvertIntervals = input.ReadBool();
15840 break;
15841 }
15842 case 1424: {
15843 PermuteVariableRandomly = input.ReadBool();
15844 break;
15845 }
15846 case 1432: {
15847 PermutePresolveConstraintOrder = input.ReadBool();
15848 break;
15849 }
15850 case 1440: {
15851 UseAbslRandom = input.ReadBool();
15852 break;
15853 }
15854 case 1448: {
15855 DisableConstraintExpansion = input.ReadBool();
15856 break;
15857 }
15858 case 1456: {
15859 ExpandReservoirConstraints = input.ReadBool();
15860 break;
15861 }
15862 case 1464: {
15863 SymmetryLevel = input.ReadInt32();
15864 break;
15865 }
15866 case 1482: {
15867 LogPrefix = input.ReadString();
15868 break;
15869 }
15870 case 1488: {
15871 LogToStdout = input.ReadBool();
15872 break;
15873 }
15874 case 1496: {
15875 LogToResponse = input.ReadBool();
15876 break;
15877 }
15878 case 1504: {
15879 OptimizeWithLbTreeSearch = input.ReadBool();
15880 break;
15881 }
15882 case 1512: {
15883 LogSubsolverStatistics = input.ReadBool();
15884 break;
15885 }
15886 case 1521: {
15887 ClauseCleanupRatio = input.ReadDouble();
15888 break;
15889 }
15890 case 1528: {
15891 MaxDomainSizeWhenEncodingEqNeqConstraints = input.ReadInt32();
15892 break;
15893 }
15894 case 1536: {
15895 FixVariablesToTheirHintedValue = input.ReadBool();
15896 break;
15897 }
15898 case 1544: {
15899 SolutionPoolSize = input.ReadInt32();
15900 break;
15901 }
15902 case 1552: {
15903 FillAdditionalSolutionsInResponse = input.ReadBool();
15904 break;
15905 }
15906 case 1560: {
15907 DebugCrashOnBadHint = input.ReadBool();
15908 break;
15909 }
15910 case 1568: {
15911 CutLevel = input.ReadInt32();
15912 break;
15913 }
15914 case 1576: {
15915 AddObjectiveCut = input.ReadBool();
15916 break;
15917 }
15918 case 1584: {
15919 MipComputeTrueObjectiveBound = input.ReadBool();
15920 break;
15921 }
15922 case 1593: {
15923 MipMaxValidMagnitude = input.ReadDouble();
15924 break;
15925 }
15926 case 1600: {
15927 UseTimetablingInNoOverlap2D = input.ReadBool();
15928 break;
15929 }
15930 case 1608: {
15931 PresolveInclusionWorkLimit = input.ReadInt64();
15932 break;
15933 }
15934 case 1616: {
15935 IgnoreNames = input.ReadBool();
15936 break;
15937 }
15938 case 1624: {
15939 ShareBinaryClauses = input.ReadBool();
15940 break;
15941 }
15942 case 1633: {
15943 ShavingDeterministicTimeInProbingSearch = input.ReadDouble();
15944 break;
15945 }
15946 case 1641: {
15947 ShavingSearchDeterministicTime = input.ReadDouble();
15948 break;
15949 }
15950 case 1648: {
15951 NumWorkers = input.ReadInt32();
15952 break;
15953 }
15954 case 1658: {
15955 subsolvers_.AddEntriesFrom(input, _repeated_subsolvers_codec);
15956 break;
15957 }
15958 case 1674: {
15959 ignoreSubsolvers_.AddEntriesFrom(input, _repeated_ignoreSubsolvers_codec);
15960 break;
15961 }
15962 case 1682: {
15963 subsolverParams_.AddEntriesFrom(input, _repeated_subsolverParams_codec);
15964 break;
15965 }
15966 case 1704: {
15967 UseEnergeticReasoningInNoOverlap2D = input.ReadBool();
15968 break;
15969 }
15970 case 1712: {
15971 UseDualSchedulingHeuristics = input.ReadBool();
15972 break;
15973 }
15974 case 1720: {
15975 UseHardPrecedencesInCumulative = input.ReadBool();
15976 break;
15977 }
15978 case 1728: {
15979 DetectTableWithCost = input.ReadBool();
15980 break;
15981 }
15982 case 1736: {
15983 TableCompressionLevel = input.ReadInt32();
15984 break;
15985 }
15986 case 1754: {
15987 extraSubsolvers_.AddEntriesFrom(input, _repeated_extraSubsolvers_codec);
15988 break;
15989 }
15990 case 1760: {
15991 ExploitAllPrecedences = input.ReadBool();
15992 break;
15993 }
15994 case 1769: {
15995 PropagationLoopDetectionFactor = input.ReadDouble();
15996 break;
15997 }
15998 case 1776: {
15999 OnlySolveIp = input.ReadBool();
16000 break;
16001 }
16002 case 1784: {
16003 EncodeComplexLinearConstraintWithInteger = input.ReadBool();
16004 break;
16005 }
16006 case 1792: {
16007 NewLinearPropagation = input.ReadBool();
16008 break;
16009 }
16010 case 1800: {
16011 MipScaleLargeDomain = input.ReadBool();
16012 break;
16013 }
16014 case 1809: {
16015 ProbingDeterministicTimeLimit = input.ReadDouble();
16016 break;
16017 }
16018 case 1816: {
16019 RootLpIterations = input.ReadInt32();
16020 break;
16021 }
16022 case 1824: {
16023 UseObjectiveLbSearch = input.ReadBool();
16024 break;
16025 }
16026 case 1832: {
16027 MaxSizeToCreatePrecedenceLiteralsInDisjunctive = input.ReadInt32();
16028 break;
16029 }
16030 case 1840: {
16031 UseStrongPropagationInDisjunctive = input.ReadBool();
16032 break;
16033 }
16034 case 1857: {
16035 MipDropTolerance = input.ReadDouble();
16036 break;
16037 }
16038 case 1864: {
16039 InferAllDiffs = input.ReadBool();
16040 break;
16041 }
16042 case 1872: {
16043 FindBigLinearOverlap = input.ReadBool();
16044 break;
16045 }
16046 case 1880: {
16047 SharedTreeNumWorkers = input.ReadInt32();
16048 break;
16049 }
16050 case 1888: {
16051 UseSharedTreeSearch = input.ReadBool();
16052 break;
16053 }
16054 case 1904: {
16055 SharedTreeMaxNodesPerWorker = input.ReadInt32();
16056 break;
16057 }
16058 case 1912: {
16059 SharedTreeSplitStrategy = (global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy) input.ReadEnum();
16060 break;
16061 }
16062 case 1920: {
16063 UseLsOnly = input.ReadBool();
16064 break;
16065 }
16066 case 1937: {
16067 FeasibilityJumpDecay = input.ReadDouble();
16068 break;
16069 }
16070 case 1952: {
16071 NumViolationLs = input.ReadInt32();
16072 break;
16073 }
16074 case 1977: {
16075 FeasibilityJumpVarRandomizationProbability = input.ReadDouble();
16076 break;
16077 }
16078 case 1985: {
16079 FeasibilityJumpVarPerburbationRangeRatio = input.ReadDouble();
16080 break;
16081 }
16082 case 1992: {
16083 ViolationLsPerturbationPeriod = input.ReadInt32();
16084 break;
16085 }
16086 case 2000: {
16087 FeasibilityJumpEnableRestarts = input.ReadBool();
16088 break;
16089 }
16090 case 2016: {
16091 StopAfterRootPropagation = input.ReadBool();
16092 break;
16093 }
16094 case 2024: {
16095 UseObjectiveShavingSearch = input.ReadBool();
16096 break;
16097 }
16098 case 2040: {
16099 UseLbRelaxLns = input.ReadBool();
16100 break;
16101 }
16102 case 2048: {
16103 LinearSplitSize = input.ReadInt32();
16104 break;
16105 }
16106 case 2056: {
16107 FeasibilityJumpLinearizationLevel = input.ReadInt32();
16108 break;
16109 }
16110 case 2064: {
16111 FeasibilityJumpRestartFactor = input.ReadInt32();
16112 break;
16113 }
16114 case 2073: {
16115 ViolationLsCompoundMoveProbability = input.ReadDouble();
16116 break;
16117 }
16118 case 2080: {
16119 MaxNumIntervalsForTimetableEdgeFinding = input.ReadInt32();
16120 break;
16121 }
16122 case 2088: {
16123 MipPresolveLevel = input.ReadInt32();
16124 break;
16125 }
16126 case 2096: {
16127 PushAllTasksTowardStart = input.ReadBool();
16128 break;
16129 }
16130 case 2104: {
16131 UseDynamicPrecedenceInDisjunctive = input.ReadBool();
16132 break;
16133 }
16134 case 2112: {
16135 FeasibilityJumpMaxExpandedConstraintSize = input.ReadInt32();
16136 break;
16137 }
16138 case 2120: {
16139 UseFeasibilityJump = input.ReadBool();
16140 break;
16141 }
16142 case 2129: {
16143 LpPrimalTolerance = input.ReadDouble();
16144 break;
16145 }
16146 case 2137: {
16147 LpDualTolerance = input.ReadDouble();
16148 break;
16149 }
16150 case 2144: {
16151 UseDynamicPrecedenceInCumulative = input.ReadBool();
16152 break;
16153 }
16154 case 2152: {
16155 UseExtendedProbing = input.ReadBool();
16156 break;
16157 }
16158 case 2160: {
16159 AtMostOneMaxExpansionSize = input.ReadInt32();
16160 break;
16161 }
16162 case 2168: {
16163 UseAreaEnergeticReasoningInNoOverlap2D = input.ReadBool();
16164 break;
16165 }
16166 case 2176: {
16167 ProbingNumCombinationsLimit = input.ReadInt32();
16168 break;
16169 }
16170 case 2185: {
16171 InprocessingDtimeRatio = input.ReadDouble();
16172 break;
16173 }
16174 case 2193: {
16175 InprocessingProbingDtime = input.ReadDouble();
16176 break;
16177 }
16178 case 2201: {
16179 InprocessingMinimizationDtime = input.ReadDouble();
16180 break;
16181 }
16182 case 2208: {
16183 MaxPairsPairwiseReasoningInNoOverlap2D = input.ReadInt32();
16184 break;
16185 }
16186 case 2216: {
16187 DetectLinearizedProduct = input.ReadBool();
16188 break;
16189 }
16190 case 2224: {
16191 MipTreatHighMagnitudeBoundsAsInfinity = input.ReadBool();
16192 break;
16193 }
16194 case 2232: {
16195 AddRltCuts = input.ReadBool();
16196 break;
16197 }
16198 case 2240: {
16199 MaxLinMaxSizeForExpansion = input.ReadInt32();
16200 break;
16201 }
16202 case 2249: {
16203 SharedTreeOpenLeavesPerWorker = input.ReadDouble();
16204 break;
16205 }
16206 case 2256: {
16207 SharedTreeWorkerMinRestartsPerSubtree = input.ReadInt32();
16208 break;
16209 }
16210 case 2264: {
16211 UseLns = input.ReadBool();
16212 break;
16213 }
16214 case 2272: {
16215 SaveLpBasisInLbTreeSearch = input.ReadBool();
16216 break;
16217 }
16218 case 2280: {
16219 ShareGlueClauses = input.ReadBool();
16220 break;
16221 }
16222 case 2288: {
16223 UseConservativeScaleOverloadChecker = input.ReadBool();
16224 break;
16225 }
16226 case 2296: {
16227 EncodeCumulativeAsReservoir = input.ReadBool();
16228 break;
16229 }
16230 case 2304: {
16231 ExpandReservoirUsingCircuit = input.ReadBool();
16232 break;
16233 }
16234 case 2312: {
16235 VariablesShavingLevel = input.ReadInt32();
16236 break;
16237 }
16238 case 2320: {
16239 ShavingSearchThreshold = input.ReadInt64();
16240 break;
16241 }
16242 case 2328: {
16243 MaxNumDeterministicBatches = input.ReadInt32();
16244 break;
16245 }
16246 case 2337: {
16247 FeasibilityJumpBatchDtime = input.ReadDouble();
16248 break;
16249 }
16250 case 2346: {
16251 filterSubsolvers_.AddEntriesFrom(input, _repeated_filterSubsolvers_codec);
16252 break;
16253 }
16254 case 2352: {
16255 NumFullSubsolvers = input.ReadInt32();
16256 break;
16257 }
16258 case 2360: {
16259 SharedTreeWorkerEnableTrailSharing = input.ReadBool();
16260 break;
16261 }
16262 case 2368: {
16263 LbRelaxNumWorkersThreshold = input.ReadInt32();
16264 break;
16265 }
16266 case 2376: {
16267 InprocessingMinimizationUseConflictAnalysis = input.ReadBool();
16268 break;
16269 }
16270 case 2384: {
16271 InprocessingMinimizationUseAllOrderings = input.ReadBool();
16272 break;
16273 }
16274 case 2392: {
16275 UseTryEdgeReasoningInNoOverlap2D = input.ReadBool();
16276 break;
16277 }
16278 case 2400: {
16279 MinimizeSharedClauses = input.ReadBool();
16280 break;
16281 }
16282 case 2408: {
16283 UseSymmetryInLp = input.ReadBool();
16284 break;
16285 }
16286 case 2417: {
16287 SymmetryDetectionDeterministicTimeLimit = input.ReadDouble();
16288 break;
16289 }
16290 case 2424: {
16291 KeepSymmetryInPresolve = input.ReadBool();
16292 break;
16293 }
16294 case 2432: {
16295 SharedTreeWorkerEnablePhaseSharing = input.ReadBool();
16296 break;
16297 }
16298 case 2440: {
16299 SharedTreeBalanceTolerance = input.ReadInt32();
16300 break;
16301 }
16302 case 2448: {
16303 DebugCrashIfPresolveBreaksHint = input.ReadBool();
16304 break;
16305 }
16306 case 2457: {
16307 LnsInitialDifficulty = input.ReadDouble();
16308 break;
16309 }
16310 case 2465: {
16311 LnsInitialDeterministicLimit = input.ReadDouble();
16312 break;
16313 }
16314 case 2472: {
16315 PolarityExploitLsHints = input.ReadBool();
16316 break;
16317 }
16318 case 2480: {
16319 RemoveFixedVariablesEarly = input.ReadBool();
16320 break;
16321 }
16322 case 2488: {
16323 UseAllDifferentForCircuit = input.ReadBool();
16324 break;
16325 }
16326 case 2496: {
16327 RoutingCutSubsetSizeForBinaryRelationBound = input.ReadInt32();
16328 break;
16329 }
16330 case 2504: {
16331 RoutingCutSubsetSizeForTightBinaryRelationBound = input.ReadInt32();
16332 break;
16333 }
16334 case 2513: {
16335 RoutingCutDpEffort = input.ReadDouble();
16336 break;
16337 }
16338 case 2520: {
16339 MaximumRegionsToSplitInDisconnectedNoOverlap2D = input.ReadInt32();
16340 break;
16341 }
16342 case 2528: {
16343 RoutingCutSubsetSizeForExactBinaryRelationBound = input.ReadInt32();
16344 break;
16345 }
16346 case 2536: {
16347 RoutingCutMaxInfeasiblePathLength = input.ReadInt32();
16348 break;
16349 }
16350 case 2544: {
16351 RoutingCutSubsetSizeForShortestPathsBound = input.ReadInt32();
16352 break;
16353 }
16354 case 2560: {
16355 MaxAlldiffDomainSize = input.ReadInt32();
16356 break;
16357 }
16358 case 2568: {
16359 NoOverlap2DBooleanRelationsLimit = input.ReadInt32();
16360 break;
16361 }
16362 case 2577: {
16363 ShareGlueClausesDtime = input.ReadDouble();
16364 break;
16365 }
16366 case 2584: {
16367 UseLinear3ForNoOverlap2DPrecedences = input.ReadBool();
16368 break;
16369 }
16370 case 2592: {
16371 FilterSatPostsolveClauses = input.ReadBool();
16372 break;
16373 }
16374 case 2600: {
16375 AlternativePoolSize = input.ReadInt32();
16376 break;
16377 }
16378 case 2608: {
16379 ShareLinear2Bounds = input.ReadBool();
16380 break;
16381 }
16382 case 2616: {
16383 TransitivePrecedencesWorkLimit = input.ReadInt32();
16384 break;
16385 }
16386 case 2625: {
16387 SharedTreeSplitMinDtime = input.ReadDouble();
16388 break;
16389 }
16390 case 2632: {
16391 SolutionPoolDiversityLimit = input.ReadInt32();
16392 break;
16393 }
16394 case 2640: {
16395 UseChronologicalBacktracking = input.ReadBool();
16396 break;
16397 }
16398 case 2648: {
16399 MaxBackjumpLevels = input.ReadInt32();
16400 break;
16401 }
16402 case 2656: {
16403 ChronologicalBacktrackMinConflicts = input.ReadInt32();
16404 break;
16405 }
16406 case 2664: {
16407 FindClausesThatAreExactlyOne = input.ReadBool();
16408 break;
16409 }
16410 case 2680: {
16411 LoadAtMostOnesInSatPresolve = input.ReadBool();
16412 break;
16413 }
16414 case 2688: {
16415 UseNewIntegerConflictResolution = input.ReadBool();
16416 break;
16417 }
16418 case 2696: {
16419 ClauseCleanupPeriodIncrement = input.ReadInt32();
16420 break;
16421 }
16422 case 2712: {
16423 DebugCrashIfLratCheckFails = input.ReadBool();
16424 break;
16425 }
16426 case 2720: {
16427 MaxDomainSizeForLinear2Expansion = input.ReadInt32();
16428 break;
16429 }
16430 case 2728: {
16431 Create1UipBooleanDuringIcr = input.ReadBool();
16432 break;
16433 }
16434 case 2736: {
16435 InprocessingUseCongruenceClosure = input.ReadBool();
16436 break;
16437 }
16438 case 2744: {
16439 EagerlySubsumeLastNConflicts = input.ReadInt32();
16440 break;
16441 }
16442 case 2752: {
16443 CheckLratProof = input.ReadBool();
16444 break;
16445 }
16446 case 2760: {
16447 OutputLratProof = input.ReadBool();
16448 break;
16449 }
16450 case 2768: {
16451 CheckDratProof = input.ReadBool();
16452 break;
16453 }
16454 case 2776: {
16455 OutputDratProof = input.ReadBool();
16456 break;
16457 }
16458 case 2785: {
16459 MaxDratTimeInSeconds = input.ReadDouble();
16460 break;
16461 }
16462 case 2792: {
16463 ClauseCleanupLbdTier1 = input.ReadInt32();
16464 break;
16465 }
16466 case 2800: {
16467 ClauseCleanupLbdTier2 = input.ReadInt32();
16468 break;
16469 }
16470 case 2808: {
16471 ExtraSubsumptionDuringConflictAnalysis = input.ReadBool();
16472 break;
16473 }
16474 case 2816: {
16475 CheckMergedLratProof = input.ReadBool();
16476 break;
16477 }
16478 case 2824: {
16479 DecisionSubsumptionDuringConflictAnalysis = input.ReadBool();
16480 break;
16481 }
16482 case 2832: {
16483 InprocessingUseSatSweeping = input.ReadBool();
16484 break;
16485 }
16486 case 2840: {
16487 SubsumeDuringVivification = input.ReadBool();
16488 break;
16489 }
16490 }
16491 }
16492 #endif
16493 }
16494
16495 #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
16496 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
16497 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
16498 void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
16499 uint tag;
16500 while ((tag = input.ReadTag()) != 0) {
16501 if ((tag & 7) == 4) {
16502 // Abort on any end group tag.
16503 return;
16504 }
16505 switch(tag) {
16506 default:
16507 _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
16508 break;
16509 case 8: {
16510 PreferredVariableOrder = (global::Google.OrTools.Sat.SatParameters.Types.VariableOrder) input.ReadEnum();
16511 break;
16512 }
16513 case 16: {
16514 InitialPolarity = (global::Google.OrTools.Sat.SatParameters.Types.Polarity) input.ReadEnum();
16515 break;
16516 }
16517 case 32: {
16518 MinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm) input.ReadEnum();
16519 break;
16520 }
16521 case 88: {
16522 ClauseCleanupPeriod = input.ReadInt32();
16523 break;
16524 }
16525 case 104: {
16526 ClauseCleanupTarget = input.ReadInt32();
16527 break;
16528 }
16529 case 121: {
16530 VariableActivityDecay = input.ReadDouble();
16531 break;
16532 }
16533 case 129: {
16534 MaxVariableActivityValue = input.ReadDouble();
16535 break;
16536 }
16537 case 137: {
16538 ClauseActivityDecay = input.ReadDouble();
16539 break;
16540 }
16541 case 145: {
16542 MaxClauseActivityValue = input.ReadDouble();
16543 break;
16544 }
16545 case 177: {
16546 GlucoseMaxDecay = input.ReadDouble();
16547 break;
16548 }
16549 case 185: {
16550 GlucoseDecayIncrement = input.ReadDouble();
16551 break;
16552 }
16553 case 192: {
16554 GlucoseDecayIncrementPeriod = input.ReadInt32();
16555 break;
16556 }
16557 case 240: {
16558 RestartPeriod = input.ReadInt32();
16559 break;
16560 }
16561 case 248: {
16562 RandomSeed = input.ReadInt32();
16563 break;
16564 }
16565 case 257: {
16566 RandomBranchesRatio = input.ReadDouble();
16567 break;
16568 }
16569 case 272: {
16570 BinaryMinimizationAlgorithm = (global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm) input.ReadEnum();
16571 break;
16572 }
16573 case 280: {
16574 UseOptimizationHints = input.ReadBool();
16575 break;
16576 }
16577 case 289: {
16578 MaxTimeInSeconds = input.ReadDouble();
16579 break;
16580 }
16581 case 296: {
16582 MaxNumberOfConflicts = input.ReadInt64();
16583 break;
16584 }
16585 case 320: {
16586 MaxMemoryInMb = input.ReadInt64();
16587 break;
16588 }
16589 case 328: {
16590 LogSearchProgress = input.ReadBool();
16591 break;
16592 }
16593 case 344: {
16594 UsePbResolution = input.ReadBool();
16595 break;
16596 }
16597 case 352: {
16598 UsePhaseSaving = input.ReadBool();
16599 break;
16600 }
16601 case 361: {
16602 RandomPolarityRatio = input.ReadDouble();
16603 break;
16604 }
16605 case 368: {
16606 PbCleanupIncrement = input.ReadInt32();
16607 break;
16608 }
16609 case 377: {
16610 PbCleanupRatio = input.ReadDouble();
16611 break;
16612 }
16613 case 384: {
16614 MinimizeReductionDuringPbResolution = input.ReadBool();
16615 break;
16616 }
16617 case 392: {
16618 CountAssumptionLevelsInLbd = input.ReadBool();
16619 break;
16620 }
16621 case 400: {
16622 CoreMinimizationLevel = input.ReadInt32();
16623 break;
16624 }
16625 case 408: {
16626 MaxSatAssumptionOrder = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder) input.ReadEnum();
16627 break;
16628 }
16629 case 416: {
16630 MaxSatReverseAssumptionOrder = input.ReadBool();
16631 break;
16632 }
16633 case 424: {
16634 MaxSatStratification = (global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm) input.ReadEnum();
16635 break;
16636 }
16637 case 432: {
16638 PresolveBveThreshold = input.ReadInt32();
16639 break;
16640 }
16641 case 440: {
16642 PresolveBveClauseWeight = input.ReadInt32();
16643 break;
16644 }
16645 case 448: {
16646 SubsumptionDuringConflictAnalysis = input.ReadBool();
16647 break;
16648 }
16649 case 457: {
16650 PresolveProbingDeterministicTimeLimit = input.ReadDouble();
16651 break;
16652 }
16653 case 472: {
16654 ClauseCleanupLbdBound = input.ReadInt32();
16655 break;
16656 }
16657 case 480: {
16658 ClauseCleanupOrdering = (global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering) input.ReadEnum();
16659 break;
16660 }
16661 case 490:
16662 case 488: {
16663 restartAlgorithms_.AddEntriesFrom(ref input, _repeated_restartAlgorithms_codec);
16664 break;
16665 }
16666 case 496: {
16667 RestartRunningWindowSize = input.ReadInt32();
16668 break;
16669 }
16670 case 505: {
16671 RestartDlAverageRatio = input.ReadDouble();
16672 break;
16673 }
16674 case 512: {
16675 UseBlockingRestart = input.ReadBool();
16676 break;
16677 }
16678 case 520: {
16679 BlockingRestartWindowSize = input.ReadInt32();
16680 break;
16681 }
16682 case 529: {
16683 BlockingRestartMultiplier = input.ReadDouble();
16684 break;
16685 }
16686 case 537: {
16687 MaxDeterministicTime = input.ReadDouble();
16688 break;
16689 }
16690 case 544: {
16691 NumConflictsBeforeStrategyChanges = input.ReadInt32();
16692 break;
16693 }
16694 case 553: {
16695 StrategyChangeIncreaseRatio = input.ReadDouble();
16696 break;
16697 }
16698 case 562: {
16699 DefaultRestartAlgorithms = input.ReadString();
16700 break;
16701 }
16702 case 569: {
16703 RestartLbdAverageRatio = input.ReadDouble();
16704 break;
16705 }
16706 case 576: {
16707 PresolveUseBva = input.ReadBool();
16708 break;
16709 }
16710 case 584: {
16711 PresolveBvaThreshold = input.ReadInt32();
16712 break;
16713 }
16714 case 592: {
16715 UsePrecedencesInDisjunctiveConstraint = input.ReadBool();
16716 break;
16717 }
16718 case 600: {
16719 UseErwaHeuristic = input.ReadBool();
16720 break;
16721 }
16722 case 609: {
16723 InitialVariablesActivity = input.ReadDouble();
16724 break;
16725 }
16726 case 616: {
16727 AlsoBumpVariablesInConflictReasons = input.ReadBool();
16728 break;
16729 }
16730 case 624: {
16731 UseOverloadCheckerInCumulative = input.ReadBool();
16732 break;
16733 }
16734 case 632: {
16735 UseTimetableEdgeFindingInCumulative = input.ReadBool();
16736 break;
16737 }
16738 case 640: {
16739 UseDisjunctiveConstraintInCumulative = input.ReadBool();
16740 break;
16741 }
16742 case 656: {
16743 SearchBranching = (global::Google.OrTools.Sat.SatParameters.Types.SearchBranching) input.ReadEnum();
16744 break;
16745 }
16746 case 664: {
16747 OptimizeWithCore = input.ReadBool();
16748 break;
16749 }
16750 case 672: {
16751 FindMultipleCores = input.ReadBool();
16752 break;
16753 }
16754 case 680: {
16755 OptimizeWithMaxHs = input.ReadBool();
16756 break;
16757 }
16758 case 688: {
16759 CpModelPresolve = input.ReadBool();
16760 break;
16761 }
16762 case 696: {
16763 EnumerateAllSolutions = input.ReadBool();
16764 break;
16765 }
16766 case 704: {
16767 PresolveBlockedClause = input.ReadBool();
16768 break;
16769 }
16770 case 712: {
16771 CoverOptimization = input.ReadBool();
16772 break;
16773 }
16774 case 720: {
16775 LinearizationLevel = input.ReadInt32();
16776 break;
16777 }
16778 case 728: {
16779 MaxNumCuts = input.ReadInt32();
16780 break;
16781 }
16782 case 736: {
16783 OnlyAddCutsAtLevelZero = input.ReadBool();
16784 break;
16785 }
16786 case 744: {
16787 CpModelUseSatPresolve = input.ReadBool();
16788 break;
16789 }
16790 case 752: {
16791 ExploitIntegerLpSolution = input.ReadBool();
16792 break;
16793 }
16794 case 760: {
16795 AutoDetectGreaterThanAtLeastOneOf = input.ReadBool();
16796 break;
16797 }
16798 case 784: {
16799 StopAfterFirstSolution = input.ReadBool();
16800 break;
16801 }
16802 case 792: {
16803 BinarySearchNumConflicts = input.ReadInt32();
16804 break;
16805 }
16806 case 800: {
16807 NumSearchWorkers = input.ReadInt32();
16808 break;
16809 }
16810 case 808: {
16811 UseLnsOnly = input.ReadBool();
16812 break;
16813 }
16814 case 824: {
16815 RandomizeSearch = input.ReadBool();
16816 break;
16817 }
16818 case 832: {
16819 SearchRandomVariablePoolSize = input.ReadInt64();
16820 break;
16821 }
16822 case 848: {
16823 InstantiateAllVariables = input.ReadBool();
16824 break;
16825 }
16826 case 856: {
16827 BooleanEncodingLevel = input.ReadInt32();
16828 break;
16829 }
16830 case 864: {
16831 UseOptionalVariables = input.ReadBool();
16832 break;
16833 }
16834 case 872: {
16835 UseExactLpReason = input.ReadBool();
16836 break;
16837 }
16838 case 880: {
16839 CpModelProbingLevel = input.ReadInt32();
16840 break;
16841 }
16842 case 896: {
16843 AddLpConstraintsLazily = input.ReadBool();
16844 break;
16845 }
16846 case 904: {
16847 ShareObjectiveBounds = input.ReadBool();
16848 break;
16849 }
16850 case 912: {
16851 ShareLevelZeroBounds = input.ReadBool();
16852 break;
16853 }
16854 case 921: {
16855 MinOrthogonalityForLpConstraints = input.ReadDouble();
16856 break;
16857 }
16858 case 928: {
16859 ExploitAllLpSolution = input.ReadBool();
16860 break;
16861 }
16862 case 936: {
16863 AddCgCuts = input.ReadBool();
16864 break;
16865 }
16866 case 952: {
16867 MaxIntegerRoundingScaling = input.ReadInt32();
16868 break;
16869 }
16870 case 960: {
16871 AddMirCuts = input.ReadBool();
16872 break;
16873 }
16874 case 968: {
16875 MaxConsecutiveInactiveCount = input.ReadInt32();
16876 break;
16877 }
16878 case 976: {
16879 NewConstraintsBatchSize = input.ReadInt32();
16880 break;
16881 }
16882 case 984: {
16883 PseudoCostReliabilityThreshold = input.ReadInt64();
16884 break;
16885 }
16886 case 993: {
16887 MipMaxBound = input.ReadDouble();
16888 break;
16889 }
16890 case 1001: {
16891 MipVarScaling = input.ReadDouble();
16892 break;
16893 }
16894 case 1009: {
16895 MipWantedPrecision = input.ReadDouble();
16896 break;
16897 }
16898 case 1016: {
16899 MipMaxActivityExponent = input.ReadInt32();
16900 break;
16901 }
16902 case 1025: {
16903 MipCheckPrecision = input.ReadDouble();
16904 break;
16905 }
16906 case 1032: {
16907 UseRinsLns = input.ReadBool();
16908 break;
16909 }
16910 case 1040: {
16911 ExploitBestSolution = input.ReadBool();
16912 break;
16913 }
16914 case 1048: {
16915 ExploitObjective = input.ReadBool();
16916 break;
16917 }
16918 case 1056: {
16919 FillTightenedDomainsInResponse = input.ReadBool();
16920 break;
16921 }
16922 case 1064: {
16923 UseCombinedNoOverlap = input.ReadBool();
16924 break;
16925 }
16926 case 1072: {
16927 InterleaveBatchSize = input.ReadInt32();
16928 break;
16929 }
16930 case 1080: {
16931 CatchSigintSignal = input.ReadBool();
16932 break;
16933 }
16934 case 1088: {
16935 InterleaveSearch = input.ReadBool();
16936 break;
16937 }
16938 case 1096: {
16939 DiversifyLnsParams = input.ReadBool();
16940 break;
16941 }
16942 case 1104: {
16943 MaxPresolveIterations = input.ReadInt32();
16944 break;
16945 }
16946 case 1152: {
16947 UseImpliedBounds = input.ReadBool();
16948 break;
16949 }
16950 case 1161: {
16951 MergeNoOverlapWorkLimit = input.ReadDouble();
16952 break;
16953 }
16954 case 1169: {
16955 MergeAtMostOneWorkLimit = input.ReadDouble();
16956 break;
16957 }
16958 case 1176: {
16959 PresolveSubstitutionLevel = input.ReadInt32();
16960 break;
16961 }
16962 case 1184: {
16963 MaxAllDiffCutSize = input.ReadInt32();
16964 break;
16965 }
16966 case 1192: {
16967 StopAfterPresolve = input.ReadBool();
16968 break;
16969 }
16970 case 1208: {
16971 DebugMaxNumPresolveOperations = input.ReadInt32();
16972 break;
16973 }
16974 case 1216: {
16975 AddLinMaxCuts = input.ReadBool();
16976 break;
16977 }
16978 case 1224: {
16979 HintConflictLimit = input.ReadInt32();
16980 break;
16981 }
16982 case 1232: {
16983 MaxCutRoundsAtLevelZero = input.ReadInt32();
16984 break;
16985 }
16986 case 1241: {
16987 CutMaxActiveCountValue = input.ReadDouble();
16988 break;
16989 }
16990 case 1249: {
16991 CutActiveCountDecay = input.ReadDouble();
16992 break;
16993 }
16994 case 1256: {
16995 CutCleanupTarget = input.ReadInt32();
16996 break;
16997 }
16998 case 1273: {
16999 AbsoluteGapLimit = input.ReadDouble();
17000 break;
17001 }
17002 case 1281: {
17003 RelativeGapLimit = input.ReadDouble();
17004 break;
17005 }
17006 case 1288: {
17007 ExploitRelaxationSolution = input.ReadBool();
17008 break;
17009 }
17010 case 1296: {
17011 DebugPostsolveWithFullSolver = input.ReadBool();
17012 break;
17013 }
17014 case 1304: {
17015 UseSatInprocessing = input.ReadBool();
17016 break;
17017 }
17018 case 1312: {
17019 UseFeasibilityPump = input.ReadBool();
17020 break;
17021 }
17022 case 1320: {
17023 FpRounding = (global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod) input.ReadEnum();
17024 break;
17025 }
17026 case 1328: {
17027 MipAutomaticallyScaleVariables = input.ReadBool();
17028 break;
17029 }
17030 case 1336: {
17031 RepairHint = input.ReadBool();
17032 break;
17033 }
17034 case 1344: {
17035 PolarityRephaseIncrement = input.ReadInt32();
17036 break;
17037 }
17038 case 1352: {
17039 AddZeroHalfCuts = input.ReadBool();
17040 break;
17041 }
17042 case 1360: {
17043 ExpandAlldiffConstraints = input.ReadBool();
17044 break;
17045 }
17046 case 1370: {
17047 Name = input.ReadString();
17048 break;
17049 }
17050 case 1376: {
17051 AddCliqueCuts = input.ReadBool();
17052 break;
17053 }
17054 case 1384: {
17055 KeepAllFeasibleSolutionsInPresolve = input.ReadBool();
17056 break;
17057 }
17058 case 1392: {
17059 PresolveExtractIntegerEnforcement = input.ReadBool();
17060 break;
17061 }
17062 case 1400: {
17063 PolishLpSolution = input.ReadBool();
17064 break;
17065 }
17066 case 1408: {
17067 UseProbingSearch = input.ReadBool();
17068 break;
17069 }
17070 case 1416: {
17071 ConvertIntervals = input.ReadBool();
17072 break;
17073 }
17074 case 1424: {
17075 PermuteVariableRandomly = input.ReadBool();
17076 break;
17077 }
17078 case 1432: {
17079 PermutePresolveConstraintOrder = input.ReadBool();
17080 break;
17081 }
17082 case 1440: {
17083 UseAbslRandom = input.ReadBool();
17084 break;
17085 }
17086 case 1448: {
17087 DisableConstraintExpansion = input.ReadBool();
17088 break;
17089 }
17090 case 1456: {
17091 ExpandReservoirConstraints = input.ReadBool();
17092 break;
17093 }
17094 case 1464: {
17095 SymmetryLevel = input.ReadInt32();
17096 break;
17097 }
17098 case 1482: {
17099 LogPrefix = input.ReadString();
17100 break;
17101 }
17102 case 1488: {
17103 LogToStdout = input.ReadBool();
17104 break;
17105 }
17106 case 1496: {
17107 LogToResponse = input.ReadBool();
17108 break;
17109 }
17110 case 1504: {
17111 OptimizeWithLbTreeSearch = input.ReadBool();
17112 break;
17113 }
17114 case 1512: {
17115 LogSubsolverStatistics = input.ReadBool();
17116 break;
17117 }
17118 case 1521: {
17119 ClauseCleanupRatio = input.ReadDouble();
17120 break;
17121 }
17122 case 1528: {
17123 MaxDomainSizeWhenEncodingEqNeqConstraints = input.ReadInt32();
17124 break;
17125 }
17126 case 1536: {
17127 FixVariablesToTheirHintedValue = input.ReadBool();
17128 break;
17129 }
17130 case 1544: {
17131 SolutionPoolSize = input.ReadInt32();
17132 break;
17133 }
17134 case 1552: {
17135 FillAdditionalSolutionsInResponse = input.ReadBool();
17136 break;
17137 }
17138 case 1560: {
17139 DebugCrashOnBadHint = input.ReadBool();
17140 break;
17141 }
17142 case 1568: {
17143 CutLevel = input.ReadInt32();
17144 break;
17145 }
17146 case 1576: {
17147 AddObjectiveCut = input.ReadBool();
17148 break;
17149 }
17150 case 1584: {
17151 MipComputeTrueObjectiveBound = input.ReadBool();
17152 break;
17153 }
17154 case 1593: {
17155 MipMaxValidMagnitude = input.ReadDouble();
17156 break;
17157 }
17158 case 1600: {
17159 UseTimetablingInNoOverlap2D = input.ReadBool();
17160 break;
17161 }
17162 case 1608: {
17163 PresolveInclusionWorkLimit = input.ReadInt64();
17164 break;
17165 }
17166 case 1616: {
17167 IgnoreNames = input.ReadBool();
17168 break;
17169 }
17170 case 1624: {
17171 ShareBinaryClauses = input.ReadBool();
17172 break;
17173 }
17174 case 1633: {
17175 ShavingDeterministicTimeInProbingSearch = input.ReadDouble();
17176 break;
17177 }
17178 case 1641: {
17179 ShavingSearchDeterministicTime = input.ReadDouble();
17180 break;
17181 }
17182 case 1648: {
17183 NumWorkers = input.ReadInt32();
17184 break;
17185 }
17186 case 1658: {
17187 subsolvers_.AddEntriesFrom(ref input, _repeated_subsolvers_codec);
17188 break;
17189 }
17190 case 1674: {
17191 ignoreSubsolvers_.AddEntriesFrom(ref input, _repeated_ignoreSubsolvers_codec);
17192 break;
17193 }
17194 case 1682: {
17195 subsolverParams_.AddEntriesFrom(ref input, _repeated_subsolverParams_codec);
17196 break;
17197 }
17198 case 1704: {
17199 UseEnergeticReasoningInNoOverlap2D = input.ReadBool();
17200 break;
17201 }
17202 case 1712: {
17203 UseDualSchedulingHeuristics = input.ReadBool();
17204 break;
17205 }
17206 case 1720: {
17207 UseHardPrecedencesInCumulative = input.ReadBool();
17208 break;
17209 }
17210 case 1728: {
17211 DetectTableWithCost = input.ReadBool();
17212 break;
17213 }
17214 case 1736: {
17215 TableCompressionLevel = input.ReadInt32();
17216 break;
17217 }
17218 case 1754: {
17219 extraSubsolvers_.AddEntriesFrom(ref input, _repeated_extraSubsolvers_codec);
17220 break;
17221 }
17222 case 1760: {
17223 ExploitAllPrecedences = input.ReadBool();
17224 break;
17225 }
17226 case 1769: {
17227 PropagationLoopDetectionFactor = input.ReadDouble();
17228 break;
17229 }
17230 case 1776: {
17231 OnlySolveIp = input.ReadBool();
17232 break;
17233 }
17234 case 1784: {
17235 EncodeComplexLinearConstraintWithInteger = input.ReadBool();
17236 break;
17237 }
17238 case 1792: {
17239 NewLinearPropagation = input.ReadBool();
17240 break;
17241 }
17242 case 1800: {
17243 MipScaleLargeDomain = input.ReadBool();
17244 break;
17245 }
17246 case 1809: {
17247 ProbingDeterministicTimeLimit = input.ReadDouble();
17248 break;
17249 }
17250 case 1816: {
17251 RootLpIterations = input.ReadInt32();
17252 break;
17253 }
17254 case 1824: {
17255 UseObjectiveLbSearch = input.ReadBool();
17256 break;
17257 }
17258 case 1832: {
17259 MaxSizeToCreatePrecedenceLiteralsInDisjunctive = input.ReadInt32();
17260 break;
17261 }
17262 case 1840: {
17263 UseStrongPropagationInDisjunctive = input.ReadBool();
17264 break;
17265 }
17266 case 1857: {
17267 MipDropTolerance = input.ReadDouble();
17268 break;
17269 }
17270 case 1864: {
17271 InferAllDiffs = input.ReadBool();
17272 break;
17273 }
17274 case 1872: {
17275 FindBigLinearOverlap = input.ReadBool();
17276 break;
17277 }
17278 case 1880: {
17279 SharedTreeNumWorkers = input.ReadInt32();
17280 break;
17281 }
17282 case 1888: {
17283 UseSharedTreeSearch = input.ReadBool();
17284 break;
17285 }
17286 case 1904: {
17287 SharedTreeMaxNodesPerWorker = input.ReadInt32();
17288 break;
17289 }
17290 case 1912: {
17291 SharedTreeSplitStrategy = (global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy) input.ReadEnum();
17292 break;
17293 }
17294 case 1920: {
17295 UseLsOnly = input.ReadBool();
17296 break;
17297 }
17298 case 1937: {
17299 FeasibilityJumpDecay = input.ReadDouble();
17300 break;
17301 }
17302 case 1952: {
17303 NumViolationLs = input.ReadInt32();
17304 break;
17305 }
17306 case 1977: {
17307 FeasibilityJumpVarRandomizationProbability = input.ReadDouble();
17308 break;
17309 }
17310 case 1985: {
17311 FeasibilityJumpVarPerburbationRangeRatio = input.ReadDouble();
17312 break;
17313 }
17314 case 1992: {
17315 ViolationLsPerturbationPeriod = input.ReadInt32();
17316 break;
17317 }
17318 case 2000: {
17319 FeasibilityJumpEnableRestarts = input.ReadBool();
17320 break;
17321 }
17322 case 2016: {
17323 StopAfterRootPropagation = input.ReadBool();
17324 break;
17325 }
17326 case 2024: {
17327 UseObjectiveShavingSearch = input.ReadBool();
17328 break;
17329 }
17330 case 2040: {
17331 UseLbRelaxLns = input.ReadBool();
17332 break;
17333 }
17334 case 2048: {
17335 LinearSplitSize = input.ReadInt32();
17336 break;
17337 }
17338 case 2056: {
17339 FeasibilityJumpLinearizationLevel = input.ReadInt32();
17340 break;
17341 }
17342 case 2064: {
17343 FeasibilityJumpRestartFactor = input.ReadInt32();
17344 break;
17345 }
17346 case 2073: {
17347 ViolationLsCompoundMoveProbability = input.ReadDouble();
17348 break;
17349 }
17350 case 2080: {
17351 MaxNumIntervalsForTimetableEdgeFinding = input.ReadInt32();
17352 break;
17353 }
17354 case 2088: {
17355 MipPresolveLevel = input.ReadInt32();
17356 break;
17357 }
17358 case 2096: {
17359 PushAllTasksTowardStart = input.ReadBool();
17360 break;
17361 }
17362 case 2104: {
17363 UseDynamicPrecedenceInDisjunctive = input.ReadBool();
17364 break;
17365 }
17366 case 2112: {
17367 FeasibilityJumpMaxExpandedConstraintSize = input.ReadInt32();
17368 break;
17369 }
17370 case 2120: {
17371 UseFeasibilityJump = input.ReadBool();
17372 break;
17373 }
17374 case 2129: {
17375 LpPrimalTolerance = input.ReadDouble();
17376 break;
17377 }
17378 case 2137: {
17379 LpDualTolerance = input.ReadDouble();
17380 break;
17381 }
17382 case 2144: {
17383 UseDynamicPrecedenceInCumulative = input.ReadBool();
17384 break;
17385 }
17386 case 2152: {
17387 UseExtendedProbing = input.ReadBool();
17388 break;
17389 }
17390 case 2160: {
17391 AtMostOneMaxExpansionSize = input.ReadInt32();
17392 break;
17393 }
17394 case 2168: {
17395 UseAreaEnergeticReasoningInNoOverlap2D = input.ReadBool();
17396 break;
17397 }
17398 case 2176: {
17399 ProbingNumCombinationsLimit = input.ReadInt32();
17400 break;
17401 }
17402 case 2185: {
17403 InprocessingDtimeRatio = input.ReadDouble();
17404 break;
17405 }
17406 case 2193: {
17407 InprocessingProbingDtime = input.ReadDouble();
17408 break;
17409 }
17410 case 2201: {
17411 InprocessingMinimizationDtime = input.ReadDouble();
17412 break;
17413 }
17414 case 2208: {
17415 MaxPairsPairwiseReasoningInNoOverlap2D = input.ReadInt32();
17416 break;
17417 }
17418 case 2216: {
17419 DetectLinearizedProduct = input.ReadBool();
17420 break;
17421 }
17422 case 2224: {
17423 MipTreatHighMagnitudeBoundsAsInfinity = input.ReadBool();
17424 break;
17425 }
17426 case 2232: {
17427 AddRltCuts = input.ReadBool();
17428 break;
17429 }
17430 case 2240: {
17431 MaxLinMaxSizeForExpansion = input.ReadInt32();
17432 break;
17433 }
17434 case 2249: {
17435 SharedTreeOpenLeavesPerWorker = input.ReadDouble();
17436 break;
17437 }
17438 case 2256: {
17439 SharedTreeWorkerMinRestartsPerSubtree = input.ReadInt32();
17440 break;
17441 }
17442 case 2264: {
17443 UseLns = input.ReadBool();
17444 break;
17445 }
17446 case 2272: {
17447 SaveLpBasisInLbTreeSearch = input.ReadBool();
17448 break;
17449 }
17450 case 2280: {
17451 ShareGlueClauses = input.ReadBool();
17452 break;
17453 }
17454 case 2288: {
17455 UseConservativeScaleOverloadChecker = input.ReadBool();
17456 break;
17457 }
17458 case 2296: {
17459 EncodeCumulativeAsReservoir = input.ReadBool();
17460 break;
17461 }
17462 case 2304: {
17463 ExpandReservoirUsingCircuit = input.ReadBool();
17464 break;
17465 }
17466 case 2312: {
17467 VariablesShavingLevel = input.ReadInt32();
17468 break;
17469 }
17470 case 2320: {
17471 ShavingSearchThreshold = input.ReadInt64();
17472 break;
17473 }
17474 case 2328: {
17475 MaxNumDeterministicBatches = input.ReadInt32();
17476 break;
17477 }
17478 case 2337: {
17479 FeasibilityJumpBatchDtime = input.ReadDouble();
17480 break;
17481 }
17482 case 2346: {
17483 filterSubsolvers_.AddEntriesFrom(ref input, _repeated_filterSubsolvers_codec);
17484 break;
17485 }
17486 case 2352: {
17487 NumFullSubsolvers = input.ReadInt32();
17488 break;
17489 }
17490 case 2360: {
17491 SharedTreeWorkerEnableTrailSharing = input.ReadBool();
17492 break;
17493 }
17494 case 2368: {
17495 LbRelaxNumWorkersThreshold = input.ReadInt32();
17496 break;
17497 }
17498 case 2376: {
17499 InprocessingMinimizationUseConflictAnalysis = input.ReadBool();
17500 break;
17501 }
17502 case 2384: {
17503 InprocessingMinimizationUseAllOrderings = input.ReadBool();
17504 break;
17505 }
17506 case 2392: {
17507 UseTryEdgeReasoningInNoOverlap2D = input.ReadBool();
17508 break;
17509 }
17510 case 2400: {
17511 MinimizeSharedClauses = input.ReadBool();
17512 break;
17513 }
17514 case 2408: {
17515 UseSymmetryInLp = input.ReadBool();
17516 break;
17517 }
17518 case 2417: {
17519 SymmetryDetectionDeterministicTimeLimit = input.ReadDouble();
17520 break;
17521 }
17522 case 2424: {
17523 KeepSymmetryInPresolve = input.ReadBool();
17524 break;
17525 }
17526 case 2432: {
17527 SharedTreeWorkerEnablePhaseSharing = input.ReadBool();
17528 break;
17529 }
17530 case 2440: {
17531 SharedTreeBalanceTolerance = input.ReadInt32();
17532 break;
17533 }
17534 case 2448: {
17535 DebugCrashIfPresolveBreaksHint = input.ReadBool();
17536 break;
17537 }
17538 case 2457: {
17539 LnsInitialDifficulty = input.ReadDouble();
17540 break;
17541 }
17542 case 2465: {
17543 LnsInitialDeterministicLimit = input.ReadDouble();
17544 break;
17545 }
17546 case 2472: {
17547 PolarityExploitLsHints = input.ReadBool();
17548 break;
17549 }
17550 case 2480: {
17551 RemoveFixedVariablesEarly = input.ReadBool();
17552 break;
17553 }
17554 case 2488: {
17555 UseAllDifferentForCircuit = input.ReadBool();
17556 break;
17557 }
17558 case 2496: {
17559 RoutingCutSubsetSizeForBinaryRelationBound = input.ReadInt32();
17560 break;
17561 }
17562 case 2504: {
17563 RoutingCutSubsetSizeForTightBinaryRelationBound = input.ReadInt32();
17564 break;
17565 }
17566 case 2513: {
17567 RoutingCutDpEffort = input.ReadDouble();
17568 break;
17569 }
17570 case 2520: {
17571 MaximumRegionsToSplitInDisconnectedNoOverlap2D = input.ReadInt32();
17572 break;
17573 }
17574 case 2528: {
17575 RoutingCutSubsetSizeForExactBinaryRelationBound = input.ReadInt32();
17576 break;
17577 }
17578 case 2536: {
17579 RoutingCutMaxInfeasiblePathLength = input.ReadInt32();
17580 break;
17581 }
17582 case 2544: {
17583 RoutingCutSubsetSizeForShortestPathsBound = input.ReadInt32();
17584 break;
17585 }
17586 case 2560: {
17587 MaxAlldiffDomainSize = input.ReadInt32();
17588 break;
17589 }
17590 case 2568: {
17591 NoOverlap2DBooleanRelationsLimit = input.ReadInt32();
17592 break;
17593 }
17594 case 2577: {
17595 ShareGlueClausesDtime = input.ReadDouble();
17596 break;
17597 }
17598 case 2584: {
17599 UseLinear3ForNoOverlap2DPrecedences = input.ReadBool();
17600 break;
17601 }
17602 case 2592: {
17603 FilterSatPostsolveClauses = input.ReadBool();
17604 break;
17605 }
17606 case 2600: {
17607 AlternativePoolSize = input.ReadInt32();
17608 break;
17609 }
17610 case 2608: {
17611 ShareLinear2Bounds = input.ReadBool();
17612 break;
17613 }
17614 case 2616: {
17615 TransitivePrecedencesWorkLimit = input.ReadInt32();
17616 break;
17617 }
17618 case 2625: {
17619 SharedTreeSplitMinDtime = input.ReadDouble();
17620 break;
17621 }
17622 case 2632: {
17623 SolutionPoolDiversityLimit = input.ReadInt32();
17624 break;
17625 }
17626 case 2640: {
17627 UseChronologicalBacktracking = input.ReadBool();
17628 break;
17629 }
17630 case 2648: {
17631 MaxBackjumpLevels = input.ReadInt32();
17632 break;
17633 }
17634 case 2656: {
17635 ChronologicalBacktrackMinConflicts = input.ReadInt32();
17636 break;
17637 }
17638 case 2664: {
17639 FindClausesThatAreExactlyOne = input.ReadBool();
17640 break;
17641 }
17642 case 2680: {
17643 LoadAtMostOnesInSatPresolve = input.ReadBool();
17644 break;
17645 }
17646 case 2688: {
17647 UseNewIntegerConflictResolution = input.ReadBool();
17648 break;
17649 }
17650 case 2696: {
17651 ClauseCleanupPeriodIncrement = input.ReadInt32();
17652 break;
17653 }
17654 case 2712: {
17655 DebugCrashIfLratCheckFails = input.ReadBool();
17656 break;
17657 }
17658 case 2720: {
17659 MaxDomainSizeForLinear2Expansion = input.ReadInt32();
17660 break;
17661 }
17662 case 2728: {
17663 Create1UipBooleanDuringIcr = input.ReadBool();
17664 break;
17665 }
17666 case 2736: {
17667 InprocessingUseCongruenceClosure = input.ReadBool();
17668 break;
17669 }
17670 case 2744: {
17671 EagerlySubsumeLastNConflicts = input.ReadInt32();
17672 break;
17673 }
17674 case 2752: {
17675 CheckLratProof = input.ReadBool();
17676 break;
17677 }
17678 case 2760: {
17679 OutputLratProof = input.ReadBool();
17680 break;
17681 }
17682 case 2768: {
17683 CheckDratProof = input.ReadBool();
17684 break;
17685 }
17686 case 2776: {
17687 OutputDratProof = input.ReadBool();
17688 break;
17689 }
17690 case 2785: {
17691 MaxDratTimeInSeconds = input.ReadDouble();
17692 break;
17693 }
17694 case 2792: {
17695 ClauseCleanupLbdTier1 = input.ReadInt32();
17696 break;
17697 }
17698 case 2800: {
17699 ClauseCleanupLbdTier2 = input.ReadInt32();
17700 break;
17701 }
17702 case 2808: {
17703 ExtraSubsumptionDuringConflictAnalysis = input.ReadBool();
17704 break;
17705 }
17706 case 2816: {
17707 CheckMergedLratProof = input.ReadBool();
17708 break;
17709 }
17710 case 2824: {
17711 DecisionSubsumptionDuringConflictAnalysis = input.ReadBool();
17712 break;
17713 }
17714 case 2832: {
17715 InprocessingUseSatSweeping = input.ReadBool();
17716 break;
17717 }
17718 case 2840: {
17719 SubsumeDuringVivification = input.ReadBool();
17720 break;
17721 }
17722 }
17723 }
17724 }
17725 #endif
17726
17727 #region Nested types
17729 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
17730 [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
17731 public static partial class Types {
17736 public enum VariableOrder {
17740 [pbr::OriginalName("IN_ORDER")] InOrder = 0,
17741 [pbr::OriginalName("IN_REVERSE_ORDER")] InReverseOrder = 1,
17742 [pbr::OriginalName("IN_RANDOM_ORDER")] InRandomOrder = 2,
17743 }
17744
17753 public enum Polarity {
17754 [pbr::OriginalName("POLARITY_TRUE")] True = 0,
17755 [pbr::OriginalName("POLARITY_FALSE")] False = 1,
17756 [pbr::OriginalName("POLARITY_RANDOM")] Random = 2,
17757 }
17758
17762 public enum ConflictMinimizationAlgorithm {
17763 [pbr::OriginalName("NONE")] None = 0,
17764 [pbr::OriginalName("SIMPLE")] Simple = 1,
17765 [pbr::OriginalName("RECURSIVE")] Recursive = 2,
17766 }
17767
17771 public enum BinaryMinizationAlgorithm {
17772 [pbr::OriginalName("NO_BINARY_MINIMIZATION")] NoBinaryMinimization = 0,
17773 [pbr::OriginalName("BINARY_MINIMIZATION_FROM_UIP")] BinaryMinimizationFromUip = 1,
17774 [pbr::OriginalName("BINARY_MINIMIZATION_FROM_UIP_AND_DECISIONS")] BinaryMinimizationFromUipAndDecisions = 5,
17775 }
17776
17781 public enum ClauseOrdering {
17785 [pbr::OriginalName("CLAUSE_ACTIVITY")] ClauseActivity = 0,
17789 [pbr::OriginalName("CLAUSE_LBD")] ClauseLbd = 1,
17790 }
17791
17793 /// Restart algorithms.
17794 ///
17795 /// A reference for the more advanced ones is:
17796 /// Gilles Audemard, Laurent Simon, "Refining Restarts Strategies for SAT
17797 /// and UNSAT", Principles and Practice of Constraint Programming Lecture
17798 /// Notes in Computer Science 2012, pp 118-126
17799 /// </summary>
17800 public enum RestartAlgorithm {
17801 [pbr::OriginalName("NO_RESTART")] NoRestart = 0,
17805 [pbr::OriginalName("LUBY_RESTART")] LubyRestart = 1,
17806
17809 [pbr::OriginalName("DL_MOVING_AVERAGE_RESTART")] DlMovingAverageRestart = 2,
17813 [pbr::OriginalName("LBD_MOVING_AVERAGE_RESTART")] LbdMovingAverageRestart = 3,
17816 /// </summary>
17817 [pbr::OriginalName("FIXED_RESTART")] FixedRestart = 4,
17821
17823 public enum MaxSatAssumptionOrder {
17824 [pbr::OriginalName("DEFAULT_ASSUMPTION_ORDER")] DefaultAssumptionOrder = 0,
17825 [pbr::OriginalName("ORDER_ASSUMPTION_BY_DEPTH")] OrderAssumptionByDepth = 1,
17826 [pbr::OriginalName("ORDER_ASSUMPTION_BY_WEIGHT")] OrderAssumptionByWeight = 2,
17830
17832 public enum MaxSatStratificationAlgorithm {
17834 /// No stratification of the problem.
17835 /// </summary>
17836 [pbr::OriginalName("STRATIFICATION_NONE")] StratificationNone = 0,
17839
17841 [pbr::OriginalName("STRATIFICATION_DESCENT")] StratificationDescent = 1,
17844 /// weight, do not consider literals with a lower weight for the next core
17845 /// computation. If the subproblem is SAT, do like in STRATIFICATION_DESCENT
17846 /// and just add the literals with the next highest weight.
17847 /// </summary>
17848 [pbr::OriginalName("STRATIFICATION_ASCENT")] StratificationAscent = 2,
17849 }
17850
17854 public enum SearchBranching {
17861 [pbr::OriginalName("AUTOMATIC_SEARCH")] AutomaticSearch = 0,
17864 /// order as specified in the API or in the CpModelProto search_strategy
17865 /// field.
17866 /// </summary>
17867 [pbr::OriginalName("FIXED_SEARCH")] FixedSearch = 1,
17871 [pbr::OriginalName("PORTFOLIO_SEARCH")] PortfolioSearch = 2,
17876 [pbr::OriginalName("LP_SEARCH")] LpSearch = 3,
17882 [pbr::OriginalName("PSEUDO_COST_SEARCH")] PseudoCostSearch = 4,
17883
17887 /// </summary>
17888 [pbr::OriginalName("PORTFOLIO_WITH_QUICK_RESTART_SEARCH")] PortfolioWithQuickRestartSearch = 5,
17892
17894 [pbr::OriginalName("HINT_SEARCH")] HintSearch = 6,
17896 /// Similar to FIXED_SEARCH, but differ in how the variable not listed into
17897 /// the fixed search heuristics are branched on. This will always start the
17898 /// search tree according to the specified fixed search strategy, but will
17899 /// complete it using the default automatic search.
17900 /// </summary>
17901 [pbr::OriginalName("PARTIAL_FIXED_SEARCH")] PartialFixedSearch = 7,
17905 [pbr::OriginalName("RANDOMIZED_SEARCH")] RandomizedSearch = 8,
17906 }
17907
17908 public enum SharedTreeSplitStrategy {
17913 [pbr::OriginalName("SPLIT_STRATEGY_AUTO")] SplitStrategyAuto = 0,
17914
17918 /// lowest objective lower bound or the original branch direction if the
17919 /// bounds are equal. This rule allows twice as many workers to work in the
17920 /// preferred subtree as non-preferred.
17921 /// </summary>
17922 [pbr::OriginalName("SPLIT_STRATEGY_DISCREPANCY")] SplitStrategyDiscrepancy = 1,
17927 [pbr::OriginalName("SPLIT_STRATEGY_OBJECTIVE_LB")] SplitStrategyObjectiveLb = 2,
17931 [pbr::OriginalName("SPLIT_STRATEGY_BALANCED_TREE")] SplitStrategyBalancedTree = 3,
17935 [pbr::OriginalName("SPLIT_STRATEGY_FIRST_PROPOSAL")] SplitStrategyFirstProposal = 4,
17936 }
17937
17941 public enum FPRoundingMethod {
17945 [pbr::OriginalName("NEAREST_INTEGER")] NearestInteger = 0,
17951 [pbr::OriginalName("LOCK_BASED")] LockBased = 1,
17956 [pbr::OriginalName("ACTIVE_LOCK_BASED")] ActiveLockBased = 3,
17965 [pbr::OriginalName("PROPAGATION_ASSISTED")] PropagationAssisted = 2,
17966 }
17967
17968 }
17969 #endregion
17970
17971 }
17973 #endregion
17974
17975}
17976
17977#endregion Designer generated code
global::Google.Protobuf pb
global::Google.Protobuf.Reflection pbr
global::System.Collections.Generic scg
global::Google.Protobuf.Collections pbc
Holder for reflection information generated from ortools/sat/sat_parameters.proto.
static pbr::FileDescriptor Descriptor
File descriptor for ortools/sat/sat_parameters.proto.
Container for nested types declared in the SatParameters message type.
BinaryMinizationAlgorithm
Whether to expoit the binary clause to minimize learned clauses further.
Polarity
Specifies the initial polarity (true/false) when the solver branches on a variable....
SearchBranching
The search branching will be used to decide how to branch on unfixed nodes.
VariableOrder
Variables without activity (i.e. at the beginning of the search) will be tried in this preferred orde...
MaxSatStratificationAlgorithm
What stratification algorithm we use in the presence of weight.
FPRoundingMethod
Rounding method to use for feasibility pump.
ConflictMinimizationAlgorithm
Do we try to minimize conflicts (greedily) when creating them.
ClauseOrdering
The clauses that will be kept during a cleanup are the ones that come first under this order....
MaxSatAssumptionOrder
In what order do we add the assumptions in a core-based max-sat algorithm.
Contains the definitions for all the sat algorithm parameters and their default values.
const int DebugCrashOnBadHintFieldNumber
Field number for the "debug_crash_on_bad_hint" field.
bool HasExploitRelaxationSolution
Gets whether the "exploit_relaxation_solution" field is set.
bool HasAddRltCuts
Gets whether the "add_rlt_cuts" field is set.
bool HasFindBigLinearOverlap
Gets whether the "find_big_linear_overlap" field is set.
int RoutingCutSubsetSizeForBinaryRelationBound
If the size of a subset of nodes of a RoutesConstraint is less than this value, use linear constraint...
bool HasInprocessingMinimizationUseConflictAnalysis
Gets whether the "inprocessing_minimization_use_conflict_analysis" field is set.
bool HasName
Gets whether the "name" field is set.
void ClearFixVariablesToTheirHintedValue()
Clears the value of the "fix_variables_to_their_hinted_value" field.
bool HasNewLinearPropagation
Gets whether the "new_linear_propagation" field is set.
bool HasCountAssumptionLevelsInLbd
Gets whether the "count_assumption_levels_in_lbd" field is set.
const int ExpandReservoirUsingCircuitFieldNumber
Field number for the "expand_reservoir_using_circuit" field.
void ClearUsePbResolution()
Clears the value of the "use_pb_resolution" field.
bool HasMinimizeSharedClauses
Gets whether the "minimize_shared_clauses" field is set.
bool HasDefaultRestartAlgorithms
Gets whether the "default_restart_algorithms" field is set.
void ClearUseOptimizationHints()
Clears the value of the "use_optimization_hints" field.
bool HasMaximumRegionsToSplitInDisconnectedNoOverlap2D
Gets whether the "maximum_regions_to_split_in_disconnected_no_overlap_2d" field is set.
bool DisableConstraintExpansion
If true, it disable all constraint expansion. This should only be used to test the presolve of expand...
int MaximumRegionsToSplitInDisconnectedNoOverlap2D
Detects when the space where items of a no_overlap_2d constraint can placed is disjoint (ie....
double ShavingDeterministicTimeInProbingSearch
Add a shaving phase (where the solver tries to prove that the lower or upper bound of a variable are ...
const int ClauseCleanupPeriodFieldNumber
Field number for the "clause_cleanup_period" field.
bool HasNumViolationLs
Gets whether the "num_violation_ls" field is set.
bool HasMaxSatReverseAssumptionOrder
Gets whether the "max_sat_reverse_assumption_order" field is set.
bool HasLoadAtMostOnesInSatPresolve
Gets whether the "load_at_most_ones_in_sat_presolve" field is set.
bool HasAddZeroHalfCuts
Gets whether the "add_zero_half_cuts" field is set.
bool HasCreate1UipBooleanDuringIcr
Gets whether the "create_1uip_boolean_during_icr" field is set.
void ClearMipMaxBound()
Clears the value of the "mip_max_bound" field.
int TableCompressionLevel
How much we try to "compress" a table constraint. Compressing more leads to less Booleans and faster ...
double ShareGlueClausesDtime
The amount of dtime between each export of shared glue clauses.
bool FindBigLinearOverlap
Try to find large "rectangle" in the linear constraint matrix with identical lines....
bool HasUseObjectiveLbSearch
Gets whether the "use_objective_lb_search" field is set.
void ClearUseObjectiveShavingSearch()
Clears the value of the "use_objective_shaving_search" field.
bool HasUseLbRelaxLns
Gets whether the "use_lb_relax_lns" field is set.
const int MaxSatReverseAssumptionOrderFieldNumber
Field number for the "max_sat_reverse_assumption_order" field.
bool HasUseOptionalVariables
Gets whether the "use_optional_variables" field is set.
bool SharedTreeWorkerEnableTrailSharing
If true, workers share more of the information from their local trail. Specifically,...
bool HasMaxPairsPairwiseReasoningInNoOverlap2D
Gets whether the "max_pairs_pairwise_reasoning_in_no_overlap_2d" field is set.
bool MaxSatReverseAssumptionOrder
If true, adds the assumption in the reverse order of the one defined by max_sat_assumption_order.
bool UseFeasibilityPump
Adds a feasibility pump subsolver along with lns subsolvers.
void ClearNoOverlap2DBooleanRelationsLimit()
Clears the value of the "no_overlap_2d_boolean_relations_limit" field.
void ClearPermuteVariableRandomly()
Clears the value of the "permute_variable_randomly" field.
bool HasUseOptimizationHints
Gets whether the "use_optimization_hints" field is set.
void ClearClauseActivityDecay()
Clears the value of the "clause_activity_decay" field.
int BooleanEncodingLevel
A non-negative level indicating how much we should try to fully encode Integer variables as Boolean.
const int AlsoBumpVariablesInConflictReasonsFieldNumber
Field number for the "also_bump_variables_in_conflict_reasons" field.
bool HasNumWorkers
Gets whether the "num_workers" field is set.
bool CountAssumptionLevelsInLbd
Whether or not the assumption levels are taken into account during the LBD computation....
void ClearDiversifyLnsParams()
Clears the value of the "diversify_lns_params" field.
void ClearNumSearchWorkers()
Clears the value of the "num_search_workers" field.
bool HasRemoveFixedVariablesEarly
Gets whether the "remove_fixed_variables_early" field is set.
int ClauseCleanupTarget
During a cleanup, we will always keep that number of "deletable" clauses.
int MaxBackjumpLevels
If chronological backtracking is enabled, this is the maximum number of levels we will backjump over,...
bool PolishLpSolution
Whether we try to do a few degenerate iteration at the end of an LP solve to minimize the fractionali...
bool HasUsePbResolution
Gets whether the "use_pb_resolution" field is set.
long SearchRandomVariablePoolSize
Search randomization will collect the top 'search_random_variable_pool_size' valued variables,...
void ClearSharedTreeSplitMinDtime()
Clears the value of the "shared_tree_split_min_dtime" field.
void ClearFindMultipleCores()
Clears the value of the "find_multiple_cores" field.
void ClearOptimizeWithLbTreeSearch()
Clears the value of the "optimize_with_lb_tree_search" field.
bool MipTreatHighMagnitudeBoundsAsInfinity
By default, any variable/constraint bound with a finite value and a magnitude greater than the mip_ma...
bool HasUseObjectiveShavingSearch
Gets whether the "use_objective_shaving_search" field is set.
int ViolationLsPerturbationPeriod
How long violation_ls should wait before perturbating a solution.
bool FillTightenedDomainsInResponse
If true, add information about the derived variable domains to the CpSolverResponse....
bool HasLpDualTolerance
Gets whether the "lp_dual_tolerance" field is set.
bool DecisionSubsumptionDuringConflictAnalysis
Try even more subsumption options during conflict analysis.
bool UseStrongPropagationInDisjunctive
Enable stronger and more expensive propagation on no_overlap constraint.
int MipPresolveLevel
When solving a MIP, we do some basic floating point presolving before scaling the problem to integer ...
double RandomPolarityRatio
The proportion of polarity chosen at random. Note that this take precedence over the phase saving heu...
int RandomSeed
At the beginning of each solve, the random number generator used in some part of the solver is reinit...
double MipMaxBound
We need to bound the maximum magnitude of the variables for CP-SAT, and that is the bound we use....
bool HasNewConstraintsBatchSize
Gets whether the "new_constraints_batch_size" field is set.
bool HasUseExtendedProbing
Gets whether the "use_extended_probing" field is set.
bool HasChronologicalBacktrackMinConflicts
Gets whether the "chronological_backtrack_min_conflicts" field is set.
bool AddRltCuts
Whether we generate RLT cuts. This is still experimental but can help on binary problem with a lot of...
const int UseDynamicPrecedenceInCumulativeFieldNumber
Field number for the "use_dynamic_precedence_in_cumulative" field.
bool HasCheckMergedLratProof
Gets whether the "check_merged_lrat_proof" field is set.
global::Google.OrTools.Sat.SatParameters.Types.VariableOrder PreferredVariableOrder
void ClearOnlySolveIp()
Clears the value of the "only_solve_ip" field.
void ClearClauseCleanupLbdBound()
Clears the value of the "clause_cleanup_lbd_bound" field.
const int MaxSatAssumptionOrderFieldNumber
Field number for the "max_sat_assumption_order" field.
bool HasEnumerateAllSolutions
Gets whether the "enumerate_all_solutions" field is set.
bool CpModelUseSatPresolve
Whether we also use the sat presolve when cp_model_presolve is true.
bool HasExpandReservoirUsingCircuit
Gets whether the "expand_reservoir_using_circuit" field is set.
bool AutoDetectGreaterThanAtLeastOneOf
If true, then the precedences propagator try to detect for each variable if it has a set of "optional...
bool LogSearchProgress
Whether the solver should log the search progress. This is the maing logging parameter and if this is...
bool HasSharedTreeBalanceTolerance
Gets whether the "shared_tree_balance_tolerance" field is set.
bool HasUseExactLpReason
Gets whether the "use_exact_lp_reason" field is set.
bool HasIgnoreNames
Gets whether the "ignore_names" field is set.
bool HasInprocessingUseCongruenceClosure
Gets whether the "inprocessing_use_congruence_closure" field is set.
bool HasMipWantedPrecision
Gets whether the "mip_wanted_precision" field is set.
const int UseErwaHeuristicFieldNumber
Field number for the "use_erwa_heuristic" field.
const int UseRinsLnsFieldNumber
Field number for the "use_rins_lns" field.
const int UseHardPrecedencesInCumulativeFieldNumber
Field number for the "use_hard_precedences_in_cumulative" field.
bool HasMipComputeTrueObjectiveBound
Gets whether the "mip_compute_true_objective_bound" field is set.
bool UseEnergeticReasoningInNoOverlap2D
When this is true, the no_overlap_2d constraint is reinforced with energetic reasoning....
bool HasDebugCrashOnBadHint
Gets whether the "debug_crash_on_bad_hint" field is set.
void ClearBinarySearchNumConflicts()
Clears the value of the "binary_search_num_conflicts" field.
const int MaxDomainSizeForLinear2ExpansionFieldNumber
Field number for the "max_domain_size_for_linear2_expansion" field.
bool PresolveExtractIntegerEnforcement
If true, we will extract from linear constraints, enforcement literals of the form "integer variable ...
global::Google.OrTools.Sat.SatParameters.Types.MaxSatStratificationAlgorithm MaxSatStratification
bool HasDebugMaxNumPresolveOperations
Gets whether the "debug_max_num_presolve_operations" field is set.
void ClearUseFeasibilityPump()
Clears the value of the "use_feasibility_pump" field.
const int InitialVariablesActivityFieldNumber
Field number for the "initial_variables_activity" field.
void ClearPbCleanupRatio()
Clears the value of the "pb_cleanup_ratio" field.
void ClearMaxVariableActivityValue()
Clears the value of the "max_variable_activity_value" field.
bool HasFindMultipleCores
Gets whether the "find_multiple_cores" field is set.
bool DetectTableWithCost
If true, we detect variable that are unique to a table constraint and only there to encode a cost on ...
bool PresolveUseBva
Whether or not we use Bounded Variable Addition (BVA) in the presolve.
bool HasMipVarScaling
Gets whether the "mip_var_scaling" field is set.
int CutCleanupTarget
Target number of constraints to remove during cleanup.
const int StopAfterFirstSolutionFieldNumber
Field number for the "stop_after_first_solution" field.
const int FindMultipleCoresFieldNumber
Field number for the "find_multiple_cores" field.
bool HasDebugPostsolveWithFullSolver
Gets whether the "debug_postsolve_with_full_solver" field is set.
void ClearLogPrefix()
Clears the value of the "log_prefix" field.
void ClearGlucoseDecayIncrementPeriod()
Clears the value of the "glucose_decay_increment_period" field.
const int MaxSatStratificationFieldNumber
Field number for the "max_sat_stratification" field.
bool HasPermutePresolveConstraintOrder
Gets whether the "permute_presolve_constraint_order" field is set.
void ClearName()
Clears the value of the "name" field.
bool HasShareLinear2Bounds
Gets whether the "share_linear2_bounds" field is set.
bool CoverOptimization
If true, when the max-sat algo find a core, we compute the minimal number of literals in the core tha...
const int LinearizationLevelFieldNumber
Field number for the "linearization_level" field.
void ClearMipMaxValidMagnitude()
Clears the value of the "mip_max_valid_magnitude" field.
void ClearMaxSizeToCreatePrecedenceLiteralsInDisjunctive()
Clears the value of the "max_size_to_create_precedence_literals_in_disjunctive" field.
double SymmetryDetectionDeterministicTimeLimit
Deterministic time limit for symmetry detection.
bool HasCutMaxActiveCountValue
Gets whether the "cut_max_active_count_value" field is set.
void ClearMaxPairsPairwiseReasoningInNoOverlap2D()
Clears the value of the "max_pairs_pairwise_reasoning_in_no_overlap_2d" field.
const int PropagationLoopDetectionFactorFieldNumber
Field number for the "propagation_loop_detection_factor" field.
bool HasCutCleanupTarget
Gets whether the "cut_cleanup_target" field is set.
const int CutLevelFieldNumber
Field number for the "cut_level" field.
void ClearMaxDratTimeInSeconds()
Clears the value of the "max_drat_time_in_seconds" field.
bool HasStopAfterPresolve
Gets whether the "stop_after_presolve" field is set.
void ClearRoutingCutSubsetSizeForExactBinaryRelationBound()
Clears the value of the "routing_cut_subset_size_for_exact_binary_relation_bound" field.
bool UseFeasibilityJump
Parameters for an heuristic similar to the one described in the paper: "Feasibility Jump: an LP-free ...
double ShavingSearchDeterministicTime
Specifies the amount of deterministic time spent of each try at shaving a bound in the shaving search...
int RoutingCutMaxInfeasiblePathLength
If the length of an infeasible path is less than this value, a cut will be added to exclude it.
bool InprocessingUseCongruenceClosure
Whether we use the algorithm described in "Clausal Congruence closure", Armin Biere,...
void ClearInprocessingProbingDtime()
Clears the value of the "inprocessing_probing_dtime" field.
void ClearFeasibilityJumpEnableRestarts()
Clears the value of the "feasibility_jump_enable_restarts" field.
bool HasLogPrefix
Gets whether the "log_prefix" field is set.
int AtMostOneMaxExpansionSize
All at_most_one constraints with a size <= param will be replaced by a quadratic number of binary imp...
int MaxIntegerRoundingScaling
In the integer rounding procedure used for MIR and Gomory cut, the maximum "scaling" we use (must be ...
bool MinimizeSharedClauses
Minimize and detect subsumption of shared clauses immediately after they are imported.
bool HasPresolveBveThreshold
Gets whether the "presolve_bve_threshold" field is set.
const int SubsumeDuringVivificationFieldNumber
Field number for the "subsume_during_vivification" field.
bool UsePhaseSaving
If this is true, then the polarity of a variable will be the last value it was assigned to,...
bool SharedTreeWorkerEnablePhaseSharing
If true, shared tree workers share their target phase when returning an assigned subtree for the next...
bool HasAddCliqueCuts
Gets whether the "add_clique_cuts" field is set.
const int PolarityRephaseIncrementFieldNumber
Field number for the "polarity_rephase_increment" field.
void ClearPbCleanupIncrement()
Clears the value of the "pb_cleanup_increment" field.
bool UseLsOnly
Disable every other type of subsolver, setting this turns CP-SAT into a pure local-search solver.
bool ExpandReservoirUsingCircuit
Mainly useful for testing.
bool HasMinimizeReductionDuringPbResolution
Gets whether the "minimize_reduction_during_pb_resolution" field is set.
bool HasPropagationLoopDetectionFactor
Gets whether the "propagation_loop_detection_factor" field is set.
int RoutingCutSubsetSizeForShortestPathsBound
Similar to routing_cut_subset_size_for_exact_binary_relation_bound but use a bound based on shortest ...
bool KeepSymmetryInPresolve
Experimental. This will compute the symmetry of the problem once and for all. All presolve operations...
bool PushAllTasksTowardStart
Experimental code: specify if the objective pushes all tasks toward the start of the schedule.
bool HasViolationLsCompoundMoveProbability
Gets whether the "violation_ls_compound_move_probability" field is set.
double InprocessingDtimeRatio
Proportion of deterministic time we should spend on inprocessing. At each "restart",...
const int ClauseCleanupOrderingFieldNumber
Field number for the "clause_cleanup_ordering" field.
void ClearLogSubsolverStatistics()
Clears the value of the "log_subsolver_statistics" field.
pbc::RepeatedField< string > IgnoreSubsolvers
Rather than fully specifying subsolvers, it is often convenient to just remove the ones that are not ...
bool HasLogToResponse
Gets whether the "log_to_response" field is set.
const int CoreMinimizationLevelFieldNumber
Field number for the "core_minimization_level" field.
const int NameFieldNumber
Field number for the "name" field.
bool HasNoOverlap2DBooleanRelationsLimit
Gets whether the "no_overlap_2d_boolean_relations_limit" field is set.
void ClearTransitivePrecedencesWorkLimit()
Clears the value of the "transitive_precedences_work_limit" field.
const int ClauseCleanupLbdBoundFieldNumber
Field number for the "clause_cleanup_lbd_bound" field.
void ClearUseDisjunctiveConstraintInCumulative()
Clears the value of the "use_disjunctive_constraint_in_cumulative" field.
bool HasPresolveBvaThreshold
Gets whether the "presolve_bva_threshold" field is set.
bool OnlySolveIp
If one try to solve a MIP model with CP-SAT, because we assume all variable to be integer after scali...
const int ClauseCleanupLbdTier2FieldNumber
Field number for the "clause_cleanup_lbd_tier2" field.
void ClearUseOverloadCheckerInCumulative()
Clears the value of the "use_overload_checker_in_cumulative" field.
pbc::RepeatedField< string > Subsolvers
In multi-thread, the solver can be mainly seen as a portfolio of solvers with different parameters....
void ClearInprocessingUseSatSweeping()
Clears the value of the "inprocessing_use_sat_sweeping" field.
void ClearClauseCleanupPeriod()
Clears the value of the "clause_cleanup_period" field.
int MaxDomainSizeWhenEncodingEqNeqConstraints
When loading a*x + b*y ==/!= c when x and y are both fully encoded. The solver may decide to replace ...
bool HasMaxSatStratification
Gets whether the "max_sat_stratification" field is set.
bool HasOutputLratProof
Gets whether the "output_lrat_proof" field is set.
const int OutputDratProofFieldNumber
Field number for the "output_drat_proof" field.
bool HasMaxLinMaxSizeForExpansion
Gets whether the "max_lin_max_size_for_expansion" field is set.
bool HasSymmetryDetectionDeterministicTimeLimit
Gets whether the "symmetry_detection_deterministic_time_limit" field is set.
void ClearUseEnergeticReasoningInNoOverlap2D()
Clears the value of the "use_energetic_reasoning_in_no_overlap_2d" field.
int MaxLinMaxSizeForExpansion
If the number of expressions in the lin_max is less that the max size parameter, model expansion repl...
const int PolarityExploitLsHintsFieldNumber
Field number for the "polarity_exploit_ls_hints" field.
int BinarySearchNumConflicts
If non-negative, perform a binary search on the objective variable in order to find an [min,...
bool HasAddCgCuts
Gets whether the "add_cg_cuts" field is set.
bool ExpandReservoirConstraints
If true, expand the reservoir constraints by creating booleans for all possible precedences between e...
void ClearDebugCrashIfLratCheckFails()
Clears the value of the "debug_crash_if_lrat_check_fails" field.
bool HasRoutingCutSubsetSizeForShortestPathsBound
Gets whether the "routing_cut_subset_size_for_shortest_paths_bound" field is set.
bool SubsumptionDuringConflictAnalysis
At a really low cost, during the 1-UIP conflict computation, it is easy to detect if some of the invo...
int PresolveBveThreshold
During presolve, only try to perform the bounded variable elimination (BVE) of a variable x if the nu...
const int ClauseCleanupLbdTier1FieldNumber
Field number for the "clause_cleanup_lbd_tier1" field.
const int SubsolverParamsFieldNumber
Field number for the "subsolver_params" field.
double VariableActivityDecay
Each time a conflict is found, the activities of some variables are increased by one....
void ClearCoverOptimization()
Clears the value of the "cover_optimization" field.
bool HasUseTimetablingInNoOverlap2D
Gets whether the "use_timetabling_in_no_overlap_2d" field is set.
bool CheckLratProof
If true, inferred clauses are checked with an LRAT checker as they are learned, in presolve (reduced ...
bool DebugCrashIfLratCheckFails
Crash if the LRAT UNSAT proof is invalid.
const int AlternativePoolSizeFieldNumber
Field number for the "alternative_pool_size" field.
int HintConflictLimit
Conflict limit used in the phase that exploit the solution hint.
void ClearUseLnsOnly()
Clears the value of the "use_lns_only" field.
bool HasMipPresolveLevel
Gets whether the "mip_presolve_level" field is set.
void ClearUseAbslRandom()
Clears the value of the "use_absl_random" field.
bool HasRoutingCutSubsetSizeForExactBinaryRelationBound
Gets whether the "routing_cut_subset_size_for_exact_binary_relation_bound" field is set.
void ClearUseTimetablingInNoOverlap2D()
Clears the value of the "use_timetabling_in_no_overlap_2d" field.
bool HasMaxDeterministicTime
Gets whether the "max_deterministic_time" field is set.
bool HasSearchBranching
Gets whether the "search_branching" field is set.
void ClearDecisionSubsumptionDuringConflictAnalysis()
Clears the value of the "decision_subsumption_during_conflict_analysis" field.
void ClearPermutePresolveConstraintOrder()
Clears the value of the "permute_presolve_constraint_order" field.
int MaxCutRoundsAtLevelZero
Max number of time we perform cut generation and resolve the LP at level 0.
bool AddCliqueCuts
Whether we generate clique cuts from the binary implication graph. Note that as the search goes on,...
void ClearShareGlueClausesDtime()
Clears the value of the "share_glue_clauses_dtime" field.
const int ClauseCleanupPeriodIncrementFieldNumber
Field number for the "clause_cleanup_period_increment" field.
int MaxNumDeterministicBatches
Stops after that number of batches has been scheduled. This only make sense when interleave_search is...
const int AtMostOneMaxExpansionSizeFieldNumber
Field number for the "at_most_one_max_expansion_size" field.
bool HasUseAllDifferentForCircuit
Gets whether the "use_all_different_for_circuit" field is set.
const int UseTimetablingInNoOverlap2DFieldNumber
Field number for the "use_timetabling_in_no_overlap_2d" field.
bool MipAutomaticallyScaleVariables
If true, some continuous variable might be automatically scaled. For now, this is only the case where...
bool StopAfterFirstSolution
For an optimization problem, stop the solver as soon as we have a solution.
int MipMaxActivityExponent
To avoid integer overflow, we always force the maximum possible constraint activity (and objective va...
bool HasSharedTreeSplitMinDtime
Gets whether the "shared_tree_split_min_dtime" field is set.
bool HasExploitIntegerLpSolution
Gets whether the "exploit_integer_lp_solution" field is set.
void ClearMinimizeReductionDuringPbResolution()
Clears the value of the "minimize_reduction_during_pb_resolution" field.
void ClearLnsInitialDifficulty()
Clears the value of the "lns_initial_difficulty" field.
const int InstantiateAllVariablesFieldNumber
Field number for the "instantiate_all_variables" field.
bool HasPresolveUseBva
Gets whether the "presolve_use_bva" field is set.
bool UseImpliedBounds
Stores and exploits "implied-bounds" in the solver. That is, relations of the form literal => (var >=...
bool HasRestartDlAverageRatio
Gets whether the "restart_dl_average_ratio" field is set.
double InprocessingProbingDtime
The amount of dtime we should spend on probing for each inprocessing round.
void ClearMipTreatHighMagnitudeBoundsAsInfinity()
Clears the value of the "mip_treat_high_magnitude_bounds_as_infinity" field.
bool HasCoreMinimizationLevel
Gets whether the "core_minimization_level" field is set.
int RootLpIterations
Even at the root node, we do not want to spend too much time on the LP if it is "difficult"....
bool HasInprocessingMinimizationUseAllOrderings
Gets whether the "inprocessing_minimization_use_all_orderings" field is set.
bool HasShavingSearchDeterministicTime
Gets whether the "shaving_search_deterministic_time" field is set.
bool HasMipScaleLargeDomain
Gets whether the "mip_scale_large_domain" field is set.
bool HasUseCombinedNoOverlap
Gets whether the "use_combined_no_overlap" field is set.
const int RandomPolarityRatioFieldNumber
Field number for the "random_polarity_ratio" field.
bool HasMergeNoOverlapWorkLimit
Gets whether the "merge_no_overlap_work_limit" field is set.
bool ConvertIntervals
Temporary flag util the feature is more mature. This convert intervals to the newer proto format that...
bool HasMaxNumIntervalsForTimetableEdgeFinding
Gets whether the "max_num_intervals_for_timetable_edge_finding" field is set.
void ClearClauseCleanupLbdTier1()
Clears the value of the "clause_cleanup_lbd_tier1" field.
bool HasShareObjectiveBounds
Gets whether the "share_objective_bounds" field is set.
const int ClauseCleanupRatioFieldNumber
Field number for the "clause_cleanup_ratio" field.
void ClearDebugCrashOnBadHint()
Clears the value of the "debug_crash_on_bad_hint" field.
const int ShareGlueClausesDtimeFieldNumber
Field number for the "share_glue_clauses_dtime" field.
bool HasKeepSymmetryInPresolve
Gets whether the "keep_symmetry_in_presolve" field is set.
bool HasExploitAllPrecedences
Gets whether the "exploit_all_precedences" field is set.
bool HasFeasibilityJumpMaxExpandedConstraintSize
Gets whether the "feasibility_jump_max_expanded_constraint_size" field is set.
global::Google.OrTools.Sat.SatParameters.Types.MaxSatAssumptionOrder MaxSatAssumptionOrder
bool HasUseFeasibilityPump
Gets whether the "use_feasibility_pump" field is set.
void ClearShavingSearchDeterministicTime()
Clears the value of the "shaving_search_deterministic_time" field.
const int VariableActivityDecayFieldNumber
Field number for the "variable_activity_decay" field.
double MipWantedPrecision
When scaling constraint with double coefficients to integer coefficients, we will multiply by a power...
int NoOverlap2DBooleanRelationsLimit
If less than this number of boxes are present in a no-overlap 2d, we create 4 Booleans per pair of bo...
void ClearRoutingCutMaxInfeasiblePathLength()
Clears the value of the "routing_cut_max_infeasible_path_length" field.
bool CpModelPresolve
Whether we presolve the cp_model before solving it.
const int InprocessingMinimizationUseAllOrderingsFieldNumber
Field number for the "inprocessing_minimization_use_all_orderings" field.
bool HasSharedTreeMaxNodesPerWorker
Gets whether the "shared_tree_max_nodes_per_worker" field is set.
int MaxPresolveIterations
In case of large reduction in a presolve iteration, we perform multiple presolve iterations....
int SolutionPoolSize
Size of the top-n different solutions kept by the solver. This parameter must be > 0....
int TransitivePrecedencesWorkLimit
At root level, we might compute the transitive closure of "precedences" relations so that we can expl...
void ClearMaxBackjumpLevels()
Clears the value of the "max_backjump_levels" field.
const int StopAfterRootPropagationFieldNumber
Field number for the "stop_after_root_propagation" field.
int NumConflictsBeforeStrategyChanges
After each restart, if the number of conflict since the last strategy change is greater that this,...
bool HasInferAllDiffs
Gets whether the "infer_all_diffs" field is set.
bool EncodeComplexLinearConstraintWithInteger
Linear constraint with a complex right hand side (more than a single interval) need to be expanded,...
const int RandomBranchesRatioFieldNumber
Field number for the "random_branches_ratio" field.
const int MinimizationAlgorithmFieldNumber
Field number for the "minimization_algorithm" field.
void ClearNewConstraintsBatchSize()
Clears the value of the "new_constraints_batch_size" field.
void ClearShareGlueClauses()
Clears the value of the "share_glue_clauses" field.
bool HasMipAutomaticallyScaleVariables
Gets whether the "mip_automatically_scale_variables" field is set.
const int MaxLinMaxSizeForExpansionFieldNumber
Field number for the "max_lin_max_size_for_expansion" field.
void ClearExtraSubsumptionDuringConflictAnalysis()
Clears the value of the "extra_subsumption_during_conflict_analysis" field.
void ClearPolarityExploitLsHints()
Clears the value of the "polarity_exploit_ls_hints" field.
bool HasMaxPresolveIterations
Gets whether the "max_presolve_iterations" field is set.
void ClearLogToResponse()
Clears the value of the "log_to_response" field.
pbc::RepeatedField< global::Google.OrTools.Sat.SatParameters.Types.RestartAlgorithm > RestartAlgorithms
The restart strategies will change each time the strategy_counter is increased. The current strategy ...
bool FindMultipleCores
Whether we try to find more independent cores for a given set of assumptions in the core based max-SA...
const int MaxBackjumpLevelsFieldNumber
Field number for the "max_backjump_levels" field.
void ClearShareLevelZeroBounds()
Clears the value of the "share_level_zero_bounds" field.
bool HasStopAfterFirstSolution
Gets whether the "stop_after_first_solution" field is set.
bool HasMaxNumberOfConflicts
Gets whether the "max_number_of_conflicts" field is set.
const int UseStrongPropagationInDisjunctiveFieldNumber
Field number for the "use_strong_propagation_in_disjunctive" field.
bool MipScaleLargeDomain
If this is false, then mip_var_scaling is only applied to variables with "small" domain....
bool HasRepairHint
Gets whether the "repair_hint" field is set.
bool PolarityExploitLsHints
If true and we have first solution LS workers, tries in some phase to follow a LS solutions that viol...
const int MipMaxActivityExponentFieldNumber
Field number for the "mip_max_activity_exponent" field.
bool OnlyAddCutsAtLevelZero
For the cut that can be generated at any level, this control if we only try to generate them at the r...
bool HasMaxSatAssumptionOrder
Gets whether the "max_sat_assumption_order" field is set.
bool OptimizeWithCore
The default optimization method is a simple "linear scan", each time trying to find a better solution...
void ClearUseSatInprocessing()
Clears the value of the "use_sat_inprocessing" field.
bool HasAddMirCuts
Gets whether the "add_mir_cuts" field is set.
void ClearCheckDratProof()
Clears the value of the "check_drat_proof" field.
void ClearSubsumeDuringVivification()
Clears the value of the "subsume_during_vivification" field.
bool HasMaxNumDeterministicBatches
Gets whether the "max_num_deterministic_batches" field is set.
bool HasShavingDeterministicTimeInProbingSearch
Gets whether the "shaving_deterministic_time_in_probing_search" field is set.
void ClearVariablesShavingLevel()
Clears the value of the "variables_shaving_level" field.
int SharedTreeNumWorkers
Enables shared tree search. If positive, start this many complete worker threads to explore a shared ...
bool HasMaxCutRoundsAtLevelZero
Gets whether the "max_cut_rounds_at_level_zero" field is set.
void ClearOutputDratProof()
Clears the value of the "output_drat_proof" field.
pbc::RepeatedField< string > FilterSubsolvers
void ClearUseObjectiveLbSearch()
Clears the value of the "use_objective_lb_search" field.
void ClearAddMirCuts()
Clears the value of the "add_mir_cuts" field.
bool HasMaxTimeInSeconds
Gets whether the "max_time_in_seconds" field is set.
void ClearInprocessingUseCongruenceClosure()
Clears the value of the "inprocessing_use_congruence_closure" field.
void ClearClauseCleanupOrdering()
Clears the value of the "clause_cleanup_ordering" field.
bool HasMaxNumCuts
Gets whether the "max_num_cuts" field is set.
double MergeNoOverlapWorkLimit
During presolve, we use a maximum clique heuristic to merge together no-overlap constraints or at mos...
bool HasMinOrthogonalityForLpConstraints
Gets whether the "min_orthogonality_for_lp_constraints" field is set.
void ClearMaxClauseActivityValue()
Clears the value of the "max_clause_activity_value" field.
bool HasOutputDratProof
Gets whether the "output_drat_proof" field is set.
void ClearInprocessingMinimizationUseAllOrderings()
Clears the value of the "inprocessing_minimization_use_all_orderings" field.
bool HasViolationLsPerturbationPeriod
Gets whether the "violation_ls_perturbation_period" field is set.
static pbr::MessageDescriptor Descriptor
bool HasOptimizeWithMaxHs
Gets whether the "optimize_with_max_hs" field is set.
bool HasInprocessingProbingDtime
Gets whether the "inprocessing_probing_dtime" field is set.
bool HasUseEnergeticReasoningInNoOverlap2D
Gets whether the "use_energetic_reasoning_in_no_overlap_2d" field is set.
bool EnumerateAllSolutions
Whether we enumerate all solutions of a problem without objective.
void ClearAddZeroHalfCuts()
Clears the value of the "add_zero_half_cuts" field.
bool LogToResponse
Log to response proto.
double MinOrthogonalityForLpConstraints
While adding constraints, skip the constraints which have orthogonality less than 'min_orthogonality_...
bool OptimizeWithLbTreeSearch
Do a more conventional tree search (by opposition to SAT based one) where we keep all the explored no...
void ClearCoreMinimizationLevel()
Clears the value of the "core_minimization_level" field.
void ClearInprocessingMinimizationUseConflictAnalysis()
Clears the value of the "inprocessing_minimization_use_conflict_analysis" field.
bool HasUseAreaEnergeticReasoningInNoOverlap2D
Gets whether the "use_area_energetic_reasoning_in_no_overlap_2d" field is set.
long MaxNumberOfConflicts
Maximum number of conflicts allowed to solve a problem.
int ChronologicalBacktrackMinConflicts
If chronological backtracking is enabled, this is the minimum number of conflicts before we will cons...
int ProbingNumCombinationsLimit
How many combinations of pairs or triplets of variables we want to scan.
const int MaxNumCutsFieldNumber
Field number for the "max_num_cuts" field.
bool AlsoBumpVariablesInConflictReasons
When this is true, then the variables that appear in any of the reason of the variables in a conflict...
void ClearPresolveBveClauseWeight()
Clears the value of the "presolve_bve_clause_weight" field.
bool HasUseOverloadCheckerInCumulative
Gets whether the "use_overload_checker_in_cumulative" field is set.
bool HasEncodeComplexLinearConstraintWithInteger
Gets whether the "encode_complex_linear_constraint_with_integer" field is set.
bool AddCgCuts
Whether we generate and add Chvatal-Gomory cuts to the LP at root node.
int FeasibilityJumpLinearizationLevel
How much do we linearize the problem in the local search code.
const int InprocessingUseCongruenceClosureFieldNumber
Field number for the "inprocessing_use_congruence_closure" field.
int RestartPeriod
Restart period for the FIXED_RESTART strategy. This is also the multiplier used by the LUBY_RESTART s...
int MaxNumIntervalsForTimetableEdgeFinding
Max number of intervals for the timetable_edge_finding algorithm to propagate. A value of 0 disables ...
void ClearNumViolationLs()
Clears the value of the "num_violation_ls" field.
bool DebugCrashOnBadHint
Crash if we do not manage to complete the hint into a full solution.
bool RandomizeSearch
Randomize fixed search.
bool HasLnsInitialDifficulty
Gets whether the "lns_initial_difficulty" field is set.
long MaxMemoryInMb
Maximum memory allowed for the whole thread containing the solver. The solver will abort as soon as i...
const int BinaryMinimizationAlgorithmFieldNumber
Field number for the "binary_minimization_algorithm" field.
bool IgnoreNames
If true, we don't keep names in our internal copy of the user given model.
bool HasUseFeasibilityJump
Gets whether the "use_feasibility_jump" field is set.
const int OnlySolveIpFieldNumber
Field number for the "only_solve_ip" field.
double FeasibilityJumpVarPerburbationRangeRatio
Max distance between the default value and the pertubated value relative to the range of the domain o...
const int EncodeCumulativeAsReservoirFieldNumber
Field number for the "encode_cumulative_as_reservoir" field.
bool HasExpandAlldiffConstraints
Gets whether the "expand_alldiff_constraints" field is set.
bool HasFeasibilityJumpVarRandomizationProbability
Gets whether the "feasibility_jump_var_randomization_probability" field is set.
int FeasibilityJumpMaxExpandedConstraintSize
Maximum size of no_overlap or no_overlap_2d constraint for a quadratic expansion. This might look a l...
bool HasMipMaxValidMagnitude
Gets whether the "mip_max_valid_magnitude" field is set.
void ClearRandomBranchesRatio()
Clears the value of the "random_branches_ratio" field.
bool OutputDratProof
If true, a DRAT proof that all the clauses inferred by the solver are valid is output to a file....
bool HasCheckLratProof
Gets whether the "check_lrat_proof" field is set.
bool UseChronologicalBacktracking
If true, try to backtrack as little as possible on conflict and re-imply the clauses later....
bool UseErwaHeuristic
Whether we use the ERWA (Exponential Recency Weighted Average) heuristic as described in "Learning Ra...
bool HasBlockingRestartWindowSize
Gets whether the "blocking_restart_window_size" field is set.
bool HasRoutingCutSubsetSizeForTightBinaryRelationBound
Gets whether the "routing_cut_subset_size_for_tight_binary_relation_bound" field is set.
bool HasLogToStdout
Gets whether the "log_to_stdout" field is set.
int RestartRunningWindowSize
Size of the window for the moving average restarts.
bool CheckDratProof
If true, and if the problem is UNSAT, a DRAT proof of this UNSAT property is checked after the solver...
const int CheckMergedLratProofFieldNumber
Field number for the "check_merged_lrat_proof" field.
int EagerlySubsumeLastNConflicts
If >=0, each time we have a conflict, we try to subsume the last n learned clause with it.
int PbCleanupIncrement
Same as for the clauses, but for the learned pseudo-Boolean constraints.
int RoutingCutSubsetSizeForTightBinaryRelationBound
Similar to above, but with a different algorithm producing better cuts, at the price of a higher O(2^...
int ClauseCleanupLbdTier2
All the clause with a LBD lower or equal to this will be kept except if its activity hasn't been bump...
bool HasSearchRandomVariablePoolSize
Gets whether the "search_random_variable_pool_size" field is set.
int NumViolationLs
This will create incomplete subsolvers (that are not LNS subsolvers) that use the feasibility jump co...
double MaxTimeInSeconds
Maximum time allowed in seconds to solve a problem. The counter will starts at the beginning of the S...
bool UseTimetablingInNoOverlap2D
When this is true, the no_overlap_2d constraint is reinforced with propagators from the cumulative co...
bool HasNumSearchWorkers
Gets whether the "num_search_workers" field is set.
bool HasFeasibilityJumpRestartFactor
Gets whether the "feasibility_jump_restart_factor" field is set.
bool NewLinearPropagation
The new linear propagation code treat all constraints at once and use an adaptation of Bellman-Ford-T...
const int HintConflictLimitFieldNumber
Field number for the "hint_conflict_limit" field.
void ClearMergeAtMostOneWorkLimit()
Clears the value of the "merge_at_most_one_work_limit" field.
bool HasUseDisjunctiveConstraintInCumulative
Gets whether the "use_disjunctive_constraint_in_cumulative" field is set.
bool HasBinarySearchNumConflicts
Gets whether the "binary_search_num_conflicts" field is set.
void ClearUseDualSchedulingHeuristics()
Clears the value of the "use_dual_scheduling_heuristics" field.
bool HasAtMostOneMaxExpansionSize
Gets whether the "at_most_one_max_expansion_size" field is set.
bool HasAddObjectiveCut
Gets whether the "add_objective_cut" field is set.
bool HasUseLsOnly
Gets whether the "use_ls_only" field is set.
bool UseRinsLns
Turns on relaxation induced neighborhood generator.
bool HasBlockingRestartMultiplier
Gets whether the "blocking_restart_multiplier" field is set.
bool HasLnsInitialDeterministicLimit
Gets whether the "lns_initial_deterministic_limit" field is set.
bool HasSharedTreeWorkerMinRestartsPerSubtree
Gets whether the "shared_tree_worker_min_restarts_per_subtree" field is set.
bool HasDetectLinearizedProduct
Gets whether the "detect_linearized_product" field is set.
const int LinearSplitSizeFieldNumber
Field number for the "linear_split_size" field.
void ClearExploitAllPrecedences()
Clears the value of the "exploit_all_precedences" field.
void ClearRandomPolarityRatio()
Clears the value of the "random_polarity_ratio" field.
override bool Equals(object other)
bool HasNumFullSubsolvers
Gets whether the "num_full_subsolvers" field is set.
bool UseNewIntegerConflictResolution
This should be better on integer problems. But it is still work in progress.
double ProbingDeterministicTimeLimit
The maximum "deterministic" time limit to spend in probing. A value of zero will disable the probing.
const int CheckDratProofFieldNumber
Field number for the "check_drat_proof" field.
bool HasMipTreatHighMagnitudeBoundsAsInfinity
Gets whether the "mip_treat_high_magnitude_bounds_as_infinity" field is set.
bool UseDisjunctiveConstraintInCumulative
When this is true, the cumulative constraint is reinforced with propagators from the disjunctive cons...
double FeasibilityJumpBatchDtime
How much dtime for each LS batch.
bool HasMipMaxBound
Gets whether the "mip_max_bound" field is set.
void ClearClauseCleanupPeriodIncrement()
Clears the value of the "clause_cleanup_period_increment" field.
const int UseConservativeScaleOverloadCheckerFieldNumber
Field number for the "use_conservative_scale_overload_checker" field.
void ClearCutCleanupTarget()
Clears the value of the "cut_cleanup_target" field.
bool HasUseSatInprocessing
Gets whether the "use_sat_inprocessing" field is set.
const int LbRelaxNumWorkersThresholdFieldNumber
Field number for the "lb_relax_num_workers_threshold" field.
global::Google.OrTools.Sat.SatParameters.Types.Polarity InitialPolarity
const int MaxVariableActivityValueFieldNumber
Field number for the "max_variable_activity_value" field.
bool HasSolutionPoolDiversityLimit
Gets whether the "solution_pool_diversity_limit" field is set.
const int UseChronologicalBacktrackingFieldNumber
Field number for the "use_chronological_backtracking" field.
bool HasTableCompressionLevel
Gets whether the "table_compression_level" field is set.
int VariablesShavingLevel
This search takes all Boolean or integer variables, and maximize or minimize them in order to reduce ...
int MaxDomainSizeForLinear2Expansion
Max domain size for expanding linear2 constraints (ax + by ==/!= c).
void ClearUseConservativeScaleOverloadChecker()
Clears the value of the "use_conservative_scale_overload_checker" field.
bool HasExploitAllLpSolution
Gets whether the "exploit_all_lp_solution" field is set.
bool HasRoutingCutMaxInfeasiblePathLength
Gets whether the "routing_cut_max_infeasible_path_length" field is set.
int ClauseCleanupLbdTier1
All the clause with a LBD lower or equal to this will be kept except if its activity hasn't been bump...
void ClearCountAssumptionLevelsInLbd()
Clears the value of the "count_assumption_levels_in_lbd" field.
void ClearInitialVariablesActivity()
Clears the value of the "initial_variables_activity" field.
bool OptimizeWithMaxHs
This has no effect if optimize_with_core is false. If true, use a different core-based algorithm simi...
bool HasPresolveInclusionWorkLimit
Gets whether the "presolve_inclusion_work_limit" field is set.
void ClearGlucoseMaxDecay()
Clears the value of the "glucose_max_decay" field.
bool HasShavingSearchThreshold
Gets whether the "shaving_search_threshold" field is set.
const int UseOptionalVariablesFieldNumber
Field number for the "use_optional_variables" field.
void ClearInterleaveSearch()
Clears the value of the "interleave_search" field.
const int SharedTreeBalanceToleranceFieldNumber
Field number for the "shared_tree_balance_tolerance" field.
const int EagerlySubsumeLastNConflictsFieldNumber
Field number for the "eagerly_subsume_last_n_conflicts" field.
void ClearMaxConsecutiveInactiveCount()
Clears the value of the "max_consecutive_inactive_count" field.
bool HasPresolveSubstitutionLevel
Gets whether the "presolve_substitution_level" field is set.
double StrategyChangeIncreaseRatio
The parameter num_conflicts_before_strategy_changes is increased by that much after each strategy cha...
pbc::RepeatedField< global::Google.OrTools.Sat.SatParameters > SubsolverParams
It is possible to specify additional subsolver configuration. These can be referred by their params....
void ClearFpRounding()
Clears the value of the "fp_rounding" field.
bool HasSharedTreeOpenLeavesPerWorker
Gets whether the "shared_tree_open_leaves_per_worker" field is set.
static pb::MessageParser< SatParameters > Parser
bool HasAlternativePoolSize
Gets whether the "alternative_pool_size" field is set.
double MipCheckPrecision
As explained in mip_precision and mip_max_activity_exponent, we cannot always reach the wanted precis...
bool HasSymmetryLevel
Gets whether the "symmetry_level" field is set.
bool HasRestartLbdAverageRatio
Gets whether the "restart_lbd_average_ratio" field is set.
const int DecisionSubsumptionDuringConflictAnalysisFieldNumber
Field number for the "decision_subsumption_during_conflict_analysis" field.
bool OutputLratProof
If true, an LRAT proof that all the clauses inferred by the solver are valid is output to several fil...
bool HasDebugCrashIfLratCheckFails
Gets whether the "debug_crash_if_lrat_check_fails" field is set.
bool HasInprocessingMinimizationDtime
Gets whether the "inprocessing_minimization_dtime" field is set.
bool UseTimetableEdgeFindingInCumulative
When this is true, the cumulative constraint is reinforced with timetable edge finding,...
bool HasOptimizeWithCore
Gets whether the "optimize_with_core" field is set.
void ClearPseudoCostReliabilityThreshold()
Clears the value of the "pseudo_cost_reliability_threshold" field.
const int MinimizeSharedClausesFieldNumber
Field number for the "minimize_shared_clauses" field.
bool HasPresolveProbingDeterministicTimeLimit
Gets whether the "presolve_probing_deterministic_time_limit" field is set.
bool HasHintConflictLimit
Gets whether the "hint_conflict_limit" field is set.
bool HasInterleaveBatchSize
Gets whether the "interleave_batch_size" field is set.
bool HasUseLns
Gets whether the "use_lns" field is set.
bool ShareLinear2Bounds
Allows sharing of the bounds on linear2 discovered at level 0. This is mainly interesting on scheduli...
void ClearUseProbingSearch()
Clears the value of the "use_probing_search" field.
int AlternativePoolSize
In order to not get stuck in local optima, when this is non-zero, we try to also work on "older" solu...
bool HasShareGlueClauses
Gets whether the "share_glue_clauses" field is set.
bool HasUseLnsOnly
Gets whether the "use_lns_only" field is set.
bool HasFillTightenedDomainsInResponse
Gets whether the "fill_tightened_domains_in_response" field is set.
bool HasMaxSizeToCreatePrecedenceLiteralsInDisjunctive
Gets whether the "max_size_to_create_precedence_literals_in_disjunctive" field is set.
void ClearRepairHint()
Clears the value of the "repair_hint" field.
void ClearStopAfterRootPropagation()
Clears the value of the "stop_after_root_propagation" field.
int MaxSizeToCreatePrecedenceLiteralsInDisjunctive
Create one literal for each disjunction of two pairs of tasks. This slows down the solve time,...
bool FindClausesThatAreExactlyOne
By propagating (or just using binary clauses), one can detect that all literal of a clause are actual...
bool HasTransitivePrecedencesWorkLimit
Gets whether the "transitive_precedences_work_limit" field is set.
void ClearShareBinaryClauses()
Clears the value of the "share_binary_clauses" field.
bool HasUseSharedTreeSearch
Gets whether the "use_shared_tree_search" field is set.
bool HasVariablesShavingLevel
Gets whether the "variables_shaving_level" field is set.
int PresolveBveClauseWeight
During presolve, we apply BVE only if this weight times the number of clauses plus the number of clau...
double MipDropTolerance
Any value in the input mip with a magnitude lower than this will be set to zero. This is to avoid som...
bool FilterSatPostsolveClauses
Internal parameter. During BVE, if we eliminate a variable x, by default we will push all clauses con...
bool HasSaveLpBasisInLbTreeSearch
Gets whether the "save_lp_basis_in_lb_tree_search" field is set.
bool InstantiateAllVariables
If true, the solver will add a default integer branching strategy to the already defined search strat...
const int PreferredVariableOrderFieldNumber
Field number for the "preferred_variable_order" field.
global::Google.OrTools.Sat.SatParameters.Types.BinaryMinizationAlgorithm BinaryMinimizationAlgorithm
bool ExploitAllLpSolution
If true and the Lp relaxation of the problem has a solution, try to exploit it. This is same as above...
void ClearUseFeasibilityJump()
Clears the value of the "use_feasibility_jump" field.
bool DebugCrashIfPresolveBreaksHint
Crash if presolve breaks a feasible hint.
string Name
In some context, like in a portfolio of search, it makes sense to name a given parameters set for log...
void ClearDebugCrashIfPresolveBreaksHint()
Clears the value of the "debug_crash_if_presolve_breaks_hint" field.
bool ShareObjectiveBounds
Allows objective sharing between workers.
bool HasAutoDetectGreaterThanAtLeastOneOf
Gets whether the "auto_detect_greater_than_at_least_one_of" field is set.
const int TableCompressionLevelFieldNumber
Field number for the "table_compression_level" field.
bool HasFilterSatPostsolveClauses
Gets whether the "filter_sat_postsolve_clauses" field is set.
bool RemoveFixedVariablesEarly
If cp_model_presolve is true and there is a large proportion of fixed variable after the first model ...
bool HasMipDropTolerance
Gets whether the "mip_drop_tolerance" field is set.
int MaxAllDiffCutSize
Cut generator for all diffs can add too many cuts for large all_diff constraints. This parameter rest...
bool InferAllDiffs
Run a max-clique code amongst all the x != y we can find and try to infer set of variables that are a...
bool HasPolishLpSolution
Gets whether the "polish_lp_solution" field is set.
void ClearUseDynamicPrecedenceInDisjunctive()
Clears the value of the "use_dynamic_precedence_in_disjunctive" field.
bool KeepAllFeasibleSolutionsInPresolve
If true, we disable the presolve reductions that remove feasible solutions from the search space....
long PresolveInclusionWorkLimit
A few presolve operations involve detecting constraints included in other constraint....
void ClearClauseCleanupRatio()
Clears the value of the "clause_cleanup_ratio" field.
int NewConstraintsBatchSize
Add that many lazy constraints (or cuts) at once in the LP. Note that at the beginning of the solve,...
bool AddLinMaxCuts
For the lin max constraints, generates the cuts described in "Strongmixed-integer programming formula...
void ClearDebugMaxNumPresolveOperations()
Clears the value of the "debug_max_num_presolve_operations" field.
const int ShareLinear2BoundsFieldNumber
Field number for the "share_linear2_bounds" field.
void ClearFeasibilityJumpMaxExpandedConstraintSize()
Clears the value of the "feasibility_jump_max_expanded_constraint_size" field.
bool HasCutLevel
Gets whether the "cut_level" field is set.
bool ExploitBestSolution
When branching on a variable, follow the last best solution value.
bool HasInstantiateAllVariables
Gets whether the "instantiate_all_variables" field is set.
void ClearCheckLratProof()
Clears the value of the "check_lrat_proof" field.
double CutMaxActiveCountValue
These parameters are similar to sat clause management activity parameters. They are effective only if...
void ClearExploitRelaxationSolution()
Clears the value of the "exploit_relaxation_solution" field.
void ClearMipComputeTrueObjectiveBound()
Clears the value of the "mip_compute_true_objective_bound" field.
const int SymmetryDetectionDeterministicTimeLimitFieldNumber
Field number for the "symmetry_detection_deterministic_time_limit" field.
bool HasMaxIntegerRoundingScaling
Gets whether the "max_integer_rounding_scaling" field is set.
int CutLevel
Control the global cut effort. Zero will turn off all cut. For now we just have one level....
bool UseExactLpReason
The solver usually exploit the LP relaxation of a model. If this option is true, then whatever is inf...
bool PresolveBlockedClause
Whether we use an heuristic to detect some basic case of blocked clause in the SAT presolve.
bool HasLogSubsolverStatistics
Gets whether the "log_subsolver_statistics" field is set.
bool HasDetectTableWithCost
Gets whether the "detect_table_with_cost" field is set.
void ClearPropagationLoopDetectionFactor()
Clears the value of the "propagation_loop_detection_factor" field.
bool HasUseSymmetryInLp
Gets whether the "use_symmetry_in_lp" field is set.
bool HasUseNewIntegerConflictResolution
Gets whether the "use_new_integer_conflict_resolution" field is set.
bool HasRootLpIterations
Gets whether the "root_lp_iterations" field is set.
bool HasSharedTreeSplitStrategy
Gets whether the "shared_tree_split_strategy" field is set.
bool HasFeasibilityJumpEnableRestarts
Gets whether the "feasibility_jump_enable_restarts" field is set.
void ClearPresolveBveThreshold()
Clears the value of the "presolve_bve_threshold" field.
long ShavingSearchThreshold
Specifies the threshold between two modes in the shaving procedure. If the range of the variable/obje...
void ClearShavingSearchThreshold()
Clears the value of the "shaving_search_threshold" field.
int CoreMinimizationLevel
If positive, we spend some effort on each core:
bool HasConvertIntervals
Gets whether the "convert_intervals" field is set.
int DebugMaxNumPresolveOperations
If positive, try to stop just after that many presolve rules have been applied. This is mainly useful...
void ClearUseTimetableEdgeFindingInCumulative()
Clears the value of the "use_timetable_edge_finding_in_cumulative" field.
void ClearMipPresolveLevel()
Clears the value of the "mip_presolve_level" field.
const int MaxAlldiffDomainSizeFieldNumber
Field number for the "max_alldiff_domain_size" field.
bool HasFeasibilityJumpLinearizationLevel
Gets whether the "feasibility_jump_linearization_level" field is set.
bool FixVariablesToTheirHintedValue
If true, variables appearing in the solution hints will be fixed to their hinted value.
global::Google.OrTools.Sat.SatParameters.Types.ClauseOrdering ClauseCleanupOrdering
bool HasRestartRunningWindowSize
Gets whether the "restart_running_window_size" field is set.
bool HasAddLpConstraintsLazily
Gets whether the "add_lp_constraints_lazily" field is set.
void ClearMinimizeSharedClauses()
Clears the value of the "minimize_shared_clauses" field.
void ClearUseChronologicalBacktracking()
Clears the value of the "use_chronological_backtracking" field.
void ClearRandomizeSearch()
Clears the value of the "randomize_search" field.
bool HasSharedTreeNumWorkers
Gets whether the "shared_tree_num_workers" field is set.
bool HasFeasibilityJumpDecay
Gets whether the "feasibility_jump_decay" field is set.
const int ExpandAlldiffConstraintsFieldNumber
Field number for the "expand_alldiff_constraints" field.
int ClauseCleanupLbdBound
All the clauses with a LBD (literal blocks distance) lower or equal to this parameters will always be...
bool HasRestartPeriod
Gets whether the "restart_period" field is set.
void ClearOutputLratProof()
Clears the value of the "output_lrat_proof" field.
bool SubsumeDuringVivification
If we remove clause that we now are "implied" by others. Note that this might not always be good as w...
void ClearUseNewIntegerConflictResolution()
Clears the value of the "use_new_integer_conflict_resolution" field.
const int UseCombinedNoOverlapFieldNumber
Field number for the "use_combined_no_overlap" field.
bool HasUseConservativeScaleOverloadChecker
Gets whether the "use_conservative_scale_overload_checker" field is set.
int ClauseCleanupPeriod
Trigger a cleanup when this number of "deletable" clauses is learned.
bool HasUseTimetableEdgeFindingInCumulative
Gets whether the "use_timetable_edge_finding_in_cumulative" field is set.
bool UseObjectiveLbSearch
If true, search will search in ascending max objective value (when minimizing) starting from the lowe...
bool HasProbingDeterministicTimeLimit
Gets whether the "probing_deterministic_time_limit" field is set.
bool ExploitIntegerLpSolution
If true and the Lp relaxation of the problem has an integer optimal solution, try to exploit it....
bool HasMipCheckPrecision
Gets whether the "mip_check_precision" field is set.
void ClearUsePhaseSaving()
Clears the value of the "use_phase_saving" field.
bool HasInterleaveSearch
Gets whether the "interleave_search" field is set.
void ClearPolarityRephaseIncrement()
Clears the value of the "polarity_rephase_increment" field.
bool HasFillAdditionalSolutionsInResponse
Gets whether the "fill_additional_solutions_in_response" field is set.
bool MinimizeReductionDuringPbResolution
A different algorithm during PB resolution. It minimizes the number of calls to ReduceCoefficients() ...
bool HasExpandReservoirConstraints
Gets whether the "expand_reservoir_constraints" field is set.
bool HasUseImpliedBounds
Gets whether the "use_implied_bounds" field is set.
bool HasUseTryEdgeReasoningInNoOverlap2D
Gets whether the "use_try_edge_reasoning_in_no_overlap_2d" field is set.
bool HasCutActiveCountDecay
Gets whether the "cut_active_count_decay" field is set.
bool ShareBinaryClauses
Allows sharing of new learned binary clause between workers.
const int ExpandReservoirConstraintsFieldNumber
Field number for the "expand_reservoir_constraints" field.
void ClearVariableActivityDecay()
Clears the value of the "variable_activity_decay" field.
bool HasFpRounding
Gets whether the "fp_rounding" field is set.
void ClearMaxSatReverseAssumptionOrder()
Clears the value of the "max_sat_reverse_assumption_order" field.
bool RepairHint
If true, the solver tries to repair the solution given in the hint. This search terminates after the ...
const int SolutionPoolDiversityLimitFieldNumber
Field number for the "solution_pool_diversity_limit" field.
const int SubsumptionDuringConflictAnalysisFieldNumber
Field number for the "subsumption_during_conflict_analysis" field.
double FeasibilityJumpDecay
On each restart, we randomly choose if we use decay (with this parameter) or no decay.
bool UseObjectiveShavingSearch
This search differs from the previous search as it will not use assumptions to bound the objective,...
const int AbsoluteGapLimitFieldNumber
Field number for the "absolute_gap_limit" field.
bool EncodeCumulativeAsReservoir
Encore cumulative with fixed demands and capacity as a reservoir constraint. The only reason you migh...
bool UseSharedTreeSearch
Set on shared subtree workers. Users should not set this directly.
void ClearExploitBestSolution()
Clears the value of the "exploit_best_solution" field.
bool UseOptimizationHints
For an optimization problem, whether we follow some hints in order to find a better first solution....
int LinearizationLevel
A non-negative level indicating the type of constraints we consider in the LP relaxation....
double MipVarScaling
All continuous variable of the problem will be multiplied by this factor. By default,...
bool HasCpModelProbingLevel
Gets whether the "cp_model_probing_level" field is set.
double GlucoseMaxDecay
The activity starts at 0.8 and increment by 0.01 every 5000 conflicts until 0.95. This "hack" seems t...
int LbRelaxNumWorkersThreshold
Only use lb-relax if we have at least that many workers.
void ClearChronologicalBacktrackMinConflicts()
Clears the value of the "chronological_backtrack_min_conflicts" field.
int ClauseCleanupPeriodIncrement
Increase clause_cleanup_period by this amount after each cleanup.
bool UseDualSchedulingHeuristics
When set, it activates a few scheduling parameters to improve the lower bound of scheduling problems....
bool HasDisableConstraintExpansion
Gets whether the "disable_constraint_expansion" field is set.
bool HasInprocessingUseSatSweeping
Gets whether the "inprocessing_use_sat_sweeping" field is set.
bool HasEncodeCumulativeAsReservoir
Gets whether the "encode_cumulative_as_reservoir" field is set.
const int UsePrecedencesInDisjunctiveConstraintFieldNumber
Field number for the "use_precedences_in_disjunctive_constraint" field.
bool HasUseDynamicPrecedenceInCumulative
Gets whether the "use_dynamic_precedence_in_cumulative" field is set.
void ClearShavingDeterministicTimeInProbingSearch()
Clears the value of the "shaving_deterministic_time_in_probing_search" field.
bool HasPushAllTasksTowardStart
Gets whether the "push_all_tasks_toward_start" field is set.
void ClearExploitObjective()
Clears the value of the "exploit_objective" field.
void ClearSharedTreeMaxNodesPerWorker()
Clears the value of the "shared_tree_max_nodes_per_worker" field.
bool HasUseStrongPropagationInDisjunctive
Gets whether the "use_strong_propagation_in_disjunctive" field is set.
const int CoverOptimizationFieldNumber
Field number for the "cover_optimization" field.
const int KeepAllFeasibleSolutionsInPresolveFieldNumber
Field number for the "keep_all_feasible_solutions_in_presolve" field.
bool HasStopAfterRootPropagation
Gets whether the "stop_after_root_propagation" field is set.
int PresolveSubstitutionLevel
How much substitution (also called free variable aggregation in MIP litterature) should we perform at...
void ClearBinaryMinimizationAlgorithm()
Clears the value of the "binary_minimization_algorithm" field.
void ClearIgnoreNames()
Clears the value of the "ignore_names" field.
bool HasShareGlueClausesDtime
Gets whether the "share_glue_clauses_dtime" field is set.
double ViolationLsCompoundMoveProbability
Probability of using compound move search each restart.
bool UseProbingSearch
If true, search will continuously probe Boolean variables, and integer variable bounds....
double SharedTreeOpenLeavesPerWorker
How many open leaf nodes should the shared tree maintain per worker.
double SharedTreeSplitMinDtime
How much dtime a worker will wait between proposing splits. This limits the contention in splitting t...
bool HasExploitObjective
Gets whether the "exploit_objective" field is set.
double RestartDlAverageRatio
In the moving average restart algorithms, a restart is triggered if the window average times this rat...
const int InterleaveBatchSizeFieldNumber
Field number for the "interleave_batch_size" field.
int SharedTreeBalanceTolerance
How much deeper compared to the ideal max depth of the tree is considered "balanced" enough to still ...
bool HasLinearSplitSize
Gets whether the "linear_split_size" field is set.
bool HasFeasibilityJumpBatchDtime
Gets whether the "feasibility_jump_batch_dtime" field is set.
bool HasMergeAtMostOneWorkLimit
Gets whether the "merge_at_most_one_work_limit" field is set.
double LpPrimalTolerance
The internal LP tolerances used by CP-SAT. These applies to the internal and scaled problem....
bool ShareLevelZeroBounds
Allows sharing of the bounds of modified variables at level 0.
int MaxPairsPairwiseReasoningInNoOverlap2D
If the number of pairs to look is below this threshold, do an extra step of propagation in the no_ove...
bool HasUseDynamicPrecedenceInDisjunctive
Gets whether the "use_dynamic_precedence_in_disjunctive" field is set.
const int ExtraSubsumptionDuringConflictAnalysisFieldNumber
Field number for the "extra_subsumption_during_conflict_analysis" field.
bool HasOptimizeWithLbTreeSearch
Gets whether the "optimize_with_lb_tree_search" field is set.
bool InterleaveSearch
Experimental. If this is true, then we interleave all our major search strategy and distribute the wo...
double MaxDratTimeInSeconds
The maximum time allowed to check the DRAT proof (this can take more time than the solve itself)....
void ClearLogToStdout()
Clears the value of the "log_to_stdout" field.
void ClearConvertIntervals()
Clears the value of the "convert_intervals" field.
void ClearDetectLinearizedProduct()
Clears the value of the "detect_linearized_product" field.
bool HasUseHardPrecedencesInCumulative
Gets whether the "use_hard_precedences_in_cumulative" field is set.
void ClearUsePrecedencesInDisjunctiveConstraint()
Clears the value of the "use_precedences_in_disjunctive_constraint" field.
bool UseHardPrecedencesInCumulative
If true, detect and create constraint for integer variable that are "after" a set of intervals in the...
bool AddLpConstraintsLazily
If true, we start by an empty LP, and only add constraints not satisfied by the current LP solution b...
bool HasKeepAllFeasibleSolutionsInPresolve
Gets whether the "keep_all_feasible_solutions_in_presolve" field is set.
void ClearEagerlySubsumeLastNConflicts()
Clears the value of the "eagerly_subsume_last_n_conflicts" field.
bool HasOnlySolveIp
Gets whether the "only_solve_ip" field is set.
const int GlucoseMaxDecayFieldNumber
Field number for the "glucose_max_decay" field.
bool HasUseRinsLns
Gets whether the "use_rins_lns" field is set.
bool UseAreaEnergeticReasoningInNoOverlap2D
When this is true, the no_overlap_2d constraint is reinforced with an energetic reasoning that uses a...
bool ExpandAlldiffConstraints
If true, expand all_different constraints that are not permutations. Permutations (Variables = Values...
bool HasPresolveBlockedClause
Gets whether the "presolve_blocked_clause" field is set.
bool MipComputeTrueObjectiveBound
Even if we make big error when scaling the objective, we can always derive a correct lower bound on t...
const int NumFullSubsolversFieldNumber
Field number for the "num_full_subsolvers" field.
long PseudoCostReliabilityThreshold
The solver ignores the pseudo costs of variables with number of recordings less than this threshold.
bool HasMaxDomainSizeWhenEncodingEqNeqConstraints
Gets whether the "max_domain_size_when_encoding_eq_neq_constraints" field is set.
const int MaxPairsPairwiseReasoningInNoOverlap2DFieldNumber
Field number for the "max_pairs_pairwise_reasoning_in_no_overlap_2d" field.
bool UseDynamicPrecedenceInDisjunctive
Whether we try to branch on decision "interval A before interval B" rather than on intervals bounds....
void ClearCreate1UipBooleanDuringIcr()
Clears the value of the "create_1uip_boolean_during_icr" field.
bool UseLinear3ForNoOverlap2DPrecedences
When set, this activates a propagator for the no_overlap_2d constraint that uses any eventual linear ...
int LinearSplitSize
Linear constraints that are not pseudo-Boolean and that are longer than this size will be split into ...
bool HasOnlyAddCutsAtLevelZero
Gets whether the "only_add_cuts_at_level_zero" field is set.
global::Google.OrTools.Sat.SatParameters.Types.SearchBranching SearchBranching
bool HasProbingNumCombinationsLimit
Gets whether the "probing_num_combinations_limit" field is set.
bool HasCpModelUseSatPresolve
Gets whether the "cp_model_use_sat_presolve" field is set.
void ClearLpDualTolerance()
Clears the value of the "lp_dual_tolerance" field.
void ClearFilterSatPostsolveClauses()
Clears the value of the "filter_sat_postsolve_clauses" field.
void ClearUseLns()
Clears the value of the "use_lns" field.
bool FeasibilityJumpEnableRestarts
When stagnating, feasibility jump will either restart from a default solution (with some possible ran...
bool HasUseAbslRandom
Gets whether the "use_absl_random" field is set.
bool HasMaxMemoryInMb
Gets whether the "max_memory_in_mb" field is set.
const int ChronologicalBacktrackMinConflictsFieldNumber
Field number for the "chronological_backtrack_min_conflicts" field.
bool HasRoutingCutSubsetSizeForBinaryRelationBound
Gets whether the "routing_cut_subset_size_for_binary_relation_bound" field is set.
void ClearDebugPostsolveWithFullSolver()
Clears the value of the "debug_postsolve_with_full_solver" field.
bool HasUseDualSchedulingHeuristics
Gets whether the "use_dual_scheduling_heuristics" field is set.
bool HasShareBinaryClauses
Gets whether the "share_binary_clauses" field is set.
bool HasLinearizationLevel
Gets whether the "linearization_level" field is set.
bool UseLbRelaxLns
Turns on neighborhood generator based on local branching LP. Based on Huang et al....
int MaxNumCuts
The limit on the number of cuts in our cut pool. When this is reached we do not generate cuts anymore...
bool HasDebugCrashIfPresolveBreaksHint
Gets whether the "debug_crash_if_presolve_breaks_hint" field is set.
const int RoutingCutSubsetSizeForTightBinaryRelationBoundFieldNumber
Field number for the "routing_cut_subset_size_for_tight_binary_relation_bound" field.
double RoutingCutDpEffort
The amount of "effort" to spend in dynamic programming for computing routing cuts....
bool ShareGlueClauses
Allows sharing of short glue clauses between workers. Implicitly disabled if share_binary_clauses is ...
bool InprocessingUseSatSweeping
Whether we use the SAT sweeping algorithm described in "Clausal EquivalenceSweeping",...
global::Google.OrTools.Sat.SatParameters.Types.SharedTreeSplitStrategy SharedTreeSplitStrategy
double AbsoluteGapLimit
Stop the search when the gap between the best feasible objective (O) and our best objective bound (B)...
bool ExtraSubsumptionDuringConflictAnalysis
It is possible that "intermediate" clauses during conflict resolution subsumes some of the clauses th...
int RoutingCutSubsetSizeForExactBinaryRelationBound
Similar to above, but with an even stronger algorithm in O(n!). We try to be defensive and abort earl...
int MaxAlldiffDomainSize
Max domain size for all_different constraints to be expanded.
int PresolveBvaThreshold
Apply Bounded Variable Addition (BVA) if the number of clauses is reduced by stricly more than this t...
bool UsePrecedencesInDisjunctiveConstraint
When this is true, then a disjunctive constraint will try to use the precedence relations between tim...
void ClearRoutingCutDpEffort()
Clears the value of the "routing_cut_dp_effort" field.
bool HasAddLinMaxCuts
Gets whether the "add_lin_max_cuts" field is set.
const int ClauseCleanupTargetFieldNumber
Field number for the "clause_cleanup_target" field.
bool HasRandomSeed
Gets whether the "random_seed" field is set.
int SharedTreeMaxNodesPerWorker
In order to limit total shared memory and communication overhead, limit the total number of nodes tha...
bool HasFindClausesThatAreExactlyOne
Gets whether the "find_clauses_that_are_exactly_one" field is set.
void ClearRoutingCutSubsetSizeForShortestPathsBound()
Clears the value of the "routing_cut_subset_size_for_shortest_paths_bound" field.
bool HasMipMaxActivityExponent
Gets whether the "mip_max_activity_exponent" field is set.
const int NewConstraintsBatchSizeFieldNumber
Field number for the "new_constraints_batch_size" field.
void ClearLnsInitialDeterministicLimit()
Clears the value of the "lns_initial_deterministic_limit" field.
double MaxDeterministicTime
Maximum time allowed in deterministic time to solve a problem. The deterministic time should be corre...
int SymmetryLevel
Whether we try to automatically detect the symmetries in a model and exploit them....
bool HasExploitBestSolution
Gets whether the "exploit_best_solution" field is set.
bool HasInprocessingDtimeRatio
Gets whether the "inprocessing_dtime_ratio" field is set.
void ClearSubsumptionDuringConflictAnalysis()
Clears the value of the "subsumption_during_conflict_analysis" field.
void ClearAlsoBumpVariablesInConflictReasons()
Clears the value of the "also_bump_variables_in_conflict_reasons" field.
const int AutoDetectGreaterThanAtLeastOneOfFieldNumber
Field number for the "auto_detect_greater_than_at_least_one_of" field.
void ClearShareObjectiveBounds()
Clears the value of the "share_objective_bounds" field.
void ClearUseAreaEnergeticReasoningInNoOverlap2D()
Clears the value of the "use_area_energetic_reasoning_in_no_overlap_2d" field.
bool HasNumConflictsBeforeStrategyChanges
Gets whether the "num_conflicts_before_strategy_changes" field is set.
const int BooleanEncodingLevelFieldNumber
Field number for the "boolean_encoding_level" field.
bool AddObjectiveCut
When the LP objective is fractional, do we add the cut that forces the linear objective expression to...
const int TransitivePrecedencesWorkLimitFieldNumber
Field number for the "transitive_precedences_work_limit" field.
int NumWorkers
Specify the number of parallel workers (i.e. threads) to use during search. This should usually be lo...
void ClearUseAllDifferentForCircuit()
Clears the value of the "use_all_different_for_circuit" field.
bool UseOverloadCheckerInCumulative
When this is true, the cumulative constraint is reinforced with overload checking,...
bool HasMaxAlldiffDomainSize
Gets whether the "max_alldiff_domain_size" field is set.
void ClearClauseCleanupTarget()
Clears the value of the "clause_cleanup_target" field.
void ClearGlucoseDecayIncrement()
Clears the value of the "glucose_decay_increment" field.
const int ShareLevelZeroBoundsFieldNumber
Field number for the "share_level_zero_bounds" field.
void ClearRoutingCutSubsetSizeForTightBinaryRelationBound()
Clears the value of the "routing_cut_subset_size_for_tight_binary_relation_bound" field.
double InprocessingMinimizationDtime
Parameters for an heuristic similar to the one described in "An effectivelearnt clause minimization a...
bool HasMaxDomainSizeForLinear2Expansion
Gets whether the "max_domain_size_for_linear2_expansion" field is set.
bool HasPresolveExtractIntegerEnforcement
Gets whether the "presolve_extract_integer_enforcement" field is set.
void ClearInprocessingDtimeRatio()
Clears the value of the "inprocessing_dtime_ratio" field.
void ClearRandomSeed()
Clears the value of the "random_seed" field.
bool HasLbRelaxNumWorkersThreshold
Gets whether the "lb_relax_num_workers_threshold" field is set.
const int InterleaveSearchFieldNumber
Field number for the "interleave_search" field.
bool HasFeasibilityJumpVarPerburbationRangeRatio
Gets whether the "feasibility_jump_var_perburbation_range_ratio" field is set.
bool HasLogSearchProgress
Gets whether the "log_search_progress" field is set.
string LogPrefix
Add a prefix to all logs.
bool HasMaxAllDiffCutSize
Gets whether the "max_all_diff_cut_size" field is set.
void ClearLogSearchProgress()
Clears the value of the "log_search_progress" field.
int FeasibilityJumpRestartFactor
This is a factor that directly influence the work before each restart. Increasing it leads to longer ...
int NumFullSubsolvers
We distinguish subsolvers that consume a full thread, and the ones that are always interleaved....
bool HasRandomizeSearch
Gets whether the "randomize_search" field is set.
const int LpPrimalToleranceFieldNumber
Field number for the "lp_primal_tolerance" field.
bool UseCombinedNoOverlap
This can be beneficial if there is a lot of no-overlap constraints but a relatively low number of dif...
bool HasStrategyChangeIncreaseRatio
Gets whether the "strategy_change_increase_ratio" field is set.
bool UseSymmetryInLp
When we have symmetry, it is possible to "fold" all variables from the same orbit into a single varia...
const int MaxNumIntervalsForTimetableEdgeFindingFieldNumber
Field number for the "max_num_intervals_for_timetable_edge_finding" field.
bool UseAllDifferentForCircuit
Turn on extra propagation for the circuit constraint. This can be quite slow.
bool StopAfterPresolve
Mainly used when improving the presolver. When true, stops the solver after the presolve is complete ...
double ClauseCleanupRatio
During a cleanup, if clause_cleanup_target is 0, we will delete the clause_cleanup_ratio of "deletabl...
const int SymmetryLevelFieldNumber
Field number for the "symmetry_level" field.
bool UseBlockingRestart
Block a moving restart algorithm if the trail size of the current conflict is greater than the multip...
const int PushAllTasksTowardStartFieldNumber
Field number for the "push_all_tasks_toward_start" field.
bool HasMaxDratTimeInSeconds
Gets whether the "max_drat_time_in_seconds" field is set.
bool FillAdditionalSolutionsInResponse
If true, the final response addition_solutions field will be filled with all solutions from our solut...
bool HasUseProbingSearch
Gets whether the "use_probing_search" field is set.
global::Google.OrTools.Sat.SatParameters.Types.FPRoundingMethod FpRounding
const int PbCleanupRatioFieldNumber
Field number for the "pb_cleanup_ratio" field.
bool HasMaxConsecutiveInactiveCount
Gets whether the "max_consecutive_inactive_count" field is set.
bool AddMirCuts
Whether we generate MIR cuts at root node.
bool UseExtendedProbing
Use extended probing (probe bool_or, at_most_one, exactly_one).
bool HasCatchSigintSignal
Gets whether the "catch_sigint_signal" field is set.
bool DiversifyLnsParams
If true, registers more lns subsolvers with different parameters.
bool HasDiversifyLnsParams
Gets whether the "diversify_lns_params" field is set.
bool DebugPostsolveWithFullSolver
We have two different postsolve code. The default one should be better and it allows for a more power...
const int PolishLpSolutionFieldNumber
Field number for the "polish_lp_solution" field.
bool HasSharedTreeWorkerEnableTrailSharing
Gets whether the "shared_tree_worker_enable_trail_sharing" field is set.
double PropagationLoopDetectionFactor
Some search decisions might cause a really large number of propagations to happen when integer variab...
bool CheckMergedLratProof
If true, and if output_lrat_proof is true and the problem is UNSAT, check that the merged proof file ...
void ClearClauseCleanupLbdTier2()
Clears the value of the "clause_cleanup_lbd_tier2" field.
bool LoadAtMostOnesInSatPresolve
If we try to load at most ones and exactly ones constraints when running the pure SAT presolve....
bool CatchSigintSignal
Indicates if the CP-SAT layer should catch Control-C (SIGINT) signals when calling solve....
double FeasibilityJumpVarRandomizationProbability
Probability for a variable to have a non default value upon restarts or perturbations.
const int MaxDratTimeInSecondsFieldNumber
Field number for the "max_drat_time_in_seconds" field.
int MaxConsecutiveInactiveCount
If a constraint/cut in LP is not active for that many consecutive OPTIMAL solves, remove it from the ...
double ClauseActivityDecay
Clause activity parameters (same effect as the one on the variables).
bool AddZeroHalfCuts
Whether we generate Zero-Half cuts at root node.
bool ExploitRelaxationSolution
When branching on a variable, follow the last best relaxation solution value. We use the relaxation w...
const int LpDualToleranceFieldNumber
Field number for the "lp_dual_tolerance" field.
const int PbCleanupIncrementFieldNumber
Field number for the "pb_cleanup_increment" field.
bool HasLpPrimalTolerance
Gets whether the "lp_primal_tolerance" field is set.
bool HasRoutingCutDpEffort
Gets whether the "routing_cut_dp_effort" field is set.
const int MaxCutRoundsAtLevelZeroFieldNumber
Field number for the "max_cut_rounds_at_level_zero" field.
bool HasUseLinear3ForNoOverlap2DPrecedences
Gets whether the "use_linear3_for_no_overlap_2d_precedences" field is set.
void ClearMinimizationAlgorithm()
Clears the value of the "minimization_algorithm" field.
bool UseOptionalVariables
If true, we automatically detect variables whose constraint are always enforced by the same literal a...
const int DebugMaxNumPresolveOperationsFieldNumber
Field number for the "debug_max_num_presolve_operations" field.
const int KeepSymmetryInPresolveFieldNumber
Field number for the "keep_symmetry_in_presolve" field.
bool HasUseBlockingRestart
Gets whether the "use_blocking_restart" field is set.
bool UseLns
Testing parameters used to disable all lns workers.
bool HasCoverOptimization
Gets whether the "cover_optimization" field is set.
bool HasCpModelPresolve
Gets whether the "cp_model_presolve" field is set.
bool LogSubsolverStatistics
Whether the solver should display per sub-solver search statistics. This is only useful is log_search...
bool HasSolutionPoolSize
Gets whether the "solution_pool_size" field is set.
bool DetectLinearizedProduct
Infer products of Boolean or of Boolean time IntegerVariable from the linear constrainst in the probl...
bool Create1UipBooleanDuringIcr
If true, and during integer conflict resolution (icr) the 1-UIP is an integer literal for which we do...
bool HasPresolveBveClauseWeight
Gets whether the "presolve_bve_clause_weight" field is set.
const int UseImpliedBoundsFieldNumber
Field number for the "use_implied_bounds" field.
double InitialVariablesActivity
The initial value of the variables activity. A non-zero value only make sense when use_erwa_heuristic...
bool PermuteVariableRandomly
This is mainly here to test the solver variability. Note that in tests, if not explicitly set to fals...
bool UseSatInprocessing
Enable or disable "inprocessing" which is some SAT presolving done at each restart to the root level.
void ClearOptimizeWithCore()
Clears the value of the "optimize_with_core" field.
void ClearUseErwaHeuristic()
Clears the value of the "use_erwa_heuristic" field.
bool UseLnsOnly
Experimental parameters to disable everything but lns.
bool SaveLpBasisInLbTreeSearch
Experimental. Save the current LP basis at each node of the search tree so that when we jump around,...
int PolarityRephaseIncrement
If non-zero, then we change the polarity heuristic after that many number of conflicts in an arithmet...
bool HasUsePrecedencesInDisjunctiveConstraint
Gets whether the "use_precedences_in_disjunctive_constraint" field is set.
int CpModelProbingLevel
How much effort do we spend on probing. 0 disables it completely.
double LnsInitialDifficulty
Initial parameters for neighborhood generation.
int SolutionPoolDiversityLimit
If solution_pool_size is <= this, we will use DP to keep a "diverse" set of solutions (the one furthe...
const int DebugPostsolveWithFullSolverFieldNumber
Field number for the "debug_postsolve_with_full_solver" field.
bool HasShareLevelZeroBounds
Gets whether the "share_level_zero_bounds" field is set.
bool UseConservativeScaleOverloadChecker
Enable a heuristic to solve cumulative constraints using a modified energy constraint....
const int UseTimetableEdgeFindingInCumulativeFieldNumber
Field number for the "use_timetable_edge_finding_in_cumulative" field.
bool HasFixVariablesToTheirHintedValue
Gets whether the "fix_variables_to_their_hinted_value" field is set.
bool HasPseudoCostReliabilityThreshold
Gets whether the "pseudo_cost_reliability_threshold" field is set.
const int NoOverlap2DBooleanRelationsLimitFieldNumber
Field number for the "no_overlap_2d_boolean_relations_limit" field.
int SharedTreeWorkerMinRestartsPerSubtree
Minimum restarts before a worker will replace a subtree that looks "bad" based on the average LBD of ...
global::Google.OrTools.Sat.SatParameters.Types.ConflictMinimizationAlgorithm MinimizationAlgorithm
double RandomBranchesRatio
A number between 0 and 1 that indicates the proportion of branching variables that are selected rando...
void ClearMipDropTolerance()
Clears the value of the "mip_drop_tolerance" field.
double MipMaxValidMagnitude
Any finite values in the input MIP must be below this threshold, otherwise the model will be reported...
bool ExploitObjective
When branching an a variable that directly affect the objective, branch on the value that lead to the...
bool HasSharedTreeWorkerEnablePhaseSharing
Gets whether the "shared_tree_worker_enable_phase_sharing" field is set.
void ClearOptimizeWithMaxHs()
Clears the value of the "optimize_with_max_hs" field.
bool HasBooleanEncodingLevel
Gets whether the "boolean_encoding_level" field is set.
void ClearFillTightenedDomainsInResponse()
Clears the value of the "fill_tightened_domains_in_response" field.
const int AddCgCutsFieldNumber
Field number for the "add_cg_cuts" field.
bool HasCheckDratProof
Gets whether the "check_drat_proof" field is set.
@ None
There is no corresponding point.