function [X,Y]=diopha(A,B,C)
%function [X,Y]=diopha(A,B,C)
%
%Risolve l'equazione diofantea:
%
% A X + B Y = C
%
%A,B,C devono essere vettori riga contenenti i coefficienti dei polinomi


n=length(A)-1; m=length(B)-1; L=length(C)-1;
if (L>=m+n)
	k=L-n;
else
	k=m-1;
end
h=n-1; p=k+h+2;
M=zeros(p,p);
for (ii=1:k+1)
	M(ii:ii+n,ii)=A';
end
for (ii=1:h+1)
	M(p-ii-m+1:p-ii+1,p-ii+1)=B';
end


%disp([p m n L k]),M


Q=zeros(p,1); Q(p-L:p)=C'; 
XX=inv(M)*Q;
X=XX(1:k+1)'; if (isempty(X)), X=0; end
Y=XX(k+2:p)'; if (isempty(Y)), Y=0; end