DSDP
dsdpcone.h
Go to the documentation of this file.
1 #ifndef __DSDPCONEOPERATIONS_H
2 #define __DSDPCONEOPERATIONS_H
3 
9 #include "dsdpbasictypes.h"
10 #include "dsdpvec.h"
11 #include "dsdpschurmat.h"
12 
13 
22 struct DSDPCone_C{
23  void* conedata;
24  struct DSDPCone_Ops* dsdpops;
25 };
26 
27 typedef struct DSDPCone_C DSDPCone;
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 extern int DSDPConeSetUp(DSDPCone,DSDPVec);
35 extern int DSDPConeGetDimension(DSDPCone,double*);
36 extern int DSDPConeSparsityInSchurMat(DSDPCone, int,int[],int);
38 extern int DSDPConeInvertS(DSDPCone);
43 extern int DSDPConeComputeLogSDeterminant(DSDPCone,double*,double*);
44 extern int DSDPConeComputeX(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec,double*);
45 extern int DSDPConeSetXMaker(DSDPCone,double,DSDPVec,DSDPVec);
46 extern int DSDPConeView(DSDPCone);
47 extern int DSDPConeMonitor(DSDPCone,int);
48 extern int DSDPConeDestroy(DSDPCone*);
49 extern int DSDPConeANorm2(DSDPCone,DSDPVec);
50 extern int DSDPGetConeName(DSDPCone,char*,int);
51 
52 extern int DSDPConeSetData(DSDPCone*,struct DSDPCone_Ops*,void*);
53 extern int DSDPConeInitialize(DSDPCone*);
54 
55 #ifdef __cplusplus
56 }
57 #endif
58 
59 #endif
60 
61 
62 
63 
64 
DSDPTruth
Boolean variables.
int DSDPConeComputeS(DSDPCone K, DSDPVec Y, DSDPDualFactorMatrix flag, DSDPTruth *ispsdefinite)
Given y, compute S and determine whether its in the cone.
Definition: dsdpcone.c:242
int DSDPConeInvertS(DSDPCone K)
Invert the dual matrix S.
Definition: dsdpcone.c:265
struct DSDPVec_C DSDPVec
This object hold m+2 variables: a scaling of C, the y variables, and r.
Definition: dsdpvec.h:25
Schur complement matrix whose solution is the Newton direction.
Definition: dsdpschurmat.h:35
int DSDPConeANorm2(DSDPCone K, DSDPVec anorm2)
Add square of 2-norm of data correponding to each variable y.
Definition: dsdpcone.c:168
int DSDPConeSetXMaker(DSDPCone K, double mu, DSDPVec y, DSDPVec dy)
Pass information needed to construct X.
Definition: dsdpcone.c:191
int DSDPConeMonitor(DSDPCone K, int tag)
Do anything at in the cone at each iteration.
Definition: dsdpcone.c:380
int DSDPConeSetData(DSDPCone *K, struct DSDPCone_Ops *ops, void *data)
Initialize the pointers to 0.
Definition: dsdpcone.c:477
int DSDPConeInitialize(DSDPCone *K)
Initialize the pointers to 0.
Definition: dsdpcone.c:495
int DSDPConeView(DSDPCone K)
View contents of the cone.
Definition: dsdpcone.c:358
int DSDPConeDestroy(DSDPCone *K)
Free the internal memory of the cone.
Definition: dsdpcone.c:64
int DSDPConeComputeRHS(DSDPCone K, double mu, DSDPVec vrow, DSDPVec rhs1, DSDPVec rhs2)
Compute gradient of barrier function.
Definition: dsdpcone.c:147
Solver, solution types, termination codes,.
int DSDPConeComputeMaxStepLength(DSDPCone K, DSDPVec DY, DSDPDualFactorMatrix flag, double *maxsteplength)
Determine distance to the edge of the cone.
Definition: dsdpcone.c:288
int DSDPGetConeName(DSDPCone K, char *cname, int maxlength)
Get name of the cone.
Definition: dsdpcone.c:427
int DSDPConeSetUp2(DSDPCone K, DSDPVec yy0, DSDPSchurMat M)
Factor the data and allocate data structures.
Definition: dsdpcone.c:43
Methods of a Schur Matrix.
Vector operations used by the solver.
struct DSDPCone_C DSDPCone
This object holds the data of a SDP, LP, or other cone. Its structure is opaque to the DSDP Solver...
Definition: dsdpcone.h:27
int DSDPConeMultiplyAdd(DSDPCone K, double mu, DSDPVec vrow, DSDPVec v, DSDPVec vv)
Multiply Hessian by a vector and add the result.
Definition: dsdpcone.c:119
int DSDPConeSetUp(DSDPCone K, DSDPVec y)
Factor the data and allocate data structures.
Definition: dsdpcone.c:22
int DSDPConeGetDimension(DSDPCone K, double *n)
Provide the dimension of the cone.
Definition: dsdpcone.c:312
int DSDPConeSparsityInSchurMat(DSDPCone K, int row, int rnnz[], int m)
Identify sparsity pattern in a row of the Hessian term.
Definition: dsdpcone.c:338
DSDPDualFactorMatrix
DSDP requires two instances of the data structures S.
int DSDPConeComputeX(DSDPCone K, double mu, DSDPVec y, DSDPVec dy, DSDPVec AX, double *tracexs)
Given y,dy, and mu, construct X and add its inner product with the data and S.
Definition: dsdpcone.c:216
int DSDPConeComputeLogSDeterminant(DSDPCone K, double *logdetobj, double *logdet)
Evaluate logrithmic barrier function.
Definition: dsdpcone.c:403
int DSDPConeComputeHessian(DSDPCone K, double mu, DSDPSchurMat M, DSDPVec vrhs1, DSDPVec vrhs2)
Compute Hessian and gradient of barrier function.
Definition: dsdpcone.c:92