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
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31extern int DSDPDataMatSetData(DSDPDataMat*, struct DSDPDataMat_Ops*, void*);
33extern int DSDPDataMatGetType(DSDPDataMat, int *);
35
36extern int DSDPDataMatVecVec(DSDPDataMat,SDPConeVec,double*);
37extern int DSDPDataMatDot(DSDPDataMat,double[], int,int,double*);
38extern int DSDPDataMatGetRowNonzeros(DSDPDataMat, int, int, int*, int*);
39extern int DSDPDataMatCountNonzeros(DSDPDataMat,int*,int);
40extern int DSDPDataMatFNorm2(DSDPDataMat,int,double*);
41extern int DSDPDataMatMultiply(DSDPDataMat,SDPConeVec,SDPConeVec);
44extern int DSDPDataMatGetRank(DSDPDataMat, int*,int);
45extern int DSDPDataMatGetEig(DSDPDataMat, int, SDPConeVec, DSDPIndex, double *);
46extern int DSDPDataMatFactor(DSDPDataMat,SDPConeVec, double[],int,double[],int,int[],int);
47extern int DSDPDataMatAddMultiple(DSDPDataMat, double, double[],int,int);
48extern int DSDPDataMatAddRowMultipleToVector(DSDPDataMat, int, double, SDPConeVec);
49
50#ifdef __cplusplus
51}
52#endif
53
54#endif
55
56
int DSDPDataMatAddMultiple(DSDPDataMat A, double ytmp, double *v, int nn, int n)
Add a multiple the data matrix to the array.
int DSDPDataMatFactor(DSDPDataMat A, SDPConeVec W, double *dworknn, int nn0, double *dwork3n, int nd, int *iwork, int ni)
Do eigenvalue/vector or other factorization.
int DSDPDataMatView(DSDPDataMat)
Print matrix.
int DSDPDataMatTest(DSDPDataMat)
Test validity of matrix.
Definition dsdpdatamat.c:96
int DSDPDataMatGetRowNonzeros(DSDPDataMat, int, int, int *, int *)
Get sparsity pattern of a row of the matrix.
int DSDPDataMatDestroy(DSDPDataMat *)
Free the data structures.
int DSDPDataMatGetRank(DSDPDataMat, int *, int)
Get the number of nonzero eigenvalues/eigenvectors for the matrix.
int DSDPDataMatGetEig(DSDPDataMat, int, SDPConeVec, DSDPIndex, double *)
Get an eigenvalue/vector pair.
int DSDPDataMatDot(DSDPDataMat, double[], int, int, double *)
Compute inner product of data with a dense matrix.
int DSDPDataMatVecVec(DSDPDataMat, SDPConeVec, double *)
Compute w' A w.
int DSDPDataMatCountNonzeros(DSDPDataMat, int *, int)
Compute the square of the Frobenius norm.
int DSDPDataMatFNorm2(DSDPDataMat, int, double *)
Compute the square of the Frobenius norm.
int DSDPDataMatInitialize(DSDPDataMat *)
Set pointers to NULL;.
Definition dsdpdatamat.c:78
int DSDPDataMatSetData(DSDPDataMat *, struct DSDPDataMat_Ops *, void *)
Set the opaque pointer and function pointers to the matrix.
Definition dsdpdatamat.c:25
Each block of the SDPCone has two vectors of appropriate size.
Symmetric data matrix for one block in the semidefinite cone.
Definition dsdpdatamat.h:15
Table of function pointers that operate on the data matrix.
Vector whose length corresponds to dimension of a block in a cone.
Definition sdpconevec.h:13