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;