Mercurial > hg > octave-nkf
diff liboctave/CDiagMatrix.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/CDiagMatrix.cc +++ b/liboctave/CDiagMatrix.cc @@ -237,21 +237,13 @@ DiagMatrix ComplexDiagMatrix::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 ()); } ComplexDiagMatrix conj (const ComplexDiagMatrix& a) { - ComplexDiagMatrix retval; - octave_idx_type a_len = a.length (); - if (a_len > 0) - retval = ComplexDiagMatrix (mx_inline_conj_dup (a.data (), a_len), - a.rows (), a.cols ()); - return retval; + return ComplexDiagMatrix (conj (a.diag ()), a.rows (), a.columns ()); } // resize is the destructive analog for this one