diff src/ov-str-mat.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 26d8a92644de
line wrap: on
line diff
--- a/src/ov-str-mat.h	Wed Feb 20 01:09:19 2008 -0500
+++ b/src/ov-str-mat.h	Wed Feb 20 04:22:50 2008 -0500
@@ -35,6 +35,7 @@
 #include "error.h"
 #include "oct-stream.h"
 #include "ov.h"
+#include "ov-re-mat.h"
 #include "ov-ch-mat.h"
 #include "ov-typeinfo.h"
 
@@ -127,10 +128,11 @@
   std::string string_value (bool force = false) const;
 
   octave_value sort (octave_idx_type dim = 0, sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (dim, mode), true); }
+    { return octave_value (matrix.sort (dim, mode), true); }
+
   octave_value sort (Array<octave_idx_type> &sidx, octave_idx_type dim = 0,
 		     sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (sidx, dim, mode), true); }
+    { return octave_value (matrix.sort (sidx, dim, mode), true); }
 
   bool print_as_scalar (void) const { return (rows () <= 1); }
 
@@ -156,6 +158,56 @@
 	     oct_mach_info::float_format flt_fmt) const
     { return os.write (matrix, block_size, output_type, skip, flt_fmt); }
 
+  octave_value isalnum (void) const;
+  octave_value isalpha (void) const;
+  octave_value isascii (void) const;
+  octave_value iscntrl (void) const;
+  octave_value isdigit (void) const;
+  octave_value isgraph (void) const;
+  octave_value islower (void) const;
+  octave_value isprint (void) const;
+  octave_value ispunct (void) const;
+  octave_value isspace (void) const;
+  octave_value isupper (void) const;
+  octave_value isxdigit (void) const;
+  octave_value toascii (void) const;
+  octave_value tolower (void) const;
+  octave_value toupper (void) const;
+
+#define MAT_MAPPER(MAP) \
+  octave_value MAP (void) const \
+    { \
+      octave_matrix m (array_value (true)); \
+      return m.MAP (); \
+    }
+
+  MAT_MAPPER (abs)
+  MAT_MAPPER (angle)
+  MAT_MAPPER (arg)
+  MAT_MAPPER (ceil)
+  MAT_MAPPER (conj)
+  MAT_MAPPER (fix)
+  MAT_MAPPER (floor)
+  MAT_MAPPER (imag)
+  MAT_MAPPER (real)
+  MAT_MAPPER (round)
+  MAT_MAPPER (signum)
+
+#undef MAT_MAPPER
+
+#define BOOL_MAT_MAPPER(MAP, VAL)	\
+  octave_value MAP (void) const \
+    { \
+      return boolNDArray (matrix.dims (), VAL); \
+    }
+
+  BOOL_MAT_MAPPER (finite, true)
+  BOOL_MAT_MAPPER (isinf, false)
+  BOOL_MAT_MAPPER (isna, false)
+  BOOL_MAT_MAPPER (isnan, false)
+
+#undef BOOL_MAT_MAPPER
+
 protected:
 
   octave_value do_index_op_internal (const octave_value_list& idx,
@@ -228,10 +280,11 @@
 
 
   octave_value sort (octave_idx_type dim = 0, sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (dim, mode), true, '\''); }
+    { return octave_value (matrix.sort (dim, mode), true, '\''); }
+
   octave_value sort (Array<octave_idx_type> &sidx, octave_idx_type dim = 0,
 		     sortmode mode = ASCENDING) const
-  { return octave_value (matrix.sort (sidx, dim, mode), true, '\''); }
+    { return octave_value (matrix.sort (sidx, dim, mode), true, '\''); }
 
 private: