Mercurial > hg > octave-lyh
changeset 8526:17e0ad741fac
reshape: improve error message
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 15 Jan 2009 14:58:49 -0500 |
parents | bf6befcfa70a |
children | 6b074f37e8d7 |
files | liboctave/Array.cc liboctave/ChangeLog liboctave/Sparse.cc src/ChangeLog src/data.cc |
diffstat | 5 files changed, 23 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/Array.cc +++ b/liboctave/Array.cc @@ -442,7 +442,9 @@ if (dimensions.numel () == new_dims.numel ()) retval = Array<T> (*this, new_dims); else - (*current_liboctave_error_handler) ("reshape: size mismatch"); + (*current_liboctave_error_handler) + ("reshape: size mismatch (%s != %s)", dimensions.str (), + new_dims.str ()); } else retval = *this;
--- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,10 @@ +2009-01-15 John W. Eaton <jwe@octave.org> + + * Sparse.cc (Sparse<T>::reshape): Include mismatched dimensions in + error message. + * Array.cc (Array<T>::reshape): Likewise. + From Robert Millan <rmh@aybabtu.com>. + 2009-01-14 Jaroslav Hajek <highegg@gmail.com> * Array.h (Array<T>::rep, Array<T>::dimensions): Make protected.
--- a/liboctave/Sparse.cc +++ b/liboctave/Sparse.cc @@ -796,7 +796,9 @@ retval.xcidx(k+1) = new_nnz; } else - (*current_liboctave_error_handler) ("reshape: size mismatch"); + (*current_liboctave_error_handler) + ("reshape: size mismatch (%s != %s)", dimensions.str (), + new_dims.str ()); } else retval = *this;
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2009-01-15 John W. Eaton <jwe@octave.org> + + * data.cc (Freshape): Include mismatched dimensions in error message. + From Robert Millan <rmh@aybabtu.com>. + 2009-01-14 Jaroslav Hajek <highegg@gmail.com> * ov.cc (octave_value::maybe_economize): New method.
--- a/src/data.cc +++ b/src/data.cc @@ -4537,10 +4537,12 @@ octave_value arg = args(0); - if (new_dims.numel () == arg.numel ()) - retval = (new_dims == arg.dims ()) ? arg : arg.reshape (new_dims); + dim_vector dims = arg.dims (); + + if (new_dims.numel () == dims.numel ()) + retval = (new_dims == dims) ? arg : arg.reshape (new_dims); else - error ("reshape: size mismatch"); + error ("reshape: size mismatch (%s != %s)", dims.str (), new_dims.str ()); return retval; }