diff liboctave/fCDiagMatrix.h @ 8366:8b1a2555c4e2

implement diagonal matrix objects * * *
author Jaroslav Hajek <highegg@gmail.com>
date Wed, 03 Dec 2008 13:32:57 +0100
parents 82be108cc558
children c3f7e2549abb
line wrap: on
line diff
--- a/liboctave/fCDiagMatrix.h	Wed Dec 03 20:57:27 2008 -0500
+++ b/liboctave/fCDiagMatrix.h	Wed Dec 03 13:32:57 2008 +0100
@@ -65,6 +65,10 @@
   FloatComplexDiagMatrix (const FloatComplexDiagMatrix& a)
     : MDiagArray2<FloatComplex> (a) { }
 
+  template <class U>
+  FloatComplexDiagMatrix (const DiagArray2<U>& a) 
+    : MDiagArray2<FloatComplex> (a) { }
+
   FloatComplexDiagMatrix& operator = (const FloatComplexDiagMatrix& a)
     {
       MDiagArray2<FloatComplex>::operator = (a);
@@ -89,6 +93,7 @@
 
   FloatComplexDiagMatrix hermitian (void) const { return MDiagArray2<FloatComplex>::hermitian (std::conj); }
   FloatComplexDiagMatrix transpose (void) const { return MDiagArray2<FloatComplex>::transpose(); }
+  FloatDiagMatrix abs (void) const; 
 
   friend FloatComplexDiagMatrix conj (const FloatComplexDiagMatrix& a);
 
@@ -107,6 +112,8 @@
   FloatComplexDiagMatrix inverse (int& info) const;
   FloatComplexDiagMatrix inverse (void) const;
 
+  bool all_elements_are_real (void) const;
+
   // diagonal matrix by diagonal matrix -> diagonal matrix operations
 
   FloatComplexDiagMatrix& operator += (const FloatDiagMatrix& a);
@@ -126,6 +133,8 @@
     : MDiagArray2<FloatComplex> (d, nr, nc) { }
 };
 
+FloatComplexDiagMatrix conj (const FloatComplexDiagMatrix& a);
+
 // diagonal matrix by diagonal matrix -> diagonal matrix operations
 
 FloatComplexDiagMatrix