Mercurial > hg > octave-lyh
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 +++ b/liboctave/fCDiagMatrix.h @@ -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