drop_empty_rows_action

Physically removes empty rows in presolve, and reinserts empty rows in postsolve.

Physically removes empty rows in presolve, and reinserts empty rows in postsolve.

Inheritance

Inherits from: CoinPresolveAction

Description

Physical removal of rows and columns should be the last activities performed during presolve. Do them exactly once. The row-major matrix is not maintained by this transform. To physically drop the rows, the rows are renumbered, excluding empty rows. This involves rewriting CoinPrePostsolveMatrix::hrow_ and compressing the row bounds and (if present) the row portions of the solution. TodoConfirm behaviour when a solution is present in presolve.

Public Methods

name

A name for debug printing.

const char * name()

postsolve

Apply the postsolve transformation for this particular presolve action.

void postsolve(CoinPostsolveMatrix * prob)

Parameters:

~drop_empty_rows_action

 ~drop_empty_rows_action()

presolve

const CoinPresolveAction * presolve(CoinPresolveMatrix * prob, const CoinPresolveAction * next)

Parameters:

Source

Header: layer-0/CoinUtils/src/CoinPresolveEmpty.hpp