1
# include "rheolef/asr.h"
2
# include "rheolef/csr.h"
3
using namespace rheolef;
5
// ----------------------------------------------------------------------------
6
// class member functions
7
// ----------------------------------------------------------------------------
9
asr_seq_rep<T>::asr_seq_rep(
14
: vector<row_type>(nrow),
20
asr_seq_rep<T>::asr_seq_rep(const asr_seq_rep<T>& a)
21
: vector<row_type>(a),
25
fatal_macro ("physical copy of asr");
28
asr_seq_rep<T>::asr_seq_rep(const csr_seq_rep<T>& a)
29
: vector<row_type>(a.nrow()),
37
asr_seq_rep<T>::resize (
43
vector<row_type>::resize(nrow1);
48
asr_seq_rep<T>::get (iparstream& ps)
50
// matrix market format:
53
// we suppose nrow ncol already readed
54
// and the matrix has good dimensions
56
// s >> nrow >> _ncol;
57
// vector<row_type>::resize(nrow,numeric_limits<T>::max());
63
for (size_type p = 0; p < n_entries; p++) {
73
asr_seq_rep<T>::put (oparstream& ps, size_type istart) const
76
// we suppose nrow ncol nnz already writen
77
for (size_type i = 0; i < nrow(); i++) {
78
typename row_type::const_iterator iter = operator[](i).begin();
79
typename row_type::const_iterator last = operator[](i).end();
80
while (iter != last) {
81
s << i+istart+1 << " "
82
<< (*iter).first+1 << " "
83
<< (*iter).second << endl;
91
asr_seq_rep<T>::dump (const string& name, size_type istart) const
94
sprintf (iname, "%s-%d.mtx", name.c_str(), int(parallel::process()));
95
cerr << "! file \"" << iname << "\" created." << endl << flush;
97
s << nrow() << " " << ncol() << " " << nnz() << endl;
101
// ----------------------------------------------------------------------------
102
// instanciation in library
103
// ----------------------------------------------------------------------------
104
#ifdef _RHEOLEF_HAVE_DOUBLEDOUBLE
105
template class asr_seq_rep<doubledouble>;
107
template class asr_seq_rep<double>;
108
#endif // _RHEOLEF_HAVE_DOUBLEDOUBLE