74 for (
int i=0; i<numRows; i++) allGids[i] = map.
GID(i);
77 int numChunks = numProc;
83 int numImportGids = 0;
85 importGidList.
Size(stripSize+1);
86 for (
int i=0; i<numChunks; i++) {
87 if (comm.
MyPID()==0) {
88 curStripSize = stripSize;
89 if (i<remainder) curStripSize++;
90 for (
int j=0; j<curStripSize; j++) importGidList[j] = j + curStart;
91 curStart += curStripSize;
99 if (importGids.
Import(allGids, gidImporter,
Insert))
return(-1);
119 if (
A.RowMatrixRowMap().Comm().MyPID() == 0) {
121 int* matlabAcolumnIndicesPtr = mxGetJc(matlabA);
122 matlabAcolumnIndicesPtr[
A.NumGlobalRows()] = valueCount;
131 int numRows =
A.NumGlobalRows();
139 if (comm.
MyPID()!=0) {
140 if (
A.NumMyRows()!=0) ierr = -1;
141 if (
A.NumMyCols()!=0) ierr = -1;
145 double* matlabAvaluesPtr = mxGetPr(matlabA);
146 int* matlabAcolumnIndicesPtr = mxGetJc(matlabA);
147 int* matlabArowIndicesPtr = mxGetIr(matlabA);
150 matlabAvaluesPtr += valueCount;
151 matlabArowIndicesPtr += valueCount;
153 if (numRows!=
A.NumMyRows()) ierr = -1;
157 for (
int i=0; i<numRows; i++) {
159 int I = rowMap.
GID(i);
161 if (
A.ExtractMyRowCopy(i, values.Length(), numEntries,
162 values.Values(), indices.Values()))
return(-1);
163 matlabAcolumnIndicesPtr[I - minAllGID] = valueCount;
164 double* serialValuesPtr = values.Values();
165 for (
int j=0; j<numEntries; j++) {
166 int J = colMap.
GID(indices[j]);
167 *matlabAvaluesPtr = *serialValuesPtr++;
168 *matlabArowIndicesPtr = J;
171 matlabArowIndicesPtr++;
195 comm.
MinAll(&ierr, &ierrGlobal, 1);
virtual int MinAll(double *PartialMins, double *GlobalMins, int Count) const=0
virtual int MyPID() const=0
int FillComplete(bool OptimizeDataStorage=true)
int NumMyElements() const
int CopyRowMatrix(mxArray *matlabA, const Epetra_RowMatrix &A)
const Epetra_Comm & Comm() const
int DoCopyRowMatrix(mxArray *matlabA, int &valueCount, const Epetra_RowMatrix &A)
virtual int NumProc() const=0
int Import(const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0)