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

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

Added original make3d

File size: 2.0 KB
Line 
1function [Nbegcol,Nlencol,Nrowndx,Nobjcnt,Nobjndx,cJacobian] = jacSparsity(interfacedata)
2
3linear = setdiff(find(interfacedata.variabletype == 0),interfacedata.evalVariables);
4oJacobian = zeros(length(linear),1);
5variabletype = interfacedata.variabletype;
6c = interfacedata.c;
7F_struc = interfacedata.F_struc;
8m = size(interfacedata.F_struc,1);
9
10nonlinear = variabletype;
11nonlinear(interfacedata.evalVariables) = 1;
12
13for i = find(c(:)')%1:length(c)
14%    if c(i)
15        if nonlinear(i)%variabletype(i) | ismember(i,interfacedata.evalVariables)
16            if ismember(i,interfacedata.evalVariables)
17                j = find(i == interfacedata.evalVariables);
18                variables = interfacedata.evalMap{j}.variableIndex;
19            else
20                variables = find(interfacedata.monomtable(i,:));
21            end
22            oJacobian(find(ismember(linear,variables))) = 1;
23        end
24%    end
25end
26if m > 0
27    cJacobian = zeros(m,length(linear));
28    for i = 1:size(F_struc,2)-1
29        if nonlinear(i)%variabletype(i) | ismembc(i,interfacedata.evalVariables)
30            f = F_struc(:,i+1);
31            for j = find(f(:)')%1:size(F_struc,1)
32                %   if f(j)%F_struc(j,i+1)
33                %                if variabletype(i) | ismembc(i,interfacedata.evalVariables)
34                if ismembc(i,interfacedata.evalVariables)
35                    k = find(i == interfacedata.evalVariables);
36                    variables = interfacedata.evalMap{k}.variableIndex;
37                else
38                    variables = find(interfacedata.monomtable(i,:));
39                end
40                cJacobian(j,find(ismembc(linear,variables))) = 1;
41            end
42            %   end
43        end
44    end
45    [Nbegcol,Nlencol,Nrowndx] = lindosparse(cJacobian);
46else
47    cJacobian = [];
48    Nbegcol = [];
49    Nrowndx = [];
50    Nlencol = [];
51    Nbegcol = [Nbegcol sum(Nlencol)];
52end
53oJacobian = double(oJacobian | any(interfacedata.Q(linear,linear),2));
54
55Nobjndx = find(oJacobian) - 1;
56Nobjcnt = length(Nobjndx);
57if  isempty(Nobjndx)
58    Nobjndx = [];
59end
60
61
Note: See TracBrowser for help on using the repository browser.