source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/extras/@lmi/display.m @ 37

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

Added original make3d

File size: 3.3 KB
Line 
1function sys = display(X)
2%display           Displays a SET object.
3
4% Author Johan Löfberg
5% $Id: display.m,v 1.9 2006/09/27 13:52:09 joloef Exp $
6
7nlmi = size(X.clauses,2);
8
9if (nlmi == 0)
10    disp('empty SET')
11    return
12end
13
14lmiinfo{1} = 'Matrix inequality';
15lmiinfo{2} = 'Element-wise';
16lmiinfo{3} = 'Equality constraint';
17lmiinfo{4} = 'Second order cone constraint';
18lmiinfo{5} = 'Rotated Lorentz constraint';
19lmiinfo{7} = 'Integrality constraint';
20lmiinfo{8} = 'Binary constraint';
21lmiinfo{9} = 'KYP constraint';
22lmiinfo{10}= 'Eigenvalue constraint';
23lmiinfo{11}= 'Sum-of-square constraint';
24lmiinfo{12}= 'Logic constraint';
25lmiinfo{13}= 'Parametric declaration';
26lmiinfo{14}= 'Low-rank data declaration';
27lmiinfo{15}= 'Uncertain declaration';
28
29headers = {'ID','Constraint','Type','Tag'};
30rankVariables = yalmip('rankvariables');
31extVariables = yalmip('extvariables');
32if nlmi>0
33    for i = 1:nlmi
34       
35        data{i,1} = ['#' num2str(i)];
36        data{i,2} = X.clauses{i}.symbolic;
37        data{i,3} = lmiinfo{X.clauses{i}.type};
38        if length(getvariables(X.clauses{i}.data)) == 1
39            if any(ismember(getvariables(X.clauses{i}.data),rankVariables))
40                 data{i,3} = 'Rank constraint';
41            end
42        end
43       
44        if X.clauses{i}.type == 14
45        else
46            classification = '';
47            if any(ismembc(getvariables(X.clauses{i}.data),yalmip('intvariables')))
48                classification = [classification ',integer'];
49            end
50
51            if size(X.clauses{i},2)>1
52                classification = [classification ',logic'];               
53            end
54           
55            linearbilinearquadraticsigmonial = is(X.clauses{i}.data,'LBQS');
56            if ~linearbilinearquadraticsigmonial(1)
57                if linearbilinearquadraticsigmonial(4)
58                    classification = [classification ',sigmonial'];
59                elseif linearbilinearquadraticsigmonial(2)
60                    classification = [classification ',bilinear'];
61                elseif linearbilinearquadraticsigmonial(3)
62                    classification = [classification ',quadratic'];
63                else
64                    classification = [classification ',polynomial'];
65                end               
66            end
67           
68            data{i,4} = X.clauses{i}.handle;
69            if ~isreal(X.clauses{i}.data)               
70                classification = [classification ',complex'];
71            end
72            %if ~isempty(intersect(getvariables(X.clauses{i}.data),extVariables))
73            if any(ismembc(getvariables(X.clauses{i}.data),extVariables))
74                classification = [classification ',derived'];
75            end
76           
77            if length(classification)==0
78            else               
79                data{i,3} = [data{i,3} ' (' classification(2:end) ')'];
80            end
81
82            if ismembc(X.clauses{i}.type,[1 2 3 4 5 9])
83                data{i,3} = [data{i,3} ' ' num2str(size(X.clauses{i}.data,1)) 'x' num2str(size(X.clauses{i}.data,2))];
84            end
85        end
86
87    end
88end
89
90% If no tags, don't show...
91if length([data{:,4}])==0
92    headers = {headers{:,1:3}};
93    data = reshape({data{:,1:3}},length({data{:,1:3}})/3,3);
94end
95
96
97table('',headers,data)
98
99function x= truncstring(x,n)
100if length(x) > n
101    x = [x(1:n-3) '...'];
102end
103
104function x = fillstring(x,n)
105x = [x blanks(n-length(x))];
106
Note: See TracBrowser for help on using the repository browser.