# HG changeset patch # User jwe # Date 1086707331 0 # Node ID e227982af676da11f7b15deb005eb8d53e5dfb05 # Parent 8fd9495f5054ce0d98505789755a8d81c076447a [project @ 2004-06-08 15:08:51 by jwe] diff -r 8fd9495f5054 -r e227982af676 liboctave/ChangeLog --- a/liboctave/ChangeLog Fri Jun 04 13:29:34 2004 +0000 +++ b/liboctave/ChangeLog Tue Jun 08 15:08:51 2004 +0000 @@ -1,3 +1,9 @@ +2004-06-04 John W. Eaton + + * mx-inlines.cc (MX_ND_REDUCTION): New arg, RET_ELT_TYPE. Use + "RET_ELT_TYPE ()" rather than "false" as fill value for retval + resize op. Change all uses. + 2004-06-03 David Bateman * Array.cc (assignN): Allow magic colon for dimensions lvalue diff -r 8fd9495f5054 -r e227982af676 liboctave/mx-inlines.cc --- a/liboctave/mx-inlines.cc Fri Jun 04 13:29:34 2004 +0000 +++ b/liboctave/mx-inlines.cc Tue Jun 08 15:08:51 2004 +0000 @@ -378,7 +378,8 @@ break; \ } -#define MX_ND_REDUCTION(EVAL_EXPR, END_EXPR, VAL, ACC_DECL, RET_TYPE) \ +#define MX_ND_REDUCTION(EVAL_EXPR, END_EXPR, VAL, ACC_DECL, \ + RET_TYPE, RET_ELT_TYPE) \ \ RET_TYPE retval; \ \ @@ -456,7 +457,7 @@ int num_iter = (numel () / dim_length); \ \ /* Make sure retval has correct dimensions */ \ - retval.resize (dv, false); \ + retval.resize (dv, RET_ELT_TYPE ()); \ \ Array iter_idx (dv.length (), 0); \ \ @@ -488,14 +489,14 @@ #define MX_ND_REAL_OP_REDUCTION(ASN_EXPR, INIT_VAL) \ MX_ND_REDUCTION (acc ASN_EXPR, retval.elem (iter_idx) = acc, \ - INIT_VAL, double acc = INIT_VAL, NDArray) + INIT_VAL, double acc = INIT_VAL, NDArray, double) #define MX_ND_COMPLEX_OP_REDUCTION(ASN_EXPR, INIT_VAL) \ MX_ND_REDUCTION (acc ASN_EXPR, retval.elem (iter_idx) = acc, \ - INIT_VAL, Complex acc = INIT_VAL, ComplexNDArray) + INIT_VAL, Complex acc = INIT_VAL, ComplexNDArray, Complex) #define MX_ND_ANY_ALL_REDUCTION(EVAL_EXPR, VAL) \ - MX_ND_REDUCTION (EVAL_EXPR, , VAL, , boolNDArray) + MX_ND_REDUCTION (EVAL_EXPR, , VAL, , boolNDArray, bool) #define MX_ND_CUMULATIVE_OP(RET_TYPE, ACC_TYPE, VAL, OP) \ RET_TYPE retval; \ diff -r 8fd9495f5054 -r e227982af676 src/ov-bool-mat.h --- a/src/ov-bool-mat.h Fri Jun 04 13:29:34 2004 +0000 +++ b/src/ov-bool-mat.h Tue Jun 08 15:08:51 2004 +0000 @@ -78,8 +78,6 @@ idx_vector index_vector (void) const { return idx_vector (matrix); } - size_t byte_size (void) const { return numel () * sizeof (bool); } - bool is_bool_matrix (void) const { return true; } bool is_bool_type (void) const { return true; } diff -r 8fd9495f5054 -r e227982af676 src/ov-ch-mat.h --- a/src/ov-ch-mat.h Fri Jun 04 13:29:34 2004 +0000 +++ b/src/ov-ch-mat.h Tue Jun 08 15:08:51 2004 +0000 @@ -83,8 +83,6 @@ octave_value *clone (void) const { return new octave_char_matrix (*this); } octave_value *empty_clone (void) const { return new octave_char_matrix (); } - size_t byte_size (void) const { return numel () * sizeof (char); } - bool is_char_matrix (void) const { return true; } bool is_real_matrix (void) const { return true; } diff -r 8fd9495f5054 -r e227982af676 src/ov-cx-mat.h --- a/src/ov-cx-mat.h Fri Jun 04 13:29:34 2004 +0000 +++ b/src/ov-cx-mat.h Tue Jun 08 15:08:51 2004 +0000 @@ -85,8 +85,6 @@ void assign (const octave_value_list& idx, const NDArray& rhs); - size_t byte_size (void) const { return numel () * sizeof (Complex); } - bool is_complex_matrix (void) const { return true; } bool is_complex_type (void) const { return true; } diff -r 8fd9495f5054 -r e227982af676 src/ov-re-mat.h --- a/src/ov-re-mat.h Fri Jun 04 13:29:34 2004 +0000 +++ b/src/ov-re-mat.h Tue Jun 08 15:08:51 2004 +0000 @@ -84,8 +84,6 @@ idx_vector index_vector (void) const { return idx_vector (matrix); } - size_t byte_size (void) const { return numel () * sizeof (double); } - bool is_real_matrix (void) const { return true; } bool is_real_type (void) const { return true; } diff -r 8fd9495f5054 -r e227982af676 src/ov-streamoff.h --- a/src/ov-streamoff.h Fri Jun 04 13:29:34 2004 +0000 +++ b/src/ov-streamoff.h Tue Jun 08 15:08:51 2004 +0000 @@ -63,8 +63,6 @@ octave_value *clone (void) const { return new octave_streamoff (*this); } octave_value *empty_clone (void) const { return new octave_streamoff (); } - size_t byte_size (void) const { return numel () * sizeof (std::streamoff); } - bool is_defined (void) const { return true; } bool is_streamoff (void) const { return true; }