Changeset 1381
- Timestamp:
- Jul 17, 2008, 1:14:42 AM (14 years ago)
- Location:
- trunk/yat/utility
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/yat/utility/MatrixWeighted.cc
r1380 r1381 27 27 #include "MatrixWeighted.h" 28 28 29 #include "DataIterator.h" 30 #include "Matrix.h" 31 #include "WeightIterator.h" 32 29 33 #include <cassert> 30 34 #include <vector> … … 41 45 42 46 47 MatrixWeighted::MatrixWeighted(size_t r, size_t c, double x, double w) 48 : vec_(std::vector<DataWeight>(r*c, DataWeight(x,w))), columns_(c) 49 {} 50 51 52 MatrixWeighted::MatrixWeighted(const MatrixWeighted& other) 53 : vec_(other.vec_), columns_(other.columns_) 54 {} 55 56 57 MatrixWeighted::MatrixWeighted(std::istream& is, char sep) 58 { 59 Matrix data(is, sep); 60 Matrix weight; 61 nan(data, weight); 62 columns_ = data.columns(); 63 resize(data.columns(), data.rows()); 64 // FIXME 65 //std::copy(data.begin(), data.end(), make_data_iterator(vec_.begin())); 66 //std::copy(weight.begin(), weight.end(), make_weight_iterator(vec_.begin())); 67 } 68 69 70 MatrixWeighted::iterator MatrixWeighted::begin(void) 71 { 72 return iterator(vec_.begin()); 73 } 74 75 76 MatrixWeighted::const_iterator MatrixWeighted::begin(void) const 77 { 78 return const_iterator(vec_.begin()); 79 } 80 81 82 MatrixWeighted::iterator MatrixWeighted::begin_column(size_t i) 83 { 84 return iterator(vec_.begin()+i, columns_); 85 } 86 87 88 MatrixWeighted::const_iterator MatrixWeighted::begin_column(size_t i) const 89 { 90 return const_iterator(vec_.begin()+i, columns_); 91 } 92 93 94 MatrixWeighted::iterator MatrixWeighted::begin_row(size_t i) 95 { 96 return iterator(vec_.begin()+columns_*i); 97 } 98 99 100 MatrixWeighted::const_iterator MatrixWeighted::begin_row(size_t i) const 101 { 102 return const_iterator(vec_.begin()+columns_*i); 103 } 104 105 106 size_t MatrixWeighted::columns(void) const 107 { 108 return columns_; 109 } 110 111 112 MatrixWeighted::iterator MatrixWeighted::end(void) 113 { 114 return iterator(vec_.end()); 115 } 116 117 118 MatrixWeighted::const_iterator MatrixWeighted::end(void) const 119 { 120 return const_iterator(vec_.end()); 121 } 122 123 124 MatrixWeighted::iterator MatrixWeighted::end_column(size_t i) 125 { 126 return iterator(vec_.begin()+i+vec_.size(), columns_); 127 } 128 129 130 MatrixWeighted::const_iterator MatrixWeighted::end_column(size_t i) const 131 { 132 return const_iterator(vec_.begin()+i+vec_.size(), columns_); 133 } 134 135 136 MatrixWeighted::iterator MatrixWeighted::end_row(size_t i) 137 { 138 return iterator(vec_.begin()+columns_*(i+1)); 139 } 140 141 142 MatrixWeighted::const_iterator MatrixWeighted::end_row(size_t i) const 143 { 144 return const_iterator(vec_.begin()+columns_*(i+1)); 145 } 146 147 148 void MatrixWeighted::resize(size_t rows, size_t columns) 149 { 150 columns_ = columns; 151 vec_.resize(rows*columns); 152 } 153 154 155 size_t MatrixWeighted::rows(void) const 156 { 157 if (vec_.size()) 158 return vec_.size()/columns_; 159 return 0; 160 } 161 162 163 DataWeight& MatrixWeighted::operator()(size_t row, size_t column) 164 { 165 assert(column<columns_); 166 assert(row*column < vec_.size()); 167 return vec_[row*columns_ + column]; 168 } 169 170 171 const DataWeight& MatrixWeighted::operator()(size_t row, size_t column) const 172 { 173 assert(column<columns_); 174 assert(row*column < vec_.size()); 175 return vec_[row*columns_ + column]; 176 } 177 43 178 }}} // of namespace utility, yat and thep -
trunk/yat/utility/MatrixWeighted.h
r1380 r1381 89 89 DataWeight(\a init_value, \a init_weight) 90 90 */ 91 MatrixWeighted( const size_t& r, const size_t&c, double init_value=0,92 double init_weight=1.0);91 MatrixWeighted(size_t r, size_t c, double init_value=0, 92 double init_weight=1.0); 93 93 94 94 /** … … 198 198 199 199 /** 200 \brief Transpose the matrix.201 202 \note This function may invalidate iterators.203 */204 void transpose(void);205 206 /**207 200 \brief Element access operator. 208 201
Note: See TracChangeset
for help on using the changeset viewer.