diff liboctave/dDiagMatrix.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 445d27d79f4e
line wrap: on
line diff
--- a/liboctave/dDiagMatrix.h
+++ b/liboctave/dDiagMatrix.h
@@ -50,6 +50,9 @@
 
   DiagMatrix (const MDiagArray2<double>& a) : MDiagArray2<double> (a) { }
 
+  template <class U>
+  DiagMatrix (const DiagArray2<U>& a) : MDiagArray2<double> (a) { }
+
   explicit DiagMatrix (const RowVector& a) : MDiagArray2<double> (a) { }
 
   explicit DiagMatrix (const ColumnVector& a) : MDiagArray2<double> (a) { }
@@ -71,6 +74,7 @@
   DiagMatrix& fill (const RowVector& a, octave_idx_type beg);
 
   DiagMatrix transpose (void) const { return MDiagArray2<double>::transpose(); }
+  DiagMatrix abs (void) const; 
 
   friend OCTAVE_API DiagMatrix real (const ComplexDiagMatrix& a);
   friend OCTAVE_API DiagMatrix imag (const ComplexDiagMatrix& a);
@@ -103,6 +107,9 @@
   DiagMatrix (double *d, octave_idx_type nr, octave_idx_type nc) : MDiagArray2<double> (d, nr, nc) { }
 };
 
+OCTAVE_API DiagMatrix real (const ComplexDiagMatrix& a);
+OCTAVE_API DiagMatrix imag (const ComplexDiagMatrix& a);
+
 // diagonal matrix by diagonal matrix -> diagonal matrix operations
 
 DiagMatrix