# HG changeset patch # User jwe # Date 1082657551 0 # Node ID e674c7111b887c32ed75e00968b16172548ef017 # Parent c69a6a16932b67869e8d4698d0abdd2a27fc32c2 [project @ 2004-04-22 18:12:31 by jwe] diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,4 +1,10 @@ -2004-04-22 John W. Eaton +2004-04-22 David Bateman + + * ov-base-scalar.h (octave_base_scalar::permute): New function. + + * ov-base-mat.cc (octave_base_matrix::is_true): Make N-d aware. + +2004-04-22 John W. Eaton * oct-stream.cc (printf_value_cache::curr_value): Now NDArray. (printf_value_cache::double_value): Extract N-d array, not Matrix. diff --git a/src/ov-base-mat.cc b/src/ov-base-mat.cc --- a/src/ov-base-mat.cc +++ b/src/ov-base-mat.cc @@ -209,20 +209,18 @@ octave_base_matrix::is_true (void) const { bool retval = false; - - if (matrix.dims () . length () == 2) + dim_vector dv = matrix.dims (); + int nel = dv.numel (); + + if (nel > 0) { - if (rows () > 0 && columns () > 0) - { - boolNDArray m = (matrix.all () . all ()); - - retval = (m.rows () == 1 && m.columns () == 1 && m(0,0)); - } + MT t1 (matrix.reshape (dim_vector (nel, 1))); + + boolNDArray t2 = t1.all (); + + retval = t2(0,0); } - else - (*current_liboctave_error_handler) - ("is_true not yet implemented for N-d Arrays"); - + return retval; } diff --git a/src/ov-base-scalar.h b/src/ov-base-scalar.h --- a/src/ov-base-scalar.h +++ b/src/ov-base-scalar.h @@ -81,6 +81,9 @@ dim_vector dims (void) const { static dim_vector dv (1, 1); return dv; } + octave_value permute (const Array& vec, bool inv = false) const + { return scalar; } + size_t byte_size (void) const { return sizeof (ST); } octave_value all (int = 0) const { return (scalar != 0.0); }