44 #ifndef EPETRA_JADMATRIX_H
45 #define EPETRA_JADMATRIX_H
100 int UpdateValues(
const Epetra_RowMatrix & Matrix,
bool CheckStructure =
false);
116 int ExtractMyRowCopy(
int MyRow,
int Length,
int & NumEntries,
double *Values,
int * Indices)
const;
129 Value = &Values_[CurEntry];
130 ColIndex = Indices_[CurEntry];
131 for (
int j=0; j<NumJaggedDiagonals_; j++)
if (CurEntry<IndexOffset_[j+1]) {RowIndex = RowPerm_[CurEntry-IndexOffset_[j]];
break;}
146 Value = &Values_[CurEntry];
147 ColIndex = Indices_[CurEntry];
148 for (
int j=0; j<NumJaggedDiagonals_; j++)
if (CurEntry<IndexOffset_[j+1]) {RowIndex = RowPerm_[CurEntry-IndexOffset_[j]];
break;}
197 int Solve(
bool Upper,
bool Trans,
bool UnitDiagonal,
214 void GeneralMV(
bool TransA,
double * x,
double * y)
const;
215 void GeneralMM(
bool TransA,
double ** X,
int LDX,
double ** Y,
int LDY,
int NumVectors)
const;
216 void GeneralMM3RHS(
bool TransA,
double ** X,
int LDX,
double ** Y,
int LDY,
int NumVectors)
const;
217 void GeneralMM2RHS(
bool TransA,
double * x,
int ldx,
double * y,
int ldy)
const;
Epetra_MultiVector: A class for constructing and using dense multi-vectors, vectors and matrices in p...
Epetra_IntSerialDenseVector: A class for constructing and using dense vectors.
#define EPETRA_CHK_ERR(a)
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements...
Epetra_Vector: A class for constructing and using dense vectors on a parallel computer.
Epetra_Import: This class builds an import object for efficient importing of off-processor elements...
virtual int ExtractMyRowCopy(int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const =0
Returns a copy of the specified local row in user-provided arrays.
Epetra_JadMatrix: A class for constructing matrix objects optimized for common kernels.
Epetra_IntSerialDenseVector Indices_
int Solve(bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_JadMatrix solve with a Epetra_MultiVector X in Y (not implemented)...
Epetra_SerialDenseVector: A class for constructing and using dense vectors.
virtual int NumMyRowEntries(int MyRow, int &NumEntries) const =0
Return the current number of values stored for the specified local row.
Epetra_IntSerialDenseVector Profile_
int ExtractMyEntryView(int CurEntry, double const *&Value, int &RowIndex, int &ColIndex) const
Returns a const reference to the ith entry in the matrix, along with its row and column index...
virtual int Multiply(bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_BasicRowMatrix multiplied by a Epetra_MultiVector X in Y...
Epetra_IntSerialDenseVector IndexOffset_
Epetra_SerialDenseVector Values_
Epetra_BasicRowMatrix: A class for simplifying the development of Epetra_RowMatrix adapters...
Epetra_IntSerialDenseVector InvRowPerm_
Epetra_IntSerialDenseVector RowPerm_
int ExtractMyEntryView(int CurEntry, double *&Value, int &RowIndex, int &ColIndex)
Returns a reference to the ith entry in the matrix, along with its row and column index...
Epetra_RowMatrix: A pure virtual class for using real-valued double-precision row matrices...