1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (C) 2002-2021 Konrad-Zuse-Zentrum */ 7 /* fuer Informationstechnik Berlin */ 8 /* */ 9 /* SCIP is distributed under the terms of the ZIB Academic License. */ 10 /* */ 11 /* You should have received a copy of the ZIB Academic License */ 12 /* along with SCIP; see the file COPYING. If not visit scipopt.org. */ 13 /* */ 14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /**@file pub_presol.h 17 * @ingroup PUBLICCOREAPI 18 * @brief public methods for presolvers 19 * @author Tobias Achterberg 20 */ 21 22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 23 24 #ifndef __SCIP_PUB_PRESOL_H__ 25 #define __SCIP_PUB_PRESOL_H__ 26 27 #include "scip/def.h" 28 #include "scip/type_misc.h" 29 #include "scip/type_presol.h" 30 #include "scip/type_timing.h" 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 /**@addtogroup PublicPresolverMethods 37 * 38 * @{ 39 */ 40 41 /** compares two presolvers w. r. to their priority */ 42 SCIP_EXPORT 43 SCIP_DECL_SORTPTRCOMP(SCIPpresolComp); 44 45 /** comparison method for sorting presolvers w.r.t. to their name */ 46 SCIP_EXPORT 47 SCIP_DECL_SORTPTRCOMP(SCIPpresolCompName); 48 49 /** gets user data of presolver */ 50 SCIP_EXPORT 51 SCIP_PRESOLDATA* SCIPpresolGetData( 52 SCIP_PRESOL* presol /**< presolver */ 53 ); 54 55 /** sets user data of presolver; user has to free old data in advance! */ 56 SCIP_EXPORT 57 void SCIPpresolSetData( 58 SCIP_PRESOL* presol, /**< presolver */ 59 SCIP_PRESOLDATA* presoldata /**< new presolver user data */ 60 ); 61 62 /** gets name of presolver */ 63 SCIP_EXPORT 64 const char* SCIPpresolGetName( 65 SCIP_PRESOL* presol /**< presolver */ 66 ); 67 68 /** gets description of presolver */ 69 SCIP_EXPORT 70 const char* SCIPpresolGetDesc( 71 SCIP_PRESOL* presol /**< presolver */ 72 ); 73 74 /** gets priority of presolver */ 75 SCIP_EXPORT 76 int SCIPpresolGetPriority( 77 SCIP_PRESOL* presol /**< presolver */ 78 ); 79 80 /** gets round limit of presolver */ 81 SCIP_EXPORT 82 int SCIPpresolGetMaxrounds( 83 SCIP_PRESOL* presol /**< presolver */ 84 ); 85 86 /** gets the timing mask of the presolver */ 87 SCIP_EXPORT 88 SCIP_PRESOLTIMING SCIPpresolGetTiming( 89 SCIP_PRESOL* presol /**< presolver */ 90 ); 91 92 /** sets the timing mask of the presolver */ 93 SCIP_EXPORT 94 void SCIPpresolSetTiming( 95 SCIP_PRESOL* presol, /**< presolver */ 96 SCIP_PRESOLTIMING timing /**< timing mask of the presolver */ 97 ); 98 99 /** is presolver initialized? */ 100 SCIP_EXPORT 101 SCIP_Bool SCIPpresolIsInitialized( 102 SCIP_PRESOL* presol /**< presolver */ 103 ); 104 105 /** gets time in seconds used in this presolver for setting up for next stages */ 106 SCIP_EXPORT 107 SCIP_Real SCIPpresolGetSetupTime( 108 SCIP_PRESOL* presol /**< presolver */ 109 ); 110 111 /** gets time in seconds used in this presolver */ 112 SCIP_EXPORT 113 SCIP_Real SCIPpresolGetTime( 114 SCIP_PRESOL* presol /**< presolver */ 115 ); 116 117 /** gets number of variables fixed in presolver */ 118 SCIP_EXPORT 119 int SCIPpresolGetNFixedVars( 120 SCIP_PRESOL* presol /**< presolver */ 121 ); 122 123 /** gets number of variables aggregated in presolver */ 124 SCIP_EXPORT 125 int SCIPpresolGetNAggrVars( 126 SCIP_PRESOL* presol /**< presolver */ 127 ); 128 129 /** gets number of variable types changed in presolver */ 130 SCIP_EXPORT 131 int SCIPpresolGetNChgVarTypes( 132 SCIP_PRESOL* presol /**< presolver */ 133 ); 134 135 /** gets number of bounds changed in presolver */ 136 SCIP_EXPORT 137 int SCIPpresolGetNChgBds( 138 SCIP_PRESOL* presol /**< presolver */ 139 ); 140 141 /** gets number of holes added to domains of variables in presolver */ 142 SCIP_EXPORT 143 int SCIPpresolGetNAddHoles( 144 SCIP_PRESOL* presol /**< presolver */ 145 ); 146 147 /** gets number of constraints deleted in presolver */ 148 SCIP_EXPORT 149 int SCIPpresolGetNDelConss( 150 SCIP_PRESOL* presol /**< presolver */ 151 ); 152 153 /** gets number of constraints added in presolver */ 154 SCIP_EXPORT 155 int SCIPpresolGetNAddConss( 156 SCIP_PRESOL* presol /**< presolver */ 157 ); 158 159 /** gets number of constraints upgraded in presolver */ 160 SCIP_EXPORT 161 int SCIPpresolGetNUpgdConss( 162 SCIP_PRESOL* presol /**< presolver */ 163 ); 164 165 /** gets number of coefficients changed in presolver */ 166 SCIP_EXPORT 167 int SCIPpresolGetNChgCoefs( 168 SCIP_PRESOL* presol /**< presolver */ 169 ); 170 171 /** gets number of constraint sides changed in presolver */ 172 SCIP_EXPORT 173 int SCIPpresolGetNChgSides( 174 SCIP_PRESOL* presol /**< presolver */ 175 ); 176 177 /** gets number of times the presolver was called and tried to find reductions */ 178 SCIP_EXPORT 179 int SCIPpresolGetNCalls( 180 SCIP_PRESOL* presol /**< presolver */ 181 ); 182 183 /** @} */ 184 185 #ifdef __cplusplus 186 } 187 #endif 188 189 #endif 190