Ticket #1974: vector_of_vector.patch
File vector_of_vector.patch, 2.8 KB (added by , 14 years ago) |
---|
-
vector_of_vector.hpp
141 141 data ().resize (sizeM + 1, preserve); 142 142 if (preserve) { 143 143 for (size_type i = 0; (i <= oldM) && (i < sizeM); ++ i) 144 144 boost::numeric::ublas::ref (data () [i]).resize (sizem, preserve); 145 145 for (size_type i = oldM+1; i < sizeM; ++ i) // create new vector elements 146 146 data_.insert_element (i, vector_data_value_type ()) .resize (sizem, false); 147 147 if (sizeM > oldM) { 148 148 data_.insert_element (sizeM, vector_data_value_type ()); 149 149 } else { 150 ref (data () [sizeM]).resize (0, false);150 boost::numeric::ublas::ref (data () [sizeM]).resize (0, false); 151 151 } 152 152 } else { 153 153 for (size_type i = 0; i < sizeM; ++ i) … … 298 298 true_reference insert_element (size_type i, size_type j, const_reference t) { 299 299 const size_type elementM = layout_type::index_M (i, j); 300 300 const size_type elementm = layout_type::index_m (i, j); 301 vector_data_value_type& vd (ref (data () [elementM]));301 vector_data_value_type& vd (boost::numeric::ublas::ref (data () [elementM])); 302 302 storage_invariants (); 303 303 return vd.insert_element (elementm, t); 304 304 } … … 306 306 void append_element (size_type i, size_type j, const_reference t) { 307 307 const size_type elementM = layout_type::index_M (i, j); 308 308 const size_type elementm = layout_type::index_m (i, j); 309 vector_data_value_type& vd ( ref (data () [elementM]));309 vector_data_value_type& vd (boost::numeric::ublas::ref (data () [elementM])); 310 310 storage_invariants (); 311 311 return vd.append_element (elementm, t); 312 312 } … … 323 323 const size_type sizeM = layout_type::size_M (size1_, size2_); 324 324 // FIXME should clear data () if this is done via value_type/*zero*/() then it is not size preserving 325 325 for (size_type i = 0; i < sizeM; ++ i) 326 326 boost::numeric::ublas::ref (data () [i]).clear (); 327 327 storage_invariants (); 328 328 } 329 329 … … 337 337 338 338 BOOST_UBLAS_INLINE 339 339 true_reference at_element (size_type i, size_type j) { 340 return ref (ref (data () [layout_type::index_M (i, j)]) [layout_type::index_m (i, j)]);340 return boost::numeric::ublas::ref (boost::numeric::ublas::ref (data () [layout_type::index_M (i, j)]) [layout_type::index_m (i, j)]); 341 341 } 342 342 343 343 public: