Scippy

SCIP

Solving Constraint Integer Programs

pub_prop.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (c) 2002-2023 Zuse Institute Berlin (ZIB) */
7 /* */
8 /* Licensed under the Apache License, Version 2.0 (the "License"); */
9 /* you may not use this file except in compliance with the License. */
10 /* You may obtain a copy of the License at */
11 /* */
12 /* http://www.apache.org/licenses/LICENSE-2.0 */
13 /* */
14 /* Unless required by applicable law or agreed to in writing, software */
15 /* distributed under the License is distributed on an "AS IS" BASIS, */
16 /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17 /* See the License for the specific language governing permissions and */
18 /* limitations under the License. */
19 /* */
20 /* You should have received a copy of the Apache-2.0 license */
21 /* along with SCIP; see the file LICENSE. If not visit scipopt.org. */
22 /* */
23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24 
25 /**@file pub_prop.h
26  * @ingroup PUBLICCOREAPI
27  * @brief public methods for propagators
28  * @author Tobias Achterberg
29  */
30 
31 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32 
33 #ifndef __SCIP_PUB_PROP_H__
34 #define __SCIP_PUB_PROP_H__
35 
36 
37 #include "scip/def.h"
38 #include "scip/type_misc.h"
39 #include "scip/type_prop.h"
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 /**@addtogroup PublicPropagatorMethods
46  *
47  * @{
48  */
49 
50 /** compares two propagators w. r. to their priority */
51 SCIP_EXPORT
52 SCIP_DECL_SORTPTRCOMP(SCIPpropComp);
53 
54 /** compares two propagators w. r. to their presolving priority */
55 SCIP_EXPORT
56 SCIP_DECL_SORTPTRCOMP(SCIPpropCompPresol);
57 
58 /** comparison method for sorting propagators w.r.t. to their name */
59 SCIP_EXPORT
60 SCIP_DECL_SORTPTRCOMP(SCIPpropCompName);
61 
62 /** gets user data of propagator */
63 SCIP_EXPORT
65  SCIP_PROP* prop /**< propagator */
66  );
67 
68 /** sets user data of propagator; user has to free old data in advance! */
69 SCIP_EXPORT
70 void SCIPpropSetData(
71  SCIP_PROP* prop, /**< propagator */
72  SCIP_PROPDATA* propdata /**< new propagator user data */
73  );
74 
75 /** gets name of propagator */
76 SCIP_EXPORT
77 const char* SCIPpropGetName(
78  SCIP_PROP* prop /**< propagator */
79  );
80 
81 /** gets description of propagator */
82 SCIP_EXPORT
83 const char* SCIPpropGetDesc(
84  SCIP_PROP* prop /**< propagator */
85  );
86 
87 /** gets priority of propagator */
88 SCIP_EXPORT
90  SCIP_PROP* prop /**< propagator */
91  );
92 
93 /** gets presolving priority of propagator */
94 SCIP_EXPORT
96  SCIP_PROP* prop /**< propagator */
97  );
98 
99 /** gets frequency of propagator */
100 SCIP_EXPORT
101 int SCIPpropGetFreq(
102  SCIP_PROP* prop /**< propagator */
103  );
104 
105 /** gets time in seconds used for setting up this propagator for new stages */
106 SCIP_EXPORT
108  SCIP_PROP* prop /**< propagator */
109  );
110 
111 /** sets frequency of propagator */
112 SCIP_EXPORT
113 void SCIPpropSetFreq(
114  SCIP_PROP* prop, /**< propagator */
115  int freq /**< new frequency of propagator */
116  );
117 
118 /** gets time in seconds used in this propagator */
119 SCIP_EXPORT
121  SCIP_PROP* prop /**< propagator */
122  );
123 
124 /** gets time in seconds used in this propagator during strong branching */
125 SCIP_EXPORT
127  SCIP_PROP* prop /**< propagator */
128  );
129 
130 /** gets time in seconds used in this propagator for resolve propagation */
131 SCIP_EXPORT
133  SCIP_PROP* prop /**< propagator */
134  );
135 
136 /** gets time in seconds used in this propagator for presolving */
137 SCIP_EXPORT
139  SCIP_PROP* prop /**< propagator */
140  );
141 
142 /** gets the total number of times, the propagator was called */
143 SCIP_EXPORT
145  SCIP_PROP* prop /**< propagator */
146  );
147 
148 /** gets the total number of times, the propagator was called for resolving a propagation */
149 SCIP_EXPORT
151  SCIP_PROP* prop /**< propagator */
152  );
153 
154 /** gets total number of times, this propagator detected a cutoff */
155 SCIP_EXPORT
157  SCIP_PROP* prop /**< propagator */
158  );
159 
160 /** gets total number of domain reductions found by this propagator */
161 SCIP_EXPORT
163  SCIP_PROP* prop /**< propagator */
164  );
165 
166 /** should propagator be delayed, if other propagators found reductions? */
167 SCIP_EXPORT
169  SCIP_PROP* prop /**< propagator */
170  );
171 
172 /** was propagator delayed at the last call? */
173 SCIP_EXPORT
175  SCIP_PROP* prop /**< propagator */
176  );
177 
178 /** is propagator initialized? */
179 SCIP_EXPORT
181  SCIP_PROP* prop /**< propagator */
182  );
183 
184 /** gets number of variables fixed during presolving of propagator */
185 SCIP_EXPORT
187  SCIP_PROP* prop /**< propagator */
188  );
189 
190 /** gets number of variables aggregated during presolving of propagator */
191 SCIP_EXPORT
193  SCIP_PROP* prop /**< propagator */
194  );
195 
196 /** gets number of variable types changed during presolving of propagator */
197 SCIP_EXPORT
199  SCIP_PROP* prop /**< propagator */
200  );
201 
202 /** gets number of bounds changed during presolving of propagator */
203 SCIP_EXPORT
205  SCIP_PROP* prop /**< propagator */
206  );
207 
208 /** gets number of holes added to domains of variables during presolving of propagator */
209 SCIP_EXPORT
211  SCIP_PROP* prop /**< propagator */
212  );
213 
214 /** gets number of constraints deleted during presolving of propagator */
215 SCIP_EXPORT
217  SCIP_PROP* prop /**< propagator */
218  );
219 
220 /** gets number of constraints added during presolving of propagator */
221 SCIP_EXPORT
223  SCIP_PROP* prop /**< propagator */
224  );
225 
226 /** gets number of constraints upgraded during presolving of propagator */
227 SCIP_EXPORT
229  SCIP_PROP* prop /**< propagator */
230  );
231 
232 /** gets number of coefficients changed during presolving of propagator */
233 SCIP_EXPORT
235  SCIP_PROP* prop /**< propagator */
236  );
237 
238 /** gets number of constraint sides changed during presolving of propagator */
239 SCIP_EXPORT
241  SCIP_PROP* prop /**< propagator */
242  );
243 
244 /** gets number of times the propagator was called in presolving and tried to find reductions */
245 SCIP_EXPORT
247  SCIP_PROP* prop /**< propagator */
248  );
249 
250 /** returns the timing mask of the propagator */
251 SCIP_EXPORT
253  SCIP_PROP* prop /**< propagator */
254  );
255 
256 /** does the propagator perform presolving? */
257 SCIP_EXPORT
259  SCIP_PROP* prop /**< propagator */
260  );
261 
262 /** returns the timing mask of the presolving method of the propagator */
263 SCIP_EXPORT
265  SCIP_PROP* prop /**< propagator */
266  );
267 
268 /** sets the timing mask of the presolving method of the propagator */
269 SCIP_EXPORT
271  SCIP_PROP* prop, /**< propagator */
272  SCIP_PRESOLTIMING presoltiming /** timing mask to be set */
273  );
274 
275 /** @} */
276 
277 #ifdef __cplusplus
278 }
279 #endif
280 
281 #endif
void SCIPpropSetPresolTiming(SCIP_PROP *prop, SCIP_PRESOLTIMING presoltiming)
Definition: prop.c:1306
int SCIPpropGetNUpgdConss(SCIP_PROP *prop)
Definition: prop.c:1236
SCIP_PRESOLTIMING SCIPpropGetPresolTiming(SCIP_PROP *prop)
Definition: prop.c:1296
type definitions for miscellaneous datastructures
SCIP_Real SCIPpropGetRespropTime(SCIP_PROP *prop)
Definition: prop.c:1076
SCIP_Longint SCIPpropGetNRespropCalls(SCIP_PROP *prop)
Definition: prop.c:1106
int SCIPpropGetNChgSides(SCIP_PROP *prop)
Definition: prop.c:1256
int SCIPpropGetPriority(SCIP_PROP *prop)
Definition: prop.c:961
SCIP_Bool SCIPpropIsDelayed(SCIP_PROP *prop)
Definition: prop.c:1136
SCIP_Longint SCIPpropGetNCalls(SCIP_PROP *prop)
Definition: prop.c:1096
SCIP_Longint SCIPpropGetNCutoffs(SCIP_PROP *prop)
Definition: prop.c:1116
SCIP_Bool SCIPpropIsInitialized(SCIP_PROP *prop)
Definition: prop.c:1156
int SCIPpropGetNPresolCalls(SCIP_PROP *prop)
Definition: prop.c:1266
SCIP_Real SCIPpropGetSetupTime(SCIP_PROP *prop)
Definition: prop.c:1034
SCIP_Longint SCIPpropGetNDomredsFound(SCIP_PROP *prop)
Definition: prop.c:1126
SCIP_DECL_SORTPTRCOMP(SCIPpropComp)
Definition: prop.c:52
unsigned int SCIP_PRESOLTIMING
Definition: type_timing.h:61
SCIP_Real SCIPpropGetPresolTime(SCIP_PROP *prop)
Definition: prop.c:1086
int SCIPpropGetNChgBds(SCIP_PROP *prop)
Definition: prop.c:1196
#define SCIP_Bool
Definition: def.h:93
int SCIPpropGetNChgCoefs(SCIP_PROP *prop)
Definition: prop.c:1246
int SCIPpropGetNFixedVars(SCIP_PROP *prop)
Definition: prop.c:1166
int SCIPpropGetNAddConss(SCIP_PROP *prop)
Definition: prop.c:1226
const char * SCIPpropGetDesc(SCIP_PROP *prop)
Definition: prop.c:951
SCIP_Real SCIPpropGetStrongBranchPropTime(SCIP_PROP *prop)
Definition: prop.c:1066
int SCIPpropGetNAggrVars(SCIP_PROP *prop)
Definition: prop.c:1176
const char * SCIPpropGetName(SCIP_PROP *prop)
Definition: prop.c:941
int SCIPpropGetNChgVarTypes(SCIP_PROP *prop)
Definition: prop.c:1186
type definitions for propagators
int SCIPpropGetPresolPriority(SCIP_PROP *prop)
Definition: prop.c:971
void SCIPpropSetFreq(SCIP_PROP *prop, int freq)
Definition: prop.c:1044
SCIP_Bool SCIPpropWasDelayed(SCIP_PROP *prop)
Definition: prop.c:1146
unsigned int SCIP_PROPTIMING
Definition: type_timing.h:75
SCIP_PROPTIMING SCIPpropGetTimingmask(SCIP_PROP *prop)
Definition: prop.c:1276
#define SCIP_Real
Definition: def.h:186
struct SCIP_PropData SCIP_PROPDATA
Definition: type_prop.h:52
SCIP_PROPDATA * SCIPpropGetData(SCIP_PROP *prop)
Definition: prop.c:789
void SCIPpropSetData(SCIP_PROP *prop, SCIP_PROPDATA *propdata)
Definition: prop.c:799
#define SCIP_Longint
Definition: def.h:171
int SCIPpropGetFreq(SCIP_PROP *prop)
Definition: prop.c:1009
common defines and data types used in all packages of SCIP
int SCIPpropGetNDelConss(SCIP_PROP *prop)
Definition: prop.c:1216
int SCIPpropGetNAddHoles(SCIP_PROP *prop)
Definition: prop.c:1206
SCIP_Real SCIPpropGetTime(SCIP_PROP *prop)
Definition: prop.c:1056
SCIP_Bool SCIPpropDoesPresolve(SCIP_PROP *prop)
Definition: prop.c:1286