# HG changeset patch # User Lukas Reichlin # Date 1324264550 28800 # Node ID b2e9c4b0c4f8ca671db1cf687e021eaa27d46b48 # Parent 80bda7c4f01232795db4928d312600448d201d0c isdefinite.m: Use any specified tolerance in deciding whether matrix is hermitian. * isdefinite.m: Use any specified tolerance in deciding whether matrix is hermitian. diff -r 80bda7c4f012 -r b2e9c4b0c4f8 scripts/linear-algebra/isdefinite.m --- 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 isdefinite ([1 2; 3 4]) +