dsdpcone.h
Go to the documentation of this file.
#ifndef __DSDPCONEOPERATIONS_H
#define __DSDPCONEOPERATIONS_H
#include "dsdpbasictypes.h"
#include "dsdpvec.h"
#include "dsdpschurmat.h"
struct DSDPCone_C{
void* conedata;
struct DSDPCone_Ops* dsdpops;
};
typedef struct DSDPCone_C DSDPCone;
#ifdef __cplusplus
extern "C" {
#endif
extern int DSDPConeSetUp(DSDPCone,DSDPVec);
extern int DSDPConeSetUp2(DSDPCone, DSDPVec, DSDPSchurMat);
extern int DSDPConeGetDimension(DSDPCone,double*);
extern int DSDPConeSparsityInSchurMat(DSDPCone, int,int[],int);
extern int DSDPConeComputeS(DSDPCone,DSDPVec,DSDPDualFactorMatrix,DSDPTruth *);
extern int DSDPConeInvertS(DSDPCone);
extern int DSDPConeComputeHessian(DSDPCone,double,DSDPSchurMat,DSDPVec,DSDPVec);
extern int DSDPConeMultiplyAdd(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec);
extern int DSDPConeComputeRHS(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec);
extern int DSDPConeComputeMaxStepLength(DSDPCone,DSDPVec,DSDPDualFactorMatrix,double*);
extern int DSDPConeComputeLogSDeterminant(DSDPCone,double*,double*);
extern int DSDPConeComputeX(DSDPCone,double,DSDPVec,DSDPVec,DSDPVec,double*);
extern int DSDPConeSetXMaker(DSDPCone,double,DSDPVec,DSDPVec);
extern int DSDPConeView(DSDPCone);
extern int DSDPConeMonitor(DSDPCone,int);
extern int DSDPConeDestroy(DSDPCone*);
extern int DSDPConeANorm2(DSDPCone,DSDPVec);
extern int DSDPGetConeName(DSDPCone,char*,int);
extern int DSDPConeSetData(DSDPCone*,struct DSDPCone_Ops*,void*);
extern int DSDPConeInitialize(DSDPCone*);
#ifdef __cplusplus
}
#endif
#endif
dsdpbasictypes.h
Solver, solution types, termination codes,.
DSDPDualFactorMatrix
DSDPDualFactorMatrix
DSDP requires two instances of the data structures S.
Definition dsdpbasictypes.h:25
DSDPTruth
DSDPTruth
Boolean variables.
Definition dsdpbasictypes.h:19
DSDPConeSetData
int DSDPConeSetData(DSDPCone *, struct DSDPCone_Ops *, void *)
Initialize the pointers to 0.
Definition dsdpcone.c:477
DSDPConeDestroy
int DSDPConeDestroy(DSDPCone *)
Free the internal memory of the cone.
Definition dsdpcone.c:64
DSDPConeSetUp2
int DSDPConeSetUp2(DSDPCone, DSDPVec, DSDPSchurMat)
Factor the data and allocate data structures.
Definition dsdpcone.c:43
DSDPConeView
int DSDPConeView(DSDPCone)
View contents of the cone.
Definition dsdpcone.c:358
DSDPConeInvertS
int DSDPConeInvertS(DSDPCone)
Invert the dual matrix S.
Definition dsdpcone.c:265
DSDPConeComputeHessian
int DSDPConeComputeHessian(DSDPCone, double, DSDPSchurMat, DSDPVec, DSDPVec)
Compute Hessian and gradient of barrier function.
Definition dsdpcone.c:92
DSDPConeComputeS
int DSDPConeComputeS(DSDPCone, DSDPVec, DSDPDualFactorMatrix, DSDPTruth *)
Given y, compute S and determine whether its in the cone.
Definition dsdpcone.c:242
DSDPCone
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
DSDPConeComputeRHS
int DSDPConeComputeRHS(DSDPCone, double, DSDPVec, DSDPVec, DSDPVec)
Compute gradient of barrier function.
Definition dsdpcone.c:147
DSDPGetConeName
int DSDPGetConeName(DSDPCone, char *, int)
Get name of the cone.
Definition dsdpcone.c:427
DSDPConeSetUp
int DSDPConeSetUp(DSDPCone, DSDPVec)
Factor the data and allocate data structures.
Definition dsdpcone.c:22
DSDPConeSparsityInSchurMat
int DSDPConeSparsityInSchurMat(DSDPCone, int, int[], int)
Identify sparsity pattern in a row of the Hessian term.
Definition dsdpcone.c:338
DSDPConeComputeX
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
DSDPConeComputeLogSDeterminant
int DSDPConeComputeLogSDeterminant(DSDPCone, double *, double *)
Evaluate logrithmic barrier function.
Definition dsdpcone.c:403
DSDPConeGetDimension
int DSDPConeGetDimension(DSDPCone, double *)
Provide the dimension of the cone.
Definition dsdpcone.c:312
DSDPConeInitialize
int DSDPConeInitialize(DSDPCone *)
Initialize the pointers to 0.
Definition dsdpcone.c:495
DSDPConeMultiplyAdd
int DSDPConeMultiplyAdd(DSDPCone, double, DSDPVec, DSDPVec, DSDPVec)
Multiply Hessian by a vector and add the result.
Definition dsdpcone.c:119
DSDPConeMonitor
int DSDPConeMonitor(DSDPCone, int)
Do anything at in the cone at each iteration.
Definition dsdpcone.c:380
DSDPConeComputeMaxStepLength
int DSDPConeComputeMaxStepLength(DSDPCone, DSDPVec, DSDPDualFactorMatrix, double *)
Determine distance to the edge of the cone.
Definition dsdpcone.c:288
DSDPConeANorm2
int DSDPConeANorm2(DSDPCone, DSDPVec)
Add square of 2-norm of data correponding to each variable y.
Definition dsdpcone.c:168
DSDPConeSetXMaker
int DSDPConeSetXMaker(DSDPCone, double, DSDPVec, DSDPVec)
Pass information needed to construct X.
Definition dsdpcone.c:191
dsdpschurmat.h
Methods of a Schur Matrix.
dsdpvec.h
Vector operations used by the solver.
DSDPVec
struct DSDPVec_C DSDPVec
This object hold m+2 variables: a scaling of C, the y variables, and r.
Definition dsdpvec.h:25
DSDPSchurMat_C
Schur complement matrix whose solution is the Newton direction.
Definition dsdpschurmat.h:35