Mercurial > octave
changeset 25619:b3f6443f6b20
isdiag.m: Add fast path for detecting complex diagonal matrices.
* isdiag.m: Use strfind, not strcmp, to search typeinfo of input for
"diagonal matrix". Add a BIST test to check class single inputs.
author | Rik <rik@octave.org> |
---|---|
date | Fri, 13 Jul 2018 21:46:50 -0700 |
parents | d88bc4983ce7 |
children | 467729037209 |
files | scripts/linear-algebra/isdiag.m |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/linear-algebra/isdiag.m Fri Jul 13 21:39:26 2018 -0700 +++ b/scripts/linear-algebra/isdiag.m Fri Jul 13 21:46:50 2018 -0700 @@ -30,7 +30,7 @@ print_usage (); endif - if (strcmp (typeinfo (A), "diagonal matrix")) + if (strfind (typeinfo (A), "diagonal matrix")) retval = true; elseif ((isnumeric (A) || islogical (A)) && ndims (A) == 2) [i, j] = find (A); @@ -49,8 +49,9 @@ %!assert (isdiag ([1, 1]), false) %!assert (isdiag ([1; 1]), false) %!assert (isdiag (eye (10))) +%!assert (isdiag (single (eye (10)))) %!assert (isdiag (logical (eye (10)))) -%!assert (isdiag (speye (1e6))) +%!assert (isdiag (speye (1e2))) %!assert (isdiag (diag (1:10))) ## Test input validation