FEI Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
base
fei_ostream_ops.cpp
Go to the documentation of this file.
1
/*--------------------------------------------------------------------*/
2
/* Copyright 2005 Sandia Corporation. */
3
/* Under the terms of Contract DE-AC04-94AL85000, there is a */
4
/* non-exclusive license for use of this work by or on behalf */
5
/* of the U.S. Government. Export of this program may require */
6
/* a license from the United States Government. */
7
/*--------------------------------------------------------------------*/
8
9
#include <
fei_macros.hpp
>
10
#include <
fei_ostream_ops.hpp
>
11
12
#include <
fei_Vector.hpp
>
13
#include <
fei_Matrix.hpp
>
14
#include <
fei_FillableMat.hpp
>
15
#include <
fei_CSRMat.hpp
>
16
#include <
fei_CSVec.hpp
>
17
18
19
FEI_OSTREAM
&
operator<<
(
FEI_OSTREAM
& os,
fei::Vector
& vec)
20
{
21
vec.
writeToStream
(os);
22
return
(os);
23
}
24
25
FEI_OSTREAM
&
operator<<
(
FEI_OSTREAM
& os,
fei::Matrix
& mat)
26
{
27
mat.
writeToStream
(os);
28
return
(os);
29
}
30
31
FEI_OSTREAM
&
operator<<
(
FEI_OSTREAM
& os,
fei::FillableMat
& mat)
32
{
33
os <<
"num rows: "
<< mat.
getNumRows
() <<
FEI_ENDL
;
34
fei::FillableMat::iterator
35
iter = mat.
begin
(), iter_end = mat.
end
();
36
37
for
(; iter!=iter_end; ++iter) {
38
int
row = iter->first;
39
const
fei::CSVec
* v = iter->second;
40
const
std::vector<int>& v_ind = v->
indices
();
41
const
std::vector<double>& v_coef = v->
coefs
();
42
os << row <<
": "
;
43
for
(
size_t
i=0; i<v_ind.size(); ++i) {
44
os <<
"("
<<v_ind[i]<<
","
<<v_coef[i]<<
") "
;
45
}
46
os <<
FEI_ENDL
;
47
}
48
49
return
(os);
50
}
51
52
FEI_OSTREAM
&
operator<<
(
FEI_OSTREAM
& os,
fei::CSVec
& vec)
53
{
54
size_t
len = vec.
size
();
55
56
os <<
" numEntries: "
<< len <<
FEI_ENDL
;
57
58
for
(
size_t
i=0; i<len; ++i) {
59
os <<
" "
<< vec.
indices
()[i]<<
": "
<<vec.
coefs
()[i] <<
FEI_ENDL
;
60
}
61
62
return
(os);
63
}
64
65
FEI_OSTREAM
&
operator<<
(
FEI_OSTREAM
& os,
fei::CSRMat
& mat)
66
{
67
os <<
"num rows: "
<< mat.
getNumRows
() <<
FEI_ENDL
;
68
69
const
std::vector<int>& rows = mat.
getGraph
().
rowNumbers
;
70
const
int
* rowoffs = &(mat.
getGraph
().rowOffsets[0]);
71
const
std::vector<int>& cols = mat.
getGraph
().
packedColumnIndices
;
72
const
double
* coefs = &(mat.
getPackedCoefs
()[0]);
73
74
for
(
size_t
i=0; i<rows.size(); ++i) {
75
int
row = rows[i];
76
77
os << row <<
": "
;
78
for
(
int
j=rowoffs[i]; j<rowoffs[i+1]; ++j) {
79
os <<
"("
<<cols[j]<<
","
<<coefs[j]<<
") "
;
80
}
81
os <<
FEI_ENDL
;
82
}
83
84
return
(os);
85
}
86
fei::CSRMat
Definition
fei_CSRMat.hpp:21
fei::CSRMat::getPackedCoefs
std::vector< double > & getPackedCoefs()
Definition
fei_CSRMat.hpp:30
fei::CSRMat::getNumRows
unsigned getNumRows() const
Definition
fei_CSRMat.hpp:33
fei::CSRMat::getGraph
SparseRowGraph & getGraph()
Definition
fei_CSRMat.hpp:27
fei::CSVec
Definition
fei_CSVec.hpp:24
fei::CSVec::indices
std::vector< int > & indices()
Definition
fei_CSVec.hpp:31
fei::CSVec::size
size_t size() const
Definition
fei_CSVec.hpp:36
fei::CSVec::coefs
std::vector< double > & coefs()
Definition
fei_CSVec.hpp:33
fei::FillableMat
Definition
fei_FillableMat.hpp:20
fei::FillableMat::getNumRows
unsigned getNumRows() const
Definition
fei_FillableMat.cpp:165
fei::FillableMat::end
iterator end()
Definition
fei_FillableMat.hpp:52
fei::FillableMat::begin
iterator begin()
Definition
fei_FillableMat.hpp:51
fei::FillableMat::iterator
feipoolmat::iterator iterator
Definition
fei_FillableMat.hpp:48
fei::Matrix
Definition
fei_Matrix.hpp:30
fei::Matrix::writeToStream
virtual int writeToStream(FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)=0
fei::SparseRowGraph::rowNumbers
std::vector< int > rowNumbers
Definition
fei_SparseRowGraph.hpp:46
fei::SparseRowGraph::packedColumnIndices
std::vector< int > packedColumnIndices
Definition
fei_SparseRowGraph.hpp:59
fei::Vector
Definition
fei_Vector.hpp:57
fei::Vector::writeToStream
virtual int writeToStream(FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)=0
fei_CSRMat.hpp
fei_CSVec.hpp
fei_FillableMat.hpp
fei_Matrix.hpp
fei_Vector.hpp
FEI_OSTREAM
#define FEI_OSTREAM
Definition
fei_iosfwd.hpp:24
FEI_ENDL
#define FEI_ENDL
Definition
fei_iostream.hpp:34
fei_macros.hpp
operator<<
FEI_OSTREAM & operator<<(FEI_OSTREAM &os, fei::Vector &vec)
Definition
fei_ostream_ops.cpp:19
fei_ostream_ops.hpp
Generated by
1.17.0