2 #ifndef vnl_io_sparse_matrix_hxx_ 3 #define vnl_io_sparse_matrix_hxx_ 10 #include <vsl/vsl_binary_io.h> 13 # include <vcl_msvc_warnings.h> 26 constexpr
short io_version_no = 1;
49 std::cerr <<
"I/O ERROR: vsl_b_read(vsl_b_istream&, vnl_sparse_matrix_pair<T>&)\n" 50 <<
" Unknown version number "<< ver <<
'\n';
51 is.is().clear(std::ios::badbit);
61 os<<
"Sparse matrix pair ( " << p.
first <<
',' << p.
second <<
" )\n";
72 typedef std::vector < pair_t > row;
77 constexpr
short io_version_no = 1;
82 for (
unsigned int i=0;i<
v.rows();i++)
86 for (
unsigned int j=0;j<rw.size();j++)
108 std::vector<int> indexes(row_size);
109 std::vector<T> values(row_size);
116 assert (n_rows==p.
rows());
118 for (
unsigned i=0;i<n_rows;++i)
121 indexes.resize(row_size);
122 values.resize(row_size);
124 for (
unsigned j=0;j<row_size;j++)
128 indexes[j] = q.first;
129 values[j] = q.second;
136 std::cerr <<
"I/O ERROR: vsl_b_read(vsl_b_istream&, vnl_sparse_matrix<T>&)\n" 137 <<
" Unknown version number "<< ver <<
'\n';
138 is.is().
clear(std::ios::badbit);
148 os<<
"Rows x Columns: "<<p.
rows()<<
" x "<<p.
columns()<<std::endl;
152 for (
int i=0;i<5;i++)
154 os<<
" ("<<
v.getrow() <<
','<<
v.getcolumn() <<
") value "<<
v.value()<<
'\n';
155 if (!
v.next())
break;
159 #define VNL_IO_SPARSE_MATRIX_INSTANTIATE(T) \ 160 template VNL_EXPORT void vsl_print_summary(std::ostream &, const vnl_sparse_matrix<T > &); \ 161 template VNL_EXPORT void vsl_b_read(vsl_b_istream &, vnl_sparse_matrix<T > &); \ 162 template VNL_EXPORT void vsl_b_write(vsl_b_ostream &, const vnl_sparse_matrix<T > &) 164 #endif // vnl_io_sparse_matrix_hxx_ unsigned int columns() const
Get the number of columns in the matrix.
void vsl_print_summary(std::ostream &os, vnl_bignum const &b)
Print human readable summary of object to a stream.
vnl_sparse_matrix & set_row(unsigned int r, std::vector< int > const &cols, std::vector< T > const &vals)
Set a whole row at once. Much faster. Returns *this.
void clear()
Set all elements to null.
void vsl_b_read(vsl_b_istream &is, vnl_bignum &v)
Binary load vnl_bignum from stream.
void vsl_b_write(vsl_b_ostream &os, vnl_bignum const &v)
Binary save vnl_bignum to stream.
unsigned int rows() const
Get the number of rows in the matrix.
Stores elements of sparse matrix.