43 #include "call_epetra.h" 44 #include "Epetra_CrsMatrix.h" 45 #include "Epetra_Map.h" 49 int ExtractIndicesView(
void* A,
int GlobalRow,
int *NumEntries,
int **Indices){
51 Epetra_CrsMatrix *mat = (Epetra_CrsMatrix*) A;
52 int MyRow = mat->LRID(GlobalRow);
53 if(MyRow == -1)
return 0;
54 int & len = *NumEntries;
55 int *& ind = *Indices;
56 ierr += mat->Graph().ExtractMyRowView(MyRow, len, ind);
60 int ExtractValuesView(
void *A,
int GlobalRow,
int *NumEntries,
double** Values){
62 Epetra_CrsMatrix *mat = (Epetra_CrsMatrix*) A;
63 int MyRow = mat->LRID(GlobalRow);
64 if(MyRow == -1)
return 0;
65 int &len = *NumEntries;
66 double *& val = *Values;
67 ierr += mat->ExtractMyRowView(MyRow, len, val);
71 int MinMaxMyGID(
void* A,
bool Row,
bool min){
72 Epetra_CrsMatrix* mat = (Epetra_CrsMatrix*) A;
75 return mat->RowMap().MinMyGID();
77 return mat->RowMap().MaxMyGID();
81 return mat->ColMap().MinMyGID();
83 return mat->ColMap().MaxMyGID();
88 int NumGlobalRowCol(
void* A,
bool Row){
89 Epetra_CrsMatrix *mat = (Epetra_CrsMatrix*) A;
91 return mat->NumGlobalRows();
93 return mat->NumGlobalCols();
97 int NumMyRowEntries(
void *A,
int Row,
int *numEntries){
98 Epetra_CrsMatrix* mat = (Epetra_CrsMatrix*) A;
99 return mat->NumMyRowEntries(mat->LRID(Row), *numEntries);