@@ -927,7 +927,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
927927 aggrvbcoef = static_cast <double >(
928928 HighsCDouble (vals[i]) * vbcoef + bincoef);
929929 aggrconstant = static_cast <double >(
930- HighsCDouble (vals[i]) * vbconstant + (complementvlb && inclbincolvlb ? vectorsum. getValue (vbcol) : 0 ) );
930+ HighsCDouble (vals[i]) * vbconstant);
931931 if (vals[i] >= 0 ) {
932932 addSNFRentry (vbcol, col,
933933 binsolval,
@@ -941,8 +941,8 @@ bool HighsTransformedLp::transformSNFRelaxation(
941941 bincoef, vals[i],
942942 complementvlb);
943943 }
944+ tmpSnfrRhs -= aggrconstant + (complementvlb && inclbincolvlb ? vectorsum.getValue (vbcol) : 0 );
944945 if (inclbincolvlb) vectorsum.values [vbcol] = 0 ;
945- tmpSnfrRhs -= aggrconstant;
946946 break ;
947947 case BoundType::kVariableUb :
948948 // vub: y_j <= u'_j x_j + d_j. c_j is the coefficient of x_j in row
@@ -966,7 +966,7 @@ bool HighsTransformedLp::transformSNFRelaxation(
966966 aggrvbcoef = static_cast <double >(
967967 HighsCDouble (vals[i]) * vbcoef + bincoef);
968968 aggrconstant = static_cast <double >(
969- HighsCDouble (vals[i]) * vbconstant + (complementvub && inclbincolvub ? vectorsum. getValue (vbcol) : 0 ) );
969+ HighsCDouble (vals[i]) * vbconstant);
970970 if (vals[i] >= 0 ) {
971971 addSNFRentry (vbcol, col,
972972 binsolval,
@@ -980,9 +980,8 @@ bool HighsTransformedLp::transformSNFRelaxation(
980980 -bincoef,
981981 -vals[i], complementvub);
982982 }
983+ tmpSnfrRhs -= aggrconstant + (complementvub && inclbincolvub ? vectorsum.getValue (vbcol) : 0 );
983984 if (inclbincolvub) vectorsum.values [vbcol] = 0 ;
984- // TODO: CHECK IF THE RHS CHANGE SHOULD MATCH THE AGGRCONSTANT
985- tmpSnfrRhs -= aggrconstant;
986985 break ;
987986 }
988987 }
0 commit comments