Mercurial > octave
changeset 26592:c0fa4a9eef95
Ensure boolean value when checking sparse matrices for symmetry/hermiticity.
* scripts/linear-algebra/ishermitian.m, cripts/linear-algebra/issymmetric.m:
In case of sparse matrix input, return a single 1 byte boolean value, not a
25 byte sparse matrix with exactly one entry.
author | Kai T. Ohlhus <k.ohlhus@gmail.com> |
---|---|
date | Tue, 22 Jan 2019 07:06:37 +0100 |
parents | 26a3861a34b6 |
children | ec3c4f31823b |
files | scripts/linear-algebra/ishermitian.m scripts/linear-algebra/issymmetric.m |
diffstat | 2 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/linear-algebra/ishermitian.m Mon Jan 21 22:34:03 2019 -0800 +++ b/scripts/linear-algebra/ishermitian.m Tue Jan 22 07:06:37 2019 +0100 @@ -82,7 +82,7 @@ if (strcmp (skewopt, "nonskew")) if (tol == 0) ## check for exact symmetry - retval = ! any ((A != A')(:)); + retval = full (! any ((A != A')(:))); else if (islogical (A)) ## Hack to allow norm to work. Choose single to minimize memory. @@ -94,7 +94,7 @@ else ## skew-Hermitian if (tol == 0) - retval = ! any ((A != -A')(:)); + retval = full (! any ((A != -A')(:))); else if (islogical (A)) ## Hack to allow norm to work. Choose single to minimize memory. @@ -114,7 +114,7 @@ %!assert (ishermitian ([1, 2; 2, 1])) %!assert (ishermitian ([1, 2.1; 2, 1.1], 0.2)) %!assert (ishermitian ([1, -2i; 2i, 1])) -%!assert (ishermitian (speye (100))) +%!assert (ishermitian (speye (100)), true) # Return full logical value. %!assert (ishermitian (logical (eye (2)))) %!assert (! ishermitian (logical ([1 1; 0 1]))) %!assert (ishermitian (logical ([1 1; 0 1]), 0.5))
--- a/scripts/linear-algebra/issymmetric.m Mon Jan 21 22:34:03 2019 -0800 +++ b/scripts/linear-algebra/issymmetric.m Tue Jan 22 07:06:37 2019 +0100 @@ -81,7 +81,7 @@ if (strcmp (skewopt, "nonskew")) if (tol == 0) ## check for exact symmetry - retval = ! any ((A != A.')(:)); + retval = full (! any ((A != A.')(:))); else if (islogical (A)) ## Hack to allow norm to work. Choose single to minimize memory. @@ -93,7 +93,7 @@ else ## skew symmetry if (tol == 0) - retval = ! any ((A != -A.')(:)); + retval = full (! any ((A != -A.')(:))); else if (islogical (A)) ## Hack to allow norm to work. Choose single to minimize memory. @@ -113,7 +113,7 @@ %!assert (issymmetric ([1, 2; 2, 1])) %!assert (issymmetric ([1, 2.1; 2, 1.1], 0.2)) %!assert (issymmetric ([1, 2i; 2i, 1])) -%!assert (issymmetric (speye (100))) +%!assert (issymmetric (speye (100)), true) # Return full logical value. %!assert (issymmetric (logical (eye (2)))) %!assert (! issymmetric (logical ([1 1; 0 1]))) %!assert (issymmetric (logical ([1 1; 0 1]), 0.5))