Mercurial > hg > octave-nkf
diff src/eig.cc @ 620:8e4e7e5f307e
[project @ 1994-08-16 04:36:32 by jwe]
author | jwe |
---|---|
date | Tue, 16 Aug 1994 04:36:32 +0000 |
parents | 20fbad23ae51 |
children | fae2bd91c027 |
line wrap: on
line diff
--- a/src/eig.cc +++ b/src/eig.cc @@ -60,9 +60,8 @@ if (flag < 0) gripe_empty_arg ("eig", 0); Matrix m; - retval.resize (2); + retval(1) = m; retval(0) = m; - retval(1) = m; } else gripe_empty_arg ("eig", 1); @@ -79,34 +78,36 @@ Matrix tmp; ComplexMatrix ctmp; EIG result; - switch (arg.const_type ()) + if (arg.is_real_scalar ()) { - case tree_constant_rep::scalar_constant: tmp.resize (1, 1); tmp.elem (0, 0) = arg.double_value (); result = EIG (tmp); - break; - case tree_constant_rep::matrix_constant: + } + else if (arg.is_real_matrix ()) + { tmp = arg.matrix_value (); result = EIG (tmp); - break; - case tree_constant_rep::complex_scalar_constant: + } + else if (arg.is_complex_scalar ()) + { ctmp.resize (1, 1); ctmp.elem (0, 0) = arg.complex_value (); result = EIG (ctmp); - break; - case tree_constant_rep::complex_matrix_constant: + } + else if (arg.is_complex_matrix ()) + { ctmp = arg.complex_matrix_value (); result = EIG (ctmp); - break; - default: - panic_impossible (); - break; + } + else + { + gripe_wrong_type_arg ("eig", tmp); + return retval; } if (nargout == 0 || nargout == 1) { - retval.resize (1); retval(0) = result.eigenvalues (), 1; } else @@ -115,9 +116,8 @@ ComplexDiagMatrix d (result.eigenvalues ()); - retval.resize (2); + retval(1) = d; retval(0) = result.eigenvectors (); - retval(1) = d; } return retval;