/** creates the debugging propagator and includes it in SCIP */ SCIP_RETCODE SCIPdebugIncludeProp( SCIP* scip /**< SCIP data structure */ ) { assert(scip != NULL); /* include propagator */ SCIP_CALL( SCIPincludeProp(scip, "debug", "debugging propagator", 99999999, -1, FALSE, SCIP_PROPTIMING_ALWAYS, 99999999, 0, FALSE, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, propExecDebug, NULL, NULL) ); return SCIP_OKAY; }
/** creates the xyz propagator and includes it in SCIP */ SCIP_RETCODE SCIPincludePropXyz( SCIP* scip /**< SCIP data structure */ ) { SCIP_PROPDATA* propdata; SCIP_PROP* prop; /* create xyz propagator data */ propdata = NULL; /* TODO: (optional) create propagator specific data here */ prop = NULL; /* include propagator */ #if 0 /* use SCIPincludeProp() if you want to set all callbacks explicitly and realize (by getting compiler errors) when * new callbacks are added in future SCIP versions */ SCIP_CALL( SCIPincludeProp(scip, PROP_NAME, PROP_DESC, PROP_PRIORITY, PROP_FREQ, PROP_DELAY, PROP_TIMING, PROP_PRESOL_PRIORITY, PROP_PRESOL_MAXROUNDS, PROP_PRESOL_DELAY, propCopyXyz, propFreeXyz, propInitXyz, propExitXyz, propInitpreXyz, propExitpreXyz, propInitsolXyz, propExitsolXyz, propPresolXyz, propExecXyz, propRespropXyz, propdata) ); #else /* use SCIPincludePropBasic() plus setter functions if you want to set callbacks one-by-one and your code should * compile independent of new callbacks being added in future SCIP versions */ SCIP_CALL( SCIPincludePropBasic(scip, &prop, PROP_NAME, PROP_DESC, PROP_PRIORITY, PROP_FREQ, PROP_DELAY, PROP_TIMING, propExecXyz, propdata) ); assert(prop != NULL); /* set optional callbacks via setter functions */ SCIP_CALL( SCIPsetPropCopy(scip, prop, propCopyXyz) ); SCIP_CALL( SCIPsetPropFree(scip, prop, propFreeXyz) ); SCIP_CALL( SCIPsetPropInit(scip, prop, propInitXyz) ); SCIP_CALL( SCIPsetPropExit(scip, prop, propExitXyz) ); SCIP_CALL( SCIPsetPropInitsol(scip, prop, propInitsolXyz) ); SCIP_CALL( SCIPsetPropExitsol(scip, prop, propExitsolXyz) ); SCIP_CALL( SCIPsetPropInitpre(scip, prop, propInitpreXyz) ); SCIP_CALL( SCIPsetPropExitpre(scip, prop, propExitpreXyz) ); SCIP_CALL( SCIPsetPropPresol(scip, prop, propPresolXyz, PROP_PRESOL_PRIORITY, PROP_PRESOL_MAXROUNDS, PROP_PRESOL_DELAY) ); SCIP_CALL( SCIPsetPropResprop(scip, prop, propRespropXyz) ); #endif /* add xyz propagator parameters */ /* TODO: (optional) add propagator specific parameters with SCIPaddTypeParam() here */ return SCIP_OKAY; }