Mercurial > hg > octave-lyh
diff liboctave/Array.h @ 7503:8c32f95c2639
convert mapper functions to new format
author | David Bateman <dbateman@free.fr> |
---|---|
date | Wed, 20 Feb 2008 04:22:50 -0500 |
parents | 2467639bd8c0 |
children | 36594d5bbe13 |
line wrap: on
line diff
--- a/liboctave/Array.h +++ b/liboctave/Array.h @@ -32,8 +32,8 @@ #include "dim-vector.h" #include "lo-utils.h" - #include "oct-sort.h" +#include "quit.h" class idx_vector; @@ -549,6 +549,27 @@ Array<T> sort (octave_idx_type dim = 0, sortmode mode = ASCENDING) const; Array<T> sort (Array<octave_idx_type> &sidx, octave_idx_type dim = 0, sortmode mode = ASCENDING) const; + + template <class U, class F> + Array<U> + map (F fcn) const + { + octave_idx_type len = length (); + + const T *m = data (); + + Array<U> result (dims ()); + U *p = result.fortran_vec (); + + for (octave_idx_type i = 0; i < len; i++) + { + OCTAVE_QUIT; + + p[i] = fcn (m[i]); + } + + return result; + } }; // NOTE: these functions should be friends of the Array<T> class and