Go to the documentation of this file. 1 #if !defined(__DSDP_INTERFACE_H)
2 #define __DSDP_INTERFACE_H
29 extern FILE *dsdpoutputfile;
49 extern int BConeScaleBarrier(
BCone,
double);
50 extern int BConeView(
BCone);
51 extern int BConeSetXArray(
BCone,
double[],
int);
54 extern int DSDPBoundDualVariables(
DSDP,
double,
double);
62 extern int LPConeScaleBarrier(
LPCone,
double);
64 extern int LPConeGetSArray(
LPCone,
double*[],
int*);
98 extern int SDPConeAddSparseVecMat(
SDPCone,
int,
int,
int,
int,
const int[],
const double[],
int);
99 extern int SDPConeAddDenseVecMat(
SDPCone,
int,
int,
int,
double[],
int);
100 extern int SDPConeSetSparseVecMat(
SDPCone,
int,
int,
int,
int,
const int[],
const double[],
int);
101 extern int SDPConeSetDenseVecMat(
SDPCone,
int,
int,
int,
double[],
int);
114 extern int SDPConeSetLanczosIterations(
SDPCone,
int);
115 extern int SDPConeScaleBarrier(
SDPCone,
int,
double);
119 extern int SDPConeUseLAPACKForDualMatrix(
SDPCone,
int);
131 #define DSDPGetDualObjective DSDPGetDDObj
132 #define DSDPGetPrimalObjective DSDPGetPPObj
137 extern int DSDPGetPenalty(
DSDP,
double*);
151 #define DSDPSetInitialBarrierParameter DSDPSetBarrierParameter
152 #define DSDPGetInitialBarrierParameter DSDPGetBarrierParameter
180 extern int DSDPUseLAPACKForSchur(
DSDP,
int);
188 extern int DSDPSetMonitor(
DSDP,
int (*)(
DSDP,
void*),
void*);
190 extern int DSDPSetFileMonitor(
DSDP,
int);
193 extern int DSDPPrintLogInfo(
int);
194 extern int DSDPComputeMinimumXEigenvalue(
DSDP,
double*);
197 extern int DSDPSetDualLowerBound(
DSDP,
double);
204 extern int DSDPGetFixedYX(
DSDP,
int,
double*);
211 extern int DSDPSetDestroyRoutine(
DSDP,
int (*)(
void*),
void*);
int DSDPCreateLPCone(DSDP, LPCone *)
Create a new object for linear programs and scalar inequalities.
int SDPConeSetARankOneMat(SDPCone, int, int, int, double, int, const int[], const double[], int)
Set data matrix where v is a sparse vector.
int DSDPSetMaxIts(DSDP, int)
Terminate the solver after this number of iterations.
int DSDPSetDualObjective(DSDP, int, double)
Set the objective vector b in (D).
int SDPConeViewX(SDPCone, int, int, double[], int)
Print a dense array X to the screen.
int SDPConeComputeX(SDPCone, int, int, double[], int)
Compute the matrix X.
int DSDPGetPotentialParameter(DSDP, double *)
Copy the potential parameter.
DSDPTerminationReason
There are many reasons to terminate the solver.
int LPConeSetData2(LPCone, int, const int[], const int[], const double[])
Set data A and into the LP cone.
int SDPConeSetSparsity(SDPCone, int, int)
Set the number of nonzero matrices in a block of the semidefinite cone.
int DSDPGetNumberOfVariables(DSDP, int *)
Copy the number of variables y.
int DSDPGetRHistory(DSDP, double[], int)
Copy a history of the infeasibility in (D) into an array.
int DSDPUseDynamicRho(DSDP, int)
Use a dynamic strategy to choose parameter rho.
int SDPConeAddADenseVecMat(SDPCone, int, int, int, double, double[], int)
Add a matrix in a dense format.
int DSDPGetPnorm(DSDP, double *)
Copy the proximity of the solution to the central path.
int DSDPGetR(DSDP, double *)
Copy the infeasibility in (D), or the variable r in (DD).
int DSDPSetBarrierParameter(DSDP, double)
Set the current barrier parameter.
int SDPConeUseFullSymmetricFormat(SDPCone, int)
Use full symmetric format for the dense array.
int SDPConeAddXVAV(SDPCone, int, double[], int, double[], int)
Compute for i = 0 through m.
int DSDPStopReason(DSDP, DSDPTerminationReason *)
Copy the reason why the solver terminated.
int DSDPGetPenaltyParameter(DSDP, double *)
Copy the penalty parameter Gamma.
int BConeAllocateBounds(BCone, int)
Set a surplus variable in constraint in (P).
int DSDPGetSolutionType(DSDP, DSDPSolutionType *)
Solutions can be bounded, infeasible, or unbounded.
int SDPConeAddConstantMat(SDPCone, int, int, int, double)
Add a matrix whose elements are all the same.
int DSDPGetDataNorms(DSDP, double[3])
Copy the norms of the data C, A, and b into an array.
int SDPConeAddADotX(SDPCone, int, double, double[], int, double[], int)
Compute the inner products of a dense matrix X with the data matrices.
int DSDPSetStandardMonitor(DSDP, int)
Print at every kth iteration.
int SDPConeComputeS(SDPCone, int, double, double[], int, double, int, double[], int)
Compute the dual matrix S.
int DSDPGetDYMakeX(DSDP, double[], int)
Copies the variables dy used to construct X into an array.
int DSDPGetRTolerance(DSDP, double *)
Copy the maximum infeasibility allowed (D).
int SDPConeRestoreXArray(SDPCone, int, double *[], int *)
Restore the dense array and set these pointers to null.
int SDPConeSetStorageFormat(SDPCone, int, char)
Set the dense storage format of a block in the semidefinite cone.
int DSDPSetZBar(DSDP, double)
Set an upper bound on the objective value at the solution.
int DSDPGetDObjective(DSDP, double *)
Copy the objective value (D).
int DSDPComputeAndFactorS(DSDP, DSDPTruth *)
Compute and factor the dual matrix variables.
int DSDPSetup(DSDP)
Set up data structures in the solver and the cones associated with it.
DSDPTruth
Boolean variables.
int DSDPSetScale(DSDP, double)
Set the internal scaling factor.
int DSDPGetStepTolerance(DSDP, double *)
Get the current tolerance.
int DSDPPrintSolution(FILE *, DSDP, SDPCone, LPCone)
Print solution in SDPA format.
int DSDPGetPInfeasibility(DSDP, double *)
Copy the infeasibility in (P).
int SDPConeSetZeroMat(SDPCone, int, int, int)
Set a matrix whose elements are all equal zero.
int DSDPSetOptions(DSDP, char *[], int)
Read command line arguments to set options in DSDP.
Solver, solution types, termination codes,.
int BConeSetPSlackVariable(BCone, int)
Set a slack variable to a constraint in (P).
Internal structures for the DSDP solver.
struct LPCone_C * LPCone
The LPCone object points to blocks of data that specify linear scalar inequality constraints.
int LPConeGetDimension(LPCone, int *)
Get the dimension is the number of variables x, which equals the number of slack variables s.
int DSDPPrintData(DSDP, SDPCone, LPCone)
Print data in SDPA format to a file named "output.sdpa".
int BConeSetLowerBound(BCone, int, double)
Set a lower bound on a variable y.
int DSDPGetIts(DSDP, int *)
Copy the current iteration number.
int SDPConeGetXArray(SDPCone, int, double *[], int *)
After applying the solver, set a pointer to the array in the object with the solution X.
int DSDPGetFinalErrors(DSDP, double[6])
Copy six different error measurements into an array.
int DSDPSetPNormTolerance(DSDP, double)
Terminate the solver when the relative duality gap is suffiently small and the PNorm is less than thi...
int DSDPGetStepLengths(DSDP, double *, double *)
Copy the step sizes in the current iteration.
int DSDPGetMaxTrustRadius(DSDP, double *)
Copy the current radius of the trust region.
int SDPConeCheckData(SDPCone)
Check the matrix operations on a data matrix;.
int LPConeView(LPCone lpcone)
Print the data in the LP cone to the screen.
int DSDPSetMaxTrustRadius(DSDP, double)
Set a maximum trust radius on the step direction.
int SDPConeView(SDPCone)
Print the SDPCone to the screen;.
int DSDPSetPotentialParameter(DSDP, double)
Set the potential parameter.
int DSDPGetGapTolerance(DSDP, double *)
Get the termination tolerance.
int SDPConeSetConstantMat(SDPCone, int, int, int, double)
Set a matrix whose elements are all the same.
Error handling, printing, and profiling.
int DSDPSetDualBound(DSDP, double)
Terminate the solver if the objective value in (DD) is greater than this tolerance.
int SDPConeViewDataMatrix(SDPCone, int, int)
Print a data matrix to the screen.
int SDPConeAddARankOneMat(SDPCone, int, int, int, double, int, const int[], const double[], int)
Add data matrix where v is a sparse vector.
int DSDPGetMaxIts(DSDP, int *)
Copy the maximum number of iterations from the solver.
int DSDPReuseMatrix(DSDP, int)
Reuse the Hessian of the barrier function multiple times at each DSDP iteration.
int DSDPSetStepTolerance(DSDP, double)
Terminate the solver if the step length in (DD) is below this tolerance.
int SDPConeSetXArray(SDPCone, int, int, double[], int)
Provide an array for the SDPCone object can use to store dense matrices.
int LPConeGetXArray(LPCone, double *[], int *)
Get the array used to store the x variables.
int DSDPView(DSDP)
Print many of the parameters currently set in DSDP.
int DSDPCreateBCone(DSDP, BCone *)
Create a new cone that represents bounds on the y variables.
int DSDPSetRTolerance(DSDP, double)
Classify (D) as feasible only if the variable r is less than this tolerance.
int SDPConeSetIdentity(SDPCone, int, int, int, double)
Set a matrix to be a multiple of the identity matrix.
int DSDPGetDimension(DSDP, double *)
Copy the dimension of the cones, or the number of constraints in (D).
Internal structure for semidefinite cone.
int SDPConeView2(SDPCone)
Print the SDP cone to the screen in a second way.
int DSDPGetDualityGap(DSDP, double *)
Copy the difference between the objective values.
int SDPConeSetBlockSize(SDPCone, int, int)
Set the dimension of one block in the semidefinite cone.
int SDPConeSetXMat(SDPCone, int, int)
Create X matrix.
int LPConeView2(LPCone lpcone)
Print the data in the LP cone to the screen.
int SDPConeRemoveDataMatrix(SDPCone, int, int)
Remove the data matrix from the cone.
int SDPConeView3(SDPCone)
Print the SDP cone to the screen in a third way.
int DSDPSetPTolerance(DSDP, double)
Classify (P) as feasible only if the infeasibility is less than this tolerance.
struct SDPCone_C * SDPCone
The SDPCone object points to blocks of data that specify semidefinite matrix inequalities.
int DSDPGetMuMakeX(DSDP, double *)
Copies the value of mu used to construct X.
int DSDPGetReuseMatrix(DSDP, int *)
Copy this parameter.
int DSDPGetPNormTolerance(DSDP, double *)
Get the termination tolerance.
int SDPConeUsePackedFormat(SDPCone, int)
Use packed symmetric format for the dense array.
int DSDPGetY(DSDP, double[], int)
Copies the variables y into an array.
int LPConeSetData(LPCone, int, const int[], const int[], const double[])
Set data into the LP cone.
int DSDPCopyB(DSDP, double[], int)
Copies the variables b from solver into an array.
int DSDPUsePenalty(DSDP, int)
Use penalty parameter to enforce feasibility.
int SDPConeGetNumberOfBlocks(SDPCone, int *)
Get the number of blocks in the semidefinite cone.
int DSDPSetR0(DSDP, double)
Set an initial value for the variable r in (DD)
int SDPConeMatrixView(SDPCone, int)
Print the dense array to the screen.
int BConeSetPSurplusVariable(BCone, int)
Set a surplus variable in constraint in (P).
int DSDPGetYMakeX(DSDP, double[], int)
Copies the variables y used to construct X into an array.
int DSDPComputeX(DSDP)
Compute the X variables.
int DSDPGetPotential(DSDP, double *)
Copy the potential of the current solution.
int DSDPGetDDObjective(DSDP, double *)
Copy the objective value (DD).
int DSDPGetTraceX(DSDP dsdp, double *)
Copy the trace of the variables X in (P).
int SDPConeAddASparseVecMat(SDPCone, int, int, int, double, int, const int[], const double[], int)
Add data matrix in a sparse format.
int SDPConeGetStorageFormat(SDPCone, int, char *)
Get the storage format for the block.
int SDPConeCheckStorageFormat(SDPCone, int, char)
Check validity of parameters.
int DSDPGetPObjective(DSDP, double *)
Copy the objective value (P).
int DSDPSetPenaltyParameter(DSDP, double)
Set the penalty parameter Gamma.
int DSDPPrintOptions()
Print runtime options;.
int SDPConeAddIdentity(SDPCone, int, int, int, double)
Add a matrix that is a multiple of the identity matrix.
int DSDPGetYBounds(DSDP, double *, double *)
Copy the bounds on the variables y.
int LPConeCopyS(LPCone, double[], int)
Copy the variables s into the spedified array.
struct BCone_C * BCone
The BCone object points to lower and upper bounds on the variable y in (D).
int DSDPCreate(int, DSDP *)
Create a DSDP solver. FIRST DSDP routine!
int LPConeGetData(LPCone, int, double[], int)
Get one column (or row) of the LP data.
int DSDPGetPTolerance(DSDP, double *)
Copy the feasibility tolerance.
DSDPSolutionType
Formulations (P) and (D) can be feasible and bounded, feasible and unbounded, or infeasible.
int DSDPSetFixedVariable(DSDP, int, double)
Fix variable y to exact value.
int SDPConeGetBlockSize(SDPCone, int, int *)
Get the dimension of one block in the semidefinite cone.
int DSDPGetYMaxNorm(DSDP, double *)
Copy the the infinity norm of the variables y.
int DSDPSetGapTolerance(DSDP, double)
Terminate the solver when the relative duality gap is less than this tolerance.
int BConeCopyX(BCone, double[], double[], int)
Copy the variables into arrays.
int DSDPSetFixedVariables(DSDP, double[], double[], double[], int)
Fix variable y to exact values.
int DSDPDestroy(DSDP)
Free the internal data structures of the solver and the cones associated with it.
int SDPConeSetASparseVecMat(SDPCone, int, int, int, double, int, const int[], const double[], int)
Set data matrix in a sparse format.
int DSDPSolve(DSDP)
Apply DSDP to the problem.
int SDPConeSetADenseVecMat(SDPCone, int, int, int, double, double[], int)
Set a matrix in a dense format.
int SDPConeXVMultiply(SDPCone, int, double[], double[], int)
Multiply an array by a factor V such that .
int DSDPSetYBounds(DSDP, double, double)
Bound the variables y.
int DSDPReadOptions(DSDP, char[])
Read DSDP parameters from a file.
int DSDPGetPPObjective(DSDP, double *)
Copy the objective value (PP).
int SDPConeComputeXV(SDPCone, int, int *)
Compute a factor V such that .
int DSDPAddObjectiveConstant(DSDP, double)
Add a constant to the objective.
int DSDPGetDualBound(DSDP, double *)
Get the termination parameter.
int DSDPGetScale(DSDP, double *)
Copy the internal scaling factor from the solver.
int DSDPSetY0(DSDP, int, double)
Set the initial values of variables y in (D).
int DSDPGetGapHistory(DSDP, double[], int)
Copy a history of the duality gap into an array.
int BConeSetUpperBound(BCone, int, double)
Set an upper bound on a variable y.
int DSDPGetBarrierParameter(DSDP, double *)
Copy the current barrier parameter.