Go to the documentation of this file. 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 SDPConeComputeX3(SDPCone, int, double, DSDPVec, DSDPVec, DSDPVMat)
Compute the matrix X with the given information.
int SDPConeSetup2(SDPCone, DSDPVec, DSDPSchurMat)
Allocate data structure of the cone.
int DSDPBlockASum(DSDPBlockData *, double, DSDPVec, DSDPVMat)
Sum the data matrices.
int SDPConeDestroy(SDPCone)
Free data structure of the cone.
int DSDPMakeVMatWithArray(char, double[], int, int, DSDPVMat *)
Allocate V matrix using the given array.
int DSDPAddSDP(DSDP, SDPCone)
Pass a semidefinite cone to the solver.
int SDPConeMultiply(SDPCone, int, double, DSDPVec, DSDPVec, DSDPVec)
Compute the gradient to the barrier term.
int DSDPBlockFactorData(DSDPBlockData *, DSDPVMat, SDPConeVec)
Factor the data matrices.
int SDPConeSetup(SDPCone, DSDPVec)
Allocate data structure of the cone.
int DSDPBlockDataInitialize(DSDPBlockData *)
Set pointers to null.
struct DSDPVec_C DSDPVec
This object hold m+2 variables: a scaling of C, the y variables, and r.
The interface between the SDPCone and the Delta S matrix.
Internal structure for data in one block of semidefintie.
The interface between the SDPCone and the matrix S.
int SDPConeCheckN(SDPCone, int, int)
Check validity of parameter.
int SDPConeSetRIdentity(SDPCone, int, int, double)
Add identify matrix to dual matrix.
int DSDPDataTransposeTakeDown(DSDPDataTranspose *)
Free transpose structure for data.
Vector operations used by the solver.
Internal structure for transpose of data.
Lanczos procedure determines the maximum step length.
int DSDPBlockTakeDownData(DSDPBlockData *)
Free structures in block of data.
Solver, solution types, termination codes,.
Symmetric data matrix for one block in the semidefinite cone.
Internal structures for the DSDP solver.
Each block of the SDPCone has two vectors of appropriate size.
int DSDPBlockADot(DSDPBlockData *, double, DSDPVec, DSDPVMat, DSDPVec)
Compute inner product of XX with data matrices.
int SDPConeCheckStorageFormat(SDPCone, int, char)
Check validity of parameters.
int DSDPBlockTakeDown(SDPblk *)
Free data structures in one block of the cone.
Symmetric Delta S matrix for one block in the semidefinite cone.
int DSDPDataMatCheck(DSDPDataMat, SDPConeVec, DSDPIndex, DSDPVMat)
Check correctness of operations on the data.
Represents an S matrix for one block in the semidefinite cone.
Apply Lanczos prodedure to find distance to boundary.
The API to DSDP for those applications using DSDP as a subroutine library.
The interface between the SDPCone and the data matrices.
Internal structure for semidefinite cone.
int SDPConeComputeSS(SDPCone, int, DSDPVec, DSDPVMat)
Sum the data matrices.
int DSDPBlockView(DSDPBlockData *)
Print the structure of the block.
int SDPConeCheckJ(SDPCone, int)
Check validity of parameter.
int DSDPBlockCountNonzeroMatrices(DSDPBlockData *, int *)
Count how many data matrices are in a block of data.
int DSDPBlockGetMatrix(DSDPBlockData *, int, int *, double *, DSDPDataMat *)
Get a data matrix from a block of data.
Table of function pointers that operate on the data matrix.
int DSDPBlockDataAllocate(DSDPBlockData *, int)
Allocate some structures.
The interface between the SDPCone and the dense matrix array.
int SDPConeComputeHessian(SDPCone, double, DSDPSchurMat, DSDPVec, DSDPVec)
Compute the Hessian to the barrier term.
int DSDPBlockRemoveDataMatrix(DSDPBlockData *, int)
Remove a data matrix.
int DSDPSetDataMatZero(DSDPDataMat *)
Make a data matrix a zero matrix.
Internal structure for block of semidefinite cone.
int DSDPDataTransposeInitialize(DSDPDataTranspose *)
Initialize transpose structure for data.
int DSDPBlockView2(DSDPBlockData *)
Print the data.
Schur complement matrix whose solution is the Newton direction.
Vector whose length corresponds to dimension of a block in a cone.
Methods of a Schur Matrix.
int SDPConeComputeRHS(SDPCone, int, double, DSDPVec, DSDPVec, DSDPVec)
Compute the gradient to the barrier term.
int SDPConeComputeXX(SDPCone, int, DSDPVec, double, DSDPDualMat, DSDPVMat)
Compute X.
int SDPConeCheckM(SDPCone, int)
Check validity of parameter.
int DSDPBlockInitialize(SDPblk *)
Initialize data structures in one block of the cone.
int DSDPMakeVMat(char, int, DSDPVMat *)
Allocate V matrix.
int DSDPBlockDataMarkNonzeroMatrices(DSDPBlockData *, int *)
Mark which variable in block have a data matrix.
int DSDPDataTransposeSetup(DSDPDataTranspose *, SDPblk *, int, int)
Set up transpose structure for data.
int DSDPBlockvAv(DSDPBlockData *, double, DSDPVec, SDPConeVec, DSDPVec)
Set VAV[i] to aa * Alpha[i] * V' A[i] V.
int DSDPBlockDataDestroy(DSDPBlockData *)
Free the data matrices.
Dense symmetric matrix for one block in the semidefinite cone.
int DSDPBlockDataRowSparsity(DSDPBlockData *, int, int[], int[], int)
Determine sparsity pattern of data.
int SDPConeComputeXDot(SDPCone, int, DSDPVec, DSDPVMat, DSDPVec, double *, double *, double *)
Compute inner product of X with the Data, S, and norm of X.