46#if defined(Ifpack_SHOW_DEPRECATED_WARNINGS)
48#warning "The Ifpack package is deprecated"
52#include "euclid_common.h"
57#define MATVEC_MPI_TIME 1
58#define MATVEC_MPI_TIME2 5
59#define MATVEC_TOTAL_TIME 2
95 double time[MAT_DH_BINS];
96 double time_max[MAT_DH_BINS];
97 double time_min[MAT_DH_BINS];
103 MPI_Request *recv_req;
104 MPI_Request *send_req;
105 double *recvbuf, *sendbuf;
116 extern void Mat_dhCreate (Mat_dh * mat);
117 extern void Mat_dhDestroy (Mat_dh mat);
119 extern void Mat_dhTranspose (Mat_dh matIN, Mat_dh * matOUT);
120 extern void Mat_dhMakeStructurallySymmetric (Mat_dh A);
123 extern void Mat_dhMatVecSetup (Mat_dh mat);
124 extern void Mat_dhMatVecSetdown (Mat_dh mat);
132 extern void Mat_dhMatVec (Mat_dh mat,
double *lhs,
double *rhs);
135 extern void Mat_dhMatVec_omp (Mat_dh mat,
double *lhs,
double *rhs);
138 extern void Mat_dhMatVec_uni (Mat_dh mat,
double *lhs,
double *rhs);
141 extern void Mat_dhMatVec_uni_omp (Mat_dh mat,
double *lhs,
double *rhs);
145 extern int Mat_dhReadNz (Mat_dh mat);
156 extern void Mat_dhPrintGraph (Mat_dh mat, SubdomainGraph_dh sg, FILE * fp);
157 extern void Mat_dhPrintRows (Mat_dh mat, SubdomainGraph_dh sg, FILE * fp);
159 extern void Mat_dhPrintCSR (Mat_dh mat, SubdomainGraph_dh sg,
161 extern void Mat_dhPrintTriples (Mat_dh mat, SubdomainGraph_dh sg,
163 extern void Mat_dhPrintBIN (Mat_dh mat, SubdomainGraph_dh sg,
166 extern void Mat_dhReadCSR (Mat_dh * mat,
char *filename);
167 extern void Mat_dhReadTriples (Mat_dh * mat,
int ignore,
char *filename);
168 extern void Mat_dhReadBIN (Mat_dh * mat,
char *filename);
171 extern void Mat_dhPermute (Mat_dh Ain,
int *pIN, Mat_dh * Bout);
174 extern void Mat_dhFixDiags (Mat_dh A);
180 extern void Mat_dhPrintDiags (Mat_dh A, FILE * fp);
182 extern void Mat_dhGetRow (Mat_dh B,
int globalRow,
int *len,
int **ind,
184 extern void Mat_dhRestoreRow (Mat_dh B,
int row,
int *len,
int **ind,
188 extern void Mat_dhPartition (Mat_dh mat,
int k,
int **beg_rowOUT,
189 int **row_countOUT,
int **n2oOUT,
195 extern void Mat_dhZeroTiming (Mat_dh mat);
196 extern void Mat_dhReduceTiming (Mat_dh mat);
199 extern void Mat_dhRowPermute (Mat_dh);
201 extern void dldperm (
int job,
int n,
int nnz,
int colptr[],
int adjncy[],
202 double nzval[],
int *perm,
double u[],
double v[]);