diff liboctave/CDiagMatrix.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/CDiagMatrix.h
+++ b/liboctave/CDiagMatrix.h
@@ -65,6 +65,10 @@
   ComplexDiagMatrix (const ComplexDiagMatrix& a)
     : MDiagArray2<Complex> (a) { }
 
+  template <class U>
+  ComplexDiagMatrix (const DiagArray2<U>& a) 
+    : MDiagArray2<Complex> (a) { }
+
   ComplexDiagMatrix& operator = (const ComplexDiagMatrix& a)
     {
       MDiagArray2<Complex>::operator = (a);
@@ -89,6 +93,7 @@
 
   ComplexDiagMatrix hermitian (void) const { return MDiagArray2<Complex>::hermitian (std::conj); }
   ComplexDiagMatrix transpose (void) const { return MDiagArray2<Complex>::transpose(); }
+  DiagMatrix abs (void) const; 
 
   friend ComplexDiagMatrix conj (const ComplexDiagMatrix& a);
 
@@ -107,6 +112,8 @@
   ComplexDiagMatrix inverse (int& info) const;
   ComplexDiagMatrix inverse (void) const;
 
+  bool all_elements_are_real (void) const;
+
   // diagonal matrix by diagonal matrix -> diagonal matrix operations
 
   ComplexDiagMatrix& operator += (const DiagMatrix& a);
@@ -126,6 +133,8 @@
     : MDiagArray2<Complex> (d, nr, nc) { }
 };
 
+ComplexDiagMatrix conj (const ComplexDiagMatrix& a);
+
 // diagonal matrix by diagonal matrix -> diagonal matrix operations
 
 ComplexDiagMatrix