@@ -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