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