# useless_constraint_action Class Reference

`#include <CoinPresolveUseless.hpp>`

Inheritance diagram for useless_constraint_action:
[legend]
Collaboration diagram for useless_constraint_action:
[legend]

List of all members.

## Classes
struct | action
## Public Member Functions
const char * | name () const
| A name for debug printing.
void | postsolve (CoinPostsolveMatrix *prob) const
| Apply the postsolve transformation for this particular presolve action.
virtual | ~useless_constraint_action ()
## Static Public Member Functions
static const CoinPresolveAction * | presolve (CoinPresolveMatrix *prob, const int *useless_rows, int nuseless_rows, const CoinPresolveAction *next)
## Private Member Functions
| useless_constraint_action (int nactions, const action *actions, const CoinPresolveAction *next)
## Private Attributes
const int | nactions_
const action *const | actions_
## Related Functions
(Note that these are not member functions.)
const CoinPresolveAction * | testRedundant (CoinPresolveMatrix *prob, const CoinPresolveAction *next)
| Scan constraints looking for useless constraints.

## Detailed Description

Definition at line 10 of file CoinPresolveUseless.hpp.

## Constructor & Destructor Documentation

useless_constraint_action::useless_constraint_action | ( | int | nactions,
|  | const action * | actions,
|  | const CoinPresolveAction * | next |
| ) |  |  | `[private]`

virtual useless_constraint_action::~useless_constraint_action | ( |  | ) | `[virtual]`

## Member Function Documentation

const char* useless_constraint_action::name | ( |  | ) | const`[virtual]`

A name for debug printing.

It is expected that the name is not stored in the transform itself.

Implements CoinPresolveAction.

static const CoinPresolveAction* useless_constraint_action::presolve | ( | CoinPresolveMatrix * | prob,
|  | const int * | useless_rows,
|  | int | nuseless_rows,
|  | const CoinPresolveAction * | next |
| ) |  |  | `[static]`

void useless_constraint_action::postsolve | ( | CoinPostsolveMatrix * | prob | ) | const`[virtual]`

Apply the postsolve transformation for this particular presolve action.

Implements CoinPresolveAction.

## Friends And Related Function Documentation

const CoinPresolveAction * testRedundant | ( | CoinPresolveMatrix * | prob,
|  | const CoinPresolveAction * | next |
| ) |  |  | `[related]`

Scan constraints looking for useless constraints.

A front end to identify useless constraints and hand them to useless_constraint_action::presolve() for processing.

In a bit more detail, the routine implements a greedy algorithm that identifies a set of necessary constraints. A constraint is necessary if it implies a tighter bound on a variable than the original column bound. These tighter column bounds are then used to calculate row activity and identify constraints that are useless given the presence of the necessary constraints.

## Member Data Documentation

const int useless_constraint_action::nactions_`[private]`

Definition at line 20 of file CoinPresolveUseless.hpp.

const action* const useless_constraint_action::actions_`[private]`

Definition at line 21 of file CoinPresolveUseless.hpp.

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

- /home/coin/svn-release/Osi-0.107.5/CoinUtils/src/CoinPresolveUseless.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines