Mercurial > hg > octave-nkf
diff liboctave/dNDArray.cc @ 9827:c15a5ed0da58
optimize bsxfun (@power, ...)
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Wed, 18 Nov 2009 12:03:07 +0100 |
parents | f80c566bc751 |
children | 829e69ec3110 |
line wrap: on
line diff
--- a/liboctave/dNDArray.cc +++ b/liboctave/dNDArray.cc @@ -556,11 +556,7 @@ return true; } else - { - for (octave_idx_type i = 0; i < nel; i++) - if (elem (i) < 0) - return true; - } + return mx_inline_any_negative (numel (), data ()); return false; } @@ -673,6 +669,22 @@ } bool +NDArray::all_integers (void) const +{ + octave_idx_type nel = nelem (); + + for (octave_idx_type i = 0; i < nel; i++) + { + double val = elem (i); + + if (D_NINT (val) != val) + return false; + } + + return true; +} + +bool NDArray::too_large_for_float (void) const { octave_idx_type nel = nelem (); @@ -1116,6 +1128,10 @@ BSXFUN_STDOP_DEFS_MXLOOP (NDArray) BSXFUN_STDREL_DEFS_MXLOOP (NDArray) +BSXFUN_OP_DEF_MXLOOP (pow, NDArray, mx_inline_pow) +BSXFUN_OP2_DEF_MXLOOP (pow, ComplexNDArray, ComplexNDArray, + NDArray, mx_inline_pow) + /* ;;; Local Variables: *** ;;; mode: C++ ***