|
CoinUtils 2.11.12
|
Detect and remove duplicate rows. More...
#include <CoinPresolveDupcol.hpp>
Classes | |
| struct | action |
Public Member Functions | |
| const char * | name () const |
| Construct a postsolve object and add it to the transformation list. | |
| void | postsolve (CoinPostsolveMatrix *prob) const |
| Apply the postsolve transformation for this particular presolve action. | |
| Public Member Functions inherited from CoinPresolveAction | |
| virtual | ~CoinPresolveAction () |
| Virtual destructor. | |
Static Public Member Functions | |
| static const CoinPresolveAction * | presolve (CoinPresolveMatrix *prob, const CoinPresolveAction *next) |
| Static Public Member Functions inherited from CoinPresolveAction | |
| static void | throwCoinError (const char *error, const char *ps_routine) |
| Stub routine to throw exceptions. | |
Private Member Functions | |
| duprow_action () | |
| duprow_action (int nactions, const action *actions, const CoinPresolveAction *next) | |
Additional Inherited Members | |
| Public Attributes inherited from CoinPresolveAction | |
| const CoinPresolveAction * | next |
| The next presolve transformation. | |
Detect and remove duplicate rows.
The algorithm to detect duplicate rows is as outlined for dupcol_action.
If the feasible interval for one constraint is strictly contained in the other, the tighter (contained) constraint is kept. If the feasible intervals are disjoint, the problem is infeasible. If the feasible intervals overlap, both constraints are kept.
duprow_action is definitely a work in progress; postsolve is unimplemented. This doesn't matter as it uses useless_constraint.
Definition at line 87 of file CoinPresolveDupcol.hpp.
|
inlineprivate |
Definition at line 97 of file CoinPresolveDupcol.hpp.
|
inlineprivate |
Definition at line 103 of file CoinPresolveDupcol.hpp.
|
virtual |
Construct a postsolve object and add it to the transformation list.
This is an `add to head' operation. This object will point to the one passed as the parameter. */ CoinPresolveAction(const CoinPresolveAction *next) : next(next) { } modify next (when building rather than passing) inline void setNext(const CoinPresolveAction *nextAction) { next = nextAction; }
/*! A name for debug printing.
It is expected that the name is not stored in the transform itself.
Implements CoinPresolveAction.
|
static |
|
virtual |
Apply the postsolve transformation for this particular presolve action.
Implements CoinPresolveAction.