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

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

Added original make3d

File size: 1.2 KB
Line 
1function [feasible,feaslistLMI] = isfeasible(F,tol)
2
3% Author Johan Löfberg
4% $Id: isfeasible.m,v 1.4 2005/12/17 12:55:31 joloef Exp $   
5
6if nargin == 1
7    tol = 0;
8end
9feaslistLMI = checkset(F);
10feasible = all(feaslistLMI >= -tol);
11
12return
13
14% Check if solution avaliable
15currsol = evalin('caller','yalmip(''getsolution'')');
16if isempty(currsol)
17    feasible = 0;
18end
19
20nlmi = size(F.clauses,2);
21if (nlmi == 0)
22    feasible = 1;
23    feaslistLMI = [];
24    return
25end
26
27feaslistLMI = zeros(nlmi,1);
28if nlmi>0
29    for j = 1:nlmi
30        F0 = double(F.clauses{j}.data);
31        if any(isnan(F0(:)))
32            res = NaN;
33        else
34            switch F.clauses{j}.type
35                case 1
36                    res = min(eig(F0));
37                case 2
38                    res = min(min(F0));
39                case 3
40                    res = -max(max(abs(F0)));
41                case 4
42                    res = F0(1)-norm(F0(2:end));
43                case 5
44                    res = 2*F0(1)*F0(2)-norm(F0(3:end))^2
45            end
46        end
47        feaslistLMI(j) = res;
48    end
49end
50
51if nargin==1
52    if (isempty(feaslistLMI) | min(feaslistLMI)>=0)
53        feasible = 1;
54    else
55        feasible = 0;
56    end
57end
Note: See TracBrowser for help on using the repository browser.