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) :
40  CoinPresolveAction(next),
41  nzeros_(nzeros), zeros_(zeros)
42 {}
43 
44  public:
45  const char *name() const { return ("drop_zero_coefficients_action"); }
46 
47  static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
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
Abstract base class of all presolve routines.
#define deleteAction(array, type)
const CoinPresolveAction * drop_zero_coefficients(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
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...
const char * name() const
A name for debug printing.
Removal of explicit zeros.