function [PGCD,u,v]=bezout(a,b);

% [PGCD, u, v] = bezout(a,b);
%
% Si a et b sont deux entiers relatifs avec b non nul, calcule le PGCD de |a| et |b|
% et un couple (u,v) solution de l'équation de Bézout : a*u + b*v=d
% cette routine appelle la routine div. 
% Sous MAPLE, comparer avec la routine :  
% > igcdex (a,b,'s','t'); 

x=a ;
y= abs(b) ; 
[q,r]=div(x,y);
if r==0 
    PGCD = y;
    u=0 ; 
    v=1;
else
 [d,u1,v1]=bezout(y,r);
 PGCD=d;
 u=v1;
 v=sign(b)*(u1- q*v1);
end

 


    

