diff src/ov-flt-re-mat.cc @ 8650:a1ae2aae903e

abs,real,imag,conj: use code from mx-inlines rather than the generic map
author Jaroslav Hajek <highegg@gmail.com>
date Mon, 02 Feb 2009 15:35:32 +0100
parents f00578b495e9
children eb63fbe60fab
line wrap: on
line diff
--- a/src/ov-flt-re-mat.cc	Sun Feb 01 20:40:10 2009 +0100
+++ b/src/ov-flt-re-mat.cc	Mon Feb 02 15:35:32 2009 +0100
@@ -742,17 +742,35 @@
 	       : octave_value (matrix.map (dmap)))); \
   }
 
-static float
-xconj (float x)
+// The fast mappers.
+octave_value
+octave_float_matrix::abs (void) const
+{
+  return matrix.abs ();
+}
+
+octave_value
+octave_float_matrix::real (void) const
 {
-  return x;
+  return matrix;
+}
+
+octave_value
+octave_float_matrix::conj (void) const
+{
+  return matrix;
+}
+
+octave_value
+octave_float_matrix::imag (void) const
+{
+  return FloatNDArray (matrix.dims (), 0.0);
 }
 
 ARRAY_MAPPER (erf, FloatNDArray::dmapper, ::erff)
 ARRAY_MAPPER (erfc, FloatNDArray::dmapper, ::erfcf)
 ARRAY_MAPPER (gamma, FloatNDArray::dmapper, xgamma)
 CD_ARRAY_MAPPER (lgamma, xlgamma, xlgamma, 0.0, octave_Float_Inf)
-ARRAY_MAPPER (abs, FloatNDArray::dmapper, ::fabsf)
 ARRAY_MAPPER (acos, FloatNDArray::dmapper, ::acosf)
 CD_ARRAY_MAPPER (acosh, ::acoshf, ::acosh, 1.0, octave_Float_Inf)
 ARRAY_MAPPER (angle, FloatNDArray::dmapper, ::arg)
@@ -762,19 +780,16 @@
 ARRAY_MAPPER (atan, FloatNDArray::dmapper, ::atanf)
 CD_ARRAY_MAPPER (atanh, ::atanhf, ::atanh, -1.0, 1.0)
 ARRAY_MAPPER (ceil, FloatNDArray::dmapper, ::ceilf)
-ARRAY_MAPPER (conj, FloatNDArray::dmapper, xconj)
 ARRAY_MAPPER (cos, FloatNDArray::dmapper, ::cosf)
 ARRAY_MAPPER (cosh, FloatNDArray::dmapper, ::coshf)
 ARRAY_MAPPER (exp, FloatNDArray::dmapper, ::expf)
 ARRAY_MAPPER (expm1, FloatNDArray::dmapper, ::expm1f)
 ARRAY_MAPPER (fix, FloatNDArray::dmapper, ::fix)
 ARRAY_MAPPER (floor, FloatNDArray::dmapper, ::floorf)
-ARRAY_MAPPER (imag, FloatNDArray::dmapper, ::imag)
 CD_ARRAY_MAPPER (log, ::logf, std::log, 0.0, octave_Float_Inf)
 CD_ARRAY_MAPPER (log2, xlog2, xlog2, 0.0, octave_Float_Inf)
 CD_ARRAY_MAPPER (log10, ::log10f, std::log10, 0.0, octave_Float_Inf)
 CD_ARRAY_MAPPER (log1p, ::log1pf, ::log1pf, -1.0, octave_Float_Inf)
-ARRAY_MAPPER (real, FloatNDArray::dmapper, ::real)
 ARRAY_MAPPER (round, FloatNDArray::dmapper, xround)
 ARRAY_MAPPER (roundb, FloatNDArray::dmapper, xroundb)
 ARRAY_MAPPER (signum, FloatNDArray::dmapper, ::signum)