DSDP
dsdpdualmat.h
Go to the documentation of this file.
1 #if !defined(__DSDP_DUALMATRIX_H)
2 #define __DSDP_DUALMATRIX_H
3 
4 #include "sdpconevec.h"
5 #include "dsdpbasictypes.h"
6 #include "dsdpxmat.h"
19  void* matdata;
20  struct DSDPDualMat_Ops* dsdpops;
21 };
22 
27 typedef struct DSDPDualMat_C DSDPDualMat;
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
34 extern int DSDPDualMatSetData(DSDPDualMat*,struct DSDPDualMat_Ops*,void*);
35 extern int DSDPDualMatGetType(DSDPDualMat, int *);
36 
37 extern int DSDPDualMatGetSize(DSDPDualMat, int*);
38 extern int DSDPDualMatTest(DSDPDualMat);
39 extern int DSDPDualMatDestroy(DSDPDualMat *);
40 extern int DSDPDualMatView(DSDPDualMat);
41 
43 extern int DSDPDualMatInvert(DSDPDualMat);
44 extern int DSDPDualMatInverseAdd(DSDPDualMat,double,DSDPVMat);
50 extern int DSDPDualMatLogDeterminant(DSDPDualMat, double*);
53 extern int DSDPDualMatCheck(DSDPDualMat,SDPConeVec,SDPConeVec,DSDPIndex,DSDPVMat);
54 extern int DSDPDualMatGetArray(DSDPDualMat,double*[],int*);
55 
56 #ifdef __cplusplus
57 }
58 #endif
59 
60 #endif
61 
62 
int DSDPDualMatSetData(DSDPDualMat *S, struct DSDPDualMat_Ops *ops, void *data)
Set the opaque pointer and function pointers to the matrix.
Definition: dsdpdualmat.c:49
int DSDPDualMatIsFull(DSDPDualMat S, DSDPTruth *full)
Factor the matrix.
Definition: dsdpdualmat.c:397
DSDPTruth
Boolean variables.
int DSDPDualMatDestroy(DSDPDualMat *S)
Free the matrix structure.
Definition: dsdpdualmat.c:65
int DSDPDualMatInverseMultiply(DSDPDualMat S, DSDPIndex IS, SDPConeVec B, SDPConeVec X)
Multiply the inverse by a vector or solve the system of equations.
Definition: dsdpdualmat.c:236
int DSDPDualMatInverseAdd(DSDPDualMat S, double alpha, DSDPVMat T)
Add a multiple of the inverse to T.
Definition: dsdpdualmat.c:209
int DSDPDualMatView(DSDPDualMat S)
Print the matrix.
Definition: dsdpdualmat.c:140
int DSDPDualMatCholeskySolveBackward(DSDPDualMat S, SDPConeVec B, SDPConeVec X)
Backward triangular solve.
Definition: dsdpdualmat.c:295
Each block of the SDPCone has two vectors of appropriate size.
Solver, solution types, termination codes,.
Vector whose length corresponds to dimension of a block in a cone.
Definition: sdpconevec.h:13
Table of function pointers that operate on the S matrix.
int DSDPDualMatCholeskyBackwardMultiply(DSDPDualMat S, SDPConeVec B, SDPConeVec X)
Multiply by triangular matrix.
Definition: dsdpdualmat.c:373
int DSDPDualMatCholeskySolveForward(DSDPDualMat S, SDPConeVec B, SDPConeVec X)
Forward triangular solve.
Definition: dsdpdualmat.c:267
The interface between the SDPCone and the dense matrix array.
int DSDPDualMatInitialize(DSDPDualMat *S)
Set pointers to null.
Definition: dsdpdualmat.c:471
int DSDPDualMatGetSize(DSDPDualMat S, int *n)
Free the matrix structure.
Definition: dsdpdualmat.c:87
int DSDPDualMatInvert(DSDPDualMat S)
Invert the matrix.
Definition: dsdpdualmat.c:186
int DSDPDualMatCholeskyFactor(DSDPDualMat S, DSDPTruth *psdefinite)
Factor the matrix.
Definition: dsdpdualmat.c:320
int DSDPDualMatLogDeterminant(DSDPDualMat S, double *logdet)
Free the matrix structure.
Definition: dsdpdualmat.c:122
Represents an S matrix for one block in the semidefinite cone.
Definition: dsdpdualmat.h:18
int DSDPDualMatCholeskyForwardMultiply(DSDPDualMat S, SDPConeVec B, SDPConeVec X)
Multiply by triangular matrix.
Definition: dsdpdualmat.c:346
int DSDPDualMatSetArray(DSDPDualMat S, DSDPVMat T)
Print the matrix.
Definition: dsdpdualmat.c:160
Dense symmetric matrix for one block in the semidefinite cone.
Definition: dsdpxmat.h:17