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