35 lines
1.0 KiB
Matlab
Executable File
35 lines
1.0 KiB
Matlab
Executable File
function X = real(X)
|
|
%REAL (overloaded)
|
|
|
|
X.basis = real(X.basis);
|
|
X = clean(X);
|
|
if isa(X,'sdpvar')
|
|
X.conicinfo = [0 0];
|
|
if length(X.midfactors)>0
|
|
newleftfactors = {};
|
|
newmidfactors = {};
|
|
newrightfactors = {};
|
|
for i = 1:length(X.midfactors)
|
|
ar = real(X.leftfactors{i});
|
|
ai = imag(X.leftfactors{i});
|
|
br = real(X.rightfactors{i});
|
|
bi = imag(X.rightfactors{i});
|
|
|
|
if nnz(ar)>0 & nnz(br)>0
|
|
newleftfactors{end+1} = ar;
|
|
newmidfactors{end+1} = X.midfactors{i};
|
|
newrightfactors{end+1} = br;
|
|
end
|
|
|
|
if nnz(ai)>0 & nnz(bi)>0
|
|
newleftfactors{end+1} = -ai;
|
|
newmidfactors{end+1} = X.midfactors{i};
|
|
newrightfactors{end+1} = bi;
|
|
end
|
|
|
|
end
|
|
X.leftfactors = newleftfactors;
|
|
X.midfactors = newmidfactors;
|
|
X.rightfactors = newrightfactors;
|
|
end
|
|
end |