Mercurial > hg > octave-nkf
diff liboctave/fCMatrix.cc @ 8736:53b4fdeacc2e
improve reduction functions
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 13 Feb 2009 21:04:50 +0100 |
parents | a1ae2aae903e |
children | 1bd918cfb6e2 |
line wrap: on
line diff
--- a/liboctave/fCMatrix.cc +++ b/liboctave/fCMatrix.cc @@ -3298,42 +3298,31 @@ FloatComplexMatrix FloatComplexMatrix::cumprod (int dim) const { - MX_CUMULATIVE_OP (FloatComplexMatrix, FloatComplex, *=); + return do_mx_cum_op<FloatComplexMatrix> (*this, dim, mx_inline_cumprod); } FloatComplexMatrix FloatComplexMatrix::cumsum (int dim) const { - MX_CUMULATIVE_OP (FloatComplexMatrix, FloatComplex, +=); + return do_mx_cum_op<FloatComplexMatrix> (*this, dim, mx_inline_cumsum); } FloatComplexMatrix FloatComplexMatrix::prod (int dim) const { - MX_REDUCTION_OP (FloatComplexMatrix, *=, 1.0, 1.0); + return do_mx_red_op<FloatComplexMatrix> (*this, dim, mx_inline_prod); } FloatComplexMatrix FloatComplexMatrix::sum (int dim) const { - MX_REDUCTION_OP (FloatComplexMatrix, +=, 0.0, 0.0); + return do_mx_red_op<FloatComplexMatrix> (*this, dim, mx_inline_sum); } FloatComplexMatrix FloatComplexMatrix::sumsq (int dim) const { -#define ROW_EXPR \ - FloatComplex d = elem (i, j); \ - retval.elem (i, 0) += d * conj (d) - -#define COL_EXPR \ - FloatComplex d = elem (i, j); \ - retval.elem (0, j) += d * conj (d) - - MX_BASE_REDUCTION_OP (FloatComplexMatrix, ROW_EXPR, COL_EXPR, 0.0, 0.0); - -#undef ROW_EXPR -#undef COL_EXPR + return do_mx_red_op<FloatMatrix> (*this, dim, mx_inline_sumsq); } FloatMatrix FloatComplexMatrix::abs (void) const