Mercurial > hg > octave-nkf
changeset 18522:0821a51a9e1b stable
allow sparse arguments for dimensions in sparse function (bug #41535)
* sparse.cc (Fsparse): Use get_dimensions to extract dimension args.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 13 Feb 2014 11:15:58 -0500 |
parents | 9d59bc3dc12d |
children | 9fbea0c395ec 9cfba3616503 |
files | libinterp/corefcn/sparse.cc |
diffstat | 1 files changed, 6 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/sparse.cc +++ b/libinterp/corefcn/sparse.cc @@ -125,21 +125,17 @@ } else if (nargin == 2) { - octave_idx_type m = 0, n = 0; - if (args(0).is_scalar_type () && args(1).is_scalar_type ()) - { - m = args(0).idx_type_value (); - n = args(1).idx_type_value (); - } - else - error ("sparse: dimensions M,N must be scalar"); + octave_idx_type m = 0; + octave_idx_type n = 0; + + get_dimensions (args(0), args(1), "sparse", m, n); if (! error_state) { if (m >= 0 && n >= 0) retval = SparseMatrix (m, n); else - error ("sparse: dimensions M,N must be positive or zero"); + error ("sparse: dimensions must be non-negative"); } } else if (nargin >= 3) @@ -169,14 +165,7 @@ if (nargin == 5) { - if (args(3).is_scalar_type () && args(4).is_scalar_type ()) - { - m = args(3).idx_type_value (); - n = args(4).idx_type_value (); - } - else - error ("sparse: expecting scalar dimensions"); - + get_dimensions (args(3), args(4), "sparse", m, n); if (! error_state && (m < 0 || n < 0)) error ("sparse: dimensions must be non-negative");