changeset 14067:b2e9c4b0c4f8 stable

isdefinite.m: Use any specified tolerance in deciding whether matrix is hermitian. * isdefinite.m: Use any specified tolerance in deciding whether matrix is hermitian.
author Lukas Reichlin <lukas.reichlin@gmail.com>
date Sun, 18 Dec 2011 19:15:50 -0800
parents 80bda7c4f012
children 6eeb9e8e63cf
files scripts/linear-algebra/isdefinite.m
diffstat 1 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/linear-algebra/isdefinite.m	Sun Dec 18 18:15:18 2011 -0800
+++ b/scripts/linear-algebra/isdefinite.m	Sun Dec 18 19:15:50 2011 -0800
@@ -37,16 +37,16 @@
     print_usage ();
   endif
 
-  if (! ishermitian (x))
-    error ("isdefinite: X must be a hermitian matrix");
-  endif
-
   if (! isfloat (x))
     x = double (x);
   endif
 
   if (nargin == 1)
-    tol = 100 * eps(class (x)) * norm (x, "fro");
+    tol = 100 * eps (class (x)) * norm (x, "fro");
+  endif
+
+  if (! ishermitian (x, tol))
+    error ("isdefinite: X must be a Hermitian matrix");
   endif
 
   e = tol * eye (rows (x));
@@ -64,6 +64,7 @@
 
 endfunction
 
+
 %!test
 %! A = [-1 0; 0 -1];
 %! assert (isdefinite (A), -1)
@@ -81,4 +82,6 @@
 %! assert (isdefinite (A), 0)
 
 %!error isdefinite ()
-%!error isdefinite ([1 2; 3 4])
\ No newline at end of file
+%!error isdefinite (1,2,3)
+%!error <X must be a Hermitian matrix> isdefinite ([1 2; 3 4])
+