CoinPresolveZeros.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveZeros.hpp 1215 2009-11-05 11:03:04Z forrest $ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 
5 #ifndef CoinPresolveZeros_H
6 #define CoinPresolveZeros_H
7 
13 #define DROP_ZERO 8
14 
21 struct dropped_zero {
22  int row;
23  int col;
24 };
25 
32 
33  const int nzeros_;
34  const dropped_zero *const zeros_;
35 
37  const dropped_zero *zeros,
38  const CoinPresolveAction *next) :
39  CoinPresolveAction(next),
40  nzeros_(nzeros), zeros_(zeros)
41 {}
42 
43  public:
44  const char *name() const { return ("drop_zero_coefficients_action"); }
45 
47  int *checkcols,
48  int ncheckcols,
49  const CoinPresolveAction *next);
50 
51  void postsolve(CoinPostsolveMatrix *prob) const;
52 
54 };
55 
57  const CoinPresolveAction *next);
58 
59 #endif
const CoinPresolveAction * drop_zero_coefficients(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
#define deleteAction(array, type)
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, int *checkcols, int ncheckcols, const CoinPresolveAction *next)
Abstract base class of all presolve routines.
drop_zero_coefficients_action(int nzeros, const dropped_zero *zeros, const CoinPresolveAction *next)
Tracking information for an explicit zero coefficient.
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.
const CoinPresolveAction * next
The next presolve transformation.