CoinUtils 2.11.12
Loading...
Searching...
No Matches
twoxtwo_action Class Reference

Detect interesting 2 by 2 blocks. More...

#include <CoinPresolveDupcol.hpp>

Inheritance diagram for twoxtwo_action:
Collaboration diagram for twoxtwo_action:

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.
 ~twoxtwo_action ()
Public Member Functions inherited from CoinPresolveAction
virtual ~CoinPresolveAction ()
 Virtual destructor.

Static Public Member Functions

static const CoinPresolveActionpresolve (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

 twoxtwo_action ()
 twoxtwo_action (int nactions, const action *actions, const CoinPresolveAction *next)

Private Attributes

const int nactions_
const action *const actions_

Additional Inherited Members

Public Attributes inherited from CoinPresolveAction
const CoinPresolveActionnext
 The next presolve transformation.

Detailed Description

Detect interesting 2 by 2 blocks.

If a variable has two entries and for each row there are only two entries with same other variable then we can get rid of one constraint and modify costs.

This is a work in progress - I need more examples

Definition at line 214 of file CoinPresolveDupcol.hpp.

Constructor & Destructor Documentation

◆ twoxtwo_action() [1/2]

twoxtwo_action::twoxtwo_action ( )
inlineprivate

Definition at line 230 of file CoinPresolveDupcol.hpp.

◆ twoxtwo_action() [2/2]

twoxtwo_action::twoxtwo_action ( int nactions,
const action * actions,
const CoinPresolveAction * next )
inlineprivate

Definition at line 236 of file CoinPresolveDupcol.hpp.

◆ ~twoxtwo_action()

twoxtwo_action::~twoxtwo_action ( )
inline

Definition at line 253 of file CoinPresolveDupcol.hpp.

Member Function Documentation

◆ name()

const char * twoxtwo_action::name ( ) const
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.

◆ presolve()

const CoinPresolveAction * twoxtwo_action::presolve ( CoinPresolveMatrix * prob,
const CoinPresolveAction * next )
static

◆ postsolve()

void twoxtwo_action::postsolve ( CoinPostsolveMatrix * prob) const
virtual

Apply the postsolve transformation for this particular presolve action.

Implements CoinPresolveAction.

Member Data Documentation

◆ nactions_

const int twoxtwo_action::nactions_
private

Definition at line 227 of file CoinPresolveDupcol.hpp.

◆ actions_

const action* const twoxtwo_action::actions_
private

Definition at line 228 of file CoinPresolveDupcol.hpp.


The documentation for this class was generated from the following file: