function[A,degA] = spoldiv(G,degG,C,degC) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % [A,degA]=spoldiv(G,degG,C,degC) % % % % MATLAB function spoldiv extract % % given left divisor G from any % % polynomial matrix C % % C = G . A % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % S. Pejchova, March 11th 1993 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % size of C % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [rG,cG]=polsize(G,degG); [rC,cC]=polsize(C,degC); [m,n]=size(C); [k,l]=size(G); if m ~=k if kdegE J=zeros(raE,caA-caE); E=[E J]; end end A = [A;E]; end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % setting degA % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% cA=caA/(degA+1); if degA>0 while A(:,cA*degA+1:cA*(degA+1))==zeros(rA,cA) A(:,cA*degA+1:cA*(degA+1))=[]; degA=degA-1; if degA<1,return,end end end