changeset 8852:86088b49a6d7

single conversions
author John W. Eaton <jwe@octave.org>
date Tue, 24 Feb 2009 04:29:55 -0500
parents d6de39523f03
children 9df4c9c94862
files src/ChangeLog src/Makefile.in src/ops.h
diffstat 3 files changed, 21 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Feb 24 09:21:28 2009 +0100
+++ b/src/ChangeLog	Tue Feb 24 04:29:55 2009 -0500
@@ -1,3 +1,10 @@
+2009-02-24  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-float-conv.cc: New file.
+	* Makefile.in (FLOAT_OP_XSRC): Add it to the list.
+	(DOUBLE_OP_XSRC): Move op-double-conv.cc here from INTTYPE_OP_XSRC.
+	* ops.h (DEFFLTCONVFN, DEFSTRFLTCONVFN): New macros.
+
 2009-02-23  John W. Eaton  <jwe@octave.org>
 
 	* ov-base-sparse.cc (octave_base_sparse<T>::print_raw):
--- a/src/Makefile.in	Tue Feb 24 09:21:28 2009 +0100
+++ b/src/Makefile.in	Tue Feb 24 04:29:55 2009 -0500
@@ -140,7 +140,7 @@
 
 TI_SRC := $(addprefix TEMPLATE-INST/, $(TI_XSRC))
 
-INTTYPE_OP_XSRC := op-int-concat.cc op-int-conv.cc op-double-conv.cc \
+INTTYPE_OP_XSRC := op-int-concat.cc op-int-conv.cc \
 	op-i8-i8.cc op-i16-i16.cc op-i32-i32.cc op-i64-i64.cc \
 	op-ui8-ui8.cc op-ui16-ui16.cc op-ui32-ui32.cc op-ui64-ui64.cc
 
@@ -151,13 +151,13 @@
 	op-sm-cs.cc op-sm-m.cc op-sm-s.cc op-sm-scm.cc op-sm-sm.cc \
 	op-s-scm.cc op-s-sm.cc
 
-DOUBLE_OP_XSRC := op-cm-cm.cc op-cm-cs.cc op-cm-m.cc \
+DOUBLE_OP_XSRC := op-double-conv.cc op-cm-cm.cc op-cm-cs.cc op-cm-m.cc \
 	op-cm-s.cc op-cs-cm.cc op-cs-cs.cc op-cs-m.cc \
 	op-cs-s.cc op-m-cm.cc \
 	op-m-cs.cc op-m-m.cc op-m-s.cc op-s-cm.cc \
 	op-s-cs.cc op-s-m.cc op-s-s.cc 
 
-FLOAT_OP_XSRC := op-fcm-fcm.cc op-fcm-fcs.cc op-fcm-fm.cc \
+FLOAT_OP_XSRC := op-float-conv.cc op-fcm-fcm.cc op-fcm-fcs.cc op-fcm-fm.cc \
 	op-fcm-fs.cc op-fcs-fcm.cc op-fcs-fcs.cc op-fcs-fm.cc \
 	op-fcs-fs.cc op-fm-fcm.cc \
 	op-fm-fcs.cc op-fm-fm.cc op-fm-fs.cc op-fs-fcm.cc \
--- a/src/ops.h	Tue Feb 24 09:21:28 2009 +0100
+++ b/src/ops.h	Tue Feb 24 04:29:55 2009 -0500
@@ -245,12 +245,23 @@
     return new octave_matrix (NDArray (v.CONCAT2(e, _value) ())); \
   }
 
+#define DEFFLTCONVFN(name, ovtfrom, e) \
+  CONVDECL (name) \
+  { \
+    CAST_CONV_ARG (const CONCAT2(octave_, ovtfrom)&); \
+ \
+    return new octave_float_matrix (FloatNDArray (v.CONCAT2(e, _value) ())); \
+  }
+
 #define DEFSTRINTCONVFN(name, tto) \
   DEFCONVFNX(name, char_matrix_str, CONCAT2(tto, _matrix), tto, char_)
 
 #define DEFSTRDBLCONVFN(name, tfrom) \
   DEFCONVFNX(name, tfrom, matrix, , char_)
 
+#define DEFSTRFLTCONVFN(name, tfrom) \
+  DEFCONVFNX(name, tfrom, float_matrix, Float, char_)
+
 #define DEFCONVFN(name, tfrom, tto) \
   DEFCONVFNX2 (name, tfrom, CONCAT2(tto, _matrix), CONCAT2(tto, _))