24 lines
523 B
Matlab
Executable File
24 lines
523 B
Matlab
Executable File
function sys = logdet(P)
|
|
|
|
% Create an object
|
|
if isa(P,'sdpvar')
|
|
if is(P,'hermitian')
|
|
superiorto('double')
|
|
superiorto('sdpvar')
|
|
sys.P = {P};
|
|
sys.cx = [];
|
|
sys.gain = 1;
|
|
sys = class(sys,'logdet');
|
|
else
|
|
error('logdet can only be applied to Hermitian SDPVAR objects')
|
|
end
|
|
elseif isa(P,'double')
|
|
if isessentiallyhermitian(P)
|
|
sys = sum(log(abs(real(eig(P)))));
|
|
else
|
|
error('logdet can only be applied to Hermitian objects')
|
|
end
|
|
end
|
|
|
|
|