source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/modules/global/reduce_bilinear_branching_variables.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 893 bytes
Line 
1function p = reduce_bilinear_branching_variables(p);
2if p.solver.lowersolver.objective.quadratic.convex
3    % Setup quadratic
4    Q_ = p.Q;
5    for i = 1:size(p.bilinears,1)
6        if p.c(p.bilinears(i,1))
7            Q_(p.bilinears(i,2),p.bilinears(i,3)) = p.c(p.bilinears(i,1))/2;
8            Q_(p.bilinears(i,2),p.bilinears(i,3)) = Q_(p.bilinears(i,3),p.bilinears(i,2))+p.c(p.bilinears(i,1))/2;
9        end
10    end
11    if nnz(Q_)>0 & all(eig(full(Q_))>-1e-12)
12        Used_in_F = find(any(p.F_struc(:,2:end),1));
13        Used_in_F = intersect(Used_in_F,p.bilinears(:,1));
14        p.branch_variables = [];
15        for i = 1:size(p.bilinears,1)
16            j = p.bilinears(i,1);
17            if ismember(j,Used_in_F)
18                p.branch_variables = [p.branch_variables p.bilinears(i,2:3)];
19            end
20        end
21        p.branch_variables = unique( p.branch_variables);
22    end
23end
Note: See TracBrowser for help on using the repository browser.