DotNet Reference

DotNet Reference

VariableHelper.cs
Go to the documentation of this file.
1 // Copyright 2010-2018 Google LLC
2 // Licensed under the Apache License, Version 2.0 (the "License");
3 // you may not use this file except in compliance with the License.
4 // You may obtain a copy of the License at
5 //
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13 
15 using System;
16 using System.Collections.Generic;
17 
18 // Patch the MPVariable class to support the natural language API.
19 public partial class Variable {
20  public static LinearExpr operator+(Variable a, double v)
21  {
22  return new VarWrapper(a) + v;
23  }
24 
25  public static LinearExpr operator+(double v, Variable a)
26  {
27  return a + v;
28  }
29 
31  {
32  return new VarWrapper(a) + b;
33  }
34 
35  public static LinearExpr operator+(Variable a, Variable b)
36  {
37  return new VarWrapper(a) + new VarWrapper(b);
38  }
39 
41  {
42  return a + new VarWrapper(b);
43  }
44 
45  public static LinearExpr operator-(Variable a, double v)
46  {
47  return new VarWrapper(a) - v;
48  }
49 
50  public static LinearExpr operator-(double v, Variable a)
51  {
52  return v - new VarWrapper(a);
53  }
54 
56  {
57  return new VarWrapper(a) - b;
58  }
59 
61  {
62  return a - new VarWrapper(b);
63  }
64 
65  public static LinearExpr operator-(Variable a, Variable b)
66  {
67  return new VarWrapper(a) - new VarWrapper(b);
68  }
69 
70  public static LinearExpr operator-(Variable a)
71  {
72  return - new VarWrapper(a);
73  }
74 
75  public static LinearExpr operator*(Variable a, double v)
76  {
77  return new VarWrapper(a) * v;
78  }
79 
80  public static LinearExpr operator/(Variable a, double v)
81  {
82  return new VarWrapper(a) / v;
83  }
84 
85  public static LinearExpr operator*(double v, Variable a)
86  {
87  return v * new VarWrapper(a);
88  }
89 
90  public static RangeConstraint operator==(Variable a, double v)
91  {
92  return new VarWrapper(a) == v;
93  }
94 
95  public static RangeConstraint operator==(double v, Variable a)
96  {
97  return v == new VarWrapper(a);
98  }
99 
100  public static RangeConstraint operator!=(Variable a, double v)
101  {
102  return new VarWrapper(a) != v;
103  }
104 
105  public static RangeConstraint operator!=(double v, Variable a)
106  {
107  return new VarWrapper(a) != v;
108  }
109 
111  {
112  return new VarWrapper(a) == b;
113  }
114 
116  {
117  return a == new VarWrapper(b);
118  }
119 
121  {
122  return new VarEquality(a, b, true);
123  }
124 
126  {
127  return new VarWrapper(a) != b;
128  }
129 
131  {
132  return a != new VarWrapper(b);
133  }
134 
136  {
137  return new VarEquality(a, b, false);
138  }
139 
140  public static RangeConstraint operator<=(Variable a, double v)
141  {
142  return new VarWrapper(a) <= v;
143  }
144 
145  public static RangeConstraint operator>=(Variable a, double v)
146  {
147  return new VarWrapper(a) >= v;
148  }
149 
150  public static RangeConstraint operator<=(double v, Variable a)
151  {
152  return new VarWrapper(a) >= v;
153  }
154 
155  public static RangeConstraint operator>=(double v, Variable a)
156  {
157  return new VarWrapper(a) <= v;
158  }
159 
161  {
162  return new VarWrapper(a) <= b;
163  }
164 
166  {
167  return new VarWrapper(a) >= b;
168  }
169 
171  {
172  return new VarWrapper(a) <= new VarWrapper(b);
173  }
174 
176  {
177  return new VarWrapper(a) >= new VarWrapper(b);
178  }
179 
181  {
182  return a <= new VarWrapper(b);
183  }
184 
186  {
187  return a >= new VarWrapper(b);
188  }
189 }
190 
191 // TODO(user): Try to move this code back to the .swig with @define macros.
192 public partial class MPVariableVector: IDisposable, System.Collections.IEnumerable
193 #if !SWIG_DOTNET_1
194  , System.Collections.Generic.IList<Variable>
195 #endif
196 {
197  // cast from C# MPVariable array
198  public static implicit operator MPVariableVector(Variable[] inVal) {
199  var outVal= new MPVariableVector();
200  foreach (Variable element in inVal) {
201  outVal.Add(element);
202  }
203  return outVal;
204  }
205 
206  // cast to C# MPVariable array
207  public static implicit operator Variable[](MPVariableVector inVal) {
208  var outVal= new Variable[inVal.Count];
209  inVal.CopyTo(outVal);
210  return outVal;
211  }
212 }
213 
214 } // namespace Google.OrTools.LinearSolver
Definition: Variable.cs:13
static RangeConstraint operator<=(Variable a, Variable b)
static LinearExpr operator*(Variable a, double v)
static Equality operator==(Variable a, LinearExpr b)
static RangeConstraint operator!=(Variable a, double v)
static RangeConstraint operator==(double v, Variable a)
MPVariableVector()
static LinearExpr operator+(Variable a, Variable b)
static LinearExpr operator/(Variable a, double v)
static LinearExpr operator-(Variable a, LinearExpr b)
static Equality operator==(LinearExpr a, Variable b)
static LinearExpr operator+(Variable a, LinearExpr b)
static LinearExpr operator-(double v, Variable a)
static RangeConstraint operator>=(LinearExpr a, Variable b)
Definition: LinearExpr.cs:226
static LinearExpr operator+(LinearExpr a, Variable b)
static RangeConstraint operator<=(LinearExpr a, Variable b)
static LinearExpr operator+(double v, Variable a)
static RangeConstraint operator<=(Variable a, LinearExpr b)
static RangeConstraint operator==(Variable a, double v)
static RangeConstraint operator<=(double v, Variable a)
static RangeConstraint operator!=(double v, Variable a)
static LinearExpr operator-(Variable a, Variable b)
static RangeConstraint operator>=(double v, Variable a)
static RangeConstraint operator>=(Variable a, Variable b)
static RangeConstraint operator>=(Variable a, LinearExpr b)
static VarEquality operator==(Variable a, Variable b)
Definition: LinearExpr.cs:20
static Equality operator!=(LinearExpr a, Variable b)
static VarEquality operator!=(Variable a, Variable b)
static LinearExpr operator-(Variable a, double v)
static RangeConstraint operator<=(Variable a, double v)
static LinearExpr operator-(Variable a)
static LinearExpr operator*(double v, Variable a)
static Equality operator!=(Variable a, LinearExpr b)
static LinearExpr operator+(Variable a, double v)
static RangeConstraint operator>=(Variable a, double v)
static LinearExpr operator-(LinearExpr a, Variable b)