7 static int ZDestroy(
void*);
8 static int ZView(
void*);
9 static int ZVecVec(
void*,
double[],
int,
double *);
10 static int ZDot(
void*,
double[],
int,
int,
double *);
11 static int ZGetRank(
void*,
int*,
int);
12 static int ZFactor(
void*);
13 static int ZGetEig(
void*,
int,
double*,
double[],
int,
int[],
int*);
14 static int ZAddRowMultiple(
void*,
int,
double,
double[],
int);
15 static int ZAddMultiple(
void*,
double,
double[],
int,
int);
16 static int ZRowNnz(
void*,
int,
int[],
int*,
int);
23 info=ZeroMatopsInitialize(&zeromatops);
if (info){
return info;}
24 if (zops){*zops=&zeromatops;}
28 static int ZFactor(
void *A){
32 static int ZGetRank(
void*A,
int*rank,
int n){
37 static int ZGetEig(
void*A,
int neig,
double *eig,
double v[],
int n,
int indx[],
int*nind){
43 static int ZDot(
void*A,
double x[],
int nn,
int n,
double *sum){
48 static int ZVecVec(
void*A,
double x[],
int n,
double *sum){
53 static int ZAddMultiple(
void*A,
double dd,
double row[],
int nn,
int n){
57 static int ZAddRowMultiple(
void*A,
int nrow,
double dd,
double row[],
int n){
61 static int ZRowNnz(
void*A,
int row,
int nz[],
int *nnz,
int n){
66 static int ZDestroy(
void*A){
70 static int ZNorm2(
void*A,
int n,
double *v){
75 static int ZView(
void*A){
76 printf(
"All zeros\n");
80 static 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;
Error handling, printing, and profiling.
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,...
Table of function pointers that operate on the data matrix.