# HG changeset patch # User John W. Eaton # Date 1235467795 18000 # Node ID 86088b49a6d75e91a210c5e9e4f7c31ef7a51b1f # Parent d6de39523f03250fd3ce2d0be24733580959cf56 single conversions diff -r d6de39523f03 -r 86088b49a6d7 src/ChangeLog --- 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 + + * 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 * ov-base-sparse.cc (octave_base_sparse::print_raw): diff -r d6de39523f03 -r 86088b49a6d7 src/Makefile.in --- 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 \ diff -r d6de39523f03 -r 86088b49a6d7 src/ops.h --- 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, _))