50#define PROP_NAME "sync"
51#define PROP_DESC "propagator for synchronization of bound changes"
52#define PROP_PRIORITY (INT_MAX/4)
54#define PROP_DELAY FALSE
55#define PROP_TIMING SCIP_PROPTIMING_ALWAYS
57#define PROP_PRESOL_PRIORITY (INT_MAX/4)
58#define PROP_PRESOLTIMING SCIP_PRESOLTIMING_ALWAYS
59#define PROP_PRESOL_MAXROUNDS -1
106 for(
i = 0;
i < data->nbnds; ++
i )
190 data->bndtype =
NULL;
191 data->ntightened = 0;
192 data->ntightenedint = 0;
242 *nchgbds += ntightened;
243 data->ntightened += ntightened;
244 data->ntightenedint += ntightened;
277 data->ntightened += ntightened;
278 data->ntightenedint += ntightenedint;
304 propExecSync, propdata) );
334 if( data->nbnds + 1 > data->bndsize )
341 data->bndsize = newsize;
344 data->bndvar[data->nbnds] =
var;
345 data->bndval[data->nbnds] = val;
346 data->bndtype[data->nbnds] = bndtype;
348 if( data->nbnds == 0 )
369 return data->ntightened;
384 return data->ntightenedint;
void SCIPenableConcurrentBoundStorage(SCIP *scip)
void SCIPdisableConcurrentBoundStorage(SCIP *scip)
helper functions for concurrent scip solvers
void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...)
SCIP_Longint SCIPpropSyncGetNTightenedBnds(SCIP_PROP *prop)
SCIP_RETCODE SCIPpropSyncAddBndchg(SCIP *scip, SCIP_PROP *prop, SCIP_VAR *var, SCIP_Real val, SCIP_BOUNDTYPE bndtype)
SCIP_Longint SCIPpropSyncGetNTightenedIntBnds(SCIP_PROP *prop)
SCIP_RETCODE SCIPincludePropSync(SCIP *scip)
int SCIPcalcMemGrowSize(SCIP *scip, int num)
#define SCIPreallocBlockMemoryArray(scip, ptr, oldnum, newnum)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)
#define SCIPallocBlockMemory(scip, ptr)
SCIP_Bool SCIPinProbing(SCIP *scip)
void SCIPpropSetData(SCIP_PROP *prop, SCIP_PROPDATA *propdata)
SCIP_PROPDATA * SCIPpropGetData(SCIP_PROP *prop)
SCIP_RETCODE SCIPsetPropPresol(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPPRESOL((*proppresol)), int presolpriority, int presolmaxrounds, SCIP_PRESOLTIMING presoltiming)
const char * SCIPpropGetName(SCIP_PROP *prop)
SCIP_RETCODE SCIPsetPropFree(SCIP *scip, SCIP_PROP *prop,)
void SCIPpropSetFreq(SCIP_PROP *prop, int freq)
SCIP_RETCODE SCIPsetPropInit(SCIP *scip, SCIP_PROP *prop,)
SCIP_RETCODE SCIPsetPropExit(SCIP *scip, SCIP_PROP *prop,)
SCIP_RETCODE SCIPincludePropBasic(SCIP *scip, SCIP_PROP **propptr, const char *name, const char *desc, int priority, int freq, SCIP_Bool delay, SCIP_PROPTIMING timingmask, SCIP_DECL_PROPEXEC((*propexec)), SCIP_PROPDATA *propdata)
SCIP_RETCODE SCIPvarGetProbvarBound(SCIP_VAR **var, SCIP_Real *bound, SCIP_BOUNDTYPE *boundtype)
SCIP_RETCODE SCIPtightenVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
SCIP_Bool SCIPvarIsNonimpliedIntegral(SCIP_VAR *var)
SCIP_RETCODE SCIPtightenVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
assert(minobj< SCIPgetCutoffbound(scip))
memory allocation routines
#define PROP_PRESOL_MAXROUNDS
#define PROP_PRESOLTIMING
#define PROP_PRESOL_PRIORITY
static SCIP_RETCODE applyBoundChanges(SCIP *scip, SCIP_PROPDATA *data, SCIP_RESULT *result, int *ntightened, int *ntightenedint)
propagator for applying global bound changes that were communicated by other concurrent solvers
public methods for message output
public methods for propagators
public methods for problem variables
public methods for memory management
public methods for message handling
public methods for the probing mode
public methods for propagator plugins
public methods for SCIP variables
the type definitions for the SCIP parallel interface
int SCIPtpiGetThreadNum(void)
enum SCIP_BoundType SCIP_BOUNDTYPE
#define SCIP_DECL_PROPINIT(x)
#define SCIP_DECL_PROPFREE(x)
#define SCIP_DECL_PROPEXIT(x)
struct SCIP_Prop SCIP_PROP
#define SCIP_DECL_PROPPRESOL(x)
struct SCIP_PropData SCIP_PROPDATA
#define SCIP_DECL_PROPEXEC(x)
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_VARSTATUS_MULTAGGR