45 #include "blockmemshell/memory.h"             
   47 #include "scip/pub_misc.h"                    
   51 struct SCIP_SDPiSolver
 
   72    SCIPerrorMessage(
"No SDP solver available (SDP=none).\n");
 
   73    SCIPerrorMessage(
"Ensure <relaxing/SDP/freq = -1>.\n");
 
   83    SCIPerrorMessage(
"No SDP solver available (SDP=none).\n");
 
   84    SCIPerrorMessage(
"Ensure <relaxing/SDP/freq = -1>.\n");
 
  108    return "no SDP-Solver linked currently";
 
  121    assert( sdpisolver != NULL );
 
  138    SCIP_MESSAGEHDLR*     messagehdlr,        
 
  142    SCIPdebugMessage(
"Calling SCIPsdpiCreate \n");
 
  143    SCIPdebugMessage(
"Note that currently no SDP-Solver is linked to the binary. Ensure <relaxing/SDP/freq = -1>. \n");
 
  153    SCIPdebugMessage(
"Freeing SDPISolver\n");
 
  163    SCIPdebugMessage(
"SDPs aren't counted as there is no SDP-solver.\n");
 
  173    SCIPdebugMessage(
"SDPs aren't counted as there is no SDP-solver.\n");
 
  210    int*                  sdpconstnblocknonz, 
 
  214    SCIP_Real**           sdpconstval,        
 
  216    int**                 sdpnblockvarnonz,   
 
  226    int*                  blockindchanges,    
 
  266    SCIP_Real             penaltyparam,       
 
  277    int*                  sdpconstnblocknonz, 
 
  281    SCIP_Real**           sdpconstval,        
 
  283    int**                 sdpnblockvarnonz,   
 
  293    int*                  blockindchanges,    
 
  332    return SCIP_PLUGINNOTFOUND;
 
  347    return SCIP_PLUGINNOTFOUND;
 
  353    SCIP_Bool*            primalfeasible,     
 
  354    SCIP_Bool*            dualfeasible        
 
  359    return SCIP_PLUGINNOTFOUND;
 
  370    return SCIP_PLUGINNOTFOUND;
 
  381    return SCIP_PLUGINNOTFOUND;
 
  392    return SCIP_PLUGINNOTFOUND;
 
  403    return SCIP_PLUGINNOTFOUND;
 
  414    return SCIP_PLUGINNOTFOUND;
 
  425    return SCIP_PLUGINNOTFOUND;
 
  435    return SCIP_PLUGINNOTFOUND;
 
  445    return SCIP_PLUGINNOTFOUND;
 
  455    return SCIP_PLUGINNOTFOUND;
 
  465    return SCIP_PLUGINNOTFOUND;
 
  484    return SCIP_PLUGINNOTFOUND;
 
  494    return SCIP_PLUGINNOTFOUND;
 
  505    return SCIP_PLUGINNOTFOUND;
 
  516    return SCIP_PLUGINNOTFOUND;
 
  527    return SCIP_PLUGINNOTFOUND;
 
  544    return SCIP_PLUGINNOTFOUND;
 
  564    return SCIP_PLUGINNOTFOUND;
 
  575    return SCIP_PLUGINNOTFOUND;
 
  631    assert( sdpisolver != NULL );
 
  632    assert( dval != NULL );
 
  637       *dval = sdpisolver->epsilon;
 
  640       *dval = sdpisolver->feastol;
 
  643       *dval = sdpisolver->objlimit;
 
  646       return SCIP_PARAMETERUNKNOWN;
 
  659    assert( sdpisolver != NULL );
 
  664       sdpisolver->epsilon = dval;
 
  665       SCIPdebugMessage(
"Setting sdpisolver epsilon to %f.\n", dval);
 
  668       sdpisolver->feastol = dval;
 
  669       SCIPdebugMessage(
"Setting sdpisolver feastol to %f.\n", dval);
 
  672       SCIPdebugMessage(
"Setting sdpisolver objlimit to %f.\n", dval);
 
  673       sdpisolver->objlimit = dval;
 
  676       return SCIP_PARAMETERUNKNOWN;
 
  689    assert( sdpisolver != NULL );
 
  694    case SCIP_SDPPAR_THREADS:
 
  695       *ival = sdpisolver->threads;
 
  696       SCIPdebugMessage(
"Getting sdpisolver number of threads: %d.\n", *ival);
 
  700       *ival = sdpisolver->sdpinfo;
 
  701       SCIPdebugMessage(
"Getting sdpisolver information output (%d).\n", *ival);
 
  704       return SCIP_PARAMETERUNKNOWN;
 
  717    assert( sdpisolver != NULL );
 
  722    case SCIP_SDPPAR_THREADS:
 
  723       sdpisolver->threads = ival;
 
  724       SCIPdebugMessage(
"Setting sdpisolver number of threads to %d.\n", ival);
 
  728       sdpisolver->sdpinfo = ival;
 
  729       SCIPdebugMessage(
"Setting sdpisolver information output (%d).\n", ival);
 
  732       return SCIP_PARAMETERUNKNOWN;
 
  758    return SCIP_PLUGINNOTFOUND;
 
  769    return SCIP_PLUGINNOTFOUND;
 
