9 #ifndef _fei_MatrixReducer_hpp_
10 #define _fei_MatrixReducer_hpp_
22 #define fei_file "fei_MatrixReducer.hpp"
82 int copyOutRow(
int row,
int len,
double* coefs,
int* indices)
const;
95 int sumIn(
int numRows,
const int* rows,
96 int numCols,
const int* cols,
97 const double*
const* values,
111 int copyIn(
int numRows,
const int* rows,
112 int numCols,
const int* cols,
113 const double*
const* values,
135 const double*
const* data,
171 int sumIn(
int blockID,
int connectivityID,
172 const double*
const* values,
197 bool matrixMarketFormat=
true);
202 bool matrixMarketFormat=
true);
209 int numCols,
const int* cols,
210 const double*
const* values,
221 const double*
const* values,
230 int numCols,
const int* cols,
231 const double*
const* values,
236 int numCols,
const int* cols,
237 const double*
const* values,
virtual const char * typeName()=0
virtual bool usingBlockEntryStorage()=0
int writeToStream(FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)
int giveToBlockMatrix(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, bool sumInto)
int getRowLength(int row, int &length) const
virtual void setCommSizes()=0
int putScalar(double scalar)
int sumIn(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=0)
int giveToUnderlyingMatrix(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, bool sumInto, int format)
int sumInFieldData(int fieldID, int idType, int rowID, int colID, const double *const *data, int format=0)
void setMatrixGraph(fei::SharedPtr< fei::MatrixGraph > matrixGraph)
int getGlobalNumRows() const
int multiply(fei::Vector *x, fei::Vector *y)
bool globalAssembleCalled_
virtual fei::SharedPtr< fei::MatrixGraph > getMatrixGraph() const =0
fei::SharedPtr< fei::Matrix > getTargetMatrix()
bool usingBlockEntryStorage()
int giveToUnderlyingBlockMatrix(int row, int rowDim, int numCols, const int *cols, const int *LDAs, const int *colDims, const double *const *values, bool sumInto)
int parameters(const fei::ParameterSet ¶mset)
int gatherFromOverlap(bool accumulate=true)
fei::SharedPtr< fei::Matrix > target_
int writeToFile(const char *filename, bool matrixMarketFormat=true)
int copyOutRow(int row, int len, double *coefs, int *indices) const
int copyIn(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=0)
int getLocalNumRows() const
int giveToMatrix(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, bool sumInto, int format)
fei::SharedPtr< fei::Reducer > reducer_
MatrixReducer(fei::SharedPtr< fei::Reducer > reducer, fei::SharedPtr< fei::Matrix > target)
fei::SharedPtr< fei::MatrixGraph > getMatrixGraph() const