Mercurial > hg > octave-lyh
diff liboctave/dDiagMatrix.cc @ 1627:8f798f963805
[project @ 1995-11-13 14:37:05 by jwe]
author | jwe |
---|---|
date | Mon, 13 Nov 1995 14:37:10 +0000 |
parents | 33bb7975f866 |
children | 23aa282707e8 |
line wrap: on
line diff
--- a/liboctave/dDiagMatrix.cc +++ b/liboctave/dDiagMatrix.cc @@ -286,23 +286,21 @@ return DiagMatrix (); } + DiagMatrix retval (nr, nc); + info = 0; - double *tmp_data = dup (data (), len); for (int i = 0; i < len; i++) { if (elem (i, i) == 0.0) { info = -1; - copy (tmp_data, data (), len); // Restore contents. - break; + return *this; } else - { - tmp_data[i] = 1.0 / elem (i, i); - } + retval.elem (i, i) = 1.0 / elem (i, i); } - return DiagMatrix (tmp_data, nr, nc); + return retval; } // diagonal matrix by diagonal matrix -> diagonal matrix operations