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

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

Added original make3d

File size: 2.1 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                elseif nonlinear(i)
38                    variables = find(interfacedata.monomtable(i,:));
39                else
40                    variables = i;;
41                end
42                cJacobian(j,find(ismembc(linear,variables))) = 1;
43            end           
44       % else
45           
46       % end
47    end
48    [Nbegcol,Nlencol,Nrowndx] = lindosparse(cJacobian);
49else
50    cJacobian = [];
51    Nbegcol = [];
52    Nrowndx = [];
53    Nlencol = [];
54    Nbegcol = [Nbegcol sum(Nlencol)];
55end
56oJacobian = double(oJacobian | any(interfacedata.Q(linear,linear),2));
57
58Nobjndx = find(oJacobian) - 1;
59Nobjcnt = length(Nobjndx);
60if  isempty(Nobjndx)
61    Nobjndx = [];
62end
63
64
Note: See TracBrowser for help on using the repository browser.