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)