Page 1 sur 1

Overflow non détecté

Publié : ven. avr. 18, 2008 6:24 pm
par PpHd
En faisant les commandes suivantes sur un système 32 bits :

p:=(1+x^20056000+y^200003400+z^199011207+t^2040988405)^10;
c:=symb2poly(p,[x,y,z,t]);

J'obtiens des :
}+%%%{210,[0,0,0,-425980972]%%%}+%%%{210,[0,0,0,-638971458]%%%}+%%%{45,[0,0,0,-851961944]%%%}+%%%{1,[0,0,0,-1064952430]%%

ie des exposants négatifs.

C'est surement à cause d'overflow non détecté. Il serait mieux de renvoyer une erreur, je pense.

Publié : sam. avr. 19, 2008 1:22 pm
par parisse
oui, les exposants sont stockes sur des entiers signés 32 bits, et pour l'instant il n'y a aucun code détectant les overflow. En pratique, il ne faut pas considérer ces expressions comme des polynomes, ca donnerait des calculs trop gros.