# HG changeset patch # User Jaroslav Hajek # Date 1272015778 -7200 # Node ID ffe28cdc6fe25e9bbcfc7d0c668832b0ceb2ccc2 # Parent 9961fc022d9dab62bb1e5b48c00865abf53f6892 fix reshape() and permute() for scalars diff -r 9961fc022d9d -r ffe28cdc6fe2 src/ChangeLog --- a/src/ChangeLog Fri Apr 23 11:23:43 2010 +0200 +++ b/src/ChangeLog Fri Apr 23 11:42:58 2010 +0200 @@ -1,3 +1,10 @@ +2010-04-23 Jaroslav Hajek + + * ov-base-scalar.h (octave_base_scalar::reshape, + octave_base_scalar::permute): Remove implementations. + * ov-base-scalar.cc (octave_base_scalar::reshape, + octave_base_scalar::permute): Provide correct implementations here. + 2010-04-23 Jaroslav Hajek * ov-bool.h (octave_bool::empty_clone): Correctly return an empty diff -r 9961fc022d9d -r ffe28cdc6fe2 src/ov-base-scalar.cc --- a/src/ov-base-scalar.cc Fri Apr 23 11:23:43 2010 +0200 +++ b/src/ov-base-scalar.cc Fri Apr 23 11:42:58 2010 +0200 @@ -101,6 +101,20 @@ } template +octave_value +octave_base_scalar::permute (const Array& vec, bool inv) const +{ + return Array (1, 1, scalar).permute (vec, inv); +} + +template +octave_value +octave_base_scalar::reshape (const dim_vector& new_dims) const +{ + return Array (1, 1, scalar).reshape (new_dims); +} + +template bool octave_base_scalar::is_true (void) const { diff -r 9961fc022d9d -r ffe28cdc6fe2 src/ov-base-scalar.h --- a/src/ov-base-scalar.h Fri Apr 23 11:23:43 2010 +0200 +++ b/src/ov-base-scalar.h Fri Apr 23 11:42:58 2010 +0200 @@ -80,11 +80,9 @@ octave_idx_type nnz (void) const { return (scalar != ST ()) ? 1 : 0; } - octave_value permute (const Array&, bool = false) const - { return scalar; } + octave_value permute (const Array&, bool = false) const; - octave_value reshape (const dim_vector& new_dims) const - { return array_value ().reshape (new_dims); } + octave_value reshape (const dim_vector& new_dims) const; size_t byte_size (void) const { return sizeof (ST); }