CoinUtils  2.10.13
CoinPresolveZeros.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveZeros.hpp 1498 2011-11-02 15:25:35Z mjs $ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 #ifndef CoinPresolveZeros_H
7 #define CoinPresolveZeros_H
8 
14 #define DROP_ZERO 8
15 
22 struct dropped_zero {
23  int row;
24  int col;
25 };
26 
33 
34  const int nzeros_;
35  const dropped_zero *const zeros_;
36 
38  const dropped_zero *zeros,
39  const CoinPresolveAction *next) :
41  nzeros_(nzeros), zeros_(zeros)
42 {}
43 
44  public:
45  const char *name() const { return ("drop_zero_coefficients_action"); }
46 
48  int *checkcols,
49  int ncheckcols,
50  const CoinPresolveAction *next);
51 
52  void postsolve(CoinPostsolveMatrix *prob) const;
53 
55 };
56 
58  const CoinPresolveAction *next);
59 
60 #endif
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
Abstract base class of all presolve routines.
#define deleteAction(array, type)
const CoinPresolveAction * drop_zero_coefficients(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
const char * name() const
A name for debug printing.
CoinPresolveAction(const CoinPresolveAction *next)
Construct a postsolve object and add it to the transformation list.
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, int *checkcols, int ncheckcols, const CoinPresolveAction *next)
const CoinPresolveAction * next
The next presolve transformation.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
Tracking information for an explicit zero coefficient.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
Removal of explicit zeros.