function eta=verifie_ordre_gauss(c,n,points,poids)


%	verifie_ordre_gauss : vérification de l'ordre des formules Gaussiennes
%
% *********************************************************
%
%	eta=verifie_ordre_gauss(c,n,points,poids) calcule numériquement le max
%       de |I_{n,k}-int_a ^b x^k w(x)dx| pour 0<=k<=2n+1, où I_{n,k}
%       est l'intégrale approchée de x^kw(x) sur l'intervalle conventionnel (a,b) 
%
%	variables d'entrées : 
%    *  n : entier naturel.
%     * c définit la méthode : 
%            c=1 : Gauss-Legendre,
%            c=2 : Gauss-Tchebytchev,
%            c=3 : Gauss-Hermite,
%            c=4 : Gauss-Laguerre.
%     * points : tableau de taille (q+1)*(q+1) (avec n<=q) tel que 
%                pour tout l dans {0,...,q}, points(l+1,1:l+1) contient
%                les l+1 points x_i de la formule (à l+1 points)
%     * poids  : tableau de taille (n+1)*(n+1) tel que 
%                pour tout l dans {0,...,n}, poids(l+1,1:l+1) contient
%                les l+1 poids D_i de la formule (à l+1 points)
%	variable de sortie
%   *   eta= max_{0<=k<=2n+1} |I_{n,k}-int_a ^b x^k w(x)dx|
%
%   eta doit être nul.
%
% 
% ************ Fonctions auxiliaires utilisées ************
%
%  expression_part_symb
%
% *********************************************************

% Contrôles d'entrée
% nombre d'arguments
if nargin~=4
   error('nombre d''arguments de la fonction incorrect');
end
% autres tests éventuels 
if ~((c==1) | (c==2) | (c==3) | (c==4))
   error('c doit être un entier égal à 1, 2, 3 ou 4');
end
p=length(poids);
if (2*n+1>=p)
   error('n est trop grand');
end


% Corps d'algorithme.
er=0;
for k=0:2*n+1
   I=sum(poids(k+1,1:k+1).*((points(k+1,1:k+1)).^k));
   erloc=expression_part_symb(c,k)-I;
   if ~(isnumeric(erloc))
      erloc=double(vpa(erloc));
   end
   erloc=abs(erloc);
   er=max(er,erloc);
end
eta=er;