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
22struct DSDPCone_C{
23 void* conedata;
24 struct DSDPCone_Ops* dsdpops;
25};
26
27typedef struct DSDPCone_C DSDPCone;
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
35extern int DSDPConeGetDimension(DSDPCone,double*);
36extern int DSDPConeSparsityInSchurMat(DSDPCone, int,int[],int);
38extern int DSDPConeInvertS(DSDPCone);
43extern int DSDPConeComputeLogSDeterminant(DSDPCone,double*,double*);
44extern int DSDPConeComputeX(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec,double*);
45extern int DSDPConeSetXMaker(DSDPCone,double,DSDPVec,DSDPVec);
46extern int DSDPConeView(DSDPCone);
47extern int DSDPConeMonitor(DSDPCone,int);
48extern int DSDPConeDestroy(DSDPCone*);
50extern int DSDPGetConeName(DSDPCone,char*,int);
51
52extern int DSDPConeSetData(DSDPCone*,struct DSDPCone_Ops*,void*);
53extern int DSDPConeInitialize(DSDPCone*);
54
55#ifdef __cplusplus
56}
57#endif
58
59#endif
60
61
62
63
64
Solver, solution types, termination codes,.
DSDPDualFactorMatrix
DSDP requires two instances of the data structures S.
DSDPTruth
Boolean variables.
int DSDPConeSetData(DSDPCone *, struct DSDPCone_Ops *, void *)
Initialize the pointers to 0.
Definition dsdpcone.c:477
int DSDPConeDestroy(DSDPCone *)
Free the internal memory of the cone.
Definition dsdpcone.c:64
int DSDPConeSetUp2(DSDPCone, DSDPVec, DSDPSchurMat)
Factor the data and allocate data structures.
Definition dsdpcone.c:43
int DSDPConeView(DSDPCone)
View contents of the cone.
Definition dsdpcone.c:358
int DSDPConeInvertS(DSDPCone)
Invert the dual matrix S.
Definition dsdpcone.c:265
int DSDPConeComputeHessian(DSDPCone, double, DSDPSchurMat, DSDPVec, DSDPVec)
Compute Hessian and gradient of barrier function.
Definition dsdpcone.c:92
int DSDPConeComputeS(DSDPCone, DSDPVec, DSDPDualFactorMatrix, DSDPTruth *)
Given y, compute S and determine whether its in the cone.
Definition dsdpcone.c:242
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 DSDPConeComputeRHS(DSDPCone, double, DSDPVec, DSDPVec, DSDPVec)
Compute gradient of barrier function.
Definition dsdpcone.c:147
int DSDPGetConeName(DSDPCone, char *, int)
Get name of the cone.
Definition dsdpcone.c:427
int DSDPConeSetUp(DSDPCone, DSDPVec)
Factor the data and allocate data structures.
Definition dsdpcone.c:22
int DSDPConeSparsityInSchurMat(DSDPCone, int, int[], int)
Identify sparsity pattern in a row of the Hessian term.
Definition dsdpcone.c:338
int DSDPConeComputeX(DSDPCone, double, DSDPVec, DSDPVec, DSDPVec, double *)
Given y,dy, and mu, construct X and add its inner product with the data and S.
Definition dsdpcone.c:216
int DSDPConeComputeLogSDeterminant(DSDPCone, double *, double *)
Evaluate logrithmic barrier function.
Definition dsdpcone.c:403
int DSDPConeGetDimension(DSDPCone, double *)
Provide the dimension of the cone.
Definition dsdpcone.c:312
int DSDPConeInitialize(DSDPCone *)
Initialize the pointers to 0.
Definition dsdpcone.c:495
int DSDPConeMultiplyAdd(DSDPCone, double, DSDPVec, DSDPVec, DSDPVec)
Multiply Hessian by a vector and add the result.
Definition dsdpcone.c:119
int DSDPConeMonitor(DSDPCone, int)
Do anything at in the cone at each iteration.
Definition dsdpcone.c:380
int DSDPConeComputeMaxStepLength(DSDPCone, DSDPVec, DSDPDualFactorMatrix, double *)
Determine distance to the edge of the cone.
Definition dsdpcone.c:288
int DSDPConeANorm2(DSDPCone, DSDPVec)
Add square of 2-norm of data correponding to each variable y.
Definition dsdpcone.c:168
int DSDPConeSetXMaker(DSDPCone, double, DSDPVec, DSDPVec)
Pass information needed to construct X.
Definition dsdpcone.c:191
Methods of a Schur Matrix.
Vector operations used by the solver.
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.