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 DSDPDataMatDot(DSDPDataMat A, double x[], int nn, int n, double *v)
Compute inner product of data with a dense matrix.
Definition: dsdpdatamat.c:273
int DSDPDataMatFNorm2(DSDPDataMat A, int n, double *fnorm2)
Compute the square of the Frobenius norm.
Definition: dsdpdatamat.c:175
int DSDPDataMatTest(DSDPDataMat A)
Test validity of matrix.
Definition: dsdpdatamat.c:96
int DSDPDataMatGetRank(DSDPDataMat A, int *rank, int n)
Get the number of nonzero eigenvalues/eigenvectors for the matrix.
Definition: dsdpdatamat.c:129
int DSDPDataMatGetEig(DSDPDataMat A, int rr, SDPConeVec V, DSDPIndex S, double *eigenvalue)
Get an eigenvalue/vector pair.
Definition: dsdpdatamat.c:204
int DSDPDataMatGetRowNonzeros(DSDPDataMat A, int nrow, int nmax, int *nz, int *nnz)
Get sparsity pattern of a row of the matrix.
Definition: dsdpdatamat.c:355
int DSDPDataMatInitialize(DSDPDataMat *A)
Set pointers to NULL;.
Definition: dsdpdatamat.c:78
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
Symmetric data matrix for one block in the semidefinite cone.
Definition: dsdpdatamat.h:15
int DSDPDataMatCountNonzeros(DSDPDataMat A, int *nnz, int n)
Compute the square of the Frobenius norm.
Definition: dsdpdatamat.c:152
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 DSDPDataMatSetData(DSDPDataMat *A, struct DSDPDataMat_Ops *ops, void *data)
Set the opaque pointer and function pointers to the matrix.
Definition: dsdpdatamat.c:25
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 DSDPDataMatDestroy(DSDPDataMat *A)
Free the data structures.
Definition: dsdpdatamat.c:444
int DSDPDataMatVecVec(DSDPDataMat A, SDPConeVec W, double *v)
Compute w' A w.
Definition: dsdpdatamat.c:297
int DSDPDataMatView(DSDPDataMat A)
Print matrix.
Definition: dsdpdatamat.c:423