dsdpdatamat.h
Go to the documentation of this file.
#if !defined(__DSDP_DATAMATRIXOPS_H)
#define __DSDP_DATAMATRIXOPS_H
#include "sdpconevec.h"
struct DSDPDataMat_C{
void* matdata;
struct DSDPDataMat_Ops* dsdpops;
};
typedef struct DSDPDataMat_C DSDPDataMat;
#ifdef __cplusplus
extern "C" {
#endif
extern int DSDPDataMatSetData(DSDPDataMat*, struct DSDPDataMat_Ops*, void*);
extern int DSDPDataMatInitialize(DSDPDataMat*);
extern int DSDPDataMatGetType(DSDPDataMat, int *);
extern int DSDPDataMatTest(DSDPDataMat);
extern int DSDPDataMatVecVec(DSDPDataMat,SDPConeVec,double*);
extern int DSDPDataMatDot(DSDPDataMat,double[], int,int,double*);
extern int DSDPDataMatGetRowNonzeros(DSDPDataMat, int, int, int*, int*);
extern int DSDPDataMatCountNonzeros(DSDPDataMat,int*,int);
extern int DSDPDataMatFNorm2(DSDPDataMat,int,double*);
extern int DSDPDataMatMultiply(DSDPDataMat,SDPConeVec,SDPConeVec);
extern int DSDPDataMatView(DSDPDataMat);
extern int DSDPDataMatDestroy(DSDPDataMat*);
extern int DSDPDataMatGetRank(DSDPDataMat, int*,int);
extern int DSDPDataMatGetEig(DSDPDataMat, int, SDPConeVec, DSDPIndex, double *);
extern int DSDPDataMatFactor(DSDPDataMat,SDPConeVec, double[],int,double[],int,int[],int);
extern int DSDPDataMatAddMultiple(DSDPDataMat, double, double[],int,int);
extern int DSDPDataMatAddRowMultipleToVector(DSDPDataMat, int, double, SDPConeVec);
#ifdef __cplusplus
}
#endif
#endif
DSDPDataMatAddMultiple
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
DSDPDataMatFactor
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
DSDPDataMatView
int DSDPDataMatView(DSDPDataMat)
Print matrix.
Definition dsdpdatamat.c:423
DSDPDataMatTest
int DSDPDataMatTest(DSDPDataMat)
Test validity of matrix.
Definition dsdpdatamat.c:96
DSDPDataMatGetRowNonzeros
int DSDPDataMatGetRowNonzeros(DSDPDataMat, int, int, int *, int *)
Get sparsity pattern of a row of the matrix.
Definition dsdpdatamat.c:355
DSDPDataMatDestroy
int DSDPDataMatDestroy(DSDPDataMat *)
Free the data structures.
Definition dsdpdatamat.c:444
DSDPDataMatGetRank
int DSDPDataMatGetRank(DSDPDataMat, int *, int)
Get the number of nonzero eigenvalues/eigenvectors for the matrix.
Definition dsdpdatamat.c:129
DSDPDataMatGetEig
int DSDPDataMatGetEig(DSDPDataMat, int, SDPConeVec, DSDPIndex, double *)
Get an eigenvalue/vector pair.
Definition dsdpdatamat.c:204
DSDPDataMatDot
int DSDPDataMatDot(DSDPDataMat, double[], int, int, double *)
Compute inner product of data with a dense matrix.
Definition dsdpdatamat.c:273
DSDPDataMatVecVec
int DSDPDataMatVecVec(DSDPDataMat, SDPConeVec, double *)
Compute w' A w.
Definition dsdpdatamat.c:297
DSDPDataMatCountNonzeros
int DSDPDataMatCountNonzeros(DSDPDataMat, int *, int)
Compute the square of the Frobenius norm.
Definition dsdpdatamat.c:152
DSDPDataMatFNorm2
int DSDPDataMatFNorm2(DSDPDataMat, int, double *)
Compute the square of the Frobenius norm.
Definition dsdpdatamat.c:175
DSDPDataMatInitialize
int DSDPDataMatInitialize(DSDPDataMat *)
Set pointers to NULL;.
Definition dsdpdatamat.c:78
DSDPDataMatSetData
int DSDPDataMatSetData(DSDPDataMat *, struct DSDPDataMat_Ops *, void *)
Set the opaque pointer and function pointers to the matrix.
Definition dsdpdatamat.c:25
sdpconevec.h
Each block of the SDPCone has two vectors of appropriate size.
DSDPDataMat_C
Symmetric data matrix for one block in the semidefinite cone.
Definition dsdpdatamat.h:15
DSDPDataMat_Ops
Table of function pointers that operate on the data matrix.
Definition dsdpdatamat_impl.h:15
SDPConeVec_C
Vector whose length corresponds to dimension of a block in a cone.
Definition sdpconevec.h:13