CoinPresolvePsdebug.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolvePsdebug.hpp 1854 2015-12-18 14:18:54Z forrest $ */
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 CoinPresolvePsdebug_H
7 #define CoinPresolvePsdebug_H
8 
9 /*
10  The current idea of the relation between PRESOLVE_DEBUG and
11  PRESOLVE_CONSISTENCY is that PRESOLVE_CONSISTENCY triggers the consistency
12  checks and PRESOLVE_DEBUG triggers consistency checks and output.
13  This isn't always true in the code, but that's the goal. Really,
14  the whole compile-time scheme should be replaced with something more
15  user-friendly (control variables that can be changed during the run).
16 
17  Also floating about are PRESOLVE_SUMMARY and COIN_PRESOLVE_TUNING.
18  -- lh, 111208 --
19 */
50 
58 void presolve_no_dups(const CoinPresolveMatrix *preObj,
59  bool doCol = true, bool doRow = true) ;
60 
69 void presolve_links_ok(const CoinPresolveMatrix *preObj,
70  bool doCol = true, bool doRow = true) ;
71 
78 void presolve_no_zeros(const CoinPresolveMatrix *preObj,
79  bool doCol = true, bool doRow = true) ;
80 
87 void presolve_consistent(const CoinPresolveMatrix *preObj,
88  bool chkvals = true) ;
89 
94 
106  bool chkElemCnt = false) ;
107 
119 
127 void presolve_check_duals(const CoinPostsolveMatrix *postObj) ;
128 
138 void presolve_check_sol(const CoinPresolveMatrix *preObj,
139  int chkColSol = 2, int chkRowAct = 1,
140  int chkStatus = 1) ;
141 
150 void presolve_check_sol(const CoinPostsolveMatrix *postObj,
151  int chkColSol = 2, int chkRowAct = 2,
152  int chkStatus = 1) ;
153 
157 void presolve_check_nbasic(const CoinPresolveMatrix *preObj) ;
158 
162 void presolve_check_nbasic(const CoinPostsolveMatrix *postObj) ;
163 
165 void postsolve_get_rowcopy(const CoinPostsolveMatrix *postObj,
166  int * & rowStarts, int * & columns, double * & elements ) ;
168 
169 #endif
void presolve_check_nbasic(const CoinPresolveMatrix *preObj)
Check for the proper number of basic variables.
void presolve_check_reduced_costs(const CoinPostsolveMatrix *obj)
Check stored reduced costs for accuracy and consistency with variable status.
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...
void presolve_consistent(const CoinPresolveMatrix *preObj, bool chkvals=true)
Checks for equivalence of the column- and row-major matrices.
void presolve_no_zeros(const CoinPresolveMatrix *preObj, bool doCol=true, bool doRow=true)
Check for explicit zeros in the column- and/or row-major matrices.
void postsolve_get_rowcopy(const CoinPostsolveMatrix *postObj, int *&rowStarts, int *&columns, double *&elements)
get a row copy in postsolve
void presolve_links_ok(const CoinPresolveMatrix *preObj, bool doCol=true, bool doRow=true)
Check the links which track storage order for major vectors in the bulk storage area.
void presolve_check_threads(const CoinPostsolveMatrix *obj)
Checks that column threads agree with column lengths.
void presolve_check_sol(const CoinPresolveMatrix *preObj, int chkColSol=2, int chkRowAct=1, int chkStatus=1)
Check primal solution and architectural variable status.
void presolve_check_duals(const CoinPostsolveMatrix *postObj)
Check the dual variables for consistency with row activity.
void presolve_check_free_list(const CoinPostsolveMatrix *obj, bool chkElemCnt=false)
Checks the free list.
void presolve_no_dups(const CoinPresolveMatrix *preObj, bool doCol=true, bool doRow=true)
Check column-major and/or row-major matrices for duplicate entries in the major vectors.