DotNet Reference

DotNet Reference

CpModel.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/cp_model.proto
4 // </auto-generated>
5 #pragma warning disable 1591, 0612, 3021
6 #region Designer generated code
7 
8 using pb = global::Google.Protobuf;
9 using pbc = global::Google.Protobuf.Collections;
10 using pbr = global::Google.Protobuf.Reflection;
11 using scg = global::System.Collections.Generic;
12 namespace Google.OrTools.Sat {
13 
15  public static partial class CpModelReflection {
16 
17  #region Descriptor
18  public static pbr::FileDescriptor Descriptor {
20  get { return descriptor; }
21  }
22  private static pbr::FileDescriptor descriptor;
23 
24  static CpModelReflection() {
25  byte[] descriptorData = global::System.Convert.FromBase64String(
26  string.Concat(
27  "ChpvcnRvb2xzL3NhdC9jcF9tb2RlbC5wcm90bxIXb3BlcmF0aW9uc19yZXNl",
28  "YXJjaC5zYXQiNAoUSW50ZWdlclZhcmlhYmxlUHJvdG8SDAoEbmFtZRgBIAEo",
29  "CRIOCgZkb21haW4YAiADKAMiJQoRQm9vbEFyZ3VtZW50UHJvdG8SEAoIbGl0",
30  "ZXJhbHMYASADKAUiNAoUSW50ZWdlckFyZ3VtZW50UHJvdG8SDgoGdGFyZ2V0",
31  "GAEgASgFEgwKBHZhcnMYAiADKAUiRQoVTGluZWFyRXhwcmVzc2lvblByb3Rv",
32  "EgwKBHZhcnMYASADKAUSDgoGY29lZmZzGAIgAygFEg4KBm9mZnNldBgDIAEo",
33  "AyKUAQoTTGluZWFyQXJndW1lbnRQcm90bxI+CgZ0YXJnZXQYASABKAsyLi5v",
34  "cGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5MaW5lYXJFeHByZXNzaW9uUHJvdG8S",
35  "PQoFZXhwcnMYAiADKAsyLi5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5MaW5l",
36  "YXJFeHByZXNzaW9uUHJvdG8iKwobQWxsRGlmZmVyZW50Q29uc3RyYWludFBy",
37  "b3RvEgwKBHZhcnMYASADKAUiRQoVTGluZWFyQ29uc3RyYWludFByb3RvEgwK",
38  "BHZhcnMYASADKAUSDgoGY29lZmZzGAIgAygDEg4KBmRvbWFpbhgDIAMoAyJF",
39  "ChZFbGVtZW50Q29uc3RyYWludFByb3RvEg0KBWluZGV4GAEgASgFEg4KBnRh",
40  "cmdldBgCIAEoBRIMCgR2YXJzGAMgAygFIkMKF0ludGVydmFsQ29uc3RyYWlu",
41  "dFByb3RvEg0KBXN0YXJ0GAEgASgFEgsKA2VuZBgCIAEoBRIMCgRzaXplGAMg",
42  "ASgFIi0KGE5vT3ZlcmxhcENvbnN0cmFpbnRQcm90bxIRCglpbnRlcnZhbHMY",
43  "ASADKAUicAoaTm9PdmVybGFwMkRDb25zdHJhaW50UHJvdG8SEwoLeF9pbnRl",
44  "cnZhbHMYASADKAUSEwoLeV9pbnRlcnZhbHMYAiADKAUSKAogYm94ZXNfd2l0",
45  "aF9udWxsX2FyZWFfY2FuX292ZXJsYXAYAyABKAgiUQoZQ3VtdWxhdGl2ZUNv",
46  "bnN0cmFpbnRQcm90bxIQCghjYXBhY2l0eRgBIAEoBRIRCglpbnRlcnZhbHMY",
47  "AiADKAUSDwoHZGVtYW5kcxgDIAMoBSJxChhSZXNlcnZvaXJDb25zdHJhaW50",
48  "UHJvdG8SEQoJbWluX2xldmVsGAEgASgDEhEKCW1heF9sZXZlbBgCIAEoAxIN",
49  "CgV0aW1lcxgDIAMoBRIPCgdkZW1hbmRzGAQgAygDEg8KB2FjdGl2ZXMYBSAD",
50  "KAUiSAoWQ2lyY3VpdENvbnN0cmFpbnRQcm90bxINCgV0YWlscxgDIAMoBRIN",
51  "CgVoZWFkcxgEIAMoBRIQCghsaXRlcmFscxgFIAMoBSJqChVSb3V0ZXNDb25z",
52  "dHJhaW50UHJvdG8SDQoFdGFpbHMYASADKAUSDQoFaGVhZHMYAiADKAUSEAoI",
53  "bGl0ZXJhbHMYAyADKAUSDwoHZGVtYW5kcxgEIAMoBRIQCghjYXBhY2l0eRgF",
54  "IAEoAyJMCh5DaXJjdWl0Q292ZXJpbmdDb25zdHJhaW50UHJvdG8SDQoFbmV4",
55  "dHMYASADKAUSGwoTZGlzdGluZ3Vpc2hlZF9ub2RlcxgCIAMoAyJFChRUYWJs",
56  "ZUNvbnN0cmFpbnRQcm90bxIMCgR2YXJzGAEgAygFEg4KBnZhbHVlcxgCIAMo",
57  "AxIPCgduZWdhdGVkGAMgASgIIj0KFkludmVyc2VDb25zdHJhaW50UHJvdG8S",
58  "EAoIZl9kaXJlY3QYASADKAUSEQoJZl9pbnZlcnNlGAIgAygFIqIBChhBdXRv",
59  "bWF0b25Db25zdHJhaW50UHJvdG8SFgoOc3RhcnRpbmdfc3RhdGUYAiABKAMS",
60  "FAoMZmluYWxfc3RhdGVzGAMgAygDEhcKD3RyYW5zaXRpb25fdGFpbBgEIAMo",
61  "AxIXCg90cmFuc2l0aW9uX2hlYWQYBSADKAMSGAoQdHJhbnNpdGlvbl9sYWJl",
62  "bBgGIAMoAxIMCgR2YXJzGAcgAygFIv8NCg9Db25zdHJhaW50UHJvdG8SDAoE",
63  "bmFtZRgBIAEoCRIbChNlbmZvcmNlbWVudF9saXRlcmFsGAIgAygFEj0KB2Jv",
64  "b2xfb3IYAyABKAsyKi5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5Cb29sQXJn",
65  "dW1lbnRQcm90b0gAEj4KCGJvb2xfYW5kGAQgASgLMioub3BlcmF0aW9uc19y",
66  "ZXNlYXJjaC5zYXQuQm9vbEFyZ3VtZW50UHJvdG9IABJBCgthdF9tb3N0X29u",
67  "ZRgaIAEoCzIqLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkJvb2xBcmd1bWVu",
68  "dFByb3RvSAASPgoIYm9vbF94b3IYBSABKAsyKi5vcGVyYXRpb25zX3Jlc2Vh",
69  "cmNoLnNhdC5Cb29sQXJndW1lbnRQcm90b0gAEkAKB2ludF9kaXYYByABKAsy",
70  "LS5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5JbnRlZ2VyQXJndW1lbnRQcm90",
71  "b0gAEkAKB2ludF9tb2QYCCABKAsyLS5vcGVyYXRpb25zX3Jlc2VhcmNoLnNh",
72  "dC5JbnRlZ2VyQXJndW1lbnRQcm90b0gAEkAKB2ludF9tYXgYCSABKAsyLS5v",
73  "cGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5JbnRlZ2VyQXJndW1lbnRQcm90b0gA",
74  "Ej8KB2xpbl9tYXgYGyABKAsyLC5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5M",
75  "aW5lYXJBcmd1bWVudFByb3RvSAASQAoHaW50X21pbhgKIAEoCzItLm9wZXJh",
76  "dGlvbnNfcmVzZWFyY2guc2F0LkludGVnZXJBcmd1bWVudFByb3RvSAASPwoH",
77  "bGluX21pbhgcIAEoCzIsLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkxpbmVh",
78  "ckFyZ3VtZW50UHJvdG9IABJBCghpbnRfcHJvZBgLIAEoCzItLm9wZXJhdGlv",
79  "bnNfcmVzZWFyY2guc2F0LkludGVnZXJBcmd1bWVudFByb3RvSAASQAoGbGlu",
80  "ZWFyGAwgASgLMi4ub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuTGluZWFyQ29u",
81  "c3RyYWludFByb3RvSAASSAoIYWxsX2RpZmYYDSABKAsyNC5vcGVyYXRpb25z",
82  "X3Jlc2VhcmNoLnNhdC5BbGxEaWZmZXJlbnRDb25zdHJhaW50UHJvdG9IABJC",
83  "CgdlbGVtZW50GA4gASgLMi8ub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuRWxl",
84  "bWVudENvbnN0cmFpbnRQcm90b0gAEkIKB2NpcmN1aXQYDyABKAsyLy5vcGVy",
85  "YXRpb25zX3Jlc2VhcmNoLnNhdC5DaXJjdWl0Q29uc3RyYWludFByb3RvSAAS",
86  "QAoGcm91dGVzGBcgASgLMi4ub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuUm91",
87  "dGVzQ29uc3RyYWludFByb3RvSAASUwoQY2lyY3VpdF9jb3ZlcmluZxgZIAEo",
88  "CzI3Lm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkNpcmN1aXRDb3ZlcmluZ0Nv",
89  "bnN0cmFpbnRQcm90b0gAEj4KBXRhYmxlGBAgASgLMi0ub3BlcmF0aW9uc19y",
90  "ZXNlYXJjaC5zYXQuVGFibGVDb25zdHJhaW50UHJvdG9IABJGCglhdXRvbWF0",
91  "b24YESABKAsyMS5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5BdXRvbWF0b25D",
92  "b25zdHJhaW50UHJvdG9IABJCCgdpbnZlcnNlGBIgASgLMi8ub3BlcmF0aW9u",
93  "c19yZXNlYXJjaC5zYXQuSW52ZXJzZUNvbnN0cmFpbnRQcm90b0gAEkYKCXJl",
94  "c2Vydm9pchgYIAEoCzIxLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LlJlc2Vy",
95  "dm9pckNvbnN0cmFpbnRQcm90b0gAEkQKCGludGVydmFsGBMgASgLMjAub3Bl",
96  "cmF0aW9uc19yZXNlYXJjaC5zYXQuSW50ZXJ2YWxDb25zdHJhaW50UHJvdG9I",
97  "ABJHCgpub19vdmVybGFwGBQgASgLMjEub3BlcmF0aW9uc19yZXNlYXJjaC5z",
98  "YXQuTm9PdmVybGFwQ29uc3RyYWludFByb3RvSAASTAoNbm9fb3ZlcmxhcF8y",
99  "ZBgVIAEoCzIzLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0Lk5vT3ZlcmxhcDJE",
100  "Q29uc3RyYWludFByb3RvSAASSAoKY3VtdWxhdGl2ZRgWIAEoCzIyLm9wZXJh",
101  "dGlvbnNfcmVzZWFyY2guc2F0LkN1bXVsYXRpdmVDb25zdHJhaW50UHJvdG9I",
102  "AEIMCgpjb25zdHJhaW50ImgKEENwT2JqZWN0aXZlUHJvdG8SDAoEdmFycxgB",
103  "IAMoBRIOCgZjb2VmZnMYBCADKAMSDgoGb2Zmc2V0GAIgASgBEhYKDnNjYWxp",
104  "bmdfZmFjdG9yGAMgASgBEg4KBmRvbWFpbhgFIAMoAyLVBQoVRGVjaXNpb25T",
105  "dHJhdGVneVByb3RvEhEKCXZhcmlhYmxlcxgBIAMoBRJtCht2YXJpYWJsZV9z",
106  "ZWxlY3Rpb25fc3RyYXRlZ3kYAiABKA4ySC5vcGVyYXRpb25zX3Jlc2VhcmNo",
107  "LnNhdC5EZWNpc2lvblN0cmF0ZWd5UHJvdG8uVmFyaWFibGVTZWxlY3Rpb25T",
108  "dHJhdGVneRJpChlkb21haW5fcmVkdWN0aW9uX3N0cmF0ZWd5GAMgASgOMkYu",
109  "b3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuRGVjaXNpb25TdHJhdGVneVByb3Rv",
110  "LkRvbWFpblJlZHVjdGlvblN0cmF0ZWd5ElwKD3RyYW5zZm9ybWF0aW9ucxgE",
111  "IAMoCzJDLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkRlY2lzaW9uU3RyYXRl",
112  "Z3lQcm90by5BZmZpbmVUcmFuc2Zvcm1hdGlvbhpLChRBZmZpbmVUcmFuc2Zv",
113  "cm1hdGlvbhILCgN2YXIYASABKAUSDgoGb2Zmc2V0GAIgASgDEhYKDnBvc2l0",
114  "aXZlX2NvZWZmGAMgASgDIpQBChlWYXJpYWJsZVNlbGVjdGlvblN0cmF0ZWd5",
115  "EhAKDENIT09TRV9GSVJTVBAAEhUKEUNIT09TRV9MT1dFU1RfTUlOEAESFgoS",
116  "Q0hPT1NFX0hJR0hFU1RfTUFYEAISGgoWQ0hPT1NFX01JTl9ET01BSU5fU0la",
117  "RRADEhoKFkNIT09TRV9NQVhfRE9NQUlOX1NJWkUQBCKMAQoXRG9tYWluUmVk",
118  "dWN0aW9uU3RyYXRlZ3kSFAoQU0VMRUNUX01JTl9WQUxVRRAAEhQKEFNFTEVD",
119  "VF9NQVhfVkFMVUUQARIVChFTRUxFQ1RfTE9XRVJfSEFMRhACEhUKEVNFTEVD",
120  "VF9VUFBFUl9IQUxGEAMSFwoTU0VMRUNUX01FRElBTl9WQUxVRRAEIjkKGVBh",
121  "cnRpYWxWYXJpYWJsZUFzc2lnbm1lbnQSDAoEdmFycxgBIAMoBRIOCgZ2YWx1",
122  "ZXMYAiADKAMihAMKDENwTW9kZWxQcm90bxIMCgRuYW1lGAEgASgJEkAKCXZh",
123  "cmlhYmxlcxgCIAMoCzItLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkludGVn",
124  "ZXJWYXJpYWJsZVByb3RvEj0KC2NvbnN0cmFpbnRzGAMgAygLMigub3BlcmF0",
125  "aW9uc19yZXNlYXJjaC5zYXQuQ29uc3RyYWludFByb3RvEjwKCW9iamVjdGl2",
126  "ZRgEIAEoCzIpLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkNwT2JqZWN0aXZl",
127  "UHJvdG8SRwoPc2VhcmNoX3N0cmF0ZWd5GAUgAygLMi4ub3BlcmF0aW9uc19y",
128  "ZXNlYXJjaC5zYXQuRGVjaXNpb25TdHJhdGVneVByb3RvEkkKDXNvbHV0aW9u",
129  "X2hpbnQYBiABKAsyMi5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5QYXJ0aWFs",
130  "VmFyaWFibGVBc3NpZ25tZW50EhMKC2Fzc3VtcHRpb25zGAcgAygFIuoEChBD",
131  "cFNvbHZlclJlc3BvbnNlEjcKBnN0YXR1cxgBIAEoDjInLm9wZXJhdGlvbnNf",
132  "cmVzZWFyY2guc2F0LkNwU29sdmVyU3RhdHVzEhAKCHNvbHV0aW9uGAIgAygD",
133  "EhcKD29iamVjdGl2ZV92YWx1ZRgDIAEoARIcChRiZXN0X29iamVjdGl2ZV9i",
134  "b3VuZBgEIAEoARIdChVzb2x1dGlvbl9sb3dlcl9ib3VuZHMYEiADKAMSHQoV",
135  "c29sdXRpb25fdXBwZXJfYm91bmRzGBMgAygDEkoKE3RpZ2h0ZW5lZF92YXJp",
136  "YWJsZXMYFSADKAsyLS5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5JbnRlZ2Vy",
137  "VmFyaWFibGVQcm90bxIwCihzdWZmaWNpZW50X2Fzc3VtcHRpb25zX2Zvcl9p",
138  "bmZlYXNpYmlsaXR5GBcgAygFEiAKGGFsbF9zb2x1dGlvbnNfd2VyZV9mb3Vu",
139  "ZBgFIAEoCBIUCgxudW1fYm9vbGVhbnMYCiABKAMSFQoNbnVtX2NvbmZsaWN0",
140  "cxgLIAEoAxIUCgxudW1fYnJhbmNoZXMYDCABKAMSHwoXbnVtX2JpbmFyeV9w",
141  "cm9wYWdhdGlvbnMYDSABKAMSIAoYbnVtX2ludGVnZXJfcHJvcGFnYXRpb25z",
142  "GA4gASgDEhEKCXdhbGxfdGltZRgPIAEoARIRCgl1c2VyX3RpbWUYECABKAES",
143  "GgoSZGV0ZXJtaW5pc3RpY190aW1lGBEgASgBEhcKD3ByaW1hbF9pbnRlZ3Jh",
144  "bBgWIAEoARIVCg1zb2x1dGlvbl9pbmZvGBQgASgJKlsKDkNwU29sdmVyU3Rh",
145  "dHVzEgsKB1VOS05PV04QABIRCg1NT0RFTF9JTlZBTElEEAESDAoIRkVBU0lC",
146  "TEUQAhIOCgpJTkZFQVNJQkxFEAMSCwoHT1BUSU1BTBAEQkAKFmNvbS5nb29n",
147  "bGUub3J0b29scy5zYXRCD0NwTW9kZWxQcm90b2J1ZlABqgISR29vZ2xlLk9y",
148  "VG9vbHMuU2F0YgZwcm90bzM="));
149  descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
150  new pbr::FileDescriptor[] { },
151  new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.OrTools.Sat.CpSolverStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
152  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.IntegerVariableProto), global::Google.OrTools.Sat.IntegerVariableProto.Parser, new[]{ "Name", "Domain" }, null, null, null, null),
153  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.BoolArgumentProto), global::Google.OrTools.Sat.BoolArgumentProto.Parser, new[]{ "Literals" }, null, null, null, null),
154  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.IntegerArgumentProto), global::Google.OrTools.Sat.IntegerArgumentProto.Parser, new[]{ "Target", "Vars" }, null, null, null, null),
155  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.LinearExpressionProto), global::Google.OrTools.Sat.LinearExpressionProto.Parser, new[]{ "Vars", "Coeffs", "Offset" }, null, null, null, null),
156  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.LinearArgumentProto), global::Google.OrTools.Sat.LinearArgumentProto.Parser, new[]{ "Target", "Exprs" }, null, null, null, null),
157  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.AllDifferentConstraintProto), global::Google.OrTools.Sat.AllDifferentConstraintProto.Parser, new[]{ "Vars" }, null, null, null, null),
158  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.LinearConstraintProto), global::Google.OrTools.Sat.LinearConstraintProto.Parser, new[]{ "Vars", "Coeffs", "Domain" }, null, null, null, null),
159  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.ElementConstraintProto), global::Google.OrTools.Sat.ElementConstraintProto.Parser, new[]{ "Index", "Target", "Vars" }, null, null, null, null),
160  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.IntervalConstraintProto), global::Google.OrTools.Sat.IntervalConstraintProto.Parser, new[]{ "Start", "End", "Size" }, null, null, null, null),
161  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.NoOverlapConstraintProto), global::Google.OrTools.Sat.NoOverlapConstraintProto.Parser, new[]{ "Intervals" }, null, null, null, null),
162  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.NoOverlap2DConstraintProto), global::Google.OrTools.Sat.NoOverlap2DConstraintProto.Parser, new[]{ "XIntervals", "YIntervals", "BoxesWithNullAreaCanOverlap" }, null, null, null, null),
163  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CumulativeConstraintProto), global::Google.OrTools.Sat.CumulativeConstraintProto.Parser, new[]{ "Capacity", "Intervals", "Demands" }, null, null, null, null),
164  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.ReservoirConstraintProto), global::Google.OrTools.Sat.ReservoirConstraintProto.Parser, new[]{ "MinLevel", "MaxLevel", "Times", "Demands", "Actives" }, null, null, null, null),
165  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CircuitConstraintProto), global::Google.OrTools.Sat.CircuitConstraintProto.Parser, new[]{ "Tails", "Heads", "Literals" }, null, null, null, null),
166  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.RoutesConstraintProto), global::Google.OrTools.Sat.RoutesConstraintProto.Parser, new[]{ "Tails", "Heads", "Literals", "Demands", "Capacity" }, null, null, null, null),
167  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CircuitCoveringConstraintProto), global::Google.OrTools.Sat.CircuitCoveringConstraintProto.Parser, new[]{ "Nexts", "DistinguishedNodes" }, null, null, null, null),
168  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.TableConstraintProto), global::Google.OrTools.Sat.TableConstraintProto.Parser, new[]{ "Vars", "Values", "Negated" }, null, null, null, null),
169  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.InverseConstraintProto), global::Google.OrTools.Sat.InverseConstraintProto.Parser, new[]{ "FDirect", "FInverse" }, null, null, null, null),
170  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.AutomatonConstraintProto), global::Google.OrTools.Sat.AutomatonConstraintProto.Parser, new[]{ "StartingState", "FinalStates", "TransitionTail", "TransitionHead", "TransitionLabel", "Vars" }, null, null, null, null),
171  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.ConstraintProto), global::Google.OrTools.Sat.ConstraintProto.Parser, new[]{ "Name", "EnforcementLiteral", "BoolOr", "BoolAnd", "AtMostOne", "BoolXor", "IntDiv", "IntMod", "IntMax", "LinMax", "IntMin", "LinMin", "IntProd", "Linear", "AllDiff", "Element", "Circuit", "Routes", "CircuitCovering", "Table", "Automaton", "Inverse", "Reservoir", "Interval", "NoOverlap", "NoOverlap2D", "Cumulative" }, new[]{ "Constraint" }, null, null, null),
172  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CpObjectiveProto), global::Google.OrTools.Sat.CpObjectiveProto.Parser, new[]{ "Vars", "Coeffs", "Offset", "ScalingFactor", "Domain" }, null, null, null, null),
173  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.DecisionStrategyProto), global::Google.OrTools.Sat.DecisionStrategyProto.Parser, new[]{ "Variables", "VariableSelectionStrategy", "DomainReductionStrategy", "Transformations" }, null, new[]{ typeof(global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy), typeof(global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation), global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation.Parser, new[]{ "Var", "Offset", "PositiveCoeff" }, null, null, null, null)}),
174  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.PartialVariableAssignment), global::Google.OrTools.Sat.PartialVariableAssignment.Parser, new[]{ "Vars", "Values" }, null, null, null, null),
175  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CpModelProto), global::Google.OrTools.Sat.CpModelProto.Parser, new[]{ "Name", "Variables", "Constraints", "Objective", "SearchStrategy", "SolutionHint", "Assumptions" }, null, null, null, null),
176  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CpSolverResponse), global::Google.OrTools.Sat.CpSolverResponse.Parser, new[]{ "Status", "Solution", "ObjectiveValue", "BestObjectiveBound", "SolutionLowerBounds", "SolutionUpperBounds", "TightenedVariables", "SufficientAssumptionsForInfeasibility", "AllSolutionsWereFound", "NumBooleans", "NumConflicts", "NumBranches", "NumBinaryPropagations", "NumIntegerPropagations", "WallTime", "UserTime", "DeterministicTime", "PrimalIntegral", "SolutionInfo" }, null, null, null, null)
177  }));
178  }
179  #endregion
180 
181  }
182  #region Enums
183  public enum CpSolverStatus {
191  [pbr::OriginalName("UNKNOWN")] Unknown = 0,
196  [pbr::OriginalName("MODEL_INVALID")] ModelInvalid = 1,
202  [pbr::OriginalName("FEASIBLE")] Feasible = 2,
206  [pbr::OriginalName("INFEASIBLE")] Infeasible = 3,
217  [pbr::OriginalName("OPTIMAL")] Optimal = 4,
218  }
219 
220  #endregion
221 
222  #region Messages
223  public sealed partial class IntegerVariableProto : pb::IMessage<IntegerVariableProto> {
245  private static readonly pb::MessageParser<IntegerVariableProto> _parser = new pb::MessageParser<IntegerVariableProto>(() => new IntegerVariableProto());
246  private pb::UnknownFieldSet _unknownFields;
247  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
248  public static pb::MessageParser<IntegerVariableProto> Parser { get { return _parser; } }
249 
250  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
251  public static pbr::MessageDescriptor Descriptor {
252  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[0]; }
253  }
254 
255  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
256  pbr::MessageDescriptor pb::IMessage.Descriptor {
257  get { return Descriptor; }
258  }
259 
260  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
262  OnConstruction();
263  }
264 
265  partial void OnConstruction();
266 
267  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
269  name_ = other.name_;
270  domain_ = other.domain_.Clone();
271  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
272  }
273 
274  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
276  return new IntegerVariableProto(this);
277  }
278 
280  public const int NameFieldNumber = 1;
281  private string name_ = "";
285  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
286  public string Name {
287  get { return name_; }
288  set {
289  name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
290  }
291  }
292 
294  public const int DomainFieldNumber = 2;
295  private static readonly pb::FieldCodec<long> _repeated_domain_codec
296  = pb::FieldCodec.ForInt64(18);
297  private readonly pbc::RepeatedField<long> domain_ = new pbc::RepeatedField<long>();
317  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
318  public pbc::RepeatedField<long> Domain {
319  get { return domain_; }
320  }
321 
322  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
323  public override bool Equals(object other) {
324  return Equals(other as IntegerVariableProto);
325  }
326 
327  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
328  public bool Equals(IntegerVariableProto other) {
329  if (ReferenceEquals(other, null)) {
330  return false;
331  }
332  if (ReferenceEquals(other, this)) {
333  return true;
334  }
335  if (Name != other.Name) return false;
336  if(!domain_.Equals(other.domain_)) return false;
337  return Equals(_unknownFields, other._unknownFields);
338  }
339 
340  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
341  public override int GetHashCode() {
342  int hash = 1;
343  if (Name.Length != 0) hash ^= Name.GetHashCode();
344  hash ^= domain_.GetHashCode();
345  if (_unknownFields != null) {
346  hash ^= _unknownFields.GetHashCode();
347  }
348  return hash;
349  }
350 
351  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
352  public override string ToString() {
353  return pb::JsonFormatter.ToDiagnosticString(this);
354  }
355 
356  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
357  public void WriteTo(pb::CodedOutputStream output) {
358  if (Name.Length != 0) {
359  output.WriteRawTag(10);
360  output.WriteString(Name);
361  }
362  domain_.WriteTo(output, _repeated_domain_codec);
363  if (_unknownFields != null) {
364  _unknownFields.WriteTo(output);
365  }
366  }
367 
368  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
369  public int CalculateSize() {
370  int size = 0;
371  if (Name.Length != 0) {
372  size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
373  }
374  size += domain_.CalculateSize(_repeated_domain_codec);
375  if (_unknownFields != null) {
376  size += _unknownFields.CalculateSize();
377  }
378  return size;
379  }
380 
381  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
382  public void MergeFrom(IntegerVariableProto other) {
383  if (other == null) {
384  return;
385  }
386  if (other.Name.Length != 0) {
387  Name = other.Name;
388  }
389  domain_.Add(other.domain_);
390  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
391  }
392 
393  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
394  public void MergeFrom(pb::CodedInputStream input) {
395  uint tag;
396  while ((tag = input.ReadTag()) != 0) {
397  switch(tag) {
398  default:
399  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
400  break;
401  case 10: {
402  Name = input.ReadString();
403  break;
404  }
405  case 18:
406  case 16: {
407  domain_.AddEntriesFrom(input, _repeated_domain_codec);
408  break;
409  }
410  }
411  }
412  }
413 
414  }
415 
419  public sealed partial class BoolArgumentProto : pb::IMessage<BoolArgumentProto> {
420  private static readonly pb::MessageParser<BoolArgumentProto> _parser = new pb::MessageParser<BoolArgumentProto>(() => new BoolArgumentProto());
421  private pb::UnknownFieldSet _unknownFields;
422  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
423  public static pb::MessageParser<BoolArgumentProto> Parser { get { return _parser; } }
424 
425  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
426  public static pbr::MessageDescriptor Descriptor {
427  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[1]; }
428  }
429 
430  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
431  pbr::MessageDescriptor pb::IMessage.Descriptor {
432  get { return Descriptor; }
433  }
434 
435  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
436  public BoolArgumentProto() {
437  OnConstruction();
438  }
439 
440  partial void OnConstruction();
441 
442  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
443  public BoolArgumentProto(BoolArgumentProto other) : this() {
444  literals_ = other.literals_.Clone();
445  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
446  }
447 
448  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
450  return new BoolArgumentProto(this);
451  }
452 
454  public const int LiteralsFieldNumber = 1;
455  private static readonly pb::FieldCodec<int> _repeated_literals_codec
456  = pb::FieldCodec.ForInt32(10);
457  private readonly pbc::RepeatedField<int> literals_ = new pbc::RepeatedField<int>();
458  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
459  public pbc::RepeatedField<int> Literals {
460  get { return literals_; }
461  }
462 
463  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
464  public override bool Equals(object other) {
465  return Equals(other as BoolArgumentProto);
466  }
467 
468  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
469  public bool Equals(BoolArgumentProto other) {
470  if (ReferenceEquals(other, null)) {
471  return false;
472  }
473  if (ReferenceEquals(other, this)) {
474  return true;
475  }
476  if(!literals_.Equals(other.literals_)) return false;
477  return Equals(_unknownFields, other._unknownFields);
478  }
479 
480  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
481  public override int GetHashCode() {
482  int hash = 1;
483  hash ^= literals_.GetHashCode();
484  if (_unknownFields != null) {
485  hash ^= _unknownFields.GetHashCode();
486  }
487  return hash;
488  }
489 
490  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
491  public override string ToString() {
492  return pb::JsonFormatter.ToDiagnosticString(this);
493  }
494 
495  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
496  public void WriteTo(pb::CodedOutputStream output) {
497  literals_.WriteTo(output, _repeated_literals_codec);
498  if (_unknownFields != null) {
499  _unknownFields.WriteTo(output);
500  }
501  }
502 
503  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
504  public int CalculateSize() {
505  int size = 0;
506  size += literals_.CalculateSize(_repeated_literals_codec);
507  if (_unknownFields != null) {
508  size += _unknownFields.CalculateSize();
509  }
510  return size;
511  }
512 
513  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
514  public void MergeFrom(BoolArgumentProto other) {
515  if (other == null) {
516  return;
517  }
518  literals_.Add(other.literals_);
519  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
520  }
521 
522  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
523  public void MergeFrom(pb::CodedInputStream input) {
524  uint tag;
525  while ((tag = input.ReadTag()) != 0) {
526  switch(tag) {
527  default:
528  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
529  break;
530  case 10:
531  case 8: {
532  literals_.AddEntriesFrom(input, _repeated_literals_codec);
533  break;
534  }
535  }
536  }
537  }
538 
539  }
540 
544  public sealed partial class IntegerArgumentProto : pb::IMessage<IntegerArgumentProto> {
545  private static readonly pb::MessageParser<IntegerArgumentProto> _parser = new pb::MessageParser<IntegerArgumentProto>(() => new IntegerArgumentProto());
546  private pb::UnknownFieldSet _unknownFields;
547  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
548  public static pb::MessageParser<IntegerArgumentProto> Parser { get { return _parser; } }
549 
550  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
551  public static pbr::MessageDescriptor Descriptor {
552  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[2]; }
553  }
554 
555  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
556  pbr::MessageDescriptor pb::IMessage.Descriptor {
557  get { return Descriptor; }
558  }
559 
560  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
562  OnConstruction();
563  }
564 
565  partial void OnConstruction();
566 
567  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
569  target_ = other.target_;
570  vars_ = other.vars_.Clone();
571  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
572  }
573 
574  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
576  return new IntegerArgumentProto(this);
577  }
578 
580  public const int TargetFieldNumber = 1;
581  private int target_;
582  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
583  public int Target {
584  get { return target_; }
585  set {
586  target_ = value;
587  }
588  }
589 
591  public const int VarsFieldNumber = 2;
592  private static readonly pb::FieldCodec<int> _repeated_vars_codec
593  = pb::FieldCodec.ForInt32(18);
594  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
595  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
596  public pbc::RepeatedField<int> Vars {
597  get { return vars_; }
598  }
599 
600  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
601  public override bool Equals(object other) {
602  return Equals(other as IntegerArgumentProto);
603  }
604 
605  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
606  public bool Equals(IntegerArgumentProto other) {
607  if (ReferenceEquals(other, null)) {
608  return false;
609  }
610  if (ReferenceEquals(other, this)) {
611  return true;
612  }
613  if (Target != other.Target) return false;
614  if(!vars_.Equals(other.vars_)) return false;
615  return Equals(_unknownFields, other._unknownFields);
616  }
617 
618  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
619  public override int GetHashCode() {
620  int hash = 1;
621  if (Target != 0) hash ^= Target.GetHashCode();
622  hash ^= vars_.GetHashCode();
623  if (_unknownFields != null) {
624  hash ^= _unknownFields.GetHashCode();
625  }
626  return hash;
627  }
628 
629  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
630  public override string ToString() {
631  return pb::JsonFormatter.ToDiagnosticString(this);
632  }
633 
634  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
635  public void WriteTo(pb::CodedOutputStream output) {
636  if (Target != 0) {
637  output.WriteRawTag(8);
638  output.WriteInt32(Target);
639  }
640  vars_.WriteTo(output, _repeated_vars_codec);
641  if (_unknownFields != null) {
642  _unknownFields.WriteTo(output);
643  }
644  }
645 
646  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
647  public int CalculateSize() {
648  int size = 0;
649  if (Target != 0) {
650  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Target);
651  }
652  size += vars_.CalculateSize(_repeated_vars_codec);
653  if (_unknownFields != null) {
654  size += _unknownFields.CalculateSize();
655  }
656  return size;
657  }
658 
659  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
660  public void MergeFrom(IntegerArgumentProto other) {
661  if (other == null) {
662  return;
663  }
664  if (other.Target != 0) {
665  Target = other.Target;
666  }
667  vars_.Add(other.vars_);
668  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
669  }
670 
671  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
672  public void MergeFrom(pb::CodedInputStream input) {
673  uint tag;
674  while ((tag = input.ReadTag()) != 0) {
675  switch(tag) {
676  default:
677  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
678  break;
679  case 8: {
680  Target = input.ReadInt32();
681  break;
682  }
683  case 18:
684  case 16: {
685  vars_.AddEntriesFrom(input, _repeated_vars_codec);
686  break;
687  }
688  }
689  }
690  }
691 
692  }
693 
694  public sealed partial class LinearExpressionProto : pb::IMessage<LinearExpressionProto> {
695  private static readonly pb::MessageParser<LinearExpressionProto> _parser = new pb::MessageParser<LinearExpressionProto>(() => new LinearExpressionProto());
696  private pb::UnknownFieldSet _unknownFields;
697  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
698  public static pb::MessageParser<LinearExpressionProto> Parser { get { return _parser; } }
699 
700  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
701  public static pbr::MessageDescriptor Descriptor {
702  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[3]; }
703  }
704 
705  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
706  pbr::MessageDescriptor pb::IMessage.Descriptor {
707  get { return Descriptor; }
708  }
709 
710  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
712  OnConstruction();
713  }
714 
715  partial void OnConstruction();
716 
717  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
719  vars_ = other.vars_.Clone();
720  coeffs_ = other.coeffs_.Clone();
721  offset_ = other.offset_;
722  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
723  }
724 
725  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
727  return new LinearExpressionProto(this);
728  }
729 
731  public const int VarsFieldNumber = 1;
732  private static readonly pb::FieldCodec<int> _repeated_vars_codec
733  = pb::FieldCodec.ForInt32(10);
734  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
735  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
736  public pbc::RepeatedField<int> Vars {
737  get { return vars_; }
738  }
739 
741  public const int CoeffsFieldNumber = 2;
742  private static readonly pb::FieldCodec<int> _repeated_coeffs_codec
743  = pb::FieldCodec.ForInt32(18);
744  private readonly pbc::RepeatedField<int> coeffs_ = new pbc::RepeatedField<int>();
745  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
746  public pbc::RepeatedField<int> Coeffs {
747  get { return coeffs_; }
748  }
749 
751  public const int OffsetFieldNumber = 3;
752  private long offset_;
753  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
754  public long Offset {
755  get { return offset_; }
756  set {
757  offset_ = value;
758  }
759  }
760 
761  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
762  public override bool Equals(object other) {
763  return Equals(other as LinearExpressionProto);
764  }
765 
766  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
767  public bool Equals(LinearExpressionProto other) {
768  if (ReferenceEquals(other, null)) {
769  return false;
770  }
771  if (ReferenceEquals(other, this)) {
772  return true;
773  }
774  if(!vars_.Equals(other.vars_)) return false;
775  if(!coeffs_.Equals(other.coeffs_)) return false;
776  if (Offset != other.Offset) return false;
777  return Equals(_unknownFields, other._unknownFields);
778  }
779 
780  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
781  public override int GetHashCode() {
782  int hash = 1;
783  hash ^= vars_.GetHashCode();
784  hash ^= coeffs_.GetHashCode();
785  if (Offset != 0L) hash ^= Offset.GetHashCode();
786  if (_unknownFields != null) {
787  hash ^= _unknownFields.GetHashCode();
788  }
789  return hash;
790  }
791 
792  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
793  public override string ToString() {
794  return pb::JsonFormatter.ToDiagnosticString(this);
795  }
796 
797  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
798  public void WriteTo(pb::CodedOutputStream output) {
799  vars_.WriteTo(output, _repeated_vars_codec);
800  coeffs_.WriteTo(output, _repeated_coeffs_codec);
801  if (Offset != 0L) {
802  output.WriteRawTag(24);
803  output.WriteInt64(Offset);
804  }
805  if (_unknownFields != null) {
806  _unknownFields.WriteTo(output);
807  }
808  }
809 
810  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
811  public int CalculateSize() {
812  int size = 0;
813  size += vars_.CalculateSize(_repeated_vars_codec);
814  size += coeffs_.CalculateSize(_repeated_coeffs_codec);
815  if (Offset != 0L) {
816  size += 1 + pb::CodedOutputStream.ComputeInt64Size(Offset);
817  }
818  if (_unknownFields != null) {
819  size += _unknownFields.CalculateSize();
820  }
821  return size;
822  }
823 
824  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
825  public void MergeFrom(LinearExpressionProto other) {
826  if (other == null) {
827  return;
828  }
829  vars_.Add(other.vars_);
830  coeffs_.Add(other.coeffs_);
831  if (other.Offset != 0L) {
832  Offset = other.Offset;
833  }
834  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
835  }
836 
837  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
838  public void MergeFrom(pb::CodedInputStream input) {
839  uint tag;
840  while ((tag = input.ReadTag()) != 0) {
841  switch(tag) {
842  default:
843  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
844  break;
845  case 10:
846  case 8: {
847  vars_.AddEntriesFrom(input, _repeated_vars_codec);
848  break;
849  }
850  case 18:
851  case 16: {
852  coeffs_.AddEntriesFrom(input, _repeated_coeffs_codec);
853  break;
854  }
855  case 24: {
856  Offset = input.ReadInt64();
857  break;
858  }
859  }
860  }
861  }
862 
863  }
864 
865  public sealed partial class LinearArgumentProto : pb::IMessage<LinearArgumentProto> {
866  private static readonly pb::MessageParser<LinearArgumentProto> _parser = new pb::MessageParser<LinearArgumentProto>(() => new LinearArgumentProto());
867  private pb::UnknownFieldSet _unknownFields;
868  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
869  public static pb::MessageParser<LinearArgumentProto> Parser { get { return _parser; } }
870 
871  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
872  public static pbr::MessageDescriptor Descriptor {
873  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[4]; }
874  }
875 
876  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
877  pbr::MessageDescriptor pb::IMessage.Descriptor {
878  get { return Descriptor; }
879  }
880 
881  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
883  OnConstruction();
884  }
885 
886  partial void OnConstruction();
887 
888  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
889  public LinearArgumentProto(LinearArgumentProto other) : this() {
890  target_ = other.target_ != null ? other.target_.Clone() : null;
891  exprs_ = other.exprs_.Clone();
892  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
893  }
894 
895  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
897  return new LinearArgumentProto(this);
898  }
899 
901  public const int TargetFieldNumber = 1;
902  private global::Google.OrTools.Sat.LinearExpressionProto target_;
903  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
904  public global::Google.OrTools.Sat.LinearExpressionProto Target {
905  get { return target_; }
906  set {
907  target_ = value;
908  }
909  }
910 
912  public const int ExprsFieldNumber = 2;
913  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.LinearExpressionProto> _repeated_exprs_codec
914  = pb::FieldCodec.ForMessage(18, global::Google.OrTools.Sat.LinearExpressionProto.Parser);
915  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.LinearExpressionProto> exprs_ = new pbc::RepeatedField<global::Google.OrTools.Sat.LinearExpressionProto>();
916  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
917  public pbc::RepeatedField<global::Google.OrTools.Sat.LinearExpressionProto> Exprs {
918  get { return exprs_; }
919  }
920 
921  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
922  public override bool Equals(object other) {
923  return Equals(other as LinearArgumentProto);
924  }
925 
926  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
927  public bool Equals(LinearArgumentProto other) {
928  if (ReferenceEquals(other, null)) {
929  return false;
930  }
931  if (ReferenceEquals(other, this)) {
932  return true;
933  }
934  if (!object.Equals(Target, other.Target)) return false;
935  if(!exprs_.Equals(other.exprs_)) return false;
936  return Equals(_unknownFields, other._unknownFields);
937  }
938 
939  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
940  public override int GetHashCode() {
941  int hash = 1;
942  if (target_ != null) hash ^= Target.GetHashCode();
943  hash ^= exprs_.GetHashCode();
944  if (_unknownFields != null) {
945  hash ^= _unknownFields.GetHashCode();
946  }
947  return hash;
948  }
949 
950  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
951  public override string ToString() {
952  return pb::JsonFormatter.ToDiagnosticString(this);
953  }
954 
955  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
956  public void WriteTo(pb::CodedOutputStream output) {
957  if (target_ != null) {
958  output.WriteRawTag(10);
959  output.WriteMessage(Target);
960  }
961  exprs_.WriteTo(output, _repeated_exprs_codec);
962  if (_unknownFields != null) {
963  _unknownFields.WriteTo(output);
964  }
965  }
966 
967  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
968  public int CalculateSize() {
969  int size = 0;
970  if (target_ != null) {
971  size += 1 + pb::CodedOutputStream.ComputeMessageSize(Target);
972  }
973  size += exprs_.CalculateSize(_repeated_exprs_codec);
974  if (_unknownFields != null) {
975  size += _unknownFields.CalculateSize();
976  }
977  return size;
978  }
979 
980  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
981  public void MergeFrom(LinearArgumentProto other) {
982  if (other == null) {
983  return;
984  }
985  if (other.target_ != null) {
986  if (target_ == null) {
987  Target = new global::Google.OrTools.Sat.LinearExpressionProto();
988  }
989  Target.MergeFrom(other.Target);
990  }
991  exprs_.Add(other.exprs_);
992  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
993  }
994 
995  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
996  public void MergeFrom(pb::CodedInputStream input) {
997  uint tag;
998  while ((tag = input.ReadTag()) != 0) {
999  switch(tag) {
1000  default:
1001  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1002  break;
1003  case 10: {
1004  if (target_ == null) {
1005  Target = new global::Google.OrTools.Sat.LinearExpressionProto();
1006  }
1007  input.ReadMessage(Target);
1008  break;
1009  }
1010  case 18: {
1011  exprs_.AddEntriesFrom(input, _repeated_exprs_codec);
1012  break;
1013  }
1014  }
1015  }
1016  }
1017 
1018  }
1019 
1023  public sealed partial class AllDifferentConstraintProto : pb::IMessage<AllDifferentConstraintProto> {
1024  private static readonly pb::MessageParser<AllDifferentConstraintProto> _parser = new pb::MessageParser<AllDifferentConstraintProto>(() => new AllDifferentConstraintProto());
1025  private pb::UnknownFieldSet _unknownFields;
1026  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1027  public static pb::MessageParser<AllDifferentConstraintProto> Parser { get { return _parser; } }
1028 
1029  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1030  public static pbr::MessageDescriptor Descriptor {
1031  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[5]; }
1032  }
1033 
1034  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1035  pbr::MessageDescriptor pb::IMessage.Descriptor {
1036  get { return Descriptor; }
1037  }
1038 
1039  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1041  OnConstruction();
1042  }
1043 
1044  partial void OnConstruction();
1045 
1046  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1048  vars_ = other.vars_.Clone();
1049  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1050  }
1051 
1052  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1054  return new AllDifferentConstraintProto(this);
1055  }
1056 
1058  public const int VarsFieldNumber = 1;
1059  private static readonly pb::FieldCodec<int> _repeated_vars_codec
1060  = pb::FieldCodec.ForInt32(10);
1061  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
1062  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1063  public pbc::RepeatedField<int> Vars {
1064  get { return vars_; }
1065  }
1066 
1067  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1068  public override bool Equals(object other) {
1069  return Equals(other as AllDifferentConstraintProto);
1070  }
1071 
1072  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1074  if (ReferenceEquals(other, null)) {
1075  return false;
1076  }
1077  if (ReferenceEquals(other, this)) {
1078  return true;
1079  }
1080  if(!vars_.Equals(other.vars_)) return false;
1081  return Equals(_unknownFields, other._unknownFields);
1082  }
1083 
1084  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1085  public override int GetHashCode() {
1086  int hash = 1;
1087  hash ^= vars_.GetHashCode();
1088  if (_unknownFields != null) {
1089  hash ^= _unknownFields.GetHashCode();
1090  }
1091  return hash;
1092  }
1093 
1094  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1095  public override string ToString() {
1096  return pb::JsonFormatter.ToDiagnosticString(this);
1097  }
1098 
1099  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1100  public void WriteTo(pb::CodedOutputStream output) {
1101  vars_.WriteTo(output, _repeated_vars_codec);
1102  if (_unknownFields != null) {
1103  _unknownFields.WriteTo(output);
1104  }
1105  }
1106 
1107  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1108  public int CalculateSize() {
1109  int size = 0;
1110  size += vars_.CalculateSize(_repeated_vars_codec);
1111  if (_unknownFields != null) {
1112  size += _unknownFields.CalculateSize();
1113  }
1114  return size;
1115  }
1116 
1117  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1119  if (other == null) {
1120  return;
1121  }
1122  vars_.Add(other.vars_);
1123  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1124  }
1125 
1126  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1127  public void MergeFrom(pb::CodedInputStream input) {
1128  uint tag;
1129  while ((tag = input.ReadTag()) != 0) {
1130  switch(tag) {
1131  default:
1132  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1133  break;
1134  case 10:
1135  case 8: {
1136  vars_.AddEntriesFrom(input, _repeated_vars_codec);
1137  break;
1138  }
1139  }
1140  }
1141  }
1142 
1143  }
1144 
1153  public sealed partial class LinearConstraintProto : pb::IMessage<LinearConstraintProto> {
1154  private static readonly pb::MessageParser<LinearConstraintProto> _parser = new pb::MessageParser<LinearConstraintProto>(() => new LinearConstraintProto());
1155  private pb::UnknownFieldSet _unknownFields;
1156  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1157  public static pb::MessageParser<LinearConstraintProto> Parser { get { return _parser; } }
1158 
1159  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1160  public static pbr::MessageDescriptor Descriptor {
1161  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[6]; }
1162  }
1163 
1164  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1165  pbr::MessageDescriptor pb::IMessage.Descriptor {
1166  get { return Descriptor; }
1167  }
1168 
1169  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1171  OnConstruction();
1172  }
1173 
1174  partial void OnConstruction();
1175 
1176  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1178  vars_ = other.vars_.Clone();
1179  coeffs_ = other.coeffs_.Clone();
1180  domain_ = other.domain_.Clone();
1181  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1182  }
1183 
1184  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1186  return new LinearConstraintProto(this);
1187  }
1188 
1190  public const int VarsFieldNumber = 1;
1191  private static readonly pb::FieldCodec<int> _repeated_vars_codec
1192  = pb::FieldCodec.ForInt32(10);
1193  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
1194  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1195  public pbc::RepeatedField<int> Vars {
1196  get { return vars_; }
1197  }
1198 
1200  public const int CoeffsFieldNumber = 2;
1201  private static readonly pb::FieldCodec<long> _repeated_coeffs_codec
1202  = pb::FieldCodec.ForInt64(18);
1203  private readonly pbc::RepeatedField<long> coeffs_ = new pbc::RepeatedField<long>();
1207  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1208  public pbc::RepeatedField<long> Coeffs {
1209  get { return coeffs_; }
1210  }
1211 
1213  public const int DomainFieldNumber = 3;
1214  private static readonly pb::FieldCodec<long> _repeated_domain_codec
1215  = pb::FieldCodec.ForInt64(26);
1216  private readonly pbc::RepeatedField<long> domain_ = new pbc::RepeatedField<long>();
1217  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1218  public pbc::RepeatedField<long> Domain {
1219  get { return domain_; }
1220  }
1221 
1222  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1223  public override bool Equals(object other) {
1224  return Equals(other as LinearConstraintProto);
1225  }
1226 
1227  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1228  public bool Equals(LinearConstraintProto other) {
1229  if (ReferenceEquals(other, null)) {
1230  return false;
1231  }
1232  if (ReferenceEquals(other, this)) {
1233  return true;
1234  }
1235  if(!vars_.Equals(other.vars_)) return false;
1236  if(!coeffs_.Equals(other.coeffs_)) return false;
1237  if(!domain_.Equals(other.domain_)) return false;
1238  return Equals(_unknownFields, other._unknownFields);
1239  }
1240 
1241  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1242  public override int GetHashCode() {
1243  int hash = 1;
1244  hash ^= vars_.GetHashCode();
1245  hash ^= coeffs_.GetHashCode();
1246  hash ^= domain_.GetHashCode();
1247  if (_unknownFields != null) {
1248  hash ^= _unknownFields.GetHashCode();
1249  }
1250  return hash;
1251  }
1252 
1253  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1254  public override string ToString() {
1255  return pb::JsonFormatter.ToDiagnosticString(this);
1256  }
1257 
1258  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1259  public void WriteTo(pb::CodedOutputStream output) {
1260  vars_.WriteTo(output, _repeated_vars_codec);
1261  coeffs_.WriteTo(output, _repeated_coeffs_codec);
1262  domain_.WriteTo(output, _repeated_domain_codec);
1263  if (_unknownFields != null) {
1264  _unknownFields.WriteTo(output);
1265  }
1266  }
1267 
1268  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1269  public int CalculateSize() {
1270  int size = 0;
1271  size += vars_.CalculateSize(_repeated_vars_codec);
1272  size += coeffs_.CalculateSize(_repeated_coeffs_codec);
1273  size += domain_.CalculateSize(_repeated_domain_codec);
1274  if (_unknownFields != null) {
1275  size += _unknownFields.CalculateSize();
1276  }
1277  return size;
1278  }
1279 
1280  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1281  public void MergeFrom(LinearConstraintProto other) {
1282  if (other == null) {
1283  return;
1284  }
1285  vars_.Add(other.vars_);
1286  coeffs_.Add(other.coeffs_);
1287  domain_.Add(other.domain_);
1288  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1289  }
1290 
1291  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1292  public void MergeFrom(pb::CodedInputStream input) {
1293  uint tag;
1294  while ((tag = input.ReadTag()) != 0) {
1295  switch(tag) {
1296  default:
1297  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1298  break;
1299  case 10:
1300  case 8: {
1301  vars_.AddEntriesFrom(input, _repeated_vars_codec);
1302  break;
1303  }
1304  case 18:
1305  case 16: {
1306  coeffs_.AddEntriesFrom(input, _repeated_coeffs_codec);
1307  break;
1308  }
1309  case 26:
1310  case 24: {
1311  domain_.AddEntriesFrom(input, _repeated_domain_codec);
1312  break;
1313  }
1314  }
1315  }
1316  }
1317 
1318  }
1319 
1324  public sealed partial class ElementConstraintProto : pb::IMessage<ElementConstraintProto> {
1325  private static readonly pb::MessageParser<ElementConstraintProto> _parser = new pb::MessageParser<ElementConstraintProto>(() => new ElementConstraintProto());
1326  private pb::UnknownFieldSet _unknownFields;
1327  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1328  public static pb::MessageParser<ElementConstraintProto> Parser { get { return _parser; } }
1329 
1330  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1331  public static pbr::MessageDescriptor Descriptor {
1332  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[7]; }
1333  }
1334 
1335  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1336  pbr::MessageDescriptor pb::IMessage.Descriptor {
1337  get { return Descriptor; }
1338  }
1339 
1340  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1342  OnConstruction();
1343  }
1344 
1345  partial void OnConstruction();
1346 
1347  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1349  index_ = other.index_;
1350  target_ = other.target_;
1351  vars_ = other.vars_.Clone();
1352  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1353  }
1354 
1355  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1357  return new ElementConstraintProto(this);
1358  }
1359 
1361  public const int IndexFieldNumber = 1;
1362  private int index_;
1363  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1364  public int Index {
1365  get { return index_; }
1366  set {
1367  index_ = value;
1368  }
1369  }
1370 
1372  public const int TargetFieldNumber = 2;
1373  private int target_;
1374  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1375  public int Target {
1376  get { return target_; }
1377  set {
1378  target_ = value;
1379  }
1380  }
1381 
1383  public const int VarsFieldNumber = 3;
1384  private static readonly pb::FieldCodec<int> _repeated_vars_codec
1385  = pb::FieldCodec.ForInt32(26);
1386  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
1387  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1388  public pbc::RepeatedField<int> Vars {
1389  get { return vars_; }
1390  }
1391 
1392  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1393  public override bool Equals(object other) {
1394  return Equals(other as ElementConstraintProto);
1395  }
1396 
1397  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1398  public bool Equals(ElementConstraintProto other) {
1399  if (ReferenceEquals(other, null)) {
1400  return false;
1401  }
1402  if (ReferenceEquals(other, this)) {
1403  return true;
1404  }
1405  if (Index != other.Index) return false;
1406  if (Target != other.Target) return false;
1407  if(!vars_.Equals(other.vars_)) return false;
1408  return Equals(_unknownFields, other._unknownFields);
1409  }
1410 
1411  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1412  public override int GetHashCode() {
1413  int hash = 1;
1414  if (Index != 0) hash ^= Index.GetHashCode();
1415  if (Target != 0) hash ^= Target.GetHashCode();
1416  hash ^= vars_.GetHashCode();
1417  if (_unknownFields != null) {
1418  hash ^= _unknownFields.GetHashCode();
1419  }
1420  return hash;
1421  }
1422 
1423  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1424  public override string ToString() {
1425  return pb::JsonFormatter.ToDiagnosticString(this);
1426  }
1427 
1428  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1429  public void WriteTo(pb::CodedOutputStream output) {
1430  if (Index != 0) {
1431  output.WriteRawTag(8);
1432  output.WriteInt32(Index);
1433  }
1434  if (Target != 0) {
1435  output.WriteRawTag(16);
1436  output.WriteInt32(Target);
1437  }
1438  vars_.WriteTo(output, _repeated_vars_codec);
1439  if (_unknownFields != null) {
1440  _unknownFields.WriteTo(output);
1441  }
1442  }
1443 
1444  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1445  public int CalculateSize() {
1446  int size = 0;
1447  if (Index != 0) {
1448  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Index);
1449  }
1450  if (Target != 0) {
1451  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Target);
1452  }
1453  size += vars_.CalculateSize(_repeated_vars_codec);
1454  if (_unknownFields != null) {
1455  size += _unknownFields.CalculateSize();
1456  }
1457  return size;
1458  }
1459 
1460  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1461  public void MergeFrom(ElementConstraintProto other) {
1462  if (other == null) {
1463  return;
1464  }
1465  if (other.Index != 0) {
1466  Index = other.Index;
1467  }
1468  if (other.Target != 0) {
1469  Target = other.Target;
1470  }
1471  vars_.Add(other.vars_);
1472  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1473  }
1474 
1475  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1476  public void MergeFrom(pb::CodedInputStream input) {
1477  uint tag;
1478  while ((tag = input.ReadTag()) != 0) {
1479  switch(tag) {
1480  default:
1481  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1482  break;
1483  case 8: {
1484  Index = input.ReadInt32();
1485  break;
1486  }
1487  case 16: {
1488  Target = input.ReadInt32();
1489  break;
1490  }
1491  case 26:
1492  case 24: {
1493  vars_.AddEntriesFrom(input, _repeated_vars_codec);
1494  break;
1495  }
1496  }
1497  }
1498  }
1499 
1500  }
1501 
1506  public sealed partial class IntervalConstraintProto : pb::IMessage<IntervalConstraintProto> {
1507  private static readonly pb::MessageParser<IntervalConstraintProto> _parser = new pb::MessageParser<IntervalConstraintProto>(() => new IntervalConstraintProto());
1508  private pb::UnknownFieldSet _unknownFields;
1509  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1510  public static pb::MessageParser<IntervalConstraintProto> Parser { get { return _parser; } }
1511 
1512  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1513  public static pbr::MessageDescriptor Descriptor {
1514  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[8]; }
1515  }
1516 
1517  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1518  pbr::MessageDescriptor pb::IMessage.Descriptor {
1519  get { return Descriptor; }
1520  }
1521 
1522  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1524  OnConstruction();
1525  }
1526 
1527  partial void OnConstruction();
1528 
1529  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1531  start_ = other.start_;
1532  end_ = other.end_;
1533  size_ = other.size_;
1534  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1535  }
1536 
1537  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1539  return new IntervalConstraintProto(this);
1540  }
1541 
1543  public const int StartFieldNumber = 1;
1544  private int start_;
1545  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1546  public int Start {
1547  get { return start_; }
1548  set {
1549  start_ = value;
1550  }
1551  }
1552 
1554  public const int EndFieldNumber = 2;
1555  private int end_;
1556  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1557  public int End {
1558  get { return end_; }
1559  set {
1560  end_ = value;
1561  }
1562  }
1563 
1565  public const int SizeFieldNumber = 3;
1566  private int size_;
1567  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1568  public int Size {
1569  get { return size_; }
1570  set {
1571  size_ = value;
1572  }
1573  }
1574 
1575  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1576  public override bool Equals(object other) {
1577  return Equals(other as IntervalConstraintProto);
1578  }
1579 
1580  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1581  public bool Equals(IntervalConstraintProto other) {
1582  if (ReferenceEquals(other, null)) {
1583  return false;
1584  }
1585  if (ReferenceEquals(other, this)) {
1586  return true;
1587  }
1588  if (Start != other.Start) return false;
1589  if (End != other.End) return false;
1590  if (Size != other.Size) return false;
1591  return Equals(_unknownFields, other._unknownFields);
1592  }
1593 
1594  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1595  public override int GetHashCode() {
1596  int hash = 1;
1597  if (Start != 0) hash ^= Start.GetHashCode();
1598  if (End != 0) hash ^= End.GetHashCode();
1599  if (Size != 0) hash ^= Size.GetHashCode();
1600  if (_unknownFields != null) {
1601  hash ^= _unknownFields.GetHashCode();
1602  }
1603  return hash;
1604  }
1605 
1606  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1607  public override string ToString() {
1608  return pb::JsonFormatter.ToDiagnosticString(this);
1609  }
1610 
1611  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1612  public void WriteTo(pb::CodedOutputStream output) {
1613  if (Start != 0) {
1614  output.WriteRawTag(8);
1615  output.WriteInt32(Start);
1616  }
1617  if (End != 0) {
1618  output.WriteRawTag(16);
1619  output.WriteInt32(End);
1620  }
1621  if (Size != 0) {
1622  output.WriteRawTag(24);
1623  output.WriteInt32(Size);
1624  }
1625  if (_unknownFields != null) {
1626  _unknownFields.WriteTo(output);
1627  }
1628  }
1629 
1630  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1631  public int CalculateSize() {
1632  int size = 0;
1633  if (Start != 0) {
1634  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);
1635  }
1636  if (End != 0) {
1637  size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);
1638  }
1639  if (Size != 0) {
1640  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Size);
1641  }
1642  if (_unknownFields != null) {
1643  size += _unknownFields.CalculateSize();
1644  }
1645  return size;
1646  }
1647 
1648  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1649  public void MergeFrom(IntervalConstraintProto other) {
1650  if (other == null) {
1651  return;
1652  }
1653  if (other.Start != 0) {
1654  Start = other.Start;
1655  }
1656  if (other.End != 0) {
1657  End = other.End;
1658  }
1659  if (other.Size != 0) {
1660  Size = other.Size;
1661  }
1662  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1663  }
1664 
1665  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1666  public void MergeFrom(pb::CodedInputStream input) {
1667  uint tag;
1668  while ((tag = input.ReadTag()) != 0) {
1669  switch(tag) {
1670  default:
1671  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1672  break;
1673  case 8: {
1674  Start = input.ReadInt32();
1675  break;
1676  }
1677  case 16: {
1678  End = input.ReadInt32();
1679  break;
1680  }
1681  case 24: {
1682  Size = input.ReadInt32();
1683  break;
1684  }
1685  }
1686  }
1687  }
1688 
1689  }
1690 
1698  public sealed partial class NoOverlapConstraintProto : pb::IMessage<NoOverlapConstraintProto> {
1699  private static readonly pb::MessageParser<NoOverlapConstraintProto> _parser = new pb::MessageParser<NoOverlapConstraintProto>(() => new NoOverlapConstraintProto());
1700  private pb::UnknownFieldSet _unknownFields;
1701  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1702  public static pb::MessageParser<NoOverlapConstraintProto> Parser { get { return _parser; } }
1703 
1704  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1705  public static pbr::MessageDescriptor Descriptor {
1706  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[9]; }
1707  }
1708 
1709  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1710  pbr::MessageDescriptor pb::IMessage.Descriptor {
1711  get { return Descriptor; }
1712  }
1713 
1714  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1716  OnConstruction();
1717  }
1718 
1719  partial void OnConstruction();
1720 
1721  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1723  intervals_ = other.intervals_.Clone();
1724  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1725  }
1726 
1727  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1729  return new NoOverlapConstraintProto(this);
1730  }
1731 
1733  public const int IntervalsFieldNumber = 1;
1734  private static readonly pb::FieldCodec<int> _repeated_intervals_codec
1735  = pb::FieldCodec.ForInt32(10);
1736  private readonly pbc::RepeatedField<int> intervals_ = new pbc::RepeatedField<int>();
1737  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1738  public pbc::RepeatedField<int> Intervals {
1739  get { return intervals_; }
1740  }
1741 
1742  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1743  public override bool Equals(object other) {
1744  return Equals(other as NoOverlapConstraintProto);
1745  }
1746 
1747  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1748  public bool Equals(NoOverlapConstraintProto other) {
1749  if (ReferenceEquals(other, null)) {
1750  return false;
1751  }
1752  if (ReferenceEquals(other, this)) {
1753  return true;
1754  }
1755  if(!intervals_.Equals(other.intervals_)) return false;
1756  return Equals(_unknownFields, other._unknownFields);
1757  }
1758 
1759  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1760  public override int GetHashCode() {
1761  int hash = 1;
1762  hash ^= intervals_.GetHashCode();
1763  if (_unknownFields != null) {
1764  hash ^= _unknownFields.GetHashCode();
1765  }
1766  return hash;
1767  }
1768 
1769  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1770  public override string ToString() {
1771  return pb::JsonFormatter.ToDiagnosticString(this);
1772  }
1773 
1774  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1775  public void WriteTo(pb::CodedOutputStream output) {
1776  intervals_.WriteTo(output, _repeated_intervals_codec);
1777  if (_unknownFields != null) {
1778  _unknownFields.WriteTo(output);
1779  }
1780  }
1781 
1782  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1783  public int CalculateSize() {
1784  int size = 0;
1785  size += intervals_.CalculateSize(_repeated_intervals_codec);
1786  if (_unknownFields != null) {
1787  size += _unknownFields.CalculateSize();
1788  }
1789  return size;
1790  }
1791 
1792  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1794  if (other == null) {
1795  return;
1796  }
1797  intervals_.Add(other.intervals_);
1798  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1799  }
1800 
1801  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1802  public void MergeFrom(pb::CodedInputStream input) {
1803  uint tag;
1804  while ((tag = input.ReadTag()) != 0) {
1805  switch(tag) {
1806  default:
1807  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1808  break;
1809  case 10:
1810  case 8: {
1811  intervals_.AddEntriesFrom(input, _repeated_intervals_codec);
1812  break;
1813  }
1814  }
1815  }
1816  }
1817 
1818  }
1819 
1823  public sealed partial class NoOverlap2DConstraintProto : pb::IMessage<NoOverlap2DConstraintProto> {
1824  private static readonly pb::MessageParser<NoOverlap2DConstraintProto> _parser = new pb::MessageParser<NoOverlap2DConstraintProto>(() => new NoOverlap2DConstraintProto());
1825  private pb::UnknownFieldSet _unknownFields;
1826  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1827  public static pb::MessageParser<NoOverlap2DConstraintProto> Parser { get { return _parser; } }
1828 
1829  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1830  public static pbr::MessageDescriptor Descriptor {
1831  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[10]; }
1832  }
1833 
1834  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1835  pbr::MessageDescriptor pb::IMessage.Descriptor {
1836  get { return Descriptor; }
1837  }
1838 
1839  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1841  OnConstruction();
1842  }
1843 
1844  partial void OnConstruction();
1845 
1846  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1848  xIntervals_ = other.xIntervals_.Clone();
1849  yIntervals_ = other.yIntervals_.Clone();
1850  boxesWithNullAreaCanOverlap_ = other.boxesWithNullAreaCanOverlap_;
1851  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1852  }
1853 
1854  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1856  return new NoOverlap2DConstraintProto(this);
1857  }
1858 
1860  public const int XIntervalsFieldNumber = 1;
1861  private static readonly pb::FieldCodec<int> _repeated_xIntervals_codec
1862  = pb::FieldCodec.ForInt32(10);
1863  private readonly pbc::RepeatedField<int> xIntervals_ = new pbc::RepeatedField<int>();
1864  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1865  public pbc::RepeatedField<int> XIntervals {
1866  get { return xIntervals_; }
1867  }
1868 
1870  public const int YIntervalsFieldNumber = 2;
1871  private static readonly pb::FieldCodec<int> _repeated_yIntervals_codec
1872  = pb::FieldCodec.ForInt32(18);
1873  private readonly pbc::RepeatedField<int> yIntervals_ = new pbc::RepeatedField<int>();
1877  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1878  public pbc::RepeatedField<int> YIntervals {
1879  get { return yIntervals_; }
1880  }
1881 
1883  public const int BoxesWithNullAreaCanOverlapFieldNumber = 3;
1884  private bool boxesWithNullAreaCanOverlap_;
1885  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1886  public bool BoxesWithNullAreaCanOverlap {
1887  get { return boxesWithNullAreaCanOverlap_; }
1888  set {
1889  boxesWithNullAreaCanOverlap_ = value;
1890  }
1891  }
1892 
1893  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1894  public override bool Equals(object other) {
1895  return Equals(other as NoOverlap2DConstraintProto);
1896  }
1897 
1898  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1899  public bool Equals(NoOverlap2DConstraintProto other) {
1900  if (ReferenceEquals(other, null)) {
1901  return false;
1902  }
1903  if (ReferenceEquals(other, this)) {
1904  return true;
1905  }
1906  if(!xIntervals_.Equals(other.xIntervals_)) return false;
1907  if(!yIntervals_.Equals(other.yIntervals_)) return false;
1908  if (BoxesWithNullAreaCanOverlap != other.BoxesWithNullAreaCanOverlap) return false;
1909  return Equals(_unknownFields, other._unknownFields);
1910  }
1911 
1912  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1913  public override int GetHashCode() {
1914  int hash = 1;
1915  hash ^= xIntervals_.GetHashCode();
1916  hash ^= yIntervals_.GetHashCode();
1917  if (BoxesWithNullAreaCanOverlap != false) hash ^= BoxesWithNullAreaCanOverlap.GetHashCode();
1918  if (_unknownFields != null) {
1919  hash ^= _unknownFields.GetHashCode();
1920  }
1921  return hash;
1922  }
1923 
1924  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1925  public override string ToString() {
1926  return pb::JsonFormatter.ToDiagnosticString(this);
1927  }
1928 
1929  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1930  public void WriteTo(pb::CodedOutputStream output) {
1931  xIntervals_.WriteTo(output, _repeated_xIntervals_codec);
1932  yIntervals_.WriteTo(output, _repeated_yIntervals_codec);
1933  if (BoxesWithNullAreaCanOverlap != false) {
1934  output.WriteRawTag(24);
1935  output.WriteBool(BoxesWithNullAreaCanOverlap);
1936  }
1937  if (_unknownFields != null) {
1938  _unknownFields.WriteTo(output);
1939  }
1940  }
1941 
1942  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1943  public int CalculateSize() {
1944  int size = 0;
1945  size += xIntervals_.CalculateSize(_repeated_xIntervals_codec);
1946  size += yIntervals_.CalculateSize(_repeated_yIntervals_codec);
1947  if (BoxesWithNullAreaCanOverlap != false) {
1948  size += 1 + 1;
1949  }
1950  if (_unknownFields != null) {
1951  size += _unknownFields.CalculateSize();
1952  }
1953  return size;
1954  }
1955 
1956  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1958  if (other == null) {
1959  return;
1960  }
1961  xIntervals_.Add(other.xIntervals_);
1962  yIntervals_.Add(other.yIntervals_);
1963  if (other.BoxesWithNullAreaCanOverlap != false) {
1964  BoxesWithNullAreaCanOverlap = other.BoxesWithNullAreaCanOverlap;
1965  }
1966  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1967  }
1968 
1969  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1970  public void MergeFrom(pb::CodedInputStream input) {
1971  uint tag;
1972  while ((tag = input.ReadTag()) != 0) {
1973  switch(tag) {
1974  default:
1975  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1976  break;
1977  case 10:
1978  case 8: {
1979  xIntervals_.AddEntriesFrom(input, _repeated_xIntervals_codec);
1980  break;
1981  }
1982  case 18:
1983  case 16: {
1984  yIntervals_.AddEntriesFrom(input, _repeated_yIntervals_codec);
1985  break;
1986  }
1987  case 24: {
1988  BoxesWithNullAreaCanOverlap = input.ReadBool();
1989  break;
1990  }
1991  }
1992  }
1993  }
1994 
1995  }
1996 
2003  public sealed partial class CumulativeConstraintProto : pb::IMessage<CumulativeConstraintProto> {
2004  private static readonly pb::MessageParser<CumulativeConstraintProto> _parser = new pb::MessageParser<CumulativeConstraintProto>(() => new CumulativeConstraintProto());
2005  private pb::UnknownFieldSet _unknownFields;
2006  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2007  public static pb::MessageParser<CumulativeConstraintProto> Parser { get { return _parser; } }
2008 
2009  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2010  public static pbr::MessageDescriptor Descriptor {
2011  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[11]; }
2012  }
2013 
2014  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2015  pbr::MessageDescriptor pb::IMessage.Descriptor {
2016  get { return Descriptor; }
2017  }
2018 
2019  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2021  OnConstruction();
2022  }
2023 
2024  partial void OnConstruction();
2025 
2026  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2028  capacity_ = other.capacity_;
2029  intervals_ = other.intervals_.Clone();
2030  demands_ = other.demands_.Clone();
2031  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2032  }
2033 
2034  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2036  return new CumulativeConstraintProto(this);
2037  }
2038 
2040  public const int CapacityFieldNumber = 1;
2041  private int capacity_;
2042  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2043  public int Capacity {
2044  get { return capacity_; }
2045  set {
2046  capacity_ = value;
2047  }
2048  }
2049 
2051  public const int IntervalsFieldNumber = 2;
2052  private static readonly pb::FieldCodec<int> _repeated_intervals_codec
2053  = pb::FieldCodec.ForInt32(18);
2054  private readonly pbc::RepeatedField<int> intervals_ = new pbc::RepeatedField<int>();
2055  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2056  public pbc::RepeatedField<int> Intervals {
2057  get { return intervals_; }
2058  }
2059 
2061  public const int DemandsFieldNumber = 3;
2062  private static readonly pb::FieldCodec<int> _repeated_demands_codec
2063  = pb::FieldCodec.ForInt32(26);
2064  private readonly pbc::RepeatedField<int> demands_ = new pbc::RepeatedField<int>();
2068  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2069  public pbc::RepeatedField<int> Demands {
2070  get { return demands_; }
2071  }
2072 
2073  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2074  public override bool Equals(object other) {
2075  return Equals(other as CumulativeConstraintProto);
2076  }
2077 
2078  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2079  public bool Equals(CumulativeConstraintProto other) {
2080  if (ReferenceEquals(other, null)) {
2081  return false;
2082  }
2083  if (ReferenceEquals(other, this)) {
2084  return true;
2085  }
2086  if (Capacity != other.Capacity) return false;
2087  if(!intervals_.Equals(other.intervals_)) return false;
2088  if(!demands_.Equals(other.demands_)) return false;
2089  return Equals(_unknownFields, other._unknownFields);
2090  }
2091 
2092  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2093  public override int GetHashCode() {
2094  int hash = 1;
2095  if (Capacity != 0) hash ^= Capacity.GetHashCode();
2096  hash ^= intervals_.GetHashCode();
2097  hash ^= demands_.GetHashCode();
2098  if (_unknownFields != null) {
2099  hash ^= _unknownFields.GetHashCode();
2100  }
2101  return hash;
2102  }
2103 
2104  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2105  public override string ToString() {
2106  return pb::JsonFormatter.ToDiagnosticString(this);
2107  }
2108 
2109  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2110  public void WriteTo(pb::CodedOutputStream output) {
2111  if (Capacity != 0) {
2112  output.WriteRawTag(8);
2113  output.WriteInt32(Capacity);
2114  }
2115  intervals_.WriteTo(output, _repeated_intervals_codec);
2116  demands_.WriteTo(output, _repeated_demands_codec);
2117  if (_unknownFields != null) {
2118  _unknownFields.WriteTo(output);
2119  }
2120  }
2121 
2122  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2123  public int CalculateSize() {
2124  int size = 0;
2125  if (Capacity != 0) {
2126  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Capacity);
2127  }
2128  size += intervals_.CalculateSize(_repeated_intervals_codec);
2129  size += demands_.CalculateSize(_repeated_demands_codec);
2130  if (_unknownFields != null) {
2131  size += _unknownFields.CalculateSize();
2132  }
2133  return size;
2134  }
2135 
2136  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2138  if (other == null) {
2139  return;
2140  }
2141  if (other.Capacity != 0) {
2142  Capacity = other.Capacity;
2143  }
2144  intervals_.Add(other.intervals_);
2145  demands_.Add(other.demands_);
2146  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2147  }
2148 
2149  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2150  public void MergeFrom(pb::CodedInputStream input) {
2151  uint tag;
2152  while ((tag = input.ReadTag()) != 0) {
2153  switch(tag) {
2154  default:
2155  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2156  break;
2157  case 8: {
2158  Capacity = input.ReadInt32();
2159  break;
2160  }
2161  case 18:
2162  case 16: {
2163  intervals_.AddEntriesFrom(input, _repeated_intervals_codec);
2164  break;
2165  }
2166  case 26:
2167  case 24: {
2168  demands_.AddEntriesFrom(input, _repeated_demands_codec);
2169  break;
2170  }
2171  }
2172  }
2173  }
2174 
2175  }
2176 
2193  public sealed partial class ReservoirConstraintProto : pb::IMessage<ReservoirConstraintProto> {
2194  private static readonly pb::MessageParser<ReservoirConstraintProto> _parser = new pb::MessageParser<ReservoirConstraintProto>(() => new ReservoirConstraintProto());
2195  private pb::UnknownFieldSet _unknownFields;
2196  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2197  public static pb::MessageParser<ReservoirConstraintProto> Parser { get { return _parser; } }
2198 
2199  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2200  public static pbr::MessageDescriptor Descriptor {
2201  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[12]; }
2202  }
2203 
2204  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2205  pbr::MessageDescriptor pb::IMessage.Descriptor {
2206  get { return Descriptor; }
2207  }
2208 
2209  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2211  OnConstruction();
2212  }
2213 
2214  partial void OnConstruction();
2215 
2216  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2218  minLevel_ = other.minLevel_;
2219  maxLevel_ = other.maxLevel_;
2220  times_ = other.times_.Clone();
2221  demands_ = other.demands_.Clone();
2222  actives_ = other.actives_.Clone();
2223  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2224  }
2225 
2226  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2228  return new ReservoirConstraintProto(this);
2229  }
2230 
2232  public const int MinLevelFieldNumber = 1;
2233  private long minLevel_;
2234  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2235  public long MinLevel {
2236  get { return minLevel_; }
2237  set {
2238  minLevel_ = value;
2239  }
2240  }
2241 
2243  public const int MaxLevelFieldNumber = 2;
2244  private long maxLevel_;
2245  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2246  public long MaxLevel {
2247  get { return maxLevel_; }
2248  set {
2249  maxLevel_ = value;
2250  }
2251  }
2252 
2254  public const int TimesFieldNumber = 3;
2255  private static readonly pb::FieldCodec<int> _repeated_times_codec
2256  = pb::FieldCodec.ForInt32(26);
2257  private readonly pbc::RepeatedField<int> times_ = new pbc::RepeatedField<int>();
2261  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2262  public pbc::RepeatedField<int> Times {
2263  get { return times_; }
2264  }
2265 
2267  public const int DemandsFieldNumber = 4;
2268  private static readonly pb::FieldCodec<long> _repeated_demands_codec
2269  = pb::FieldCodec.ForInt64(34);
2270  private readonly pbc::RepeatedField<long> demands_ = new pbc::RepeatedField<long>();
2274  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2275  public pbc::RepeatedField<long> Demands {
2276  get { return demands_; }
2277  }
2278 
2280  public const int ActivesFieldNumber = 5;
2281  private static readonly pb::FieldCodec<int> _repeated_actives_codec
2282  = pb::FieldCodec.ForInt32(42);
2283  private readonly pbc::RepeatedField<int> actives_ = new pbc::RepeatedField<int>();
2287  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2288  public pbc::RepeatedField<int> Actives {
2289  get { return actives_; }
2290  }
2291 
2292  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2293  public override bool Equals(object other) {
2294  return Equals(other as ReservoirConstraintProto);
2295  }
2296 
2297  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2298  public bool Equals(ReservoirConstraintProto other) {
2299  if (ReferenceEquals(other, null)) {
2300  return false;
2301  }
2302  if (ReferenceEquals(other, this)) {
2303  return true;
2304  }
2305  if (MinLevel != other.MinLevel) return false;
2306  if (MaxLevel != other.MaxLevel) return false;
2307  if(!times_.Equals(other.times_)) return false;
2308  if(!demands_.Equals(other.demands_)) return false;
2309  if(!actives_.Equals(other.actives_)) return false;
2310  return Equals(_unknownFields, other._unknownFields);
2311  }
2312 
2313  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2314  public override int GetHashCode() {
2315  int hash = 1;
2316  if (MinLevel != 0L) hash ^= MinLevel.GetHashCode();
2317  if (MaxLevel != 0L) hash ^= MaxLevel.GetHashCode();
2318  hash ^= times_.GetHashCode();
2319  hash ^= demands_.GetHashCode();
2320  hash ^= actives_.GetHashCode();
2321  if (_unknownFields != null) {
2322  hash ^= _unknownFields.GetHashCode();
2323  }
2324  return hash;
2325  }
2326 
2327  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2328  public override string ToString() {
2329  return pb::JsonFormatter.ToDiagnosticString(this);
2330  }
2331 
2332  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2333  public void WriteTo(pb::CodedOutputStream output) {
2334  if (MinLevel != 0L) {
2335  output.WriteRawTag(8);
2336  output.WriteInt64(MinLevel);
2337  }
2338  if (MaxLevel != 0L) {
2339  output.WriteRawTag(16);
2340  output.WriteInt64(MaxLevel);
2341  }
2342  times_.WriteTo(output, _repeated_times_codec);
2343  demands_.WriteTo(output, _repeated_demands_codec);
2344  actives_.WriteTo(output, _repeated_actives_codec);
2345  if (_unknownFields != null) {
2346  _unknownFields.WriteTo(output);
2347  }
2348  }
2349 
2350  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2351  public int CalculateSize() {
2352  int size = 0;
2353  if (MinLevel != 0L) {
2354  size += 1 + pb::CodedOutputStream.ComputeInt64Size(MinLevel);
2355  }
2356  if (MaxLevel != 0L) {
2357  size += 1 + pb::CodedOutputStream.ComputeInt64Size(MaxLevel);
2358  }
2359  size += times_.CalculateSize(_repeated_times_codec);
2360  size += demands_.CalculateSize(_repeated_demands_codec);
2361  size += actives_.CalculateSize(_repeated_actives_codec);
2362  if (_unknownFields != null) {
2363  size += _unknownFields.CalculateSize();
2364  }
2365  return size;
2366  }
2367 
2368  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2370  if (other == null) {
2371  return;
2372  }
2373  if (other.MinLevel != 0L) {
2374  MinLevel = other.MinLevel;
2375  }
2376  if (other.MaxLevel != 0L) {
2377  MaxLevel = other.MaxLevel;
2378  }
2379  times_.Add(other.times_);
2380  demands_.Add(other.demands_);
2381  actives_.Add(other.actives_);
2382  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2383  }
2384 
2385  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2386  public void MergeFrom(pb::CodedInputStream input) {
2387  uint tag;
2388  while ((tag = input.ReadTag()) != 0) {
2389  switch(tag) {
2390  default:
2391  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2392  break;
2393  case 8: {
2394  MinLevel = input.ReadInt64();
2395  break;
2396  }
2397  case 16: {
2398  MaxLevel = input.ReadInt64();
2399  break;
2400  }
2401  case 26:
2402  case 24: {
2403  times_.AddEntriesFrom(input, _repeated_times_codec);
2404  break;
2405  }
2406  case 34:
2407  case 32: {
2408  demands_.AddEntriesFrom(input, _repeated_demands_codec);
2409  break;
2410  }
2411  case 42:
2412  case 40: {
2413  actives_.AddEntriesFrom(input, _repeated_actives_codec);
2414  break;
2415  }
2416  }
2417  }
2418  }
2419 
2420  }
2421 
2433  public sealed partial class CircuitConstraintProto : pb::IMessage<CircuitConstraintProto> {
2434  private static readonly pb::MessageParser<CircuitConstraintProto> _parser = new pb::MessageParser<CircuitConstraintProto>(() => new CircuitConstraintProto());
2435  private pb::UnknownFieldSet _unknownFields;
2436  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2437  public static pb::MessageParser<CircuitConstraintProto> Parser { get { return _parser; } }
2438 
2439  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2440  public static pbr::MessageDescriptor Descriptor {
2441  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[13]; }
2442  }
2443 
2444  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2445  pbr::MessageDescriptor pb::IMessage.Descriptor {
2446  get { return Descriptor; }
2447  }
2448 
2449  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2451  OnConstruction();
2452  }
2453 
2454  partial void OnConstruction();
2455 
2456  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2458  tails_ = other.tails_.Clone();
2459  heads_ = other.heads_.Clone();
2460  literals_ = other.literals_.Clone();
2461  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2462  }
2463 
2464  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2466  return new CircuitConstraintProto(this);
2467  }
2468 
2470  public const int TailsFieldNumber = 3;
2471  private static readonly pb::FieldCodec<int> _repeated_tails_codec
2472  = pb::FieldCodec.ForInt32(26);
2473  private readonly pbc::RepeatedField<int> tails_ = new pbc::RepeatedField<int>();
2474  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2475  public pbc::RepeatedField<int> Tails {
2476  get { return tails_; }
2477  }
2478 
2480  public const int HeadsFieldNumber = 4;
2481  private static readonly pb::FieldCodec<int> _repeated_heads_codec
2482  = pb::FieldCodec.ForInt32(34);
2483  private readonly pbc::RepeatedField<int> heads_ = new pbc::RepeatedField<int>();
2484  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2485  public pbc::RepeatedField<int> Heads {
2486  get { return heads_; }
2487  }
2488 
2490  public const int LiteralsFieldNumber = 5;
2491  private static readonly pb::FieldCodec<int> _repeated_literals_codec
2492  = pb::FieldCodec.ForInt32(42);
2493  private readonly pbc::RepeatedField<int> literals_ = new pbc::RepeatedField<int>();
2494  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2495  public pbc::RepeatedField<int> Literals {
2496  get { return literals_; }
2497  }
2498 
2499  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2500  public override bool Equals(object other) {
2501  return Equals(other as CircuitConstraintProto);
2502  }
2503 
2504  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2505  public bool Equals(CircuitConstraintProto other) {
2506  if (ReferenceEquals(other, null)) {
2507  return false;
2508  }
2509  if (ReferenceEquals(other, this)) {
2510  return true;
2511  }
2512  if(!tails_.Equals(other.tails_)) return false;
2513  if(!heads_.Equals(other.heads_)) return false;
2514  if(!literals_.Equals(other.literals_)) return false;
2515  return Equals(_unknownFields, other._unknownFields);
2516  }
2517 
2518  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2519  public override int GetHashCode() {
2520  int hash = 1;
2521  hash ^= tails_.GetHashCode();
2522  hash ^= heads_.GetHashCode();
2523  hash ^= literals_.GetHashCode();
2524  if (_unknownFields != null) {
2525  hash ^= _unknownFields.GetHashCode();
2526  }
2527  return hash;
2528  }
2529 
2530  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2531  public override string ToString() {
2532  return pb::JsonFormatter.ToDiagnosticString(this);
2533  }
2534 
2535  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2536  public void WriteTo(pb::CodedOutputStream output) {
2537  tails_.WriteTo(output, _repeated_tails_codec);
2538  heads_.WriteTo(output, _repeated_heads_codec);
2539  literals_.WriteTo(output, _repeated_literals_codec);
2540  if (_unknownFields != null) {
2541  _unknownFields.WriteTo(output);
2542  }
2543  }
2544 
2545  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2546  public int CalculateSize() {
2547  int size = 0;
2548  size += tails_.CalculateSize(_repeated_tails_codec);
2549  size += heads_.CalculateSize(_repeated_heads_codec);
2550  size += literals_.CalculateSize(_repeated_literals_codec);
2551  if (_unknownFields != null) {
2552  size += _unknownFields.CalculateSize();
2553  }
2554  return size;
2555  }
2556 
2557  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2558  public void MergeFrom(CircuitConstraintProto other) {
2559  if (other == null) {
2560  return;
2561  }
2562  tails_.Add(other.tails_);
2563  heads_.Add(other.heads_);
2564  literals_.Add(other.literals_);
2565  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2566  }
2567 
2568  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2569  public void MergeFrom(pb::CodedInputStream input) {
2570  uint tag;
2571  while ((tag = input.ReadTag()) != 0) {
2572  switch(tag) {
2573  default:
2574  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2575  break;
2576  case 26:
2577  case 24: {
2578  tails_.AddEntriesFrom(input, _repeated_tails_codec);
2579  break;
2580  }
2581  case 34:
2582  case 32: {
2583  heads_.AddEntriesFrom(input, _repeated_heads_codec);
2584  break;
2585  }
2586  case 42:
2587  case 40: {
2588  literals_.AddEntriesFrom(input, _repeated_literals_codec);
2589  break;
2590  }
2591  }
2592  }
2593  }
2594 
2595  }
2596 
2614  public sealed partial class RoutesConstraintProto : pb::IMessage<RoutesConstraintProto> {
2615  private static readonly pb::MessageParser<RoutesConstraintProto> _parser = new pb::MessageParser<RoutesConstraintProto>(() => new RoutesConstraintProto());
2616  private pb::UnknownFieldSet _unknownFields;
2617  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2618  public static pb::MessageParser<RoutesConstraintProto> Parser { get { return _parser; } }
2619 
2620  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2621  public static pbr::MessageDescriptor Descriptor {
2622  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[14]; }
2623  }
2624 
2625  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2626  pbr::MessageDescriptor pb::IMessage.Descriptor {
2627  get { return Descriptor; }
2628  }
2629 
2630  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2632  OnConstruction();
2633  }
2634 
2635  partial void OnConstruction();
2636 
2637  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2639  tails_ = other.tails_.Clone();
2640  heads_ = other.heads_.Clone();
2641  literals_ = other.literals_.Clone();
2642  demands_ = other.demands_.Clone();
2643  capacity_ = other.capacity_;
2644  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2645  }
2646 
2647  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2649  return new RoutesConstraintProto(this);
2650  }
2651 
2653  public const int TailsFieldNumber = 1;
2654  private static readonly pb::FieldCodec<int> _repeated_tails_codec
2655  = pb::FieldCodec.ForInt32(10);
2656  private readonly pbc::RepeatedField<int> tails_ = new pbc::RepeatedField<int>();
2657  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2658  public pbc::RepeatedField<int> Tails {
2659  get { return tails_; }
2660  }
2661 
2663  public const int HeadsFieldNumber = 2;
2664  private static readonly pb::FieldCodec<int> _repeated_heads_codec
2665  = pb::FieldCodec.ForInt32(18);
2666  private readonly pbc::RepeatedField<int> heads_ = new pbc::RepeatedField<int>();
2667  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2668  public pbc::RepeatedField<int> Heads {
2669  get { return heads_; }
2670  }
2671 
2673  public const int LiteralsFieldNumber = 3;
2674  private static readonly pb::FieldCodec<int> _repeated_literals_codec
2675  = pb::FieldCodec.ForInt32(26);
2676  private readonly pbc::RepeatedField<int> literals_ = new pbc::RepeatedField<int>();
2677  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2678  public pbc::RepeatedField<int> Literals {
2679  get { return literals_; }
2680  }
2681 
2683  public const int DemandsFieldNumber = 4;
2684  private static readonly pb::FieldCodec<int> _repeated_demands_codec
2685  = pb::FieldCodec.ForInt32(34);
2686  private readonly pbc::RepeatedField<int> demands_ = new pbc::RepeatedField<int>();
2692  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2693  public pbc::RepeatedField<int> Demands {
2694  get { return demands_; }
2695  }
2696 
2698  public const int CapacityFieldNumber = 5;
2699  private long capacity_;
2700  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2701  public long Capacity {
2702  get { return capacity_; }
2703  set {
2704  capacity_ = value;
2705  }
2706  }
2707 
2708  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2709  public override bool Equals(object other) {
2710  return Equals(other as RoutesConstraintProto);
2711  }
2712 
2713  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2714  public bool Equals(RoutesConstraintProto other) {
2715  if (ReferenceEquals(other, null)) {
2716  return false;
2717  }
2718  if (ReferenceEquals(other, this)) {
2719  return true;
2720  }
2721  if(!tails_.Equals(other.tails_)) return false;
2722  if(!heads_.Equals(other.heads_)) return false;
2723  if(!literals_.Equals(other.literals_)) return false;
2724  if(!demands_.Equals(other.demands_)) return false;
2725  if (Capacity != other.Capacity) return false;
2726  return Equals(_unknownFields, other._unknownFields);
2727  }
2728 
2729  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2730  public override int GetHashCode() {
2731  int hash = 1;
2732  hash ^= tails_.GetHashCode();
2733  hash ^= heads_.GetHashCode();
2734  hash ^= literals_.GetHashCode();
2735  hash ^= demands_.GetHashCode();
2736  if (Capacity != 0L) hash ^= Capacity.GetHashCode();
2737  if (_unknownFields != null) {
2738  hash ^= _unknownFields.GetHashCode();
2739  }
2740  return hash;
2741  }
2742 
2743  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2744  public override string ToString() {
2745  return pb::JsonFormatter.ToDiagnosticString(this);
2746  }
2747 
2748  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2749  public void WriteTo(pb::CodedOutputStream output) {
2750  tails_.WriteTo(output, _repeated_tails_codec);
2751  heads_.WriteTo(output, _repeated_heads_codec);
2752  literals_.WriteTo(output, _repeated_literals_codec);
2753  demands_.WriteTo(output, _repeated_demands_codec);
2754  if (Capacity != 0L) {
2755  output.WriteRawTag(40);
2756  output.WriteInt64(Capacity);
2757  }
2758  if (_unknownFields != null) {
2759  _unknownFields.WriteTo(output);
2760  }
2761  }
2762 
2763  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2764  public int CalculateSize() {
2765  int size = 0;
2766  size += tails_.CalculateSize(_repeated_tails_codec);
2767  size += heads_.CalculateSize(_repeated_heads_codec);
2768  size += literals_.CalculateSize(_repeated_literals_codec);
2769  size += demands_.CalculateSize(_repeated_demands_codec);
2770  if (Capacity != 0L) {
2771  size += 1 + pb::CodedOutputStream.ComputeInt64Size(Capacity);
2772  }
2773  if (_unknownFields != null) {
2774  size += _unknownFields.CalculateSize();
2775  }
2776  return size;
2777  }
2778 
2779  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2780  public void MergeFrom(RoutesConstraintProto other) {
2781  if (other == null) {
2782  return;
2783  }
2784  tails_.Add(other.tails_);
2785  heads_.Add(other.heads_);
2786  literals_.Add(other.literals_);
2787  demands_.Add(other.demands_);
2788  if (other.Capacity != 0L) {
2789  Capacity = other.Capacity;
2790  }
2791  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2792  }
2793 
2794  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2795  public void MergeFrom(pb::CodedInputStream input) {
2796  uint tag;
2797  while ((tag = input.ReadTag()) != 0) {
2798  switch(tag) {
2799  default:
2800  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2801  break;
2802  case 10:
2803  case 8: {
2804  tails_.AddEntriesFrom(input, _repeated_tails_codec);
2805  break;
2806  }
2807  case 18:
2808  case 16: {
2809  heads_.AddEntriesFrom(input, _repeated_heads_codec);
2810  break;
2811  }
2812  case 26:
2813  case 24: {
2814  literals_.AddEntriesFrom(input, _repeated_literals_codec);
2815  break;
2816  }
2817  case 34:
2818  case 32: {
2819  demands_.AddEntriesFrom(input, _repeated_demands_codec);
2820  break;
2821  }
2822  case 40: {
2823  Capacity = input.ReadInt64();
2824  break;
2825  }
2826  }
2827  }
2828  }
2829 
2830  }
2831 
2837  public sealed partial class CircuitCoveringConstraintProto : pb::IMessage<CircuitCoveringConstraintProto> {
2838  private static readonly pb::MessageParser<CircuitCoveringConstraintProto> _parser = new pb::MessageParser<CircuitCoveringConstraintProto>(() => new CircuitCoveringConstraintProto());
2839  private pb::UnknownFieldSet _unknownFields;
2840  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2841  public static pb::MessageParser<CircuitCoveringConstraintProto> Parser { get { return _parser; } }
2842 
2843  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2844  public static pbr::MessageDescriptor Descriptor {
2845  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[15]; }
2846  }
2847 
2848  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2849  pbr::MessageDescriptor pb::IMessage.Descriptor {
2850  get { return Descriptor; }
2851  }
2852 
2853  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2855  OnConstruction();
2856  }
2857 
2858  partial void OnConstruction();
2859 
2860  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2862  nexts_ = other.nexts_.Clone();
2863  distinguishedNodes_ = other.distinguishedNodes_.Clone();
2864  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2865  }
2866 
2867  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2869  return new CircuitCoveringConstraintProto(this);
2870  }
2871 
2873  public const int NextsFieldNumber = 1;
2874  private static readonly pb::FieldCodec<int> _repeated_nexts_codec
2875  = pb::FieldCodec.ForInt32(10);
2876  private readonly pbc::RepeatedField<int> nexts_ = new pbc::RepeatedField<int>();
2877  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2878  public pbc::RepeatedField<int> Nexts {
2879  get { return nexts_; }
2880  }
2881 
2883  public const int DistinguishedNodesFieldNumber = 2;
2884  private static readonly pb::FieldCodec<long> _repeated_distinguishedNodes_codec
2885  = pb::FieldCodec.ForInt64(18);
2886  private readonly pbc::RepeatedField<long> distinguishedNodes_ = new pbc::RepeatedField<long>();
2887  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2888  public pbc::RepeatedField<long> DistinguishedNodes {
2889  get { return distinguishedNodes_; }
2890  }
2891 
2892  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2893  public override bool Equals(object other) {
2894  return Equals(other as CircuitCoveringConstraintProto);
2895  }
2896 
2897  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2899  if (ReferenceEquals(other, null)) {
2900  return false;
2901  }
2902  if (ReferenceEquals(other, this)) {
2903  return true;
2904  }
2905  if(!nexts_.Equals(other.nexts_)) return false;
2906  if(!distinguishedNodes_.Equals(other.distinguishedNodes_)) return false;
2907  return Equals(_unknownFields, other._unknownFields);
2908  }
2909 
2910  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2911  public override int GetHashCode() {
2912  int hash = 1;
2913  hash ^= nexts_.GetHashCode();
2914  hash ^= distinguishedNodes_.GetHashCode();
2915  if (_unknownFields != null) {
2916  hash ^= _unknownFields.GetHashCode();
2917  }
2918  return hash;
2919  }
2920 
2921  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2922  public override string ToString() {
2923  return pb::JsonFormatter.ToDiagnosticString(this);
2924  }
2925 
2926  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2927  public void WriteTo(pb::CodedOutputStream output) {
2928  nexts_.WriteTo(output, _repeated_nexts_codec);
2929  distinguishedNodes_.WriteTo(output, _repeated_distinguishedNodes_codec);
2930  if (_unknownFields != null) {
2931  _unknownFields.WriteTo(output);
2932  }
2933  }
2934 
2935  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2936  public int CalculateSize() {
2937  int size = 0;
2938  size += nexts_.CalculateSize(_repeated_nexts_codec);
2939  size += distinguishedNodes_.CalculateSize(_repeated_distinguishedNodes_codec);
2940  if (_unknownFields != null) {
2941  size += _unknownFields.CalculateSize();
2942  }
2943  return size;
2944  }
2945 
2946  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2948  if (other == null) {
2949  return;
2950  }
2951  nexts_.Add(other.nexts_);
2952  distinguishedNodes_.Add(other.distinguishedNodes_);
2953  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2954  }
2955 
2956  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2957  public void MergeFrom(pb::CodedInputStream input) {
2958  uint tag;
2959  while ((tag = input.ReadTag()) != 0) {
2960  switch(tag) {
2961  default:
2962  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2963  break;
2964  case 10:
2965  case 8: {
2966  nexts_.AddEntriesFrom(input, _repeated_nexts_codec);
2967  break;
2968  }
2969  case 18:
2970  case 16: {
2971  distinguishedNodes_.AddEntriesFrom(input, _repeated_distinguishedNodes_codec);
2972  break;
2973  }
2974  }
2975  }
2976  }
2977 
2978  }
2979 
2985  public sealed partial class TableConstraintProto : pb::IMessage<TableConstraintProto> {
2986  private static readonly pb::MessageParser<TableConstraintProto> _parser = new pb::MessageParser<TableConstraintProto>(() => new TableConstraintProto());
2987  private pb::UnknownFieldSet _unknownFields;
2988  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2989  public static pb::MessageParser<TableConstraintProto> Parser { get { return _parser; } }
2990 
2991  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2992  public static pbr::MessageDescriptor Descriptor {
2993  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[16]; }
2994  }
2995 
2996  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2997  pbr::MessageDescriptor pb::IMessage.Descriptor {
2998  get { return Descriptor; }
2999  }
3000 
3001  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3003  OnConstruction();
3004  }
3005 
3006  partial void OnConstruction();
3007 
3008  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3010  vars_ = other.vars_.Clone();
3011  values_ = other.values_.Clone();
3012  negated_ = other.negated_;
3013  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3014  }
3015 
3016  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3018  return new TableConstraintProto(this);
3019  }
3020 
3022  public const int VarsFieldNumber = 1;
3023  private static readonly pb::FieldCodec<int> _repeated_vars_codec
3024  = pb::FieldCodec.ForInt32(10);
3025  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
3026  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3027  public pbc::RepeatedField<int> Vars {
3028  get { return vars_; }
3029  }
3030 
3032  public const int ValuesFieldNumber = 2;
3033  private static readonly pb::FieldCodec<long> _repeated_values_codec
3034  = pb::FieldCodec.ForInt64(18);
3035  private readonly pbc::RepeatedField<long> values_ = new pbc::RepeatedField<long>();
3036  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3037  public pbc::RepeatedField<long> Values {
3038  get { return values_; }
3039  }
3040 
3042  public const int NegatedFieldNumber = 3;
3043  private bool negated_;
3048  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3049  public bool Negated {
3050  get { return negated_; }
3051  set {
3052  negated_ = value;
3053  }
3054  }
3055 
3056  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3057  public override bool Equals(object other) {
3058  return Equals(other as TableConstraintProto);
3059  }
3060 
3061  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3062  public bool Equals(TableConstraintProto other) {
3063  if (ReferenceEquals(other, null)) {
3064  return false;
3065  }
3066  if (ReferenceEquals(other, this)) {
3067  return true;
3068  }
3069  if(!vars_.Equals(other.vars_)) return false;
3070  if(!values_.Equals(other.values_)) return false;
3071  if (Negated != other.Negated) return false;
3072  return Equals(_unknownFields, other._unknownFields);
3073  }
3074 
3075  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3076  public override int GetHashCode() {
3077  int hash = 1;
3078  hash ^= vars_.GetHashCode();
3079  hash ^= values_.GetHashCode();
3080  if (Negated != false) hash ^= Negated.GetHashCode();
3081  if (_unknownFields != null) {
3082  hash ^= _unknownFields.GetHashCode();
3083  }
3084  return hash;
3085  }
3086 
3087  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3088  public override string ToString() {
3089  return pb::JsonFormatter.ToDiagnosticString(this);
3090  }
3091 
3092  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3093  public void WriteTo(pb::CodedOutputStream output) {
3094  vars_.WriteTo(output, _repeated_vars_codec);
3095  values_.WriteTo(output, _repeated_values_codec);
3096  if (Negated != false) {
3097  output.WriteRawTag(24);
3098  output.WriteBool(Negated);
3099  }
3100  if (_unknownFields != null) {
3101  _unknownFields.WriteTo(output);
3102  }
3103  }
3104 
3105  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3106  public int CalculateSize() {
3107  int size = 0;
3108  size += vars_.CalculateSize(_repeated_vars_codec);
3109  size += values_.CalculateSize(_repeated_values_codec);
3110  if (Negated != false) {
3111  size += 1 + 1;
3112  }
3113  if (_unknownFields != null) {
3114  size += _unknownFields.CalculateSize();
3115  }
3116  return size;
3117  }
3118 
3119  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3120  public void MergeFrom(TableConstraintProto other) {
3121  if (other == null) {
3122  return;
3123  }
3124  vars_.Add(other.vars_);
3125  values_.Add(other.values_);
3126  if (other.Negated != false) {
3127  Negated = other.Negated;
3128  }
3129  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3130  }
3131 
3132  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3133  public void MergeFrom(pb::CodedInputStream input) {
3134  uint tag;
3135  while ((tag = input.ReadTag()) != 0) {
3136  switch(tag) {
3137  default:
3138  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3139  break;
3140  case 10:
3141  case 8: {
3142  vars_.AddEntriesFrom(input, _repeated_vars_codec);
3143  break;
3144  }
3145  case 18:
3146  case 16: {
3147  values_.AddEntriesFrom(input, _repeated_values_codec);
3148  break;
3149  }
3150  case 24: {
3151  Negated = input.ReadBool();
3152  break;
3153  }
3154  }
3155  }
3156  }
3157 
3158  }
3159 
3164  public sealed partial class InverseConstraintProto : pb::IMessage<InverseConstraintProto> {
3165  private static readonly pb::MessageParser<InverseConstraintProto> _parser = new pb::MessageParser<InverseConstraintProto>(() => new InverseConstraintProto());
3166  private pb::UnknownFieldSet _unknownFields;
3167  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3168  public static pb::MessageParser<InverseConstraintProto> Parser { get { return _parser; } }
3169 
3170  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3171  public static pbr::MessageDescriptor Descriptor {
3172  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[17]; }
3173  }
3174 
3175  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3176  pbr::MessageDescriptor pb::IMessage.Descriptor {
3177  get { return Descriptor; }
3178  }
3179 
3180  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3182  OnConstruction();
3183  }
3184 
3185  partial void OnConstruction();
3186 
3187  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3189  fDirect_ = other.fDirect_.Clone();
3190  fInverse_ = other.fInverse_.Clone();
3191  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3192  }
3193 
3194  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3196  return new InverseConstraintProto(this);
3197  }
3198 
3200  public const int FDirectFieldNumber = 1;
3201  private static readonly pb::FieldCodec<int> _repeated_fDirect_codec
3202  = pb::FieldCodec.ForInt32(10);
3203  private readonly pbc::RepeatedField<int> fDirect_ = new pbc::RepeatedField<int>();
3204  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3205  public pbc::RepeatedField<int> FDirect {
3206  get { return fDirect_; }
3207  }
3208 
3210  public const int FInverseFieldNumber = 2;
3211  private static readonly pb::FieldCodec<int> _repeated_fInverse_codec
3212  = pb::FieldCodec.ForInt32(18);
3213  private readonly pbc::RepeatedField<int> fInverse_ = new pbc::RepeatedField<int>();
3214  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3215  public pbc::RepeatedField<int> FInverse {
3216  get { return fInverse_; }
3217  }
3218 
3219  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3220  public override bool Equals(object other) {
3221  return Equals(other as InverseConstraintProto);
3222  }
3223 
3224  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3225  public bool Equals(InverseConstraintProto other) {
3226  if (ReferenceEquals(other, null)) {
3227  return false;
3228  }
3229  if (ReferenceEquals(other, this)) {
3230  return true;
3231  }
3232  if(!fDirect_.Equals(other.fDirect_)) return false;
3233  if(!fInverse_.Equals(other.fInverse_)) return false;
3234  return Equals(_unknownFields, other._unknownFields);
3235  }
3236 
3237  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3238  public override int GetHashCode() {
3239  int hash = 1;
3240  hash ^= fDirect_.GetHashCode();
3241  hash ^= fInverse_.GetHashCode();
3242  if (_unknownFields != null) {
3243  hash ^= _unknownFields.GetHashCode();
3244  }
3245  return hash;
3246  }
3247 
3248  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3249  public override string ToString() {
3250  return pb::JsonFormatter.ToDiagnosticString(this);
3251  }
3252 
3253  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3254  public void WriteTo(pb::CodedOutputStream output) {
3255  fDirect_.WriteTo(output, _repeated_fDirect_codec);
3256  fInverse_.WriteTo(output, _repeated_fInverse_codec);
3257  if (_unknownFields != null) {
3258  _unknownFields.WriteTo(output);
3259  }
3260  }
3261 
3262  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3263  public int CalculateSize() {
3264  int size = 0;
3265  size += fDirect_.CalculateSize(_repeated_fDirect_codec);
3266  size += fInverse_.CalculateSize(_repeated_fInverse_codec);
3267  if (_unknownFields != null) {
3268  size += _unknownFields.CalculateSize();
3269  }
3270  return size;
3271  }
3272 
3273  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3274  public void MergeFrom(InverseConstraintProto other) {
3275  if (other == null) {
3276  return;
3277  }
3278  fDirect_.Add(other.fDirect_);
3279  fInverse_.Add(other.fInverse_);
3280  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3281  }
3282 
3283  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3284  public void MergeFrom(pb::CodedInputStream input) {
3285  uint tag;
3286  while ((tag = input.ReadTag()) != 0) {
3287  switch(tag) {
3288  default:
3289  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3290  break;
3291  case 10:
3292  case 8: {
3293  fDirect_.AddEntriesFrom(input, _repeated_fDirect_codec);
3294  break;
3295  }
3296  case 18:
3297  case 16: {
3298  fInverse_.AddEntriesFrom(input, _repeated_fInverse_codec);
3299  break;
3300  }
3301  }
3302  }
3303  }
3304 
3305  }
3306 
3311  public sealed partial class AutomatonConstraintProto : pb::IMessage<AutomatonConstraintProto> {
3312  private static readonly pb::MessageParser<AutomatonConstraintProto> _parser = new pb::MessageParser<AutomatonConstraintProto>(() => new AutomatonConstraintProto());
3313  private pb::UnknownFieldSet _unknownFields;
3314  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3315  public static pb::MessageParser<AutomatonConstraintProto> Parser { get { return _parser; } }
3316 
3317  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3318  public static pbr::MessageDescriptor Descriptor {
3319  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[18]; }
3320  }
3321 
3322  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3323  pbr::MessageDescriptor pb::IMessage.Descriptor {
3324  get { return Descriptor; }
3325  }
3326 
3327  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3329  OnConstruction();
3330  }
3331 
3332  partial void OnConstruction();
3333 
3334  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3336  startingState_ = other.startingState_;
3337  finalStates_ = other.finalStates_.Clone();
3338  transitionTail_ = other.transitionTail_.Clone();
3339  transitionHead_ = other.transitionHead_.Clone();
3340  transitionLabel_ = other.transitionLabel_.Clone();
3341  vars_ = other.vars_.Clone();
3342  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3343  }
3344 
3345  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3347  return new AutomatonConstraintProto(this);
3348  }
3349 
3351  public const int StartingStateFieldNumber = 2;
3352  private long startingState_;
3358  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3359  public long StartingState {
3360  get { return startingState_; }
3361  set {
3362  startingState_ = value;
3363  }
3364  }
3365 
3367  public const int FinalStatesFieldNumber = 3;
3368  private static readonly pb::FieldCodec<long> _repeated_finalStates_codec
3369  = pb::FieldCodec.ForInt64(26);
3370  private readonly pbc::RepeatedField<long> finalStates_ = new pbc::RepeatedField<long>();
3371  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3372  public pbc::RepeatedField<long> FinalStates {
3373  get { return finalStates_; }
3374  }
3375 
3377  public const int TransitionTailFieldNumber = 4;
3378  private static readonly pb::FieldCodec<long> _repeated_transitionTail_codec
3379  = pb::FieldCodec.ForInt64(34);
3380  private readonly pbc::RepeatedField<long> transitionTail_ = new pbc::RepeatedField<long>();
3386  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3387  public pbc::RepeatedField<long> TransitionTail {
3388  get { return transitionTail_; }
3389  }
3390 
3392  public const int TransitionHeadFieldNumber = 5;
3393  private static readonly pb::FieldCodec<long> _repeated_transitionHead_codec
3394  = pb::FieldCodec.ForInt64(42);
3395  private readonly pbc::RepeatedField<long> transitionHead_ = new pbc::RepeatedField<long>();
3396  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3397  public pbc::RepeatedField<long> TransitionHead {
3398  get { return transitionHead_; }
3399  }
3400 
3402  public const int TransitionLabelFieldNumber = 6;
3403  private static readonly pb::FieldCodec<long> _repeated_transitionLabel_codec
3404  = pb::FieldCodec.ForInt64(50);
3405  private readonly pbc::RepeatedField<long> transitionLabel_ = new pbc::RepeatedField<long>();
3406  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3407  public pbc::RepeatedField<long> TransitionLabel {
3408  get { return transitionLabel_; }
3409  }
3410 
3412  public const int VarsFieldNumber = 7;
3413  private static readonly pb::FieldCodec<int> _repeated_vars_codec
3414  = pb::FieldCodec.ForInt32(58);
3415  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
3420  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3421  public pbc::RepeatedField<int> Vars {
3422  get { return vars_; }
3423  }
3424 
3425  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3426  public override bool Equals(object other) {
3427  return Equals(other as AutomatonConstraintProto);
3428  }
3429 
3430  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3431  public bool Equals(AutomatonConstraintProto other) {
3432  if (ReferenceEquals(other, null)) {
3433  return false;
3434  }
3435  if (ReferenceEquals(other, this)) {
3436  return true;
3437  }
3438  if (StartingState != other.StartingState) return false;
3439  if(!finalStates_.Equals(other.finalStates_)) return false;
3440  if(!transitionTail_.Equals(other.transitionTail_)) return false;
3441  if(!transitionHead_.Equals(other.transitionHead_)) return false;
3442  if(!transitionLabel_.Equals(other.transitionLabel_)) return false;
3443  if(!vars_.Equals(other.vars_)) return false;
3444  return Equals(_unknownFields, other._unknownFields);
3445  }
3446 
3447  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3448  public override int GetHashCode() {
3449  int hash = 1;
3450  if (StartingState != 0L) hash ^= StartingState.GetHashCode();
3451  hash ^= finalStates_.GetHashCode();
3452  hash ^= transitionTail_.GetHashCode();
3453  hash ^= transitionHead_.GetHashCode();
3454  hash ^= transitionLabel_.GetHashCode();
3455  hash ^= vars_.GetHashCode();
3456  if (_unknownFields != null) {
3457  hash ^= _unknownFields.GetHashCode();
3458  }
3459  return hash;
3460  }
3461 
3462  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3463  public override string ToString() {
3464  return pb::JsonFormatter.ToDiagnosticString(this);
3465  }
3466 
3467  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3468  public void WriteTo(pb::CodedOutputStream output) {
3469  if (StartingState != 0L) {
3470  output.WriteRawTag(16);
3471  output.WriteInt64(StartingState);
3472  }
3473  finalStates_.WriteTo(output, _repeated_finalStates_codec);
3474  transitionTail_.WriteTo(output, _repeated_transitionTail_codec);
3475  transitionHead_.WriteTo(output, _repeated_transitionHead_codec);
3476  transitionLabel_.WriteTo(output, _repeated_transitionLabel_codec);
3477  vars_.WriteTo(output, _repeated_vars_codec);
3478  if (_unknownFields != null) {
3479  _unknownFields.WriteTo(output);
3480  }
3481  }
3482 
3483  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3484  public int CalculateSize() {
3485  int size = 0;
3486  if (StartingState != 0L) {
3487  size += 1 + pb::CodedOutputStream.ComputeInt64Size(StartingState);
3488  }
3489  size += finalStates_.CalculateSize(_repeated_finalStates_codec);
3490  size += transitionTail_.CalculateSize(_repeated_transitionTail_codec);
3491  size += transitionHead_.CalculateSize(_repeated_transitionHead_codec);
3492  size += transitionLabel_.CalculateSize(_repeated_transitionLabel_codec);
3493  size += vars_.CalculateSize(_repeated_vars_codec);
3494  if (_unknownFields != null) {
3495  size += _unknownFields.CalculateSize();
3496  }
3497  return size;
3498  }
3499 
3500  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3502  if (other == null) {
3503  return;
3504  }
3505  if (other.StartingState != 0L) {
3506  StartingState = other.StartingState;
3507  }
3508  finalStates_.Add(other.finalStates_);
3509  transitionTail_.Add(other.transitionTail_);
3510  transitionHead_.Add(other.transitionHead_);
3511  transitionLabel_.Add(other.transitionLabel_);
3512  vars_.Add(other.vars_);
3513  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3514  }
3515 
3516  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3517  public void MergeFrom(pb::CodedInputStream input) {
3518  uint tag;
3519  while ((tag = input.ReadTag()) != 0) {
3520  switch(tag) {
3521  default:
3522  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3523  break;
3524  case 16: {
3525  StartingState = input.ReadInt64();
3526  break;
3527  }
3528  case 26:
3529  case 24: {
3530  finalStates_.AddEntriesFrom(input, _repeated_finalStates_codec);
3531  break;
3532  }
3533  case 34:
3534  case 32: {
3535  transitionTail_.AddEntriesFrom(input, _repeated_transitionTail_codec);
3536  break;
3537  }
3538  case 42:
3539  case 40: {
3540  transitionHead_.AddEntriesFrom(input, _repeated_transitionHead_codec);
3541  break;
3542  }
3543  case 50:
3544  case 48: {
3545  transitionLabel_.AddEntriesFrom(input, _repeated_transitionLabel_codec);
3546  break;
3547  }
3548  case 58:
3549  case 56: {
3550  vars_.AddEntriesFrom(input, _repeated_vars_codec);
3551  break;
3552  }
3553  }
3554  }
3555  }
3556 
3557  }
3558 
3562  public sealed partial class ConstraintProto : pb::IMessage<ConstraintProto> {
3563  private static readonly pb::MessageParser<ConstraintProto> _parser = new pb::MessageParser<ConstraintProto>(() => new ConstraintProto());
3564  private pb::UnknownFieldSet _unknownFields;
3565  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3566  public static pb::MessageParser<ConstraintProto> Parser { get { return _parser; } }
3567 
3568  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3569  public static pbr::MessageDescriptor Descriptor {
3570  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[19]; }
3571  }
3572 
3573  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3574  pbr::MessageDescriptor pb::IMessage.Descriptor {
3575  get { return Descriptor; }
3576  }
3577 
3578  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3579  public ConstraintProto() {
3580  OnConstruction();
3581  }
3582 
3583  partial void OnConstruction();
3584 
3585  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3586  public ConstraintProto(ConstraintProto other) : this() {
3587  name_ = other.name_;
3588  enforcementLiteral_ = other.enforcementLiteral_.Clone();
3589  switch (other.ConstraintCase) {
3590  case ConstraintOneofCase.BoolOr:
3591  BoolOr = other.BoolOr.Clone();
3592  break;
3593  case ConstraintOneofCase.BoolAnd:
3594  BoolAnd = other.BoolAnd.Clone();
3595  break;
3596  case ConstraintOneofCase.AtMostOne:
3597  AtMostOne = other.AtMostOne.Clone();
3598  break;
3599  case ConstraintOneofCase.BoolXor:
3600  BoolXor = other.BoolXor.Clone();
3601  break;
3602  case ConstraintOneofCase.IntDiv:
3603  IntDiv = other.IntDiv.Clone();
3604  break;
3605  case ConstraintOneofCase.IntMod:
3606  IntMod = other.IntMod.Clone();
3607  break;
3608  case ConstraintOneofCase.IntMax:
3609  IntMax = other.IntMax.Clone();
3610  break;
3611  case ConstraintOneofCase.LinMax:
3612  LinMax = other.LinMax.Clone();
3613  break;
3614  case ConstraintOneofCase.IntMin:
3615  IntMin = other.IntMin.Clone();
3616  break;
3617  case ConstraintOneofCase.LinMin:
3618  LinMin = other.LinMin.Clone();
3619  break;
3620  case ConstraintOneofCase.IntProd:
3621  IntProd = other.IntProd.Clone();
3622  break;
3623  case ConstraintOneofCase.Linear:
3624  Linear = other.Linear.Clone();
3625  break;
3626  case ConstraintOneofCase.AllDiff:
3627  AllDiff = other.AllDiff.Clone();
3628  break;
3629  case ConstraintOneofCase.Element:
3630  Element = other.Element.Clone();
3631  break;
3632  case ConstraintOneofCase.Circuit:
3633  Circuit = other.Circuit.Clone();
3634  break;
3635  case ConstraintOneofCase.Routes:
3636  Routes = other.Routes.Clone();
3637  break;
3638  case ConstraintOneofCase.CircuitCovering:
3639  CircuitCovering = other.CircuitCovering.Clone();
3640  break;
3641  case ConstraintOneofCase.Table:
3642  Table = other.Table.Clone();
3643  break;
3644  case ConstraintOneofCase.Automaton:
3645  Automaton = other.Automaton.Clone();
3646  break;
3647  case ConstraintOneofCase.Inverse:
3648  Inverse = other.Inverse.Clone();
3649  break;
3650  case ConstraintOneofCase.Reservoir:
3651  Reservoir = other.Reservoir.Clone();
3652  break;
3653  case ConstraintOneofCase.Interval:
3654  Interval = other.Interval.Clone();
3655  break;
3656  case ConstraintOneofCase.NoOverlap:
3657  NoOverlap = other.NoOverlap.Clone();
3658  break;
3659  case ConstraintOneofCase.NoOverlap2D:
3660  NoOverlap2D = other.NoOverlap2D.Clone();
3661  break;
3662  case ConstraintOneofCase.Cumulative:
3663  Cumulative = other.Cumulative.Clone();
3664  break;
3665  }
3666 
3667  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3668  }
3669 
3670  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3672  return new ConstraintProto(this);
3673  }
3674 
3676  public const int NameFieldNumber = 1;
3677  private string name_ = "";
3681  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3682  public string Name {
3683  get { return name_; }
3684  set {
3685  name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
3686  }
3687  }
3688 
3690  public const int EnforcementLiteralFieldNumber = 2;
3691  private static readonly pb::FieldCodec<int> _repeated_enforcementLiteral_codec
3692  = pb::FieldCodec.ForInt32(18);
3693  private readonly pbc::RepeatedField<int> enforcementLiteral_ = new pbc::RepeatedField<int>();
3710  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3711  public pbc::RepeatedField<int> EnforcementLiteral {
3712  get { return enforcementLiteral_; }
3713  }
3714 
3716  public const int BoolOrFieldNumber = 3;
3720  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3721  public global::Google.OrTools.Sat.BoolArgumentProto BoolOr {
3722  get { return constraintCase_ == ConstraintOneofCase.BoolOr ? (global::Google.OrTools.Sat.BoolArgumentProto) constraint_ : null; }
3723  set {
3724  constraint_ = value;
3725  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.BoolOr;
3726  }
3727  }
3728 
3730  public const int BoolAndFieldNumber = 4;
3738  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3739  public global::Google.OrTools.Sat.BoolArgumentProto BoolAnd {
3740  get { return constraintCase_ == ConstraintOneofCase.BoolAnd ? (global::Google.OrTools.Sat.BoolArgumentProto) constraint_ : null; }
3741  set {
3742  constraint_ = value;
3743  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.BoolAnd;
3744  }
3745  }
3746 
3748  public const int AtMostOneFieldNumber = 26;
3756  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3757  public global::Google.OrTools.Sat.BoolArgumentProto AtMostOne {
3758  get { return constraintCase_ == ConstraintOneofCase.AtMostOne ? (global::Google.OrTools.Sat.BoolArgumentProto) constraint_ : null; }
3759  set {
3760  constraint_ = value;
3761  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.AtMostOne;
3762  }
3763  }
3764 
3766  public const int BoolXorFieldNumber = 5;
3770  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3771  public global::Google.OrTools.Sat.BoolArgumentProto BoolXor {
3772  get { return constraintCase_ == ConstraintOneofCase.BoolXor ? (global::Google.OrTools.Sat.BoolArgumentProto) constraint_ : null; }
3773  set {
3774  constraint_ = value;
3775  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.BoolXor;
3776  }
3777  }
3778 
3780  public const int IntDivFieldNumber = 7;
3784  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3785  public global::Google.OrTools.Sat.IntegerArgumentProto IntDiv {
3786  get { return constraintCase_ == ConstraintOneofCase.IntDiv ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3787  set {
3788  constraint_ = value;
3789  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntDiv;
3790  }
3791  }
3792 
3794  public const int IntModFieldNumber = 8;
3798  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3799  public global::Google.OrTools.Sat.IntegerArgumentProto IntMod {
3800  get { return constraintCase_ == ConstraintOneofCase.IntMod ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3801  set {
3802  constraint_ = value;
3803  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntMod;
3804  }
3805  }
3806 
3808  public const int IntMaxFieldNumber = 9;
3814  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3815  public global::Google.OrTools.Sat.IntegerArgumentProto IntMax {
3816  get { return constraintCase_ == ConstraintOneofCase.IntMax ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3817  set {
3818  constraint_ = value;
3819  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntMax;
3820  }
3821  }
3822 
3824  public const int LinMaxFieldNumber = 27;
3829  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3830  public global::Google.OrTools.Sat.LinearArgumentProto LinMax {
3831  get { return constraintCase_ == ConstraintOneofCase.LinMax ? (global::Google.OrTools.Sat.LinearArgumentProto) constraint_ : null; }
3832  set {
3833  constraint_ = value;
3834  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.LinMax;
3835  }
3836  }
3837 
3839  public const int IntMinFieldNumber = 10;
3845  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3846  public global::Google.OrTools.Sat.IntegerArgumentProto IntMin {
3847  get { return constraintCase_ == ConstraintOneofCase.IntMin ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3848  set {
3849  constraint_ = value;
3850  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntMin;
3851  }
3852  }
3853 
3855  public const int LinMinFieldNumber = 28;
3860  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3861  public global::Google.OrTools.Sat.LinearArgumentProto LinMin {
3862  get { return constraintCase_ == ConstraintOneofCase.LinMin ? (global::Google.OrTools.Sat.LinearArgumentProto) constraint_ : null; }
3863  set {
3864  constraint_ = value;
3865  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.LinMin;
3866  }
3867  }
3868 
3870  public const int IntProdFieldNumber = 11;
3875  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3876  public global::Google.OrTools.Sat.IntegerArgumentProto IntProd {
3877  get { return constraintCase_ == ConstraintOneofCase.IntProd ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3878  set {
3879  constraint_ = value;
3880  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntProd;
3881  }
3882  }
3883 
3885  public const int LinearFieldNumber = 12;
3890  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3891  public global::Google.OrTools.Sat.LinearConstraintProto Linear {
3892  get { return constraintCase_ == ConstraintOneofCase.Linear ? (global::Google.OrTools.Sat.LinearConstraintProto) constraint_ : null; }
3893  set {
3894  constraint_ = value;
3895  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Linear;
3896  }
3897  }
3898 
3900  public const int AllDiffFieldNumber = 13;
3904  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3905  public global::Google.OrTools.Sat.AllDifferentConstraintProto AllDiff {
3906  get { return constraintCase_ == ConstraintOneofCase.AllDiff ? (global::Google.OrTools.Sat.AllDifferentConstraintProto) constraint_ : null; }
3907  set {
3908  constraint_ = value;
3909  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.AllDiff;
3910  }
3911  }
3912 
3914  public const int ElementFieldNumber = 14;
3919  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3920  public global::Google.OrTools.Sat.ElementConstraintProto Element {
3921  get { return constraintCase_ == ConstraintOneofCase.Element ? (global::Google.OrTools.Sat.ElementConstraintProto) constraint_ : null; }
3922  set {
3923  constraint_ = value;
3924  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Element;
3925  }
3926  }
3927 
3929  public const int CircuitFieldNumber = 15;
3934  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3935  public global::Google.OrTools.Sat.CircuitConstraintProto Circuit {
3936  get { return constraintCase_ == ConstraintOneofCase.Circuit ? (global::Google.OrTools.Sat.CircuitConstraintProto) constraint_ : null; }
3937  set {
3938  constraint_ = value;
3939  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Circuit;
3940  }
3941  }
3942 
3944  public const int RoutesFieldNumber = 23;
3948  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3949  public global::Google.OrTools.Sat.RoutesConstraintProto Routes {
3950  get { return constraintCase_ == ConstraintOneofCase.Routes ? (global::Google.OrTools.Sat.RoutesConstraintProto) constraint_ : null; }
3951  set {
3952  constraint_ = value;
3953  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Routes;
3954  }
3955  }
3956 
3958  public const int CircuitCoveringFieldNumber = 25;
3963  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3964  public global::Google.OrTools.Sat.CircuitCoveringConstraintProto CircuitCovering {
3965  get { return constraintCase_ == ConstraintOneofCase.CircuitCovering ? (global::Google.OrTools.Sat.CircuitCoveringConstraintProto) constraint_ : null; }
3966  set {
3967  constraint_ = value;
3968  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.CircuitCovering;
3969  }
3970  }
3971 
3973  public const int TableFieldNumber = 16;
3978  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3979  public global::Google.OrTools.Sat.TableConstraintProto Table {
3980  get { return constraintCase_ == ConstraintOneofCase.Table ? (global::Google.OrTools.Sat.TableConstraintProto) constraint_ : null; }
3981  set {
3982  constraint_ = value;
3983  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Table;
3984  }
3985  }
3986 
3988  public const int AutomatonFieldNumber = 17;
3993  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3994  public global::Google.OrTools.Sat.AutomatonConstraintProto Automaton {
3995  get { return constraintCase_ == ConstraintOneofCase.Automaton ? (global::Google.OrTools.Sat.AutomatonConstraintProto) constraint_ : null; }
3996  set {
3997  constraint_ = value;
3998  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Automaton;
3999  }
4000  }
4001 
4003  public const int InverseFieldNumber = 18;
4008  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4009  public global::Google.OrTools.Sat.InverseConstraintProto Inverse {
4010  get { return constraintCase_ == ConstraintOneofCase.Inverse ? (global::Google.OrTools.Sat.InverseConstraintProto) constraint_ : null; }
4011  set {
4012  constraint_ = value;
4013  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Inverse;
4014  }
4015  }
4016 
4018  public const int ReservoirFieldNumber = 24;
4024  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4025  public global::Google.OrTools.Sat.ReservoirConstraintProto Reservoir {
4026  get { return constraintCase_ == ConstraintOneofCase.Reservoir ? (global::Google.OrTools.Sat.ReservoirConstraintProto) constraint_ : null; }
4027  set {
4028  constraint_ = value;
4029  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Reservoir;
4030  }
4031  }
4032 
4034  public const int IntervalFieldNumber = 19;
4039  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4040  public global::Google.OrTools.Sat.IntervalConstraintProto Interval {
4041  get { return constraintCase_ == ConstraintOneofCase.Interval ? (global::Google.OrTools.Sat.IntervalConstraintProto) constraint_ : null; }
4042  set {
4043  constraint_ = value;
4044  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Interval;
4045  }
4046  }
4047 
4049  public const int NoOverlapFieldNumber = 20;
4055  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4056  public global::Google.OrTools.Sat.NoOverlapConstraintProto NoOverlap {
4057  get { return constraintCase_ == ConstraintOneofCase.NoOverlap ? (global::Google.OrTools.Sat.NoOverlapConstraintProto) constraint_ : null; }
4058  set {
4059  constraint_ = value;
4060  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.NoOverlap;
4061  }
4062  }
4063 
4065  public const int NoOverlap2DFieldNumber = 21;
4069  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4070  public global::Google.OrTools.Sat.NoOverlap2DConstraintProto NoOverlap2D {
4071  get { return constraintCase_ == ConstraintOneofCase.NoOverlap2D ? (global::Google.OrTools.Sat.NoOverlap2DConstraintProto) constraint_ : null; }
4072  set {
4073  constraint_ = value;
4074  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.NoOverlap2D;
4075  }
4076  }
4077 
4079  public const int CumulativeFieldNumber = 22;
4085  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4086  public global::Google.OrTools.Sat.CumulativeConstraintProto Cumulative {
4087  get { return constraintCase_ == ConstraintOneofCase.Cumulative ? (global::Google.OrTools.Sat.CumulativeConstraintProto) constraint_ : null; }
4088  set {
4089  constraint_ = value;
4090  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Cumulative;
4091  }
4092  }
4093 
4094  private object constraint_;
4096  public enum ConstraintOneofCase {
4097  None = 0,
4098  BoolOr = 3,
4099  BoolAnd = 4,
4100  AtMostOne = 26,
4101  BoolXor = 5,
4102  IntDiv = 7,
4103  IntMod = 8,
4104  IntMax = 9,
4105  LinMax = 27,
4106  IntMin = 10,
4107  LinMin = 28,
4108  IntProd = 11,
4109  Linear = 12,
4110  AllDiff = 13,
4111  Element = 14,
4112  Circuit = 15,
4113  Routes = 23,
4114  CircuitCovering = 25,
4115  Table = 16,
4116  Automaton = 17,
4117  Inverse = 18,
4118  Reservoir = 24,
4119  Interval = 19,
4120  NoOverlap = 20,
4121  NoOverlap2D = 21,
4122  Cumulative = 22,
4123  }
4124  private ConstraintOneofCase constraintCase_ = ConstraintOneofCase.None;
4125  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4126  public ConstraintOneofCase ConstraintCase {
4127  get { return constraintCase_; }
4128  }
4129 
4130  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4131  public void ClearConstraint() {
4132  constraintCase_ = ConstraintOneofCase.None;
4133  constraint_ = null;
4134  }
4135 
4136  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4137  public override bool Equals(object other) {
4138  return Equals(other as ConstraintProto);
4139  }
4140 
4141  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4142  public bool Equals(ConstraintProto other) {
4143  if (ReferenceEquals(other, null)) {
4144  return false;
4145  }
4146  if (ReferenceEquals(other, this)) {
4147  return true;
4148  }
4149  if (Name != other.Name) return false;
4150  if(!enforcementLiteral_.Equals(other.enforcementLiteral_)) return false;
4151  if (!object.Equals(BoolOr, other.BoolOr)) return false;
4152  if (!object.Equals(BoolAnd, other.BoolAnd)) return false;
4153  if (!object.Equals(AtMostOne, other.AtMostOne)) return false;
4154  if (!object.Equals(BoolXor, other.BoolXor)) return false;
4155  if (!object.Equals(IntDiv, other.IntDiv)) return false;
4156  if (!object.Equals(IntMod, other.IntMod)) return false;
4157  if (!object.Equals(IntMax, other.IntMax)) return false;
4158  if (!object.Equals(LinMax, other.LinMax)) return false;
4159  if (!object.Equals(IntMin, other.IntMin)) return false;
4160  if (!object.Equals(LinMin, other.LinMin)) return false;
4161  if (!object.Equals(IntProd, other.IntProd)) return false;
4162  if (!object.Equals(Linear, other.Linear)) return false;
4163  if (!object.Equals(AllDiff, other.AllDiff)) return false;
4164  if (!object.Equals(Element, other.Element)) return false;
4165  if (!object.Equals(Circuit, other.Circuit)) return false;
4166  if (!object.Equals(Routes, other.Routes)) return false;
4167  if (!object.Equals(CircuitCovering, other.CircuitCovering)) return false;
4168  if (!object.Equals(Table, other.Table)) return false;
4169  if (!object.Equals(Automaton, other.Automaton)) return false;
4170  if (!object.Equals(Inverse, other.Inverse)) return false;
4171  if (!object.Equals(Reservoir, other.Reservoir)) return false;
4172  if (!object.Equals(Interval, other.Interval)) return false;
4173  if (!object.Equals(NoOverlap, other.NoOverlap)) return false;
4174  if (!object.Equals(NoOverlap2D, other.NoOverlap2D)) return false;
4175  if (!object.Equals(Cumulative, other.Cumulative)) return false;
4176  if (ConstraintCase != other.ConstraintCase) return false;
4177  return Equals(_unknownFields, other._unknownFields);
4178  }
4179 
4180  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4181  public override int GetHashCode() {
4182  int hash = 1;
4183  if (Name.Length != 0) hash ^= Name.GetHashCode();
4184  hash ^= enforcementLiteral_.GetHashCode();
4185  if (constraintCase_ == ConstraintOneofCase.BoolOr) hash ^= BoolOr.GetHashCode();
4186  if (constraintCase_ == ConstraintOneofCase.BoolAnd) hash ^= BoolAnd.GetHashCode();
4187  if (constraintCase_ == ConstraintOneofCase.AtMostOne) hash ^= AtMostOne.GetHashCode();
4188  if (constraintCase_ == ConstraintOneofCase.BoolXor) hash ^= BoolXor.GetHashCode();
4189  if (constraintCase_ == ConstraintOneofCase.IntDiv) hash ^= IntDiv.GetHashCode();
4190  if (constraintCase_ == ConstraintOneofCase.IntMod) hash ^= IntMod.GetHashCode();
4191  if (constraintCase_ == ConstraintOneofCase.IntMax) hash ^= IntMax.GetHashCode();
4192  if (constraintCase_ == ConstraintOneofCase.LinMax) hash ^= LinMax.GetHashCode();
4193  if (constraintCase_ == ConstraintOneofCase.IntMin) hash ^= IntMin.GetHashCode();
4194  if (constraintCase_ == ConstraintOneofCase.LinMin) hash ^= LinMin.GetHashCode();
4195  if (constraintCase_ == ConstraintOneofCase.IntProd) hash ^= IntProd.GetHashCode();
4196  if (constraintCase_ == ConstraintOneofCase.Linear) hash ^= Linear.GetHashCode();
4197  if (constraintCase_ == ConstraintOneofCase.AllDiff) hash ^= AllDiff.GetHashCode();
4198  if (constraintCase_ == ConstraintOneofCase.Element) hash ^= Element.GetHashCode();
4199  if (constraintCase_ == ConstraintOneofCase.Circuit) hash ^= Circuit.GetHashCode();
4200  if (constraintCase_ == ConstraintOneofCase.Routes) hash ^= Routes.GetHashCode();
4201  if (constraintCase_ == ConstraintOneofCase.CircuitCovering) hash ^= CircuitCovering.GetHashCode();
4202  if (constraintCase_ == ConstraintOneofCase.Table) hash ^= Table.GetHashCode();
4203  if (constraintCase_ == ConstraintOneofCase.Automaton) hash ^= Automaton.GetHashCode();
4204  if (constraintCase_ == ConstraintOneofCase.Inverse) hash ^= Inverse.GetHashCode();
4205  if (constraintCase_ == ConstraintOneofCase.Reservoir) hash ^= Reservoir.GetHashCode();
4206  if (constraintCase_ == ConstraintOneofCase.Interval) hash ^= Interval.GetHashCode();
4207  if (constraintCase_ == ConstraintOneofCase.NoOverlap) hash ^= NoOverlap.GetHashCode();
4208  if (constraintCase_ == ConstraintOneofCase.NoOverlap2D) hash ^= NoOverlap2D.GetHashCode();
4209  if (constraintCase_ == ConstraintOneofCase.Cumulative) hash ^= Cumulative.GetHashCode();
4210  hash ^= (int) constraintCase_;
4211  if (_unknownFields != null) {
4212  hash ^= _unknownFields.GetHashCode();
4213  }
4214  return hash;
4215  }
4216 
4217  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4218  public override string ToString() {
4219  return pb::JsonFormatter.ToDiagnosticString(this);
4220  }
4221 
4222  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4223  public void WriteTo(pb::CodedOutputStream output) {
4224  if (Name.Length != 0) {
4225  output.WriteRawTag(10);
4226  output.WriteString(Name);
4227  }
4228  enforcementLiteral_.WriteTo(output, _repeated_enforcementLiteral_codec);
4229  if (constraintCase_ == ConstraintOneofCase.BoolOr) {
4230  output.WriteRawTag(26);
4231  output.WriteMessage(BoolOr);
4232  }
4233  if (constraintCase_ == ConstraintOneofCase.BoolAnd) {
4234  output.WriteRawTag(34);
4235  output.WriteMessage(BoolAnd);
4236  }
4237  if (constraintCase_ == ConstraintOneofCase.BoolXor) {
4238  output.WriteRawTag(42);
4239  output.WriteMessage(BoolXor);
4240  }
4241  if (constraintCase_ == ConstraintOneofCase.IntDiv) {
4242  output.WriteRawTag(58);
4243  output.WriteMessage(IntDiv);
4244  }
4245  if (constraintCase_ == ConstraintOneofCase.IntMod) {
4246  output.WriteRawTag(66);
4247  output.WriteMessage(IntMod);
4248  }
4249  if (constraintCase_ == ConstraintOneofCase.IntMax) {
4250  output.WriteRawTag(74);
4251  output.WriteMessage(IntMax);
4252  }
4253  if (constraintCase_ == ConstraintOneofCase.IntMin) {
4254  output.WriteRawTag(82);
4255  output.WriteMessage(IntMin);
4256  }
4257  if (constraintCase_ == ConstraintOneofCase.IntProd) {
4258  output.WriteRawTag(90);
4259  output.WriteMessage(IntProd);
4260  }
4261  if (constraintCase_ == ConstraintOneofCase.Linear) {
4262  output.WriteRawTag(98);
4263  output.WriteMessage(Linear);
4264  }
4265  if (constraintCase_ == ConstraintOneofCase.AllDiff) {
4266  output.WriteRawTag(106);
4267  output.WriteMessage(AllDiff);
4268  }
4269  if (constraintCase_ == ConstraintOneofCase.Element) {
4270  output.WriteRawTag(114);
4271  output.WriteMessage(Element);
4272  }
4273  if (constraintCase_ == ConstraintOneofCase.Circuit) {
4274  output.WriteRawTag(122);
4275  output.WriteMessage(Circuit);
4276  }
4277  if (constraintCase_ == ConstraintOneofCase.Table) {
4278  output.WriteRawTag(130, 1);
4279  output.WriteMessage(Table);
4280  }
4281  if (constraintCase_ == ConstraintOneofCase.Automaton) {
4282  output.WriteRawTag(138, 1);
4283  output.WriteMessage(Automaton);
4284  }
4285  if (constraintCase_ == ConstraintOneofCase.Inverse) {
4286  output.WriteRawTag(146, 1);
4287  output.WriteMessage(Inverse);
4288  }
4289  if (constraintCase_ == ConstraintOneofCase.Interval) {
4290  output.WriteRawTag(154, 1);
4291  output.WriteMessage(Interval);
4292  }
4293  if (constraintCase_ == ConstraintOneofCase.NoOverlap) {
4294  output.WriteRawTag(162, 1);
4295  output.WriteMessage(NoOverlap);
4296  }
4297  if (constraintCase_ == ConstraintOneofCase.NoOverlap2D) {
4298  output.WriteRawTag(170, 1);
4299  output.WriteMessage(NoOverlap2D);
4300  }
4301  if (constraintCase_ == ConstraintOneofCase.Cumulative) {
4302  output.WriteRawTag(178, 1);
4303  output.WriteMessage(Cumulative);
4304  }
4305  if (constraintCase_ == ConstraintOneofCase.Routes) {
4306  output.WriteRawTag(186, 1);
4307  output.WriteMessage(Routes);
4308  }
4309  if (constraintCase_ == ConstraintOneofCase.Reservoir) {
4310  output.WriteRawTag(194, 1);
4311  output.WriteMessage(Reservoir);
4312  }
4313  if (constraintCase_ == ConstraintOneofCase.CircuitCovering) {
4314  output.WriteRawTag(202, 1);
4315  output.WriteMessage(CircuitCovering);
4316  }
4317  if (constraintCase_ == ConstraintOneofCase.AtMostOne) {
4318  output.WriteRawTag(210, 1);
4319  output.WriteMessage(AtMostOne);
4320  }
4321  if (constraintCase_ == ConstraintOneofCase.LinMax) {
4322  output.WriteRawTag(218, 1);
4323  output.WriteMessage(LinMax);
4324  }
4325  if (constraintCase_ == ConstraintOneofCase.LinMin) {
4326  output.WriteRawTag(226, 1);
4327  output.WriteMessage(LinMin);
4328  }
4329  if (_unknownFields != null) {
4330  _unknownFields.WriteTo(output);
4331  }
4332  }
4333 
4334  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4335  public int CalculateSize() {
4336  int size = 0;
4337  if (Name.Length != 0) {
4338  size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
4339  }
4340  size += enforcementLiteral_.CalculateSize(_repeated_enforcementLiteral_codec);
4341  if (constraintCase_ == ConstraintOneofCase.BoolOr) {
4342  size += 1 + pb::CodedOutputStream.ComputeMessageSize(BoolOr);
4343  }
4344  if (constraintCase_ == ConstraintOneofCase.BoolAnd) {
4345  size += 1 + pb::CodedOutputStream.ComputeMessageSize(BoolAnd);
4346  }
4347  if (constraintCase_ == ConstraintOneofCase.AtMostOne) {
4348  size += 2 + pb::CodedOutputStream.ComputeMessageSize(AtMostOne);
4349  }
4350  if (constraintCase_ == ConstraintOneofCase.BoolXor) {
4351  size += 1 + pb::CodedOutputStream.ComputeMessageSize(BoolXor);
4352  }
4353  if (constraintCase_ == ConstraintOneofCase.IntDiv) {
4354  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntDiv);
4355  }
4356  if (constraintCase_ == ConstraintOneofCase.IntMod) {
4357  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntMod);
4358  }
4359  if (constraintCase_ == ConstraintOneofCase.IntMax) {
4360  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntMax);
4361  }
4362  if (constraintCase_ == ConstraintOneofCase.LinMax) {
4363  size += 2 + pb::CodedOutputStream.ComputeMessageSize(LinMax);
4364  }
4365  if (constraintCase_ == ConstraintOneofCase.IntMin) {
4366  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntMin);
4367  }
4368  if (constraintCase_ == ConstraintOneofCase.LinMin) {
4369  size += 2 + pb::CodedOutputStream.ComputeMessageSize(LinMin);
4370  }
4371  if (constraintCase_ == ConstraintOneofCase.IntProd) {
4372  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntProd);
4373  }
4374  if (constraintCase_ == ConstraintOneofCase.Linear) {
4375  size += 1 + pb::CodedOutputStream.ComputeMessageSize(Linear);
4376  }
4377  if (constraintCase_ == ConstraintOneofCase.AllDiff) {
4378  size += 1 + pb::CodedOutputStream.ComputeMessageSize(AllDiff);
4379  }
4380  if (constraintCase_ == ConstraintOneofCase.Element) {
4381  size += 1 + pb::CodedOutputStream.ComputeMessageSize(Element);
4382  }
4383  if (constraintCase_ == ConstraintOneofCase.Circuit) {
4384  size += 1 + pb::CodedOutputStream.ComputeMessageSize(Circuit);
4385  }
4386  if (constraintCase_ == ConstraintOneofCase.Routes) {
4387  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Routes);
4388  }
4389  if (constraintCase_ == ConstraintOneofCase.CircuitCovering) {
4390  size += 2 + pb::CodedOutputStream.ComputeMessageSize(CircuitCovering);
4391  }
4392  if (constraintCase_ == ConstraintOneofCase.Table) {
4393  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Table);
4394  }
4395  if (constraintCase_ == ConstraintOneofCase.Automaton) {
4396  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Automaton);
4397  }
4398  if (constraintCase_ == ConstraintOneofCase.Inverse) {
4399  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Inverse);
4400  }
4401  if (constraintCase_ == ConstraintOneofCase.Reservoir) {
4402  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Reservoir);
4403  }
4404  if (constraintCase_ == ConstraintOneofCase.Interval) {
4405  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Interval);
4406  }
4407  if (constraintCase_ == ConstraintOneofCase.NoOverlap) {
4408  size += 2 + pb::CodedOutputStream.ComputeMessageSize(NoOverlap);
4409  }
4410  if (constraintCase_ == ConstraintOneofCase.NoOverlap2D) {
4411  size += 2 + pb::CodedOutputStream.ComputeMessageSize(NoOverlap2D);
4412  }
4413  if (constraintCase_ == ConstraintOneofCase.Cumulative) {
4414  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Cumulative);
4415  }
4416  if (_unknownFields != null) {
4417  size += _unknownFields.CalculateSize();
4418  }
4419  return size;
4420  }
4421 
4422  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4423  public void MergeFrom(ConstraintProto other) {
4424  if (other == null) {
4425  return;
4426  }
4427  if (other.Name.Length != 0) {
4428  Name = other.Name;
4429  }
4430  enforcementLiteral_.Add(other.enforcementLiteral_);
4431  switch (other.ConstraintCase) {
4432  case ConstraintOneofCase.BoolOr:
4433  if (BoolOr == null) {
4434  BoolOr = new global::Google.OrTools.Sat.BoolArgumentProto();
4435  }
4436  BoolOr.MergeFrom(other.BoolOr);
4437  break;
4438  case ConstraintOneofCase.BoolAnd:
4439  if (BoolAnd == null) {
4440  BoolAnd = new global::Google.OrTools.Sat.BoolArgumentProto();
4441  }
4442  BoolAnd.MergeFrom(other.BoolAnd);
4443  break;
4444  case ConstraintOneofCase.AtMostOne:
4445  if (AtMostOne == null) {
4446  AtMostOne = new global::Google.OrTools.Sat.BoolArgumentProto();
4447  }
4448  AtMostOne.MergeFrom(other.AtMostOne);
4449  break;
4450  case ConstraintOneofCase.BoolXor:
4451  if (BoolXor == null) {
4452  BoolXor = new global::Google.OrTools.Sat.BoolArgumentProto();
4453  }
4454  BoolXor.MergeFrom(other.BoolXor);
4455  break;
4456  case ConstraintOneofCase.IntDiv:
4457  if (IntDiv == null) {
4458  IntDiv = new global::Google.OrTools.Sat.IntegerArgumentProto();
4459  }
4460  IntDiv.MergeFrom(other.IntDiv);
4461  break;
4462  case ConstraintOneofCase.IntMod:
4463  if (IntMod == null) {
4464  IntMod = new global::Google.OrTools.Sat.IntegerArgumentProto();
4465  }
4466  IntMod.MergeFrom(other.IntMod);
4467  break;
4468  case ConstraintOneofCase.IntMax:
4469  if (IntMax == null) {
4470  IntMax = new global::Google.OrTools.Sat.IntegerArgumentProto();
4471  }
4472  IntMax.MergeFrom(other.IntMax);
4473  break;
4474  case ConstraintOneofCase.LinMax:
4475  if (LinMax == null) {
4476  LinMax = new global::Google.OrTools.Sat.LinearArgumentProto();
4477  }
4478  LinMax.MergeFrom(other.LinMax);
4479  break;
4480  case ConstraintOneofCase.IntMin:
4481  if (IntMin == null) {
4482  IntMin = new global::Google.OrTools.Sat.IntegerArgumentProto();
4483  }
4484  IntMin.MergeFrom(other.IntMin);
4485  break;
4486  case ConstraintOneofCase.LinMin:
4487  if (LinMin == null) {
4488  LinMin = new global::Google.OrTools.Sat.LinearArgumentProto();
4489  }
4490  LinMin.MergeFrom(other.LinMin);
4491  break;
4492  case ConstraintOneofCase.IntProd:
4493  if (IntProd == null) {
4494  IntProd = new global::Google.OrTools.Sat.IntegerArgumentProto();
4495  }
4496  IntProd.MergeFrom(other.IntProd);
4497  break;
4498  case ConstraintOneofCase.Linear:
4499  if (Linear == null) {
4500  Linear = new global::Google.OrTools.Sat.LinearConstraintProto();
4501  }
4502  Linear.MergeFrom(other.Linear);
4503  break;
4504  case ConstraintOneofCase.AllDiff:
4505  if (AllDiff == null) {
4506  AllDiff = new global::Google.OrTools.Sat.AllDifferentConstraintProto();
4507  }
4508  AllDiff.MergeFrom(other.AllDiff);
4509  break;
4510  case ConstraintOneofCase.Element:
4511  if (Element == null) {
4512  Element = new global::Google.OrTools.Sat.ElementConstraintProto();
4513  }
4514  Element.MergeFrom(other.Element);
4515  break;
4516  case ConstraintOneofCase.Circuit:
4517  if (Circuit == null) {
4518  Circuit = new global::Google.OrTools.Sat.CircuitConstraintProto();
4519  }
4520  Circuit.MergeFrom(other.Circuit);
4521  break;
4522  case ConstraintOneofCase.Routes:
4523  if (Routes == null) {
4524  Routes = new global::Google.OrTools.Sat.RoutesConstraintProto();
4525  }
4526  Routes.MergeFrom(other.Routes);
4527  break;
4528  case ConstraintOneofCase.CircuitCovering:
4529  if (CircuitCovering == null) {
4530  CircuitCovering = new global::Google.OrTools.Sat.CircuitCoveringConstraintProto();
4531  }
4532  CircuitCovering.MergeFrom(other.CircuitCovering);
4533  break;
4534  case ConstraintOneofCase.Table:
4535  if (Table == null) {
4536  Table = new global::Google.OrTools.Sat.TableConstraintProto();
4537  }
4538  Table.MergeFrom(other.Table);
4539  break;
4540  case ConstraintOneofCase.Automaton:
4541  if (Automaton == null) {
4542  Automaton = new global::Google.OrTools.Sat.AutomatonConstraintProto();
4543  }
4544  Automaton.MergeFrom(other.Automaton);
4545  break;
4546  case ConstraintOneofCase.Inverse:
4547  if (Inverse == null) {
4548  Inverse = new global::Google.OrTools.Sat.InverseConstraintProto();
4549  }
4550  Inverse.MergeFrom(other.Inverse);
4551  break;
4552  case ConstraintOneofCase.Reservoir:
4553  if (Reservoir == null) {
4554  Reservoir = new global::Google.OrTools.Sat.ReservoirConstraintProto();
4555  }
4556  Reservoir.MergeFrom(other.Reservoir);
4557  break;
4558  case ConstraintOneofCase.Interval:
4559  if (Interval == null) {
4560  Interval = new global::Google.OrTools.Sat.IntervalConstraintProto();
4561  }
4562  Interval.MergeFrom(other.Interval);
4563  break;
4564  case ConstraintOneofCase.NoOverlap:
4565  if (NoOverlap == null) {
4566  NoOverlap = new global::Google.OrTools.Sat.NoOverlapConstraintProto();
4567  }
4568  NoOverlap.MergeFrom(other.NoOverlap);
4569  break;
4570  case ConstraintOneofCase.NoOverlap2D:
4571  if (NoOverlap2D == null) {
4572  NoOverlap2D = new global::Google.OrTools.Sat.NoOverlap2DConstraintProto();
4573  }
4574  NoOverlap2D.MergeFrom(other.NoOverlap2D);
4575  break;
4576  case ConstraintOneofCase.Cumulative:
4577  if (Cumulative == null) {
4578  Cumulative = new global::Google.OrTools.Sat.CumulativeConstraintProto();
4579  }
4580  Cumulative.MergeFrom(other.Cumulative);
4581  break;
4582  }
4583 
4584  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4585  }
4586 
4587  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4588  public void MergeFrom(pb::CodedInputStream input) {
4589  uint tag;
4590  while ((tag = input.ReadTag()) != 0) {
4591  switch(tag) {
4592  default:
4593  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4594  break;
4595  case 10: {
4596  Name = input.ReadString();
4597  break;
4598  }
4599  case 18:
4600  case 16: {
4601  enforcementLiteral_.AddEntriesFrom(input, _repeated_enforcementLiteral_codec);
4602  break;
4603  }
4604  case 26: {
4605  global::Google.OrTools.Sat.BoolArgumentProto subBuilder = new global::Google.OrTools.Sat.BoolArgumentProto();
4606  if (constraintCase_ == ConstraintOneofCase.BoolOr) {
4607  subBuilder.MergeFrom(BoolOr);
4608  }
4609  input.ReadMessage(subBuilder);
4610  BoolOr = subBuilder;
4611  break;
4612  }
4613  case 34: {
4614  global::Google.OrTools.Sat.BoolArgumentProto subBuilder = new global::Google.OrTools.Sat.BoolArgumentProto();
4615  if (constraintCase_ == ConstraintOneofCase.BoolAnd) {
4616  subBuilder.MergeFrom(BoolAnd);
4617  }
4618  input.ReadMessage(subBuilder);
4619  BoolAnd = subBuilder;
4620  break;
4621  }
4622  case 42: {
4623  global::Google.OrTools.Sat.BoolArgumentProto subBuilder = new global::Google.OrTools.Sat.BoolArgumentProto();
4624  if (constraintCase_ == ConstraintOneofCase.BoolXor) {
4625  subBuilder.MergeFrom(BoolXor);
4626  }
4627  input.ReadMessage(subBuilder);
4628  BoolXor = subBuilder;
4629  break;
4630  }
4631  case 58: {
4632  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4633  if (constraintCase_ == ConstraintOneofCase.IntDiv) {
4634  subBuilder.MergeFrom(IntDiv);
4635  }
4636  input.ReadMessage(subBuilder);
4637  IntDiv = subBuilder;
4638  break;
4639  }
4640  case 66: {
4641  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4642  if (constraintCase_ == ConstraintOneofCase.IntMod) {
4643  subBuilder.MergeFrom(IntMod);
4644  }
4645  input.ReadMessage(subBuilder);
4646  IntMod = subBuilder;
4647  break;
4648  }
4649  case 74: {
4650  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4651  if (constraintCase_ == ConstraintOneofCase.IntMax) {
4652  subBuilder.MergeFrom(IntMax);
4653  }
4654  input.ReadMessage(subBuilder);
4655  IntMax = subBuilder;
4656  break;
4657  }
4658  case 82: {
4659  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4660  if (constraintCase_ == ConstraintOneofCase.IntMin) {
4661  subBuilder.MergeFrom(IntMin);
4662  }
4663  input.ReadMessage(subBuilder);
4664  IntMin = subBuilder;
4665  break;
4666  }
4667  case 90: {
4668  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4669  if (constraintCase_ == ConstraintOneofCase.IntProd) {
4670  subBuilder.MergeFrom(IntProd);
4671  }
4672  input.ReadMessage(subBuilder);
4673  IntProd = subBuilder;
4674  break;
4675  }
4676  case 98: {
4677  global::Google.OrTools.Sat.LinearConstraintProto subBuilder = new global::Google.OrTools.Sat.LinearConstraintProto();
4678  if (constraintCase_ == ConstraintOneofCase.Linear) {
4679  subBuilder.MergeFrom(Linear);
4680  }
4681  input.ReadMessage(subBuilder);
4682  Linear = subBuilder;
4683  break;
4684  }
4685  case 106: {
4686  global::Google.OrTools.Sat.AllDifferentConstraintProto subBuilder = new global::Google.OrTools.Sat.AllDifferentConstraintProto();
4687  if (constraintCase_ == ConstraintOneofCase.AllDiff) {
4688  subBuilder.MergeFrom(AllDiff);
4689  }
4690  input.ReadMessage(subBuilder);
4691  AllDiff = subBuilder;
4692  break;
4693  }
4694  case 114: {
4695  global::Google.OrTools.Sat.ElementConstraintProto subBuilder = new global::Google.OrTools.Sat.ElementConstraintProto();
4696  if (constraintCase_ == ConstraintOneofCase.Element) {
4697  subBuilder.MergeFrom(Element);
4698  }
4699  input.ReadMessage(subBuilder);
4700  Element = subBuilder;
4701  break;
4702  }
4703  case 122: {
4704  global::Google.OrTools.Sat.CircuitConstraintProto subBuilder = new global::Google.OrTools.Sat.CircuitConstraintProto();
4705  if (constraintCase_ == ConstraintOneofCase.Circuit) {
4706  subBuilder.MergeFrom(Circuit);
4707  }
4708  input.ReadMessage(subBuilder);
4709  Circuit = subBuilder;
4710  break;
4711  }
4712  case 130: {
4713  global::Google.OrTools.Sat.TableConstraintProto subBuilder = new global::Google.OrTools.Sat.TableConstraintProto();
4714  if (constraintCase_ == ConstraintOneofCase.Table) {
4715  subBuilder.MergeFrom(Table);
4716  }
4717  input.ReadMessage(subBuilder);
4718  Table = subBuilder;
4719  break;
4720  }
4721  case 138: {
4722  global::Google.OrTools.Sat.AutomatonConstraintProto subBuilder = new global::Google.OrTools.Sat.AutomatonConstraintProto();
4723  if (constraintCase_ == ConstraintOneofCase.Automaton) {
4724  subBuilder.MergeFrom(Automaton);
4725  }
4726  input.ReadMessage(subBuilder);
4727  Automaton = subBuilder;
4728  break;
4729  }
4730  case 146: {
4731  global::Google.OrTools.Sat.InverseConstraintProto subBuilder = new global::Google.OrTools.Sat.InverseConstraintProto();
4732  if (constraintCase_ == ConstraintOneofCase.Inverse) {
4733  subBuilder.MergeFrom(Inverse);
4734  }
4735  input.ReadMessage(subBuilder);
4736  Inverse = subBuilder;
4737  break;
4738  }
4739  case 154: {
4740  global::Google.OrTools.Sat.IntervalConstraintProto subBuilder = new global::Google.OrTools.Sat.IntervalConstraintProto();
4741  if (constraintCase_ == ConstraintOneofCase.Interval) {
4742  subBuilder.MergeFrom(Interval);
4743  }
4744  input.ReadMessage(subBuilder);
4745  Interval = subBuilder;
4746  break;
4747  }
4748  case 162: {
4749  global::Google.OrTools.Sat.NoOverlapConstraintProto subBuilder = new global::Google.OrTools.Sat.NoOverlapConstraintProto();
4750  if (constraintCase_ == ConstraintOneofCase.NoOverlap) {
4751  subBuilder.MergeFrom(NoOverlap);
4752  }
4753  input.ReadMessage(subBuilder);
4754  NoOverlap = subBuilder;
4755  break;
4756  }
4757  case 170: {
4758  global::Google.OrTools.Sat.NoOverlap2DConstraintProto subBuilder = new global::Google.OrTools.Sat.NoOverlap2DConstraintProto();
4759  if (constraintCase_ == ConstraintOneofCase.NoOverlap2D) {
4760  subBuilder.MergeFrom(NoOverlap2D);
4761  }
4762  input.ReadMessage(subBuilder);
4763  NoOverlap2D = subBuilder;
4764  break;
4765  }
4766  case 178: {
4767  global::Google.OrTools.Sat.CumulativeConstraintProto subBuilder = new global::Google.OrTools.Sat.CumulativeConstraintProto();
4768  if (constraintCase_ == ConstraintOneofCase.Cumulative) {
4769  subBuilder.MergeFrom(Cumulative);
4770  }
4771  input.ReadMessage(subBuilder);
4772  Cumulative = subBuilder;
4773  break;
4774  }
4775  case 186: {
4776  global::Google.OrTools.Sat.RoutesConstraintProto subBuilder = new global::Google.OrTools.Sat.RoutesConstraintProto();
4777  if (constraintCase_ == ConstraintOneofCase.Routes) {
4778  subBuilder.MergeFrom(Routes);
4779  }
4780  input.ReadMessage(subBuilder);
4781  Routes = subBuilder;
4782  break;
4783  }
4784  case 194: {
4785  global::Google.OrTools.Sat.ReservoirConstraintProto subBuilder = new global::Google.OrTools.Sat.ReservoirConstraintProto();
4786  if (constraintCase_ == ConstraintOneofCase.Reservoir) {
4787  subBuilder.MergeFrom(Reservoir);
4788  }
4789  input.ReadMessage(subBuilder);
4790  Reservoir = subBuilder;
4791  break;
4792  }
4793  case 202: {
4794  global::Google.OrTools.Sat.CircuitCoveringConstraintProto subBuilder = new global::Google.OrTools.Sat.CircuitCoveringConstraintProto();
4795  if (constraintCase_ == ConstraintOneofCase.CircuitCovering) {
4796  subBuilder.MergeFrom(CircuitCovering);
4797  }
4798  input.ReadMessage(subBuilder);
4799  CircuitCovering = subBuilder;
4800  break;
4801  }
4802  case 210: {
4803  global::Google.OrTools.Sat.BoolArgumentProto subBuilder = new global::Google.OrTools.Sat.BoolArgumentProto();
4804  if (constraintCase_ == ConstraintOneofCase.AtMostOne) {
4805  subBuilder.MergeFrom(AtMostOne);
4806  }
4807  input.ReadMessage(subBuilder);
4808  AtMostOne = subBuilder;
4809  break;
4810  }
4811  case 218: {
4812  global::Google.OrTools.Sat.LinearArgumentProto subBuilder = new global::Google.OrTools.Sat.LinearArgumentProto();
4813  if (constraintCase_ == ConstraintOneofCase.LinMax) {
4814  subBuilder.MergeFrom(LinMax);
4815  }
4816  input.ReadMessage(subBuilder);
4817  LinMax = subBuilder;
4818  break;
4819  }
4820  case 226: {
4821  global::Google.OrTools.Sat.LinearArgumentProto subBuilder = new global::Google.OrTools.Sat.LinearArgumentProto();
4822  if (constraintCase_ == ConstraintOneofCase.LinMin) {
4823  subBuilder.MergeFrom(LinMin);
4824  }
4825  input.ReadMessage(subBuilder);
4826  LinMin = subBuilder;
4827  break;
4828  }
4829  }
4830  }
4831  }
4832 
4833  }
4834 
4840  public sealed partial class CpObjectiveProto : pb::IMessage<CpObjectiveProto> {
4841  private static readonly pb::MessageParser<CpObjectiveProto> _parser = new pb::MessageParser<CpObjectiveProto>(() => new CpObjectiveProto());
4842  private pb::UnknownFieldSet _unknownFields;
4843  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4844  public static pb::MessageParser<CpObjectiveProto> Parser { get { return _parser; } }
4845 
4846  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4847  public static pbr::MessageDescriptor Descriptor {
4848  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[20]; }
4849  }
4850 
4851  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4852  pbr::MessageDescriptor pb::IMessage.Descriptor {
4853  get { return Descriptor; }
4854  }
4855 
4856  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4857  public CpObjectiveProto() {
4858  OnConstruction();
4859  }
4860 
4861  partial void OnConstruction();
4862 
4863  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4864  public CpObjectiveProto(CpObjectiveProto other) : this() {
4865  vars_ = other.vars_.Clone();
4866  coeffs_ = other.coeffs_.Clone();
4867  offset_ = other.offset_;
4868  scalingFactor_ = other.scalingFactor_;
4869  domain_ = other.domain_.Clone();
4870  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4871  }
4872 
4873  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4875  return new CpObjectiveProto(this);
4876  }
4877 
4879  public const int VarsFieldNumber = 1;
4880  private static readonly pb::FieldCodec<int> _repeated_vars_codec
4881  = pb::FieldCodec.ForInt32(10);
4882  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
4888  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4889  public pbc::RepeatedField<int> Vars {
4890  get { return vars_; }
4891  }
4892 
4894  public const int CoeffsFieldNumber = 4;
4895  private static readonly pb::FieldCodec<long> _repeated_coeffs_codec
4896  = pb::FieldCodec.ForInt64(34);
4897  private readonly pbc::RepeatedField<long> coeffs_ = new pbc::RepeatedField<long>();
4898  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4899  public pbc::RepeatedField<long> Coeffs {
4900  get { return coeffs_; }
4901  }
4902 
4904  public const int OffsetFieldNumber = 2;
4905  private double offset_;
4915  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4916  public double Offset {
4917  get { return offset_; }
4918  set {
4919  offset_ = value;
4920  }
4921  }
4922 
4924  public const int ScalingFactorFieldNumber = 3;
4925  private double scalingFactor_;
4926  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4927  public double ScalingFactor {
4928  get { return scalingFactor_; }
4929  set {
4930  scalingFactor_ = value;
4931  }
4932  }
4933 
4935  public const int DomainFieldNumber = 5;
4936  private static readonly pb::FieldCodec<long> _repeated_domain_codec
4937  = pb::FieldCodec.ForInt64(42);
4938  private readonly pbc::RepeatedField<long> domain_ = new pbc::RepeatedField<long>();
4944  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4945  public pbc::RepeatedField<long> Domain {
4946  get { return domain_; }
4947  }
4948 
4949  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4950  public override bool Equals(object other) {
4951  return Equals(other as CpObjectiveProto);
4952  }
4953 
4954  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4955  public bool Equals(CpObjectiveProto other) {
4956  if (ReferenceEquals(other, null)) {
4957  return false;
4958  }
4959  if (ReferenceEquals(other, this)) {
4960  return true;
4961  }
4962  if(!vars_.Equals(other.vars_)) return false;
4963  if(!coeffs_.Equals(other.coeffs_)) return false;
4964  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(Offset, other.Offset)) return false;
4965  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ScalingFactor, other.ScalingFactor)) return false;
4966  if(!domain_.Equals(other.domain_)) return false;
4967  return Equals(_unknownFields, other._unknownFields);
4968  }
4969 
4970  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4971  public override int GetHashCode() {
4972  int hash = 1;
4973  hash ^= vars_.GetHashCode();
4974  hash ^= coeffs_.GetHashCode();
4975  if (Offset != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Offset);
4976  if (ScalingFactor != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ScalingFactor);
4977  hash ^= domain_.GetHashCode();
4978  if (_unknownFields != null) {
4979  hash ^= _unknownFields.GetHashCode();
4980  }
4981  return hash;
4982  }
4983 
4984  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4985  public override string ToString() {
4986  return pb::JsonFormatter.ToDiagnosticString(this);
4987  }
4988 
4989  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4990  public void WriteTo(pb::CodedOutputStream output) {
4991  vars_.WriteTo(output, _repeated_vars_codec);
4992  if (Offset != 0D) {
4993  output.WriteRawTag(17);
4994  output.WriteDouble(Offset);
4995  }
4996  if (ScalingFactor != 0D) {
4997  output.WriteRawTag(25);
4998  output.WriteDouble(ScalingFactor);
4999  }
5000  coeffs_.WriteTo(output, _repeated_coeffs_codec);
5001  domain_.WriteTo(output, _repeated_domain_codec);
5002  if (_unknownFields != null) {
5003  _unknownFields.WriteTo(output);
5004  }
5005  }
5006 
5007  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5008  public int CalculateSize() {
5009  int size = 0;
5010  size += vars_.CalculateSize(_repeated_vars_codec);
5011  size += coeffs_.CalculateSize(_repeated_coeffs_codec);
5012  if (Offset != 0D) {
5013  size += 1 + 8;
5014  }
5015  if (ScalingFactor != 0D) {
5016  size += 1 + 8;
5017  }
5018  size += domain_.CalculateSize(_repeated_domain_codec);
5019  if (_unknownFields != null) {
5020  size += _unknownFields.CalculateSize();
5021  }
5022  return size;
5023  }
5024 
5025  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5026  public void MergeFrom(CpObjectiveProto other) {
5027  if (other == null) {
5028  return;
5029  }
5030  vars_.Add(other.vars_);
5031  coeffs_.Add(other.coeffs_);
5032  if (other.Offset != 0D) {
5033  Offset = other.Offset;
5034  }
5035  if (other.ScalingFactor != 0D) {
5036  ScalingFactor = other.ScalingFactor;
5037  }
5038  domain_.Add(other.domain_);
5039  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5040  }
5041 
5042  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5043  public void MergeFrom(pb::CodedInputStream input) {
5044  uint tag;
5045  while ((tag = input.ReadTag()) != 0) {
5046  switch(tag) {
5047  default:
5048  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5049  break;
5050  case 10:
5051  case 8: {
5052  vars_.AddEntriesFrom(input, _repeated_vars_codec);
5053  break;
5054  }
5055  case 17: {
5056  Offset = input.ReadDouble();
5057  break;
5058  }
5059  case 25: {
5060  ScalingFactor = input.ReadDouble();
5061  break;
5062  }
5063  case 34:
5064  case 32: {
5065  coeffs_.AddEntriesFrom(input, _repeated_coeffs_codec);
5066  break;
5067  }
5068  case 42:
5069  case 40: {
5070  domain_.AddEntriesFrom(input, _repeated_domain_codec);
5071  break;
5072  }
5073  }
5074  }
5075  }
5076 
5077  }
5078 
5083  public sealed partial class DecisionStrategyProto : pb::IMessage<DecisionStrategyProto> {
5084  private static readonly pb::MessageParser<DecisionStrategyProto> _parser = new pb::MessageParser<DecisionStrategyProto>(() => new DecisionStrategyProto());
5085  private pb::UnknownFieldSet _unknownFields;
5086  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5087  public static pb::MessageParser<DecisionStrategyProto> Parser { get { return _parser; } }
5088 
5089  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5090  public static pbr::MessageDescriptor Descriptor {
5091  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[21]; }
5092  }
5093 
5094  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5095  pbr::MessageDescriptor pb::IMessage.Descriptor {
5096  get { return Descriptor; }
5097  }
5098 
5099  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5101  OnConstruction();
5102  }
5103 
5104  partial void OnConstruction();
5105 
5106  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5108  variables_ = other.variables_.Clone();
5109  variableSelectionStrategy_ = other.variableSelectionStrategy_;
5110  domainReductionStrategy_ = other.domainReductionStrategy_;
5111  transformations_ = other.transformations_.Clone();
5112  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5113  }
5114 
5115  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5117  return new DecisionStrategyProto(this);
5118  }
5119 
5121  public const int VariablesFieldNumber = 1;
5122  private static readonly pb::FieldCodec<int> _repeated_variables_codec
5123  = pb::FieldCodec.ForInt32(10);
5124  private readonly pbc::RepeatedField<int> variables_ = new pbc::RepeatedField<int>();
5130  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5131  public pbc::RepeatedField<int> Variables {
5132  get { return variables_; }
5133  }
5134 
5136  public const int VariableSelectionStrategyFieldNumber = 2;
5137  private global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy variableSelectionStrategy_ = global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy.ChooseFirst;
5138  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5139  public global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy VariableSelectionStrategy {
5140  get { return variableSelectionStrategy_; }
5141  set {
5142  variableSelectionStrategy_ = value;
5143  }
5144  }
5145 
5147  public const int DomainReductionStrategyFieldNumber = 3;
5148  private global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy domainReductionStrategy_ = global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy.SelectMinValue;
5149  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5150  public global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy DomainReductionStrategy {
5151  get { return domainReductionStrategy_; }
5152  set {
5153  domainReductionStrategy_ = value;
5154  }
5155  }
5156 
5158  public const int TransformationsFieldNumber = 4;
5159  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation> _repeated_transformations_codec
5160  = pb::FieldCodec.ForMessage(34, global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation.Parser);
5161  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation> transformations_ = new pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation>();
5162  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5163  public pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation> Transformations {
5164  get { return transformations_; }
5165  }
5166 
5167  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5168  public override bool Equals(object other) {
5169  return Equals(other as DecisionStrategyProto);
5170  }
5171 
5172  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5173  public bool Equals(DecisionStrategyProto other) {
5174  if (ReferenceEquals(other, null)) {
5175  return false;
5176  }
5177  if (ReferenceEquals(other, this)) {
5178  return true;
5179  }
5180  if(!variables_.Equals(other.variables_)) return false;
5181  if (VariableSelectionStrategy != other.VariableSelectionStrategy) return false;
5182  if (DomainReductionStrategy != other.DomainReductionStrategy) return false;
5183  if(!transformations_.Equals(other.transformations_)) return false;
5184  return Equals(_unknownFields, other._unknownFields);
5185  }
5186 
5187  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5188  public override int GetHashCode() {
5189  int hash = 1;
5190  hash ^= variables_.GetHashCode();
5191  if (VariableSelectionStrategy != global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy.ChooseFirst) hash ^= VariableSelectionStrategy.GetHashCode();
5192  if (DomainReductionStrategy != global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy.SelectMinValue) hash ^= DomainReductionStrategy.GetHashCode();
5193  hash ^= transformations_.GetHashCode();
5194  if (_unknownFields != null) {
5195  hash ^= _unknownFields.GetHashCode();
5196  }
5197  return hash;
5198  }
5199 
5200  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5201  public override string ToString() {
5202  return pb::JsonFormatter.ToDiagnosticString(this);
5203  }
5204 
5205  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5206  public void WriteTo(pb::CodedOutputStream output) {
5207  variables_.WriteTo(output, _repeated_variables_codec);
5208  if (VariableSelectionStrategy != global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy.ChooseFirst) {
5209  output.WriteRawTag(16);
5210  output.WriteEnum((int) VariableSelectionStrategy);
5211  }
5212  if (DomainReductionStrategy != global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy.SelectMinValue) {
5213  output.WriteRawTag(24);
5214  output.WriteEnum((int) DomainReductionStrategy);
5215  }
5216  transformations_.WriteTo(output, _repeated_transformations_codec);
5217  if (_unknownFields != null) {
5218  _unknownFields.WriteTo(output);
5219  }
5220  }
5221 
5222  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5223  public int CalculateSize() {
5224  int size = 0;
5225  size += variables_.CalculateSize(_repeated_variables_codec);
5226  if (VariableSelectionStrategy != global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy.ChooseFirst) {
5227  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) VariableSelectionStrategy);
5228  }
5229  if (DomainReductionStrategy != global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy.SelectMinValue) {
5230  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DomainReductionStrategy);
5231  }
5232  size += transformations_.CalculateSize(_repeated_transformations_codec);
5233  if (_unknownFields != null) {
5234  size += _unknownFields.CalculateSize();
5235  }
5236  return size;
5237  }
5238 
5239  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5240  public void MergeFrom(DecisionStrategyProto other) {
5241  if (other == null) {
5242  return;
5243  }
5244  variables_.Add(other.variables_);
5245  if (other.VariableSelectionStrategy != global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy.ChooseFirst) {
5246  VariableSelectionStrategy = other.VariableSelectionStrategy;
5247  }
5248  if (other.DomainReductionStrategy != global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy.SelectMinValue) {
5249  DomainReductionStrategy = other.DomainReductionStrategy;
5250  }
5251  transformations_.Add(other.transformations_);
5252  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5253  }
5254 
5255  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5256  public void MergeFrom(pb::CodedInputStream input) {
5257  uint tag;
5258  while ((tag = input.ReadTag()) != 0) {
5259  switch(tag) {
5260  default:
5261  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5262  break;
5263  case 10:
5264  case 8: {
5265  variables_.AddEntriesFrom(input, _repeated_variables_codec);
5266  break;
5267  }
5268  case 16: {
5269  VariableSelectionStrategy = (global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy) input.ReadEnum();
5270  break;
5271  }
5272  case 24: {
5273  DomainReductionStrategy = (global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy) input.ReadEnum();
5274  break;
5275  }
5276  case 34: {
5277  transformations_.AddEntriesFrom(input, _repeated_transformations_codec);
5278  break;
5279  }
5280  }
5281  }
5282  }
5283 
5284  #region Nested types
5285  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5287  public static partial class Types {
5295  [pbr::OriginalName("CHOOSE_FIRST")] ChooseFirst = 0,
5296  [pbr::OriginalName("CHOOSE_LOWEST_MIN")] ChooseLowestMin = 1,
5297  [pbr::OriginalName("CHOOSE_HIGHEST_MAX")] ChooseHighestMax = 2,
5298  [pbr::OriginalName("CHOOSE_MIN_DOMAIN_SIZE")] ChooseMinDomainSize = 3,
5299  [pbr::OriginalName("CHOOSE_MAX_DOMAIN_SIZE")] ChooseMaxDomainSize = 4,
5300  }
5301 
5309  [pbr::OriginalName("SELECT_MIN_VALUE")] SelectMinValue = 0,
5310  [pbr::OriginalName("SELECT_MAX_VALUE")] SelectMaxValue = 1,
5311  [pbr::OriginalName("SELECT_LOWER_HALF")] SelectLowerHalf = 2,
5312  [pbr::OriginalName("SELECT_UPPER_HALF")] SelectUpperHalf = 3,
5313  [pbr::OriginalName("SELECT_MEDIAN_VALUE")] SelectMedianValue = 4,
5314  }
5315 
5322  public sealed partial class AffineTransformation : pb::IMessage<AffineTransformation> {
5323  private static readonly pb::MessageParser<AffineTransformation> _parser = new pb::MessageParser<AffineTransformation>(() => new AffineTransformation());
5324  private pb::UnknownFieldSet _unknownFields;
5325  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5326  public static pb::MessageParser<AffineTransformation> Parser { get { return _parser; } }
5327 
5328  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5329  public static pbr::MessageDescriptor Descriptor {
5330  get { return global::Google.OrTools.Sat.DecisionStrategyProto.Descriptor.NestedTypes[0]; }
5331  }
5332 
5333  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5334  pbr::MessageDescriptor pb::IMessage.Descriptor {
5335  get { return Descriptor; }
5336  }
5337 
5338  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5340  OnConstruction();
5341  }
5342 
5343  partial void OnConstruction();
5344 
5345  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5347  var_ = other.var_;
5348  offset_ = other.offset_;
5349  positiveCoeff_ = other.positiveCoeff_;
5350  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5351  }
5352 
5353  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5355  return new AffineTransformation(this);
5356  }
5357 
5359  public const int VarFieldNumber = 1;
5360  private int var_;
5361  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5362  public int Var {
5363  get { return var_; }
5364  set {
5365  var_ = value;
5366  }
5367  }
5368 
5370  public const int OffsetFieldNumber = 2;
5371  private long offset_;
5372  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5373  public long Offset {
5374  get { return offset_; }
5375  set {
5376  offset_ = value;
5377  }
5378  }
5379 
5381  public const int PositiveCoeffFieldNumber = 3;
5382  private long positiveCoeff_;
5383  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5384  public long PositiveCoeff {
5385  get { return positiveCoeff_; }
5386  set {
5387  positiveCoeff_ = value;
5388  }
5389  }
5390 
5391  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5392  public override bool Equals(object other) {
5393  return Equals(other as AffineTransformation);
5394  }
5395 
5396  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5397  public bool Equals(AffineTransformation other) {
5398  if (ReferenceEquals(other, null)) {
5399  return false;
5400  }
5401  if (ReferenceEquals(other, this)) {
5402  return true;
5403  }
5404  if (Var != other.Var) return false;
5405  if (Offset != other.Offset) return false;
5406  if (PositiveCoeff != other.PositiveCoeff) return false;
5407  return Equals(_unknownFields, other._unknownFields);
5408  }
5409 
5410  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5411  public override int GetHashCode() {
5412  int hash = 1;
5413  if (Var != 0) hash ^= Var.GetHashCode();
5414  if (Offset != 0L) hash ^= Offset.GetHashCode();
5415  if (PositiveCoeff != 0L) hash ^= PositiveCoeff.GetHashCode();
5416  if (_unknownFields != null) {
5417  hash ^= _unknownFields.GetHashCode();
5418  }
5419  return hash;
5420  }
5421 
5422  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5423  public override string ToString() {
5424  return pb::JsonFormatter.ToDiagnosticString(this);
5425  }
5426 
5427  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5428  public void WriteTo(pb::CodedOutputStream output) {
5429  if (Var != 0) {
5430  output.WriteRawTag(8);
5431  output.WriteInt32(Var);
5432  }
5433  if (Offset != 0L) {
5434  output.WriteRawTag(16);
5435  output.WriteInt64(Offset);
5436  }
5437  if (PositiveCoeff != 0L) {
5438  output.WriteRawTag(24);
5439  output.WriteInt64(PositiveCoeff);
5440  }
5441  if (_unknownFields != null) {
5442  _unknownFields.WriteTo(output);
5443  }
5444  }
5445 
5446  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5447  public int CalculateSize() {
5448  int size = 0;
5449  if (Var != 0) {
5450  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Var);
5451  }
5452  if (Offset != 0L) {
5453  size += 1 + pb::CodedOutputStream.ComputeInt64Size(Offset);
5454  }
5455  if (PositiveCoeff != 0L) {
5456  size += 1 + pb::CodedOutputStream.ComputeInt64Size(PositiveCoeff);
5457  }
5458  if (_unknownFields != null) {
5459  size += _unknownFields.CalculateSize();
5460  }
5461  return size;
5462  }
5463 
5464  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5465  public void MergeFrom(AffineTransformation other) {
5466  if (other == null) {
5467  return;
5468  }
5469  if (other.Var != 0) {
5470  Var = other.Var;
5471  }
5472  if (other.Offset != 0L) {
5473  Offset = other.Offset;
5474  }
5475  if (other.PositiveCoeff != 0L) {
5476  PositiveCoeff = other.PositiveCoeff;
5477  }
5478  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5479  }
5480 
5481  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5482  public void MergeFrom(pb::CodedInputStream input) {
5483  uint tag;
5484  while ((tag = input.ReadTag()) != 0) {
5485  switch(tag) {
5486  default:
5487  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5488  break;
5489  case 8: {
5490  Var = input.ReadInt32();
5491  break;
5492  }
5493  case 16: {
5494  Offset = input.ReadInt64();
5495  break;
5496  }
5497  case 24: {
5498  PositiveCoeff = input.ReadInt64();
5499  break;
5500  }
5501  }
5502  }
5503  }
5504 
5505  }
5506 
5507  }
5508  #endregion
5509 
5510  }
5511 
5517  public sealed partial class PartialVariableAssignment : pb::IMessage<PartialVariableAssignment> {
5518  private static readonly pb::MessageParser<PartialVariableAssignment> _parser = new pb::MessageParser<PartialVariableAssignment>(() => new PartialVariableAssignment());
5519  private pb::UnknownFieldSet _unknownFields;
5520  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5521  public static pb::MessageParser<PartialVariableAssignment> Parser { get { return _parser; } }
5522 
5523  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5524  public static pbr::MessageDescriptor Descriptor {
5525  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[22]; }
5526  }
5527 
5528  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5529  pbr::MessageDescriptor pb::IMessage.Descriptor {
5530  get { return Descriptor; }
5531  }
5532 
5533  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5535  OnConstruction();
5536  }
5537 
5538  partial void OnConstruction();
5539 
5540  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5542  vars_ = other.vars_.Clone();
5543  values_ = other.values_.Clone();
5544  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5545  }
5546 
5547  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5549  return new PartialVariableAssignment(this);
5550  }
5551 
5553  public const int VarsFieldNumber = 1;
5554  private static readonly pb::FieldCodec<int> _repeated_vars_codec
5555  = pb::FieldCodec.ForInt32(10);
5556  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
5557  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5558  public pbc::RepeatedField<int> Vars {
5559  get { return vars_; }
5560  }
5561 
5563  public const int ValuesFieldNumber = 2;
5564  private static readonly pb::FieldCodec<long> _repeated_values_codec
5565  = pb::FieldCodec.ForInt64(18);
5566  private readonly pbc::RepeatedField<long> values_ = new pbc::RepeatedField<long>();
5567  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5568  public pbc::RepeatedField<long> Values {
5569  get { return values_; }
5570  }
5571 
5572  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5573  public override bool Equals(object other) {
5574  return Equals(other as PartialVariableAssignment);
5575  }
5576 
5577  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5578  public bool Equals(PartialVariableAssignment other) {
5579  if (ReferenceEquals(other, null)) {
5580  return false;
5581  }
5582  if (ReferenceEquals(other, this)) {
5583  return true;
5584  }
5585  if(!vars_.Equals(other.vars_)) return false;
5586  if(!values_.Equals(other.values_)) return false;
5587  return Equals(_unknownFields, other._unknownFields);
5588  }
5589 
5590  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5591  public override int GetHashCode() {
5592  int hash = 1;
5593  hash ^= vars_.GetHashCode();
5594  hash ^= values_.GetHashCode();
5595  if (_unknownFields != null) {
5596  hash ^= _unknownFields.GetHashCode();
5597  }
5598  return hash;
5599  }
5600 
5601  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5602  public override string ToString() {
5603  return pb::JsonFormatter.ToDiagnosticString(this);
5604  }
5605 
5606  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5607  public void WriteTo(pb::CodedOutputStream output) {
5608  vars_.WriteTo(output, _repeated_vars_codec);
5609  values_.WriteTo(output, _repeated_values_codec);
5610  if (_unknownFields != null) {
5611  _unknownFields.WriteTo(output);
5612  }
5613  }
5614 
5615  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5616  public int CalculateSize() {
5617  int size = 0;
5618  size += vars_.CalculateSize(_repeated_vars_codec);
5619  size += values_.CalculateSize(_repeated_values_codec);
5620  if (_unknownFields != null) {
5621  size += _unknownFields.CalculateSize();
5622  }
5623  return size;
5624  }
5625 
5626  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5628  if (other == null) {
5629  return;
5630  }
5631  vars_.Add(other.vars_);
5632  values_.Add(other.values_);
5633  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5634  }
5635 
5636  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5637  public void MergeFrom(pb::CodedInputStream input) {
5638  uint tag;
5639  while ((tag = input.ReadTag()) != 0) {
5640  switch(tag) {
5641  default:
5642  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5643  break;
5644  case 10:
5645  case 8: {
5646  vars_.AddEntriesFrom(input, _repeated_vars_codec);
5647  break;
5648  }
5649  case 18:
5650  case 16: {
5651  values_.AddEntriesFrom(input, _repeated_values_codec);
5652  break;
5653  }
5654  }
5655  }
5656  }
5657 
5658  }
5659 
5663  public sealed partial class CpModelProto : pb::IMessage<CpModelProto> {
5664  private static readonly pb::MessageParser<CpModelProto> _parser = new pb::MessageParser<CpModelProto>(() => new CpModelProto());
5665  private pb::UnknownFieldSet _unknownFields;
5666  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5667  public static pb::MessageParser<CpModelProto> Parser { get { return _parser; } }
5668 
5669  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5670  public static pbr::MessageDescriptor Descriptor {
5671  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[23]; }
5672  }
5673 
5674  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5675  pbr::MessageDescriptor pb::IMessage.Descriptor {
5676  get { return Descriptor; }
5677  }
5678 
5679  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5680  public CpModelProto() {
5681  OnConstruction();
5682  }
5683 
5684  partial void OnConstruction();
5685 
5686  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5687  public CpModelProto(CpModelProto other) : this() {
5688  name_ = other.name_;
5689  variables_ = other.variables_.Clone();
5690  constraints_ = other.constraints_.Clone();
5691  objective_ = other.objective_ != null ? other.objective_.Clone() : null;
5692  searchStrategy_ = other.searchStrategy_.Clone();
5693  solutionHint_ = other.solutionHint_ != null ? other.solutionHint_.Clone() : null;
5694  assumptions_ = other.assumptions_.Clone();
5695  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5696  }
5697 
5698  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5699  public CpModelProto Clone() {
5700  return new CpModelProto(this);
5701  }
5702 
5704  public const int NameFieldNumber = 1;
5705  private string name_ = "";
5709  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5710  public string Name {
5711  get { return name_; }
5712  set {
5713  name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5714  }
5715  }
5716 
5718  public const int VariablesFieldNumber = 2;
5719  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.IntegerVariableProto> _repeated_variables_codec
5720  = pb::FieldCodec.ForMessage(18, global::Google.OrTools.Sat.IntegerVariableProto.Parser);
5721  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto> variables_ = new pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto>();
5725  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5726  public pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto> Variables {
5727  get { return variables_; }
5728  }
5729 
5731  public const int ConstraintsFieldNumber = 3;
5732  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.ConstraintProto> _repeated_constraints_codec
5733  = pb::FieldCodec.ForMessage(26, global::Google.OrTools.Sat.ConstraintProto.Parser);
5734  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.ConstraintProto> constraints_ = new pbc::RepeatedField<global::Google.OrTools.Sat.ConstraintProto>();
5735  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5736  public pbc::RepeatedField<global::Google.OrTools.Sat.ConstraintProto> Constraints {
5737  get { return constraints_; }
5738  }
5739 
5741  public const int ObjectiveFieldNumber = 4;
5742  private global::Google.OrTools.Sat.CpObjectiveProto objective_;
5746  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5747  public global::Google.OrTools.Sat.CpObjectiveProto Objective {
5748  get { return objective_; }
5749  set {
5750  objective_ = value;
5751  }
5752  }
5753 
5755  public const int SearchStrategyFieldNumber = 5;
5756  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.DecisionStrategyProto> _repeated_searchStrategy_codec
5757  = pb::FieldCodec.ForMessage(42, global::Google.OrTools.Sat.DecisionStrategyProto.Parser);
5758  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto> searchStrategy_ = new pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto>();
5771  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5772  public pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto> SearchStrategy {
5773  get { return searchStrategy_; }
5774  }
5775 
5777  public const int SolutionHintFieldNumber = 6;
5778  private global::Google.OrTools.Sat.PartialVariableAssignment solutionHint_;
5792  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5793  public global::Google.OrTools.Sat.PartialVariableAssignment SolutionHint {
5794  get { return solutionHint_; }
5795  set {
5796  solutionHint_ = value;
5797  }
5798  }
5799 
5801  public const int AssumptionsFieldNumber = 7;
5802  private static readonly pb::FieldCodec<int> _repeated_assumptions_codec
5803  = pb::FieldCodec.ForInt32(58);
5804  private readonly pbc::RepeatedField<int> assumptions_ = new pbc::RepeatedField<int>();
5820  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5821  public pbc::RepeatedField<int> Assumptions {
5822  get { return assumptions_; }
5823  }
5824 
5825  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5826  public override bool Equals(object other) {
5827  return Equals(other as CpModelProto);
5828  }
5829 
5830  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5831  public bool Equals(CpModelProto other) {
5832  if (ReferenceEquals(other, null)) {
5833  return false;
5834  }
5835  if (ReferenceEquals(other, this)) {
5836  return true;
5837  }
5838  if (Name != other.Name) return false;
5839  if(!variables_.Equals(other.variables_)) return false;
5840  if(!constraints_.Equals(other.constraints_)) return false;
5841  if (!object.Equals(Objective, other.Objective)) return false;
5842  if(!searchStrategy_.Equals(other.searchStrategy_)) return false;
5843  if (!object.Equals(SolutionHint, other.SolutionHint)) return false;
5844  if(!assumptions_.Equals(other.assumptions_)) return false;
5845  return Equals(_unknownFields, other._unknownFields);
5846  }
5847 
5848  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5849  public override int GetHashCode() {
5850  int hash = 1;
5851  if (Name.Length != 0) hash ^= Name.GetHashCode();
5852  hash ^= variables_.GetHashCode();
5853  hash ^= constraints_.GetHashCode();
5854  if (objective_ != null) hash ^= Objective.GetHashCode();
5855  hash ^= searchStrategy_.GetHashCode();
5856  if (solutionHint_ != null) hash ^= SolutionHint.GetHashCode();
5857  hash ^= assumptions_.GetHashCode();
5858  if (_unknownFields != null) {
5859  hash ^= _unknownFields.GetHashCode();
5860  }
5861  return hash;
5862  }
5863 
5864  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5865  public override string ToString() {
5866  return pb::JsonFormatter.ToDiagnosticString(this);
5867  }
5868 
5869  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5870  public void WriteTo(pb::CodedOutputStream output) {
5871  if (Name.Length != 0) {
5872  output.WriteRawTag(10);
5873  output.WriteString(Name);
5874  }
5875  variables_.WriteTo(output, _repeated_variables_codec);
5876  constraints_.WriteTo(output, _repeated_constraints_codec);
5877  if (objective_ != null) {
5878  output.WriteRawTag(34);
5879  output.WriteMessage(Objective);
5880  }
5881  searchStrategy_.WriteTo(output, _repeated_searchStrategy_codec);
5882  if (solutionHint_ != null) {
5883  output.WriteRawTag(50);
5884  output.WriteMessage(SolutionHint);
5885  }
5886  assumptions_.WriteTo(output, _repeated_assumptions_codec);
5887  if (_unknownFields != null) {
5888  _unknownFields.WriteTo(output);
5889  }
5890  }
5891 
5892  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5893  public int CalculateSize() {
5894  int size = 0;
5895  if (Name.Length != 0) {
5896  size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
5897  }
5898  size += variables_.CalculateSize(_repeated_variables_codec);
5899  size += constraints_.CalculateSize(_repeated_constraints_codec);
5900  if (objective_ != null) {
5901  size += 1 + pb::CodedOutputStream.ComputeMessageSize(Objective);
5902  }
5903  size += searchStrategy_.CalculateSize(_repeated_searchStrategy_codec);
5904  if (solutionHint_ != null) {
5905  size += 1 + pb::CodedOutputStream.ComputeMessageSize(SolutionHint);
5906  }
5907  size += assumptions_.CalculateSize(_repeated_assumptions_codec);
5908  if (_unknownFields != null) {
5909  size += _unknownFields.CalculateSize();
5910  }
5911  return size;
5912  }
5913 
5914  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5915  public void MergeFrom(CpModelProto other) {
5916  if (other == null) {
5917  return;
5918  }
5919  if (other.Name.Length != 0) {
5920  Name = other.Name;
5921  }
5922  variables_.Add(other.variables_);
5923  constraints_.Add(other.constraints_);
5924  if (other.objective_ != null) {
5925  if (objective_ == null) {
5926  Objective = new global::Google.OrTools.Sat.CpObjectiveProto();
5927  }
5928  Objective.MergeFrom(other.Objective);
5929  }
5930  searchStrategy_.Add(other.searchStrategy_);
5931  if (other.solutionHint_ != null) {
5932  if (solutionHint_ == null) {
5933  SolutionHint = new global::Google.OrTools.Sat.PartialVariableAssignment();
5934  }
5935  SolutionHint.MergeFrom(other.SolutionHint);
5936  }
5937  assumptions_.Add(other.assumptions_);
5938  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5939  }
5940 
5941  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5942  public void MergeFrom(pb::CodedInputStream input) {
5943  uint tag;
5944  while ((tag = input.ReadTag()) != 0) {
5945  switch(tag) {
5946  default:
5947  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5948  break;
5949  case 10: {
5950  Name = input.ReadString();
5951  break;
5952  }
5953  case 18: {
5954  variables_.AddEntriesFrom(input, _repeated_variables_codec);
5955  break;
5956  }
5957  case 26: {
5958  constraints_.AddEntriesFrom(input, _repeated_constraints_codec);
5959  break;
5960  }
5961  case 34: {
5962  if (objective_ == null) {
5963  Objective = new global::Google.OrTools.Sat.CpObjectiveProto();
5964  }
5965  input.ReadMessage(Objective);
5966  break;
5967  }
5968  case 42: {
5969  searchStrategy_.AddEntriesFrom(input, _repeated_searchStrategy_codec);
5970  break;
5971  }
5972  case 50: {
5973  if (solutionHint_ == null) {
5974  SolutionHint = new global::Google.OrTools.Sat.PartialVariableAssignment();
5975  }
5976  input.ReadMessage(SolutionHint);
5977  break;
5978  }
5979  case 58:
5980  case 56: {
5981  assumptions_.AddEntriesFrom(input, _repeated_assumptions_codec);
5982  break;
5983  }
5984  }
5985  }
5986  }
5987 
5988  }
5989 
5997  public sealed partial class CpSolverResponse : pb::IMessage<CpSolverResponse> {
5998  private static readonly pb::MessageParser<CpSolverResponse> _parser = new pb::MessageParser<CpSolverResponse>(() => new CpSolverResponse());
5999  private pb::UnknownFieldSet _unknownFields;
6000  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6001  public static pb::MessageParser<CpSolverResponse> Parser { get { return _parser; } }
6002 
6003  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6004  public static pbr::MessageDescriptor Descriptor {
6005  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[24]; }
6006  }
6007 
6008  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6009  pbr::MessageDescriptor pb::IMessage.Descriptor {
6010  get { return Descriptor; }
6011  }
6012 
6013  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6014  public CpSolverResponse() {
6015  OnConstruction();
6016  }
6017 
6018  partial void OnConstruction();
6019 
6020  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6021  public CpSolverResponse(CpSolverResponse other) : this() {
6022  status_ = other.status_;
6023  solution_ = other.solution_.Clone();
6024  objectiveValue_ = other.objectiveValue_;
6025  bestObjectiveBound_ = other.bestObjectiveBound_;
6026  solutionLowerBounds_ = other.solutionLowerBounds_.Clone();
6027  solutionUpperBounds_ = other.solutionUpperBounds_.Clone();
6028  tightenedVariables_ = other.tightenedVariables_.Clone();
6029  sufficientAssumptionsForInfeasibility_ = other.sufficientAssumptionsForInfeasibility_.Clone();
6030  allSolutionsWereFound_ = other.allSolutionsWereFound_;
6031  numBooleans_ = other.numBooleans_;
6032  numConflicts_ = other.numConflicts_;
6033  numBranches_ = other.numBranches_;
6034  numBinaryPropagations_ = other.numBinaryPropagations_;
6035  numIntegerPropagations_ = other.numIntegerPropagations_;
6036  wallTime_ = other.wallTime_;
6037  userTime_ = other.userTime_;
6038  deterministicTime_ = other.deterministicTime_;
6039  primalIntegral_ = other.primalIntegral_;
6040  solutionInfo_ = other.solutionInfo_;
6041  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
6042  }
6043 
6044  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6046  return new CpSolverResponse(this);
6047  }
6048 
6050  public const int StatusFieldNumber = 1;
6051  private global::Google.OrTools.Sat.CpSolverStatus status_ = global::Google.OrTools.Sat.CpSolverStatus.Unknown;
6055  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6056  public global::Google.OrTools.Sat.CpSolverStatus Status {
6057  get { return status_; }
6058  set {
6059  status_ = value;
6060  }
6061  }
6062 
6064  public const int SolutionFieldNumber = 2;
6065  private static readonly pb::FieldCodec<long> _repeated_solution_codec
6066  = pb::FieldCodec.ForInt64(18);
6067  private readonly pbc::RepeatedField<long> solution_ = new pbc::RepeatedField<long>();
6074  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6075  public pbc::RepeatedField<long> Solution {
6076  get { return solution_; }
6077  }
6078 
6080  public const int ObjectiveValueFieldNumber = 3;
6081  private double objectiveValue_;
6088  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6089  public double ObjectiveValue {
6090  get { return objectiveValue_; }
6091  set {
6092  objectiveValue_ = value;
6093  }
6094  }
6095 
6097  public const int BestObjectiveBoundFieldNumber = 4;
6098  private double bestObjectiveBound_;
6104  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6105  public double BestObjectiveBound {
6106  get { return bestObjectiveBound_; }
6107  set {
6108  bestObjectiveBound_ = value;
6109  }
6110  }
6111 
6113  public const int SolutionLowerBoundsFieldNumber = 18;
6114  private static readonly pb::FieldCodec<long> _repeated_solutionLowerBounds_codec
6115  = pb::FieldCodec.ForInt64(146);
6116  private readonly pbc::RepeatedField<long> solutionLowerBounds_ = new pbc::RepeatedField<long>();
6126  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6127  public pbc::RepeatedField<long> SolutionLowerBounds {
6128  get { return solutionLowerBounds_; }
6129  }
6130 
6132  public const int SolutionUpperBoundsFieldNumber = 19;
6133  private static readonly pb::FieldCodec<long> _repeated_solutionUpperBounds_codec
6134  = pb::FieldCodec.ForInt64(154);
6135  private readonly pbc::RepeatedField<long> solutionUpperBounds_ = new pbc::RepeatedField<long>();
6136  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6137  public pbc::RepeatedField<long> SolutionUpperBounds {
6138  get { return solutionUpperBounds_; }
6139  }
6140 
6142  public const int TightenedVariablesFieldNumber = 21;
6143  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.IntegerVariableProto> _repeated_tightenedVariables_codec
6144  = pb::FieldCodec.ForMessage(170, global::Google.OrTools.Sat.IntegerVariableProto.Parser);
6145  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto> tightenedVariables_ = new pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto>();
6160  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6161  public pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto> TightenedVariables {
6162  get { return tightenedVariables_; }
6163  }
6164 
6166  public const int SufficientAssumptionsForInfeasibilityFieldNumber = 23;
6167  private static readonly pb::FieldCodec<int> _repeated_sufficientAssumptionsForInfeasibility_codec
6168  = pb::FieldCodec.ForInt32(186);
6169  private readonly pbc::RepeatedField<int> sufficientAssumptionsForInfeasibility_ = new pbc::RepeatedField<int>();
6185  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6186  public pbc::RepeatedField<int> SufficientAssumptionsForInfeasibility {
6187  get { return sufficientAssumptionsForInfeasibility_; }
6188  }
6189 
6191  public const int AllSolutionsWereFoundFieldNumber = 5;
6192  private bool allSolutionsWereFound_;
6200  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6201  public bool AllSolutionsWereFound {
6202  get { return allSolutionsWereFound_; }
6203  set {
6204  allSolutionsWereFound_ = value;
6205  }
6206  }
6207 
6209  public const int NumBooleansFieldNumber = 10;
6210  private long numBooleans_;
6214  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6215  public long NumBooleans {
6216  get { return numBooleans_; }
6217  set {
6218  numBooleans_ = value;
6219  }
6220  }
6221 
6223  public const int NumConflictsFieldNumber = 11;
6224  private long numConflicts_;
6225  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6226  public long NumConflicts {
6227  get { return numConflicts_; }
6228  set {
6229  numConflicts_ = value;
6230  }
6231  }
6232 
6234  public const int NumBranchesFieldNumber = 12;
6235  private long numBranches_;
6236  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6237  public long NumBranches {
6238  get { return numBranches_; }
6239  set {
6240  numBranches_ = value;
6241  }
6242  }
6243 
6245  public const int NumBinaryPropagationsFieldNumber = 13;
6246  private long numBinaryPropagations_;
6247  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6248  public long NumBinaryPropagations {
6249  get { return numBinaryPropagations_; }
6250  set {
6251  numBinaryPropagations_ = value;
6252  }
6253  }
6254 
6256  public const int NumIntegerPropagationsFieldNumber = 14;
6257  private long numIntegerPropagations_;
6258  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6259  public long NumIntegerPropagations {
6260  get { return numIntegerPropagations_; }
6261  set {
6262  numIntegerPropagations_ = value;
6263  }
6264  }
6265 
6267  public const int WallTimeFieldNumber = 15;
6268  private double wallTime_;
6269  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6270  public double WallTime {
6271  get { return wallTime_; }
6272  set {
6273  wallTime_ = value;
6274  }
6275  }
6276 
6278  public const int UserTimeFieldNumber = 16;
6279  private double userTime_;
6280  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6281  public double UserTime {
6282  get { return userTime_; }
6283  set {
6284  userTime_ = value;
6285  }
6286  }
6287 
6289  public const int DeterministicTimeFieldNumber = 17;
6290  private double deterministicTime_;
6291  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6292  public double DeterministicTime {
6293  get { return deterministicTime_; }
6294  set {
6295  deterministicTime_ = value;
6296  }
6297  }
6298 
6300  public const int PrimalIntegralFieldNumber = 22;
6301  private double primalIntegral_;
6302  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6303  public double PrimalIntegral {
6304  get { return primalIntegral_; }
6305  set {
6306  primalIntegral_ = value;
6307  }
6308  }
6309 
6311  public const int SolutionInfoFieldNumber = 20;
6312  private string solutionInfo_ = "";
6316  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6317  public string SolutionInfo {
6318  get { return solutionInfo_; }
6319  set {
6320  solutionInfo_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
6321  }
6322  }
6323 
6324  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6325  public override bool Equals(object other) {
6326  return Equals(other as CpSolverResponse);
6327  }
6328 
6329  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6330  public bool Equals(CpSolverResponse other) {
6331  if (ReferenceEquals(other, null)) {
6332  return false;
6333  }
6334  if (ReferenceEquals(other, this)) {
6335  return true;
6336  }
6337  if (Status != other.Status) return false;
6338  if(!solution_.Equals(other.solution_)) return false;
6339  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ObjectiveValue, other.ObjectiveValue)) return false;
6340  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(BestObjectiveBound, other.BestObjectiveBound)) return false;
6341  if(!solutionLowerBounds_.Equals(other.solutionLowerBounds_)) return false;
6342  if(!solutionUpperBounds_.Equals(other.solutionUpperBounds_)) return false;
6343  if(!tightenedVariables_.Equals(other.tightenedVariables_)) return false;
6344  if(!sufficientAssumptionsForInfeasibility_.Equals(other.sufficientAssumptionsForInfeasibility_)) return false;
6345  if (AllSolutionsWereFound != other.AllSolutionsWereFound) return false;
6346  if (NumBooleans != other.NumBooleans) return false;
6347  if (NumConflicts != other.NumConflicts) return false;
6348  if (NumBranches != other.NumBranches) return false;
6349  if (NumBinaryPropagations != other.NumBinaryPropagations) return false;
6350  if (NumIntegerPropagations != other.NumIntegerPropagations) return false;
6351  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(WallTime, other.WallTime)) return false;
6352  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(UserTime, other.UserTime)) return false;
6353  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(DeterministicTime, other.DeterministicTime)) return false;
6354  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(PrimalIntegral, other.PrimalIntegral)) return false;
6355  if (SolutionInfo != other.SolutionInfo) return false;
6356  return Equals(_unknownFields, other._unknownFields);
6357  }
6358 
6359  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6360  public override int GetHashCode() {
6361  int hash = 1;
6362  if (Status != global::Google.OrTools.Sat.CpSolverStatus.Unknown) hash ^= Status.GetHashCode();
6363  hash ^= solution_.GetHashCode();
6364  if (ObjectiveValue != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ObjectiveValue);
6365  if (BestObjectiveBound != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(BestObjectiveBound);
6366  hash ^= solutionLowerBounds_.GetHashCode();
6367  hash ^= solutionUpperBounds_.GetHashCode();
6368  hash ^= tightenedVariables_.GetHashCode();
6369  hash ^= sufficientAssumptionsForInfeasibility_.GetHashCode();
6370  if (AllSolutionsWereFound != false) hash ^= AllSolutionsWereFound.GetHashCode();
6371  if (NumBooleans != 0L) hash ^= NumBooleans.GetHashCode();
6372  if (NumConflicts != 0L) hash ^= NumConflicts.GetHashCode();
6373  if (NumBranches != 0L) hash ^= NumBranches.GetHashCode();
6374  if (NumBinaryPropagations != 0L) hash ^= NumBinaryPropagations.GetHashCode();
6375  if (NumIntegerPropagations != 0L) hash ^= NumIntegerPropagations.GetHashCode();
6376  if (WallTime != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(WallTime);
6377  if (UserTime != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(UserTime);
6378  if (DeterministicTime != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(DeterministicTime);
6379  if (PrimalIntegral != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(PrimalIntegral);
6380  if (SolutionInfo.Length != 0) hash ^= SolutionInfo.GetHashCode();
6381  if (_unknownFields != null) {
6382  hash ^= _unknownFields.GetHashCode();
6383  }
6384  return hash;
6385  }
6386 
6387  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6388  public override string ToString() {
6389  return pb::JsonFormatter.ToDiagnosticString(this);
6390  }
6391 
6392  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6393  public void WriteTo(pb::CodedOutputStream output) {
6394  if (Status != global::Google.OrTools.Sat.CpSolverStatus.Unknown) {
6395  output.WriteRawTag(8);
6396  output.WriteEnum((int) Status);
6397  }
6398  solution_.WriteTo(output, _repeated_solution_codec);
6399  if (ObjectiveValue != 0D) {
6400  output.WriteRawTag(25);
6401  output.WriteDouble(ObjectiveValue);
6402  }
6403  if (BestObjectiveBound != 0D) {
6404  output.WriteRawTag(33);
6405  output.WriteDouble(BestObjectiveBound);
6406  }
6407  if (AllSolutionsWereFound != false) {
6408  output.WriteRawTag(40);
6409  output.WriteBool(AllSolutionsWereFound);
6410  }
6411  if (NumBooleans != 0L) {
6412  output.WriteRawTag(80);
6413  output.WriteInt64(NumBooleans);
6414  }
6415  if (NumConflicts != 0L) {
6416  output.WriteRawTag(88);
6417  output.WriteInt64(NumConflicts);
6418  }
6419  if (NumBranches != 0L) {
6420  output.WriteRawTag(96);
6421  output.WriteInt64(NumBranches);
6422  }
6423  if (NumBinaryPropagations != 0L) {
6424  output.WriteRawTag(104);
6425  output.WriteInt64(NumBinaryPropagations);
6426  }
6427  if (NumIntegerPropagations != 0L) {
6428  output.WriteRawTag(112);
6429  output.WriteInt64(NumIntegerPropagations);
6430  }
6431  if (WallTime != 0D) {
6432  output.WriteRawTag(121);
6433  output.WriteDouble(WallTime);
6434  }
6435  if (UserTime != 0D) {
6436  output.WriteRawTag(129, 1);
6437  output.WriteDouble(UserTime);
6438  }
6439  if (DeterministicTime != 0D) {
6440  output.WriteRawTag(137, 1);
6441  output.WriteDouble(DeterministicTime);
6442  }
6443  solutionLowerBounds_.WriteTo(output, _repeated_solutionLowerBounds_codec);
6444  solutionUpperBounds_.WriteTo(output, _repeated_solutionUpperBounds_codec);
6445  if (SolutionInfo.Length != 0) {
6446  output.WriteRawTag(162, 1);
6447  output.WriteString(SolutionInfo);
6448  }
6449  tightenedVariables_.WriteTo(output, _repeated_tightenedVariables_codec);
6450  if (PrimalIntegral != 0D) {
6451  output.WriteRawTag(177, 1);
6452  output.WriteDouble(PrimalIntegral);
6453  }
6454  sufficientAssumptionsForInfeasibility_.WriteTo(output, _repeated_sufficientAssumptionsForInfeasibility_codec);
6455  if (_unknownFields != null) {
6456  _unknownFields.WriteTo(output);
6457  }
6458  }
6459 
6460  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6461  public int CalculateSize() {
6462  int size = 0;
6463  if (Status != global::Google.OrTools.Sat.CpSolverStatus.Unknown) {
6464  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
6465  }
6466  size += solution_.CalculateSize(_repeated_solution_codec);
6467  if (ObjectiveValue != 0D) {
6468  size += 1 + 8;
6469  }
6470  if (BestObjectiveBound != 0D) {
6471  size += 1 + 8;
6472  }
6473  size += solutionLowerBounds_.CalculateSize(_repeated_solutionLowerBounds_codec);
6474  size += solutionUpperBounds_.CalculateSize(_repeated_solutionUpperBounds_codec);
6475  size += tightenedVariables_.CalculateSize(_repeated_tightenedVariables_codec);
6476  size += sufficientAssumptionsForInfeasibility_.CalculateSize(_repeated_sufficientAssumptionsForInfeasibility_codec);
6477  if (AllSolutionsWereFound != false) {
6478  size += 1 + 1;
6479  }
6480  if (NumBooleans != 0L) {
6481  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumBooleans);
6482  }
6483  if (NumConflicts != 0L) {
6484  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumConflicts);
6485  }
6486  if (NumBranches != 0L) {
6487  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumBranches);
6488  }
6489  if (NumBinaryPropagations != 0L) {
6490  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumBinaryPropagations);
6491  }
6492  if (NumIntegerPropagations != 0L) {
6493  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumIntegerPropagations);
6494  }
6495  if (WallTime != 0D) {
6496  size += 1 + 8;
6497  }
6498  if (UserTime != 0D) {
6499  size += 2 + 8;
6500  }
6501  if (DeterministicTime != 0D) {
6502  size += 2 + 8;
6503  }
6504  if (PrimalIntegral != 0D) {
6505  size += 2 + 8;
6506  }
6507  if (SolutionInfo.Length != 0) {
6508  size += 2 + pb::CodedOutputStream.ComputeStringSize(SolutionInfo);
6509  }
6510  if (_unknownFields != null) {
6511  size += _unknownFields.CalculateSize();
6512  }
6513  return size;
6514  }
6515 
6516  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6517  public void MergeFrom(CpSolverResponse other) {
6518  if (other == null) {
6519  return;
6520  }
6521  if (other.Status != global::Google.OrTools.Sat.CpSolverStatus.Unknown) {
6522  Status = other.Status;
6523  }
6524  solution_.Add(other.solution_);
6525  if (other.ObjectiveValue != 0D) {
6526  ObjectiveValue = other.ObjectiveValue;
6527  }
6528  if (other.BestObjectiveBound != 0D) {
6529  BestObjectiveBound = other.BestObjectiveBound;
6530  }
6531  solutionLowerBounds_.Add(other.solutionLowerBounds_);
6532  solutionUpperBounds_.Add(other.solutionUpperBounds_);
6533  tightenedVariables_.Add(other.tightenedVariables_);
6534  sufficientAssumptionsForInfeasibility_.Add(other.sufficientAssumptionsForInfeasibility_);
6535  if (other.AllSolutionsWereFound != false) {
6536  AllSolutionsWereFound = other.AllSolutionsWereFound;
6537  }
6538  if (other.NumBooleans != 0L) {
6539  NumBooleans = other.NumBooleans;
6540  }
6541  if (other.NumConflicts != 0L) {
6542  NumConflicts = other.NumConflicts;
6543  }
6544  if (other.NumBranches != 0L) {
6545  NumBranches = other.NumBranches;
6546  }
6547  if (other.NumBinaryPropagations != 0L) {
6548  NumBinaryPropagations = other.NumBinaryPropagations;
6549  }
6550  if (other.NumIntegerPropagations != 0L) {
6551  NumIntegerPropagations = other.NumIntegerPropagations;
6552  }
6553  if (other.WallTime != 0D) {
6554  WallTime = other.WallTime;
6555  }
6556  if (other.UserTime != 0D) {
6557  UserTime = other.UserTime;
6558  }
6559  if (other.DeterministicTime != 0D) {
6560  DeterministicTime = other.DeterministicTime;
6561  }
6562  if (other.PrimalIntegral != 0D) {
6563  PrimalIntegral = other.PrimalIntegral;
6564  }
6565  if (other.SolutionInfo.Length != 0) {
6566  SolutionInfo = other.SolutionInfo;
6567  }
6568  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
6569  }
6570 
6571  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6572  public void MergeFrom(pb::CodedInputStream input) {
6573  uint tag;
6574  while ((tag = input.ReadTag()) != 0) {
6575  switch(tag) {
6576  default:
6577  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6578  break;
6579  case 8: {
6580  Status = (global::Google.OrTools.Sat.CpSolverStatus) input.ReadEnum();
6581  break;
6582  }
6583  case 18:
6584  case 16: {
6585  solution_.AddEntriesFrom(input, _repeated_solution_codec);
6586  break;
6587  }
6588  case 25: {
6589  ObjectiveValue = input.ReadDouble();
6590  break;
6591  }
6592  case 33: {
6593  BestObjectiveBound = input.ReadDouble();
6594  break;
6595  }
6596  case 40: {
6597  AllSolutionsWereFound = input.ReadBool();
6598  break;
6599  }
6600  case 80: {
6601  NumBooleans = input.ReadInt64();
6602  break;
6603  }
6604  case 88: {
6605  NumConflicts = input.ReadInt64();
6606  break;
6607  }
6608  case 96: {
6609  NumBranches = input.ReadInt64();
6610  break;
6611  }
6612  case 104: {
6613  NumBinaryPropagations = input.ReadInt64();
6614  break;
6615  }
6616  case 112: {
6617  NumIntegerPropagations = input.ReadInt64();
6618  break;
6619  }
6620  case 121: {
6621  WallTime = input.ReadDouble();
6622  break;
6623  }
6624  case 129: {
6625  UserTime = input.ReadDouble();
6626  break;
6627  }
6628  case 137: {
6629  DeterministicTime = input.ReadDouble();
6630  break;
6631  }
6632  case 146:
6633  case 144: {
6634  solutionLowerBounds_.AddEntriesFrom(input, _repeated_solutionLowerBounds_codec);
6635  break;
6636  }
6637  case 154:
6638  case 152: {
6639  solutionUpperBounds_.AddEntriesFrom(input, _repeated_solutionUpperBounds_codec);
6640  break;
6641  }
6642  case 162: {
6643  SolutionInfo = input.ReadString();
6644  break;
6645  }
6646  case 170: {
6647  tightenedVariables_.AddEntriesFrom(input, _repeated_tightenedVariables_codec);
6648  break;
6649  }
6650  case 177: {
6651  PrimalIntegral = input.ReadDouble();
6652  break;
6653  }
6654  case 186:
6655  case 184: {
6656  sufficientAssumptionsForInfeasibility_.AddEntriesFrom(input, _repeated_sufficientAssumptionsForInfeasibility_codec);
6657  break;
6658  }
6659  }
6660  }
6661  }
6662 
6663  }
6664 
6665  #endregion
6666 
6667 }
6668 
6669 #endregion Designer generated code
NoOverlap2DConstraintProto(NoOverlap2DConstraintProto other)
Definition: CpModel.pb.cs:1847
Container for nested types declared in the DecisionStrategyProto message type.
Definition: CpModel.pb.cs:5287
Argument of the constraints of the form target_var = OP(vars).
Definition: CpModel.pb.cs:544
void MergeFrom(NoOverlap2DConstraintProto other)
Definition: CpModel.pb.cs:1957
int CalculateSize()
Definition: CpModel.pb.cs:2546
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:5428
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:956
The linear sum vars[i] * coeffs[i] must fall in the given domain.
Definition: CpModel.pb.cs:1153
override int GetHashCode()
Definition: CpModel.pb.cs:4181
bool Equals(RoutesConstraintProto other)
Definition: CpModel.pb.cs:2714
bool Equals(LinearArgumentProto other)
Definition: CpModel.pb.cs:927
void MergeFrom(LinearArgumentProto other)
Definition: CpModel.pb.cs:981
global::Google.OrTools.Sat.PartialVariableAssignment SolutionHint
Solution hint.
Definition: CpModel.pb.cs:5793
long PositiveCoeff
Definition: CpModel.pb.cs:5384
global::Google.OrTools.Sat.NoOverlap2DConstraintProto?? NoOverlap2D
The no_overlap_2d constraint prevents a set of boxes from overlapping.
Definition: CpModel.pb.cs:4070
ElementConstraintProto Clone()
Definition: CpModel.pb.cs:1356
override string ToString()
Definition: CpModel.pb.cs:5602
override int GetHashCode()
Definition: CpModel.pb.cs:5411
InverseConstraintProto(InverseConstraintProto other)
Definition: CpModel.pb.cs:3188
global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy DomainReductionStrategy
Definition: CpModel.pb.cs:5150
bool Equals(IntervalConstraintProto other)
Definition: CpModel.pb.cs:1581
override int GetHashCode()
Definition: CpModel.pb.cs:781
ConstraintOneofCase ConstraintCase
Definition: CpModel.pb.cs:4126
override string ToString()
Definition: CpModel.pb.cs:4218
void MergeFrom(AutomatonConstraintProto other)
Definition: CpModel.pb.cs:3501
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1429
global::Google.OrTools.Sat.LinearArgumentProto?? LinMin
The lin_min constraint forces the target to equal the minimum of all linear expressions.
Definition: CpModel.pb.cs:3861
int Var
Definition: CpModel.pb.cs:5362
CpSolverResponse Clone()
Definition: CpModel.pb.cs:6045
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:3517
override bool Equals(object other)
Definition: CpModel.pb.cs:601
bool Equals(PartialVariableAssignment other)
Definition: CpModel.pb.cs:5578
The response returned by a solver trying to solve a CpModelProto.
Definition: CpModel.pb.cs:5997
Definition: Domain.cs:17
override string ToString()
Definition: CpModel.pb.cs:2922
IntegerVariableProto(IntegerVariableProto other)
Definition: CpModel.pb.cs:268
NoOverlap2DConstraintProto()
Definition: CpModel.pb.cs:1840
override string ToString()
Definition: CpModel.pb.cs:5865
override int GetHashCode()
Definition: CpModel.pb.cs:2911
void MergeFrom(ReservoirConstraintProto other)
Definition: CpModel.pb.cs:2369
int CalculateSize()
Definition: CpModel.pb.cs:3263
int End
Definition: CpModel.pb.cs:1557
override bool Equals(object other)
Definition: CpModel.pb.cs:3057
int CalculateSize()
Definition: CpModel.pb.cs:3484
override int GetHashCode()
Definition: CpModel.pb.cs:2093
global::Google.OrTools.Sat.LinearArgumentProto?? LinMax
The lin_max constraint forces the target to equal the maximum of all linear expressions.
Definition: CpModel.pb.cs:3830
bool Equals(IntegerArgumentProto other)
Definition: CpModel.pb.cs:606
override string ToString()
Definition: CpModel.pb.cs:352
string Name
For debug/logging only.
Definition: CpModel.pb.cs:3682
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:6393
ConstraintOneofCase
Enum of possible cases for the "constraint" oneof.
Definition: CpModel.pb.cs:4096
void MergeFrom(IntegerVariableProto other)
Definition: CpModel.pb.cs:382
global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy VariableSelectionStrategy
Definition: CpModel.pb.cs:5139
override string ToString()
Definition: CpModel.pb.cs:1607
long MinLevel
Definition: CpModel.pb.cs:2235
void MergeFrom(IntervalConstraintProto other)
Definition: CpModel.pb.cs:1649
double PrimalIntegral
Definition: CpModel.pb.cs:6303
global::Google.OrTools.Sat.LinearExpressionProto Target
Definition: CpModel.pb.cs:904
All the intervals (index of IntervalConstraintProto) must be disjoint.
Definition: CpModel.pb.cs:1698
global::Google.OrTools.Sat.AllDifferentConstraintProto?? AllDiff
The all_diff constraint forces all variables to take different values.
Definition: CpModel.pb.cs:3905
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2749
bool BoxesWithNullAreaCanOverlap
Definition: CpModel.pb.cs:1886
int CalculateSize()
Definition: CpModel.pb.cs:968
global::Google.OrTools.Sat.LinearConstraintProto?? Linear
The linear constraint enforces a linear inequality among the variables, such as 0 <= x + 2y <= 10.
Definition: CpModel.pb.cs:3891
AffineTransformation()
Definition: CpModel.pb.cs:5339
override bool Equals(object other)
Definition: CpModel.pb.cs:1743
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:3133
override int GetHashCode()
Definition: CpModel.pb.cs:1085
AutomatonConstraintProto(AutomatonConstraintProto other)
Definition: CpModel.pb.cs:3335
bool Negated
If true, the meaning is "negated", that is we forbid any of the given tuple from a feasible assignmen...
Definition: CpModel.pb.cs:3049
PartialVariableAssignment()
Definition: CpModel.pb.cs:5534
long NumConflicts
Definition: CpModel.pb.cs:6226
string Name
For debug/logging only.
Definition: CpModel.pb.cs:5710
NoOverlapConstraintProto(NoOverlapConstraintProto other)
Definition: CpModel.pb.cs:1722
IntervalConstraintProto Clone()
Definition: CpModel.pb.cs:1538
Holder for reflection information generated from ortools/sat/cp_model.proto
Definition: CpModel.pb.cs:15
NoOverlap2DConstraintProto Clone()
Definition: CpModel.pb.cs:1855
Optimization objective.
Definition: CpModel.pb.cs:4840
override bool Equals(object other)
Definition: CpModel.pb.cs:3426
override string ToString()
Definition: CpModel.pb.cs:951
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2927
int Size
Definition: CpModel.pb.cs:1568
int CalculateSize()
Definition: CpModel.pb.cs:504
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:5482
global::Google.OrTools.Sat.BoolArgumentProto?? BoolXor
The bool_xor constraint forces an odd number of the literals to be true.
Definition: CpModel.pb.cs:3771
CumulativeConstraintProto(CumulativeConstraintProto other)
Definition: CpModel.pb.cs:2027
IntegerArgumentProto Clone()
Definition: CpModel.pb.cs:575
global::Google.OrTools.Sat.RoutesConstraintProto?? Routes
The routes constraint implements the vehicle routing problem.
Definition: CpModel.pb.cs:3949
An integer variable.
Definition: CpModel.pb.cs:244
global::Google.OrTools.Sat.InverseConstraintProto?? Inverse
The inverse constraint forces two arrays to be inverses of each other: the values of one are the indi...
Definition: CpModel.pb.cs:4009
override int GetHashCode()
Definition: CpModel.pb.cs:6360
void MergeFrom(TableConstraintProto other)
Definition: CpModel.pb.cs:3120
Maintain a reservoir level within bounds.
Definition: CpModel.pb.cs:2193
bool Equals(IntegerVariableProto other)
Definition: CpModel.pb.cs:328
void MergeFrom(CpObjectiveProto other)
Definition: CpModel.pb.cs:5026
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:672
LinearArgumentProto Clone()
Definition: CpModel.pb.cs:896
VariableSelectionStrategy
The order in which the variables above should be considered.
Definition: CpModel.pb.cs:5294
override string ToString()
Definition: CpModel.pb.cs:630
int CalculateSize()
Definition: CpModel.pb.cs:1943
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1259
override string ToString()
Definition: CpModel.pb.cs:2531
override string ToString()
Definition: CpModel.pb.cs:1254
LinearConstraintProto Clone()
Definition: CpModel.pb.cs:1185
long Capacity
Definition: CpModel.pb.cs:2701
override bool Equals(object other)
Definition: CpModel.pb.cs:5392
override bool Equals(object other)
Definition: CpModel.pb.cs:2893
The sum of the demands of the intervals at each interval point cannot exceed a capacity.
Definition: CpModel.pb.cs:2003
ConstraintProto Clone()
Definition: CpModel.pb.cs:3671
void MergeFrom(NoOverlapConstraintProto other)
Definition: CpModel.pb.cs:1793
LinearExpressionProto(LinearExpressionProto other)
Definition: CpModel.pb.cs:718
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2536
CpSolverResponse(CpSolverResponse other)
Definition: CpModel.pb.cs:6021
CumulativeConstraintProto Clone()
Definition: CpModel.pb.cs:2035
int CalculateSize()
Definition: CpModel.pb.cs:2936
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:3093
double ScalingFactor
Definition: CpModel.pb.cs:4927
LinearConstraintProto(LinearConstraintProto other)
Definition: CpModel.pb.cs:1177
AllDifferentConstraintProto Clone()
Definition: CpModel.pb.cs:1053
The "VRP" (Vehicle Routing Problem) constraint.
Definition: CpModel.pb.cs:2614
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2386
override int GetHashCode()
Definition: CpModel.pb.cs:2730
override int GetHashCode()
Definition: CpModel.pb.cs:3076
double BestObjectiveBound
Only make sense for an optimization problem.
Definition: CpModel.pb.cs:6105
global::Google.OrTools.Sat.CpSolverStatus Status
The status of the solve.
Definition: CpModel.pb.cs:6056
void ClearConstraint()
Definition: CpModel.pb.cs:4131
override int GetHashCode()
Definition: CpModel.pb.cs:1760
CpSolverStatus
The status returned by a solver trying to solve a CpModelProto.
Definition: CpModel.pb.cs:186
override int GetHashCode()
Definition: CpModel.pb.cs:5188
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1666
void MergeFrom(LinearConstraintProto other)
Definition: CpModel.pb.cs:1281
AutomatonConstraintProto Clone()
Definition: CpModel.pb.cs:3346
LinearExpressionProto Clone()
Definition: CpModel.pb.cs:726
ReservoirConstraintProto(ReservoirConstraintProto other)
Definition: CpModel.pb.cs:2217
double UserTime
Definition: CpModel.pb.cs:6281
override bool Equals(object other)
Definition: CpModel.pb.cs:3220
int Target
Definition: CpModel.pb.cs:583
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:838
override int GetHashCode()
Definition: CpModel.pb.cs:3448
override bool Equals(object other)
Definition: CpModel.pb.cs:1393
int CalculateSize()
Definition: CpModel.pb.cs:1269
override bool Equals(object other)
Definition: CpModel.pb.cs:2293
void MergeFrom(CircuitCoveringConstraintProto other)
Definition: CpModel.pb.cs:2947
BoolArgumentProto Clone()
Definition: CpModel.pb.cs:449
override int GetHashCode()
Definition: CpModel.pb.cs:619
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:6572
bool Equals(NoOverlap2DConstraintProto other)
Definition: CpModel.pb.cs:1899
int CalculateSize()
Definition: CpModel.pb.cs:5893
int CalculateSize()
Definition: CpModel.pb.cs:3106
long MaxLevel
Definition: CpModel.pb.cs:2246
override string ToString()
Definition: CpModel.pb.cs:3249
global::Google.Protobuf pb
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:5637
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:357
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1127
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2569
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:5870
This "special" constraint not only enforces (start + size == end) but can also be referred by other c...
Definition: CpModel.pb.cs:1506
The constraint target = vars[index].
Definition: CpModel.pb.cs:1324
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:798
The boxes defined by [start_x, end_x) * [start_y, end_y) cannot overlap.
Definition: CpModel.pb.cs:1823
override bool Equals(object other)
Definition: CpModel.pb.cs:464
bool Equals(LinearConstraintProto other)
Definition: CpModel.pb.cs:1228
global::Google.OrTools.Sat.BoolArgumentProto?? BoolAnd
The bool_and constraint forces all of the literals to be true.
Definition: CpModel.pb.cs:3739
override int GetHashCode()
Definition: CpModel.pb.cs:4971
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:3468
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2795
override bool Equals(object other)
Definition: CpModel.pb.cs:762
override int GetHashCode()
Definition: CpModel.pb.cs:1242
AffineTransformation Clone()
Definition: CpModel.pb.cs:5354
CumulativeConstraintProto()
Definition: CpModel.pb.cs:2020
PartialVariableAssignment(PartialVariableAssignment other)
Definition: CpModel.pb.cs:5541
TableConstraintProto(TableConstraintProto other)
Definition: CpModel.pb.cs:3009
static pbr::FileDescriptor Descriptor
File descriptor for ortools/sat/cp_model.proto
Definition: CpModel.pb.cs:19
A constraint programming problem.
Definition: CpModel.pb.cs:5663
Another routing constraint.
Definition: CpModel.pb.cs:2837
TableConstraintProto()
Definition: CpModel.pb.cs:3002
CpSolverResponse()
Definition: CpModel.pb.cs:6014
ConstraintProto(ConstraintProto other)
Definition: CpModel.pb.cs:3586
bool Equals(InverseConstraintProto other)
Definition: CpModel.pb.cs:3225
AllDifferentConstraintProto()
Definition: CpModel.pb.cs:1040
int CalculateSize()
Definition: CpModel.pb.cs:1445
override int GetHashCode()
Definition: CpModel.pb.cs:5591
NoOverlapConstraintProto Clone()
Definition: CpModel.pb.cs:1728
int Target
Definition: CpModel.pb.cs:1375
global::Google.OrTools.Sat.TableConstraintProto?? Table
The table constraint enforces what values a tuple of variables may take.
Definition: CpModel.pb.cs:3979
Argument of the constraints of the form OP(literals).
Definition: CpModel.pb.cs:419
void MergeFrom(BoolArgumentProto other)
Definition: CpModel.pb.cs:514
The values of the n-tuple formed by the given variables can only be one of the listed n-tuples in val...
Definition: CpModel.pb.cs:2985
global::Google.OrTools.Sat.BoolArgumentProto?? AtMostOne
The at_most_one constraint enforces that no more than one literal is true at the same time.
Definition: CpModel.pb.cs:3757
bool Equals(BoolArgumentProto other)
Definition: CpModel.pb.cs:469
global::Google.Protobuf.Reflection pbr
override bool Equals(object other)
Definition: CpModel.pb.cs:2500
void MergeFrom(DecisionStrategyProto other)
Definition: CpModel.pb.cs:5240
This constraint forces a sequence of variables to be accepted by an automaton.
Definition: CpModel.pb.cs:3311
global::Google.OrTools.Sat.IntegerArgumentProto?? IntMax
The int_max constraint forces the target to equal the maximum of all variables.
Definition: CpModel.pb.cs:3815
TableConstraintProto Clone()
Definition: CpModel.pb.cs:3017
override string ToString()
Definition: CpModel.pb.cs:1424
override bool Equals(object other)
Definition: CpModel.pb.cs:4137
override string ToString()
Definition: CpModel.pb.cs:3088
int CalculateSize()
Definition: CpModel.pb.cs:5447
IntegerVariableProto()
Definition: CpModel.pb.cs:261
void MergeFrom(CpModelProto other)
Definition: CpModel.pb.cs:5915
void MergeFrom(CumulativeConstraintProto other)
Definition: CpModel.pb.cs:2137
void MergeFrom(IntegerArgumentProto other)
Definition: CpModel.pb.cs:660
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:496
override bool Equals(object other)
Definition: CpModel.pb.cs:922
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:394
override int GetHashCode()
Definition: CpModel.pb.cs:1913
void MergeFrom(AllDifferentConstraintProto other)
Definition: CpModel.pb.cs:1118
override int GetHashCode()
Definition: CpModel.pb.cs:341
override bool Equals(object other)
Definition: CpModel.pb.cs:2074
override bool Equals(object other)
Definition: CpModel.pb.cs:1576
long NumBinaryPropagations
Definition: CpModel.pb.cs:6248
bool Equals(AutomatonConstraintProto other)
Definition: CpModel.pb.cs:3431
bool Equals(CircuitConstraintProto other)
Definition: CpModel.pb.cs:2505
int Index
Definition: CpModel.pb.cs:1364
long NumIntegerPropagations
Definition: CpModel.pb.cs:6259
override bool Equals(object other)
Definition: CpModel.pb.cs:5573
CircuitCoveringConstraintProto Clone()
Definition: CpModel.pb.cs:2868
CpModelProto Clone()
Definition: CpModel.pb.cs:5699
int Capacity
Definition: CpModel.pb.cs:2043
int CalculateSize()
Definition: CpModel.pb.cs:2123
CircuitConstraintProto Clone()
Definition: CpModel.pb.cs:2465
int CalculateSize()
Definition: CpModel.pb.cs:2764
global::Google.OrTools.Sat.IntegerArgumentProto?? IntMod
The int_mod constraint forces the target to equal vars[0] % vars[1].
Definition: CpModel.pb.cs:3799
override int GetHashCode()
Definition: CpModel.pb.cs:5849
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:4223
global::Google.OrTools.Sat.CpObjectiveProto Objective
The objective to minimize.
Definition: CpModel.pb.cs:5747
int CalculateSize()
Definition: CpModel.pb.cs:369
override bool Equals(object other)
Definition: CpModel.pb.cs:5168
RoutesConstraintProto Clone()
Definition: CpModel.pb.cs:2648
void MergeFrom(AffineTransformation other)
Definition: CpModel.pb.cs:5465
override int GetHashCode()
Definition: CpModel.pb.cs:2519
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2333
bool Equals(AllDifferentConstraintProto other)
Definition: CpModel.pb.cs:1073
bool Equals(CpObjectiveProto other)
Definition: CpModel.pb.cs:4955
override string ToString()
Definition: CpModel.pb.cs:1925
override string ToString()
Definition: CpModel.pb.cs:793
double WallTime
Definition: CpModel.pb.cs:6270
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1775
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1476
int Start
Definition: CpModel.pb.cs:1546
ReservoirConstraintProto()
Definition: CpModel.pb.cs:2210
AllDifferentConstraintProto(AllDifferentConstraintProto other)
Definition: CpModel.pb.cs:1047
global::Google.OrTools.Sat.IntegerArgumentProto?? IntProd
The int_prod constraint forces the target to equal the product of all variables.
Definition: CpModel.pb.cs:3876
bool Equals(CpModelProto other)
Definition: CpModel.pb.cs:5831
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1802
CircuitCoveringConstraintProto()
Definition: CpModel.pb.cs:2854
RoutesConstraintProto(RoutesConstraintProto other)
Definition: CpModel.pb.cs:2638
BoolArgumentProto()
Definition: CpModel.pb.cs:436
LinearArgumentProto(LinearArgumentProto other)
Definition: CpModel.pb.cs:889
global::Google.OrTools.Sat.CircuitCoveringConstraintProto?? CircuitCovering
The circuit_covering constraint is similar to the circuit constraint, but allows multiple non-overlap...
Definition: CpModel.pb.cs:3964
InverseConstraintProto()
Definition: CpModel.pb.cs:3181
IntervalConstraintProto()
Definition: CpModel.pb.cs:1523
int CalculateSize()
Definition: CpModel.pb.cs:5223
ElementConstraintProto(ElementConstraintProto other)
Definition: CpModel.pb.cs:1348
IntegerVariableProto Clone()
Definition: CpModel.pb.cs:275
override int GetHashCode()
Definition: CpModel.pb.cs:2314
void MergeFrom(CpSolverResponse other)
Definition: CpModel.pb.cs:6517
LinearExpressionProto()
Definition: CpModel.pb.cs:711
Definition: CpModel.pb.cs:694
Advanced usage.
Definition: CpModel.pb.cs:5322
global::Google.OrTools.Sat.AutomatonConstraintProto?? Automaton
The automaton constraint forces a sequence of variables to be accepted by an automaton.
Definition: CpModel.pb.cs:3994
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1970
global::System.Collections.Generic scg
override string ToString()
Definition: CpModel.pb.cs:4985
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:3254
override string ToString()
Definition: CpModel.pb.cs:2105
double DeterministicTime
Definition: CpModel.pb.cs:6292
CpModelProto(CpModelProto other)
Definition: CpModel.pb.cs:5687
bool Equals(CumulativeConstraintProto other)
Definition: CpModel.pb.cs:2079
override bool Equals(object other)
Definition: CpModel.pb.cs:4950
override string ToString()
Definition: CpModel.pb.cs:2328
bool AllSolutionsWereFound
This will be true iff the solver was asked to find all solutions to a satisfiability problem (or all ...
Definition: CpModel.pb.cs:6201
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2150
bool Equals(ConstraintProto other)
Definition: CpModel.pb.cs:4142
long Offset
Definition: CpModel.pb.cs:754
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:996
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:635
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:5256
bool Equals(CpSolverResponse other)
Definition: CpModel.pb.cs:6330
bool Equals(ReservoirConstraintProto other)
Definition: CpModel.pb.cs:2298
override string ToString()
Definition: CpModel.pb.cs:2744
void MergeFrom(ConstraintProto other)
Definition: CpModel.pb.cs:4423
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:5043
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:5942
DomainReductionStrategy
Once a variable has been chosen, this enum describe what decision is taken on its domain.
Definition: CpModel.pb.cs:5308
override bool Equals(object other)
Definition: CpModel.pb.cs:5826
int CalculateSize()
Definition: CpModel.pb.cs:6461
bool Equals(ElementConstraintProto other)
Definition: CpModel.pb.cs:1398
override bool Equals(object other)
Definition: CpModel.pb.cs:1223
CpObjectiveProto()
Definition: CpModel.pb.cs:4857
override bool Equals(object other)
Definition: CpModel.pb.cs:1894
global::Google.OrTools.Sat.CircuitConstraintProto?? Circuit
The circuit constraint takes a graph and forces the arcs present (with arc presence indicated by a li...
Definition: CpModel.pb.cs:3935
override bool Equals(object other)
Definition: CpModel.pb.cs:6325
global::Google.OrTools.Sat.NoOverlapConstraintProto?? NoOverlap
The no_overlap constraint prevents a set of intervals from overlapping; in scheduling,...
Definition: CpModel.pb.cs:4056
override string ToString()
Definition: CpModel.pb.cs:6388
int CalculateSize()
Definition: CpModel.pb.cs:2351
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1292
global::Google.OrTools.Sat.CumulativeConstraintProto?? Cumulative
The cumulative constraint ensures that for any integer point, the sum of the demands of the intervals...
Definition: CpModel.pb.cs:4086
bool Equals(DecisionStrategyProto other)
Definition: CpModel.pb.cs:5173
override string ToString()
Definition: CpModel.pb.cs:5423
CircuitCoveringConstraintProto(CircuitCoveringConstraintProto other)
Definition: CpModel.pb.cs:2861
Definition: CpModel.pb.cs:865
Next id: 29
Definition: CpModel.pb.cs:3562
override string ToString()
Definition: CpModel.pb.cs:1770
long Offset
Definition: CpModel.pb.cs:5373
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2110
override string ToString()
Definition: CpModel.pb.cs:491
override bool Equals(object other)
Definition: CpModel.pb.cs:2709
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1100
CpModelProto()
Definition: CpModel.pb.cs:5680
int CalculateSize()
Definition: CpModel.pb.cs:1108
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:3284
The circuit constraint is defined on a graph where the arc presence are controlled by literals.
Definition: CpModel.pb.cs:2433
NoOverlapConstraintProto()
Definition: CpModel.pb.cs:1715
global::Google.OrTools.Sat.BoolArgumentProto?? BoolOr
The bool_or constraint forces at least one literal to be true.
Definition: CpModel.pb.cs:3721
override string ToString()
Definition: CpModel.pb.cs:5201
global::Google.OrTools.Sat.ReservoirConstraintProto?? Reservoir
The reservoir constraint forces the sum of a set of active demands to always be between a specified m...
Definition: CpModel.pb.cs:4025
override int GetHashCode()
Definition: CpModel.pb.cs:940
bool Equals(AffineTransformation other)
Definition: CpModel.pb.cs:5397
The two arrays of variable each represent a function, the second is the inverse of the first: f_direc...
Definition: CpModel.pb.cs:3164
CpObjectiveProto Clone()
Definition: CpModel.pb.cs:4874
global::Google.OrTools.Sat.ElementConstraintProto?? Element
The element constraint forces the variable with the given index to be equal to the target.
Definition: CpModel.pb.cs:3920
DecisionStrategyProto(DecisionStrategyProto other)
Definition: CpModel.pb.cs:5107
void MergeFrom(CircuitConstraintProto other)
Definition: CpModel.pb.cs:2558
PartialVariableAssignment Clone()
Definition: CpModel.pb.cs:5548
override int GetHashCode()
Definition: CpModel.pb.cs:481
long StartingState
A state is identified by a non-negative number.
Definition: CpModel.pb.cs:3359
ReservoirConstraintProto Clone()
Definition: CpModel.pb.cs:2227
IntervalConstraintProto(IntervalConstraintProto other)
Definition: CpModel.pb.cs:1530
void MergeFrom(PartialVariableAssignment other)
Definition: CpModel.pb.cs:5627
void MergeFrom(ElementConstraintProto other)
Definition: CpModel.pb.cs:1461
override int GetHashCode()
Definition: CpModel.pb.cs:1412
global::Google.OrTools.Sat.IntegerArgumentProto?? IntMin
The int_min constraint forces the target to equal the minimum of all variables.
Definition: CpModel.pb.cs:3846
LinearArgumentProto()
Definition: CpModel.pb.cs:882
CircuitConstraintProto()
Definition: CpModel.pb.cs:2450
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1930
global::Google.OrTools.Sat.IntervalConstraintProto?? Interval
The interval constraint takes a start, end, and size, and forces start + size == end.
Definition: CpModel.pb.cs:4040
ElementConstraintProto()
Definition: CpModel.pb.cs:1341
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1612
IntegerArgumentProto(IntegerArgumentProto other)
Definition: CpModel.pb.cs:568
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:523
double ObjectiveValue
Only make sense for an optimization problem.
Definition: CpModel.pb.cs:6089
bool Equals(LinearExpressionProto other)
Definition: CpModel.pb.cs:767
InverseConstraintProto Clone()
Definition: CpModel.pb.cs:3195
IntegerArgumentProto()
Definition: CpModel.pb.cs:561
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:5607
long NumBranches
Definition: CpModel.pb.cs:6237
override bool Equals(object other)
Definition: CpModel.pb.cs:323
int CalculateSize()
Definition: CpModel.pb.cs:5008
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:5206
CircuitConstraintProto(CircuitConstraintProto other)
Definition: CpModel.pb.cs:2457
string SolutionInfo
Additional information about how the solution was found.
Definition: CpModel.pb.cs:6317
DecisionStrategyProto Clone()
Definition: CpModel.pb.cs:5116
bool Equals(NoOverlapConstraintProto other)
Definition: CpModel.pb.cs:1748
bool Equals(CircuitCoveringConstraintProto other)
Definition: CpModel.pb.cs:2898
override int GetHashCode()
Definition: CpModel.pb.cs:3238
int CalculateSize()
Definition: CpModel.pb.cs:4335
LinearConstraintProto()
Definition: CpModel.pb.cs:1170
Define the strategy to follow when the solver needs to take a new decision.
Definition: CpModel.pb.cs:5083
long NumBooleans
Some statistics about the solve.
Definition: CpModel.pb.cs:6215
AffineTransformation(AffineTransformation other)
Definition: CpModel.pb.cs:5346
AutomatonConstraintProto()
Definition: CpModel.pb.cs:3328
override bool Equals(object other)
Definition: CpModel.pb.cs:1068
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2957
This message encodes a partial (or full) assignment of the variables of a CpModelProto.
Definition: CpModel.pb.cs:5517
DecisionStrategyProto()
Definition: CpModel.pb.cs:5100
int CalculateSize()
Definition: CpModel.pb.cs:5616
BoolArgumentProto(BoolArgumentProto other)
Definition: CpModel.pb.cs:443
void MergeFrom(RoutesConstraintProto other)
Definition: CpModel.pb.cs:2780
override string ToString()
Definition: CpModel.pb.cs:3463
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:4588
int CalculateSize()
Definition: CpModel.pb.cs:647
All variables must take different values.
Definition: CpModel.pb.cs:1023
void MergeFrom(LinearExpressionProto other)
Definition: CpModel.pb.cs:825
RoutesConstraintProto()
Definition: CpModel.pb.cs:2631
void MergeFrom(InverseConstraintProto other)
Definition: CpModel.pb.cs:3274
global::Google.OrTools.Sat.IntegerArgumentProto?? IntDiv
The int_div constraint forces the target to equal vars[0] / vars[1].
Definition: CpModel.pb.cs:3785
global::Google.Protobuf.Collections pbc
int CalculateSize()
Definition: CpModel.pb.cs:1631
int CalculateSize()
Definition: CpModel.pb.cs:811
double Offset
The displayed objective is always: scaling_factor * (sum(coefficients[i] * objective_vars[i]) + offse...
Definition: CpModel.pb.cs:4916
CpObjectiveProto(CpObjectiveProto other)
Definition: CpModel.pb.cs:4864
override int GetHashCode()
Definition: CpModel.pb.cs:1595
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:4990
bool Equals(TableConstraintProto other)
Definition: CpModel.pb.cs:3062
override string ToString()
Definition: CpModel.pb.cs:1095
int CalculateSize()
Definition: CpModel.pb.cs:1783
ConstraintProto()
Definition: CpModel.pb.cs:3579
Definition: CpModel.pb.cs:12