Mercurial > hg > octave-nkf
diff src/ov-complex.h @ 9853:8d9e4752441a
implement complex built-in logical conversions
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Mon, 23 Nov 2009 10:48:31 +0100 |
parents | f80c566bc751 |
children | b3089dba88bf |
line wrap: on
line diff
--- a/src/ov-complex.h +++ b/src/ov-complex.h @@ -34,6 +34,7 @@ #include "oct-alloc.h" #include "str-vec.h" +#include "gripes.h" #include "error.h" #include "ov-base.h" #include "ov-cx-mat.h" @@ -135,6 +136,26 @@ FloatComplexNDArray float_complex_array_value (bool = false) const; + bool bool_value (bool warn = false) const + { + if (xisnan (scalar)) + error ("invalid conversion from NaN to logical"); + else if (warn && scalar != 0.0 && scalar != 1.0) + gripe_logical_conversion (); + + return scalar != 0.0; + } + + boolNDArray bool_array_value (bool warn = false) const + { + if (xisnan (scalar)) + error ("invalid conversion from NaN to logical"); + else if (warn && scalar != 0.0 && scalar != 1.0) + gripe_logical_conversion (); + + return boolNDArray (dim_vector (1, 1), scalar != 0.0); + } + void increment (void) { scalar += 1.0; } void decrement (void) { scalar -= 1.0; }