diff src/ov-cx-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 280fae940bb0
line wrap: on
line diff
--- a/src/ov-cx-mat.cc	Sun Feb 01 20:40:10 2009 +0100
+++ b/src/ov-cx-mat.cc	Mon Feb 02 15:35:32 2009 +0100
@@ -850,12 +850,36 @@
       } \
   }
 
+// The fast mappers.
+octave_value
+octave_complex_matrix::abs (void) const
+{
+  return matrix.abs ();
+}
+
+octave_value
+octave_complex_matrix::real (void) const
+{
+  return ::real (matrix);
+}
+
+octave_value
+octave_complex_matrix::conj (void) const
+{
+  return ::conj (matrix);
+}
+
+octave_value
+octave_complex_matrix::imag (void) const
+{
+  return ::imag (matrix);
+}
+
 DARRAY_MAPPER (erf, NDArray::dmapper, ::erf)
 DARRAY_MAPPER (erfc, NDArray::dmapper, ::erfc)
 DARRAY_MAPPER (gamma, NDArray::dmapper, xgamma)
 CD_ARRAY_MAPPER (lgamma, xlgamma, xlgamma, 0.0, octave_Inf)
 
-ARRAY_MAPPER (abs, ComplexNDArray::dmapper, xabs)
 ARRAY_MAPPER (acos, ComplexNDArray::cmapper, ::acos)
 ARRAY_MAPPER (acosh, ComplexNDArray::cmapper, ::acosh)
 ARRAY_MAPPER (angle, ComplexNDArray::dmapper, std::arg)
@@ -865,19 +889,16 @@
 ARRAY_MAPPER (atan, ComplexNDArray::cmapper, ::atan)
 ARRAY_MAPPER (atanh, ComplexNDArray::cmapper, ::atanh)
 ARRAY_MAPPER (ceil, ComplexNDArray::cmapper, ::ceil)
-ARRAY_MAPPER (conj, ComplexNDArray::cmapper, std::conj)
 ARRAY_MAPPER (cos, ComplexNDArray::cmapper, std::cos)
 ARRAY_MAPPER (cosh, ComplexNDArray::cmapper, std::cosh)
 ARRAY_MAPPER (exp, ComplexNDArray::cmapper, std::exp)
 ARRAY_MAPPER (expm1, ComplexNDArray::cmapper, ::expm1)
 ARRAY_MAPPER (fix, ComplexNDArray::cmapper, ::fix)
 ARRAY_MAPPER (floor, ComplexNDArray::cmapper, ::floor)
-ARRAY_MAPPER (imag, ComplexNDArray::dmapper, ximag)
 ARRAY_MAPPER (log, ComplexNDArray::cmapper, std::log)
 ARRAY_MAPPER (log2, ComplexNDArray::cmapper, xlog2)
 ARRAY_MAPPER (log10, ComplexNDArray::cmapper, std::log10)
 ARRAY_MAPPER (log1p, ComplexNDArray::cmapper, ::log1p)
-ARRAY_MAPPER (real, ComplexNDArray::dmapper, xreal)
 ARRAY_MAPPER (round, ComplexNDArray::cmapper, xround)
 ARRAY_MAPPER (roundb, ComplexNDArray::cmapper, xroundb)
 ARRAY_MAPPER (signum, ComplexNDArray::cmapper, ::signum)