1 #ifndef __TAO_DSDPSDP_H 2 #define __TAO_DSDPSDP_H 19 typedef enum { SDPCONEEXIST=1, SDPCONESETUP1=2 } SDPConeStatus;
104 #define SDPCONEKEY 5438 105 #define SDPConeValid(a) {if (!(a)||((a)->keyid!=SDPCONEKEY)){ DSDPSETERR(101,"DSDPERROR: Invalid SDPCone object\n");}} 107 #define DSDPCHKBLOCKERR(a,b); { if (b){ DSDPSETERR1(b,"Block Number: %d,\n",a);} } 108 #define DSDPCHKVARERR(a,b); { if (b){ DSDPSETERR1(b,"Variable Number: %d,\n",a);} } 143 extern int DSDPBlockEventInitialize(
void);
144 extern int DSDPBlockEventZero(
void);
153 extern int DSDPUseDefaultDualMatrix(
SDPCone);
177 extern int DSDPSetDualMatrix(
SDPCone sdpcone,
int (*createdualmatrix)(
DSDPBlockData*,
DSDPVec,
DSDPVMat,
DSDPVec,
DSDPVec,
DSDPDualMat*,
DSDPDualMat*,
DSDPDSMat*,
void*),
void*);
185 extern int DSDPDualMatEventInitialize(
void);
186 extern int DSDPVMatEventInitialize(
void);
187 extern int DSDPDualMatEventZero(
void);
188 extern int DSDPVMatEventZero(
void);
int SDPConeComputeXX(SDPCone, int, DSDPVec, double, DSDPDualMat, DSDPVMat)
Compute X.
Internal structure for transpose of data.
int DSDPBlockDataRowSparsity(DSDPBlockData *, int, int[], int[], int)
Determine sparsity pattern of data.
The interface between the SDPCone and the matrix S.
int SDPConeCheckN(SDPCone, int, int)
Check validity of parameter.
int DSDPDataTransposeTakeDown(DSDPDataTranspose *)
Free transpose structure for data.
struct DSDPVec_C DSDPVec
This object hold m+2 variables: a scaling of C, the y variables, and r.
int DSDPMakeVMatWithArray(char, double[], int, int, DSDPVMat *)
Allocate V matrix using the given array.
Schur complement matrix whose solution is the Newton direction.
Lanczos procedure determines the maximum step length.
int DSDPBlockTakeDownData(DSDPBlockData *)
Free structures in block of data.
int SDPConeMultiply(SDPCone, int, double, DSDPVec, DSDPVec, DSDPVec)
Compute the gradient to the barrier term.
int SDPConeComputeXDot(SDPCone, int, DSDPVec, DSDPVMat, DSDPVec, double *, double *, double *)
Compute inner product of X with the Data, S, and norm of X.
int DSDPBlockSetDataMatrix(DSDPBlockData *, int, struct DSDPDataMat_Ops *, void *)
Set data matrix into SDP block.
int DSDPBlockASum(DSDPBlockData *, double, DSDPVec, DSDPVMat)
Sum the data matrices.
int SDPConeSetRIdentity(SDPCone, int, int, double)
Add identify matrix to dual matrix.
int SDPConeDestroy(SDPCone)
Free data structure of the cone.
int DSDPBlockAddDataMatrix(DSDPBlockData *, int, struct DSDPDataMat_Ops *, void *)
Add data matrix into SDP block.
int DSDPBlockADot(DSDPBlockData *, double, DSDPVec, DSDPVMat, DSDPVec)
Compute inner product of XX with data matrices.
The interface between the SDPCone and the Delta S matrix.
int DSDPBlockFactorData(DSDPBlockData *, DSDPVMat, SDPConeVec)
Factor the data matrices.
Internal structures for the DSDP solver.
Apply Lanczos prodedure to find distance to boundary.
The API to DSDP for those applications using DSDP as a subroutine library.
int DSDPDataMatCheck(DSDPDataMat, SDPConeVec, DSDPIndex, DSDPVMat)
Check correctness of operations on the data.
Each block of the SDPCone has two vectors of appropriate size.
Internal structure for data in one block of semidefintie.
Solver, solution types, termination codes,.
int SDPConeCheckStorageFormat(SDPCone, int, char)
Check validity of parameters.
Vector whose length corresponds to dimension of a block in a cone.
int DSDPBlockGetMatrix(DSDPBlockData *, int, int *, double *, DSDPDataMat *)
Get a data matrix from a block of data.
Symmetric data matrix for one block in the semidefinite cone.
int SDPConeCheckJ(SDPCone, int)
Check validity of parameter.
Methods of a Schur Matrix.
The interface between the SDPCone and the dense matrix array.
int DSDPBlockTakeDown(SDPblk *)
Free data structures in one block of the cone.
Vector operations used by the solver.
The interface between the SDPCone and the data matrices.
int SDPConeComputeSS(SDPCone, int, DSDPVec, DSDPVMat)
Sum the data matrices.
Table of function pointers that operate on the data matrix.
int DSDPBlockDataAllocate(DSDPBlockData *, int)
Allocate some structures.
Internal structure for block of semidefinite cone.
int DSDPBlockRemoveDataMatrix(DSDPBlockData *, int)
Remove a data matrix.
int DSDPSetDataMatZero(DSDPDataMat *)
Make a data matrix a zero matrix.
int DSDPBlockCountNonzeroMatrices(DSDPBlockData *, int *)
Count how many data matrices are in a block of data.
int DSDPBlockView2(DSDPBlockData *)
Print the data.
Represents an S matrix for one block in the semidefinite cone.
int DSDPBlockView(DSDPBlockData *)
Print the structure of the block.
int SDPConeCheckM(SDPCone, int)
Check validity of parameter.
int DSDPDataTransposeInitialize(DSDPDataTranspose *)
Initialize transpose structure for data.
Internal structure for semidefinite cone.
int SDPConeComputeRHS(SDPCone, int, double, DSDPVec, DSDPVec, DSDPVec)
Compute the gradient to the barrier term.
int DSDPBlockvAv(DSDPBlockData *, double, DSDPVec, SDPConeVec, DSDPVec)
Set VAV[i] to aa * Alpha[i] * V' A[i] V.
int SDPConeComputeHessian(SDPCone, double, DSDPSchurMat, DSDPVec, DSDPVec)
Compute the Hessian to the barrier term.
int DSDPMakeVMat(char, int, DSDPVMat *)
Allocate V matrix.
int SDPConeComputeX3(SDPCone, int, double, DSDPVec, DSDPVec, DSDPVMat)
Compute the matrix X with the given information.
int DSDPBlockDataMarkNonzeroMatrices(DSDPBlockData *, int *)
Mark which variable in block have a data matrix.
Symmetric Delta S matrix for one block in the semidefinite cone.
int DSDPDataTransposeSetup(DSDPDataTranspose *, SDPblk *, int, int)
Set up transpose structure for data.
Dense symmetric matrix for one block in the semidefinite cone.
int DSDPAddSDP(DSDP, SDPCone)
Pass a semidefinite cone to the solver.
int DSDPBlockInitialize(SDPblk *)
Initialize data structures in one block of the cone.
int SDPConeSetup(SDPCone, DSDPVec)
Allocate data structure of the cone.
int SDPConeSetup2(SDPCone, DSDPVec, DSDPSchurMat)
Allocate data structure of the cone.
int DSDPBlockDataInitialize(DSDPBlockData *)
Set pointers to null.
int DSDPBlockDataDestroy(DSDPBlockData *)
Free the data matrices.