Hi,
I have a question about implementation of logdet().
If I pass the parbarrier option to sdpt3() directly
(by dirty tricks), the consumption time is much reduced.
Is it possible to realize the same thing without dirty tricks?
The conceptual code is given below.
And complete example files are attached as a zip file.
F=[Fi,Fe]; % Fi: inequality constraints, Fe: equality constraints
hp=1e-2;
obj_tmp=obj.dvar;
F_method=1 % 1: usual code, 2: pass parbarrier option to sdpt3()
switch F_method
case 1
for i=1:length(Fi)
obj_tmp=obj_tmp-logdet(Fi{i})*hp;
end
F=Fe;
case 2
parbarrier=cell(length(F,1));
for i=1:length(Fi)
parbarrier{i}=hp;
end
for i=1:length(Fe)
parbarrier{length(Fi)+i}=0;
end
yopts=sdpsettings(yopts,'sdpt3.parbarrier',parbarrier);
end
sol=solvesdp(F,obj_tmp,yopts);
obj.cvar=double(obj.dvar)
Thank you in advance.
Regards,
Noboru