CoinUtils 2.11.13
Loading...
Searching...
No Matches
forcing_constraint_action Class Reference

Detect and process forcing constraints and useless constraints. More...

#include <CoinPresolveForcing.hpp>

Inheritance diagram for forcing_constraint_action:
Collaboration diagram for forcing_constraint_action:

Classes

struct  action

Public Member Functions

 forcing_constraint_action (int nactions, const action *actions, const CoinPresolveAction *next)
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.
virtual ~forcing_constraint_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

 forcing_constraint_action ()
 forcing_constraint_action (const forcing_constraint_action &rhs)
forcing_constraint_actionoperator= (const forcing_constraint_action &rhs)

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 and process forcing constraints and useless constraints.

A constraint is useless if the bounds on the variables prevent the constraint from ever being violated.

A constraint is a forcing constraint if the bounds on the constraint force the value of an involved variable to one of its bounds. A constraint can force more than one variable.

Definition at line 27 of file CoinPresolveForcing.hpp.

Constructor & Destructor Documentation

◆ forcing_constraint_action() [1/3]

forcing_constraint_action::forcing_constraint_action ( )
private

◆ forcing_constraint_action() [2/3]

forcing_constraint_action::forcing_constraint_action ( const forcing_constraint_action & rhs)
private

◆ forcing_constraint_action() [3/3]

forcing_constraint_action::forcing_constraint_action ( int nactions,
const action * actions,
const CoinPresolveAction * next )
inline

Definition at line 47 of file CoinPresolveForcing.hpp.

◆ ~forcing_constraint_action()

virtual forcing_constraint_action::~forcing_constraint_action ( )
virtual

Member Function Documentation

◆ operator=()

forcing_constraint_action & forcing_constraint_action::operator= ( const forcing_constraint_action & rhs)
private

◆ name()

const char * forcing_constraint_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 * forcing_constraint_action::presolve ( CoinPresolveMatrix * prob,
const CoinPresolveAction * next )
static

◆ postsolve()

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

Apply the postsolve transformation for this particular presolve action.

Implements CoinPresolveAction.

Member Data Documentation

◆ nactions_

const int forcing_constraint_action::nactions_
private

Definition at line 42 of file CoinPresolveForcing.hpp.

◆ actions_

const action* const forcing_constraint_action::actions_
private

Definition at line 44 of file CoinPresolveForcing.hpp.


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