Line | |
---|
1 | function [C,D] = corrsparsity(exponent_p_monoms,options); |
---|
2 | |
---|
3 | if options.sos.csp |
---|
4 | n = size(exponent_p_monoms,2); |
---|
5 | C = zeros(n,n); |
---|
6 | for i = 1:size(exponent_p_monoms,1) |
---|
7 | [col,row] = find(exponent_p_monoms(i,:)); |
---|
8 | for j = 1:length(row) |
---|
9 | C(row(j),row(j)) = 1; |
---|
10 | for k = 2:length(row) |
---|
11 | C(row(j),row(k)) = 1; |
---|
12 | C(row(k),row(j)) = 1; |
---|
13 | end |
---|
14 | end |
---|
15 | end |
---|
16 | |
---|
17 | R = chol(C+100*eye(n)); |
---|
18 | for i = 1:size(R,1) |
---|
19 | [row,col] = find(R(i,:)); |
---|
20 | if i>1 |
---|
21 | is_in = 0; |
---|
22 | for j = 1:length(D) |
---|
23 | if all(ismember(col,D{j})) |
---|
24 | is_in = 1; |
---|
25 | end |
---|
26 | end |
---|
27 | if ~is_in |
---|
28 | D{end+1} = col; |
---|
29 | end |
---|
30 | else |
---|
31 | D{1} = col; |
---|
32 | end |
---|
33 | end |
---|
34 | if length(D)>1 & options.verbose>0 |
---|
35 | the_text = 'Detecting correlative sparsity..'; |
---|
36 | |
---|
37 | [uu,ii,oo] = unique(cellfun('prodofsize',D)); |
---|
38 | for i = 1:length(uu) |
---|
39 | n_this = length(find(oo==i)); |
---|
40 | |
---|
41 | the_text = [the_text num2str(uu(i)) '(' num2str(n_this) ')' ' ']; |
---|
42 | end |
---|
43 | disp(the_text); |
---|
44 | end |
---|
45 | else |
---|
46 | C = ones(size(exponent_p_monoms,2)); |
---|
47 | D{1} = 1:size(exponent_p_monoms,2); |
---|
48 | end |
---|
Note: See
TracBrowser
for help on using the repository browser.