SCIP_RETCODE SCIPsdpiSolverIgnoreInstability(SCIP_SDPISOLVER *sdpisolver, SCIP_Bool *success)
SCIP_Bool SCIPsdpiSolverIsOptimal(SCIP_SDPISOLVER *sdpisolver)
SCIP_RETCODE SCIPsdpiSolverGetPrimalBoundVars(SCIP_SDPISOLVER *sdpisolver, SCIP_Real *lbvars, SCIP_Real *ubvars, int *arraylength)
SCIP_Bool SCIPsdpiSolverIsAcceptable(SCIP_SDPISOLVER *sdpisolver)
SCIP_Bool SCIPsdpiSolverIsDualFeasible(SCIP_SDPISOLVER *sdpisolver)
const char * SCIPsdpiSolverGetSolverDesc(void)
SCIP_Bool SCIPsdpiSolverIsPrimalInfeasible(SCIP_SDPISOLVER *sdpisolver)
SCIP_RETCODE SCIPsdpiSolverReadSDP(SCIP_SDPISOLVER *sdpisolver, const char *fname)
SCIP_Bool SCIPsdpiSolverFeasibilityKnown(SCIP_SDPISOLVER *sdpisolver)
SCIP_Real SCIPsdpiSolverInfinity(SCIP_SDPISOLVER *sdpisolver)
SCIP_Bool SCIPsdpiSolverIsPrimalUnbounded(SCIP_SDPISOLVER *sdpisolver)
int SCIPsdpiSolverGetInternalStatus(SCIP_SDPISOLVER *sdpisolver)
interface methods for specific SDP solvers 
SCIP_Bool SCIPsdpiSolverIsDualInfeasible(SCIP_SDPISOLVER *sdpisolver)
SCIP_Bool SCIPsdpiSolverIsObjlimExc(SCIP_SDPISOLVER *sdpisolver)
SCIP_Bool SCIPsdpiSolverIsTimelimExc(SCIP_SDPISOLVER *sdpisolver)
SCIP_RETCODE SCIPsdpiSolverResetCounter(SCIP_SDPISOLVER *sdpisolver)
const char * SCIPsdpiSolverGetSolverName(void)
SCIP_RETCODE SCIPsdpiSolverFree(SCIP_SDPISOLVER **sdpisolver)
SCIP_RETCODE SCIPsdpiSolverGetSolFeasibility(SCIP_SDPISOLVER *sdpisolver, SCIP_Bool *primalfeasible, SCIP_Bool *dualfeasible)
SCIP_RETCODE SCIPsdpiSolverGetIterations(SCIP_SDPISOLVER *sdpisolver, int *iterations)
SCIP_Bool SCIPsdpiSolverIsGEMaxPenParam(SCIP_SDPISOLVER *sdpisolver, SCIP_Real val)
SCIP_RETCODE SCIPsdpiSolverGetRealpar(SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, SCIP_Real *dval)
SCIP_RETCODE SCIPsdpiSolverGetObjval(SCIP_SDPISOLVER *sdpisolver, SCIP_Real *objval)
void * SCIPsdpiSolverGetSolverPointer(SCIP_SDPISOLVER *sdpisolver)
SCIP_Bool SCIPsdpiSolverIsPrimalFeasible(SCIP_SDPISOLVER *sdpisolver)
SCIP_RETCODE SCIPsdpiSolverLoadAndSolve(SCIP_SDPISOLVER *sdpisolver, int nvars, SCIP_Real *obj, SCIP_Real *lb, SCIP_Real *ub, int nsdpblocks, int *sdpblocksizes, int *sdpnblockvars, int sdpconstnnonz, int *sdpconstnblocknonz, int **sdpconstrow, int **sdpconstcol, SCIP_Real **sdpconstval, int sdpnnonz, int **sdpnblockvarnonz, int **sdpvar, int ***sdprow, int ***sdpcol, SCIP_Real ***sdpval, int **indchanges, int *nremovedinds, int *blockindchanges, int nremovedblocks, int nlpcons, int noldlpcons, SCIP_Real *lplhs, SCIP_Real *lprhs, int *rownactivevars, int lpnnonz, int *lprow, int *lpcol, SCIP_Real *lpval, SCIP_Real *start)
SCIP_RETCODE SCIPsdpiSolverSetIntpar(SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, int ival)
SCIP_RETCODE SCIPsdpiSolverSetRealpar(SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, SCIP_Real dval)
SCIP_RETCODE SCIPsdpiSolverLoadAndSolveWithPenalty(SCIP_SDPISOLVER *sdpisolver, SCIP_Real penaltyparam, SCIP_Bool withobj, SCIP_Bool rbound, int nvars, SCIP_Real *obj, SCIP_Real *lb, SCIP_Real *ub, int nsdpblocks, int *sdpblocksizes, int *sdpnblockvars, int sdpconstnnonz, int *sdpconstnblocknonz, int **sdpconstrow, int **sdpconstcol, SCIP_Real **sdpconstval, int sdpnnonz, int **sdpnblockvarnonz, int **sdpvar, int ***sdprow, int ***sdpcol, SCIP_Real ***sdpval, int **indchanges, int *nremovedinds, int *blockindchanges, int nremovedblocks, int nlpcons, int noldlpcons, SCIP_Real *lplhs, SCIP_Real *lprhs, int *rownactivevars, int lpnnonz, int *lprow, int *lpcol, SCIP_Real *lpval, SCIP_Real *start, SCIP_Bool *feasorig)
SCIP_RETCODE SCIPsdpiSolverCreate(SCIP_SDPISOLVER **sdpisolver, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPsdpiSolverWriteSDP(SCIP_SDPISOLVER *sdpisolver, const char *fname)
SCIP_Bool SCIPsdpiSolverIsInfinity(SCIP_SDPISOLVER *sdpisolver, SCIP_Real val)
SCIP_RETCODE SCIPsdpiSolverGetIntpar(SCIP_SDPISOLVER *sdpisolver, SCIP_SDPPARAM type, int *ival)
SCIP_Bool SCIPsdpiSolverWasSolved(SCIP_SDPISOLVER *sdpisolver)
SCIP_RETCODE SCIPsdpiSolverIncreaseCounter(SCIP_SDPISOLVER *sdpisolver)
SCIP_Bool SCIPsdpiSolverIsDualUnbounded(SCIP_SDPISOLVER *sdpisolver)
struct SCIP_SDPiSolver SCIP_SDPISOLVER
SCIP_Bool SCIPsdpiSolverIsConverged(SCIP_SDPISOLVER *sdpisolver)
static void errorMessageAbort(void)
SCIP_RETCODE SCIPsdpiSolverGetSol(SCIP_SDPISOLVER *sdpisolver, SCIP_Real *objval, SCIP_Real *dualsol, int *dualsollength)
SCIP_Real SCIPsdpiSolverMaxPenParam(SCIP_SDPISOLVER *sdpisolver)
enum SCIP_SDPParam SCIP_SDPPARAM
static void errorMessage(void)
SCIP_Bool SCIPsdpiSolverIsIterlimExc(SCIP_SDPISOLVER *sdpisolver)