DSDP
dsdpxmat.h
Go to the documentation of this file.
1 #if !defined(__DSDP_VSYMMETRICMATRIX_H)
2 #define __DSDP_VSYMMETRICMATRIX_H
3 
8 #include "sdpconevec.h"
9 
10 /* DSDP V Matrix Structure */
17 struct DSDPVMat_C{
18  void *matdata;
19  struct DSDPVMat_Ops* dsdpops;
20 };
21 
26 typedef struct DSDPVMat_C DSDPVMat;
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 extern int DSDPVMatGetType(DSDPVMat, int *);
33 extern int DSDPVMatSetData(DSDPVMat *, struct DSDPVMat_Ops*, void*);
34 extern int DSDPVMatInitialize(DSDPVMat*);
35 
36 extern int DSDPVMatTest(DSDPVMat);
37 extern int DSDPVMatGetSize(DSDPVMat,int*);
38 extern int DSDPVMatView(DSDPVMat);
39 extern int DSDPVMatDestroy(DSDPVMat*);
40 
41 extern int DSDPVMatExist(DSDPVMat,int*);
42 extern int DSDPVMatZeroEntries(DSDPVMat);
43 extern int DSDPVMatAddOuterProduct(DSDPVMat, double, SDPConeVec);
45 extern int DSDPVMatScaleDiagonal(DSDPVMat,double);
46 extern int DSDPVMatShiftDiagonal(DSDPVMat,double);
47 extern int DSDPVMatNormF2(DSDPVMat, double*);
48 extern int DSDPVMatGetArray(DSDPVMat,double**,int*);
49 extern int DSDPVMatRestoreArray(DSDPVMat,double**,int*);
50 extern int DSDPVMatMinEigenvalue(DSDPVMat,SDPConeVec,SDPConeVec,double*);
52 
53 #ifdef __cplusplus
54 }
55 #endif
56 
57 #endif
58 
59 
int DSDPVMatTest(DSDPVMat X)
Test validity of matrix.
Definition: dsdpxmat.c:402
int DSDPVMatExist(DSDPVMat X, int *flag)
Answer whether the array has been allocated or not.
Definition: dsdpxmat.c:440
Table of function pointers that operate on the dense matrix.
Definition: dsdpxmat_impl.h:13
int DSDPVMatGetArray(DSDPVMat X, double **v, int *nn)
Get the array that stores the matrix.
Definition: dsdpxmat.c:211
int DSDPVMatGetSize(DSDPVMat X, int *n)
Get number of rows and columns.
Definition: dsdpxmat.c:65
int DSDPVMatRestoreArray(DSDPVMat X, double **v, int *nn)
Restore the array that stores the matrix.
Definition: dsdpxmat.c:233
int DSDPVMatScaleDiagonal(DSDPVMat X, double dscale)
Scaling diagonal is useful for inner products and norms.
Definition: dsdpxmat.c:147
int DSDPVMatMult(DSDPVMat X, SDPConeVec Z, SDPConeVec Y)
Multiply X by a vector.
Definition: dsdpxmat.c:301
int DSDPVMatInitialize(DSDPVMat *B)
Set pointers to null.
Definition: dsdpxmat.c:424
Each block of the SDPCone has two vectors of appropriate size.
Vector whose length corresponds to dimension of a block in a cone.
Definition: sdpconevec.h:13
int DSDPVMatDestroy(DSDPVMat *X)
Deallocate matrix.
Definition: dsdpxmat.c:86
int DSDPVMatZeroEntries(DSDPVMat X)
Zero matrix.
Definition: dsdpxmat.c:125
int DSDPVMatAddOuterProduct(DSDPVMat X, double alpha, SDPConeVec V)
Add outer product of a vector to the matrix.
Definition: dsdpxmat.c:275
int DSDPVMatCheck(DSDPVMat X, SDPConeVec W1, SDPConeVec W2)
Test correctness of operations.
Definition: dsdpxmat.c:327
int DSDPVMatSetData(DSDPVMat *X, struct DSDPVMat_Ops *ops, void *data)
Set opaque pointer an function pointers.
Definition: dsdpxmat.c:39
int DSDPVMatView(DSDPVMat X)
Print matrix.
Definition: dsdpxmat.c:107
Dense symmetric matrix for one block in the semidefinite cone.
Definition: dsdpxmat.h:17
int DSDPVMatNormF2(DSDPVMat X, double *normf2)
Compute square of Frobenius norm of matrix.
Definition: dsdpxmat.c:186
int DSDPVMatShiftDiagonal(DSDPVMat X, double dadd)
Add something to diagonal elements.
Definition: dsdpxmat.c:166