// Copyright (C) 2004, International Business Machines
// Corporation and others. All Rights Reserved.
#if defined(_MSC_VER)
#pragma warning(disable:4786)
#pragma warning(disable:4503)
#endif
#include "MyEventHandler.hpp"
//#############################################################################
// Constructors / Destructor / Assignment
//#############################################################################
//-------------------------------------------------------------------
// Default Constructor
//-------------------------------------------------------------------
MyEventHandler::MyEventHandler ()
: ClpEventHandler()
{
}
//-------------------------------------------------------------------
// Copy constructor
//-------------------------------------------------------------------
MyEventHandler::MyEventHandler (const MyEventHandler & rhs)
: ClpEventHandler(rhs)
{
}
// Constructor with pointer to model
MyEventHandler::MyEventHandler(ClpSimplex * model)
: ClpEventHandler(model)
{
}
//-------------------------------------------------------------------
// Destructor
//-------------------------------------------------------------------
MyEventHandler::~MyEventHandler ()
{
}
//----------------------------------------------------------------
// Assignment operator
//-------------------------------------------------------------------
MyEventHandler &
MyEventHandler::operator=(const MyEventHandler& rhs)
{
if (this != &rhs) {
ClpEventHandler::operator=(rhs);
}
return *this;
}
//-------------------------------------------------------------------
// Clone
//-------------------------------------------------------------------
ClpEventHandler * MyEventHandler::clone() const
{
return new MyEventHandler(*this);
}
int
MyEventHandler::event(Event whichEvent)
{
if (whichEvent==endOfValuesPass)
return 0; // say optimal
else
return -1; // carry on
#if 0
// This is how one can get some progress information at the end of each iteration.
if (whichEvent==endOfIteration) {
int numIter = model_->getIterationCount();
double sumDualInfeas = model_->sumDualInfeasibilities();
double sumPrimalInfeas = model_->sumPrimalInfeasibilities();
double obj = model_->getObjValue();
}
// This is how one can tell CLP to stop now.
// The value of cancelAsap needs to come from the application using CLP.
if ( cancelAsap ) return 5;
else return -1;
#endif
}
syntax highlighted by Code2HTML, v. 0.9.1