source: stable/1.15/Clp/src/MyEventHandler.cpp @ 1995

Last change on this file since 1995 was 1665, checked in by lou, 9 years ago

Add EPL license notice in src.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.6 KB
Line 
1/* $Id: MyEventHandler.cpp 1665 2011-01-04 17:55:54Z stefan $ */
2// Copyright (C) 2004, International Business Machines
3// Corporation and others.  All Rights Reserved.
4// This code is licensed under the terms of the Eclipse Public License (EPL).
5
6#if defined(_MSC_VER)
7#pragma warning(disable:4786)
8#pragma warning(disable:4503)
9#endif
10
11#include "MyEventHandler.hpp"
12
13
14//#############################################################################
15// Constructors / Destructor / Assignment
16//#############################################################################
17
18//-------------------------------------------------------------------
19// Default Constructor
20//-------------------------------------------------------------------
21MyEventHandler::MyEventHandler ()
22     : ClpEventHandler()
23{
24}
25
26//-------------------------------------------------------------------
27// Copy constructor
28//-------------------------------------------------------------------
29MyEventHandler::MyEventHandler (const MyEventHandler & rhs)
30     : ClpEventHandler(rhs)
31{
32}
33
34// Constructor with pointer to model
35MyEventHandler::MyEventHandler(ClpSimplex * model)
36     : ClpEventHandler(model)
37{
38}
39
40//-------------------------------------------------------------------
41// Destructor
42//-------------------------------------------------------------------
43MyEventHandler::~MyEventHandler ()
44{
45}
46
47//----------------------------------------------------------------
48// Assignment operator
49//-------------------------------------------------------------------
50MyEventHandler &
51MyEventHandler::operator=(const MyEventHandler& rhs)
52{
53     if (this != &rhs) {
54          ClpEventHandler::operator=(rhs);
55     }
56     return *this;
57}
58//-------------------------------------------------------------------
59// Clone
60//-------------------------------------------------------------------
61ClpEventHandler * MyEventHandler::clone() const
62{
63     return new MyEventHandler(*this);
64}
65
66int
67MyEventHandler::event(Event whichEvent)
68{
69     if (whichEvent == endOfValuesPass)
70          return 0; // say optimal
71     else
72          return -1; // carry on
73
74#if 0
75     // This is how one can get some progress information at the end of each iteration.
76     if (whichEvent == endOfIteration) {
77          int numIter = model_->getIterationCount();
78          double sumDualInfeas = model_->sumDualInfeasibilities();
79          double sumPrimalInfeas = model_->sumPrimalInfeasibilities();
80          double obj = model_->getObjValue();
81     }
82
83     // This is how one can tell CLP to stop now.
84     // The value of cancelAsap needs to come from the application using CLP.
85     if ( cancelAsap ) return 5;
86     else return -1;
87#endif
88
89
90}
Note: See TracBrowser for help on using the repository browser.