Dynamic-Calibration/utils/YALMIP-master/extras/@logdet/logdet.m

24 lines
523 B
Mathematica
Raw Normal View History

2019-12-18 11:25:45 +00:00
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