Skip to content

Commit a33bd14

Browse files
committed
Use static_cast
1 parent ca3baa4 commit a33bd14

File tree

1 file changed

+64
-32
lines changed

1 file changed

+64
-32
lines changed

highs/util/HighsLinearSumBounds.cpp

Lines changed: 64 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,24 @@ double HighsLinearSumBounds::getResidualSumLower(HighsInt sum, HighsInt var,
6767
switch (numInfSumLower[sum]) {
6868
case 0:
6969
if (coefficient > 0) {
70-
return double(sumLower[sum] - getImplVarLower(sum, var) * coefficient);
70+
return static_cast<double>(
71+
sumLower[sum] -
72+
static_cast<HighsCDouble>(getImplVarLower(sum, var)) * coefficient);
7173
} else {
72-
return double(sumLower[sum] - getImplVarUpper(sum, var) * coefficient);
74+
return static_cast<double>(
75+
sumLower[sum] -
76+
static_cast<HighsCDouble>(getImplVarUpper(sum, var)) * coefficient);
7377
}
7478
break;
7579
case 1:
7680
if (coefficient > 0) {
77-
return getImplVarLower(sum, var) == -kHighsInf ? double(sumLower[sum])
78-
: -kHighsInf;
81+
return getImplVarLower(sum, var) == -kHighsInf
82+
? static_cast<double>(sumLower[sum])
83+
: -kHighsInf;
7984
} else {
80-
return getImplVarUpper(sum, var) == kHighsInf ? double(sumLower[sum])
81-
: -kHighsInf;
85+
return getImplVarUpper(sum, var) == kHighsInf
86+
? static_cast<double>(sumLower[sum])
87+
: -kHighsInf;
8288
}
8389
break;
8490
default:
@@ -91,18 +97,24 @@ double HighsLinearSumBounds::getResidualSumUpper(HighsInt sum, HighsInt var,
9197
switch (numInfSumUpper[sum]) {
9298
case 0:
9399
if (coefficient > 0) {
94-
return double(sumUpper[sum] - getImplVarUpper(sum, var) * coefficient);
100+
return static_cast<double>(
101+
sumUpper[sum] -
102+
static_cast<HighsCDouble>(getImplVarUpper(sum, var)) * coefficient);
95103
} else {
96-
return double(sumUpper[sum] - getImplVarLower(sum, var) * coefficient);
104+
return static_cast<double>(
105+
sumUpper[sum] -
106+
static_cast<HighsCDouble>(getImplVarLower(sum, var)) * coefficient);
97107
}
98108
break;
99109
case 1:
100110
if (coefficient > 0) {
101-
return getImplVarUpper(sum, var) == kHighsInf ? double(sumUpper[sum])
102-
: kHighsInf;
111+
return getImplVarUpper(sum, var) == kHighsInf
112+
? static_cast<double>(sumUpper[sum])
113+
: kHighsInf;
103114
} else {
104-
return getImplVarLower(sum, var) == -kHighsInf ? double(sumUpper[sum])
105-
: kHighsInf;
115+
return getImplVarLower(sum, var) == -kHighsInf
116+
? static_cast<double>(sumUpper[sum])
117+
: kHighsInf;
106118
}
107119
break;
108120
default:
@@ -115,17 +127,23 @@ double HighsLinearSumBounds::getResidualSumLowerOrig(HighsInt sum, HighsInt var,
115127
switch (numInfSumLowerOrig[sum]) {
116128
case 0:
117129
if (coefficient > 0)
118-
return double(sumLowerOrig[sum] - varLower[var] * coefficient);
130+
return static_cast<double>(sumLowerOrig[sum] -
131+
static_cast<HighsCDouble>(varLower[var]) *
132+
coefficient);
119133
else
120-
return double(sumLowerOrig[sum] - varUpper[var] * coefficient);
134+
return static_cast<double>(sumLowerOrig[sum] -
135+
static_cast<HighsCDouble>(varUpper[var]) *
136+
coefficient);
121137
break;
122138
case 1:
123139
if (coefficient > 0)
124-
return varLower[var] == -kHighsInf ? double(sumLowerOrig[sum])
125-
: -kHighsInf;
140+
return varLower[var] == -kHighsInf
141+
? static_cast<double>(sumLowerOrig[sum])
142+
: -kHighsInf;
126143
else
127-
return varUpper[var] == kHighsInf ? double(sumLowerOrig[sum])
128-
: -kHighsInf;
144+
return varUpper[var] == kHighsInf
145+
? static_cast<double>(sumLowerOrig[sum])
146+
: -kHighsInf;
129147
break;
130148
default:
131149
return -kHighsInf;
@@ -137,17 +155,23 @@ double HighsLinearSumBounds::getResidualSumUpperOrig(HighsInt sum, HighsInt var,
137155
switch (numInfSumUpperOrig[sum]) {
138156
case 0:
139157
if (coefficient > 0)
140-
return double(sumUpperOrig[sum] - varUpper[var] * coefficient);
158+
return static_cast<double>(sumUpperOrig[sum] -
159+
static_cast<HighsCDouble>(varUpper[var]) *
160+
coefficient);
141161
else
142-
return double(sumUpperOrig[sum] - varLower[var] * coefficient);
162+
return static_cast<double>(sumUpperOrig[sum] -
163+
static_cast<HighsCDouble>(varLower[var]) *
164+
coefficient);
143165
break;
144166
case 1:
145167
if (coefficient > 0)
146-
return varUpper[var] == kHighsInf ? double(sumUpperOrig[sum])
147-
: kHighsInf;
168+
return varUpper[var] == kHighsInf
169+
? static_cast<double>(sumUpperOrig[sum])
170+
: kHighsInf;
148171
else
149-
return varLower[var] == -kHighsInf ? double(sumUpperOrig[sum])
150-
: kHighsInf;
172+
return varLower[var] == -kHighsInf
173+
? static_cast<double>(sumUpperOrig[sum])
174+
: kHighsInf;
151175
break;
152176
default:
153177
return kHighsInf;
@@ -214,14 +238,16 @@ void HighsLinearSumBounds::addOrRemoveVarUpper(HighsInt sum, HighsInt var,
214238
if (myVarUpper == kHighsInf)
215239
numInfSumUpperOrig[sum] += direction;
216240
else
217-
sumUpperOrig[sum] += direction * myVarUpper * coefficient;
241+
sumUpperOrig[sum] +=
242+
direction * static_cast<HighsCDouble>(myVarUpper) * coefficient;
218243
} else {
219244
// coefficient is negative, therefore variable upper bound contributes to
220245
// sum lower bound
221246
if (myVarUpper == kHighsInf)
222247
numInfSumLowerOrig[sum] += direction;
223248
else
224-
sumLowerOrig[sum] += direction * myVarUpper * coefficient;
249+
sumLowerOrig[sum] +=
250+
direction * static_cast<HighsCDouble>(myVarUpper) * coefficient;
225251
}
226252
}
227253

@@ -235,14 +261,16 @@ void HighsLinearSumBounds::addOrRemoveVarLower(HighsInt sum, HighsInt var,
235261
if (myVarLower == -kHighsInf)
236262
numInfSumLowerOrig[sum] += direction;
237263
else
238-
sumLowerOrig[sum] += direction * myVarLower * coefficient;
264+
sumLowerOrig[sum] +=
265+
direction * static_cast<HighsCDouble>(myVarLower) * coefficient;
239266
} else {
240267
// coefficient is negative, therefore variable lower bound contributes to
241268
// sum upper bound
242269
if (myVarLower == -kHighsInf)
243270
numInfSumUpperOrig[sum] += direction;
244271
else
245-
sumUpperOrig[sum] += direction * myVarLower * coefficient;
272+
sumUpperOrig[sum] +=
273+
direction * static_cast<HighsCDouble>(myVarLower) * coefficient;
246274
}
247275
}
248276

@@ -256,14 +284,16 @@ void HighsLinearSumBounds::addOrRemoveImplVarUpper(HighsInt sum, HighsInt var,
256284
if (myImplVarUpper == kHighsInf)
257285
numInfSumUpper[sum] += direction;
258286
else
259-
sumUpper[sum] += direction * myImplVarUpper * coefficient;
287+
sumUpper[sum] +=
288+
direction * static_cast<HighsCDouble>(myImplVarUpper) * coefficient;
260289
} else {
261290
// coefficient is negative, therefore variable upper bound contributes to
262291
// sum lower bound
263292
if (myImplVarUpper == kHighsInf)
264293
numInfSumLower[sum] += direction;
265294
else
266-
sumLower[sum] += direction * myImplVarUpper * coefficient;
295+
sumLower[sum] +=
296+
direction * static_cast<HighsCDouble>(myImplVarUpper) * coefficient;
267297
}
268298
}
269299

@@ -277,14 +307,16 @@ void HighsLinearSumBounds::addOrRemoveImplVarLower(HighsInt sum, HighsInt var,
277307
if (myImplVarLower == -kHighsInf)
278308
numInfSumLower[sum] += direction;
279309
else
280-
sumLower[sum] += direction * myImplVarLower * coefficient;
310+
sumLower[sum] +=
311+
direction * static_cast<HighsCDouble>(myImplVarLower) * coefficient;
281312
} else {
282313
// coefficient is negative, therefore variable lower bound contributes to
283314
// sum upper bound
284315
if (myImplVarLower == -kHighsInf)
285316
numInfSumUpper[sum] += direction;
286317
else
287-
sumUpper[sum] += direction * myImplVarLower * coefficient;
318+
sumUpper[sum] +=
319+
direction * static_cast<HighsCDouble>(myImplVarLower) * coefficient;
288320
}
289321
}
290322

0 commit comments

Comments
 (0)