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