13 #include "IpSmartPtr.hpp"
16 using namespace Couenne;
25 shrunkDoubleInf_ (0.),
33 stats_ ((p != NULL) &&
35 (p -> Jnlst () -> ProduceOutput (Ipopt::J_ERROR,
J_COUENNE))) {}
46 problem_->
Jnlst()->Printf(Ipopt::J_ERROR,
J_COUENNE,
"Performance of %30s:\t %10gs, %8d runs. fix: %10g shrnk: %10g ubd: %10g 2ubd: %10g infeas: %10g\n",
63 nFixed_ (rhs.nFixed_),
64 boundRatio_ (rhs.boundRatio_),
65 shrunkInf_ (rhs.shrunkInf_),
66 shrunkDoubleInf_ (rhs.shrunkDoubleInf_),
67 nProvedInfeas_ (rhs.nProvedInfeas_),
68 weightSum_ (rhs.weightSum_),
69 oldLB_ (!rhs.problem_ || rhs.oldLB_ ? NULL : CoinCopyOfArray (rhs.oldLB_, rhs.problem_ -> nVars ())),
70 oldUB_ (!rhs.problem_ || rhs.oldUB_ ? NULL : CoinCopyOfArray (rhs.oldUB_, rhs.problem_ -> nVars ())),
71 totalTime_ (rhs.totalTime_),
73 problem_ (rhs.problem_),
74 stats_ (rhs.stats_) {}
108 printf (
"CouenneBTPerfIndicator::setOldBounds(): no problem information, exiting\n");
void addToTimer(double time) const
add to timer
double nFixed_
Whose performance is this?
double totalTime_
old upper bounds
double * oldLB_
total weight (used to give an average indicator at the end of Couenne)
double boundRatio_
number of fixed variables
double shrunkInf_
average bound width shrinkage
CouenneBTPerfIndicator & operator=(const CouenneBTPerfIndicator &rhs)
int nRuns_
CPU time spent on this.
bool stats_
Couenne problem info.
~CouenneBTPerfIndicator()
ConstJnlstPtr Jnlst() const
Provide Journalist.
CouenneBTPerfIndicator(CouenneProblem *p, const std::string &name)
Should stats be printed at the end? Copied from problem_ -> Jnlst () -> ProduceOutput (ERROR...
Class for MINLP problems with symbolic information.
double nProvedInfeas_
average # bounds that went from doubly infinite to infinite
U * GetRawPtr(const OSSmartPtr< U > &smart_ptr)
double * oldUB_
old lower bounds (initial, i.e. before BT)
double shrunkDoubleInf_
average # bounds that went from infinite to finite (counts twice if [-inf,inf] to [a...
double CouNumber
main number type in Couenne
void setOldBounds(const CouNumber *lb, const CouNumber *ub) const
const Ipopt::EJournalCategory J_COUENNE(Ipopt::J_USER8)
CouenneProblem * problem_
number of runs
double weightSum_
average # proofs of infeasibility