@@ -798,7 +798,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
798798 switch (boundTypes[col]) {
799799 case BoundType::kSimpleLb :
800800 substsolval = static_cast <double >(
801- vals[i] * (HighsCDouble (lpSolution. col_value [ col] ) - ub));
801+ vals[i] * (HighsCDouble (getLpSolution ( col) ) - ub));
802802 vbcoef = static_cast <double >(vals[i] * (HighsCDouble (ub) - lb));
803803 aggrconstant = static_cast <double >(HighsCDouble (vals[i]) * ub);
804804 if (vals[i] >= 0 ) {
@@ -812,7 +812,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
812812 break ;
813813 case BoundType::kSimpleUb :
814814 substsolval = static_cast <double >(
815- vals[i] * (HighsCDouble (lpSolution. col_value [ col] ) - lb));
815+ vals[i] * (HighsCDouble (getLpSolution ( col) ) - lb));
816816 vbcoef = static_cast <double >(vals[i] * (HighsCDouble (ub) - lb));
817817 aggrconstant = static_cast <double >(HighsCDouble (vals[i]) * lb);
818818 if (vals[i] >= 0 ) {
@@ -827,7 +827,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
827827 case BoundType::kVariableLb :
828828 vbcol = bestVlb[col].first ;
829829 substsolval = static_cast <double >(
830- vals[i] * (HighsCDouble (lpSolution. col_value [ col] ) -
830+ vals[i] * (HighsCDouble (getLpSolution ( col) ) -
831831 bestVlb[col].second .constant ) +
832832 (HighsCDouble (lpSolution.col_value [vbcol]) *
833833 snfr.origBinColCoef [vbcol]));
@@ -850,7 +850,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
850850 case BoundType::kVariableUb :
851851 vbcol = bestVub[col].first ;
852852 substsolval = static_cast <double >(
853- vals[i] * (HighsCDouble (lpSolution. col_value [ col] ) -
853+ vals[i] * (HighsCDouble (getLpSolution ( col) ) -
854854 bestVub[col].second .constant ) +
855855 (HighsCDouble (lpSolution.col_value [vbcol]) *
856856 snfr.origBinColCoef [vbcol]));
@@ -950,13 +950,15 @@ bool HighsTransformedLp::cleanup(std::vector<HighsInt>& inds,
950950 double sqrnorm = 0 ;
951951 const std::vector<double >& lpSolution = lprelaxation.getSolution ().col_value ;
952952 for (HighsInt i = 0 ; i != numNz; ++i) {
953- if (vals[i] >= 0 && lpSolution[i] <= mip.mipdata_ ->domain .col_lower_ [i] +
954- mip.mipdata_ ->feastol )
953+ HighsInt col = inds[i];
954+ if (vals[i] >= 0 &&
955+ lpSolution[col] <=
956+ mip.mipdata_ ->domain .col_lower_ [col] + mip.mipdata_ ->feastol )
955957 continue ;
956- if (vals[i] < 0 && lpSolution[i ] >= mip.mipdata_ ->domain .col_upper_ [i ] -
957- mip.mipdata_ ->feastol )
958+ if (vals[i] < 0 && lpSolution[col ] >= mip.mipdata_ ->domain .col_upper_ [col ] -
959+ mip.mipdata_ ->feastol )
958960 continue ;
959- viol += vals[i] * lpSolution[i ];
961+ viol += vals[i] * lpSolution[col ];
960962 sqrnorm += vals[i] * vals[i];
961963 }
962964 if (sqrnorm == 0 ) {
0 commit comments