diff -r c07f1605bc26 boost/numeric/ublas/matrix_sparse.hpp --- a/boost/numeric/ublas/matrix_sparse.hpp Wed Apr 25 08:33:42 2007 -0400 +++ b/boost/numeric/ublas/matrix_sparse.hpp Wed Apr 25 09:37:32 2007 -0400 @@ -2727,7 +2727,7 @@ namespace boost { namespace numeric { na capacity_ = restrict_capacity (non_zeros); if (preserve) { index2_data_.resize (capacity_, size_type ()); - value_data_.resize (capacity_, value_type ()); + value_data_.resize (capacity_, true); filled2_ = (std::min) (capacity_, filled2_); } else { @@ -4071,7 +4071,7 @@ namespace boost { namespace numeric { na if (preserve) { index1_data_.resize (capacity_, size_type ()); index2_data_.resize (capacity_, size_type ()); - value_data_.resize (capacity_, value_type ()); + value_data_.resize (capacity_, true); filled_ = (std::min) (capacity_, filled_); } else { diff -r c07f1605bc26 boost/numeric/ublas/vector_sparse.hpp --- a/boost/numeric/ublas/vector_sparse.hpp Wed Apr 25 08:33:42 2007 -0400 +++ b/boost/numeric/ublas/vector_sparse.hpp Wed Apr 25 09:37:32 2007 -0400 @@ -882,15 +882,15 @@ namespace boost { namespace numeric { na size_ = size; capacity_ = restrict_capacity (capacity_); if (preserve) { - index_data_. resize (capacity_, size_type ()); - value_data_. resize (capacity_, value_type ()); + index_data_. resize (capacity_, true, size_type (), true); + value_data_. resize (capacity_, true); filled_ = (std::min) (capacity_, filled_); while ((filled_ > 0) && (zero_based(index_data_[filled_ - 1]) >= size)) { --filled_; } } else { - index_data_. resize (capacity_); + index_data_. resize (capacity_, false, size_type(), true); value_data_. resize (capacity_); filled_ = 0; } @@ -902,12 +902,12 @@ namespace boost { namespace numeric { na void reserve (size_type non_zeros, bool preserve = true) { capacity_ = restrict_capacity (non_zeros); if (preserve) { - index_data_. resize (capacity_, size_type ()); - value_data_. resize (capacity_, value_type ()); + index_data_. resize (capacity_, true, size_type (), true); + value_data_. resize (capacity_, true); filled_ = (std::min) (capacity_, filled_); } else { - index_data_. resize (capacity_); + index_data_. resize (capacity_, true, size_type(), true); value_data_. resize (capacity_); filled_ = 0; } @@ -1511,15 +1511,15 @@ namespace boost { namespace numeric { na size_ = size; capacity_ = restrict_capacity (capacity_); if (preserve) { - index_data_. resize (capacity_, size_type ()); - value_data_. resize (capacity_, value_type ()); + index_data_. resize (capacity_, true, size_type(), true); + value_data_. resize (capacity_, true); filled_ = (std::min) (capacity_, filled_); while ((filled_ > 0) && (zero_based(index_data_[filled_ - 1]) >= size)) { --filled_; } } else { - index_data_. resize (capacity_); + index_data_. resize (capacity_, true, size_type(), true); value_data_. resize (capacity_); filled_ = 0; } @@ -1533,11 +1533,11 @@ namespace boost { namespace numeric { na sort (); // remove duplicate elements. capacity_ = restrict_capacity (non_zeros); if (preserve) { - index_data_. resize (capacity_, size_type ()); - value_data_. resize (capacity_, value_type ()); + index_data_. resize (capacity_, true, size_type(), true); + value_data_. resize (capacity_, true); filled_ = (std::min) (capacity_, filled_); } else { - index_data_. resize (capacity_); + index_data_. resize (capacity_, true, size_type(), true); value_data_. resize (capacity_); filled_ = 0; }