Mercurial > hg > octave-nkf
diff liboctave/dDiagMatrix.cc @ 10363:a0728e81ed25
improve diag matrix interface & implementation
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 26 Feb 2010 11:44:38 +0100 |
parents | 07ebe522dac2 |
children | fd0a3ac60b0e |
line wrap: on
line diff
--- a/liboctave/dDiagMatrix.cc +++ b/liboctave/dDiagMatrix.cc @@ -142,32 +142,19 @@ DiagMatrix DiagMatrix::abs (void) const { - DiagMatrix retval (rows (), cols ()); - for (octave_idx_type i = 0; i < rows (); i++) - retval(i, i) = std::abs (elem (i, i)); - return retval; + return DiagMatrix (diag ().abs (), rows (), columns ()); } DiagMatrix real (const ComplexDiagMatrix& a) { - DiagMatrix retval; - octave_idx_type a_len = a.length (); - if (a_len > 0) - retval = DiagMatrix (mx_inline_real_dup (a.data (), a_len), a.rows (), - a.cols ()); - return retval; + return DiagMatrix (real (a.diag ()), a.rows (), a.cols ()); } DiagMatrix imag (const ComplexDiagMatrix& a) { - DiagMatrix retval; - octave_idx_type a_len = a.length (); - if (a_len > 0) - retval = DiagMatrix (mx_inline_imag_dup (a.data (), a_len), a.rows (), - a.cols ()); - return retval; + return DiagMatrix (imag (a.diag ()), a.rows (), a.cols ()); } Matrix