zeromat.c

Go to the documentation of this file.
00001 #include "dsdpdatamat_impl.h"
00002 #include "dsdpsys.h"
00007 static int ZDestroy(void*);
00008 static int ZView(void*);
00009 static int ZVecVec(void*, double[], int, double *);
00010 static int ZDot(void*, double[], int, int,double *);
00011 static int ZGetRank(void*, int*,int);
00012 static int ZFactor(void*);
00013 static int ZGetEig(void*, int, double*, double[], int,int[],int*);
00014 static int ZAddRowMultiple(void*, int, double, double[], int);
00015 static int ZAddMultiple(void*, double, double[], int,int);
00016 static int ZRowNnz(void*, int, int[], int*, int);
00017 
00018 static struct  DSDPDataMat_Ops zeromatops;
00019 static int ZeroMatopsInitialize(struct DSDPDataMat_Ops*);
00020 
00021 int DSDPGetZeroDataMatOps(struct DSDPDataMat_Ops** zops){
00022   int info;
00023   info=ZeroMatopsInitialize(&zeromatops); if (info){return info;}
00024   if (zops){*zops=&zeromatops;}
00025   return info;
00026 }
00027 
00028 static int ZFactor(void *A){
00029   return 0;
00030 }
00031 
00032 static int ZGetRank(void*A,int*rank,int n){
00033   *rank=0;
00034   return 0;
00035 }
00036 
00037 static int ZGetEig(void*A,int neig, double *eig, double v[], int n,int indx[],int*nind){
00038   *eig=0.0;
00039   *nind=0;
00040   return 0;
00041 }
00042 
00043 static int ZDot(void*A, double x[], int nn, int n, double *sum){
00044   *sum=0.0;
00045   return 0;
00046 }
00047 
00048 static int ZVecVec(void*A, double x[], int n, double *sum){
00049   *sum=0.0;
00050   return 0;
00051 }
00052 
00053 static int ZAddMultiple(void*A, double dd, double row[], int nn, int n){
00054   return 0;
00055 }
00056 
00057 static int ZAddRowMultiple(void*A, int nrow, double dd, double row[], int n){
00058   return 0;
00059 }
00060 
00061 static int ZRowNnz(void*A, int row, int nz[], int *nnz, int n){
00062   *nnz=0;
00063   return 0;
00064 }
00065 
00066 static int ZDestroy(void*A){
00067   return 0;
00068 }
00069 
00070 static int ZNorm2(void*A,int n,double *v){
00071   *v=0;
00072   return 0;
00073 }
00074 
00075 static int ZView(void*A){
00076   printf("All zeros\n");
00077   return 0;
00078 }
00079 
00080 static const char* datamatname="MATRIX OF ZEROS";
00081 
00082 static int ZeroMatopsInitialize(struct  DSDPDataMat_Ops* sops){
00083   int info;
00084   if (sops==NULL) return 0;
00085   info=DSDPDataMatOpsInitialize(sops); if (info){ return info;}
00086   sops->matfactor1=ZFactor;
00087   sops->matgetrank=ZGetRank;
00088   sops->matgeteig=ZGetEig;
00089   sops->matvecvec=ZVecVec;
00090   sops->matdot=ZDot;
00091   sops->matfnorm2=ZNorm2;
00092   sops->matrownz=ZRowNnz;
00093   sops->mataddrowmultiple=ZAddRowMultiple;
00094   sops->mataddallmultiple=ZAddMultiple;
00095   sops->matdestroy=ZDestroy;
00096   sops->matview=ZView;
00097   sops->id=10; 
00098   sops->matname=datamatname;
00099   return 0;
00100 }
00101 
00102 
00103 

Generated on Wed Nov 5 21:46:05 2008 for DSDP by  doxygen 1.5.6