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  "GAEgASgFEgwKBHZhcnMYAiADKAUiKwobQWxsRGlmZmVyZW50Q29uc3RyYWlu",
32  "dFByb3RvEgwKBHZhcnMYASADKAUiRQoVTGluZWFyQ29uc3RyYWludFByb3Rv",
33  "EgwKBHZhcnMYASADKAUSDgoGY29lZmZzGAIgAygDEg4KBmRvbWFpbhgDIAMo",
34  "AyJFChZFbGVtZW50Q29uc3RyYWludFByb3RvEg0KBWluZGV4GAEgASgFEg4K",
35  "BnRhcmdldBgCIAEoBRIMCgR2YXJzGAMgAygFIkMKF0ludGVydmFsQ29uc3Ry",
36  "YWludFByb3RvEg0KBXN0YXJ0GAEgASgFEgsKA2VuZBgCIAEoBRIMCgRzaXpl",
37  "GAMgASgFIi0KGE5vT3ZlcmxhcENvbnN0cmFpbnRQcm90bxIRCglpbnRlcnZh",
38  "bHMYASADKAUiRgoaTm9PdmVybGFwMkRDb25zdHJhaW50UHJvdG8SEwoLeF9p",
39  "bnRlcnZhbHMYASADKAUSEwoLeV9pbnRlcnZhbHMYAiADKAUiUQoZQ3VtdWxh",
40  "dGl2ZUNvbnN0cmFpbnRQcm90bxIQCghjYXBhY2l0eRgBIAEoBRIRCglpbnRl",
41  "cnZhbHMYAiADKAUSDwoHZGVtYW5kcxgDIAMoBSJxChhSZXNlcnZvaXJDb25z",
42  "dHJhaW50UHJvdG8SEQoJbWluX2xldmVsGAEgASgDEhEKCW1heF9sZXZlbBgC",
43  "IAEoAxINCgV0aW1lcxgDIAMoBRIPCgdkZW1hbmRzGAQgAygDEg8KB2FjdGl2",
44  "ZXMYBSADKAUiSAoWQ2lyY3VpdENvbnN0cmFpbnRQcm90bxINCgV0YWlscxgD",
45  "IAMoBRINCgVoZWFkcxgEIAMoBRIQCghsaXRlcmFscxgFIAMoBSJqChVSb3V0",
46  "ZXNDb25zdHJhaW50UHJvdG8SDQoFdGFpbHMYASADKAUSDQoFaGVhZHMYAiAD",
47  "KAUSEAoIbGl0ZXJhbHMYAyADKAUSDwoHZGVtYW5kcxgEIAMoBRIQCghjYXBh",
48  "Y2l0eRgFIAEoAyJMCh5DaXJjdWl0Q292ZXJpbmdDb25zdHJhaW50UHJvdG8S",
49  "DQoFbmV4dHMYASADKAUSGwoTZGlzdGluZ3Vpc2hlZF9ub2RlcxgCIAMoAyJF",
50  "ChRUYWJsZUNvbnN0cmFpbnRQcm90bxIMCgR2YXJzGAEgAygFEg4KBnZhbHVl",
51  "cxgCIAMoAxIPCgduZWdhdGVkGAMgASgIIj0KFkludmVyc2VDb25zdHJhaW50",
52  "UHJvdG8SEAoIZl9kaXJlY3QYASADKAUSEQoJZl9pbnZlcnNlGAIgAygFIqIB",
53  "ChhBdXRvbWF0b25Db25zdHJhaW50UHJvdG8SFgoOc3RhcnRpbmdfc3RhdGUY",
54  "AiABKAMSFAoMZmluYWxfc3RhdGVzGAMgAygDEhcKD3RyYW5zaXRpb25fdGFp",
55  "bBgEIAMoAxIXCg90cmFuc2l0aW9uX2hlYWQYBSADKAMSGAoQdHJhbnNpdGlv",
56  "bl9sYWJlbBgGIAMoAxIMCgR2YXJzGAcgAygFIv0MCg9Db25zdHJhaW50UHJv",
57  "dG8SDAoEbmFtZRgBIAEoCRIbChNlbmZvcmNlbWVudF9saXRlcmFsGAIgAygF",
58  "Ej0KB2Jvb2xfb3IYAyABKAsyKi5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5C",
59  "b29sQXJndW1lbnRQcm90b0gAEj4KCGJvb2xfYW5kGAQgASgLMioub3BlcmF0",
60  "aW9uc19yZXNlYXJjaC5zYXQuQm9vbEFyZ3VtZW50UHJvdG9IABJBCgthdF9t",
61  "b3N0X29uZRgaIAEoCzIqLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkJvb2xB",
62  "cmd1bWVudFByb3RvSAASPgoIYm9vbF94b3IYBSABKAsyKi5vcGVyYXRpb25z",
63  "X3Jlc2VhcmNoLnNhdC5Cb29sQXJndW1lbnRQcm90b0gAEkAKB2ludF9kaXYY",
64  "ByABKAsyLS5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5JbnRlZ2VyQXJndW1l",
65  "bnRQcm90b0gAEkAKB2ludF9tb2QYCCABKAsyLS5vcGVyYXRpb25zX3Jlc2Vh",
66  "cmNoLnNhdC5JbnRlZ2VyQXJndW1lbnRQcm90b0gAEkAKB2ludF9tYXgYCSAB",
67  "KAsyLS5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5JbnRlZ2VyQXJndW1lbnRQ",
68  "cm90b0gAEkAKB2ludF9taW4YCiABKAsyLS5vcGVyYXRpb25zX3Jlc2VhcmNo",
69  "LnNhdC5JbnRlZ2VyQXJndW1lbnRQcm90b0gAEkEKCGludF9wcm9kGAsgASgL",
70  "Mi0ub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuSW50ZWdlckFyZ3VtZW50UHJv",
71  "dG9IABJACgZsaW5lYXIYDCABKAsyLi5vcGVyYXRpb25zX3Jlc2VhcmNoLnNh",
72  "dC5MaW5lYXJDb25zdHJhaW50UHJvdG9IABJICghhbGxfZGlmZhgNIAEoCzI0",
73  "Lm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkFsbERpZmZlcmVudENvbnN0cmFp",
74  "bnRQcm90b0gAEkIKB2VsZW1lbnQYDiABKAsyLy5vcGVyYXRpb25zX3Jlc2Vh",
75  "cmNoLnNhdC5FbGVtZW50Q29uc3RyYWludFByb3RvSAASQgoHY2lyY3VpdBgP",
76  "IAEoCzIvLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkNpcmN1aXRDb25zdHJh",
77  "aW50UHJvdG9IABJACgZyb3V0ZXMYFyABKAsyLi5vcGVyYXRpb25zX3Jlc2Vh",
78  "cmNoLnNhdC5Sb3V0ZXNDb25zdHJhaW50UHJvdG9IABJTChBjaXJjdWl0X2Nv",
79  "dmVyaW5nGBkgASgLMjcub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuQ2lyY3Vp",
80  "dENvdmVyaW5nQ29uc3RyYWludFByb3RvSAASPgoFdGFibGUYECABKAsyLS5v",
81  "cGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5UYWJsZUNvbnN0cmFpbnRQcm90b0gA",
82  "EkYKCWF1dG9tYXRvbhgRIAEoCzIxLm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0",
83  "LkF1dG9tYXRvbkNvbnN0cmFpbnRQcm90b0gAEkIKB2ludmVyc2UYEiABKAsy",
84  "Ly5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5JbnZlcnNlQ29uc3RyYWludFBy",
85  "b3RvSAASRgoJcmVzZXJ2b2lyGBggASgLMjEub3BlcmF0aW9uc19yZXNlYXJj",
86  "aC5zYXQuUmVzZXJ2b2lyQ29uc3RyYWludFByb3RvSAASRAoIaW50ZXJ2YWwY",
87  "EyABKAsyMC5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5JbnRlcnZhbENvbnN0",
88  "cmFpbnRQcm90b0gAEkcKCm5vX292ZXJsYXAYFCABKAsyMS5vcGVyYXRpb25z",
89  "X3Jlc2VhcmNoLnNhdC5Ob092ZXJsYXBDb25zdHJhaW50UHJvdG9IABJMCg1u",
90  "b19vdmVybGFwXzJkGBUgASgLMjMub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQu",
91  "Tm9PdmVybGFwMkRDb25zdHJhaW50UHJvdG9IABJICgpjdW11bGF0aXZlGBYg",
92  "ASgLMjIub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuQ3VtdWxhdGl2ZUNvbnN0",
93  "cmFpbnRQcm90b0gAQgwKCmNvbnN0cmFpbnQiaAoQQ3BPYmplY3RpdmVQcm90",
94  "bxIMCgR2YXJzGAEgAygFEg4KBmNvZWZmcxgEIAMoAxIOCgZvZmZzZXQYAiAB",
95  "KAESFgoOc2NhbGluZ19mYWN0b3IYAyABKAESDgoGZG9tYWluGAUgAygDIrsF",
96  "ChVEZWNpc2lvblN0cmF0ZWd5UHJvdG8SEQoJdmFyaWFibGVzGAEgAygFEm0K",
97  "G3ZhcmlhYmxlX3NlbGVjdGlvbl9zdHJhdGVneRgCIAEoDjJILm9wZXJhdGlv",
98  "bnNfcmVzZWFyY2guc2F0LkRlY2lzaW9uU3RyYXRlZ3lQcm90by5WYXJpYWJs",
99  "ZVNlbGVjdGlvblN0cmF0ZWd5EmkKGWRvbWFpbl9yZWR1Y3Rpb25fc3RyYXRl",
100  "Z3kYAyABKA4yRi5vcGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5EZWNpc2lvblN0",
101  "cmF0ZWd5UHJvdG8uRG9tYWluUmVkdWN0aW9uU3RyYXRlZ3kSXAoPdHJhbnNm",
102  "b3JtYXRpb25zGAQgAygLMkMub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuRGVj",
103  "aXNpb25TdHJhdGVneVByb3RvLkFmZmluZVRyYW5zZm9ybWF0aW9uGksKFEFm",
104  "ZmluZVRyYW5zZm9ybWF0aW9uEgsKA3ZhchgBIAEoBRIOCgZvZmZzZXQYAiAB",
105  "KAMSFgoOcG9zaXRpdmVfY29lZmYYAyABKAMilAEKGVZhcmlhYmxlU2VsZWN0",
106  "aW9uU3RyYXRlZ3kSEAoMQ0hPT1NFX0ZJUlNUEAASFQoRQ0hPT1NFX0xPV0VT",
107  "VF9NSU4QARIWChJDSE9PU0VfSElHSEVTVF9NQVgQAhIaChZDSE9PU0VfTUlO",
108  "X0RPTUFJTl9TSVpFEAMSGgoWQ0hPT1NFX01BWF9ET01BSU5fU0laRRAEInMK",
109  "F0RvbWFpblJlZHVjdGlvblN0cmF0ZWd5EhQKEFNFTEVDVF9NSU5fVkFMVUUQ",
110  "ABIUChBTRUxFQ1RfTUFYX1ZBTFVFEAESFQoRU0VMRUNUX0xPV0VSX0hBTEYQ",
111  "AhIVChFTRUxFQ1RfVVBQRVJfSEFMRhADIjkKGVBhcnRpYWxWYXJpYWJsZUFz",
112  "c2lnbm1lbnQSDAoEdmFycxgBIAMoBRIOCgZ2YWx1ZXMYAiADKAMi7wIKDENw",
113  "TW9kZWxQcm90bxIMCgRuYW1lGAEgASgJEkAKCXZhcmlhYmxlcxgCIAMoCzIt",
114  "Lm9wZXJhdGlvbnNfcmVzZWFyY2guc2F0LkludGVnZXJWYXJpYWJsZVByb3Rv",
115  "Ej0KC2NvbnN0cmFpbnRzGAMgAygLMigub3BlcmF0aW9uc19yZXNlYXJjaC5z",
116  "YXQuQ29uc3RyYWludFByb3RvEjwKCW9iamVjdGl2ZRgEIAEoCzIpLm9wZXJh",
117  "dGlvbnNfcmVzZWFyY2guc2F0LkNwT2JqZWN0aXZlUHJvdG8SRwoPc2VhcmNo",
118  "X3N0cmF0ZWd5GAUgAygLMi4ub3BlcmF0aW9uc19yZXNlYXJjaC5zYXQuRGVj",
119  "aXNpb25TdHJhdGVneVByb3RvEkkKDXNvbHV0aW9uX2hpbnQYBiABKAsyMi5v",
120  "cGVyYXRpb25zX3Jlc2VhcmNoLnNhdC5QYXJ0aWFsVmFyaWFibGVBc3NpZ25t",
121  "ZW50Ip8EChBDcFNvbHZlclJlc3BvbnNlEjcKBnN0YXR1cxgBIAEoDjInLm9w",
122  "ZXJhdGlvbnNfcmVzZWFyY2guc2F0LkNwU29sdmVyU3RhdHVzEhAKCHNvbHV0",
123  "aW9uGAIgAygDEhcKD29iamVjdGl2ZV92YWx1ZRgDIAEoARIcChRiZXN0X29i",
124  "amVjdGl2ZV9ib3VuZBgEIAEoARIdChVzb2x1dGlvbl9sb3dlcl9ib3VuZHMY",
125  "EiADKAMSHQoVc29sdXRpb25fdXBwZXJfYm91bmRzGBMgAygDEkoKE3RpZ2h0",
126  "ZW5lZF92YXJpYWJsZXMYFSADKAsyLS5vcGVyYXRpb25zX3Jlc2VhcmNoLnNh",
127  "dC5JbnRlZ2VyVmFyaWFibGVQcm90bxIgChhhbGxfc29sdXRpb25zX3dlcmVf",
128  "Zm91bmQYBSABKAgSFAoMbnVtX2Jvb2xlYW5zGAogASgDEhUKDW51bV9jb25m",
129  "bGljdHMYCyABKAMSFAoMbnVtX2JyYW5jaGVzGAwgASgDEh8KF251bV9iaW5h",
130  "cnlfcHJvcGFnYXRpb25zGA0gASgDEiAKGG51bV9pbnRlZ2VyX3Byb3BhZ2F0",
131  "aW9ucxgOIAEoAxIRCgl3YWxsX3RpbWUYDyABKAESEQoJdXNlcl90aW1lGBAg",
132  "ASgBEhoKEmRldGVybWluaXN0aWNfdGltZRgRIAEoARIVCg1zb2x1dGlvbl9p",
133  "bmZvGBQgASgJKlsKDkNwU29sdmVyU3RhdHVzEgsKB1VOS05PV04QABIRCg1N",
134  "T0RFTF9JTlZBTElEEAESDAoIRkVBU0lCTEUQAhIOCgpJTkZFQVNJQkxFEAMS",
135  "CwoHT1BUSU1BTBAEQkAKFmNvbS5nb29nbGUub3J0b29scy5zYXRCD0NwTW9k",
136  "ZWxQcm90b2J1ZlABqgISR29vZ2xlLk9yVG9vbHMuU2F0YgZwcm90bzM="));
137  descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
138  new pbr::FileDescriptor[] { },
139  new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Google.OrTools.Sat.CpSolverStatus), }, new pbr::GeneratedClrTypeInfo[] {
140  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.IntegerVariableProto), global::Google.OrTools.Sat.IntegerVariableProto.Parser, new[]{ "Name", "Domain" }, null, null, null),
141  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.BoolArgumentProto), global::Google.OrTools.Sat.BoolArgumentProto.Parser, new[]{ "Literals" }, null, null, null),
142  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.IntegerArgumentProto), global::Google.OrTools.Sat.IntegerArgumentProto.Parser, new[]{ "Target", "Vars" }, null, null, null),
143  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.AllDifferentConstraintProto), global::Google.OrTools.Sat.AllDifferentConstraintProto.Parser, new[]{ "Vars" }, null, null, null),
144  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.LinearConstraintProto), global::Google.OrTools.Sat.LinearConstraintProto.Parser, new[]{ "Vars", "Coeffs", "Domain" }, null, null, null),
145  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.ElementConstraintProto), global::Google.OrTools.Sat.ElementConstraintProto.Parser, new[]{ "Index", "Target", "Vars" }, null, null, null),
146  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.IntervalConstraintProto), global::Google.OrTools.Sat.IntervalConstraintProto.Parser, new[]{ "Start", "End", "Size" }, null, null, null),
147  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.NoOverlapConstraintProto), global::Google.OrTools.Sat.NoOverlapConstraintProto.Parser, new[]{ "Intervals" }, null, null, null),
148  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.NoOverlap2DConstraintProto), global::Google.OrTools.Sat.NoOverlap2DConstraintProto.Parser, new[]{ "XIntervals", "YIntervals" }, null, null, null),
149  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CumulativeConstraintProto), global::Google.OrTools.Sat.CumulativeConstraintProto.Parser, new[]{ "Capacity", "Intervals", "Demands" }, null, null, null),
150  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.ReservoirConstraintProto), global::Google.OrTools.Sat.ReservoirConstraintProto.Parser, new[]{ "MinLevel", "MaxLevel", "Times", "Demands", "Actives" }, null, null, null),
151  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CircuitConstraintProto), global::Google.OrTools.Sat.CircuitConstraintProto.Parser, new[]{ "Tails", "Heads", "Literals" }, null, null, null),
152  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.RoutesConstraintProto), global::Google.OrTools.Sat.RoutesConstraintProto.Parser, new[]{ "Tails", "Heads", "Literals", "Demands", "Capacity" }, null, null, null),
153  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CircuitCoveringConstraintProto), global::Google.OrTools.Sat.CircuitCoveringConstraintProto.Parser, new[]{ "Nexts", "DistinguishedNodes" }, null, null, null),
154  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.TableConstraintProto), global::Google.OrTools.Sat.TableConstraintProto.Parser, new[]{ "Vars", "Values", "Negated" }, null, null, null),
155  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.InverseConstraintProto), global::Google.OrTools.Sat.InverseConstraintProto.Parser, new[]{ "FDirect", "FInverse" }, null, null, null),
156  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),
157  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", "IntMin", "IntProd", "Linear", "AllDiff", "Element", "Circuit", "Routes", "CircuitCovering", "Table", "Automaton", "Inverse", "Reservoir", "Interval", "NoOverlap", "NoOverlap2D", "Cumulative" }, new[]{ "Constraint" }, null, null),
158  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.CpObjectiveProto), global::Google.OrTools.Sat.CpObjectiveProto.Parser, new[]{ "Vars", "Coeffs", "Offset", "ScalingFactor", "Domain" }, null, null, null),
159  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) }, 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)}),
160  new pbr::GeneratedClrTypeInfo(typeof(global::Google.OrTools.Sat.PartialVariableAssignment), global::Google.OrTools.Sat.PartialVariableAssignment.Parser, new[]{ "Vars", "Values" }, null, null, null),
161  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),
162  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", "SolutionInfo" }, null, null, null)
163  }));
164  }
165  #endregion
166 
167  }
168  #region Enums
169  public enum CpSolverStatus {
177  [pbr::OriginalName("UNKNOWN")] Unknown = 0,
182  [pbr::OriginalName("MODEL_INVALID")] ModelInvalid = 1,
187  [pbr::OriginalName("FEASIBLE")] Feasible = 2,
191  [pbr::OriginalName("INFEASIBLE")] Infeasible = 3,
197  [pbr::OriginalName("OPTIMAL")] Optimal = 4,
198  }
199 
200  #endregion
201 
202  #region Messages
203  public sealed partial class IntegerVariableProto : pb::IMessage<IntegerVariableProto> {
225  private static readonly pb::MessageParser<IntegerVariableProto> _parser = new pb::MessageParser<IntegerVariableProto>(() => new IntegerVariableProto());
226  private pb::UnknownFieldSet _unknownFields;
227  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
228  public static pb::MessageParser<IntegerVariableProto> Parser { get { return _parser; } }
229 
230  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
231  public static pbr::MessageDescriptor Descriptor {
232  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[0]; }
233  }
234 
235  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
236  pbr::MessageDescriptor pb::IMessage.Descriptor {
237  get { return Descriptor; }
238  }
239 
240  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
242  OnConstruction();
243  }
244 
245  partial void OnConstruction();
246 
247  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
249  name_ = other.name_;
250  domain_ = other.domain_.Clone();
251  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
252  }
253 
254  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
256  return new IntegerVariableProto(this);
257  }
258 
260  public const int NameFieldNumber = 1;
261  private string name_ = "";
265  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
266  public string Name {
267  get { return name_; }
268  set {
269  name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
270  }
271  }
272 
274  public const int DomainFieldNumber = 2;
275  private static readonly pb::FieldCodec<long> _repeated_domain_codec
276  = pb::FieldCodec.ForInt64(18);
277  private readonly pbc::RepeatedField<long> domain_ = new pbc::RepeatedField<long>();
292  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
293  public pbc::RepeatedField<long> Domain {
294  get { return domain_; }
295  }
296 
297  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
298  public override bool Equals(object other) {
299  return Equals(other as IntegerVariableProto);
300  }
301 
302  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
303  public bool Equals(IntegerVariableProto other) {
304  if (ReferenceEquals(other, null)) {
305  return false;
306  }
307  if (ReferenceEquals(other, this)) {
308  return true;
309  }
310  if (Name != other.Name) return false;
311  if(!domain_.Equals(other.domain_)) return false;
312  return Equals(_unknownFields, other._unknownFields);
313  }
314 
315  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
316  public override int GetHashCode() {
317  int hash = 1;
318  if (Name.Length != 0) hash ^= Name.GetHashCode();
319  hash ^= domain_.GetHashCode();
320  if (_unknownFields != null) {
321  hash ^= _unknownFields.GetHashCode();
322  }
323  return hash;
324  }
325 
326  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
327  public override string ToString() {
328  return pb::JsonFormatter.ToDiagnosticString(this);
329  }
330 
331  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
332  public void WriteTo(pb::CodedOutputStream output) {
333  if (Name.Length != 0) {
334  output.WriteRawTag(10);
335  output.WriteString(Name);
336  }
337  domain_.WriteTo(output, _repeated_domain_codec);
338  if (_unknownFields != null) {
339  _unknownFields.WriteTo(output);
340  }
341  }
342 
343  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
344  public int CalculateSize() {
345  int size = 0;
346  if (Name.Length != 0) {
347  size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
348  }
349  size += domain_.CalculateSize(_repeated_domain_codec);
350  if (_unknownFields != null) {
351  size += _unknownFields.CalculateSize();
352  }
353  return size;
354  }
355 
356  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
357  public void MergeFrom(IntegerVariableProto other) {
358  if (other == null) {
359  return;
360  }
361  if (other.Name.Length != 0) {
362  Name = other.Name;
363  }
364  domain_.Add(other.domain_);
365  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
366  }
367 
368  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
369  public void MergeFrom(pb::CodedInputStream input) {
370  uint tag;
371  while ((tag = input.ReadTag()) != 0) {
372  switch(tag) {
373  default:
374  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
375  break;
376  case 10: {
377  Name = input.ReadString();
378  break;
379  }
380  case 18:
381  case 16: {
382  domain_.AddEntriesFrom(input, _repeated_domain_codec);
383  break;
384  }
385  }
386  }
387  }
388 
389  }
390 
394  public sealed partial class BoolArgumentProto : pb::IMessage<BoolArgumentProto> {
395  private static readonly pb::MessageParser<BoolArgumentProto> _parser = new pb::MessageParser<BoolArgumentProto>(() => new BoolArgumentProto());
396  private pb::UnknownFieldSet _unknownFields;
397  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
398  public static pb::MessageParser<BoolArgumentProto> Parser { get { return _parser; } }
399 
400  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
401  public static pbr::MessageDescriptor Descriptor {
402  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[1]; }
403  }
404 
405  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
406  pbr::MessageDescriptor pb::IMessage.Descriptor {
407  get { return Descriptor; }
408  }
409 
410  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
411  public BoolArgumentProto() {
412  OnConstruction();
413  }
414 
415  partial void OnConstruction();
416 
417  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
418  public BoolArgumentProto(BoolArgumentProto other) : this() {
419  literals_ = other.literals_.Clone();
420  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
421  }
422 
423  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
425  return new BoolArgumentProto(this);
426  }
427 
429  public const int LiteralsFieldNumber = 1;
430  private static readonly pb::FieldCodec<int> _repeated_literals_codec
431  = pb::FieldCodec.ForInt32(10);
432  private readonly pbc::RepeatedField<int> literals_ = new pbc::RepeatedField<int>();
433  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
434  public pbc::RepeatedField<int> Literals {
435  get { return literals_; }
436  }
437 
438  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
439  public override bool Equals(object other) {
440  return Equals(other as BoolArgumentProto);
441  }
442 
443  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
444  public bool Equals(BoolArgumentProto other) {
445  if (ReferenceEquals(other, null)) {
446  return false;
447  }
448  if (ReferenceEquals(other, this)) {
449  return true;
450  }
451  if(!literals_.Equals(other.literals_)) return false;
452  return Equals(_unknownFields, other._unknownFields);
453  }
454 
455  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
456  public override int GetHashCode() {
457  int hash = 1;
458  hash ^= literals_.GetHashCode();
459  if (_unknownFields != null) {
460  hash ^= _unknownFields.GetHashCode();
461  }
462  return hash;
463  }
464 
465  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
466  public override string ToString() {
467  return pb::JsonFormatter.ToDiagnosticString(this);
468  }
469 
470  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
471  public void WriteTo(pb::CodedOutputStream output) {
472  literals_.WriteTo(output, _repeated_literals_codec);
473  if (_unknownFields != null) {
474  _unknownFields.WriteTo(output);
475  }
476  }
477 
478  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
479  public int CalculateSize() {
480  int size = 0;
481  size += literals_.CalculateSize(_repeated_literals_codec);
482  if (_unknownFields != null) {
483  size += _unknownFields.CalculateSize();
484  }
485  return size;
486  }
487 
488  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
489  public void MergeFrom(BoolArgumentProto other) {
490  if (other == null) {
491  return;
492  }
493  literals_.Add(other.literals_);
494  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
495  }
496 
497  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
498  public void MergeFrom(pb::CodedInputStream input) {
499  uint tag;
500  while ((tag = input.ReadTag()) != 0) {
501  switch(tag) {
502  default:
503  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
504  break;
505  case 10:
506  case 8: {
507  literals_.AddEntriesFrom(input, _repeated_literals_codec);
508  break;
509  }
510  }
511  }
512  }
513 
514  }
515 
519  public sealed partial class IntegerArgumentProto : pb::IMessage<IntegerArgumentProto> {
520  private static readonly pb::MessageParser<IntegerArgumentProto> _parser = new pb::MessageParser<IntegerArgumentProto>(() => new IntegerArgumentProto());
521  private pb::UnknownFieldSet _unknownFields;
522  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
523  public static pb::MessageParser<IntegerArgumentProto> Parser { get { return _parser; } }
524 
525  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
526  public static pbr::MessageDescriptor Descriptor {
527  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[2]; }
528  }
529 
530  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
531  pbr::MessageDescriptor pb::IMessage.Descriptor {
532  get { return Descriptor; }
533  }
534 
535  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
537  OnConstruction();
538  }
539 
540  partial void OnConstruction();
541 
542  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
544  target_ = other.target_;
545  vars_ = other.vars_.Clone();
546  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
547  }
548 
549  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
551  return new IntegerArgumentProto(this);
552  }
553 
555  public const int TargetFieldNumber = 1;
556  private int target_;
557  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
558  public int Target {
559  get { return target_; }
560  set {
561  target_ = value;
562  }
563  }
564 
566  public const int VarsFieldNumber = 2;
567  private static readonly pb::FieldCodec<int> _repeated_vars_codec
568  = pb::FieldCodec.ForInt32(18);
569  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
570  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
571  public pbc::RepeatedField<int> Vars {
572  get { return vars_; }
573  }
574 
575  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
576  public override bool Equals(object other) {
577  return Equals(other as IntegerArgumentProto);
578  }
579 
580  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
581  public bool Equals(IntegerArgumentProto other) {
582  if (ReferenceEquals(other, null)) {
583  return false;
584  }
585  if (ReferenceEquals(other, this)) {
586  return true;
587  }
588  if (Target != other.Target) return false;
589  if(!vars_.Equals(other.vars_)) return false;
590  return Equals(_unknownFields, other._unknownFields);
591  }
592 
593  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
594  public override int GetHashCode() {
595  int hash = 1;
596  if (Target != 0) hash ^= Target.GetHashCode();
597  hash ^= vars_.GetHashCode();
598  if (_unknownFields != null) {
599  hash ^= _unknownFields.GetHashCode();
600  }
601  return hash;
602  }
603 
604  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
605  public override string ToString() {
606  return pb::JsonFormatter.ToDiagnosticString(this);
607  }
608 
609  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
610  public void WriteTo(pb::CodedOutputStream output) {
611  if (Target != 0) {
612  output.WriteRawTag(8);
613  output.WriteInt32(Target);
614  }
615  vars_.WriteTo(output, _repeated_vars_codec);
616  if (_unknownFields != null) {
617  _unknownFields.WriteTo(output);
618  }
619  }
620 
621  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
622  public int CalculateSize() {
623  int size = 0;
624  if (Target != 0) {
625  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Target);
626  }
627  size += vars_.CalculateSize(_repeated_vars_codec);
628  if (_unknownFields != null) {
629  size += _unknownFields.CalculateSize();
630  }
631  return size;
632  }
633 
634  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
635  public void MergeFrom(IntegerArgumentProto other) {
636  if (other == null) {
637  return;
638  }
639  if (other.Target != 0) {
640  Target = other.Target;
641  }
642  vars_.Add(other.vars_);
643  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
644  }
645 
646  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
647  public void MergeFrom(pb::CodedInputStream input) {
648  uint tag;
649  while ((tag = input.ReadTag()) != 0) {
650  switch(tag) {
651  default:
652  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
653  break;
654  case 8: {
655  Target = input.ReadInt32();
656  break;
657  }
658  case 18:
659  case 16: {
660  vars_.AddEntriesFrom(input, _repeated_vars_codec);
661  break;
662  }
663  }
664  }
665  }
666 
667  }
668 
672  public sealed partial class AllDifferentConstraintProto : pb::IMessage<AllDifferentConstraintProto> {
673  private static readonly pb::MessageParser<AllDifferentConstraintProto> _parser = new pb::MessageParser<AllDifferentConstraintProto>(() => new AllDifferentConstraintProto());
674  private pb::UnknownFieldSet _unknownFields;
675  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
676  public static pb::MessageParser<AllDifferentConstraintProto> Parser { get { return _parser; } }
677 
678  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
679  public static pbr::MessageDescriptor Descriptor {
680  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[3]; }
681  }
682 
683  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
684  pbr::MessageDescriptor pb::IMessage.Descriptor {
685  get { return Descriptor; }
686  }
687 
688  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
690  OnConstruction();
691  }
692 
693  partial void OnConstruction();
694 
695  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
697  vars_ = other.vars_.Clone();
698  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
699  }
700 
701  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
703  return new AllDifferentConstraintProto(this);
704  }
705 
707  public const int VarsFieldNumber = 1;
708  private static readonly pb::FieldCodec<int> _repeated_vars_codec
709  = pb::FieldCodec.ForInt32(10);
710  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
711  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
712  public pbc::RepeatedField<int> Vars {
713  get { return vars_; }
714  }
715 
716  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
717  public override bool Equals(object other) {
718  return Equals(other as AllDifferentConstraintProto);
719  }
720 
721  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
722  public bool Equals(AllDifferentConstraintProto other) {
723  if (ReferenceEquals(other, null)) {
724  return false;
725  }
726  if (ReferenceEquals(other, this)) {
727  return true;
728  }
729  if(!vars_.Equals(other.vars_)) return false;
730  return Equals(_unknownFields, other._unknownFields);
731  }
732 
733  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
734  public override int GetHashCode() {
735  int hash = 1;
736  hash ^= vars_.GetHashCode();
737  if (_unknownFields != null) {
738  hash ^= _unknownFields.GetHashCode();
739  }
740  return hash;
741  }
742 
743  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
744  public override string ToString() {
745  return pb::JsonFormatter.ToDiagnosticString(this);
746  }
747 
748  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
749  public void WriteTo(pb::CodedOutputStream output) {
750  vars_.WriteTo(output, _repeated_vars_codec);
751  if (_unknownFields != null) {
752  _unknownFields.WriteTo(output);
753  }
754  }
755 
756  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
757  public int CalculateSize() {
758  int size = 0;
759  size += vars_.CalculateSize(_repeated_vars_codec);
760  if (_unknownFields != null) {
761  size += _unknownFields.CalculateSize();
762  }
763  return size;
764  }
765 
766  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
768  if (other == null) {
769  return;
770  }
771  vars_.Add(other.vars_);
772  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
773  }
774 
775  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
776  public void MergeFrom(pb::CodedInputStream input) {
777  uint tag;
778  while ((tag = input.ReadTag()) != 0) {
779  switch(tag) {
780  default:
781  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
782  break;
783  case 10:
784  case 8: {
785  vars_.AddEntriesFrom(input, _repeated_vars_codec);
786  break;
787  }
788  }
789  }
790  }
791 
792  }
793 
802  public sealed partial class LinearConstraintProto : pb::IMessage<LinearConstraintProto> {
803  private static readonly pb::MessageParser<LinearConstraintProto> _parser = new pb::MessageParser<LinearConstraintProto>(() => new LinearConstraintProto());
804  private pb::UnknownFieldSet _unknownFields;
805  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
806  public static pb::MessageParser<LinearConstraintProto> Parser { get { return _parser; } }
807 
808  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
809  public static pbr::MessageDescriptor Descriptor {
810  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[4]; }
811  }
812 
813  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
814  pbr::MessageDescriptor pb::IMessage.Descriptor {
815  get { return Descriptor; }
816  }
817 
818  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
820  OnConstruction();
821  }
822 
823  partial void OnConstruction();
824 
825  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
827  vars_ = other.vars_.Clone();
828  coeffs_ = other.coeffs_.Clone();
829  domain_ = other.domain_.Clone();
830  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
831  }
832 
833  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
835  return new LinearConstraintProto(this);
836  }
837 
839  public const int VarsFieldNumber = 1;
840  private static readonly pb::FieldCodec<int> _repeated_vars_codec
841  = pb::FieldCodec.ForInt32(10);
842  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
843  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
844  public pbc::RepeatedField<int> Vars {
845  get { return vars_; }
846  }
847 
849  public const int CoeffsFieldNumber = 2;
850  private static readonly pb::FieldCodec<long> _repeated_coeffs_codec
851  = pb::FieldCodec.ForInt64(18);
852  private readonly pbc::RepeatedField<long> coeffs_ = new pbc::RepeatedField<long>();
856  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
857  public pbc::RepeatedField<long> Coeffs {
858  get { return coeffs_; }
859  }
860 
862  public const int DomainFieldNumber = 3;
863  private static readonly pb::FieldCodec<long> _repeated_domain_codec
864  = pb::FieldCodec.ForInt64(26);
865  private readonly pbc::RepeatedField<long> domain_ = new pbc::RepeatedField<long>();
866  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
867  public pbc::RepeatedField<long> Domain {
868  get { return domain_; }
869  }
870 
871  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
872  public override bool Equals(object other) {
873  return Equals(other as LinearConstraintProto);
874  }
875 
876  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
877  public bool Equals(LinearConstraintProto other) {
878  if (ReferenceEquals(other, null)) {
879  return false;
880  }
881  if (ReferenceEquals(other, this)) {
882  return true;
883  }
884  if(!vars_.Equals(other.vars_)) return false;
885  if(!coeffs_.Equals(other.coeffs_)) return false;
886  if(!domain_.Equals(other.domain_)) return false;
887  return Equals(_unknownFields, other._unknownFields);
888  }
889 
890  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
891  public override int GetHashCode() {
892  int hash = 1;
893  hash ^= vars_.GetHashCode();
894  hash ^= coeffs_.GetHashCode();
895  hash ^= domain_.GetHashCode();
896  if (_unknownFields != null) {
897  hash ^= _unknownFields.GetHashCode();
898  }
899  return hash;
900  }
901 
902  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
903  public override string ToString() {
904  return pb::JsonFormatter.ToDiagnosticString(this);
905  }
906 
907  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
908  public void WriteTo(pb::CodedOutputStream output) {
909  vars_.WriteTo(output, _repeated_vars_codec);
910  coeffs_.WriteTo(output, _repeated_coeffs_codec);
911  domain_.WriteTo(output, _repeated_domain_codec);
912  if (_unknownFields != null) {
913  _unknownFields.WriteTo(output);
914  }
915  }
916 
917  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
918  public int CalculateSize() {
919  int size = 0;
920  size += vars_.CalculateSize(_repeated_vars_codec);
921  size += coeffs_.CalculateSize(_repeated_coeffs_codec);
922  size += domain_.CalculateSize(_repeated_domain_codec);
923  if (_unknownFields != null) {
924  size += _unknownFields.CalculateSize();
925  }
926  return size;
927  }
928 
929  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
930  public void MergeFrom(LinearConstraintProto other) {
931  if (other == null) {
932  return;
933  }
934  vars_.Add(other.vars_);
935  coeffs_.Add(other.coeffs_);
936  domain_.Add(other.domain_);
937  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
938  }
939 
940  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
941  public void MergeFrom(pb::CodedInputStream input) {
942  uint tag;
943  while ((tag = input.ReadTag()) != 0) {
944  switch(tag) {
945  default:
946  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
947  break;
948  case 10:
949  case 8: {
950  vars_.AddEntriesFrom(input, _repeated_vars_codec);
951  break;
952  }
953  case 18:
954  case 16: {
955  coeffs_.AddEntriesFrom(input, _repeated_coeffs_codec);
956  break;
957  }
958  case 26:
959  case 24: {
960  domain_.AddEntriesFrom(input, _repeated_domain_codec);
961  break;
962  }
963  }
964  }
965  }
966 
967  }
968 
973  public sealed partial class ElementConstraintProto : pb::IMessage<ElementConstraintProto> {
974  private static readonly pb::MessageParser<ElementConstraintProto> _parser = new pb::MessageParser<ElementConstraintProto>(() => new ElementConstraintProto());
975  private pb::UnknownFieldSet _unknownFields;
976  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
977  public static pb::MessageParser<ElementConstraintProto> Parser { get { return _parser; } }
978 
979  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
980  public static pbr::MessageDescriptor Descriptor {
981  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[5]; }
982  }
983 
984  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
985  pbr::MessageDescriptor pb::IMessage.Descriptor {
986  get { return Descriptor; }
987  }
988 
989  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
991  OnConstruction();
992  }
993 
994  partial void OnConstruction();
995 
996  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
998  index_ = other.index_;
999  target_ = other.target_;
1000  vars_ = other.vars_.Clone();
1001  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1002  }
1003 
1004  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1006  return new ElementConstraintProto(this);
1007  }
1008 
1010  public const int IndexFieldNumber = 1;
1011  private int index_;
1012  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1013  public int Index {
1014  get { return index_; }
1015  set {
1016  index_ = value;
1017  }
1018  }
1019 
1021  public const int TargetFieldNumber = 2;
1022  private int target_;
1023  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1024  public int Target {
1025  get { return target_; }
1026  set {
1027  target_ = value;
1028  }
1029  }
1030 
1032  public const int VarsFieldNumber = 3;
1033  private static readonly pb::FieldCodec<int> _repeated_vars_codec
1034  = pb::FieldCodec.ForInt32(26);
1035  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
1036  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1037  public pbc::RepeatedField<int> Vars {
1038  get { return vars_; }
1039  }
1040 
1041  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1042  public override bool Equals(object other) {
1043  return Equals(other as ElementConstraintProto);
1044  }
1045 
1046  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1047  public bool Equals(ElementConstraintProto other) {
1048  if (ReferenceEquals(other, null)) {
1049  return false;
1050  }
1051  if (ReferenceEquals(other, this)) {
1052  return true;
1053  }
1054  if (Index != other.Index) return false;
1055  if (Target != other.Target) return false;
1056  if(!vars_.Equals(other.vars_)) return false;
1057  return Equals(_unknownFields, other._unknownFields);
1058  }
1059 
1060  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1061  public override int GetHashCode() {
1062  int hash = 1;
1063  if (Index != 0) hash ^= Index.GetHashCode();
1064  if (Target != 0) hash ^= Target.GetHashCode();
1065  hash ^= vars_.GetHashCode();
1066  if (_unknownFields != null) {
1067  hash ^= _unknownFields.GetHashCode();
1068  }
1069  return hash;
1070  }
1071 
1072  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1073  public override string ToString() {
1074  return pb::JsonFormatter.ToDiagnosticString(this);
1075  }
1076 
1077  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1078  public void WriteTo(pb::CodedOutputStream output) {
1079  if (Index != 0) {
1080  output.WriteRawTag(8);
1081  output.WriteInt32(Index);
1082  }
1083  if (Target != 0) {
1084  output.WriteRawTag(16);
1085  output.WriteInt32(Target);
1086  }
1087  vars_.WriteTo(output, _repeated_vars_codec);
1088  if (_unknownFields != null) {
1089  _unknownFields.WriteTo(output);
1090  }
1091  }
1092 
1093  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1094  public int CalculateSize() {
1095  int size = 0;
1096  if (Index != 0) {
1097  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Index);
1098  }
1099  if (Target != 0) {
1100  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Target);
1101  }
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]
1110  public void MergeFrom(ElementConstraintProto other) {
1111  if (other == null) {
1112  return;
1113  }
1114  if (other.Index != 0) {
1115  Index = other.Index;
1116  }
1117  if (other.Target != 0) {
1118  Target = other.Target;
1119  }
1120  vars_.Add(other.vars_);
1121  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1122  }
1123 
1124  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1125  public void MergeFrom(pb::CodedInputStream input) {
1126  uint tag;
1127  while ((tag = input.ReadTag()) != 0) {
1128  switch(tag) {
1129  default:
1130  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1131  break;
1132  case 8: {
1133  Index = input.ReadInt32();
1134  break;
1135  }
1136  case 16: {
1137  Target = input.ReadInt32();
1138  break;
1139  }
1140  case 26:
1141  case 24: {
1142  vars_.AddEntriesFrom(input, _repeated_vars_codec);
1143  break;
1144  }
1145  }
1146  }
1147  }
1148 
1149  }
1150 
1155  public sealed partial class IntervalConstraintProto : pb::IMessage<IntervalConstraintProto> {
1156  private static readonly pb::MessageParser<IntervalConstraintProto> _parser = new pb::MessageParser<IntervalConstraintProto>(() => new IntervalConstraintProto());
1157  private pb::UnknownFieldSet _unknownFields;
1158  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1159  public static pb::MessageParser<IntervalConstraintProto> Parser { get { return _parser; } }
1160 
1161  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1162  public static pbr::MessageDescriptor Descriptor {
1163  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[6]; }
1164  }
1165 
1166  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1167  pbr::MessageDescriptor pb::IMessage.Descriptor {
1168  get { return Descriptor; }
1169  }
1170 
1171  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1173  OnConstruction();
1174  }
1175 
1176  partial void OnConstruction();
1177 
1178  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1180  start_ = other.start_;
1181  end_ = other.end_;
1182  size_ = other.size_;
1183  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1184  }
1185 
1186  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1188  return new IntervalConstraintProto(this);
1189  }
1190 
1192  public const int StartFieldNumber = 1;
1193  private int start_;
1194  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1195  public int Start {
1196  get { return start_; }
1197  set {
1198  start_ = value;
1199  }
1200  }
1201 
1203  public const int EndFieldNumber = 2;
1204  private int end_;
1205  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1206  public int End {
1207  get { return end_; }
1208  set {
1209  end_ = value;
1210  }
1211  }
1212 
1214  public const int SizeFieldNumber = 3;
1215  private int size_;
1216  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1217  public int Size {
1218  get { return size_; }
1219  set {
1220  size_ = value;
1221  }
1222  }
1223 
1224  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1225  public override bool Equals(object other) {
1226  return Equals(other as IntervalConstraintProto);
1227  }
1228 
1229  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1230  public bool Equals(IntervalConstraintProto other) {
1231  if (ReferenceEquals(other, null)) {
1232  return false;
1233  }
1234  if (ReferenceEquals(other, this)) {
1235  return true;
1236  }
1237  if (Start != other.Start) return false;
1238  if (End != other.End) return false;
1239  if (Size != other.Size) return false;
1240  return Equals(_unknownFields, other._unknownFields);
1241  }
1242 
1243  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1244  public override int GetHashCode() {
1245  int hash = 1;
1246  if (Start != 0) hash ^= Start.GetHashCode();
1247  if (End != 0) hash ^= End.GetHashCode();
1248  if (Size != 0) hash ^= Size.GetHashCode();
1249  if (_unknownFields != null) {
1250  hash ^= _unknownFields.GetHashCode();
1251  }
1252  return hash;
1253  }
1254 
1255  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1256  public override string ToString() {
1257  return pb::JsonFormatter.ToDiagnosticString(this);
1258  }
1259 
1260  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1261  public void WriteTo(pb::CodedOutputStream output) {
1262  if (Start != 0) {
1263  output.WriteRawTag(8);
1264  output.WriteInt32(Start);
1265  }
1266  if (End != 0) {
1267  output.WriteRawTag(16);
1268  output.WriteInt32(End);
1269  }
1270  if (Size != 0) {
1271  output.WriteRawTag(24);
1272  output.WriteInt32(Size);
1273  }
1274  if (_unknownFields != null) {
1275  _unknownFields.WriteTo(output);
1276  }
1277  }
1278 
1279  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1280  public int CalculateSize() {
1281  int size = 0;
1282  if (Start != 0) {
1283  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);
1284  }
1285  if (End != 0) {
1286  size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);
1287  }
1288  if (Size != 0) {
1289  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Size);
1290  }
1291  if (_unknownFields != null) {
1292  size += _unknownFields.CalculateSize();
1293  }
1294  return size;
1295  }
1296 
1297  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1298  public void MergeFrom(IntervalConstraintProto other) {
1299  if (other == null) {
1300  return;
1301  }
1302  if (other.Start != 0) {
1303  Start = other.Start;
1304  }
1305  if (other.End != 0) {
1306  End = other.End;
1307  }
1308  if (other.Size != 0) {
1309  Size = other.Size;
1310  }
1311  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1312  }
1313 
1314  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1315  public void MergeFrom(pb::CodedInputStream input) {
1316  uint tag;
1317  while ((tag = input.ReadTag()) != 0) {
1318  switch(tag) {
1319  default:
1320  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1321  break;
1322  case 8: {
1323  Start = input.ReadInt32();
1324  break;
1325  }
1326  case 16: {
1327  End = input.ReadInt32();
1328  break;
1329  }
1330  case 24: {
1331  Size = input.ReadInt32();
1332  break;
1333  }
1334  }
1335  }
1336  }
1337 
1338  }
1339 
1347  public sealed partial class NoOverlapConstraintProto : pb::IMessage<NoOverlapConstraintProto> {
1348  private static readonly pb::MessageParser<NoOverlapConstraintProto> _parser = new pb::MessageParser<NoOverlapConstraintProto>(() => new NoOverlapConstraintProto());
1349  private pb::UnknownFieldSet _unknownFields;
1350  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1351  public static pb::MessageParser<NoOverlapConstraintProto> Parser { get { return _parser; } }
1352 
1353  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1354  public static pbr::MessageDescriptor Descriptor {
1355  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[7]; }
1356  }
1357 
1358  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1359  pbr::MessageDescriptor pb::IMessage.Descriptor {
1360  get { return Descriptor; }
1361  }
1362 
1363  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1365  OnConstruction();
1366  }
1367 
1368  partial void OnConstruction();
1369 
1370  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1372  intervals_ = other.intervals_.Clone();
1373  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1374  }
1375 
1376  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1378  return new NoOverlapConstraintProto(this);
1379  }
1380 
1382  public const int IntervalsFieldNumber = 1;
1383  private static readonly pb::FieldCodec<int> _repeated_intervals_codec
1384  = pb::FieldCodec.ForInt32(10);
1385  private readonly pbc::RepeatedField<int> intervals_ = new pbc::RepeatedField<int>();
1386  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1387  public pbc::RepeatedField<int> Intervals {
1388  get { return intervals_; }
1389  }
1390 
1391  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1392  public override bool Equals(object other) {
1393  return Equals(other as NoOverlapConstraintProto);
1394  }
1395 
1396  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1397  public bool Equals(NoOverlapConstraintProto other) {
1398  if (ReferenceEquals(other, null)) {
1399  return false;
1400  }
1401  if (ReferenceEquals(other, this)) {
1402  return true;
1403  }
1404  if(!intervals_.Equals(other.intervals_)) return false;
1405  return Equals(_unknownFields, other._unknownFields);
1406  }
1407 
1408  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1409  public override int GetHashCode() {
1410  int hash = 1;
1411  hash ^= intervals_.GetHashCode();
1412  if (_unknownFields != null) {
1413  hash ^= _unknownFields.GetHashCode();
1414  }
1415  return hash;
1416  }
1417 
1418  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1419  public override string ToString() {
1420  return pb::JsonFormatter.ToDiagnosticString(this);
1421  }
1422 
1423  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1424  public void WriteTo(pb::CodedOutputStream output) {
1425  intervals_.WriteTo(output, _repeated_intervals_codec);
1426  if (_unknownFields != null) {
1427  _unknownFields.WriteTo(output);
1428  }
1429  }
1430 
1431  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1432  public int CalculateSize() {
1433  int size = 0;
1434  size += intervals_.CalculateSize(_repeated_intervals_codec);
1435  if (_unknownFields != null) {
1436  size += _unknownFields.CalculateSize();
1437  }
1438  return size;
1439  }
1440 
1441  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1443  if (other == null) {
1444  return;
1445  }
1446  intervals_.Add(other.intervals_);
1447  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1448  }
1449 
1450  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1451  public void MergeFrom(pb::CodedInputStream input) {
1452  uint tag;
1453  while ((tag = input.ReadTag()) != 0) {
1454  switch(tag) {
1455  default:
1456  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1457  break;
1458  case 10:
1459  case 8: {
1460  intervals_.AddEntriesFrom(input, _repeated_intervals_codec);
1461  break;
1462  }
1463  }
1464  }
1465  }
1466 
1467  }
1468 
1476  public sealed partial class NoOverlap2DConstraintProto : pb::IMessage<NoOverlap2DConstraintProto> {
1477  private static readonly pb::MessageParser<NoOverlap2DConstraintProto> _parser = new pb::MessageParser<NoOverlap2DConstraintProto>(() => new NoOverlap2DConstraintProto());
1478  private pb::UnknownFieldSet _unknownFields;
1479  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1480  public static pb::MessageParser<NoOverlap2DConstraintProto> Parser { get { return _parser; } }
1481 
1482  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1483  public static pbr::MessageDescriptor Descriptor {
1484  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[8]; }
1485  }
1486 
1487  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1488  pbr::MessageDescriptor pb::IMessage.Descriptor {
1489  get { return Descriptor; }
1490  }
1491 
1492  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1494  OnConstruction();
1495  }
1496 
1497  partial void OnConstruction();
1498 
1499  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1501  xIntervals_ = other.xIntervals_.Clone();
1502  yIntervals_ = other.yIntervals_.Clone();
1503  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1504  }
1505 
1506  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1508  return new NoOverlap2DConstraintProto(this);
1509  }
1510 
1512  public const int XIntervalsFieldNumber = 1;
1513  private static readonly pb::FieldCodec<int> _repeated_xIntervals_codec
1514  = pb::FieldCodec.ForInt32(10);
1515  private readonly pbc::RepeatedField<int> xIntervals_ = new pbc::RepeatedField<int>();
1516  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1517  public pbc::RepeatedField<int> XIntervals {
1518  get { return xIntervals_; }
1519  }
1520 
1522  public const int YIntervalsFieldNumber = 2;
1523  private static readonly pb::FieldCodec<int> _repeated_yIntervals_codec
1524  = pb::FieldCodec.ForInt32(18);
1525  private readonly pbc::RepeatedField<int> yIntervals_ = new pbc::RepeatedField<int>();
1529  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1530  public pbc::RepeatedField<int> YIntervals {
1531  get { return yIntervals_; }
1532  }
1533 
1534  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1535  public override bool Equals(object other) {
1536  return Equals(other as NoOverlap2DConstraintProto);
1537  }
1538 
1539  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1540  public bool Equals(NoOverlap2DConstraintProto other) {
1541  if (ReferenceEquals(other, null)) {
1542  return false;
1543  }
1544  if (ReferenceEquals(other, this)) {
1545  return true;
1546  }
1547  if(!xIntervals_.Equals(other.xIntervals_)) return false;
1548  if(!yIntervals_.Equals(other.yIntervals_)) return false;
1549  return Equals(_unknownFields, other._unknownFields);
1550  }
1551 
1552  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1553  public override int GetHashCode() {
1554  int hash = 1;
1555  hash ^= xIntervals_.GetHashCode();
1556  hash ^= yIntervals_.GetHashCode();
1557  if (_unknownFields != null) {
1558  hash ^= _unknownFields.GetHashCode();
1559  }
1560  return hash;
1561  }
1562 
1563  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1564  public override string ToString() {
1565  return pb::JsonFormatter.ToDiagnosticString(this);
1566  }
1567 
1568  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1569  public void WriteTo(pb::CodedOutputStream output) {
1570  xIntervals_.WriteTo(output, _repeated_xIntervals_codec);
1571  yIntervals_.WriteTo(output, _repeated_yIntervals_codec);
1572  if (_unknownFields != null) {
1573  _unknownFields.WriteTo(output);
1574  }
1575  }
1576 
1577  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1578  public int CalculateSize() {
1579  int size = 0;
1580  size += xIntervals_.CalculateSize(_repeated_xIntervals_codec);
1581  size += yIntervals_.CalculateSize(_repeated_yIntervals_codec);
1582  if (_unknownFields != null) {
1583  size += _unknownFields.CalculateSize();
1584  }
1585  return size;
1586  }
1587 
1588  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1590  if (other == null) {
1591  return;
1592  }
1593  xIntervals_.Add(other.xIntervals_);
1594  yIntervals_.Add(other.yIntervals_);
1595  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1596  }
1597 
1598  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1599  public void MergeFrom(pb::CodedInputStream input) {
1600  uint tag;
1601  while ((tag = input.ReadTag()) != 0) {
1602  switch(tag) {
1603  default:
1604  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1605  break;
1606  case 10:
1607  case 8: {
1608  xIntervals_.AddEntriesFrom(input, _repeated_xIntervals_codec);
1609  break;
1610  }
1611  case 18:
1612  case 16: {
1613  yIntervals_.AddEntriesFrom(input, _repeated_yIntervals_codec);
1614  break;
1615  }
1616  }
1617  }
1618  }
1619 
1620  }
1621 
1628  public sealed partial class CumulativeConstraintProto : pb::IMessage<CumulativeConstraintProto> {
1629  private static readonly pb::MessageParser<CumulativeConstraintProto> _parser = new pb::MessageParser<CumulativeConstraintProto>(() => new CumulativeConstraintProto());
1630  private pb::UnknownFieldSet _unknownFields;
1631  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1632  public static pb::MessageParser<CumulativeConstraintProto> Parser { get { return _parser; } }
1633 
1634  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1635  public static pbr::MessageDescriptor Descriptor {
1636  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[9]; }
1637  }
1638 
1639  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1640  pbr::MessageDescriptor pb::IMessage.Descriptor {
1641  get { return Descriptor; }
1642  }
1643 
1644  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1646  OnConstruction();
1647  }
1648 
1649  partial void OnConstruction();
1650 
1651  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1653  capacity_ = other.capacity_;
1654  intervals_ = other.intervals_.Clone();
1655  demands_ = other.demands_.Clone();
1656  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1657  }
1658 
1659  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1661  return new CumulativeConstraintProto(this);
1662  }
1663 
1665  public const int CapacityFieldNumber = 1;
1666  private int capacity_;
1667  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1668  public int Capacity {
1669  get { return capacity_; }
1670  set {
1671  capacity_ = value;
1672  }
1673  }
1674 
1676  public const int IntervalsFieldNumber = 2;
1677  private static readonly pb::FieldCodec<int> _repeated_intervals_codec
1678  = pb::FieldCodec.ForInt32(18);
1679  private readonly pbc::RepeatedField<int> intervals_ = new pbc::RepeatedField<int>();
1680  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1681  public pbc::RepeatedField<int> Intervals {
1682  get { return intervals_; }
1683  }
1684 
1686  public const int DemandsFieldNumber = 3;
1687  private static readonly pb::FieldCodec<int> _repeated_demands_codec
1688  = pb::FieldCodec.ForInt32(26);
1689  private readonly pbc::RepeatedField<int> demands_ = new pbc::RepeatedField<int>();
1693  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1694  public pbc::RepeatedField<int> Demands {
1695  get { return demands_; }
1696  }
1697 
1698  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1699  public override bool Equals(object other) {
1700  return Equals(other as CumulativeConstraintProto);
1701  }
1702 
1703  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1704  public bool Equals(CumulativeConstraintProto other) {
1705  if (ReferenceEquals(other, null)) {
1706  return false;
1707  }
1708  if (ReferenceEquals(other, this)) {
1709  return true;
1710  }
1711  if (Capacity != other.Capacity) return false;
1712  if(!intervals_.Equals(other.intervals_)) return false;
1713  if(!demands_.Equals(other.demands_)) return false;
1714  return Equals(_unknownFields, other._unknownFields);
1715  }
1716 
1717  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1718  public override int GetHashCode() {
1719  int hash = 1;
1720  if (Capacity != 0) hash ^= Capacity.GetHashCode();
1721  hash ^= intervals_.GetHashCode();
1722  hash ^= demands_.GetHashCode();
1723  if (_unknownFields != null) {
1724  hash ^= _unknownFields.GetHashCode();
1725  }
1726  return hash;
1727  }
1728 
1729  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1730  public override string ToString() {
1731  return pb::JsonFormatter.ToDiagnosticString(this);
1732  }
1733 
1734  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1735  public void WriteTo(pb::CodedOutputStream output) {
1736  if (Capacity != 0) {
1737  output.WriteRawTag(8);
1738  output.WriteInt32(Capacity);
1739  }
1740  intervals_.WriteTo(output, _repeated_intervals_codec);
1741  demands_.WriteTo(output, _repeated_demands_codec);
1742  if (_unknownFields != null) {
1743  _unknownFields.WriteTo(output);
1744  }
1745  }
1746 
1747  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1748  public int CalculateSize() {
1749  int size = 0;
1750  if (Capacity != 0) {
1751  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Capacity);
1752  }
1753  size += intervals_.CalculateSize(_repeated_intervals_codec);
1754  size += demands_.CalculateSize(_repeated_demands_codec);
1755  if (_unknownFields != null) {
1756  size += _unknownFields.CalculateSize();
1757  }
1758  return size;
1759  }
1760 
1761  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1763  if (other == null) {
1764  return;
1765  }
1766  if (other.Capacity != 0) {
1767  Capacity = other.Capacity;
1768  }
1769  intervals_.Add(other.intervals_);
1770  demands_.Add(other.demands_);
1771  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
1772  }
1773 
1774  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1775  public void MergeFrom(pb::CodedInputStream input) {
1776  uint tag;
1777  while ((tag = input.ReadTag()) != 0) {
1778  switch(tag) {
1779  default:
1780  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
1781  break;
1782  case 8: {
1783  Capacity = input.ReadInt32();
1784  break;
1785  }
1786  case 18:
1787  case 16: {
1788  intervals_.AddEntriesFrom(input, _repeated_intervals_codec);
1789  break;
1790  }
1791  case 26:
1792  case 24: {
1793  demands_.AddEntriesFrom(input, _repeated_demands_codec);
1794  break;
1795  }
1796  }
1797  }
1798  }
1799 
1800  }
1801 
1818  public sealed partial class ReservoirConstraintProto : pb::IMessage<ReservoirConstraintProto> {
1819  private static readonly pb::MessageParser<ReservoirConstraintProto> _parser = new pb::MessageParser<ReservoirConstraintProto>(() => new ReservoirConstraintProto());
1820  private pb::UnknownFieldSet _unknownFields;
1821  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1822  public static pb::MessageParser<ReservoirConstraintProto> Parser { get { return _parser; } }
1823 
1824  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1825  public static pbr::MessageDescriptor Descriptor {
1826  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[10]; }
1827  }
1828 
1829  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1830  pbr::MessageDescriptor pb::IMessage.Descriptor {
1831  get { return Descriptor; }
1832  }
1833 
1834  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1836  OnConstruction();
1837  }
1838 
1839  partial void OnConstruction();
1840 
1841  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1843  minLevel_ = other.minLevel_;
1844  maxLevel_ = other.maxLevel_;
1845  times_ = other.times_.Clone();
1846  demands_ = other.demands_.Clone();
1847  actives_ = other.actives_.Clone();
1848  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
1849  }
1850 
1851  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1853  return new ReservoirConstraintProto(this);
1854  }
1855 
1857  public const int MinLevelFieldNumber = 1;
1858  private long minLevel_;
1859  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1860  public long MinLevel {
1861  get { return minLevel_; }
1862  set {
1863  minLevel_ = value;
1864  }
1865  }
1866 
1868  public const int MaxLevelFieldNumber = 2;
1869  private long maxLevel_;
1870  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1871  public long MaxLevel {
1872  get { return maxLevel_; }
1873  set {
1874  maxLevel_ = value;
1875  }
1876  }
1877 
1879  public const int TimesFieldNumber = 3;
1880  private static readonly pb::FieldCodec<int> _repeated_times_codec
1881  = pb::FieldCodec.ForInt32(26);
1882  private readonly pbc::RepeatedField<int> times_ = new pbc::RepeatedField<int>();
1886  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1887  public pbc::RepeatedField<int> Times {
1888  get { return times_; }
1889  }
1890 
1892  public const int DemandsFieldNumber = 4;
1893  private static readonly pb::FieldCodec<long> _repeated_demands_codec
1894  = pb::FieldCodec.ForInt64(34);
1895  private readonly pbc::RepeatedField<long> demands_ = new pbc::RepeatedField<long>();
1899  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1900  public pbc::RepeatedField<long> Demands {
1901  get { return demands_; }
1902  }
1903 
1905  public const int ActivesFieldNumber = 5;
1906  private static readonly pb::FieldCodec<int> _repeated_actives_codec
1907  = pb::FieldCodec.ForInt32(42);
1908  private readonly pbc::RepeatedField<int> actives_ = new pbc::RepeatedField<int>();
1912  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1913  public pbc::RepeatedField<int> Actives {
1914  get { return actives_; }
1915  }
1916 
1917  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1918  public override bool Equals(object other) {
1919  return Equals(other as ReservoirConstraintProto);
1920  }
1921 
1922  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1923  public bool Equals(ReservoirConstraintProto other) {
1924  if (ReferenceEquals(other, null)) {
1925  return false;
1926  }
1927  if (ReferenceEquals(other, this)) {
1928  return true;
1929  }
1930  if (MinLevel != other.MinLevel) return false;
1931  if (MaxLevel != other.MaxLevel) return false;
1932  if(!times_.Equals(other.times_)) return false;
1933  if(!demands_.Equals(other.demands_)) return false;
1934  if(!actives_.Equals(other.actives_)) return false;
1935  return Equals(_unknownFields, other._unknownFields);
1936  }
1937 
1938  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1939  public override int GetHashCode() {
1940  int hash = 1;
1941  if (MinLevel != 0L) hash ^= MinLevel.GetHashCode();
1942  if (MaxLevel != 0L) hash ^= MaxLevel.GetHashCode();
1943  hash ^= times_.GetHashCode();
1944  hash ^= demands_.GetHashCode();
1945  hash ^= actives_.GetHashCode();
1946  if (_unknownFields != null) {
1947  hash ^= _unknownFields.GetHashCode();
1948  }
1949  return hash;
1950  }
1951 
1952  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1953  public override string ToString() {
1954  return pb::JsonFormatter.ToDiagnosticString(this);
1955  }
1956 
1957  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1958  public void WriteTo(pb::CodedOutputStream output) {
1959  if (MinLevel != 0L) {
1960  output.WriteRawTag(8);
1961  output.WriteInt64(MinLevel);
1962  }
1963  if (MaxLevel != 0L) {
1964  output.WriteRawTag(16);
1965  output.WriteInt64(MaxLevel);
1966  }
1967  times_.WriteTo(output, _repeated_times_codec);
1968  demands_.WriteTo(output, _repeated_demands_codec);
1969  actives_.WriteTo(output, _repeated_actives_codec);
1970  if (_unknownFields != null) {
1971  _unknownFields.WriteTo(output);
1972  }
1973  }
1974 
1975  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1976  public int CalculateSize() {
1977  int size = 0;
1978  if (MinLevel != 0L) {
1979  size += 1 + pb::CodedOutputStream.ComputeInt64Size(MinLevel);
1980  }
1981  if (MaxLevel != 0L) {
1982  size += 1 + pb::CodedOutputStream.ComputeInt64Size(MaxLevel);
1983  }
1984  size += times_.CalculateSize(_repeated_times_codec);
1985  size += demands_.CalculateSize(_repeated_demands_codec);
1986  size += actives_.CalculateSize(_repeated_actives_codec);
1987  if (_unknownFields != null) {
1988  size += _unknownFields.CalculateSize();
1989  }
1990  return size;
1991  }
1992 
1993  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
1995  if (other == null) {
1996  return;
1997  }
1998  if (other.MinLevel != 0L) {
1999  MinLevel = other.MinLevel;
2000  }
2001  if (other.MaxLevel != 0L) {
2002  MaxLevel = other.MaxLevel;
2003  }
2004  times_.Add(other.times_);
2005  demands_.Add(other.demands_);
2006  actives_.Add(other.actives_);
2007  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2008  }
2009 
2010  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2011  public void MergeFrom(pb::CodedInputStream input) {
2012  uint tag;
2013  while ((tag = input.ReadTag()) != 0) {
2014  switch(tag) {
2015  default:
2016  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2017  break;
2018  case 8: {
2019  MinLevel = input.ReadInt64();
2020  break;
2021  }
2022  case 16: {
2023  MaxLevel = input.ReadInt64();
2024  break;
2025  }
2026  case 26:
2027  case 24: {
2028  times_.AddEntriesFrom(input, _repeated_times_codec);
2029  break;
2030  }
2031  case 34:
2032  case 32: {
2033  demands_.AddEntriesFrom(input, _repeated_demands_codec);
2034  break;
2035  }
2036  case 42:
2037  case 40: {
2038  actives_.AddEntriesFrom(input, _repeated_actives_codec);
2039  break;
2040  }
2041  }
2042  }
2043  }
2044 
2045  }
2046 
2057  public sealed partial class CircuitConstraintProto : pb::IMessage<CircuitConstraintProto> {
2058  private static readonly pb::MessageParser<CircuitConstraintProto> _parser = new pb::MessageParser<CircuitConstraintProto>(() => new CircuitConstraintProto());
2059  private pb::UnknownFieldSet _unknownFields;
2060  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2061  public static pb::MessageParser<CircuitConstraintProto> Parser { get { return _parser; } }
2062 
2063  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2064  public static pbr::MessageDescriptor Descriptor {
2065  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[11]; }
2066  }
2067 
2068  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2069  pbr::MessageDescriptor pb::IMessage.Descriptor {
2070  get { return Descriptor; }
2071  }
2072 
2073  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2075  OnConstruction();
2076  }
2077 
2078  partial void OnConstruction();
2079 
2080  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2082  tails_ = other.tails_.Clone();
2083  heads_ = other.heads_.Clone();
2084  literals_ = other.literals_.Clone();
2085  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2086  }
2087 
2088  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2090  return new CircuitConstraintProto(this);
2091  }
2092 
2094  public const int TailsFieldNumber = 3;
2095  private static readonly pb::FieldCodec<int> _repeated_tails_codec
2096  = pb::FieldCodec.ForInt32(26);
2097  private readonly pbc::RepeatedField<int> tails_ = new pbc::RepeatedField<int>();
2098  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2099  public pbc::RepeatedField<int> Tails {
2100  get { return tails_; }
2101  }
2102 
2104  public const int HeadsFieldNumber = 4;
2105  private static readonly pb::FieldCodec<int> _repeated_heads_codec
2106  = pb::FieldCodec.ForInt32(34);
2107  private readonly pbc::RepeatedField<int> heads_ = new pbc::RepeatedField<int>();
2108  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2109  public pbc::RepeatedField<int> Heads {
2110  get { return heads_; }
2111  }
2112 
2114  public const int LiteralsFieldNumber = 5;
2115  private static readonly pb::FieldCodec<int> _repeated_literals_codec
2116  = pb::FieldCodec.ForInt32(42);
2117  private readonly pbc::RepeatedField<int> literals_ = new pbc::RepeatedField<int>();
2118  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2119  public pbc::RepeatedField<int> Literals {
2120  get { return literals_; }
2121  }
2122 
2123  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2124  public override bool Equals(object other) {
2125  return Equals(other as CircuitConstraintProto);
2126  }
2127 
2128  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2129  public bool Equals(CircuitConstraintProto other) {
2130  if (ReferenceEquals(other, null)) {
2131  return false;
2132  }
2133  if (ReferenceEquals(other, this)) {
2134  return true;
2135  }
2136  if(!tails_.Equals(other.tails_)) return false;
2137  if(!heads_.Equals(other.heads_)) return false;
2138  if(!literals_.Equals(other.literals_)) return false;
2139  return Equals(_unknownFields, other._unknownFields);
2140  }
2141 
2142  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2143  public override int GetHashCode() {
2144  int hash = 1;
2145  hash ^= tails_.GetHashCode();
2146  hash ^= heads_.GetHashCode();
2147  hash ^= literals_.GetHashCode();
2148  if (_unknownFields != null) {
2149  hash ^= _unknownFields.GetHashCode();
2150  }
2151  return hash;
2152  }
2153 
2154  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2155  public override string ToString() {
2156  return pb::JsonFormatter.ToDiagnosticString(this);
2157  }
2158 
2159  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2160  public void WriteTo(pb::CodedOutputStream output) {
2161  tails_.WriteTo(output, _repeated_tails_codec);
2162  heads_.WriteTo(output, _repeated_heads_codec);
2163  literals_.WriteTo(output, _repeated_literals_codec);
2164  if (_unknownFields != null) {
2165  _unknownFields.WriteTo(output);
2166  }
2167  }
2168 
2169  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2170  public int CalculateSize() {
2171  int size = 0;
2172  size += tails_.CalculateSize(_repeated_tails_codec);
2173  size += heads_.CalculateSize(_repeated_heads_codec);
2174  size += literals_.CalculateSize(_repeated_literals_codec);
2175  if (_unknownFields != null) {
2176  size += _unknownFields.CalculateSize();
2177  }
2178  return size;
2179  }
2180 
2181  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2182  public void MergeFrom(CircuitConstraintProto other) {
2183  if (other == null) {
2184  return;
2185  }
2186  tails_.Add(other.tails_);
2187  heads_.Add(other.heads_);
2188  literals_.Add(other.literals_);
2189  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2190  }
2191 
2192  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2193  public void MergeFrom(pb::CodedInputStream input) {
2194  uint tag;
2195  while ((tag = input.ReadTag()) != 0) {
2196  switch(tag) {
2197  default:
2198  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2199  break;
2200  case 26:
2201  case 24: {
2202  tails_.AddEntriesFrom(input, _repeated_tails_codec);
2203  break;
2204  }
2205  case 34:
2206  case 32: {
2207  heads_.AddEntriesFrom(input, _repeated_heads_codec);
2208  break;
2209  }
2210  case 42:
2211  case 40: {
2212  literals_.AddEntriesFrom(input, _repeated_literals_codec);
2213  break;
2214  }
2215  }
2216  }
2217  }
2218 
2219  }
2220 
2238  public sealed partial class RoutesConstraintProto : pb::IMessage<RoutesConstraintProto> {
2239  private static readonly pb::MessageParser<RoutesConstraintProto> _parser = new pb::MessageParser<RoutesConstraintProto>(() => new RoutesConstraintProto());
2240  private pb::UnknownFieldSet _unknownFields;
2241  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2242  public static pb::MessageParser<RoutesConstraintProto> Parser { get { return _parser; } }
2243 
2244  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2245  public static pbr::MessageDescriptor Descriptor {
2246  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[12]; }
2247  }
2248 
2249  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2250  pbr::MessageDescriptor pb::IMessage.Descriptor {
2251  get { return Descriptor; }
2252  }
2253 
2254  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2256  OnConstruction();
2257  }
2258 
2259  partial void OnConstruction();
2260 
2261  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2263  tails_ = other.tails_.Clone();
2264  heads_ = other.heads_.Clone();
2265  literals_ = other.literals_.Clone();
2266  demands_ = other.demands_.Clone();
2267  capacity_ = other.capacity_;
2268  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2269  }
2270 
2271  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2273  return new RoutesConstraintProto(this);
2274  }
2275 
2277  public const int TailsFieldNumber = 1;
2278  private static readonly pb::FieldCodec<int> _repeated_tails_codec
2279  = pb::FieldCodec.ForInt32(10);
2280  private readonly pbc::RepeatedField<int> tails_ = new pbc::RepeatedField<int>();
2281  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2282  public pbc::RepeatedField<int> Tails {
2283  get { return tails_; }
2284  }
2285 
2287  public const int HeadsFieldNumber = 2;
2288  private static readonly pb::FieldCodec<int> _repeated_heads_codec
2289  = pb::FieldCodec.ForInt32(18);
2290  private readonly pbc::RepeatedField<int> heads_ = new pbc::RepeatedField<int>();
2291  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2292  public pbc::RepeatedField<int> Heads {
2293  get { return heads_; }
2294  }
2295 
2297  public const int LiteralsFieldNumber = 3;
2298  private static readonly pb::FieldCodec<int> _repeated_literals_codec
2299  = pb::FieldCodec.ForInt32(26);
2300  private readonly pbc::RepeatedField<int> literals_ = new pbc::RepeatedField<int>();
2301  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2302  public pbc::RepeatedField<int> Literals {
2303  get { return literals_; }
2304  }
2305 
2307  public const int DemandsFieldNumber = 4;
2308  private static readonly pb::FieldCodec<int> _repeated_demands_codec
2309  = pb::FieldCodec.ForInt32(34);
2310  private readonly pbc::RepeatedField<int> demands_ = new pbc::RepeatedField<int>();
2316  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2317  public pbc::RepeatedField<int> Demands {
2318  get { return demands_; }
2319  }
2320 
2322  public const int CapacityFieldNumber = 5;
2323  private long capacity_;
2324  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2325  public long Capacity {
2326  get { return capacity_; }
2327  set {
2328  capacity_ = value;
2329  }
2330  }
2331 
2332  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2333  public override bool Equals(object other) {
2334  return Equals(other as RoutesConstraintProto);
2335  }
2336 
2337  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2338  public bool Equals(RoutesConstraintProto other) {
2339  if (ReferenceEquals(other, null)) {
2340  return false;
2341  }
2342  if (ReferenceEquals(other, this)) {
2343  return true;
2344  }
2345  if(!tails_.Equals(other.tails_)) return false;
2346  if(!heads_.Equals(other.heads_)) return false;
2347  if(!literals_.Equals(other.literals_)) return false;
2348  if(!demands_.Equals(other.demands_)) return false;
2349  if (Capacity != other.Capacity) return false;
2350  return Equals(_unknownFields, other._unknownFields);
2351  }
2352 
2353  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2354  public override int GetHashCode() {
2355  int hash = 1;
2356  hash ^= tails_.GetHashCode();
2357  hash ^= heads_.GetHashCode();
2358  hash ^= literals_.GetHashCode();
2359  hash ^= demands_.GetHashCode();
2360  if (Capacity != 0L) hash ^= Capacity.GetHashCode();
2361  if (_unknownFields != null) {
2362  hash ^= _unknownFields.GetHashCode();
2363  }
2364  return hash;
2365  }
2366 
2367  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2368  public override string ToString() {
2369  return pb::JsonFormatter.ToDiagnosticString(this);
2370  }
2371 
2372  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2373  public void WriteTo(pb::CodedOutputStream output) {
2374  tails_.WriteTo(output, _repeated_tails_codec);
2375  heads_.WriteTo(output, _repeated_heads_codec);
2376  literals_.WriteTo(output, _repeated_literals_codec);
2377  demands_.WriteTo(output, _repeated_demands_codec);
2378  if (Capacity != 0L) {
2379  output.WriteRawTag(40);
2380  output.WriteInt64(Capacity);
2381  }
2382  if (_unknownFields != null) {
2383  _unknownFields.WriteTo(output);
2384  }
2385  }
2386 
2387  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2388  public int CalculateSize() {
2389  int size = 0;
2390  size += tails_.CalculateSize(_repeated_tails_codec);
2391  size += heads_.CalculateSize(_repeated_heads_codec);
2392  size += literals_.CalculateSize(_repeated_literals_codec);
2393  size += demands_.CalculateSize(_repeated_demands_codec);
2394  if (Capacity != 0L) {
2395  size += 1 + pb::CodedOutputStream.ComputeInt64Size(Capacity);
2396  }
2397  if (_unknownFields != null) {
2398  size += _unknownFields.CalculateSize();
2399  }
2400  return size;
2401  }
2402 
2403  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2404  public void MergeFrom(RoutesConstraintProto other) {
2405  if (other == null) {
2406  return;
2407  }
2408  tails_.Add(other.tails_);
2409  heads_.Add(other.heads_);
2410  literals_.Add(other.literals_);
2411  demands_.Add(other.demands_);
2412  if (other.Capacity != 0L) {
2413  Capacity = other.Capacity;
2414  }
2415  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2416  }
2417 
2418  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2419  public void MergeFrom(pb::CodedInputStream input) {
2420  uint tag;
2421  while ((tag = input.ReadTag()) != 0) {
2422  switch(tag) {
2423  default:
2424  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2425  break;
2426  case 10:
2427  case 8: {
2428  tails_.AddEntriesFrom(input, _repeated_tails_codec);
2429  break;
2430  }
2431  case 18:
2432  case 16: {
2433  heads_.AddEntriesFrom(input, _repeated_heads_codec);
2434  break;
2435  }
2436  case 26:
2437  case 24: {
2438  literals_.AddEntriesFrom(input, _repeated_literals_codec);
2439  break;
2440  }
2441  case 34:
2442  case 32: {
2443  demands_.AddEntriesFrom(input, _repeated_demands_codec);
2444  break;
2445  }
2446  case 40: {
2447  Capacity = input.ReadInt64();
2448  break;
2449  }
2450  }
2451  }
2452  }
2453 
2454  }
2455 
2461  public sealed partial class CircuitCoveringConstraintProto : pb::IMessage<CircuitCoveringConstraintProto> {
2462  private static readonly pb::MessageParser<CircuitCoveringConstraintProto> _parser = new pb::MessageParser<CircuitCoveringConstraintProto>(() => new CircuitCoveringConstraintProto());
2463  private pb::UnknownFieldSet _unknownFields;
2464  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2465  public static pb::MessageParser<CircuitCoveringConstraintProto> Parser { get { return _parser; } }
2466 
2467  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2468  public static pbr::MessageDescriptor Descriptor {
2469  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[13]; }
2470  }
2471 
2472  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2473  pbr::MessageDescriptor pb::IMessage.Descriptor {
2474  get { return Descriptor; }
2475  }
2476 
2477  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2479  OnConstruction();
2480  }
2481 
2482  partial void OnConstruction();
2483 
2484  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2486  nexts_ = other.nexts_.Clone();
2487  distinguishedNodes_ = other.distinguishedNodes_.Clone();
2488  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2489  }
2490 
2491  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2493  return new CircuitCoveringConstraintProto(this);
2494  }
2495 
2497  public const int NextsFieldNumber = 1;
2498  private static readonly pb::FieldCodec<int> _repeated_nexts_codec
2499  = pb::FieldCodec.ForInt32(10);
2500  private readonly pbc::RepeatedField<int> nexts_ = new pbc::RepeatedField<int>();
2501  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2502  public pbc::RepeatedField<int> Nexts {
2503  get { return nexts_; }
2504  }
2505 
2507  public const int DistinguishedNodesFieldNumber = 2;
2508  private static readonly pb::FieldCodec<long> _repeated_distinguishedNodes_codec
2509  = pb::FieldCodec.ForInt64(18);
2510  private readonly pbc::RepeatedField<long> distinguishedNodes_ = new pbc::RepeatedField<long>();
2511  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2512  public pbc::RepeatedField<long> DistinguishedNodes {
2513  get { return distinguishedNodes_; }
2514  }
2515 
2516  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2517  public override bool Equals(object other) {
2518  return Equals(other as CircuitCoveringConstraintProto);
2519  }
2520 
2521  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2523  if (ReferenceEquals(other, null)) {
2524  return false;
2525  }
2526  if (ReferenceEquals(other, this)) {
2527  return true;
2528  }
2529  if(!nexts_.Equals(other.nexts_)) return false;
2530  if(!distinguishedNodes_.Equals(other.distinguishedNodes_)) return false;
2531  return Equals(_unknownFields, other._unknownFields);
2532  }
2533 
2534  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2535  public override int GetHashCode() {
2536  int hash = 1;
2537  hash ^= nexts_.GetHashCode();
2538  hash ^= distinguishedNodes_.GetHashCode();
2539  if (_unknownFields != null) {
2540  hash ^= _unknownFields.GetHashCode();
2541  }
2542  return hash;
2543  }
2544 
2545  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2546  public override string ToString() {
2547  return pb::JsonFormatter.ToDiagnosticString(this);
2548  }
2549 
2550  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2551  public void WriteTo(pb::CodedOutputStream output) {
2552  nexts_.WriteTo(output, _repeated_nexts_codec);
2553  distinguishedNodes_.WriteTo(output, _repeated_distinguishedNodes_codec);
2554  if (_unknownFields != null) {
2555  _unknownFields.WriteTo(output);
2556  }
2557  }
2558 
2559  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2560  public int CalculateSize() {
2561  int size = 0;
2562  size += nexts_.CalculateSize(_repeated_nexts_codec);
2563  size += distinguishedNodes_.CalculateSize(_repeated_distinguishedNodes_codec);
2564  if (_unknownFields != null) {
2565  size += _unknownFields.CalculateSize();
2566  }
2567  return size;
2568  }
2569 
2570  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2572  if (other == null) {
2573  return;
2574  }
2575  nexts_.Add(other.nexts_);
2576  distinguishedNodes_.Add(other.distinguishedNodes_);
2577  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2578  }
2579 
2580  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2581  public void MergeFrom(pb::CodedInputStream input) {
2582  uint tag;
2583  while ((tag = input.ReadTag()) != 0) {
2584  switch(tag) {
2585  default:
2586  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2587  break;
2588  case 10:
2589  case 8: {
2590  nexts_.AddEntriesFrom(input, _repeated_nexts_codec);
2591  break;
2592  }
2593  case 18:
2594  case 16: {
2595  distinguishedNodes_.AddEntriesFrom(input, _repeated_distinguishedNodes_codec);
2596  break;
2597  }
2598  }
2599  }
2600  }
2601 
2602  }
2603 
2609  public sealed partial class TableConstraintProto : pb::IMessage<TableConstraintProto> {
2610  private static readonly pb::MessageParser<TableConstraintProto> _parser = new pb::MessageParser<TableConstraintProto>(() => new TableConstraintProto());
2611  private pb::UnknownFieldSet _unknownFields;
2612  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2613  public static pb::MessageParser<TableConstraintProto> Parser { get { return _parser; } }
2614 
2615  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2616  public static pbr::MessageDescriptor Descriptor {
2617  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[14]; }
2618  }
2619 
2620  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2621  pbr::MessageDescriptor pb::IMessage.Descriptor {
2622  get { return Descriptor; }
2623  }
2624 
2625  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2627  OnConstruction();
2628  }
2629 
2630  partial void OnConstruction();
2631 
2632  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2634  vars_ = other.vars_.Clone();
2635  values_ = other.values_.Clone();
2636  negated_ = other.negated_;
2637  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2638  }
2639 
2640  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2642  return new TableConstraintProto(this);
2643  }
2644 
2646  public const int VarsFieldNumber = 1;
2647  private static readonly pb::FieldCodec<int> _repeated_vars_codec
2648  = pb::FieldCodec.ForInt32(10);
2649  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
2650  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2651  public pbc::RepeatedField<int> Vars {
2652  get { return vars_; }
2653  }
2654 
2656  public const int ValuesFieldNumber = 2;
2657  private static readonly pb::FieldCodec<long> _repeated_values_codec
2658  = pb::FieldCodec.ForInt64(18);
2659  private readonly pbc::RepeatedField<long> values_ = new pbc::RepeatedField<long>();
2660  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2661  public pbc::RepeatedField<long> Values {
2662  get { return values_; }
2663  }
2664 
2666  public const int NegatedFieldNumber = 3;
2667  private bool negated_;
2672  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2673  public bool Negated {
2674  get { return negated_; }
2675  set {
2676  negated_ = value;
2677  }
2678  }
2679 
2680  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2681  public override bool Equals(object other) {
2682  return Equals(other as TableConstraintProto);
2683  }
2684 
2685  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2686  public bool Equals(TableConstraintProto other) {
2687  if (ReferenceEquals(other, null)) {
2688  return false;
2689  }
2690  if (ReferenceEquals(other, this)) {
2691  return true;
2692  }
2693  if(!vars_.Equals(other.vars_)) return false;
2694  if(!values_.Equals(other.values_)) return false;
2695  if (Negated != other.Negated) return false;
2696  return Equals(_unknownFields, other._unknownFields);
2697  }
2698 
2699  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2700  public override int GetHashCode() {
2701  int hash = 1;
2702  hash ^= vars_.GetHashCode();
2703  hash ^= values_.GetHashCode();
2704  if (Negated != false) hash ^= Negated.GetHashCode();
2705  if (_unknownFields != null) {
2706  hash ^= _unknownFields.GetHashCode();
2707  }
2708  return hash;
2709  }
2710 
2711  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2712  public override string ToString() {
2713  return pb::JsonFormatter.ToDiagnosticString(this);
2714  }
2715 
2716  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2717  public void WriteTo(pb::CodedOutputStream output) {
2718  vars_.WriteTo(output, _repeated_vars_codec);
2719  values_.WriteTo(output, _repeated_values_codec);
2720  if (Negated != false) {
2721  output.WriteRawTag(24);
2722  output.WriteBool(Negated);
2723  }
2724  if (_unknownFields != null) {
2725  _unknownFields.WriteTo(output);
2726  }
2727  }
2728 
2729  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2730  public int CalculateSize() {
2731  int size = 0;
2732  size += vars_.CalculateSize(_repeated_vars_codec);
2733  size += values_.CalculateSize(_repeated_values_codec);
2734  if (Negated != false) {
2735  size += 1 + 1;
2736  }
2737  if (_unknownFields != null) {
2738  size += _unknownFields.CalculateSize();
2739  }
2740  return size;
2741  }
2742 
2743  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2744  public void MergeFrom(TableConstraintProto other) {
2745  if (other == null) {
2746  return;
2747  }
2748  vars_.Add(other.vars_);
2749  values_.Add(other.values_);
2750  if (other.Negated != false) {
2751  Negated = other.Negated;
2752  }
2753  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2754  }
2755 
2756  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2757  public void MergeFrom(pb::CodedInputStream input) {
2758  uint tag;
2759  while ((tag = input.ReadTag()) != 0) {
2760  switch(tag) {
2761  default:
2762  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2763  break;
2764  case 10:
2765  case 8: {
2766  vars_.AddEntriesFrom(input, _repeated_vars_codec);
2767  break;
2768  }
2769  case 18:
2770  case 16: {
2771  values_.AddEntriesFrom(input, _repeated_values_codec);
2772  break;
2773  }
2774  case 24: {
2775  Negated = input.ReadBool();
2776  break;
2777  }
2778  }
2779  }
2780  }
2781 
2782  }
2783 
2788  public sealed partial class InverseConstraintProto : pb::IMessage<InverseConstraintProto> {
2789  private static readonly pb::MessageParser<InverseConstraintProto> _parser = new pb::MessageParser<InverseConstraintProto>(() => new InverseConstraintProto());
2790  private pb::UnknownFieldSet _unknownFields;
2791  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2792  public static pb::MessageParser<InverseConstraintProto> Parser { get { return _parser; } }
2793 
2794  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2795  public static pbr::MessageDescriptor Descriptor {
2796  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[15]; }
2797  }
2798 
2799  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2800  pbr::MessageDescriptor pb::IMessage.Descriptor {
2801  get { return Descriptor; }
2802  }
2803 
2804  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2806  OnConstruction();
2807  }
2808 
2809  partial void OnConstruction();
2810 
2811  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2813  fDirect_ = other.fDirect_.Clone();
2814  fInverse_ = other.fInverse_.Clone();
2815  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2816  }
2817 
2818  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2820  return new InverseConstraintProto(this);
2821  }
2822 
2824  public const int FDirectFieldNumber = 1;
2825  private static readonly pb::FieldCodec<int> _repeated_fDirect_codec
2826  = pb::FieldCodec.ForInt32(10);
2827  private readonly pbc::RepeatedField<int> fDirect_ = new pbc::RepeatedField<int>();
2828  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2829  public pbc::RepeatedField<int> FDirect {
2830  get { return fDirect_; }
2831  }
2832 
2834  public const int FInverseFieldNumber = 2;
2835  private static readonly pb::FieldCodec<int> _repeated_fInverse_codec
2836  = pb::FieldCodec.ForInt32(18);
2837  private readonly pbc::RepeatedField<int> fInverse_ = new pbc::RepeatedField<int>();
2838  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2839  public pbc::RepeatedField<int> FInverse {
2840  get { return fInverse_; }
2841  }
2842 
2843  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2844  public override bool Equals(object other) {
2845  return Equals(other as InverseConstraintProto);
2846  }
2847 
2848  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2849  public bool Equals(InverseConstraintProto other) {
2850  if (ReferenceEquals(other, null)) {
2851  return false;
2852  }
2853  if (ReferenceEquals(other, this)) {
2854  return true;
2855  }
2856  if(!fDirect_.Equals(other.fDirect_)) return false;
2857  if(!fInverse_.Equals(other.fInverse_)) return false;
2858  return Equals(_unknownFields, other._unknownFields);
2859  }
2860 
2861  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2862  public override int GetHashCode() {
2863  int hash = 1;
2864  hash ^= fDirect_.GetHashCode();
2865  hash ^= fInverse_.GetHashCode();
2866  if (_unknownFields != null) {
2867  hash ^= _unknownFields.GetHashCode();
2868  }
2869  return hash;
2870  }
2871 
2872  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2873  public override string ToString() {
2874  return pb::JsonFormatter.ToDiagnosticString(this);
2875  }
2876 
2877  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2878  public void WriteTo(pb::CodedOutputStream output) {
2879  fDirect_.WriteTo(output, _repeated_fDirect_codec);
2880  fInverse_.WriteTo(output, _repeated_fInverse_codec);
2881  if (_unknownFields != null) {
2882  _unknownFields.WriteTo(output);
2883  }
2884  }
2885 
2886  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2887  public int CalculateSize() {
2888  int size = 0;
2889  size += fDirect_.CalculateSize(_repeated_fDirect_codec);
2890  size += fInverse_.CalculateSize(_repeated_fInverse_codec);
2891  if (_unknownFields != null) {
2892  size += _unknownFields.CalculateSize();
2893  }
2894  return size;
2895  }
2896 
2897  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2898  public void MergeFrom(InverseConstraintProto other) {
2899  if (other == null) {
2900  return;
2901  }
2902  fDirect_.Add(other.fDirect_);
2903  fInverse_.Add(other.fInverse_);
2904  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
2905  }
2906 
2907  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2908  public void MergeFrom(pb::CodedInputStream input) {
2909  uint tag;
2910  while ((tag = input.ReadTag()) != 0) {
2911  switch(tag) {
2912  default:
2913  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
2914  break;
2915  case 10:
2916  case 8: {
2917  fDirect_.AddEntriesFrom(input, _repeated_fDirect_codec);
2918  break;
2919  }
2920  case 18:
2921  case 16: {
2922  fInverse_.AddEntriesFrom(input, _repeated_fInverse_codec);
2923  break;
2924  }
2925  }
2926  }
2927  }
2928 
2929  }
2930 
2935  public sealed partial class AutomatonConstraintProto : pb::IMessage<AutomatonConstraintProto> {
2936  private static readonly pb::MessageParser<AutomatonConstraintProto> _parser = new pb::MessageParser<AutomatonConstraintProto>(() => new AutomatonConstraintProto());
2937  private pb::UnknownFieldSet _unknownFields;
2938  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2939  public static pb::MessageParser<AutomatonConstraintProto> Parser { get { return _parser; } }
2940 
2941  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2942  public static pbr::MessageDescriptor Descriptor {
2943  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[16]; }
2944  }
2945 
2946  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2947  pbr::MessageDescriptor pb::IMessage.Descriptor {
2948  get { return Descriptor; }
2949  }
2950 
2951  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2953  OnConstruction();
2954  }
2955 
2956  partial void OnConstruction();
2957 
2958  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2960  startingState_ = other.startingState_;
2961  finalStates_ = other.finalStates_.Clone();
2962  transitionTail_ = other.transitionTail_.Clone();
2963  transitionHead_ = other.transitionHead_.Clone();
2964  transitionLabel_ = other.transitionLabel_.Clone();
2965  vars_ = other.vars_.Clone();
2966  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
2967  }
2968 
2969  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2971  return new AutomatonConstraintProto(this);
2972  }
2973 
2975  public const int StartingStateFieldNumber = 2;
2976  private long startingState_;
2982  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2983  public long StartingState {
2984  get { return startingState_; }
2985  set {
2986  startingState_ = value;
2987  }
2988  }
2989 
2991  public const int FinalStatesFieldNumber = 3;
2992  private static readonly pb::FieldCodec<long> _repeated_finalStates_codec
2993  = pb::FieldCodec.ForInt64(26);
2994  private readonly pbc::RepeatedField<long> finalStates_ = new pbc::RepeatedField<long>();
2995  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
2996  public pbc::RepeatedField<long> FinalStates {
2997  get { return finalStates_; }
2998  }
2999 
3001  public const int TransitionTailFieldNumber = 4;
3002  private static readonly pb::FieldCodec<long> _repeated_transitionTail_codec
3003  = pb::FieldCodec.ForInt64(34);
3004  private readonly pbc::RepeatedField<long> transitionTail_ = new pbc::RepeatedField<long>();
3010  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3011  public pbc::RepeatedField<long> TransitionTail {
3012  get { return transitionTail_; }
3013  }
3014 
3016  public const int TransitionHeadFieldNumber = 5;
3017  private static readonly pb::FieldCodec<long> _repeated_transitionHead_codec
3018  = pb::FieldCodec.ForInt64(42);
3019  private readonly pbc::RepeatedField<long> transitionHead_ = new pbc::RepeatedField<long>();
3020  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3021  public pbc::RepeatedField<long> TransitionHead {
3022  get { return transitionHead_; }
3023  }
3024 
3026  public const int TransitionLabelFieldNumber = 6;
3027  private static readonly pb::FieldCodec<long> _repeated_transitionLabel_codec
3028  = pb::FieldCodec.ForInt64(50);
3029  private readonly pbc::RepeatedField<long> transitionLabel_ = new pbc::RepeatedField<long>();
3030  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3031  public pbc::RepeatedField<long> TransitionLabel {
3032  get { return transitionLabel_; }
3033  }
3034 
3036  public const int VarsFieldNumber = 7;
3037  private static readonly pb::FieldCodec<int> _repeated_vars_codec
3038  = pb::FieldCodec.ForInt32(58);
3039  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
3044  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3045  public pbc::RepeatedField<int> Vars {
3046  get { return vars_; }
3047  }
3048 
3049  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3050  public override bool Equals(object other) {
3051  return Equals(other as AutomatonConstraintProto);
3052  }
3053 
3054  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3055  public bool Equals(AutomatonConstraintProto other) {
3056  if (ReferenceEquals(other, null)) {
3057  return false;
3058  }
3059  if (ReferenceEquals(other, this)) {
3060  return true;
3061  }
3062  if (StartingState != other.StartingState) return false;
3063  if(!finalStates_.Equals(other.finalStates_)) return false;
3064  if(!transitionTail_.Equals(other.transitionTail_)) return false;
3065  if(!transitionHead_.Equals(other.transitionHead_)) return false;
3066  if(!transitionLabel_.Equals(other.transitionLabel_)) return false;
3067  if(!vars_.Equals(other.vars_)) return false;
3068  return Equals(_unknownFields, other._unknownFields);
3069  }
3070 
3071  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3072  public override int GetHashCode() {
3073  int hash = 1;
3074  if (StartingState != 0L) hash ^= StartingState.GetHashCode();
3075  hash ^= finalStates_.GetHashCode();
3076  hash ^= transitionTail_.GetHashCode();
3077  hash ^= transitionHead_.GetHashCode();
3078  hash ^= transitionLabel_.GetHashCode();
3079  hash ^= vars_.GetHashCode();
3080  if (_unknownFields != null) {
3081  hash ^= _unknownFields.GetHashCode();
3082  }
3083  return hash;
3084  }
3085 
3086  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3087  public override string ToString() {
3088  return pb::JsonFormatter.ToDiagnosticString(this);
3089  }
3090 
3091  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3092  public void WriteTo(pb::CodedOutputStream output) {
3093  if (StartingState != 0L) {
3094  output.WriteRawTag(16);
3095  output.WriteInt64(StartingState);
3096  }
3097  finalStates_.WriteTo(output, _repeated_finalStates_codec);
3098  transitionTail_.WriteTo(output, _repeated_transitionTail_codec);
3099  transitionHead_.WriteTo(output, _repeated_transitionHead_codec);
3100  transitionLabel_.WriteTo(output, _repeated_transitionLabel_codec);
3101  vars_.WriteTo(output, _repeated_vars_codec);
3102  if (_unknownFields != null) {
3103  _unknownFields.WriteTo(output);
3104  }
3105  }
3106 
3107  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3108  public int CalculateSize() {
3109  int size = 0;
3110  if (StartingState != 0L) {
3111  size += 1 + pb::CodedOutputStream.ComputeInt64Size(StartingState);
3112  }
3113  size += finalStates_.CalculateSize(_repeated_finalStates_codec);
3114  size += transitionTail_.CalculateSize(_repeated_transitionTail_codec);
3115  size += transitionHead_.CalculateSize(_repeated_transitionHead_codec);
3116  size += transitionLabel_.CalculateSize(_repeated_transitionLabel_codec);
3117  size += vars_.CalculateSize(_repeated_vars_codec);
3118  if (_unknownFields != null) {
3119  size += _unknownFields.CalculateSize();
3120  }
3121  return size;
3122  }
3123 
3124  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3126  if (other == null) {
3127  return;
3128  }
3129  if (other.StartingState != 0L) {
3130  StartingState = other.StartingState;
3131  }
3132  finalStates_.Add(other.finalStates_);
3133  transitionTail_.Add(other.transitionTail_);
3134  transitionHead_.Add(other.transitionHead_);
3135  transitionLabel_.Add(other.transitionLabel_);
3136  vars_.Add(other.vars_);
3137  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
3138  }
3139 
3140  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3141  public void MergeFrom(pb::CodedInputStream input) {
3142  uint tag;
3143  while ((tag = input.ReadTag()) != 0) {
3144  switch(tag) {
3145  default:
3146  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
3147  break;
3148  case 16: {
3149  StartingState = input.ReadInt64();
3150  break;
3151  }
3152  case 26:
3153  case 24: {
3154  finalStates_.AddEntriesFrom(input, _repeated_finalStates_codec);
3155  break;
3156  }
3157  case 34:
3158  case 32: {
3159  transitionTail_.AddEntriesFrom(input, _repeated_transitionTail_codec);
3160  break;
3161  }
3162  case 42:
3163  case 40: {
3164  transitionHead_.AddEntriesFrom(input, _repeated_transitionHead_codec);
3165  break;
3166  }
3167  case 50:
3168  case 48: {
3169  transitionLabel_.AddEntriesFrom(input, _repeated_transitionLabel_codec);
3170  break;
3171  }
3172  case 58:
3173  case 56: {
3174  vars_.AddEntriesFrom(input, _repeated_vars_codec);
3175  break;
3176  }
3177  }
3178  }
3179  }
3180 
3181  }
3182 
3186  public sealed partial class ConstraintProto : pb::IMessage<ConstraintProto> {
3187  private static readonly pb::MessageParser<ConstraintProto> _parser = new pb::MessageParser<ConstraintProto>(() => new ConstraintProto());
3188  private pb::UnknownFieldSet _unknownFields;
3189  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3190  public static pb::MessageParser<ConstraintProto> Parser { get { return _parser; } }
3191 
3192  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3193  public static pbr::MessageDescriptor Descriptor {
3194  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[17]; }
3195  }
3196 
3197  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3198  pbr::MessageDescriptor pb::IMessage.Descriptor {
3199  get { return Descriptor; }
3200  }
3201 
3202  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3203  public ConstraintProto() {
3204  OnConstruction();
3205  }
3206 
3207  partial void OnConstruction();
3208 
3209  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3210  public ConstraintProto(ConstraintProto other) : this() {
3211  name_ = other.name_;
3212  enforcementLiteral_ = other.enforcementLiteral_.Clone();
3213  switch (other.ConstraintCase) {
3214  case ConstraintOneofCase.BoolOr:
3215  BoolOr = other.BoolOr.Clone();
3216  break;
3217  case ConstraintOneofCase.BoolAnd:
3218  BoolAnd = other.BoolAnd.Clone();
3219  break;
3220  case ConstraintOneofCase.AtMostOne:
3221  AtMostOne = other.AtMostOne.Clone();
3222  break;
3223  case ConstraintOneofCase.BoolXor:
3224  BoolXor = other.BoolXor.Clone();
3225  break;
3226  case ConstraintOneofCase.IntDiv:
3227  IntDiv = other.IntDiv.Clone();
3228  break;
3229  case ConstraintOneofCase.IntMod:
3230  IntMod = other.IntMod.Clone();
3231  break;
3232  case ConstraintOneofCase.IntMax:
3233  IntMax = other.IntMax.Clone();
3234  break;
3235  case ConstraintOneofCase.IntMin:
3236  IntMin = other.IntMin.Clone();
3237  break;
3238  case ConstraintOneofCase.IntProd:
3239  IntProd = other.IntProd.Clone();
3240  break;
3241  case ConstraintOneofCase.Linear:
3242  Linear = other.Linear.Clone();
3243  break;
3244  case ConstraintOneofCase.AllDiff:
3245  AllDiff = other.AllDiff.Clone();
3246  break;
3247  case ConstraintOneofCase.Element:
3248  Element = other.Element.Clone();
3249  break;
3250  case ConstraintOneofCase.Circuit:
3251  Circuit = other.Circuit.Clone();
3252  break;
3253  case ConstraintOneofCase.Routes:
3254  Routes = other.Routes.Clone();
3255  break;
3256  case ConstraintOneofCase.CircuitCovering:
3257  CircuitCovering = other.CircuitCovering.Clone();
3258  break;
3259  case ConstraintOneofCase.Table:
3260  Table = other.Table.Clone();
3261  break;
3262  case ConstraintOneofCase.Automaton:
3263  Automaton = other.Automaton.Clone();
3264  break;
3265  case ConstraintOneofCase.Inverse:
3266  Inverse = other.Inverse.Clone();
3267  break;
3268  case ConstraintOneofCase.Reservoir:
3269  Reservoir = other.Reservoir.Clone();
3270  break;
3271  case ConstraintOneofCase.Interval:
3272  Interval = other.Interval.Clone();
3273  break;
3274  case ConstraintOneofCase.NoOverlap:
3275  NoOverlap = other.NoOverlap.Clone();
3276  break;
3277  case ConstraintOneofCase.NoOverlap2D:
3278  NoOverlap2D = other.NoOverlap2D.Clone();
3279  break;
3280  case ConstraintOneofCase.Cumulative:
3281  Cumulative = other.Cumulative.Clone();
3282  break;
3283  }
3284 
3285  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
3286  }
3287 
3288  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3290  return new ConstraintProto(this);
3291  }
3292 
3294  public const int NameFieldNumber = 1;
3295  private string name_ = "";
3299  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3300  public string Name {
3301  get { return name_; }
3302  set {
3303  name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
3304  }
3305  }
3306 
3308  public const int EnforcementLiteralFieldNumber = 2;
3309  private static readonly pb::FieldCodec<int> _repeated_enforcementLiteral_codec
3310  = pb::FieldCodec.ForInt32(18);
3311  private readonly pbc::RepeatedField<int> enforcementLiteral_ = new pbc::RepeatedField<int>();
3328  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3329  public pbc::RepeatedField<int> EnforcementLiteral {
3330  get { return enforcementLiteral_; }
3331  }
3332 
3334  public const int BoolOrFieldNumber = 3;
3338  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3339  public global::Google.OrTools.Sat.BoolArgumentProto BoolOr {
3340  get { return constraintCase_ == ConstraintOneofCase.BoolOr ? (global::Google.OrTools.Sat.BoolArgumentProto) constraint_ : null; }
3341  set {
3342  constraint_ = value;
3343  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.BoolOr;
3344  }
3345  }
3346 
3348  public const int BoolAndFieldNumber = 4;
3356  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3357  public global::Google.OrTools.Sat.BoolArgumentProto BoolAnd {
3358  get { return constraintCase_ == ConstraintOneofCase.BoolAnd ? (global::Google.OrTools.Sat.BoolArgumentProto) constraint_ : null; }
3359  set {
3360  constraint_ = value;
3361  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.BoolAnd;
3362  }
3363  }
3364 
3366  public const int AtMostOneFieldNumber = 26;
3374  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3375  public global::Google.OrTools.Sat.BoolArgumentProto AtMostOne {
3376  get { return constraintCase_ == ConstraintOneofCase.AtMostOne ? (global::Google.OrTools.Sat.BoolArgumentProto) constraint_ : null; }
3377  set {
3378  constraint_ = value;
3379  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.AtMostOne;
3380  }
3381  }
3382 
3384  public const int BoolXorFieldNumber = 5;
3388  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3389  public global::Google.OrTools.Sat.BoolArgumentProto BoolXor {
3390  get { return constraintCase_ == ConstraintOneofCase.BoolXor ? (global::Google.OrTools.Sat.BoolArgumentProto) constraint_ : null; }
3391  set {
3392  constraint_ = value;
3393  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.BoolXor;
3394  }
3395  }
3396 
3398  public const int IntDivFieldNumber = 7;
3402  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3403  public global::Google.OrTools.Sat.IntegerArgumentProto IntDiv {
3404  get { return constraintCase_ == ConstraintOneofCase.IntDiv ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3405  set {
3406  constraint_ = value;
3407  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntDiv;
3408  }
3409  }
3410 
3412  public const int IntModFieldNumber = 8;
3416  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3417  public global::Google.OrTools.Sat.IntegerArgumentProto IntMod {
3418  get { return constraintCase_ == ConstraintOneofCase.IntMod ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3419  set {
3420  constraint_ = value;
3421  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntMod;
3422  }
3423  }
3424 
3426  public const int IntMaxFieldNumber = 9;
3431  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3432  public global::Google.OrTools.Sat.IntegerArgumentProto IntMax {
3433  get { return constraintCase_ == ConstraintOneofCase.IntMax ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3434  set {
3435  constraint_ = value;
3436  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntMax;
3437  }
3438  }
3439 
3441  public const int IntMinFieldNumber = 10;
3446  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3447  public global::Google.OrTools.Sat.IntegerArgumentProto IntMin {
3448  get { return constraintCase_ == ConstraintOneofCase.IntMin ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3449  set {
3450  constraint_ = value;
3451  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntMin;
3452  }
3453  }
3454 
3456  public const int IntProdFieldNumber = 11;
3461  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3462  public global::Google.OrTools.Sat.IntegerArgumentProto IntProd {
3463  get { return constraintCase_ == ConstraintOneofCase.IntProd ? (global::Google.OrTools.Sat.IntegerArgumentProto) constraint_ : null; }
3464  set {
3465  constraint_ = value;
3466  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.IntProd;
3467  }
3468  }
3469 
3471  public const int LinearFieldNumber = 12;
3476  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3477  public global::Google.OrTools.Sat.LinearConstraintProto Linear {
3478  get { return constraintCase_ == ConstraintOneofCase.Linear ? (global::Google.OrTools.Sat.LinearConstraintProto) constraint_ : null; }
3479  set {
3480  constraint_ = value;
3481  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Linear;
3482  }
3483  }
3484 
3486  public const int AllDiffFieldNumber = 13;
3490  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3491  public global::Google.OrTools.Sat.AllDifferentConstraintProto AllDiff {
3492  get { return constraintCase_ == ConstraintOneofCase.AllDiff ? (global::Google.OrTools.Sat.AllDifferentConstraintProto) constraint_ : null; }
3493  set {
3494  constraint_ = value;
3495  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.AllDiff;
3496  }
3497  }
3498 
3500  public const int ElementFieldNumber = 14;
3505  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3506  public global::Google.OrTools.Sat.ElementConstraintProto Element {
3507  get { return constraintCase_ == ConstraintOneofCase.Element ? (global::Google.OrTools.Sat.ElementConstraintProto) constraint_ : null; }
3508  set {
3509  constraint_ = value;
3510  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Element;
3511  }
3512  }
3513 
3515  public const int CircuitFieldNumber = 15;
3520  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3521  public global::Google.OrTools.Sat.CircuitConstraintProto Circuit {
3522  get { return constraintCase_ == ConstraintOneofCase.Circuit ? (global::Google.OrTools.Sat.CircuitConstraintProto) constraint_ : null; }
3523  set {
3524  constraint_ = value;
3525  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Circuit;
3526  }
3527  }
3528 
3530  public const int RoutesFieldNumber = 23;
3534  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3535  public global::Google.OrTools.Sat.RoutesConstraintProto Routes {
3536  get { return constraintCase_ == ConstraintOneofCase.Routes ? (global::Google.OrTools.Sat.RoutesConstraintProto) constraint_ : null; }
3537  set {
3538  constraint_ = value;
3539  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Routes;
3540  }
3541  }
3542 
3544  public const int CircuitCoveringFieldNumber = 25;
3549  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3550  public global::Google.OrTools.Sat.CircuitCoveringConstraintProto CircuitCovering {
3551  get { return constraintCase_ == ConstraintOneofCase.CircuitCovering ? (global::Google.OrTools.Sat.CircuitCoveringConstraintProto) constraint_ : null; }
3552  set {
3553  constraint_ = value;
3554  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.CircuitCovering;
3555  }
3556  }
3557 
3559  public const int TableFieldNumber = 16;
3564  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3565  public global::Google.OrTools.Sat.TableConstraintProto Table {
3566  get { return constraintCase_ == ConstraintOneofCase.Table ? (global::Google.OrTools.Sat.TableConstraintProto) constraint_ : null; }
3567  set {
3568  constraint_ = value;
3569  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Table;
3570  }
3571  }
3572 
3574  public const int AutomatonFieldNumber = 17;
3579  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3580  public global::Google.OrTools.Sat.AutomatonConstraintProto Automaton {
3581  get { return constraintCase_ == ConstraintOneofCase.Automaton ? (global::Google.OrTools.Sat.AutomatonConstraintProto) constraint_ : null; }
3582  set {
3583  constraint_ = value;
3584  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Automaton;
3585  }
3586  }
3587 
3589  public const int InverseFieldNumber = 18;
3594  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3595  public global::Google.OrTools.Sat.InverseConstraintProto Inverse {
3596  get { return constraintCase_ == ConstraintOneofCase.Inverse ? (global::Google.OrTools.Sat.InverseConstraintProto) constraint_ : null; }
3597  set {
3598  constraint_ = value;
3599  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Inverse;
3600  }
3601  }
3602 
3604  public const int ReservoirFieldNumber = 24;
3610  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3611  public global::Google.OrTools.Sat.ReservoirConstraintProto Reservoir {
3612  get { return constraintCase_ == ConstraintOneofCase.Reservoir ? (global::Google.OrTools.Sat.ReservoirConstraintProto) constraint_ : null; }
3613  set {
3614  constraint_ = value;
3615  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Reservoir;
3616  }
3617  }
3618 
3620  public const int IntervalFieldNumber = 19;
3625  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3626  public global::Google.OrTools.Sat.IntervalConstraintProto Interval {
3627  get { return constraintCase_ == ConstraintOneofCase.Interval ? (global::Google.OrTools.Sat.IntervalConstraintProto) constraint_ : null; }
3628  set {
3629  constraint_ = value;
3630  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Interval;
3631  }
3632  }
3633 
3635  public const int NoOverlapFieldNumber = 20;
3641  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3642  public global::Google.OrTools.Sat.NoOverlapConstraintProto NoOverlap {
3643  get { return constraintCase_ == ConstraintOneofCase.NoOverlap ? (global::Google.OrTools.Sat.NoOverlapConstraintProto) constraint_ : null; }
3644  set {
3645  constraint_ = value;
3646  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.NoOverlap;
3647  }
3648  }
3649 
3651  public const int NoOverlap2DFieldNumber = 21;
3655  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3656  public global::Google.OrTools.Sat.NoOverlap2DConstraintProto NoOverlap2D {
3657  get { return constraintCase_ == ConstraintOneofCase.NoOverlap2D ? (global::Google.OrTools.Sat.NoOverlap2DConstraintProto) constraint_ : null; }
3658  set {
3659  constraint_ = value;
3660  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.NoOverlap2D;
3661  }
3662  }
3663 
3665  public const int CumulativeFieldNumber = 22;
3671  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3672  public global::Google.OrTools.Sat.CumulativeConstraintProto Cumulative {
3673  get { return constraintCase_ == ConstraintOneofCase.Cumulative ? (global::Google.OrTools.Sat.CumulativeConstraintProto) constraint_ : null; }
3674  set {
3675  constraint_ = value;
3676  constraintCase_ = value == null ? ConstraintOneofCase.None : ConstraintOneofCase.Cumulative;
3677  }
3678  }
3679 
3680  private object constraint_;
3682  public enum ConstraintOneofCase {
3683  None = 0,
3684  BoolOr = 3,
3685  BoolAnd = 4,
3686  AtMostOne = 26,
3687  BoolXor = 5,
3688  IntDiv = 7,
3689  IntMod = 8,
3690  IntMax = 9,
3691  IntMin = 10,
3692  IntProd = 11,
3693  Linear = 12,
3694  AllDiff = 13,
3695  Element = 14,
3696  Circuit = 15,
3697  Routes = 23,
3698  CircuitCovering = 25,
3699  Table = 16,
3700  Automaton = 17,
3701  Inverse = 18,
3702  Reservoir = 24,
3703  Interval = 19,
3704  NoOverlap = 20,
3705  NoOverlap2D = 21,
3706  Cumulative = 22,
3707  }
3708  private ConstraintOneofCase constraintCase_ = ConstraintOneofCase.None;
3709  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3710  public ConstraintOneofCase ConstraintCase {
3711  get { return constraintCase_; }
3712  }
3713 
3714  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3715  public void ClearConstraint() {
3716  constraintCase_ = ConstraintOneofCase.None;
3717  constraint_ = null;
3718  }
3719 
3720  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3721  public override bool Equals(object other) {
3722  return Equals(other as ConstraintProto);
3723  }
3724 
3725  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3726  public bool Equals(ConstraintProto other) {
3727  if (ReferenceEquals(other, null)) {
3728  return false;
3729  }
3730  if (ReferenceEquals(other, this)) {
3731  return true;
3732  }
3733  if (Name != other.Name) return false;
3734  if(!enforcementLiteral_.Equals(other.enforcementLiteral_)) return false;
3735  if (!object.Equals(BoolOr, other.BoolOr)) return false;
3736  if (!object.Equals(BoolAnd, other.BoolAnd)) return false;
3737  if (!object.Equals(AtMostOne, other.AtMostOne)) return false;
3738  if (!object.Equals(BoolXor, other.BoolXor)) return false;
3739  if (!object.Equals(IntDiv, other.IntDiv)) return false;
3740  if (!object.Equals(IntMod, other.IntMod)) return false;
3741  if (!object.Equals(IntMax, other.IntMax)) return false;
3742  if (!object.Equals(IntMin, other.IntMin)) return false;
3743  if (!object.Equals(IntProd, other.IntProd)) return false;
3744  if (!object.Equals(Linear, other.Linear)) return false;
3745  if (!object.Equals(AllDiff, other.AllDiff)) return false;
3746  if (!object.Equals(Element, other.Element)) return false;
3747  if (!object.Equals(Circuit, other.Circuit)) return false;
3748  if (!object.Equals(Routes, other.Routes)) return false;
3749  if (!object.Equals(CircuitCovering, other.CircuitCovering)) return false;
3750  if (!object.Equals(Table, other.Table)) return false;
3751  if (!object.Equals(Automaton, other.Automaton)) return false;
3752  if (!object.Equals(Inverse, other.Inverse)) return false;
3753  if (!object.Equals(Reservoir, other.Reservoir)) return false;
3754  if (!object.Equals(Interval, other.Interval)) return false;
3755  if (!object.Equals(NoOverlap, other.NoOverlap)) return false;
3756  if (!object.Equals(NoOverlap2D, other.NoOverlap2D)) return false;
3757  if (!object.Equals(Cumulative, other.Cumulative)) return false;
3758  if (ConstraintCase != other.ConstraintCase) return false;
3759  return Equals(_unknownFields, other._unknownFields);
3760  }
3761 
3762  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3763  public override int GetHashCode() {
3764  int hash = 1;
3765  if (Name.Length != 0) hash ^= Name.GetHashCode();
3766  hash ^= enforcementLiteral_.GetHashCode();
3767  if (constraintCase_ == ConstraintOneofCase.BoolOr) hash ^= BoolOr.GetHashCode();
3768  if (constraintCase_ == ConstraintOneofCase.BoolAnd) hash ^= BoolAnd.GetHashCode();
3769  if (constraintCase_ == ConstraintOneofCase.AtMostOne) hash ^= AtMostOne.GetHashCode();
3770  if (constraintCase_ == ConstraintOneofCase.BoolXor) hash ^= BoolXor.GetHashCode();
3771  if (constraintCase_ == ConstraintOneofCase.IntDiv) hash ^= IntDiv.GetHashCode();
3772  if (constraintCase_ == ConstraintOneofCase.IntMod) hash ^= IntMod.GetHashCode();
3773  if (constraintCase_ == ConstraintOneofCase.IntMax) hash ^= IntMax.GetHashCode();
3774  if (constraintCase_ == ConstraintOneofCase.IntMin) hash ^= IntMin.GetHashCode();
3775  if (constraintCase_ == ConstraintOneofCase.IntProd) hash ^= IntProd.GetHashCode();
3776  if (constraintCase_ == ConstraintOneofCase.Linear) hash ^= Linear.GetHashCode();
3777  if (constraintCase_ == ConstraintOneofCase.AllDiff) hash ^= AllDiff.GetHashCode();
3778  if (constraintCase_ == ConstraintOneofCase.Element) hash ^= Element.GetHashCode();
3779  if (constraintCase_ == ConstraintOneofCase.Circuit) hash ^= Circuit.GetHashCode();
3780  if (constraintCase_ == ConstraintOneofCase.Routes) hash ^= Routes.GetHashCode();
3781  if (constraintCase_ == ConstraintOneofCase.CircuitCovering) hash ^= CircuitCovering.GetHashCode();
3782  if (constraintCase_ == ConstraintOneofCase.Table) hash ^= Table.GetHashCode();
3783  if (constraintCase_ == ConstraintOneofCase.Automaton) hash ^= Automaton.GetHashCode();
3784  if (constraintCase_ == ConstraintOneofCase.Inverse) hash ^= Inverse.GetHashCode();
3785  if (constraintCase_ == ConstraintOneofCase.Reservoir) hash ^= Reservoir.GetHashCode();
3786  if (constraintCase_ == ConstraintOneofCase.Interval) hash ^= Interval.GetHashCode();
3787  if (constraintCase_ == ConstraintOneofCase.NoOverlap) hash ^= NoOverlap.GetHashCode();
3788  if (constraintCase_ == ConstraintOneofCase.NoOverlap2D) hash ^= NoOverlap2D.GetHashCode();
3789  if (constraintCase_ == ConstraintOneofCase.Cumulative) hash ^= Cumulative.GetHashCode();
3790  hash ^= (int) constraintCase_;
3791  if (_unknownFields != null) {
3792  hash ^= _unknownFields.GetHashCode();
3793  }
3794  return hash;
3795  }
3796 
3797  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3798  public override string ToString() {
3799  return pb::JsonFormatter.ToDiagnosticString(this);
3800  }
3801 
3802  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3803  public void WriteTo(pb::CodedOutputStream output) {
3804  if (Name.Length != 0) {
3805  output.WriteRawTag(10);
3806  output.WriteString(Name);
3807  }
3808  enforcementLiteral_.WriteTo(output, _repeated_enforcementLiteral_codec);
3809  if (constraintCase_ == ConstraintOneofCase.BoolOr) {
3810  output.WriteRawTag(26);
3811  output.WriteMessage(BoolOr);
3812  }
3813  if (constraintCase_ == ConstraintOneofCase.BoolAnd) {
3814  output.WriteRawTag(34);
3815  output.WriteMessage(BoolAnd);
3816  }
3817  if (constraintCase_ == ConstraintOneofCase.BoolXor) {
3818  output.WriteRawTag(42);
3819  output.WriteMessage(BoolXor);
3820  }
3821  if (constraintCase_ == ConstraintOneofCase.IntDiv) {
3822  output.WriteRawTag(58);
3823  output.WriteMessage(IntDiv);
3824  }
3825  if (constraintCase_ == ConstraintOneofCase.IntMod) {
3826  output.WriteRawTag(66);
3827  output.WriteMessage(IntMod);
3828  }
3829  if (constraintCase_ == ConstraintOneofCase.IntMax) {
3830  output.WriteRawTag(74);
3831  output.WriteMessage(IntMax);
3832  }
3833  if (constraintCase_ == ConstraintOneofCase.IntMin) {
3834  output.WriteRawTag(82);
3835  output.WriteMessage(IntMin);
3836  }
3837  if (constraintCase_ == ConstraintOneofCase.IntProd) {
3838  output.WriteRawTag(90);
3839  output.WriteMessage(IntProd);
3840  }
3841  if (constraintCase_ == ConstraintOneofCase.Linear) {
3842  output.WriteRawTag(98);
3843  output.WriteMessage(Linear);
3844  }
3845  if (constraintCase_ == ConstraintOneofCase.AllDiff) {
3846  output.WriteRawTag(106);
3847  output.WriteMessage(AllDiff);
3848  }
3849  if (constraintCase_ == ConstraintOneofCase.Element) {
3850  output.WriteRawTag(114);
3851  output.WriteMessage(Element);
3852  }
3853  if (constraintCase_ == ConstraintOneofCase.Circuit) {
3854  output.WriteRawTag(122);
3855  output.WriteMessage(Circuit);
3856  }
3857  if (constraintCase_ == ConstraintOneofCase.Table) {
3858  output.WriteRawTag(130, 1);
3859  output.WriteMessage(Table);
3860  }
3861  if (constraintCase_ == ConstraintOneofCase.Automaton) {
3862  output.WriteRawTag(138, 1);
3863  output.WriteMessage(Automaton);
3864  }
3865  if (constraintCase_ == ConstraintOneofCase.Inverse) {
3866  output.WriteRawTag(146, 1);
3867  output.WriteMessage(Inverse);
3868  }
3869  if (constraintCase_ == ConstraintOneofCase.Interval) {
3870  output.WriteRawTag(154, 1);
3871  output.WriteMessage(Interval);
3872  }
3873  if (constraintCase_ == ConstraintOneofCase.NoOverlap) {
3874  output.WriteRawTag(162, 1);
3875  output.WriteMessage(NoOverlap);
3876  }
3877  if (constraintCase_ == ConstraintOneofCase.NoOverlap2D) {
3878  output.WriteRawTag(170, 1);
3879  output.WriteMessage(NoOverlap2D);
3880  }
3881  if (constraintCase_ == ConstraintOneofCase.Cumulative) {
3882  output.WriteRawTag(178, 1);
3883  output.WriteMessage(Cumulative);
3884  }
3885  if (constraintCase_ == ConstraintOneofCase.Routes) {
3886  output.WriteRawTag(186, 1);
3887  output.WriteMessage(Routes);
3888  }
3889  if (constraintCase_ == ConstraintOneofCase.Reservoir) {
3890  output.WriteRawTag(194, 1);
3891  output.WriteMessage(Reservoir);
3892  }
3893  if (constraintCase_ == ConstraintOneofCase.CircuitCovering) {
3894  output.WriteRawTag(202, 1);
3895  output.WriteMessage(CircuitCovering);
3896  }
3897  if (constraintCase_ == ConstraintOneofCase.AtMostOne) {
3898  output.WriteRawTag(210, 1);
3899  output.WriteMessage(AtMostOne);
3900  }
3901  if (_unknownFields != null) {
3902  _unknownFields.WriteTo(output);
3903  }
3904  }
3905 
3906  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3907  public int CalculateSize() {
3908  int size = 0;
3909  if (Name.Length != 0) {
3910  size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
3911  }
3912  size += enforcementLiteral_.CalculateSize(_repeated_enforcementLiteral_codec);
3913  if (constraintCase_ == ConstraintOneofCase.BoolOr) {
3914  size += 1 + pb::CodedOutputStream.ComputeMessageSize(BoolOr);
3915  }
3916  if (constraintCase_ == ConstraintOneofCase.BoolAnd) {
3917  size += 1 + pb::CodedOutputStream.ComputeMessageSize(BoolAnd);
3918  }
3919  if (constraintCase_ == ConstraintOneofCase.AtMostOne) {
3920  size += 2 + pb::CodedOutputStream.ComputeMessageSize(AtMostOne);
3921  }
3922  if (constraintCase_ == ConstraintOneofCase.BoolXor) {
3923  size += 1 + pb::CodedOutputStream.ComputeMessageSize(BoolXor);
3924  }
3925  if (constraintCase_ == ConstraintOneofCase.IntDiv) {
3926  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntDiv);
3927  }
3928  if (constraintCase_ == ConstraintOneofCase.IntMod) {
3929  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntMod);
3930  }
3931  if (constraintCase_ == ConstraintOneofCase.IntMax) {
3932  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntMax);
3933  }
3934  if (constraintCase_ == ConstraintOneofCase.IntMin) {
3935  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntMin);
3936  }
3937  if (constraintCase_ == ConstraintOneofCase.IntProd) {
3938  size += 1 + pb::CodedOutputStream.ComputeMessageSize(IntProd);
3939  }
3940  if (constraintCase_ == ConstraintOneofCase.Linear) {
3941  size += 1 + pb::CodedOutputStream.ComputeMessageSize(Linear);
3942  }
3943  if (constraintCase_ == ConstraintOneofCase.AllDiff) {
3944  size += 1 + pb::CodedOutputStream.ComputeMessageSize(AllDiff);
3945  }
3946  if (constraintCase_ == ConstraintOneofCase.Element) {
3947  size += 1 + pb::CodedOutputStream.ComputeMessageSize(Element);
3948  }
3949  if (constraintCase_ == ConstraintOneofCase.Circuit) {
3950  size += 1 + pb::CodedOutputStream.ComputeMessageSize(Circuit);
3951  }
3952  if (constraintCase_ == ConstraintOneofCase.Routes) {
3953  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Routes);
3954  }
3955  if (constraintCase_ == ConstraintOneofCase.CircuitCovering) {
3956  size += 2 + pb::CodedOutputStream.ComputeMessageSize(CircuitCovering);
3957  }
3958  if (constraintCase_ == ConstraintOneofCase.Table) {
3959  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Table);
3960  }
3961  if (constraintCase_ == ConstraintOneofCase.Automaton) {
3962  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Automaton);
3963  }
3964  if (constraintCase_ == ConstraintOneofCase.Inverse) {
3965  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Inverse);
3966  }
3967  if (constraintCase_ == ConstraintOneofCase.Reservoir) {
3968  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Reservoir);
3969  }
3970  if (constraintCase_ == ConstraintOneofCase.Interval) {
3971  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Interval);
3972  }
3973  if (constraintCase_ == ConstraintOneofCase.NoOverlap) {
3974  size += 2 + pb::CodedOutputStream.ComputeMessageSize(NoOverlap);
3975  }
3976  if (constraintCase_ == ConstraintOneofCase.NoOverlap2D) {
3977  size += 2 + pb::CodedOutputStream.ComputeMessageSize(NoOverlap2D);
3978  }
3979  if (constraintCase_ == ConstraintOneofCase.Cumulative) {
3980  size += 2 + pb::CodedOutputStream.ComputeMessageSize(Cumulative);
3981  }
3982  if (_unknownFields != null) {
3983  size += _unknownFields.CalculateSize();
3984  }
3985  return size;
3986  }
3987 
3988  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3989  public void MergeFrom(ConstraintProto other) {
3990  if (other == null) {
3991  return;
3992  }
3993  if (other.Name.Length != 0) {
3994  Name = other.Name;
3995  }
3996  enforcementLiteral_.Add(other.enforcementLiteral_);
3997  switch (other.ConstraintCase) {
3998  case ConstraintOneofCase.BoolOr:
3999  if (BoolOr == null) {
4000  BoolOr = new global::Google.OrTools.Sat.BoolArgumentProto();
4001  }
4002  BoolOr.MergeFrom(other.BoolOr);
4003  break;
4004  case ConstraintOneofCase.BoolAnd:
4005  if (BoolAnd == null) {
4006  BoolAnd = new global::Google.OrTools.Sat.BoolArgumentProto();
4007  }
4008  BoolAnd.MergeFrom(other.BoolAnd);
4009  break;
4010  case ConstraintOneofCase.AtMostOne:
4011  if (AtMostOne == null) {
4012  AtMostOne = new global::Google.OrTools.Sat.BoolArgumentProto();
4013  }
4014  AtMostOne.MergeFrom(other.AtMostOne);
4015  break;
4016  case ConstraintOneofCase.BoolXor:
4017  if (BoolXor == null) {
4018  BoolXor = new global::Google.OrTools.Sat.BoolArgumentProto();
4019  }
4020  BoolXor.MergeFrom(other.BoolXor);
4021  break;
4022  case ConstraintOneofCase.IntDiv:
4023  if (IntDiv == null) {
4024  IntDiv = new global::Google.OrTools.Sat.IntegerArgumentProto();
4025  }
4026  IntDiv.MergeFrom(other.IntDiv);
4027  break;
4028  case ConstraintOneofCase.IntMod:
4029  if (IntMod == null) {
4030  IntMod = new global::Google.OrTools.Sat.IntegerArgumentProto();
4031  }
4032  IntMod.MergeFrom(other.IntMod);
4033  break;
4034  case ConstraintOneofCase.IntMax:
4035  if (IntMax == null) {
4036  IntMax = new global::Google.OrTools.Sat.IntegerArgumentProto();
4037  }
4038  IntMax.MergeFrom(other.IntMax);
4039  break;
4040  case ConstraintOneofCase.IntMin:
4041  if (IntMin == null) {
4042  IntMin = new global::Google.OrTools.Sat.IntegerArgumentProto();
4043  }
4044  IntMin.MergeFrom(other.IntMin);
4045  break;
4046  case ConstraintOneofCase.IntProd:
4047  if (IntProd == null) {
4048  IntProd = new global::Google.OrTools.Sat.IntegerArgumentProto();
4049  }
4050  IntProd.MergeFrom(other.IntProd);
4051  break;
4052  case ConstraintOneofCase.Linear:
4053  if (Linear == null) {
4054  Linear = new global::Google.OrTools.Sat.LinearConstraintProto();
4055  }
4056  Linear.MergeFrom(other.Linear);
4057  break;
4058  case ConstraintOneofCase.AllDiff:
4059  if (AllDiff == null) {
4060  AllDiff = new global::Google.OrTools.Sat.AllDifferentConstraintProto();
4061  }
4062  AllDiff.MergeFrom(other.AllDiff);
4063  break;
4064  case ConstraintOneofCase.Element:
4065  if (Element == null) {
4066  Element = new global::Google.OrTools.Sat.ElementConstraintProto();
4067  }
4068  Element.MergeFrom(other.Element);
4069  break;
4070  case ConstraintOneofCase.Circuit:
4071  if (Circuit == null) {
4072  Circuit = new global::Google.OrTools.Sat.CircuitConstraintProto();
4073  }
4074  Circuit.MergeFrom(other.Circuit);
4075  break;
4076  case ConstraintOneofCase.Routes:
4077  if (Routes == null) {
4078  Routes = new global::Google.OrTools.Sat.RoutesConstraintProto();
4079  }
4080  Routes.MergeFrom(other.Routes);
4081  break;
4082  case ConstraintOneofCase.CircuitCovering:
4083  if (CircuitCovering == null) {
4084  CircuitCovering = new global::Google.OrTools.Sat.CircuitCoveringConstraintProto();
4085  }
4086  CircuitCovering.MergeFrom(other.CircuitCovering);
4087  break;
4088  case ConstraintOneofCase.Table:
4089  if (Table == null) {
4090  Table = new global::Google.OrTools.Sat.TableConstraintProto();
4091  }
4092  Table.MergeFrom(other.Table);
4093  break;
4094  case ConstraintOneofCase.Automaton:
4095  if (Automaton == null) {
4096  Automaton = new global::Google.OrTools.Sat.AutomatonConstraintProto();
4097  }
4098  Automaton.MergeFrom(other.Automaton);
4099  break;
4100  case ConstraintOneofCase.Inverse:
4101  if (Inverse == null) {
4102  Inverse = new global::Google.OrTools.Sat.InverseConstraintProto();
4103  }
4104  Inverse.MergeFrom(other.Inverse);
4105  break;
4106  case ConstraintOneofCase.Reservoir:
4107  if (Reservoir == null) {
4108  Reservoir = new global::Google.OrTools.Sat.ReservoirConstraintProto();
4109  }
4110  Reservoir.MergeFrom(other.Reservoir);
4111  break;
4112  case ConstraintOneofCase.Interval:
4113  if (Interval == null) {
4114  Interval = new global::Google.OrTools.Sat.IntervalConstraintProto();
4115  }
4116  Interval.MergeFrom(other.Interval);
4117  break;
4118  case ConstraintOneofCase.NoOverlap:
4119  if (NoOverlap == null) {
4120  NoOverlap = new global::Google.OrTools.Sat.NoOverlapConstraintProto();
4121  }
4122  NoOverlap.MergeFrom(other.NoOverlap);
4123  break;
4124  case ConstraintOneofCase.NoOverlap2D:
4125  if (NoOverlap2D == null) {
4126  NoOverlap2D = new global::Google.OrTools.Sat.NoOverlap2DConstraintProto();
4127  }
4128  NoOverlap2D.MergeFrom(other.NoOverlap2D);
4129  break;
4130  case ConstraintOneofCase.Cumulative:
4131  if (Cumulative == null) {
4132  Cumulative = new global::Google.OrTools.Sat.CumulativeConstraintProto();
4133  }
4134  Cumulative.MergeFrom(other.Cumulative);
4135  break;
4136  }
4137 
4138  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4139  }
4140 
4141  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4142  public void MergeFrom(pb::CodedInputStream input) {
4143  uint tag;
4144  while ((tag = input.ReadTag()) != 0) {
4145  switch(tag) {
4146  default:
4147  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4148  break;
4149  case 10: {
4150  Name = input.ReadString();
4151  break;
4152  }
4153  case 18:
4154  case 16: {
4155  enforcementLiteral_.AddEntriesFrom(input, _repeated_enforcementLiteral_codec);
4156  break;
4157  }
4158  case 26: {
4159  global::Google.OrTools.Sat.BoolArgumentProto subBuilder = new global::Google.OrTools.Sat.BoolArgumentProto();
4160  if (constraintCase_ == ConstraintOneofCase.BoolOr) {
4161  subBuilder.MergeFrom(BoolOr);
4162  }
4163  input.ReadMessage(subBuilder);
4164  BoolOr = subBuilder;
4165  break;
4166  }
4167  case 34: {
4168  global::Google.OrTools.Sat.BoolArgumentProto subBuilder = new global::Google.OrTools.Sat.BoolArgumentProto();
4169  if (constraintCase_ == ConstraintOneofCase.BoolAnd) {
4170  subBuilder.MergeFrom(BoolAnd);
4171  }
4172  input.ReadMessage(subBuilder);
4173  BoolAnd = subBuilder;
4174  break;
4175  }
4176  case 42: {
4177  global::Google.OrTools.Sat.BoolArgumentProto subBuilder = new global::Google.OrTools.Sat.BoolArgumentProto();
4178  if (constraintCase_ == ConstraintOneofCase.BoolXor) {
4179  subBuilder.MergeFrom(BoolXor);
4180  }
4181  input.ReadMessage(subBuilder);
4182  BoolXor = subBuilder;
4183  break;
4184  }
4185  case 58: {
4186  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4187  if (constraintCase_ == ConstraintOneofCase.IntDiv) {
4188  subBuilder.MergeFrom(IntDiv);
4189  }
4190  input.ReadMessage(subBuilder);
4191  IntDiv = subBuilder;
4192  break;
4193  }
4194  case 66: {
4195  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4196  if (constraintCase_ == ConstraintOneofCase.IntMod) {
4197  subBuilder.MergeFrom(IntMod);
4198  }
4199  input.ReadMessage(subBuilder);
4200  IntMod = subBuilder;
4201  break;
4202  }
4203  case 74: {
4204  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4205  if (constraintCase_ == ConstraintOneofCase.IntMax) {
4206  subBuilder.MergeFrom(IntMax);
4207  }
4208  input.ReadMessage(subBuilder);
4209  IntMax = subBuilder;
4210  break;
4211  }
4212  case 82: {
4213  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4214  if (constraintCase_ == ConstraintOneofCase.IntMin) {
4215  subBuilder.MergeFrom(IntMin);
4216  }
4217  input.ReadMessage(subBuilder);
4218  IntMin = subBuilder;
4219  break;
4220  }
4221  case 90: {
4222  global::Google.OrTools.Sat.IntegerArgumentProto subBuilder = new global::Google.OrTools.Sat.IntegerArgumentProto();
4223  if (constraintCase_ == ConstraintOneofCase.IntProd) {
4224  subBuilder.MergeFrom(IntProd);
4225  }
4226  input.ReadMessage(subBuilder);
4227  IntProd = subBuilder;
4228  break;
4229  }
4230  case 98: {
4231  global::Google.OrTools.Sat.LinearConstraintProto subBuilder = new global::Google.OrTools.Sat.LinearConstraintProto();
4232  if (constraintCase_ == ConstraintOneofCase.Linear) {
4233  subBuilder.MergeFrom(Linear);
4234  }
4235  input.ReadMessage(subBuilder);
4236  Linear = subBuilder;
4237  break;
4238  }
4239  case 106: {
4240  global::Google.OrTools.Sat.AllDifferentConstraintProto subBuilder = new global::Google.OrTools.Sat.AllDifferentConstraintProto();
4241  if (constraintCase_ == ConstraintOneofCase.AllDiff) {
4242  subBuilder.MergeFrom(AllDiff);
4243  }
4244  input.ReadMessage(subBuilder);
4245  AllDiff = subBuilder;
4246  break;
4247  }
4248  case 114: {
4249  global::Google.OrTools.Sat.ElementConstraintProto subBuilder = new global::Google.OrTools.Sat.ElementConstraintProto();
4250  if (constraintCase_ == ConstraintOneofCase.Element) {
4251  subBuilder.MergeFrom(Element);
4252  }
4253  input.ReadMessage(subBuilder);
4254  Element = subBuilder;
4255  break;
4256  }
4257  case 122: {
4258  global::Google.OrTools.Sat.CircuitConstraintProto subBuilder = new global::Google.OrTools.Sat.CircuitConstraintProto();
4259  if (constraintCase_ == ConstraintOneofCase.Circuit) {
4260  subBuilder.MergeFrom(Circuit);
4261  }
4262  input.ReadMessage(subBuilder);
4263  Circuit = subBuilder;
4264  break;
4265  }
4266  case 130: {
4267  global::Google.OrTools.Sat.TableConstraintProto subBuilder = new global::Google.OrTools.Sat.TableConstraintProto();
4268  if (constraintCase_ == ConstraintOneofCase.Table) {
4269  subBuilder.MergeFrom(Table);
4270  }
4271  input.ReadMessage(subBuilder);
4272  Table = subBuilder;
4273  break;
4274  }
4275  case 138: {
4276  global::Google.OrTools.Sat.AutomatonConstraintProto subBuilder = new global::Google.OrTools.Sat.AutomatonConstraintProto();
4277  if (constraintCase_ == ConstraintOneofCase.Automaton) {
4278  subBuilder.MergeFrom(Automaton);
4279  }
4280  input.ReadMessage(subBuilder);
4281  Automaton = subBuilder;
4282  break;
4283  }
4284  case 146: {
4285  global::Google.OrTools.Sat.InverseConstraintProto subBuilder = new global::Google.OrTools.Sat.InverseConstraintProto();
4286  if (constraintCase_ == ConstraintOneofCase.Inverse) {
4287  subBuilder.MergeFrom(Inverse);
4288  }
4289  input.ReadMessage(subBuilder);
4290  Inverse = subBuilder;
4291  break;
4292  }
4293  case 154: {
4294  global::Google.OrTools.Sat.IntervalConstraintProto subBuilder = new global::Google.OrTools.Sat.IntervalConstraintProto();
4295  if (constraintCase_ == ConstraintOneofCase.Interval) {
4296  subBuilder.MergeFrom(Interval);
4297  }
4298  input.ReadMessage(subBuilder);
4299  Interval = subBuilder;
4300  break;
4301  }
4302  case 162: {
4303  global::Google.OrTools.Sat.NoOverlapConstraintProto subBuilder = new global::Google.OrTools.Sat.NoOverlapConstraintProto();
4304  if (constraintCase_ == ConstraintOneofCase.NoOverlap) {
4305  subBuilder.MergeFrom(NoOverlap);
4306  }
4307  input.ReadMessage(subBuilder);
4308  NoOverlap = subBuilder;
4309  break;
4310  }
4311  case 170: {
4312  global::Google.OrTools.Sat.NoOverlap2DConstraintProto subBuilder = new global::Google.OrTools.Sat.NoOverlap2DConstraintProto();
4313  if (constraintCase_ == ConstraintOneofCase.NoOverlap2D) {
4314  subBuilder.MergeFrom(NoOverlap2D);
4315  }
4316  input.ReadMessage(subBuilder);
4317  NoOverlap2D = subBuilder;
4318  break;
4319  }
4320  case 178: {
4321  global::Google.OrTools.Sat.CumulativeConstraintProto subBuilder = new global::Google.OrTools.Sat.CumulativeConstraintProto();
4322  if (constraintCase_ == ConstraintOneofCase.Cumulative) {
4323  subBuilder.MergeFrom(Cumulative);
4324  }
4325  input.ReadMessage(subBuilder);
4326  Cumulative = subBuilder;
4327  break;
4328  }
4329  case 186: {
4330  global::Google.OrTools.Sat.RoutesConstraintProto subBuilder = new global::Google.OrTools.Sat.RoutesConstraintProto();
4331  if (constraintCase_ == ConstraintOneofCase.Routes) {
4332  subBuilder.MergeFrom(Routes);
4333  }
4334  input.ReadMessage(subBuilder);
4335  Routes = subBuilder;
4336  break;
4337  }
4338  case 194: {
4339  global::Google.OrTools.Sat.ReservoirConstraintProto subBuilder = new global::Google.OrTools.Sat.ReservoirConstraintProto();
4340  if (constraintCase_ == ConstraintOneofCase.Reservoir) {
4341  subBuilder.MergeFrom(Reservoir);
4342  }
4343  input.ReadMessage(subBuilder);
4344  Reservoir = subBuilder;
4345  break;
4346  }
4347  case 202: {
4348  global::Google.OrTools.Sat.CircuitCoveringConstraintProto subBuilder = new global::Google.OrTools.Sat.CircuitCoveringConstraintProto();
4349  if (constraintCase_ == ConstraintOneofCase.CircuitCovering) {
4350  subBuilder.MergeFrom(CircuitCovering);
4351  }
4352  input.ReadMessage(subBuilder);
4353  CircuitCovering = subBuilder;
4354  break;
4355  }
4356  case 210: {
4357  global::Google.OrTools.Sat.BoolArgumentProto subBuilder = new global::Google.OrTools.Sat.BoolArgumentProto();
4358  if (constraintCase_ == ConstraintOneofCase.AtMostOne) {
4359  subBuilder.MergeFrom(AtMostOne);
4360  }
4361  input.ReadMessage(subBuilder);
4362  AtMostOne = subBuilder;
4363  break;
4364  }
4365  }
4366  }
4367  }
4368 
4369  }
4370 
4376  public sealed partial class CpObjectiveProto : pb::IMessage<CpObjectiveProto> {
4377  private static readonly pb::MessageParser<CpObjectiveProto> _parser = new pb::MessageParser<CpObjectiveProto>(() => new CpObjectiveProto());
4378  private pb::UnknownFieldSet _unknownFields;
4379  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4380  public static pb::MessageParser<CpObjectiveProto> Parser { get { return _parser; } }
4381 
4382  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4383  public static pbr::MessageDescriptor Descriptor {
4384  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[18]; }
4385  }
4386 
4387  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4388  pbr::MessageDescriptor pb::IMessage.Descriptor {
4389  get { return Descriptor; }
4390  }
4391 
4392  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4393  public CpObjectiveProto() {
4394  OnConstruction();
4395  }
4396 
4397  partial void OnConstruction();
4398 
4399  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4400  public CpObjectiveProto(CpObjectiveProto other) : this() {
4401  vars_ = other.vars_.Clone();
4402  coeffs_ = other.coeffs_.Clone();
4403  offset_ = other.offset_;
4404  scalingFactor_ = other.scalingFactor_;
4405  domain_ = other.domain_.Clone();
4406  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4407  }
4408 
4409  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4411  return new CpObjectiveProto(this);
4412  }
4413 
4415  public const int VarsFieldNumber = 1;
4416  private static readonly pb::FieldCodec<int> _repeated_vars_codec
4417  = pb::FieldCodec.ForInt32(10);
4418  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
4424  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4425  public pbc::RepeatedField<int> Vars {
4426  get { return vars_; }
4427  }
4428 
4430  public const int CoeffsFieldNumber = 4;
4431  private static readonly pb::FieldCodec<long> _repeated_coeffs_codec
4432  = pb::FieldCodec.ForInt64(34);
4433  private readonly pbc::RepeatedField<long> coeffs_ = new pbc::RepeatedField<long>();
4434  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4435  public pbc::RepeatedField<long> Coeffs {
4436  get { return coeffs_; }
4437  }
4438 
4440  public const int OffsetFieldNumber = 2;
4441  private double offset_;
4451  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4452  public double Offset {
4453  get { return offset_; }
4454  set {
4455  offset_ = value;
4456  }
4457  }
4458 
4460  public const int ScalingFactorFieldNumber = 3;
4461  private double scalingFactor_;
4462  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4463  public double ScalingFactor {
4464  get { return scalingFactor_; }
4465  set {
4466  scalingFactor_ = value;
4467  }
4468  }
4469 
4471  public const int DomainFieldNumber = 5;
4472  private static readonly pb::FieldCodec<long> _repeated_domain_codec
4473  = pb::FieldCodec.ForInt64(42);
4474  private readonly pbc::RepeatedField<long> domain_ = new pbc::RepeatedField<long>();
4480  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4481  public pbc::RepeatedField<long> Domain {
4482  get { return domain_; }
4483  }
4484 
4485  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4486  public override bool Equals(object other) {
4487  return Equals(other as CpObjectiveProto);
4488  }
4489 
4490  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4491  public bool Equals(CpObjectiveProto other) {
4492  if (ReferenceEquals(other, null)) {
4493  return false;
4494  }
4495  if (ReferenceEquals(other, this)) {
4496  return true;
4497  }
4498  if(!vars_.Equals(other.vars_)) return false;
4499  if(!coeffs_.Equals(other.coeffs_)) return false;
4500  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(Offset, other.Offset)) return false;
4501  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ScalingFactor, other.ScalingFactor)) return false;
4502  if(!domain_.Equals(other.domain_)) return false;
4503  return Equals(_unknownFields, other._unknownFields);
4504  }
4505 
4506  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4507  public override int GetHashCode() {
4508  int hash = 1;
4509  hash ^= vars_.GetHashCode();
4510  hash ^= coeffs_.GetHashCode();
4511  if (Offset != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Offset);
4512  if (ScalingFactor != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ScalingFactor);
4513  hash ^= domain_.GetHashCode();
4514  if (_unknownFields != null) {
4515  hash ^= _unknownFields.GetHashCode();
4516  }
4517  return hash;
4518  }
4519 
4520  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4521  public override string ToString() {
4522  return pb::JsonFormatter.ToDiagnosticString(this);
4523  }
4524 
4525  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4526  public void WriteTo(pb::CodedOutputStream output) {
4527  vars_.WriteTo(output, _repeated_vars_codec);
4528  if (Offset != 0D) {
4529  output.WriteRawTag(17);
4530  output.WriteDouble(Offset);
4531  }
4532  if (ScalingFactor != 0D) {
4533  output.WriteRawTag(25);
4534  output.WriteDouble(ScalingFactor);
4535  }
4536  coeffs_.WriteTo(output, _repeated_coeffs_codec);
4537  domain_.WriteTo(output, _repeated_domain_codec);
4538  if (_unknownFields != null) {
4539  _unknownFields.WriteTo(output);
4540  }
4541  }
4542 
4543  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4544  public int CalculateSize() {
4545  int size = 0;
4546  size += vars_.CalculateSize(_repeated_vars_codec);
4547  size += coeffs_.CalculateSize(_repeated_coeffs_codec);
4548  if (Offset != 0D) {
4549  size += 1 + 8;
4550  }
4551  if (ScalingFactor != 0D) {
4552  size += 1 + 8;
4553  }
4554  size += domain_.CalculateSize(_repeated_domain_codec);
4555  if (_unknownFields != null) {
4556  size += _unknownFields.CalculateSize();
4557  }
4558  return size;
4559  }
4560 
4561  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4562  public void MergeFrom(CpObjectiveProto other) {
4563  if (other == null) {
4564  return;
4565  }
4566  vars_.Add(other.vars_);
4567  coeffs_.Add(other.coeffs_);
4568  if (other.Offset != 0D) {
4569  Offset = other.Offset;
4570  }
4571  if (other.ScalingFactor != 0D) {
4572  ScalingFactor = other.ScalingFactor;
4573  }
4574  domain_.Add(other.domain_);
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  case 8: {
4588  vars_.AddEntriesFrom(input, _repeated_vars_codec);
4589  break;
4590  }
4591  case 17: {
4592  Offset = input.ReadDouble();
4593  break;
4594  }
4595  case 25: {
4596  ScalingFactor = input.ReadDouble();
4597  break;
4598  }
4599  case 34:
4600  case 32: {
4601  coeffs_.AddEntriesFrom(input, _repeated_coeffs_codec);
4602  break;
4603  }
4604  case 42:
4605  case 40: {
4606  domain_.AddEntriesFrom(input, _repeated_domain_codec);
4607  break;
4608  }
4609  }
4610  }
4611  }
4612 
4613  }
4614 
4619  public sealed partial class DecisionStrategyProto : pb::IMessage<DecisionStrategyProto> {
4620  private static readonly pb::MessageParser<DecisionStrategyProto> _parser = new pb::MessageParser<DecisionStrategyProto>(() => new DecisionStrategyProto());
4621  private pb::UnknownFieldSet _unknownFields;
4622  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4623  public static pb::MessageParser<DecisionStrategyProto> Parser { get { return _parser; } }
4624 
4625  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4626  public static pbr::MessageDescriptor Descriptor {
4627  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[19]; }
4628  }
4629 
4630  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4631  pbr::MessageDescriptor pb::IMessage.Descriptor {
4632  get { return Descriptor; }
4633  }
4634 
4635  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4637  OnConstruction();
4638  }
4639 
4640  partial void OnConstruction();
4641 
4642  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4644  variables_ = other.variables_.Clone();
4645  variableSelectionStrategy_ = other.variableSelectionStrategy_;
4646  domainReductionStrategy_ = other.domainReductionStrategy_;
4647  transformations_ = other.transformations_.Clone();
4648  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4649  }
4650 
4651  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4653  return new DecisionStrategyProto(this);
4654  }
4655 
4657  public const int VariablesFieldNumber = 1;
4658  private static readonly pb::FieldCodec<int> _repeated_variables_codec
4659  = pb::FieldCodec.ForInt32(10);
4660  private readonly pbc::RepeatedField<int> variables_ = new pbc::RepeatedField<int>();
4666  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4667  public pbc::RepeatedField<int> Variables {
4668  get { return variables_; }
4669  }
4670 
4672  public const int VariableSelectionStrategyFieldNumber = 2;
4673  private global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy variableSelectionStrategy_ = 0;
4674  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4675  public global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy VariableSelectionStrategy {
4676  get { return variableSelectionStrategy_; }
4677  set {
4678  variableSelectionStrategy_ = value;
4679  }
4680  }
4681 
4683  public const int DomainReductionStrategyFieldNumber = 3;
4684  private global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy domainReductionStrategy_ = 0;
4685  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4686  public global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy DomainReductionStrategy {
4687  get { return domainReductionStrategy_; }
4688  set {
4689  domainReductionStrategy_ = value;
4690  }
4691  }
4692 
4694  public const int TransformationsFieldNumber = 4;
4695  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation> _repeated_transformations_codec
4696  = pb::FieldCodec.ForMessage(34, global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation.Parser);
4697  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation> transformations_ = new pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation>();
4698  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4699  public pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto.Types.AffineTransformation> Transformations {
4700  get { return transformations_; }
4701  }
4702 
4703  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4704  public override bool Equals(object other) {
4705  return Equals(other as DecisionStrategyProto);
4706  }
4707 
4708  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4709  public bool Equals(DecisionStrategyProto other) {
4710  if (ReferenceEquals(other, null)) {
4711  return false;
4712  }
4713  if (ReferenceEquals(other, this)) {
4714  return true;
4715  }
4716  if(!variables_.Equals(other.variables_)) return false;
4717  if (VariableSelectionStrategy != other.VariableSelectionStrategy) return false;
4718  if (DomainReductionStrategy != other.DomainReductionStrategy) return false;
4719  if(!transformations_.Equals(other.transformations_)) return false;
4720  return Equals(_unknownFields, other._unknownFields);
4721  }
4722 
4723  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4724  public override int GetHashCode() {
4725  int hash = 1;
4726  hash ^= variables_.GetHashCode();
4727  if (VariableSelectionStrategy != 0) hash ^= VariableSelectionStrategy.GetHashCode();
4728  if (DomainReductionStrategy != 0) hash ^= DomainReductionStrategy.GetHashCode();
4729  hash ^= transformations_.GetHashCode();
4730  if (_unknownFields != null) {
4731  hash ^= _unknownFields.GetHashCode();
4732  }
4733  return hash;
4734  }
4735 
4736  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4737  public override string ToString() {
4738  return pb::JsonFormatter.ToDiagnosticString(this);
4739  }
4740 
4741  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4742  public void WriteTo(pb::CodedOutputStream output) {
4743  variables_.WriteTo(output, _repeated_variables_codec);
4744  if (VariableSelectionStrategy != 0) {
4745  output.WriteRawTag(16);
4746  output.WriteEnum((int) VariableSelectionStrategy);
4747  }
4748  if (DomainReductionStrategy != 0) {
4749  output.WriteRawTag(24);
4750  output.WriteEnum((int) DomainReductionStrategy);
4751  }
4752  transformations_.WriteTo(output, _repeated_transformations_codec);
4753  if (_unknownFields != null) {
4754  _unknownFields.WriteTo(output);
4755  }
4756  }
4757 
4758  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4759  public int CalculateSize() {
4760  int size = 0;
4761  size += variables_.CalculateSize(_repeated_variables_codec);
4762  if (VariableSelectionStrategy != 0) {
4763  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) VariableSelectionStrategy);
4764  }
4765  if (DomainReductionStrategy != 0) {
4766  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DomainReductionStrategy);
4767  }
4768  size += transformations_.CalculateSize(_repeated_transformations_codec);
4769  if (_unknownFields != null) {
4770  size += _unknownFields.CalculateSize();
4771  }
4772  return size;
4773  }
4774 
4775  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4776  public void MergeFrom(DecisionStrategyProto other) {
4777  if (other == null) {
4778  return;
4779  }
4780  variables_.Add(other.variables_);
4781  if (other.VariableSelectionStrategy != 0) {
4782  VariableSelectionStrategy = other.VariableSelectionStrategy;
4783  }
4784  if (other.DomainReductionStrategy != 0) {
4785  DomainReductionStrategy = other.DomainReductionStrategy;
4786  }
4787  transformations_.Add(other.transformations_);
4788  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
4789  }
4790 
4791  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4792  public void MergeFrom(pb::CodedInputStream input) {
4793  uint tag;
4794  while ((tag = input.ReadTag()) != 0) {
4795  switch(tag) {
4796  default:
4797  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
4798  break;
4799  case 10:
4800  case 8: {
4801  variables_.AddEntriesFrom(input, _repeated_variables_codec);
4802  break;
4803  }
4804  case 16: {
4805  VariableSelectionStrategy = (global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy) input.ReadEnum();
4806  break;
4807  }
4808  case 24: {
4809  DomainReductionStrategy = (global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy) input.ReadEnum();
4810  break;
4811  }
4812  case 34: {
4813  transformations_.AddEntriesFrom(input, _repeated_transformations_codec);
4814  break;
4815  }
4816  }
4817  }
4818  }
4819 
4820  #region Nested types
4821  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4823  public static partial class Types {
4831  [pbr::OriginalName("CHOOSE_FIRST")] ChooseFirst = 0,
4832  [pbr::OriginalName("CHOOSE_LOWEST_MIN")] ChooseLowestMin = 1,
4833  [pbr::OriginalName("CHOOSE_HIGHEST_MAX")] ChooseHighestMax = 2,
4834  [pbr::OriginalName("CHOOSE_MIN_DOMAIN_SIZE")] ChooseMinDomainSize = 3,
4835  [pbr::OriginalName("CHOOSE_MAX_DOMAIN_SIZE")] ChooseMaxDomainSize = 4,
4836  }
4837 
4845  [pbr::OriginalName("SELECT_MIN_VALUE")] SelectMinValue = 0,
4846  [pbr::OriginalName("SELECT_MAX_VALUE")] SelectMaxValue = 1,
4847  [pbr::OriginalName("SELECT_LOWER_HALF")] SelectLowerHalf = 2,
4848  [pbr::OriginalName("SELECT_UPPER_HALF")] SelectUpperHalf = 3,
4849  }
4850 
4857  public sealed partial class AffineTransformation : pb::IMessage<AffineTransformation> {
4858  private static readonly pb::MessageParser<AffineTransformation> _parser = new pb::MessageParser<AffineTransformation>(() => new AffineTransformation());
4859  private pb::UnknownFieldSet _unknownFields;
4860  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4861  public static pb::MessageParser<AffineTransformation> Parser { get { return _parser; } }
4862 
4863  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4864  public static pbr::MessageDescriptor Descriptor {
4865  get { return global::Google.OrTools.Sat.DecisionStrategyProto.Descriptor.NestedTypes[0]; }
4866  }
4867 
4868  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4869  pbr::MessageDescriptor pb::IMessage.Descriptor {
4870  get { return Descriptor; }
4871  }
4872 
4873  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4875  OnConstruction();
4876  }
4877 
4878  partial void OnConstruction();
4879 
4880  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4882  var_ = other.var_;
4883  offset_ = other.offset_;
4884  positiveCoeff_ = other.positiveCoeff_;
4885  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
4886  }
4887 
4888  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4890  return new AffineTransformation(this);
4891  }
4892 
4894  public const int VarFieldNumber = 1;
4895  private int var_;
4896  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4897  public int Var {
4898  get { return var_; }
4899  set {
4900  var_ = value;
4901  }
4902  }
4903 
4905  public const int OffsetFieldNumber = 2;
4906  private long offset_;
4907  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4908  public long Offset {
4909  get { return offset_; }
4910  set {
4911  offset_ = value;
4912  }
4913  }
4914 
4916  public const int PositiveCoeffFieldNumber = 3;
4917  private long positiveCoeff_;
4918  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4919  public long PositiveCoeff {
4920  get { return positiveCoeff_; }
4921  set {
4922  positiveCoeff_ = value;
4923  }
4924  }
4925 
4926  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4927  public override bool Equals(object other) {
4928  return Equals(other as AffineTransformation);
4929  }
4930 
4931  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4932  public bool Equals(AffineTransformation other) {
4933  if (ReferenceEquals(other, null)) {
4934  return false;
4935  }
4936  if (ReferenceEquals(other, this)) {
4937  return true;
4938  }
4939  if (Var != other.Var) return false;
4940  if (Offset != other.Offset) return false;
4941  if (PositiveCoeff != other.PositiveCoeff) return false;
4942  return Equals(_unknownFields, other._unknownFields);
4943  }
4944 
4945  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4946  public override int GetHashCode() {
4947  int hash = 1;
4948  if (Var != 0) hash ^= Var.GetHashCode();
4949  if (Offset != 0L) hash ^= Offset.GetHashCode();
4950  if (PositiveCoeff != 0L) hash ^= PositiveCoeff.GetHashCode();
4951  if (_unknownFields != null) {
4952  hash ^= _unknownFields.GetHashCode();
4953  }
4954  return hash;
4955  }
4956 
4957  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4958  public override string ToString() {
4959  return pb::JsonFormatter.ToDiagnosticString(this);
4960  }
4961 
4962  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4963  public void WriteTo(pb::CodedOutputStream output) {
4964  if (Var != 0) {
4965  output.WriteRawTag(8);
4966  output.WriteInt32(Var);
4967  }
4968  if (Offset != 0L) {
4969  output.WriteRawTag(16);
4970  output.WriteInt64(Offset);
4971  }
4972  if (PositiveCoeff != 0L) {
4973  output.WriteRawTag(24);
4974  output.WriteInt64(PositiveCoeff);
4975  }
4976  if (_unknownFields != null) {
4977  _unknownFields.WriteTo(output);
4978  }
4979  }
4980 
4981  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
4982  public int CalculateSize() {
4983  int size = 0;
4984  if (Var != 0) {
4985  size += 1 + pb::CodedOutputStream.ComputeInt32Size(Var);
4986  }
4987  if (Offset != 0L) {
4988  size += 1 + pb::CodedOutputStream.ComputeInt64Size(Offset);
4989  }
4990  if (PositiveCoeff != 0L) {
4991  size += 1 + pb::CodedOutputStream.ComputeInt64Size(PositiveCoeff);
4992  }
4993  if (_unknownFields != null) {
4994  size += _unknownFields.CalculateSize();
4995  }
4996  return size;
4997  }
4998 
4999  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5000  public void MergeFrom(AffineTransformation other) {
5001  if (other == null) {
5002  return;
5003  }
5004  if (other.Var != 0) {
5005  Var = other.Var;
5006  }
5007  if (other.Offset != 0L) {
5008  Offset = other.Offset;
5009  }
5010  if (other.PositiveCoeff != 0L) {
5011  PositiveCoeff = other.PositiveCoeff;
5012  }
5013  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5014  }
5015 
5016  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5017  public void MergeFrom(pb::CodedInputStream input) {
5018  uint tag;
5019  while ((tag = input.ReadTag()) != 0) {
5020  switch(tag) {
5021  default:
5022  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5023  break;
5024  case 8: {
5025  Var = input.ReadInt32();
5026  break;
5027  }
5028  case 16: {
5029  Offset = input.ReadInt64();
5030  break;
5031  }
5032  case 24: {
5033  PositiveCoeff = input.ReadInt64();
5034  break;
5035  }
5036  }
5037  }
5038  }
5039 
5040  }
5041 
5042  }
5043  #endregion
5044 
5045  }
5046 
5052  public sealed partial class PartialVariableAssignment : pb::IMessage<PartialVariableAssignment> {
5053  private static readonly pb::MessageParser<PartialVariableAssignment> _parser = new pb::MessageParser<PartialVariableAssignment>(() => new PartialVariableAssignment());
5054  private pb::UnknownFieldSet _unknownFields;
5055  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5056  public static pb::MessageParser<PartialVariableAssignment> Parser { get { return _parser; } }
5057 
5058  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5059  public static pbr::MessageDescriptor Descriptor {
5060  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[20]; }
5061  }
5062 
5063  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5064  pbr::MessageDescriptor pb::IMessage.Descriptor {
5065  get { return Descriptor; }
5066  }
5067 
5068  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5070  OnConstruction();
5071  }
5072 
5073  partial void OnConstruction();
5074 
5075  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5077  vars_ = other.vars_.Clone();
5078  values_ = other.values_.Clone();
5079  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5080  }
5081 
5082  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5084  return new PartialVariableAssignment(this);
5085  }
5086 
5088  public const int VarsFieldNumber = 1;
5089  private static readonly pb::FieldCodec<int> _repeated_vars_codec
5090  = pb::FieldCodec.ForInt32(10);
5091  private readonly pbc::RepeatedField<int> vars_ = new pbc::RepeatedField<int>();
5092  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5093  public pbc::RepeatedField<int> Vars {
5094  get { return vars_; }
5095  }
5096 
5098  public const int ValuesFieldNumber = 2;
5099  private static readonly pb::FieldCodec<long> _repeated_values_codec
5100  = pb::FieldCodec.ForInt64(18);
5101  private readonly pbc::RepeatedField<long> values_ = new pbc::RepeatedField<long>();
5102  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5103  public pbc::RepeatedField<long> Values {
5104  get { return values_; }
5105  }
5106 
5107  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5108  public override bool Equals(object other) {
5109  return Equals(other as PartialVariableAssignment);
5110  }
5111 
5112  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5113  public bool Equals(PartialVariableAssignment other) {
5114  if (ReferenceEquals(other, null)) {
5115  return false;
5116  }
5117  if (ReferenceEquals(other, this)) {
5118  return true;
5119  }
5120  if(!vars_.Equals(other.vars_)) return false;
5121  if(!values_.Equals(other.values_)) return false;
5122  return Equals(_unknownFields, other._unknownFields);
5123  }
5124 
5125  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5126  public override int GetHashCode() {
5127  int hash = 1;
5128  hash ^= vars_.GetHashCode();
5129  hash ^= values_.GetHashCode();
5130  if (_unknownFields != null) {
5131  hash ^= _unknownFields.GetHashCode();
5132  }
5133  return hash;
5134  }
5135 
5136  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5137  public override string ToString() {
5138  return pb::JsonFormatter.ToDiagnosticString(this);
5139  }
5140 
5141  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5142  public void WriteTo(pb::CodedOutputStream output) {
5143  vars_.WriteTo(output, _repeated_vars_codec);
5144  values_.WriteTo(output, _repeated_values_codec);
5145  if (_unknownFields != null) {
5146  _unknownFields.WriteTo(output);
5147  }
5148  }
5149 
5150  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5151  public int CalculateSize() {
5152  int size = 0;
5153  size += vars_.CalculateSize(_repeated_vars_codec);
5154  size += values_.CalculateSize(_repeated_values_codec);
5155  if (_unknownFields != null) {
5156  size += _unknownFields.CalculateSize();
5157  }
5158  return size;
5159  }
5160 
5161  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5163  if (other == null) {
5164  return;
5165  }
5166  vars_.Add(other.vars_);
5167  values_.Add(other.values_);
5168  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5169  }
5170 
5171  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5172  public void MergeFrom(pb::CodedInputStream input) {
5173  uint tag;
5174  while ((tag = input.ReadTag()) != 0) {
5175  switch(tag) {
5176  default:
5177  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5178  break;
5179  case 10:
5180  case 8: {
5181  vars_.AddEntriesFrom(input, _repeated_vars_codec);
5182  break;
5183  }
5184  case 18:
5185  case 16: {
5186  values_.AddEntriesFrom(input, _repeated_values_codec);
5187  break;
5188  }
5189  }
5190  }
5191  }
5192 
5193  }
5194 
5198  public sealed partial class CpModelProto : pb::IMessage<CpModelProto> {
5199  private static readonly pb::MessageParser<CpModelProto> _parser = new pb::MessageParser<CpModelProto>(() => new CpModelProto());
5200  private pb::UnknownFieldSet _unknownFields;
5201  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5202  public static pb::MessageParser<CpModelProto> Parser { get { return _parser; } }
5203 
5204  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5205  public static pbr::MessageDescriptor Descriptor {
5206  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[21]; }
5207  }
5208 
5209  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5210  pbr::MessageDescriptor pb::IMessage.Descriptor {
5211  get { return Descriptor; }
5212  }
5213 
5214  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5215  public CpModelProto() {
5216  OnConstruction();
5217  }
5218 
5219  partial void OnConstruction();
5220 
5221  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5222  public CpModelProto(CpModelProto other) : this() {
5223  name_ = other.name_;
5224  variables_ = other.variables_.Clone();
5225  constraints_ = other.constraints_.Clone();
5226  objective_ = other.objective_ != null ? other.objective_.Clone() : null;
5227  searchStrategy_ = other.searchStrategy_.Clone();
5228  solutionHint_ = other.solutionHint_ != null ? other.solutionHint_.Clone() : null;
5229  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5230  }
5231 
5232  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5233  public CpModelProto Clone() {
5234  return new CpModelProto(this);
5235  }
5236 
5238  public const int NameFieldNumber = 1;
5239  private string name_ = "";
5243  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5244  public string Name {
5245  get { return name_; }
5246  set {
5247  name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5248  }
5249  }
5250 
5252  public const int VariablesFieldNumber = 2;
5253  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.IntegerVariableProto> _repeated_variables_codec
5254  = pb::FieldCodec.ForMessage(18, global::Google.OrTools.Sat.IntegerVariableProto.Parser);
5255  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto> variables_ = new pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto>();
5259  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5260  public pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto> Variables {
5261  get { return variables_; }
5262  }
5263 
5265  public const int ConstraintsFieldNumber = 3;
5266  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.ConstraintProto> _repeated_constraints_codec
5267  = pb::FieldCodec.ForMessage(26, global::Google.OrTools.Sat.ConstraintProto.Parser);
5268  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.ConstraintProto> constraints_ = new pbc::RepeatedField<global::Google.OrTools.Sat.ConstraintProto>();
5269  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5270  public pbc::RepeatedField<global::Google.OrTools.Sat.ConstraintProto> Constraints {
5271  get { return constraints_; }
5272  }
5273 
5275  public const int ObjectiveFieldNumber = 4;
5276  private global::Google.OrTools.Sat.CpObjectiveProto objective_;
5280  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5281  public global::Google.OrTools.Sat.CpObjectiveProto Objective {
5282  get { return objective_; }
5283  set {
5284  objective_ = value;
5285  }
5286  }
5287 
5289  public const int SearchStrategyFieldNumber = 5;
5290  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.DecisionStrategyProto> _repeated_searchStrategy_codec
5291  = pb::FieldCodec.ForMessage(42, global::Google.OrTools.Sat.DecisionStrategyProto.Parser);
5292  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto> searchStrategy_ = new pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto>();
5305  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5306  public pbc::RepeatedField<global::Google.OrTools.Sat.DecisionStrategyProto> SearchStrategy {
5307  get { return searchStrategy_; }
5308  }
5309 
5311  public const int SolutionHintFieldNumber = 6;
5312  private global::Google.OrTools.Sat.PartialVariableAssignment solutionHint_;
5326  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5327  public global::Google.OrTools.Sat.PartialVariableAssignment SolutionHint {
5328  get { return solutionHint_; }
5329  set {
5330  solutionHint_ = value;
5331  }
5332  }
5333 
5334  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5335  public override bool Equals(object other) {
5336  return Equals(other as CpModelProto);
5337  }
5338 
5339  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5340  public bool Equals(CpModelProto other) {
5341  if (ReferenceEquals(other, null)) {
5342  return false;
5343  }
5344  if (ReferenceEquals(other, this)) {
5345  return true;
5346  }
5347  if (Name != other.Name) return false;
5348  if(!variables_.Equals(other.variables_)) return false;
5349  if(!constraints_.Equals(other.constraints_)) return false;
5350  if (!object.Equals(Objective, other.Objective)) return false;
5351  if(!searchStrategy_.Equals(other.searchStrategy_)) return false;
5352  if (!object.Equals(SolutionHint, other.SolutionHint)) return false;
5353  return Equals(_unknownFields, other._unknownFields);
5354  }
5355 
5356  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5357  public override int GetHashCode() {
5358  int hash = 1;
5359  if (Name.Length != 0) hash ^= Name.GetHashCode();
5360  hash ^= variables_.GetHashCode();
5361  hash ^= constraints_.GetHashCode();
5362  if (objective_ != null) hash ^= Objective.GetHashCode();
5363  hash ^= searchStrategy_.GetHashCode();
5364  if (solutionHint_ != null) hash ^= SolutionHint.GetHashCode();
5365  if (_unknownFields != null) {
5366  hash ^= _unknownFields.GetHashCode();
5367  }
5368  return hash;
5369  }
5370 
5371  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5372  public override string ToString() {
5373  return pb::JsonFormatter.ToDiagnosticString(this);
5374  }
5375 
5376  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5377  public void WriteTo(pb::CodedOutputStream output) {
5378  if (Name.Length != 0) {
5379  output.WriteRawTag(10);
5380  output.WriteString(Name);
5381  }
5382  variables_.WriteTo(output, _repeated_variables_codec);
5383  constraints_.WriteTo(output, _repeated_constraints_codec);
5384  if (objective_ != null) {
5385  output.WriteRawTag(34);
5386  output.WriteMessage(Objective);
5387  }
5388  searchStrategy_.WriteTo(output, _repeated_searchStrategy_codec);
5389  if (solutionHint_ != null) {
5390  output.WriteRawTag(50);
5391  output.WriteMessage(SolutionHint);
5392  }
5393  if (_unknownFields != null) {
5394  _unknownFields.WriteTo(output);
5395  }
5396  }
5397 
5398  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5399  public int CalculateSize() {
5400  int size = 0;
5401  if (Name.Length != 0) {
5402  size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
5403  }
5404  size += variables_.CalculateSize(_repeated_variables_codec);
5405  size += constraints_.CalculateSize(_repeated_constraints_codec);
5406  if (objective_ != null) {
5407  size += 1 + pb::CodedOutputStream.ComputeMessageSize(Objective);
5408  }
5409  size += searchStrategy_.CalculateSize(_repeated_searchStrategy_codec);
5410  if (solutionHint_ != null) {
5411  size += 1 + pb::CodedOutputStream.ComputeMessageSize(SolutionHint);
5412  }
5413  if (_unknownFields != null) {
5414  size += _unknownFields.CalculateSize();
5415  }
5416  return size;
5417  }
5418 
5419  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5420  public void MergeFrom(CpModelProto other) {
5421  if (other == null) {
5422  return;
5423  }
5424  if (other.Name.Length != 0) {
5425  Name = other.Name;
5426  }
5427  variables_.Add(other.variables_);
5428  constraints_.Add(other.constraints_);
5429  if (other.objective_ != null) {
5430  if (objective_ == null) {
5431  Objective = new global::Google.OrTools.Sat.CpObjectiveProto();
5432  }
5433  Objective.MergeFrom(other.Objective);
5434  }
5435  searchStrategy_.Add(other.searchStrategy_);
5436  if (other.solutionHint_ != null) {
5437  if (solutionHint_ == null) {
5438  SolutionHint = new global::Google.OrTools.Sat.PartialVariableAssignment();
5439  }
5440  SolutionHint.MergeFrom(other.SolutionHint);
5441  }
5442  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
5443  }
5444 
5445  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5446  public void MergeFrom(pb::CodedInputStream input) {
5447  uint tag;
5448  while ((tag = input.ReadTag()) != 0) {
5449  switch(tag) {
5450  default:
5451  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
5452  break;
5453  case 10: {
5454  Name = input.ReadString();
5455  break;
5456  }
5457  case 18: {
5458  variables_.AddEntriesFrom(input, _repeated_variables_codec);
5459  break;
5460  }
5461  case 26: {
5462  constraints_.AddEntriesFrom(input, _repeated_constraints_codec);
5463  break;
5464  }
5465  case 34: {
5466  if (objective_ == null) {
5467  Objective = new global::Google.OrTools.Sat.CpObjectiveProto();
5468  }
5469  input.ReadMessage(Objective);
5470  break;
5471  }
5472  case 42: {
5473  searchStrategy_.AddEntriesFrom(input, _repeated_searchStrategy_codec);
5474  break;
5475  }
5476  case 50: {
5477  if (solutionHint_ == null) {
5478  SolutionHint = new global::Google.OrTools.Sat.PartialVariableAssignment();
5479  }
5480  input.ReadMessage(SolutionHint);
5481  break;
5482  }
5483  }
5484  }
5485  }
5486 
5487  }
5488 
5495  public sealed partial class CpSolverResponse : pb::IMessage<CpSolverResponse> {
5496  private static readonly pb::MessageParser<CpSolverResponse> _parser = new pb::MessageParser<CpSolverResponse>(() => new CpSolverResponse());
5497  private pb::UnknownFieldSet _unknownFields;
5498  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5499  public static pb::MessageParser<CpSolverResponse> Parser { get { return _parser; } }
5500 
5501  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5502  public static pbr::MessageDescriptor Descriptor {
5503  get { return global::Google.OrTools.Sat.CpModelReflection.Descriptor.MessageTypes[22]; }
5504  }
5505 
5506  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5507  pbr::MessageDescriptor pb::IMessage.Descriptor {
5508  get { return Descriptor; }
5509  }
5510 
5511  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5512  public CpSolverResponse() {
5513  OnConstruction();
5514  }
5515 
5516  partial void OnConstruction();
5517 
5518  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5519  public CpSolverResponse(CpSolverResponse other) : this() {
5520  status_ = other.status_;
5521  solution_ = other.solution_.Clone();
5522  objectiveValue_ = other.objectiveValue_;
5523  bestObjectiveBound_ = other.bestObjectiveBound_;
5524  solutionLowerBounds_ = other.solutionLowerBounds_.Clone();
5525  solutionUpperBounds_ = other.solutionUpperBounds_.Clone();
5526  tightenedVariables_ = other.tightenedVariables_.Clone();
5527  allSolutionsWereFound_ = other.allSolutionsWereFound_;
5528  numBooleans_ = other.numBooleans_;
5529  numConflicts_ = other.numConflicts_;
5530  numBranches_ = other.numBranches_;
5531  numBinaryPropagations_ = other.numBinaryPropagations_;
5532  numIntegerPropagations_ = other.numIntegerPropagations_;
5533  wallTime_ = other.wallTime_;
5534  userTime_ = other.userTime_;
5535  deterministicTime_ = other.deterministicTime_;
5536  solutionInfo_ = other.solutionInfo_;
5537  _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
5538  }
5539 
5540  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5542  return new CpSolverResponse(this);
5543  }
5544 
5546  public const int StatusFieldNumber = 1;
5547  private global::Google.OrTools.Sat.CpSolverStatus status_ = 0;
5551  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5552  public global::Google.OrTools.Sat.CpSolverStatus Status {
5553  get { return status_; }
5554  set {
5555  status_ = value;
5556  }
5557  }
5558 
5560  public const int SolutionFieldNumber = 2;
5561  private static readonly pb::FieldCodec<long> _repeated_solution_codec
5562  = pb::FieldCodec.ForInt64(18);
5563  private readonly pbc::RepeatedField<long> solution_ = new pbc::RepeatedField<long>();
5570  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5571  public pbc::RepeatedField<long> Solution {
5572  get { return solution_; }
5573  }
5574 
5576  public const int ObjectiveValueFieldNumber = 3;
5577  private double objectiveValue_;
5584  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5585  public double ObjectiveValue {
5586  get { return objectiveValue_; }
5587  set {
5588  objectiveValue_ = value;
5589  }
5590  }
5591 
5593  public const int BestObjectiveBoundFieldNumber = 4;
5594  private double bestObjectiveBound_;
5600  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5601  public double BestObjectiveBound {
5602  get { return bestObjectiveBound_; }
5603  set {
5604  bestObjectiveBound_ = value;
5605  }
5606  }
5607 
5609  public const int SolutionLowerBoundsFieldNumber = 18;
5610  private static readonly pb::FieldCodec<long> _repeated_solutionLowerBounds_codec
5611  = pb::FieldCodec.ForInt64(146);
5612  private readonly pbc::RepeatedField<long> solutionLowerBounds_ = new pbc::RepeatedField<long>();
5622  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5623  public pbc::RepeatedField<long> SolutionLowerBounds {
5624  get { return solutionLowerBounds_; }
5625  }
5626 
5628  public const int SolutionUpperBoundsFieldNumber = 19;
5629  private static readonly pb::FieldCodec<long> _repeated_solutionUpperBounds_codec
5630  = pb::FieldCodec.ForInt64(154);
5631  private readonly pbc::RepeatedField<long> solutionUpperBounds_ = new pbc::RepeatedField<long>();
5632  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5633  public pbc::RepeatedField<long> SolutionUpperBounds {
5634  get { return solutionUpperBounds_; }
5635  }
5636 
5638  public const int TightenedVariablesFieldNumber = 21;
5639  private static readonly pb::FieldCodec<global::Google.OrTools.Sat.IntegerVariableProto> _repeated_tightenedVariables_codec
5640  = pb::FieldCodec.ForMessage(170, global::Google.OrTools.Sat.IntegerVariableProto.Parser);
5641  private readonly pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto> tightenedVariables_ = new pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto>();
5656  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5657  public pbc::RepeatedField<global::Google.OrTools.Sat.IntegerVariableProto> TightenedVariables {
5658  get { return tightenedVariables_; }
5659  }
5660 
5662  public const int AllSolutionsWereFoundFieldNumber = 5;
5663  private bool allSolutionsWereFound_;
5671  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5672  public bool AllSolutionsWereFound {
5673  get { return allSolutionsWereFound_; }
5674  set {
5675  allSolutionsWereFound_ = value;
5676  }
5677  }
5678 
5680  public const int NumBooleansFieldNumber = 10;
5681  private long numBooleans_;
5685  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5686  public long NumBooleans {
5687  get { return numBooleans_; }
5688  set {
5689  numBooleans_ = value;
5690  }
5691  }
5692 
5694  public const int NumConflictsFieldNumber = 11;
5695  private long numConflicts_;
5696  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5697  public long NumConflicts {
5698  get { return numConflicts_; }
5699  set {
5700  numConflicts_ = value;
5701  }
5702  }
5703 
5705  public const int NumBranchesFieldNumber = 12;
5706  private long numBranches_;
5707  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5708  public long NumBranches {
5709  get { return numBranches_; }
5710  set {
5711  numBranches_ = value;
5712  }
5713  }
5714 
5716  public const int NumBinaryPropagationsFieldNumber = 13;
5717  private long numBinaryPropagations_;
5718  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5719  public long NumBinaryPropagations {
5720  get { return numBinaryPropagations_; }
5721  set {
5722  numBinaryPropagations_ = value;
5723  }
5724  }
5725 
5727  public const int NumIntegerPropagationsFieldNumber = 14;
5728  private long numIntegerPropagations_;
5729  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5730  public long NumIntegerPropagations {
5731  get { return numIntegerPropagations_; }
5732  set {
5733  numIntegerPropagations_ = value;
5734  }
5735  }
5736 
5738  public const int WallTimeFieldNumber = 15;
5739  private double wallTime_;
5740  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5741  public double WallTime {
5742  get { return wallTime_; }
5743  set {
5744  wallTime_ = value;
5745  }
5746  }
5747 
5749  public const int UserTimeFieldNumber = 16;
5750  private double userTime_;
5751  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5752  public double UserTime {
5753  get { return userTime_; }
5754  set {
5755  userTime_ = value;
5756  }
5757  }
5758 
5760  public const int DeterministicTimeFieldNumber = 17;
5761  private double deterministicTime_;
5762  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5763  public double DeterministicTime {
5764  get { return deterministicTime_; }
5765  set {
5766  deterministicTime_ = value;
5767  }
5768  }
5769 
5771  public const int SolutionInfoFieldNumber = 20;
5772  private string solutionInfo_ = "";
5776  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5777  public string SolutionInfo {
5778  get { return solutionInfo_; }
5779  set {
5780  solutionInfo_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5781  }
5782  }
5783 
5784  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5785  public override bool Equals(object other) {
5786  return Equals(other as CpSolverResponse);
5787  }
5788 
5789  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5790  public bool Equals(CpSolverResponse other) {
5791  if (ReferenceEquals(other, null)) {
5792  return false;
5793  }
5794  if (ReferenceEquals(other, this)) {
5795  return true;
5796  }
5797  if (Status != other.Status) return false;
5798  if(!solution_.Equals(other.solution_)) return false;
5799  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(ObjectiveValue, other.ObjectiveValue)) return false;
5800  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(BestObjectiveBound, other.BestObjectiveBound)) return false;
5801  if(!solutionLowerBounds_.Equals(other.solutionLowerBounds_)) return false;
5802  if(!solutionUpperBounds_.Equals(other.solutionUpperBounds_)) return false;
5803  if(!tightenedVariables_.Equals(other.tightenedVariables_)) return false;
5804  if (AllSolutionsWereFound != other.AllSolutionsWereFound) return false;
5805  if (NumBooleans != other.NumBooleans) return false;
5806  if (NumConflicts != other.NumConflicts) return false;
5807  if (NumBranches != other.NumBranches) return false;
5808  if (NumBinaryPropagations != other.NumBinaryPropagations) return false;
5809  if (NumIntegerPropagations != other.NumIntegerPropagations) return false;
5810  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(WallTime, other.WallTime)) return false;
5811  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(UserTime, other.UserTime)) return false;
5812  if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(DeterministicTime, other.DeterministicTime)) return false;
5813  if (SolutionInfo != other.SolutionInfo) return false;
5814  return Equals(_unknownFields, other._unknownFields);
5815  }
5816 
5817  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5818  public override int GetHashCode() {
5819  int hash = 1;
5820  if (Status != 0) hash ^= Status.GetHashCode();
5821  hash ^= solution_.GetHashCode();
5822  if (ObjectiveValue != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(ObjectiveValue);
5823  if (BestObjectiveBound != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(BestObjectiveBound);
5824  hash ^= solutionLowerBounds_.GetHashCode();
5825  hash ^= solutionUpperBounds_.GetHashCode();
5826  hash ^= tightenedVariables_.GetHashCode();
5827  if (AllSolutionsWereFound != false) hash ^= AllSolutionsWereFound.GetHashCode();
5828  if (NumBooleans != 0L) hash ^= NumBooleans.GetHashCode();
5829  if (NumConflicts != 0L) hash ^= NumConflicts.GetHashCode();
5830  if (NumBranches != 0L) hash ^= NumBranches.GetHashCode();
5831  if (NumBinaryPropagations != 0L) hash ^= NumBinaryPropagations.GetHashCode();
5832  if (NumIntegerPropagations != 0L) hash ^= NumIntegerPropagations.GetHashCode();
5833  if (WallTime != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(WallTime);
5834  if (UserTime != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(UserTime);
5835  if (DeterministicTime != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(DeterministicTime);
5836  if (SolutionInfo.Length != 0) hash ^= SolutionInfo.GetHashCode();
5837  if (_unknownFields != null) {
5838  hash ^= _unknownFields.GetHashCode();
5839  }
5840  return hash;
5841  }
5842 
5843  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5844  public override string ToString() {
5845  return pb::JsonFormatter.ToDiagnosticString(this);
5846  }
5847 
5848  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5849  public void WriteTo(pb::CodedOutputStream output) {
5850  if (Status != 0) {
5851  output.WriteRawTag(8);
5852  output.WriteEnum((int) Status);
5853  }
5854  solution_.WriteTo(output, _repeated_solution_codec);
5855  if (ObjectiveValue != 0D) {
5856  output.WriteRawTag(25);
5857  output.WriteDouble(ObjectiveValue);
5858  }
5859  if (BestObjectiveBound != 0D) {
5860  output.WriteRawTag(33);
5861  output.WriteDouble(BestObjectiveBound);
5862  }
5863  if (AllSolutionsWereFound != false) {
5864  output.WriteRawTag(40);
5865  output.WriteBool(AllSolutionsWereFound);
5866  }
5867  if (NumBooleans != 0L) {
5868  output.WriteRawTag(80);
5869  output.WriteInt64(NumBooleans);
5870  }
5871  if (NumConflicts != 0L) {
5872  output.WriteRawTag(88);
5873  output.WriteInt64(NumConflicts);
5874  }
5875  if (NumBranches != 0L) {
5876  output.WriteRawTag(96);
5877  output.WriteInt64(NumBranches);
5878  }
5879  if (NumBinaryPropagations != 0L) {
5880  output.WriteRawTag(104);
5881  output.WriteInt64(NumBinaryPropagations);
5882  }
5883  if (NumIntegerPropagations != 0L) {
5884  output.WriteRawTag(112);
5885  output.WriteInt64(NumIntegerPropagations);
5886  }
5887  if (WallTime != 0D) {
5888  output.WriteRawTag(121);
5889  output.WriteDouble(WallTime);
5890  }
5891  if (UserTime != 0D) {
5892  output.WriteRawTag(129, 1);
5893  output.WriteDouble(UserTime);
5894  }
5895  if (DeterministicTime != 0D) {
5896  output.WriteRawTag(137, 1);
5897  output.WriteDouble(DeterministicTime);
5898  }
5899  solutionLowerBounds_.WriteTo(output, _repeated_solutionLowerBounds_codec);
5900  solutionUpperBounds_.WriteTo(output, _repeated_solutionUpperBounds_codec);
5901  if (SolutionInfo.Length != 0) {
5902  output.WriteRawTag(162, 1);
5903  output.WriteString(SolutionInfo);
5904  }
5905  tightenedVariables_.WriteTo(output, _repeated_tightenedVariables_codec);
5906  if (_unknownFields != null) {
5907  _unknownFields.WriteTo(output);
5908  }
5909  }
5910 
5911  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5912  public int CalculateSize() {
5913  int size = 0;
5914  if (Status != 0) {
5915  size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
5916  }
5917  size += solution_.CalculateSize(_repeated_solution_codec);
5918  if (ObjectiveValue != 0D) {
5919  size += 1 + 8;
5920  }
5921  if (BestObjectiveBound != 0D) {
5922  size += 1 + 8;
5923  }
5924  size += solutionLowerBounds_.CalculateSize(_repeated_solutionLowerBounds_codec);
5925  size += solutionUpperBounds_.CalculateSize(_repeated_solutionUpperBounds_codec);
5926  size += tightenedVariables_.CalculateSize(_repeated_tightenedVariables_codec);
5927  if (AllSolutionsWereFound != false) {
5928  size += 1 + 1;
5929  }
5930  if (NumBooleans != 0L) {
5931  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumBooleans);
5932  }
5933  if (NumConflicts != 0L) {
5934  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumConflicts);
5935  }
5936  if (NumBranches != 0L) {
5937  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumBranches);
5938  }
5939  if (NumBinaryPropagations != 0L) {
5940  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumBinaryPropagations);
5941  }
5942  if (NumIntegerPropagations != 0L) {
5943  size += 1 + pb::CodedOutputStream.ComputeInt64Size(NumIntegerPropagations);
5944  }
5945  if (WallTime != 0D) {
5946  size += 1 + 8;
5947  }
5948  if (UserTime != 0D) {
5949  size += 2 + 8;
5950  }
5951  if (DeterministicTime != 0D) {
5952  size += 2 + 8;
5953  }
5954  if (SolutionInfo.Length != 0) {
5955  size += 2 + pb::CodedOutputStream.ComputeStringSize(SolutionInfo);
5956  }
5957  if (_unknownFields != null) {
5958  size += _unknownFields.CalculateSize();
5959  }
5960  return size;
5961  }
5962 
5963  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
5964  public void MergeFrom(CpSolverResponse other) {
5965  if (other == null) {
5966  return;
5967  }
5968  if (other.Status != 0) {
5969  Status = other.Status;
5970  }
5971  solution_.Add(other.solution_);
5972  if (other.ObjectiveValue != 0D) {
5973  ObjectiveValue = other.ObjectiveValue;
5974  }
5975  if (other.BestObjectiveBound != 0D) {
5976  BestObjectiveBound = other.BestObjectiveBound;
5977  }
5978  solutionLowerBounds_.Add(other.solutionLowerBounds_);
5979  solutionUpperBounds_.Add(other.solutionUpperBounds_);
5980  tightenedVariables_.Add(other.tightenedVariables_);
5981  if (other.AllSolutionsWereFound != false) {
5982  AllSolutionsWereFound = other.AllSolutionsWereFound;
5983  }
5984  if (other.NumBooleans != 0L) {
5985  NumBooleans = other.NumBooleans;
5986  }
5987  if (other.NumConflicts != 0L) {
5988  NumConflicts = other.NumConflicts;
5989  }
5990  if (other.NumBranches != 0L) {
5991  NumBranches = other.NumBranches;
5992  }
5993  if (other.NumBinaryPropagations != 0L) {
5994  NumBinaryPropagations = other.NumBinaryPropagations;
5995  }
5996  if (other.NumIntegerPropagations != 0L) {
5997  NumIntegerPropagations = other.NumIntegerPropagations;
5998  }
5999  if (other.WallTime != 0D) {
6000  WallTime = other.WallTime;
6001  }
6002  if (other.UserTime != 0D) {
6003  UserTime = other.UserTime;
6004  }
6005  if (other.DeterministicTime != 0D) {
6006  DeterministicTime = other.DeterministicTime;
6007  }
6008  if (other.SolutionInfo.Length != 0) {
6009  SolutionInfo = other.SolutionInfo;
6010  }
6011  _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
6012  }
6013 
6014  [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
6015  public void MergeFrom(pb::CodedInputStream input) {
6016  uint tag;
6017  while ((tag = input.ReadTag()) != 0) {
6018  switch(tag) {
6019  default:
6020  _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
6021  break;
6022  case 8: {
6023  Status = (global::Google.OrTools.Sat.CpSolverStatus) input.ReadEnum();
6024  break;
6025  }
6026  case 18:
6027  case 16: {
6028  solution_.AddEntriesFrom(input, _repeated_solution_codec);
6029  break;
6030  }
6031  case 25: {
6032  ObjectiveValue = input.ReadDouble();
6033  break;
6034  }
6035  case 33: {
6036  BestObjectiveBound = input.ReadDouble();
6037  break;
6038  }
6039  case 40: {
6040  AllSolutionsWereFound = input.ReadBool();
6041  break;
6042  }
6043  case 80: {
6044  NumBooleans = input.ReadInt64();
6045  break;
6046  }
6047  case 88: {
6048  NumConflicts = input.ReadInt64();
6049  break;
6050  }
6051  case 96: {
6052  NumBranches = input.ReadInt64();
6053  break;
6054  }
6055  case 104: {
6056  NumBinaryPropagations = input.ReadInt64();
6057  break;
6058  }
6059  case 112: {
6060  NumIntegerPropagations = input.ReadInt64();
6061  break;
6062  }
6063  case 121: {
6064  WallTime = input.ReadDouble();
6065  break;
6066  }
6067  case 129: {
6068  UserTime = input.ReadDouble();
6069  break;
6070  }
6071  case 137: {
6072  DeterministicTime = input.ReadDouble();
6073  break;
6074  }
6075  case 146:
6076  case 144: {
6077  solutionLowerBounds_.AddEntriesFrom(input, _repeated_solutionLowerBounds_codec);
6078  break;
6079  }
6080  case 154:
6081  case 152: {
6082  solutionUpperBounds_.AddEntriesFrom(input, _repeated_solutionUpperBounds_codec);
6083  break;
6084  }
6085  case 162: {
6086  SolutionInfo = input.ReadString();
6087  break;
6088  }
6089  case 170: {
6090  tightenedVariables_.AddEntriesFrom(input, _repeated_tightenedVariables_codec);
6091  break;
6092  }
6093  }
6094  }
6095  }
6096 
6097  }
6098 
6099  #endregion
6100 
6101 }
6102 
6103 #endregion Designer generated code
IntervalConstraintProto(IntervalConstraintProto other)
Definition: CpModel.pb.cs:1179
CpSolverResponse(CpSolverResponse other)
Definition: CpModel.pb.cs:5519
bool Equals(DecisionStrategyProto other)
Definition: CpModel.pb.cs:4709
override bool Equals(object other)
Definition: CpModel.pb.cs:2844
The response returned by a solver trying to solve a CpModelProto.
Definition: CpModel.pb.cs:5495
ElementConstraintProto(ElementConstraintProto other)
Definition: CpModel.pb.cs:997
override bool Equals(object other)
Definition: CpModel.pb.cs:3721
void MergeFrom(ElementConstraintProto other)
Definition: CpModel.pb.cs:1110
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2581
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:5849
bool Equals(CpObjectiveProto other)
Definition: CpModel.pb.cs:4491
Define the strategy to follow when the solver needs to take a new decision.
Definition: CpModel.pb.cs:4619
override bool Equals(object other)
Definition: CpModel.pb.cs:4704
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2160
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1599
global::Google.OrTools.Sat.BoolArgumentProto?? BoolOr
The bool_or constraint forces at least one literal to be true.
Definition: CpModel.pb.cs:3339
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:3521
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:2673
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:332
The circuit constraint is defined on a graph where the arc presence are controlled by literals.
Definition: CpModel.pb.cs:2057
override bool Equals(object other)
Definition: CpModel.pb.cs:576
override bool Equals(object other)
Definition: CpModel.pb.cs:1918
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:3506
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:3141
void MergeFrom(CpModelProto other)
Definition: CpModel.pb.cs:5420
global::Google.Protobuf.Reflection pbr
CircuitCoveringConstraintProto Clone()
Definition: CpModel.pb.cs:2492
override bool Equals(object other)
Definition: CpModel.pb.cs:1042
bool Equals(CpModelProto other)
Definition: CpModel.pb.cs:5340
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:6015
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:5446
CircuitCoveringConstraintProto(CircuitCoveringConstraintProto other)
Definition: CpModel.pb.cs:2485
void MergeFrom(PartialVariableAssignment other)
Definition: CpModel.pb.cs:5162
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1315
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2878
double BestObjectiveBound
Only make sense for an optimization problem.
Definition: CpModel.pb.cs:5601
CpObjectiveProto(CpObjectiveProto other)
Definition: CpModel.pb.cs:4400
LinearConstraintProto(LinearConstraintProto other)
Definition: CpModel.pb.cs:826
ReservoirConstraintProto(ReservoirConstraintProto other)
Definition: CpModel.pb.cs:1842
bool Equals(PartialVariableAssignment other)
Definition: CpModel.pb.cs:5113
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1125
bool Equals(CircuitConstraintProto other)
Definition: CpModel.pb.cs:2129
double Offset
The displayed objective is always: scaling_factor * (sum(coefficients[i] * objective_vars[i]) + offse...
Definition: CpModel.pb.cs:4452
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:3375
PartialVariableAssignment(PartialVariableAssignment other)
Definition: CpModel.pb.cs:5076
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:3803
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1775
bool Equals(InverseConstraintProto other)
Definition: CpModel.pb.cs:2849
Container for nested types declared in the DecisionStrategyProto message type.
Definition: CpModel.pb.cs:4823
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:4142
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:5672
void MergeFrom(CircuitConstraintProto other)
Definition: CpModel.pb.cs:2182
DomainReductionStrategy
Once a variable has been chosen, this enum describe what decision is taken on its domain.
Definition: CpModel.pb.cs:4844
The sum of the demands of the intervals at each interval point cannot exceed a capacity.
Definition: CpModel.pb.cs:1628
Argument of the constraints of the form target_var = OP(vars).
Definition: CpModel.pb.cs:519
global::Google.OrTools.Sat.IntegerArgumentProto?? IntMin
The int_min constraint forces the target to equal the minimum of all variables.
Definition: CpModel.pb.cs:3447
override bool Equals(object other)
Definition: CpModel.pb.cs:1392
ConstraintOneofCase
Enum of possible cases for the "constraint" oneof.
Definition: CpModel.pb.cs:3682
void MergeFrom(LinearConstraintProto other)
Definition: CpModel.pb.cs:930
global::Google.OrTools.Sat.BoolArgumentProto?? BoolXor
The bool_xor constraint forces an odd number of the literals to be true.
Definition: CpModel.pb.cs:3389
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2373
global::Google.OrTools.Sat.DecisionStrategyProto.Types.VariableSelectionStrategy VariableSelectionStrategy
Definition: CpModel.pb.cs:4675
void MergeFrom(CpSolverResponse other)
Definition: CpModel.pb.cs:5964
bool Equals(IntegerArgumentProto other)
Definition: CpModel.pb.cs:581
The linear sum vars[i] * coeffs[i] must fall in the given domain.
Definition: CpModel.pb.cs:802
This "special" constraint not only enforces (start + size == end) but can also be referred by other c...
Definition: CpModel.pb.cs:1155
AllDifferentConstraintProto(AllDifferentConstraintProto other)
Definition: CpModel.pb.cs:696
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:4579
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1569
double ObjectiveValue
Only make sense for an optimization problem.
Definition: CpModel.pb.cs:5585
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1424
void MergeFrom(TableConstraintProto other)
Definition: CpModel.pb.cs:2744
global::Google.OrTools.Sat.CpSolverStatus Status
The status of the solve.
Definition: CpModel.pb.cs:5552
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:4742
override bool Equals(object other)
Definition: CpModel.pb.cs:1699
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2757
All variables must take different values.
Definition: CpModel.pb.cs:672
ConstraintProto(ConstraintProto other)
Definition: CpModel.pb.cs:3210
void MergeFrom(IntegerArgumentProto other)
Definition: CpModel.pb.cs:635
bool Equals(ElementConstraintProto other)
Definition: CpModel.pb.cs:1047
override bool Equals(object other)
Definition: CpModel.pb.cs:3050
global::Google.OrTools.Sat.BoolArgumentProto?? BoolAnd
The bool_and constraint forces all of the literals to be true.
Definition: CpModel.pb.cs:3357
global::Google.OrTools.Sat.IntegerArgumentProto?? IntProd
The int_min constraint forces the target to equal the product of all variables.
Definition: CpModel.pb.cs:3462
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:3550
bool Equals(TableConstraintProto other)
Definition: CpModel.pb.cs:2686
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:5142
The constraint target = vars[index].
Definition: CpModel.pb.cs:973
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:498
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:3595
NoOverlap2DConstraintProto Clone()
Definition: CpModel.pb.cs:1507
DecisionStrategyProto(DecisionStrategyProto other)
Definition: CpModel.pb.cs:4643
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:2609
global::Google.OrTools.Sat.AutomatonConstraintProto?? Automaton
The automaton constraint forces a sequence of variables to be accepted by an automaton.
Definition: CpModel.pb.cs:3580
global::Google.OrTools.Sat.IntegerArgumentProto?? IntMax
The int_max constraint forces the target to equal the maximum of all variables.
Definition: CpModel.pb.cs:3432
string Name
For debug/logging only.
Definition: CpModel.pb.cs:5244
NoOverlap2DConstraintProto(NoOverlap2DConstraintProto other)
Definition: CpModel.pb.cs:1500
void MergeFrom(CircuitCoveringConstraintProto other)
Definition: CpModel.pb.cs:2571
AutomatonConstraintProto(AutomatonConstraintProto other)
Definition: CpModel.pb.cs:2959
bool Equals(CircuitCoveringConstraintProto other)
Definition: CpModel.pb.cs:2522
void MergeFrom(AutomatonConstraintProto other)
Definition: CpModel.pb.cs:3125
CpModelProto(CpModelProto other)
Definition: CpModel.pb.cs:5222
bool Equals(ReservoirConstraintProto other)
Definition: CpModel.pb.cs:1923
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2011
void MergeFrom(IntervalConstraintProto other)
Definition: CpModel.pb.cs:1298
AllDifferentConstraintProto Clone()
Definition: CpModel.pb.cs:702
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2717
override bool Equals(object other)
Definition: CpModel.pb.cs:5785
void MergeFrom(CpObjectiveProto other)
Definition: CpModel.pb.cs:4562
long StartingState
A state is identified by a non-negative number.
Definition: CpModel.pb.cs:2983
override bool Equals(object other)
Definition: CpModel.pb.cs:1225
InverseConstraintProto(InverseConstraintProto other)
Definition: CpModel.pb.cs:2812
global::Google.OrTools.Sat.RoutesConstraintProto?? Routes
The routes constraint implements the vehicle routing problem.
Definition: CpModel.pb.cs:3535
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2908
void MergeFrom(BoolArgumentProto other)
Definition: CpModel.pb.cs:489
bool Equals(IntervalConstraintProto other)
Definition: CpModel.pb.cs:1230
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:3672
bool Equals(NoOverlapConstraintProto other)
Definition: CpModel.pb.cs:1397
bool Equals(CpSolverResponse other)
Definition: CpModel.pb.cs:5790
IntegerVariableProto(IntegerVariableProto other)
Definition: CpModel.pb.cs:248
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1261
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1735
global::Google.OrTools.Sat.NoOverlapConstraintProto?? NoOverlap
The no_overlap constraint prevents a set of intervals from overlapping; in scheduling,...
Definition: CpModel.pb.cs:3642
Maintain a reservoir level within bounds.
Definition: CpModel.pb.cs:1818
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:610
A constraint programming problem.
Definition: CpModel.pb.cs:5198
bool Equals(ConstraintProto other)
Definition: CpModel.pb.cs:3726
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:776
RoutesConstraintProto(RoutesConstraintProto other)
Definition: CpModel.pb.cs:2262
bool Equals(AllDifferentConstraintProto other)
Definition: CpModel.pb.cs:722
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1958
void MergeFrom(DecisionStrategyProto other)
Definition: CpModel.pb.cs:4776
global::Google.OrTools.Sat.TableConstraintProto?? Table
The table constraint enforces what values a tuple of variables may take.
Definition: CpModel.pb.cs:3565
global::Google.Protobuf.Collections pbc
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2193
override bool Equals(object other)
Definition: CpModel.pb.cs:4486
void MergeFrom(AllDifferentConstraintProto other)
Definition: CpModel.pb.cs:767
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:2551
CircuitConstraintProto(CircuitConstraintProto other)
Definition: CpModel.pb.cs:2081
global::Google.OrTools.Sat.DecisionStrategyProto.Types.DomainReductionStrategy DomainReductionStrategy
Definition: CpModel.pb.cs:4686
static pbr::FileDescriptor Descriptor
File descriptor for ortools/sat/cp_model.proto
Definition: CpModel.pb.cs:19
override bool Equals(object other)
Definition: CpModel.pb.cs:5108
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:471
IntegerArgumentProto(IntegerArgumentProto other)
Definition: CpModel.pb.cs:543
CumulativeConstraintProto(CumulativeConstraintProto other)
Definition: CpModel.pb.cs:1652
CpSolverStatus
The status returned by a solver trying to solve a CpModelProto.
Definition: CpModel.pb.cs:172
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:3092
ConstraintOneofCase ConstraintCase
Definition: CpModel.pb.cs:3710
The two arrays of variable each represent a function, the second is the inverse of the first: f_direc...
Definition: CpModel.pb.cs:2788
Argument of the constraints of the form OP(literals).
Definition: CpModel.pb.cs:394
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:1078
TableConstraintProto(TableConstraintProto other)
Definition: CpModel.pb.cs:2633
void MergeFrom(ReservoirConstraintProto other)
Definition: CpModel.pb.cs:1994
global::System.Collections.Generic scg
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:2419
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:5172
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:749
bool Equals(CumulativeConstraintProto other)
Definition: CpModel.pb.cs:1704
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:1451
string SolutionInfo
Additional information about how the solution was found.
Definition: CpModel.pb.cs:5777
void MergeFrom(ConstraintProto other)
Definition: CpModel.pb.cs:3989
global::Google.Protobuf pb
override bool Equals(object other)
Definition: CpModel.pb.cs:872
void MergeFrom(NoOverlap2DConstraintProto other)
Definition: CpModel.pb.cs:1589
All the intervals (index of IntervalConstraintProto) must be disjoint.
Definition: CpModel.pb.cs:1347
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:3477
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:4792
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:5377
override bool Equals(object other)
Definition: CpModel.pb.cs:2333
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:647
override bool Equals(object other)
Definition: CpModel.pb.cs:439
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:941
void MergeFrom(NoOverlapConstraintProto other)
Definition: CpModel.pb.cs:1442
bool Equals(LinearConstraintProto other)
Definition: CpModel.pb.cs:877
Holder for reflection information generated from ortools/sat/cp_model.proto
Definition: CpModel.pb.cs:15
global::Google.OrTools.Sat.IntegerArgumentProto?? IntDiv
The int_div constraint forces the target to equal vars[0] / vars[1].
Definition: CpModel.pb.cs:3403
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:4526
global::Google.OrTools.Sat.CpObjectiveProto Objective
The objective to minimize.
Definition: CpModel.pb.cs:5281
global::Google.OrTools.Sat.NoOverlap2DConstraintProto?? NoOverlap2D
The no_overlap_2d constraint prevents a set of boxes from overlapping.
Definition: CpModel.pb.cs:3656
void MergeFrom(CumulativeConstraintProto other)
Definition: CpModel.pb.cs:1762
bool Equals(BoolArgumentProto other)
Definition: CpModel.pb.cs:444
The "VRP" (Vehicle Routing Problem) constraint.
Definition: CpModel.pb.cs:2238
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:3611
The boxes defined by [start_x, end_x) * [start_y, end_y) cannot overlap.
Definition: CpModel.pb.cs:1476
global::Google.OrTools.Sat.IntegerArgumentProto?? IntMod
The int_mod constraint forces the target to equal vars[0] % vars[1].
Definition: CpModel.pb.cs:3417
void MergeFrom(InverseConstraintProto other)
Definition: CpModel.pb.cs:2898
void MergeFrom(IntegerVariableProto other)
Definition: CpModel.pb.cs:357
This constraint forces a sequence of variables to be accepted by an automaton.
Definition: CpModel.pb.cs:2935
void MergeFrom(pb::CodedInputStream input)
Definition: CpModel.pb.cs:369
VariableSelectionStrategy
The order in which the variables above should be considered.
Definition: CpModel.pb.cs:4830
NoOverlapConstraintProto(NoOverlapConstraintProto other)
Definition: CpModel.pb.cs:1371
void WriteTo(pb::CodedOutputStream output)
Definition: CpModel.pb.cs:908
BoolArgumentProto(BoolArgumentProto other)
Definition: CpModel.pb.cs:418
string Name
For debug/logging only.
Definition: CpModel.pb.cs:3300
long NumBooleans
Some statistics about the solve.
Definition: CpModel.pb.cs:5686
override bool Equals(object other)
Definition: CpModel.pb.cs:298
global::Google.OrTools.Sat.IntervalConstraintProto?? Interval
The interval constraint takes a start, end, and size, and forces start + size == end.
Definition: CpModel.pb.cs:3626
override bool Equals(object other)
Definition: CpModel.pb.cs:2124
void MergeFrom(RoutesConstraintProto other)
Definition: CpModel.pb.cs:2404
bool Equals(AutomatonConstraintProto other)
Definition: CpModel.pb.cs:3055
bool Equals(RoutesConstraintProto other)
Definition: CpModel.pb.cs:2338
override bool Equals(object other)
Definition: CpModel.pb.cs:5335
bool Equals(IntegerVariableProto other)
Definition: CpModel.pb.cs:303
bool Equals(NoOverlap2DConstraintProto other)
Definition: CpModel.pb.cs:1540
global::Google.OrTools.Sat.AllDifferentConstraintProto?? AllDiff
The all_diff constraint forces all variables to take different values.
Definition: CpModel.pb.cs:3491
This message encodes a partial (or full) assignment of the variables of a CpModelProto.
Definition: CpModel.pb.cs:5052
global::Google.OrTools.Sat.PartialVariableAssignment SolutionHint
Solution hint.
Definition: CpModel.pb.cs:5327
override bool Equals(object other)
Definition: CpModel.pb.cs:2681