function str = printsymb(m,n) global style global nstate global Xi nstate = m; %style = 'matl'; % matlab style style = 'math'; % mathematica style %style = 'papr'; % paper style ALLSEQ = list_all_ind(repmat(m,1,n)); switch style case 'math' %ALLSEQ = ALLSEQ-1; %Xi = 0; Xi = 1; case 'matl' Xi = 1; case 'papr' ALLSEQ = ALLSEQ-1; Xi = 0; end str = ''; % here we take i=1 and X_i=0, as in the paper for i=1:size(ALLSEQ,1) x = ALLSEQ(i,:); stri = p0str(x); for j=2:n-1 stri = [stri pjstr(x,j)]; end stri = [stri phstr(x)]; str = [str '+' stri]; end return function str = pjstr(x,j) global style global nstate m = nstate; t = j; i = x(j+1); j = x(j); str = Astr(i,j,t); return function str = phstr(x) global style Xi x0 = x; x0(1) = Xi; phstr0 = Fstr(x0); phstr1 = Fstr(x); if length(x>=2) astr0 = Astr(x(2),Xi ,1); astr1 = Astr(x(2),x(1),1); str = ['(' astr0 phstr0 '-' astr1 phstr1 ')']; else str = ['(' phstr0 '-' phstr1 ')']; end return function str = p0str(x) global style Xi x = x(1); xs = num2str(x); switch style case 'math' %str = ['a0[' xs ']']; str = ['a' xs ' ']; if x==Xi+1 str = '1'; else str = '0'; end case 'matl' str = ['C(' xs ')']; case 'papr' str = ['P_0(' xs ')']; end return function str = Astr(i,j,t) global style % converts P_t(i|j) to a string is = num2str(i); js = num2str(j); ts = num2str(t); switch style case 'math' %str = ['A[' is ',' js ',' ts ']']; str = ['A' is js ts]; case 'matl' str = ['A(' is ',' js ',' ts ')']; case 'papr' str = ['P_' ts '(' is '|' js ')']; end return function str = Fstr(x) global style xstr = num2str(x); % space separated xstr = strrep(xstr,' ',''); % no separation %xstr = strrep(xstr,' ',','); %xstr=strip_double_delim(xstr,',') % comma separated %str = ['F[' xstr ']']; str = [' F' xstr ]; return