Mercurial > hg > octave-max
changeset 101:6f35b150c579
[project @ 1993-09-13 03:07:36 by jwe]
(complex_matrix_value): Make it work even if the internal
representation is really a real or complex scalar or a real matrix.
(complex_scalar_value): Make it work even if the internal
representation is really a real scalar.
author | jwe |
---|---|
date | Mon, 13 Sep 1993 03:07:36 +0000 |
parents | 197bd6c63baa |
children | c9a2dd0150af |
files | src/pt-const.cc |
diffstat | 1 files changed, 42 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/pt-const.cc +++ b/src/pt-const.cc @@ -1535,15 +1535,53 @@ Complex tree_constant_rep::complex_value (void) { - assert (type_tag == complex_scalar_constant); - return *complex_scalar; + Complex retval; + switch (type_tag) + { + case complex_scalar_constant: + retval = *complex_scalar; + break; + case scalar_constant: + retval = Complex (scalar); + break; + default: + panic_impossible (); + break; + } + return retval; } ComplexMatrix tree_constant_rep::complex_matrix_value (void) { - assert (type_tag == complex_matrix_constant); - return *complex_matrix; + ComplexMatrix retval; + switch (arg.const_type ()) + { + case scalar_constant: + { + retval.resize (1, 1); + double tmp = arg.double_value (); + retval.elem (0, 0) = Complex (tmp); + } + break; + case complex_scalar_constant: + retval.resize (1, 1); + retval.elem (0, 0) = arg.complex_value (); + break; + case matrix_constant: + { + Matrix tmp = arg.matrix_value (); + retval = ComplexMatrix (tmp); + } + break; + case complex_matrix_constant: + retval = arg.complex_matrix_value (); + break; + default: + panic_impossible (); + break; + } + return retval; } char *