本文整理汇总了C++中SparseMat::end1方法的典型用法代码示例。如果您正苦于以下问题:C++ SparseMat::end1方法的具体用法?C++ SparseMat::end1怎么用?C++ SparseMat::end1使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SparseMat
的用法示例。
在下文中一共展示了SparseMat::end1方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: write
bool write(const std::string& fileName, const std::string& mode, const SiconosMatrix& m, const std::string& outputType)
{
// Open file and various checks
std::ofstream outfile;
if (mode == "ascii")
outfile.open(fileName.c_str(), std::ofstream::out);
else if (mode == "binary")
outfile.open(fileName.c_str(), std::ofstream::binary);
else
SiconosMatrixException::selfThrow("ioMatrix::write Incorrect mode for writing");
if (!outfile.good())
SiconosMatrixException::selfThrow("ioMatrix:: write error : Fail to open \"" + fileName + "\"");
if (m.isBlock())
SiconosMatrixException::selfThrow("ioMatrix:: write error : not yet implemented for BlockMatrix");
outfile.precision(15);
outfile.setf(std::ios::scientific);
// Writing
if (outputType != "noDim")
outfile << m.size(0) << " " << m.size(1) << std::endl;
if (m.getNum() == 1)
{
// DenseMat * p = m.dense();
DenseMat::iterator1 row;
DenseMat::iterator2 col;
double tmp;
for (unsigned int i = 0; i < m.size(0); i++)
{
for (unsigned int j = 0; j < m.size(1); j++)
{
tmp = m(i, j);
if (fabs(tmp) < std::numeric_limits<double>::min()) tmp = 0.0;
outfile << tmp << " " ;
assert(outfile.good());
}
outfile << std::endl;
}
}
else if (m.getNum() == 2)
{
TriangMat * p = m.triang();
TriangMat::iterator1 row;
for (row = p->begin1(); row != p->end1() ; ++row)
{
std::copy(row.begin(), row.end(), std::ostream_iterator<double>(outfile, " "));
outfile << std::endl;
}
}
else if (m.getNum() == 3)
{
SymMat * p = m.sym();
SymMat::iterator1 row;
for (row = p->begin1(); row != p->end1() ; ++row)
{
std::copy(row.begin(), row.end(), std::ostream_iterator<double>(outfile, " "));
outfile << std::endl;
}
}
else if (m.getNum() == 4)
{
SparseMat * p = m.sparse();
SparseMat::iterator1 row;
for (row = p->begin1(); row != p->end1() ; ++row)
{
std::copy(row.begin(), row.end(), std::ostream_iterator<double>(outfile, " "));
outfile << std::endl;
}
}
else
{
BandedMat * p = m.banded();
BandedMat::iterator1 row;
for (row = p->begin1(); row != p->end1() ; ++row)
{
std::copy(row.begin(), row.end(), std::ostream_iterator<double>(outfile, " "));
outfile << std::endl;
}
}
outfile.close();
return true;
}