blob: f64a8bcb377297470c5535f45400521c097e4bae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
// $Id: CbcConsequence.hpp 1899 2013-04-09 18:12:08Z stefan $
// Copyright (C) 2002, International Business Machines
// Corporation and others. All Rights Reserved.
// This code is licensed under the terms of the Eclipse Public License (EPL).
// Edwin 11/12/2009 carved from CbcBranchBase
#ifndef CbcConsequence_H
#define CbcConsequence_H
class OsiSolverInterface;
/** Abstract base class for consequent bounds.
When a variable is branched on it normally interacts with other variables by
means of equations. There are cases where we want to step outside LP and do something
more directly e.g. fix bounds. This class is for that.
At present it need not be virtual as only instance is CbcFixVariable, but ...
*/
class CbcConsequence {
public:
// Default Constructor
CbcConsequence ();
// Copy constructor
CbcConsequence ( const CbcConsequence & rhs);
// Assignment operator
CbcConsequence & operator=( const CbcConsequence & rhs);
/// Clone
virtual CbcConsequence * clone() const = 0;
/// Destructor
virtual ~CbcConsequence ();
/** Apply to an LP solver. Action depends on state
*/
virtual void applyToSolver(OsiSolverInterface * solver, int state) const = 0;
protected:
};
#endif
|