DSDP
dsdpdatamat.h
Go to the documentation of this file.
1 #if !defined(__DSDP_DATAMATRIXOPS_H)
2 #define __DSDP_DATAMATRIXOPS_H
3 
4 #include "sdpconevec.h"
16  void* matdata;
17  struct DSDPDataMat_Ops* dsdpops;
18 };
19 
25 typedef struct DSDPDataMat_C DSDPDataMat;
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 extern int DSDPDataMatSetData(DSDPDataMat*, struct DSDPDataMat_Ops*, void*);
33 extern int DSDPDataMatGetType(DSDPDataMat, int *);
34 extern int DSDPDataMatTest(DSDPDataMat);
35 
36 extern int DSDPDataMatVecVec(DSDPDataMat,SDPConeVec,double*);
37 extern int DSDPDataMatDot(DSDPDataMat,double[], int,int,double*);
38 extern int DSDPDataMatGetRowNonzeros(DSDPDataMat, int, int, int*, int*);
39 extern int DSDPDataMatCountNonzeros(DSDPDataMat,int*,int);
40 extern int DSDPDataMatFNorm2(DSDPDataMat,int,double*);
41 extern int DSDPDataMatMultiply(DSDPDataMat,SDPConeVec,SDPConeVec);
42 extern int DSDPDataMatView(DSDPDataMat);
43 extern int DSDPDataMatDestroy(DSDPDataMat*);
44 extern int DSDPDataMatGetRank(DSDPDataMat, int*,int);
45 extern int DSDPDataMatGetEig(DSDPDataMat, int, SDPConeVec, DSDPIndex, double *);
46 extern int DSDPDataMatFactor(DSDPDataMat,SDPConeVec, double[],int,double[],int,int[],int);
47 extern int DSDPDataMatAddMultiple(DSDPDataMat, double, double[],int,int);
48 extern int DSDPDataMatAddRowMultipleToVector(DSDPDataMat, int, double, SDPConeVec);
49 
50 #ifdef __cplusplus
51 }
52 #endif
53 
54 #endif
55 
56 
int DSDPDataMatTest(DSDPDataMat)
Test validity of matrix.
Definition: dsdpdatamat.c:96
int DSDPDataMatInitialize(DSDPDataMat *)
Set pointers to NULL;.
Definition: dsdpdatamat.c:78
int DSDPDataMatDestroy(DSDPDataMat *)
Free the data structures.
Definition: dsdpdatamat.c:444
int DSDPDataMatDot(DSDPDataMat, double[], int, int, double *)
Compute inner product of data with a dense matrix.
Definition: dsdpdatamat.c:273
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 DSDPDataMatSetData(DSDPDataMat *, struct DSDPDataMat_Ops *, void *)
Set the opaque pointer and function pointers to the matrix.
Definition: dsdpdatamat.c:25
Symmetric data matrix for one block in the semidefinite cone.
Definition: dsdpdatamat.h:15
int DSDPDataMatView(DSDPDataMat)
Print matrix.
Definition: dsdpdatamat.c:423
int DSDPDataMatAddMultiple(DSDPDataMat A, double ytmp, double *v, int nn, int n)
Add a multiple the data matrix to the array.
Definition: dsdpdatamat.c:402
int DSDPDataMatFactor(DSDPDataMat A, SDPConeVec W, double *dworknn, int nn0, double *dwork3n, int nd, int *iwork, int ni)
Do eigenvalue/vector or other factorization.
Definition: dsdpdatamat.c:240
Table of function pointers that operate on the data matrix.
int DSDPDataMatFNorm2(DSDPDataMat, int, double *)
Compute the square of the Frobenius norm.
Definition: dsdpdatamat.c:175
int DSDPDataMatGetEig(DSDPDataMat, int, SDPConeVec, DSDPIndex, double *)
Get an eigenvalue/vector pair.
Definition: dsdpdatamat.c:204
int DSDPDataMatGetRank(DSDPDataMat, int *, int)
Get the number of nonzero eigenvalues/eigenvectors for the matrix.
Definition: dsdpdatamat.c:129
int DSDPDataMatCountNonzeros(DSDPDataMat, int *, int)
Compute the square of the Frobenius norm.
Definition: dsdpdatamat.c:152
int DSDPDataMatVecVec(DSDPDataMat, SDPConeVec, double *)
Compute w' A w.
Definition: dsdpdatamat.c:297
int DSDPDataMatGetRowNonzeros(DSDPDataMat, int, int, int *, int *)
Get sparsity pattern of a row of the matrix.
Definition: dsdpdatamat.c:355