comparison liboctave/Sparse.cc @ 6689:8e0444d90050

[project @ 2007-06-04 22:28:19 by dbateman]
author dbateman
date Mon, 04 Jun 2007 22:28:19 +0000
parents 9e70afeb2ebf
children 75d99621f850
comparison
equal deleted inserted replaced
6688:b26a8e0e42cd 6689:8e0444d90050
728 template <class T> 728 template <class T>
729 Sparse<T> 729 Sparse<T>
730 Sparse<T>::reshape (const dim_vector& new_dims) const 730 Sparse<T>::reshape (const dim_vector& new_dims) const
731 { 731 {
732 Sparse<T> retval; 732 Sparse<T> retval;
733 733 dim_vector dims2 = new_dims;
734 if (dimensions != new_dims) 734
735 { 735 if (dims2.length () > 2)
736 if (dimensions.numel () == new_dims.numel ()) 736 {
737 for (octave_idx_type i = 2; i < dims2.length(); i++)
738 dims2 (1) *= dims2(i);
739 dims2.resize (2);
740 }
741
742 if (dimensions != dims2)
743 {
744 if (dimensions.numel () == dims2.numel ())
737 { 745 {
738 octave_idx_type new_nnz = nnz (); 746 octave_idx_type new_nnz = nnz ();
739 octave_idx_type new_nr = new_dims (0); 747 octave_idx_type new_nr = dims2 (0);
740 octave_idx_type new_nc = new_dims (1); 748 octave_idx_type new_nc = dims2 (1);
741 octave_idx_type old_nr = rows (); 749 octave_idx_type old_nr = rows ();
742 octave_idx_type old_nc = cols (); 750 octave_idx_type old_nc = cols ();
743 retval = Sparse<T> (new_nr, new_nc, new_nnz); 751 retval = Sparse<T> (new_nr, new_nc, new_nnz);
744 752
745 octave_idx_type kk = 0; 753 octave_idx_type kk = 0;