/** creates the dualagg presolver and includes it in SCIP */ SCIP_RETCODE SCIPincludePresolDualagg( SCIP* scip /**< SCIP data structure */ ) { SCIP_PRESOL* presol; /* include presolver */ SCIP_CALL( SCIPincludePresolBasic(scip, &presol, PRESOL_NAME, PRESOL_DESC, PRESOL_PRIORITY, PRESOL_MAXROUNDS, PRESOL_TIMING, presolExecDualagg, NULL) ); return SCIP_OKAY; }
/** creates the inttobinary presolver and includes it in SCIP */ SCIP_RETCODE SCIPincludePresolInttobinary( SCIP* scip /**< SCIP data structure */ ) { SCIP_PRESOLDATA* presoldata; SCIP_PRESOL* presolptr; /* create inttobinary presolver data */ presoldata = NULL; /* include presolver */ SCIP_CALL( SCIPincludePresolBasic(scip, &presolptr, PRESOL_NAME, PRESOL_DESC, PRESOL_PRIORITY, PRESOL_MAXROUNDS, PRESOL_DELAY, presolExecInttobinary, presoldata) ); assert(presolptr != NULL); SCIP_CALL( SCIPsetPresolCopy(scip, presolptr, presolCopyInttobinary) ); return SCIP_OKAY; }
/** creates the boundshift presolver and includes it in SCIP */ SCIP_RETCODE SCIPincludePresolBoundshift( SCIP* scip /**< SCIP data structure */ ) { SCIP_PRESOLDATA* presoldata; SCIP_PRESOL* presolptr; /* create boundshift presolver data */ SCIP_CALL( SCIPallocMemory(scip, &presoldata) ); initPresoldata(presoldata); /* include presolver */ SCIP_CALL( SCIPincludePresolBasic(scip, &presolptr, PRESOL_NAME, PRESOL_DESC, PRESOL_PRIORITY, PRESOL_MAXROUNDS, PRESOL_DELAY, presolExecBoundshift, presoldata) ); assert(presolptr != NULL); SCIP_CALL( SCIPsetPresolCopy(scip, presolptr, presolCopyBoundshift) ); SCIP_CALL( SCIPsetPresolFree(scip, presolptr, presolFreeBoundshift) ); /* add probing presolver parameters */ SCIP_CALL( SCIPaddLongintParam(scip, "presolving/boundshift/maxshift", "absolute value of maximum shift", &presoldata->maxshift, TRUE, DEFAULT_MAXSHIFT, 0LL, SCIP_LONGINT_MAX, NULL, NULL) ); SCIP_CALL( SCIPaddBoolParam(scip, "presolving/boundshift/flipping", "is flipping allowed (multiplying with -1)?", &presoldata->flipping, TRUE, DEFAULT_FLIPPING, NULL, NULL) ); SCIP_CALL( SCIPaddBoolParam(scip, "presolving/boundshift/integer", "shift only integer ranges?", &presoldata->integer, TRUE, DEFAULT_INTEGER, NULL, NULL) ); return SCIP_OKAY; }