Minotaur 0.4.1
Docs for developers
Modification.h
1//
2// Minotaur -- It's only 1/2 bull
3//
4// (C)opyright 2009 - 2025 The Minotaur Team.
5//
6
14#ifndef MINOTAURMODIFICATION_H
15#define MINOTAURMODIFICATION_H
16
17#include "Types.h"
18
19namespace Minotaur {
20 class Modification;
21 class Problem;
22 class Relaxation;
23 typedef Relaxation* RelaxationPtr;
24
30 protected:
33
34 public:
36 virtual ~Modification() {};
37
46 = 0;
47
55 virtual ModificationPtr toRel(ProblemPtr p, RelaxationPtr rel) const = 0;
56
58 virtual void applyToProblem(ProblemPtr problem) = 0;
59
61 virtual void undoToProblem(ProblemPtr problem) = 0;
62
64 virtual void write(std::ostream &out) const = 0;
65 };
66
67}
68
69#endif
70
Declare important 'types' used in Minotaur.
Definition: Modification.h:29
virtual ModificationPtr fromRel(RelaxationPtr rel, ProblemPtr p) const =0
Covert a modification for a relaxation to one for its original problem.
virtual void undoToProblem(ProblemPtr problem)=0
Restore the modification for a problem.
virtual void applyToProblem(ProblemPtr problem)=0
Apply it to the problem.
virtual void write(std::ostream &out) const =0
Write it to 'out'.
virtual ~Modification()
Default destroy.
Definition: Modification.h:36
virtual ModificationPtr toRel(ProblemPtr p, RelaxationPtr rel) const =0
Covert a modification for a problem to one for its relaxation.
Modification()
Default constructor.
Definition: Modification.h:32
Definition: Problem.h:74
Definition: Relaxation.h:53
Definition: ActiveNodeStore.h:20

Minotaur source code documented by Doxygen 1.9.4 on Thu Apr 24 2025