Mercurial > hg > octave-nkf
diff liboctave/dNDArray.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/dNDArray.cc +++ b/liboctave/dNDArray.cc @@ -703,31 +703,31 @@ NDArray NDArray::cumprod (int dim) const { - MX_ND_CUMULATIVE_OP (NDArray, double, 1, *); + return do_mx_cum_op<NDArray> (*this, dim, mx_inline_cumprod); } NDArray NDArray::cumsum (int dim) const { - MX_ND_CUMULATIVE_OP (NDArray, double, 0, +); + return do_mx_cum_op<NDArray> (*this, dim, mx_inline_cumsum); } NDArray NDArray::prod (int dim) const { - MX_ND_REAL_OP_REDUCTION (*= elem (iter_idx), 1); + return do_mx_red_op<NDArray> (*this, dim, mx_inline_prod); +} + +NDArray +NDArray::sum (int dim) const +{ + return do_mx_red_op<NDArray> (*this, dim, mx_inline_sum); } NDArray NDArray::sumsq (int dim) const { - MX_ND_REAL_OP_REDUCTION (+= std::pow (elem (iter_idx), 2), 0); -} - -NDArray -NDArray::sum (int dim) const -{ - MX_ND_REAL_OP_REDUCTION (+= elem (iter_idx), 0); + return do_mx_red_op<NDArray> (*this, dim, mx_inline_sumsq); } NDArray