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