Mercurial > hg > octave-nkf
diff liboctave/Array.cc @ 12550:ea3a4bf39048
Treat empty vector (1x0 or 0x1) as valid input to diag().
Bug #32901
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Tue, 29 Mar 2011 17:47:26 -0700 |
parents | e0e50f48df37 |
children | 73e75ff9c31b |
line wrap: on
line diff
--- a/liboctave/Array.cc +++ b/liboctave/Array.cc @@ -2447,10 +2447,11 @@ octave_idx_type nnr = dv (0); octave_idx_type nnc = dv (1); - if (nnr == 0 || nnc == 0) - ; // do nothing + if (nnr == 0 && nnc == 0) + ; // do nothing for empty matrix else if (nnr != 1 && nnc != 1) { + // Extract diag from matrix if (k > 0) nnc -= k; else if (k < 0) @@ -2482,8 +2483,9 @@ (*current_liboctave_error_handler) ("diag: requested diagonal out of range"); } - else if (nnr != 0 && nnc != 0) + else { + // Create diag matrix from vector octave_idx_type roff = 0; octave_idx_type coff = 0; if (k > 0)