- Timestamp:
- Oct 24, 2008, 11:12:37 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/matrix_test.cc
r1487 r1598 231 231 m6*= unit3x3; 232 232 233 utility::Matrix m7(0,0); 234 m7.resize(1,1); 235 m7 = utility::Matrix(0,0); 236 m7.resize(0,0); 237 m7 = utility::Matrix(0,0); 238 233 239 suite.return_value(); 234 240 } -
trunk/yat/utility/Matrix.cc
r1487 r1598 49 49 50 50 Matrix::Matrix(const size_t& r, const size_t& c, double init_value) 51 : blas_result_(NULL), m_(gsl_matrix_alloc(r,c)) 52 { 53 if (!m_) 54 throw utility::GSL_error("Matrix::Matrix failed to allocate memory"); 55 all(init_value); 51 : blas_result_(NULL), m_(NULL) 52 { 53 resize(r,c,init_value); 56 54 } 57 55 … … 217 215 gsl_matrix* Matrix::create_gsl_matrix_copy(void) const 218 216 { 217 if (!m_) 218 return NULL; 219 219 gsl_matrix* m = gsl_matrix_alloc(rows(),columns()); 220 220 if (!m) … … 441 441 const Matrix& Matrix::operator=( const Matrix& other ) 442 442 { 443 assert(other.m_);444 443 if (this!=&other) { 445 if ( !m_ || (other.m_->size1!=m_->size1) || (other.m_->size2!=m_->size2) ) 446 resize(other.m_->size1,other.m_->size2); 447 if (gsl_matrix_memcpy(m_, other.gsl_matrix_p())) 448 throw utility::GSL_error("Matrix::create_gsl_matrix_copy dimension mis-match"); 444 if (rows()!=other.rows() || columns()!=other.columns()) 445 resize(other.rows(), other.columns()); 446 447 if (m_) 448 if (gsl_matrix_memcpy(m_, other.gsl_matrix_p())) { 449 std::string s="Matrix::create_gsl_matrix_copy dimension mis-match"; 450 throw utility::GSL_error(s); 451 } 449 452 } 450 453 return *this;
Note: See TracChangeset
for help on using the changeset viewer.