51 int rowcoord, localRow, blkRowCoord;
52 int colcoord, localCol, blkColCoord;
54 for (entry = cooMat.begin(); entry != cooMat.end(); entry++)
56 rowcoord = (entry->first).first;
57 colcoord = (entry->first).second;
59 blkRowCoord = rowcoord / blkDim;
60 blkColCoord = colcoord / blkDim;
62 CoordType blkCoords = std::make_pair(blkRowCoord, blkColCoord);
63 blk = bcoMat.find(blkCoords);
64 if (blk == bcoMat.end())
67 bcoMat[blkCoords] = b;
70 localRow = rowcoord % blkDim;
71 localCol = colcoord % blkDim;
75 const unsigned int localoffset = localRow + localCol * blkDim;
76 (bcoMat[blkCoords])[localoffset] = entry->second;
80template <
typename SparseStorageType>
87 for (
unsigned int i = 0; i < rhs.
GetRows(); ++i)
90 for (
unsigned int j = 0; j < rhs.
GetColumns(); ++j)
93 os.precision(osprecision);
95 if (j != rhs.GetColumns() - 1)
109template <
typename SparseStorageType>
116 for (
unsigned int i = 0; i < rhs.
GetRows(); ++i)
119 for (
unsigned int j = 0; j < rhs.
GetColumns(); ++j)
122 os.precision(osprecision);
124 if (j != rhs.GetColumns() - 1)
IndexType GetRows() const
IndexType GetColumns() const
IndexType GetRows() const
IndexType GetColumns() const
COOMatType::const_iterator COOMatTypeConstIt
std::map< CoordType, BCOEntryType > BCOMatType
std::pair< IndexType, IndexType > CoordType
void convertCooToBco(const unsigned int blkDim, const COOMatType &cooMat, BCOMatType &bcoMat)
std::map< CoordType, NekDouble > COOMatType
std::ostream & operator<<(std::ostream &os, const NekMatrix< DataType, FormType > &rhs)
BCOMatType::const_iterator BCOMatTypeConstIt