Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CoinPresolveZeros.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveZeros.hpp 2083 2019-01-06 19:38:09Z unxusr $ */
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)
40  : CoinPresolveAction(next)
41  , nzeros_(nzeros)
42  , zeros_(zeros)
43  {
44  }
45 
46 public:
47  const char *name() const { return ("drop_zero_coefficients_action"); }
48 
50  int *checkcols,
51  int ncheckcols,
52  const CoinPresolveAction *next);
53 
54  void postsolve(CoinPostsolveMatrix *prob) const;
55 
57 };
58 
60  const CoinPresolveAction *next);
61 
62 #endif
63 
64 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
65 */
Abstract base class of all presolve routines.
#define deleteAction(array, type)
const CoinPresolveAction * drop_zero_coefficients(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
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...
drop_zero_coefficients_action(int nzeros, const dropped_zero *zeros, const CoinPresolveAction *next)
Tracking information for an explicit zero coefficient.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
const char * name() const
A name for debug printing.
const dropped_zero *const zeros_
Removal of explicit zeros.