diff src/ov-base.h @ 9812:f80c566bc751

improve unary mapper system
author Jaroslav Hajek <highegg@gmail.com>
date Thu, 12 Nov 2009 15:47:58 +0100
parents a5035bc7fbfb
children 8fa32b527d9a
line wrap: on
line diff
--- a/src/ov-base.h	Wed Nov 11 17:43:45 2009 -0800
+++ b/src/ov-base.h	Thu Nov 12 15:47:58 2009 +0100
@@ -117,6 +117,70 @@
 DEF_CLASS_TO_BTYP (bool, btyp_bool);
 DEF_CLASS_TO_BTYP (char, btyp_char);
 
+// Standard mappers.
+enum unary_mapper_t
+{
+  umap_abs,
+  umap_acos,
+  umap_acosh,
+  umap_angle,
+  umap_arg,
+  umap_asin,
+  umap_asinh,
+  umap_atan,
+  umap_atanh,
+  umap_ceil,
+  umap_conj,
+  umap_cos,
+  umap_cosh,
+  umap_erf,
+  umap_erfc,
+  umap_exp,
+  umap_expm1,
+  umap_finite,
+  umap_fix,
+  umap_floor,
+  umap_gamma,
+  umap_imag,
+  umap_isinf,
+  umap_isna,
+  umap_isnan,
+  umap_lgamma,
+  umap_log,
+  umap_log2,
+  umap_log10,
+  umap_log1p,
+  umap_real,
+  umap_round,
+  umap_roundb,
+  umap_signum,
+  umap_sin,
+  umap_sinh,
+  umap_sqrt,
+  umap_tan,
+  umap_tanh,
+  umap_isalnum,
+  umap_isalpha,
+  umap_isascii,
+  umap_iscntrl,
+  umap_isdigit,
+  umap_isgraph,
+  umap_islower,
+  umap_isprint,
+  umap_ispunct,
+  umap_isspace,
+  umap_isupper,
+  umap_isxdigit,
+  umap_toascii,
+  umap_tolower,
+  umap_toupper,
+  umap_unknown,
+  num_unary_mappers = umap_unknown
+};
+
+extern OCTINTERP_API
+const char *get_umap_name (unary_mapper_t);
+
 // T_ID is the type id of struct objects, set by register_type().
 // T_NAME is the type name of struct objects.
 
@@ -632,64 +696,7 @@
 
   virtual void dump (std::ostream& os) const;
 
-  virtual octave_value abs (void) const;
-  virtual octave_value acos (void) const;
-  virtual octave_value acosh (void) const;
-  virtual octave_value angle (void) const;
-  virtual octave_value arg (void) const;
-  virtual octave_value asin (void) const;
-  virtual octave_value asinh (void) const;
-  virtual octave_value atan (void) const;
-  virtual octave_value atanh (void) const;
-  virtual octave_value ceil (void) const;
-  virtual octave_value conj (void) const;
-  virtual octave_value cos (void) const;
-  virtual octave_value cosh (void) const;
-  virtual octave_value erf (void) const;
-  virtual octave_value erfc (void) const;
-  virtual octave_value exp (void) const;
-  virtual octave_value expm1 (void) const;
-  virtual octave_value finite (void) const;
-  virtual octave_value fix (void) const;
-  virtual octave_value floor (void) const;
-  virtual octave_value gamma (void) const;
-  virtual octave_value imag (void) const;
-  virtual octave_value isinf (void) const;
-  virtual octave_value isna (void) const;
-  virtual octave_value isnan (void) const;
-  virtual octave_value lgamma (void) const;
-  virtual octave_value log (void) const;
-  virtual octave_value log2 (void) const;
-  virtual octave_value log10 (void) const;
-  virtual octave_value log1p (void) const;
-  virtual octave_value real (void) const;
-  virtual octave_value round (void) const;
-  virtual octave_value roundb (void) const;
-  virtual octave_value signum (void) const;
-  virtual octave_value sin (void) const;
-  virtual octave_value sinh (void) const;
-  virtual octave_value sqrt (void) const;
-  virtual octave_value tan (void) const;
-  virtual octave_value tanh (void) const;
-
-  // These functions are prefixed with X to avoid potential macro
-  // conflicts.
-
-  virtual octave_value xisalnum (void) const;
-  virtual octave_value xisalpha (void) const;
-  virtual octave_value xisascii (void) const;
-  virtual octave_value xiscntrl (void) const;
-  virtual octave_value xisdigit (void) const;
-  virtual octave_value xisgraph (void) const;
-  virtual octave_value xislower (void) const;
-  virtual octave_value xisprint (void) const;
-  virtual octave_value xispunct (void) const;
-  virtual octave_value xisspace (void) const;
-  virtual octave_value xisupper (void) const;
-  virtual octave_value xisxdigit (void) const;
-  virtual octave_value xtoascii (void) const;
-  virtual octave_value xtolower (void) const;
-  virtual octave_value xtoupper (void) const;
+  virtual octave_value map (unary_mapper_t) const;
 
 protected: