9 #ifndef _fei_Matrix_hpp_ 
   10 #define _fei_Matrix_hpp_ 
   12 #include "fei_iosfwd.hpp" 
   13 #include "fei_SharedPtr.hpp" 
   14 #include "fei_MatrixGraph.hpp" 
   74     virtual int getRowLength(
int row, 
int& length) 
const = 0;
 
   88     virtual int copyOutRow(
int row, 
int len, 
double* coefs, 
int* indices) 
const = 0;
 
  102     virtual int sumIn(
int numRows, 
const int* rows,
 
  103                       int numCols, 
const int* cols,
 
  104                       const double* 
const* values,
 
  119     virtual int copyIn(
int numRows, 
const int* rows,
 
  120                        int numCols, 
const int* cols,
 
  121                        const double* 
const* values,
 
  143                                const double* 
const* data,
 
  179     virtual int sumIn(
int blockID, 
int connectivityID,
 
  180                       const double* 
const* values,
 
  224                             bool matrixMarketFormat=
true) = 0;
 
  239                               bool matrixMarketFormat=
true) = 0;
 
  257     virtual double* getBeginPointer() { 
return NULL; }
 
  258     virtual int getOffset(
int row, 
int col) { 
return -1; }
 
  263 #ifndef _fei_ostream_ops_hpp_ 
  264 #include <fei_ostream_ops.hpp> 
  267 #endif // _fei_Matrix_hpp_ 
virtual int multiply(fei::Vector *x, fei::Vector *y)=0
 
virtual const char * typeName()=0
 
virtual bool usingBlockEntryStorage()=0
 
virtual void setMatrixGraph(fei::SharedPtr< fei::MatrixGraph > matrixGraph)=0
 
virtual void markState()=0
 
virtual void setCommSizes()=0
 
virtual int writeToFile(const char *filename, bool matrixMarketFormat=true)=0
 
virtual int sumIn(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=0)=0
 
virtual int getRowLength(int row, int &length) const =0
 
virtual int sumInFieldData(int fieldID, int idType, int rowID, int colID, const double *const *data, int format=0)=0
 
virtual fei::SharedPtr< fei::MatrixGraph > getMatrixGraph() const =0
 
virtual bool changedSinceMark()=0
 
virtual int getGlobalNumRows() const =0
 
virtual int globalAssemble()=0
 
virtual int copyIn(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=0)=0
 
virtual int gatherFromOverlap(bool accumulate=true)=0
 
virtual int putScalar(double scalar)=0
 
virtual int getLocalNumRows() const =0
 
virtual int parameters(const fei::ParameterSet ¶mset)=0
 
virtual int copyOutRow(int row, int len, double *coefs, int *indices) const =0
 
virtual int writeToStream(FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)=0