Mercurial > hg > octave-terminal
changeset 10152:b6b65e71049b
optimize cumsum with logicals
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Wed, 20 Jan 2010 21:14:52 +0100 |
parents | c2f1cdb59821 |
children | 2c28f9d0360f |
files | liboctave/ChangeLog liboctave/boolNDArray.cc |
diffstat | 2 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,8 @@ +2010-01-20 Jaroslav Hajek <highegg@gmail.com> + + * boolNDArray.cc (boolNDArray::cumsum): Sum directly in double to + avoid a copy. + 2010-01-20 John W. Eaton <jwe@octave.org> * dim-vector.h: Style fixes. Remove Emacs local variables block.
--- a/liboctave/boolNDArray.cc +++ b/liboctave/boolNDArray.cc @@ -72,15 +72,16 @@ NDArray boolNDArray::sum (int dim) const { - // NOTE: going via octave_idx_type is faster even though it requires a conversion. + // NOTE: going via octave_idx_type is typically faster even though it + // requires a conversion. return do_mx_red_op<Array<octave_idx_type> , bool> (*this, dim, mx_inline_count); } NDArray boolNDArray::cumsum (int dim) const { - // NOTE: going via octave_idx_type is faster even though it requires a conversion. - return do_mx_cum_op<Array<octave_idx_type> , bool> (*this, dim, mx_inline_cumcount); + // In this case, it's better to sum directly to doubles. + return do_mx_cum_op<NDArray , bool> (*this, dim, mx_inline_cumcount); } boolNDArray