source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/modules/sos/monomialgeneration.m @ 37

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

Added original make3d

File size: 1.1 KB
Line 
1function exponent_m = monomialgeneration(exponent_p,csclasses)
2%MONOMIALGENERATION  Internal function to create candidate monomials in SOS programs
3
4% Author Johan Löfberg
5% $Id: monomialgeneration.m,v 1.1 2006/03/30 13:56:54 joloef Exp $
6
7exponent_m = [];
8for i = 1:length(csclasses)
9    if isempty(exponent_p)
10        exponent_m{i,1} = zeros(1,0);
11    else
12        % Create initial set of monomials
13        mindegrees = min(exponent_p(:,csclasses{i}));
14        maxdegrees = max(exponent_p(:,csclasses{i}));
15        if any(2*floor((maxdegrees/2))>maxdegrees)
16            error('Highest degree in a variable is odd => not PSD')
17        end
18
19        % Make initial generation smarter...       
20        exponent_m_temp1 = monolistcoeff(size(csclasses{i},2),ceil(maxdegrees/2),max(ceil(sum(exponent_p,2)/2)));
21
22        [ii,jj] = sort(sum(exponent_m_temp1,2));
23        exponent_m_temp1 = exponent_m_temp1(jj,:);
24               
25        exponent_m_temp2 = zeros(size(exponent_m_temp1,1),size(exponent_p,2));
26        exponent_m_temp2(:,csclasses{i}) = exponent_m_temp1;
27        exponent_m{i,1} = exponent_m_temp2;
28    end
29end
Note: See TracBrowser for help on using the repository browser.