Mercurial > octave
diff src/OPERATORS/op-range.cc @ 8150:283989f2da9b
make null assignment matlab compatible
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 26 Sep 2008 11:52:01 -0400 |
parents | 82be108cc558 |
children | 9238637cb81c |
line wrap: on
line diff
--- a/src/OPERATORS/op-range.cc Thu Sep 25 13:44:51 2008 -0400 +++ b/src/OPERATORS/op-range.cc Fri Sep 26 11:52:01 2008 -0400 @@ -38,6 +38,7 @@ #include "ov-bool.h" #include "ov-bool-mat.h" #include "ov-typeinfo.h" +#include "ov-null-mat.h" #include "ops.h" // range unary ops. @@ -82,6 +83,13 @@ return new octave_float_matrix (FloatNDArray (v.array_value ())); } +CONVDECL (range_to_matrix) +{ + CAST_CONV_ARG (const octave_range&); + + return new octave_matrix (v.array_value ()); +} + void install_range_ops (void) { @@ -108,6 +116,17 @@ INSTALL_CATOP (octave_char_matrix, octave_range, chm_r); INSTALL_CONVOP (octave_range, octave_float_matrix, range_to_float_matrix); + + // FIXME: this would be unneccessary if octave_base_value::numeric_assign always tried converting + // lhs before rhs. + + INSTALL_ASSIGNCONV (octave_range, octave_null_matrix, octave_matrix); + INSTALL_ASSIGNCONV (octave_range, octave_null_str, octave_matrix); + INSTALL_ASSIGNCONV (octave_range, octave_null_sq_str, octave_matrix); + + // However, this should probably be here just in case we need it. + + INSTALL_WIDENOP (octave_range, octave_matrix, range_to_matrix); } /*