@@ -102,41 +102,36 @@ class HighsLinearSumBounds {
102102 double getResidualSumUpperOrig (HighsInt sum, HighsInt var,
103103 double coefficient) const ;
104104
105- double getSumLowerOrig (HighsInt sum) const {
106- return numInfSumLowerOrig[sum] == 0 ? double (sumLowerOrig[sum])
107- : -kHighsInf ;
105+ template <typename T = double >
106+ double getSumLowerOrig (HighsInt sum, T offset = T()) const {
107+ return numInfSumLowerOrig[sum] == 0
108+ ? static_cast <double >(sumLowerOrig[sum] +
109+ static_cast <HighsCDouble>(offset))
110+ : -kHighsInf ;
108111 }
109112
110- double getSumUpperOrig (HighsInt sum) const {
111- return numInfSumUpperOrig[sum] == 0 ? double (sumUpperOrig[sum]) : kHighsInf ;
113+ template <typename T = double >
114+ double getSumUpperOrig (HighsInt sum, T offset = T()) const {
115+ return numInfSumUpperOrig[sum] == 0
116+ ? static_cast <double >(sumUpperOrig[sum] +
117+ static_cast <HighsCDouble>(offset))
118+ : kHighsInf ;
112119 }
113120
114- double getSumLower (HighsInt sum) const {
115- return numInfSumLower[sum] == 0 ? double (sumLower[sum]) : -kHighsInf ;
121+ template <typename T = double >
122+ double getSumLower (HighsInt sum, T offset = T()) const {
123+ return numInfSumLower[sum] == 0
124+ ? static_cast <double >(sumLower[sum] +
125+ static_cast <HighsCDouble>(offset))
126+ : -kHighsInf ;
116127 }
117128
118- double getSumUpper (HighsInt sum) const {
119- return numInfSumUpper[sum] == 0 ? double (sumUpper[sum]) : kHighsInf ;
120- }
121-
122- double getSumLower (HighsInt sum, double offset) const {
123- return numInfSumLower[sum] == 0 ? double (sumLower[sum] + offset)
124- : -kHighsInf ;
125- }
126-
127- double getSumUpper (HighsInt sum, double offset) const {
128- return numInfSumUpper[sum] == 0 ? double (sumUpper[sum] + offset)
129- : kHighsInf ;
130- }
131-
132- double getSumLower (HighsInt sum, HighsCDouble offset) const {
133- return numInfSumLower[sum] == 0 ? double (sumLower[sum] + offset)
134- : -kHighsInf ;
135- }
136-
137- double getSumUpper (HighsInt sum, HighsCDouble offset) const {
138- return numInfSumUpper[sum] == 0 ? double (sumUpper[sum] + offset)
139- : kHighsInf ;
129+ template <typename T = double >
130+ double getSumUpper (HighsInt sum, T offset = T()) const {
131+ return numInfSumUpper[sum] == 0
132+ ? static_cast <double >(sumUpper[sum] +
133+ static_cast <HighsCDouble>(offset))
134+ : kHighsInf ;
140135 }
141136
142137 HighsInt getNumInfSumLower (HighsInt sum) const { return numInfSumLower[sum]; }
0 commit comments