function Z=tirage_losange(a,b,N)
    //genere un echantillon de tirage uniforme sur un losange centre en 0
    //a : largeur du losange
    //b : hauteur du losange
    //N : taille de l'echantillon
    
    //on utilise la methode du rejet
    //on genere des tirage uniforme dans un rectangle
    Z=[a*rand(1,N)-a/2;b*rand(1,N)-b/2];
    //on regarde quels points sont a l'exterieur du losange
    V=( (2*abs(Z(1,:))/a+2*abs(Z(2,:))/b)>1);
    //nombre de points a l'exterieur du losange
    s=sum(1*V);
    while s>0
        //on ne retire que les points a l'exterieur du losange
        Z(:,V)=[a*rand(1,s)-a/2;b*rand(1,s)-b/2];
        //on met a jour le vecteur V et s
        V(V)=( (2*abs(Z(1,V))/a+2*abs(Z(2,V))/b)>1);
        s=sum(1*V);
    end
endfunction


//
test=tirage_losange(1,2,1000);
plot2d(test(1,:),test(2,:),-1)
