diff src/ov-cx-diag.cc @ 8834:8dd69187c4a2

specialize sqrt for diagonal matrices
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 20 Feb 2009 21:49:26 +0100
parents d95282fa0579
children eb63fbe60fab
line wrap: on
line diff
--- a/src/ov-cx-diag.cc	Fri Feb 20 15:23:47 2009 -0500
+++ b/src/ov-cx-diag.cc	Fri Feb 20 21:49:26 2009 +0100
@@ -159,6 +159,21 @@
   return ::imag (matrix);
 }
 
+octave_value
+octave_complex_diag_matrix::sqrt (void) const
+{    
+  octave_value retval;
+
+  static ComplexNDArray::cmapper csqrt = std::sqrt;
+
+  ComplexColumnVector dvec = matrix.diag ();
+  retval = ComplexDiagMatrix (dvec.map (csqrt));
+
+  retval.resize (dims ());
+
+  return retval;
+}
+
 bool 
 octave_complex_diag_matrix::save_binary (std::ostream& os, bool& save_as_floats)
 {