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-2025 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
42extern "C" {
43#endif
44
45/**@addtogroup PublicPropagatorMethods
46 *
47 * @{
48 */
49
50/** compares two propagators w. r. to their priority */
51SCIP_EXPORT
52SCIP_DECL_SORTPTRCOMP(SCIPpropComp);
53
54/** compares two propagators w. r. to their presolving priority */
55SCIP_EXPORT
56SCIP_DECL_SORTPTRCOMP(SCIPpropCompPresol);
57
58/** comparison method for sorting propagators w.r.t. to their name */
59SCIP_EXPORT
60SCIP_DECL_SORTPTRCOMP(SCIPpropCompName);
61
62/** gets user data of propagator */
63SCIP_EXPORT
65 SCIP_PROP* prop /**< propagator */
66 );
67
68/** sets user data of propagator; user has to free old data in advance! */
69SCIP_EXPORT
71 SCIP_PROP* prop, /**< propagator */
72 SCIP_PROPDATA* propdata /**< new propagator user data */
73 );
74
75/** marks the propagator as safe to use in exact solving mode */
76SCIP_EXPORT
78 SCIP_PROP* prop /**< propagator */
79 );
80
81/** gets name of propagator */
82SCIP_EXPORT
83const char* SCIPpropGetName(
84 SCIP_PROP* prop /**< propagator */
85 );
86
87/** gets description of propagator */
88SCIP_EXPORT
89const char* SCIPpropGetDesc(
90 SCIP_PROP* prop /**< propagator */
91 );
92
93/** gets priority of propagator */
94SCIP_EXPORT
96 SCIP_PROP* prop /**< propagator */
97 );
98
99/** gets presolving priority of propagator */
100SCIP_EXPORT
102 SCIP_PROP* prop /**< propagator */
103 );
104
105/** gets frequency of propagator */
106SCIP_EXPORT
108 SCIP_PROP* prop /**< propagator */
109 );
110
111/** gets time in seconds used for setting up this propagator for new stages */
112SCIP_EXPORT
114 SCIP_PROP* prop /**< propagator */
115 );
116
117/** sets frequency of propagator */
118SCIP_EXPORT
119void SCIPpropSetFreq(
120 SCIP_PROP* prop, /**< propagator */
121 int freq /**< new frequency of propagator */
122 );
123
124/** gets time in seconds used in this propagator */
125SCIP_EXPORT
127 SCIP_PROP* prop /**< propagator */
128 );
129
130/** gets time in seconds used in this propagator during strong branching */
131SCIP_EXPORT
133 SCIP_PROP* prop /**< propagator */
134 );
135
136/** gets time in seconds used in this propagator for resolve propagation */
137SCIP_EXPORT
139 SCIP_PROP* prop /**< propagator */
140 );
141
142/** gets time in seconds used in this propagator for presolving */
143SCIP_EXPORT
145 SCIP_PROP* prop /**< propagator */
146 );
147
148/** gets the total number of times, the propagator was called */
149SCIP_EXPORT
151 SCIP_PROP* prop /**< propagator */
152 );
153
154/** gets the total number of times, the propagator was called for resolving a propagation */
155SCIP_EXPORT
157 SCIP_PROP* prop /**< propagator */
158 );
159
160/** gets total number of times, this propagator detected a cutoff */
161SCIP_EXPORT
163 SCIP_PROP* prop /**< propagator */
164 );
165
166/** gets total number of domain reductions found by this propagator */
167SCIP_EXPORT
169 SCIP_PROP* prop /**< propagator */
170 );
171
172/** should propagator be delayed, if other propagators found reductions? */
173SCIP_EXPORT
175 SCIP_PROP* prop /**< propagator */
176 );
177
178/** was propagator delayed at the last call? */
179SCIP_EXPORT
181 SCIP_PROP* prop /**< propagator */
182 );
183
184/** is propagator initialized? */
185SCIP_EXPORT
187 SCIP_PROP* prop /**< propagator */
188 );
189
190/** gets number of variables fixed during presolving of propagator */
191SCIP_EXPORT
193 SCIP_PROP* prop /**< propagator */
194 );
195
196/** gets number of variables aggregated during presolving of propagator */
197SCIP_EXPORT
199 SCIP_PROP* prop /**< propagator */
200 );
201
202/** gets number of variable types changed during presolving of propagator */
203SCIP_EXPORT
205 SCIP_PROP* prop /**< propagator */
206 );
207
208/** gets number of bounds changed during presolving of propagator */
209SCIP_EXPORT
211 SCIP_PROP* prop /**< propagator */
212 );
213
214/** gets number of holes added to domains of variables during presolving of propagator */
215SCIP_EXPORT
217 SCIP_PROP* prop /**< propagator */
218 );
219
220/** gets number of constraints deleted during presolving of propagator */
221SCIP_EXPORT
223 SCIP_PROP* prop /**< propagator */
224 );
225
226/** gets number of constraints added during presolving of propagator */
227SCIP_EXPORT
229 SCIP_PROP* prop /**< propagator */
230 );
231
232/** gets number of constraints upgraded during presolving of propagator */
233SCIP_EXPORT
235 SCIP_PROP* prop /**< propagator */
236 );
237
238/** gets number of coefficients changed during presolving of propagator */
239SCIP_EXPORT
241 SCIP_PROP* prop /**< propagator */
242 );
243
244/** gets number of constraint sides changed during presolving of propagator */
245SCIP_EXPORT
247 SCIP_PROP* prop /**< propagator */
248 );
249
250/** gets number of times the propagator was called in presolving and tried to find reductions */
251SCIP_EXPORT
253 SCIP_PROP* prop /**< propagator */
254 );
255
256/** returns the timing mask of the propagator */
257SCIP_EXPORT
259 SCIP_PROP* prop /**< propagator */
260 );
261
262/** sets new timing mask for propagator */
263SCIP_EXPORT
265 SCIP_PROP* prop, /**< propagator */
266 SCIP_PROPTIMING timingmask /**< new timing mask of propagator */
267 );
268
269/** does the propagator perform presolving? */
270SCIP_EXPORT
272 SCIP_PROP* prop /**< propagator */
273 );
274
275/** returns the timing mask of the presolving method of the propagator */
276SCIP_EXPORT
278 SCIP_PROP* prop /**< propagator */
279 );
280
281/** sets the timing mask of the presolving method of the propagator */
282SCIP_EXPORT
284 SCIP_PROP* prop, /**< propagator */
285 SCIP_PRESOLTIMING presoltiming /** timing mask to be set */
286 );
287
288/** @} */
289
290#ifdef __cplusplus
291}
292#endif
293
294#endif
common defines and data types used in all packages of SCIP
#define SCIP_Longint
Definition: def.h:141
#define SCIP_Bool
Definition: def.h:91
#define SCIP_Real
Definition: def.h:156
SCIP_Bool SCIPpropDoesPresolve(SCIP_PROP *prop)
Definition: prop.c:1307
SCIP_Real SCIPpropGetRespropTime(SCIP_PROP *prop)
Definition: prop.c:1086
SCIP_Bool SCIPpropIsDelayed(SCIP_PROP *prop)
Definition: prop.c:1146
SCIP_Real SCIPpropGetPresolTime(SCIP_PROP *prop)
Definition: prop.c:1096
void SCIPpropSetPresolTiming(SCIP_PROP *prop, SCIP_PRESOLTIMING presoltiming)
Definition: prop.c:1327
SCIP_Bool SCIPpropWasDelayed(SCIP_PROP *prop)
Definition: prop.c:1156
SCIP_Longint SCIPpropGetNCutoffs(SCIP_PROP *prop)
Definition: prop.c:1126
SCIP_Real SCIPpropGetSetupTime(SCIP_PROP *prop)
Definition: prop.c:1044
int SCIPpropGetNAddHoles(SCIP_PROP *prop)
Definition: prop.c:1216
int SCIPpropGetNChgBds(SCIP_PROP *prop)
Definition: prop.c:1206
void SCIPpropSetData(SCIP_PROP *prop, SCIP_PROPDATA *propdata)
Definition: prop.c:801
int SCIPpropGetNChgSides(SCIP_PROP *prop)
Definition: prop.c:1266
int SCIPpropGetNUpgdConss(SCIP_PROP *prop)
Definition: prop.c:1246
int SCIPpropGetNPresolCalls(SCIP_PROP *prop)
Definition: prop.c:1276
SCIP_Longint SCIPpropGetNRespropCalls(SCIP_PROP *prop)
Definition: prop.c:1116
SCIP_Real SCIPpropGetStrongBranchPropTime(SCIP_PROP *prop)
Definition: prop.c:1076
SCIP_Longint SCIPpropGetNDomredsFound(SCIP_PROP *prop)
Definition: prop.c:1136
int SCIPpropGetFreq(SCIP_PROP *prop)
Definition: prop.c:1019
SCIP_PROPDATA * SCIPpropGetData(SCIP_PROP *prop)
Definition: prop.c:791
int SCIPpropGetNChgCoefs(SCIP_PROP *prop)
Definition: prop.c:1256
int SCIPpropGetNAggrVars(SCIP_PROP *prop)
Definition: prop.c:1186
const char * SCIPpropGetDesc(SCIP_PROP *prop)
Definition: prop.c:961
int SCIPpropGetPresolPriority(SCIP_PROP *prop)
Definition: prop.c:981
int SCIPpropGetNFixedVars(SCIP_PROP *prop)
Definition: prop.c:1176
const char * SCIPpropGetName(SCIP_PROP *prop)
Definition: prop.c:951
void SCIPpropSetTimingmask(SCIP_PROP *prop, SCIP_PROPTIMING timingmask)
Definition: prop.c:1296
int SCIPpropGetNAddConss(SCIP_PROP *prop)
Definition: prop.c:1236
int SCIPpropGetPriority(SCIP_PROP *prop)
Definition: prop.c:971
void SCIPpropSetFreq(SCIP_PROP *prop, int freq)
Definition: prop.c:1054
SCIP_Real SCIPpropGetTime(SCIP_PROP *prop)
Definition: prop.c:1066
int SCIPpropGetNChgVarTypes(SCIP_PROP *prop)
Definition: prop.c:1196
SCIP_PRESOLTIMING SCIPpropGetPresolTiming(SCIP_PROP *prop)
Definition: prop.c:1317
SCIP_Bool SCIPpropIsInitialized(SCIP_PROP *prop)
Definition: prop.c:1166
void SCIPpropMarkExact(SCIP_PROP *prop)
Definition: prop.c:941
SCIP_DECL_SORTPTRCOMP(SCIPpropComp)
Definition: prop.c:52
SCIP_Longint SCIPpropGetNCalls(SCIP_PROP *prop)
Definition: prop.c:1106
SCIP_PROPTIMING SCIPpropGetTimingmask(SCIP_PROP *prop)
Definition: prop.c:1286
int SCIPpropGetNDelConss(SCIP_PROP *prop)
Definition: prop.c:1226
type definitions for miscellaneous datastructures
type definitions for propagators
struct SCIP_PropData SCIP_PROPDATA
Definition: type_prop.h:52
unsigned int SCIP_PROPTIMING
Definition: type_timing.h:75
unsigned int SCIP_PRESOLTIMING
Definition: type_timing.h:61