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 int dim() const
dimension of basis matrix.
int coDim() const
codimension.
Representation rep() const
return the current basis representation.
SPxOut * spxout
message handler
void getRhs(Vector &p_rhs) const
copy rhs value vector to p_rhs.
const VectorBase< Real > & lower() const
Returns lower bound vector.
const VectorBase< Real > & upper() const
Returns upper bound vector.
Real opttol() const
allowed optimality, i.e., dual feasibility tolerance.
void getCol(int i, LPColBase< Real > &col) const
Gets i 'th column.
virtual Status getDual(Vector &vector) const
get current solution vector for dual variables.
void getLhs(Vector &p_lhs) const
copy lhs value vector to p_lhs.
VectorBase< Real > Vector
void getObj(VectorBase< Real > &pobj) const
Gets objective vector.
#define MSG_INFO1(spxout, x)
Prints out message x if the verbosity level is at least SPxOut::INFO1.
Debugging, floating point type and parameter definitions.
SVectorBase< Real > SVector
Everything should be within this namespace.
SPxSense spxSense() const
Returns the optimization sense.
DVectorBase< Real > DVector
virtual Status getDualfarkas(Vector &vector) const
get dual farkas proof of infeasibility.
columnwise representation.