SCIP-SDP  3.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
sdpsolchecker.h File Reference

checks a given SDP solution for feasibility More...

Go to the source code of this file.

Functions

EXTERN SCIP_RETCODE SCIPsdpSolcheckerCheck (BMS_BUFMEM *bufmem, int nvars, 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 nlpcons, int noldlpcons, SCIP_Real *lplhs, SCIP_Real *lprhs, int *rownactivevars, int lpnnonz, int *lprow, int *lpcol, SCIP_Real *lpval, SCIP_Real *solvector, SCIP_Real feastol, SCIP_Real epsilon, SCIP_Bool *infeasible)
 

Detailed Description

checks a given SDP solution for feasibility

Author
Tristan Gally

Given a solution, an SDP instance and a feasibility tolerance, checks whether the smallest eigenvalue is >= -feastol for a given feasibility tolerance.

Definition in file sdpsolchecker.h.

Function Documentation

EXTERN SCIP_RETCODE SCIPsdpSolcheckerCheck ( BMS_BUFMEM *  bufmem,
int  nvars,
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  nlpcons,
int  noldlpcons,
SCIP_Real *  lplhs,
SCIP_Real *  lprhs,
int *  rownactivevars,
int  lpnnonz,
int *  lprow,
int *  lpcol,
SCIP_Real *  lpval,
SCIP_Real *  solvector,
SCIP_Real  feastol,
SCIP_Real  epsilon,
SCIP_Bool *  infeasible 
)

Given a solution, an SDP instance and a feasibility tolerance, checks whether the smallest eigenvalue is >= -feastol for a given feasibility tolerance.

Parameters
bufmembuffer memory
nvarsnumber of variables
lblower bounds of variables
ubupper bounds of variables
nsdpblocksnumber of SDP-blocks
sdpblocksizessizes of the SDP-blocks (may be NULL if nsdpblocks = sdpconstnnonz = sdpnnonz = 0)
sdpnblockvarsnumber of variables that exist in each block
sdpconstnnonznumber of nonzero elements in the constant matrices of the SDP-blocks AFTER FIXINGS
sdpconstnblocknonznumber of nonzeros for each variable in the constant part, also the i-th entry gives the number of entries of sdpconst row/col/val [i] AFTER FIXINGS
sdpconstrowpointers to row-indices for each block AFTER FIXINGS
sdpconstcolpointers to column-indices for each block AFTER FIXINGS
sdpconstvalpointers to the values of the nonzeros for each block AFTER FIXINGS
sdpnnonznumber of nonzero elements in the SDP-constraint-matrix
sdpnblockvarnonzentry [i][j] gives the number of nonzeros for block i and variable j, this is exactly the number of entries of sdp row/col/val [i][j]
sdpvarsdpvar[i][j] gives the sdp-index of the j-th variable (according to the sorting for row/col/val) in the i-th block
sdprowpointer to the row-indices for each block and variable
sdpcolpointer to the column-indices for each block and variable
sdpvalvalues of SDP-constraintmmatrix entries (may be NULL if sdpnnonz = 0)
indchangeschanges needed to be done to the indices, if indchanges[block][ind]=-1, then the index can be removed, otherwise it gives the number of indices removed before this
nremovedindsthe number of rows/cols to be fixed for each block
blockindchangesblock indizes will be modified by these, see indchanges
nlpconsnumber of active (at least two nonzeros) LP-constraints
noldlpconsnumber of LP-constraints including those with less than two active nonzeros
lplhsleft-hand sides of active LP-rows after fixings (may be NULL if nlpcons = 0)
lprhsright-hand sides of active LP-rows after fixings (may be NULL if nlpcons = 0)
rownactivevarsnumber of active variables for each LP-constraint
lpnnonznumber of nonzero elements in the LP-constraint-matrix
lprowrow-index for each entry in lpval-array, might get sorted (may be NULL if lpnnonz = 0)
lpcolcolumn-index for each entry in lpval-array, might get sorted (may be NULL if lpnnonz = 0)
lpvalvalues of LP-constraint-matrix entries, might get sorted (may be NULL if lpnnonz = 0)
solvectorvalues of all variables (including fixed ones) in the solution that should be checked
feastolfeasibility tolerance to check feasibility for
epsilontolerance used to check for fixed variables
infeasiblepointer to store whether solution is feasible

Definition at line 57 of file sdpsolchecker.c.

References BMS_CALL, and SCIPlapackComputeIthEigenvalue().

Referenced by checkFeastolAndResolve(), and SCIPsdpiSolverLoadAndSolveWithPenalty().