Mercurial > hg > octave-lyh
diff src/data.cc @ 3972:c21bb69ea262
[project @ 2002-07-03 18:58:51 by jwe]
author | jwe |
---|---|
date | Wed, 03 Jul 2002 18:58:51 +0000 |
parents | f9ea3dcf58ee |
children | 6476dd85a65f |
line wrap: on
line diff
--- a/src/data.cc +++ b/src/data.cc @@ -317,6 +317,9 @@ DATA_REDUCTION (cumsum); } +// XXX FIXME XXX -- we could eliminate some duplicate code here with +// some template functions or macros. + static octave_value make_diag (const Matrix& v, int k) { @@ -480,10 +483,10 @@ int nr = m.rows (); int nc = m.columns (); - if (nr == 0 || nc == 0) + if (nr == 1 || nc == 1) + retval = make_diag (m, k); + else if (nr == 0 || nc == 0) retval = Matrix (); - else if (nr == 1 || nc == 1) - retval = make_diag (m, k); else { ColumnVector d = m.diag (k); @@ -500,10 +503,10 @@ int nr = cm.rows (); int nc = cm.columns (); - if (nr == 0 || nc == 0) + if (nr == 1 || nc == 1) + retval = make_diag (cm, k); + else if (nr == 0 || nc == 0) retval = Matrix (); - else if (nr == 1 || nc == 1) - retval = make_diag (cm, k); else { ComplexColumnVector d = cm.diag (k);