56 for(
int i = 0; i <
dim(); ++i )
60 if( sen * dualsol[i] > eps )
62 else if( sen * dualsol[i] < -eps )
67 Easyval y(dualsol[i]);
70 MSG_DEBUG( std::cout <<
"DPROOF02 y[" << i <<
"] = " << dualsol[i]
71 <<
", lhs[" << i <<
"] = " << lhsvec[i]
72 <<
", rhs[" << i <<
"] = " << rhsvec[i]
73 <<
" -> ytb = " << ytb << std::endl; )
78 for(
int j = 0; j <
coDim(); ++j )
84 SVector colvec = col.colVector();
85 Easyval diff = objvec[j];
86 MSG_DEBUG( std::cout <<
"DPROOF03 obj[" << j <<
"] = " << objvec[j]
87 <<
" -> diff = " << diff << std::endl; )
89 for(
int i = 0; i < colvec.size(); ++i )
91 Easyval y(dualsol[colvec.index(i)]);
92 Easyval a(colvec.value(i));
94 MSG_DEBUG( std::cout <<
"DPROOF04 y[" << colvec.index(i) <<
"] = "
95 << dualsol[colvec.index(i)]
96 <<
", a[" << colvec.index(i) <<
"] = "
98 <<
" -> diff = " << diff << std::endl; )
103 MSG_DEBUG( std::cout <<
"DPROOF05 x[" << j <<
"] = " << x
104 <<
" -> diff = " << diff << std::endl
105 <<
" ------------> scalprod = "
106 << scalprod << std::endl; )
115 return scalprod.getInf();
117 return scalprod.getSup();
120 Real SPxSolver::provedDualbound()
const
128 return provedBound(dualsol, objvec);
131 bool SPxSolver::isProvenInfeasible()
const
139 return (provedBound(dualfarkas, zerovec) > 0.0);
144 #endif // WITH_EASYVAL