Mercurial > hg > octave-lyh
diff liboctave/chNDArray.cc @ 7503:8c32f95c2639
convert mapper functions to new format
author | David Bateman <dbateman@free.fr> |
---|---|
date | Wed, 20 Feb 2008 04:22:50 -0500 |
parents | a1dbe9d80eee |
children | 36594d5bbe13 |
line wrap: on
line diff
--- a/liboctave/chNDArray.cc +++ b/liboctave/chNDArray.cc @@ -145,6 +145,60 @@ return ::compute_index (ra_idx, dimensions); } +boolNDArray +charNDArray::bmap (mapper fcn) const +{ + octave_idx_type len = length (); + const char *m = fortran_vec(); + boolNDArray result (dims ()); + bool *p = result.fortran_vec (); + + for (octave_idx_type i = 0; i < len; i++) + { + OCTAVE_QUIT; + + p[i] = bool (fcn (m[i])); + } + + return result; +} + +NDArray +charNDArray::dmap (mapper fcn) const +{ + octave_idx_type len = length (); + const char *m = fortran_vec(); + NDArray result (dims ()); + double *p = result.fortran_vec (); + + for (octave_idx_type i = 0; i < len; i++) + { + OCTAVE_QUIT; + + p[i] = fcn (m[i]); + } + + return result; +} + +charNDArray +charNDArray::smap (mapper fcn) const +{ + octave_idx_type len = length (); + const char *m = fortran_vec(); + charNDArray result (dims ()); + char *p = result.fortran_vec (); + + for (octave_idx_type i = 0; i < len; i++) + { + OCTAVE_QUIT; + + p[i] = fcn (m[i]); + } + + return result; +} + NDS_CMP_OPS(charNDArray, , char, ) NDS_BOOL_OPS(charNDArray, char, 0)