Dynamic-Calibration/utils/YALMIP-master/modules/global/compile_nonlinear_table.m

30 lines
830 B
Matlab
Executable File

function p = compile_nonlinear_table(p)
linears = find(p.variabletype == 0);
nonlinears = find(p.variabletype > 0);
bilinears = [];
for i = 1:length(nonlinears)
if p.variabletype(nonlinears(i))<3
z = find(p.monomtable(nonlinears(i),:));
if length(z)==1
bilinears = [bilinears;nonlinears(i) z z];
else
bilinears = [bilinears;nonlinears(i) z(1) z(2)];
end
end
end
nonlinears = union(nonlinears,p.evalVariables);
linears = setdiff(linears,p.evalVariables);
p.linears = linears;
p.bilinears = bilinears;
p.nonlinears = nonlinears;
Quadratics = find(p.variabletype==2);
QuadraticsList = zeros(length(p.c),2);
for i = Quadratics
vars = find(p.monomtable(i,:));
QuadraticsList(i,:) = vars(:)';
end
p.Quadratics = Quadratics;
p.QuadraticsList = QuadraticsList;