Mercurial > octave
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) {