Rev | Line | |
---|
[37] | 1 | function issym=ishermitian(X) |
---|
| 2 | %ISHERMITIAN Check if variable is Hermitian |
---|
| 3 | |
---|
| 4 | % Author Johan Löfberg |
---|
| 5 | % $Id: ishermitian.m,v 1.1 2006/08/10 18:00:20 joloef Exp $ |
---|
| 6 | |
---|
| 7 | n = X.dim(1); |
---|
| 8 | m = X.dim(2); |
---|
| 9 | issym = 0; |
---|
| 10 | if (n==m) |
---|
| 11 | |
---|
| 12 | if isequal(X.conicinfo,[1 0]) |
---|
| 13 | issym = 1; |
---|
| 14 | return |
---|
| 15 | end |
---|
| 16 | |
---|
| 17 | if isa(X.basis,'lazybasis') |
---|
| 18 | issym = 1; |
---|
| 19 | else |
---|
| 20 | |
---|
| 21 | % What are the linear indicies to the transposed matrices |
---|
| 22 | ind = reshape(reshape(1:n^2,n,n)',n^2,1); |
---|
| 23 | |
---|
| 24 | if ~isreal(X.basis) |
---|
| 25 | residual = X.basis-conj(X.basis(ind,:)); |
---|
| 26 | else |
---|
| 27 | residual = X.basis-X.basis(ind,:); |
---|
| 28 | end |
---|
| 29 | |
---|
| 30 | if nnz(residual)>0 |
---|
| 31 | issym = norm(residual,1)<1e-10; |
---|
| 32 | else |
---|
| 33 | issym = 1; |
---|
| 34 | end |
---|
| 35 | end |
---|
| 36 | end |
---|
Note: See
TracBrowser
for help on using the repository browser.