7static int ZDestroy(
void*);
8static int ZView(
void*);
9static int ZVecVec(
void*,
double[],
int,
double *);
10static int ZDot(
void*,
double[],
int,
int,
double *);
11static int ZGetRank(
void*,
int*,
int);
12static int ZFactor(
void*);
13static int ZGetEig(
void*,
int,
double*,
double[],
int,
int[],
int*);
14static int ZAddRowMultiple(
void*,
int,
double,
double[],
int);
15static int ZAddMultiple(
void*,
double,
double[],
int,
int);
16static int ZRowNnz(
void*,
int,
int[],
int*,
int);
23 info=ZeroMatopsInitialize(&zeromatops);
if (info){
return info;}
24 if (zops){*zops=&zeromatops;}
28static int ZFactor(
void *A){
32static int ZGetRank(
void*A,
int*rank,
int n){
37static int ZGetEig(
void*A,
int neig,
double *eig,
double v[],
int n,
int indx[],
int*nind){
43static int ZDot(
void*A,
double x[],
int nn,
int n,
double *sum){
48static int ZVecVec(
void*A,
double x[],
int n,
double *sum){
53static int ZAddMultiple(
void*A,
double dd,
double row[],
int nn,
int n){
57static int ZAddRowMultiple(
void*A,
int nrow,
double dd,
double row[],
int n){
61static int ZRowNnz(
void*A,
int row,
int nz[],
int *nnz,
int n){
66static int ZDestroy(
void*A){
70static int ZNorm2(
void*A,
int n,
double *v){
75static int ZView(
void*A){
76 printf(
"All zeros\n");
80static const char* datamatname=
"MATRIX OF ZEROS";
84 if (sops==NULL)
return 0;
86 sops->matfactor1=ZFactor;
87 sops->matgetrank=ZGetRank;
88 sops->matgeteig=ZGetEig;
89 sops->matvecvec=ZVecVec;
91 sops->matfnorm2=ZNorm2;
92 sops->matrownz=ZRowNnz;
93 sops->mataddrowmultiple=ZAddRowMultiple;
94 sops->mataddallmultiple=ZAddMultiple;
95 sops->matdestroy=ZDestroy;
98 sops->matname=datamatname;
int DSDPDataMatOpsInitialize(struct DSDPDataMat_Ops *dops)
Initialize the table of function pointers for SDP Data matrices.
Structure of function pointers that each SDP data matrix type (sparse, dense, constant,...
Error handling, printing, and profiling.
Table of function pointers that operate on the data matrix.