diff src/ov-flt-cx-mat.cc @ 8366:8b1a2555c4e2

implement diagonal matrix objects * * *
author Jaroslav Hajek <highegg@gmail.com>
date Wed, 03 Dec 2008 13:32:57 +0100
parents 7cbe01c21986
children 25bc2d31e1bf
line wrap: on
line diff
--- a/src/ov-flt-cx-mat.cc	Wed Dec 03 20:57:27 2008 -0500
+++ b/src/ov-flt-cx-mat.cc	Wed Dec 03 13:32:57 2008 +0100
@@ -297,6 +297,19 @@
   return SparseComplexMatrix (matrix.matrix_value ());
 }
 
+octave_value
+octave_float_complex_matrix::diag (octave_idx_type k) const
+{
+  octave_value retval;
+  if (k == 0 && matrix.ndims () == 2 
+      && (matrix.rows () == 1 || matrix.columns () == 1))
+    retval = FloatComplexDiagMatrix (DiagArray2<FloatComplex> (matrix));
+  else
+    retval = octave_base_matrix<FloatComplexNDArray>::diag (k);
+
+  return retval;
+}
+
 bool 
 octave_float_complex_matrix::save_ascii (std::ostream& os)
 {