1#if !defined(__DSDP_INTERFACE_H)
2#define __DSDP_INTERFACE_H
29extern FILE *dsdpoutputfile;
36extern int DSDPCreate(
int,
DSDP *);
37extern int DSDPSetup(
DSDP);
38extern int DSDPSolve(
DSDP);
39extern int DSDPComputeX(
DSDP);
41extern int DSDPDestroy(
DSDP);
44extern int BConeAllocateBounds(
BCone,
int);
45extern int BConeSetLowerBound(
BCone,
int,
double);
46extern int BConeSetUpperBound(
BCone,
int,
double);
47extern int BConeSetPSlackVariable(
BCone,
int);
48extern int BConeSetPSurplusVariable(
BCone,
int);
49extern int BConeScaleBarrier(
BCone,
double);
50extern int BConeView(
BCone);
51extern int BConeSetXArray(
BCone,
double[],
int);
52extern int BConeCopyX(
BCone,
double[],
double[],
int);
54extern int DSDPBoundDualVariables(
DSDP,
double,
double);
55extern int DSDPSetYBounds(
DSDP,
double,
double);
56extern int DSDPGetYBounds(
DSDP,
double*,
double*);
59extern int LPConeSetData(
LPCone,
int,
const int[],
const int[],
const double[]);
60extern int LPConeSetData2(
LPCone,
int,
const int[],
const int[],
const double[]);
62extern int LPConeScaleBarrier(
LPCone,
double);
63extern int LPConeGetXArray(
LPCone,
double*[],
int*);
64extern int LPConeGetSArray(
LPCone,
double*[],
int*);
65extern int LPConeGetDimension(
LPCone,
int*);
66extern int LPConeView(
LPCone lpcone);
67extern int LPConeView2(
LPCone lpcone);
68extern int LPConeCopyS(
LPCone,
double[],
int);
71extern int SDPConeSetBlockSize(
SDPCone,
int,
int);
72extern int SDPConeGetBlockSize(
SDPCone,
int,
int*);
73extern int SDPConeSetStorageFormat(
SDPCone,
int,
char);
74extern int SDPConeGetStorageFormat(
SDPCone,
int,
char*);
76extern int SDPConeSetSparsity(
SDPCone,
int,
int);
78extern int SDPConeView2(
SDPCone);
79extern int SDPConeView3(
SDPCone);
81extern int SDPConeSetASparseVecMat(
SDPCone,
int,
int,
int,
double,
int,
const int[],
const double[],
int);
82extern int SDPConeSetADenseVecMat(
SDPCone,
int,
int,
int,
double,
double[],
int);
84extern int SDPConeSetARankOneMat(
SDPCone,
int,
int,
int,
double,
int,
const int[],
const double[],
int);
85extern int SDPConeSetConstantMat(
SDPCone,
int,
int,
int,
double);
86extern int SDPConeSetZeroMat(
SDPCone,
int,
int,
int);
87extern int SDPConeSetIdentity(
SDPCone,
int,
int,
int,
double);
88extern int SDPConeViewDataMatrix(
SDPCone,
int,
int);
89extern int SDPConeMatrixView(
SDPCone,
int);
91extern int SDPConeAddASparseVecMat(
SDPCone,
int,
int,
int,
double,
int,
const int[],
const double[],
int);
92extern int SDPConeAddADenseVecMat(
SDPCone,
int,
int,
int,
double,
double[],
int);
93extern int SDPConeAddConstantMat(
SDPCone,
int,
int,
int,
double);
94extern int SDPConeAddIdentity(
SDPCone,
int,
int,
int,
double);
95extern int SDPConeAddARankOneMat(
SDPCone,
int,
int,
int,
double,
int,
const int[],
const double[],
int);
98extern int SDPConeAddSparseVecMat(
SDPCone,
int,
int,
int,
int,
const int[],
const double[],
int);
99extern int SDPConeAddDenseVecMat(
SDPCone,
int,
int,
int,
double[],
int);
100extern int SDPConeSetSparseVecMat(
SDPCone,
int,
int,
int,
int,
const int[],
const double[],
int);
101extern int SDPConeSetDenseVecMat(
SDPCone,
int,
int,
int,
double[],
int);
104extern int SDPConeSetXArray(
SDPCone,
int,
int,
double[],
int);
105extern int SDPConeGetXArray(
SDPCone,
int,
double*[],
int*);
106extern int SDPConeRestoreXArray(
SDPCone,
int,
double*[],
int*);
107extern int SDPConeCheckData(
SDPCone);
108extern int SDPConeRemoveDataMatrix(
SDPCone,
int,
int);
109extern int SDPConeGetNumberOfBlocks(
SDPCone,
int*);
110extern int SDPConeComputeS(
SDPCone,
int,
double,
double[],
int,
double,
int,
double[],
int);
111extern int SDPConeComputeX(
SDPCone,
int,
int,
double[],
int);
112extern int SDPConeAddADotX(
SDPCone,
int,
double,
double[],
int,
double[],
int);
113extern int SDPConeViewX(
SDPCone,
int,
int,
double[],
int);
114extern int SDPConeSetLanczosIterations(
SDPCone,
int);
115extern int SDPConeScaleBarrier(
SDPCone,
int,
double);
116extern int SDPConeXVMultiply(
SDPCone,
int,
double[],
double[],
int);
117extern int SDPConeComputeXV(
SDPCone,
int,
int*);
118extern int SDPConeAddXVAV(
SDPCone,
int,
double[],
int,
double[],
int);
119extern int SDPConeUseLAPACKForDualMatrix(
SDPCone,
int);
121extern int DSDPSetDualObjective(
DSDP,
int,
double);
122extern int DSDPAddObjectiveConstant(
DSDP,
double);
123extern int DSDPGetDObjective(
DSDP,
double*);
124extern int DSDPGetDDObjective(
DSDP,
double*);
125extern int DSDPGetPObjective(
DSDP,
double*);
126extern int DSDPGetPPObjective(
DSDP,
double*);
131#define DSDPGetDualObjective DSDPGetDDObj
132#define DSDPGetPrimalObjective DSDPGetPPObj
133extern int DSDPGetDualityGap(
DSDP,
double*);
134extern int DSDPGetScale(
DSDP,
double*);
135extern int DSDPSetScale(
DSDP,
double);
136extern int DSDPGetPenaltyParameter(
DSDP,
double*);
137extern int DSDPGetPenalty(
DSDP,
double*);
138extern int DSDPCopyB(
DSDP,
double[],
int);
140extern int DSDPSetR0(
DSDP,
double);
141extern int DSDPGetR(
DSDP,
double *);
142extern int DSDPSetRTolerance(
DSDP,
double);
143extern int DSDPGetRTolerance(
DSDP,
double*);
145extern int DSDPSetY0(
DSDP,
int,
double);
146extern int DSDPGetY(
DSDP,
double[],
int);
147extern int DSDPGetYMakeX(
DSDP,
double[],
int);
148extern int DSDPGetDYMakeX(
DSDP,
double[],
int);
149extern int DSDPGetMuMakeX(
DSDP,
double*);
151#define DSDPSetInitialBarrierParameter DSDPSetBarrierParameter
152#define DSDPGetInitialBarrierParameter DSDPGetBarrierParameter
153extern int DSDPGetBarrierParameter(
DSDP,
double *);
154extern int DSDPSetBarrierParameter(
DSDP,
double);
155extern int DSDPReuseMatrix(
DSDP,
int);
156extern int DSDPGetReuseMatrix(
DSDP,
int*);
157extern int DSDPGetDimension(
DSDP,
double*);
159extern int DSDPSetMaxIts(
DSDP,
int);
160extern int DSDPGetMaxIts(
DSDP,
int*);
161extern int DSDPSetStepTolerance(
DSDP,
double);
162extern int DSDPGetStepTolerance(
DSDP,
double*);
163extern int DSDPSetGapTolerance(
DSDP,
double);
164extern int DSDPGetGapTolerance(
DSDP,
double*);
165extern int DSDPSetPNormTolerance(
DSDP,
double);
166extern int DSDPGetPNormTolerance(
DSDP,
double*);
167extern int DSDPSetDualBound(
DSDP,
double);
168extern int DSDPGetDualBound(
DSDP,
double*);
169extern int DSDPSetPTolerance(
DSDP,
double);
170extern int DSDPGetPTolerance(
DSDP,
double*);
171extern int DSDPGetPInfeasibility(
DSDP,
double*);
172extern int DSDPSetMaxTrustRadius(
DSDP,
double);
173extern int DSDPGetMaxTrustRadius(
DSDP,
double*);
176extern int DSDPSetPotentialParameter(
DSDP,
double);
177extern int DSDPGetPotentialParameter(
DSDP,
double*);
178extern int DSDPUseDynamicRho(
DSDP,
int);
179extern int DSDPGetPotential(
DSDP,
double*);
180extern int DSDPUseLAPACKForSchur(
DSDP,
int);
181extern int DSDPGetNumberOfVariables(
DSDP,
int*);
182extern int DSDPGetFinalErrors(
DSDP,
double[6]);
183extern int DSDPGetGapHistory(
DSDP,
double[],
int);
184extern int DSDPGetRHistory(
DSDP,
double[],
int);
185extern int DSDPGetIts(
DSDP,
int *);
186extern int DSDPGetPnorm(
DSDP,
double *);
187extern int DSDPGetStepLengths(
DSDP,
double*,
double*);
188extern int DSDPSetMonitor(
DSDP,
int (*)(
DSDP,
void*),
void*);
189extern int DSDPSetStandardMonitor(
DSDP,
int);
190extern int DSDPSetFileMonitor(
DSDP,
int);
191extern int DSDPSetPenaltyParameter(
DSDP,
double);
192extern int DSDPUsePenalty(
DSDP,
int);
193extern int DSDPPrintLogInfo(
int);
194extern int DSDPComputeMinimumXEigenvalue(
DSDP,
double*);
195extern int DSDPGetTraceX(
DSDP dsdp,
double*);
196extern int DSDPSetZBar(
DSDP,
double);
197extern int DSDPSetDualLowerBound(
DSDP,
double);
198extern int DSDPGetDataNorms(
DSDP,
double[3]);
199extern int DSDPGetYMaxNorm(
DSDP,
double*);
200extern int SDPConeUseFullSymmetricFormat(
SDPCone,
int);
201extern int SDPConeUsePackedFormat(
SDPCone,
int);
202extern int DSDPSetFixedVariable(
DSDP,
int,
double);
203extern int DSDPSetFixedVariables(
DSDP,
double[],
double[],
double[],
int);
204extern int DSDPGetFixedYX(
DSDP,
int,
double*);
205extern int DSDPView(
DSDP);
206extern int DSDPPrintOptions();
209extern int DSDPSetOptions(
DSDP,
char*[],
int);
210extern int DSDPReadOptions(
DSDP,
char[]);
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 DSDPSetDestroyRoutine(DSDP, int(*)(void *), void *)
Set a routine that will be called during DSDPDestroy().
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.
Internal structures for the DSDP solver.
Internal structure for semidefinite cone.