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