(Modifications de 1.35 a 1.37 dans le fichier Changes1.35-1.37)
-----------------------------------------------------------------------------
Modifications a la version 1.37.

Code: B: bug, M: modification, N: nouveau programme, D: erreur de doc.
1 a 3: de peu important a tres important

1) [B1] arith2.c: redreal() remplacer -expo(x[4]) par 31-expo(x[4]).
2) [M1] polarit1.c: factmod() ecrit une version un peu modifiee, conserve 
   l'ancienne sous le nom de factmod2() (non accessible sous GP).
3) [N] polarit1.c: ecrit et installe simplefactmod().
4) [M1] gencom.h: outbeaut() et consorts: remplace le printf("\n") par
   pariputc('\n').
5) [B1] manuel: corrige quelques erreurs de numerotation et autres.
6) [M1] elliptic.c: anell() envoie un message d'erreur quand n>49638.
7) [M1] (D. Carlisle) installe la version 2.10+ de pari.el, qui permet de
   completer des noms de commandes.
8) [B2] gen2.c: gaffect() case 14, case 9, remplacer gmod par gmodz.
9) [M1] plusieurs suppressions de parametres supplementaires inutiles.
10) [B2] arith1.c: hil() case 3, case 7: remplacer hil(x[2],y) par
   hil(x[2],y,x[1]).
11) [B3] gen2.c: gcvtop() case 19: remplacer gcvtop(x[i]) par gcvtop(x[i],p,r).
12) [B1] Quelques ajouts de parametres manquants.
13) [M1] bibli2.c: postploth() et postploth2() par souci de compatibilite,
   enleve toutes references a c2.
14) [B3] trans3.c: izeta() remplacer cgetg(prec) par cgetr(prec).
15) [B3] gen3.c: gmulxn() avant derniere ligne ajouter 2 fois le parametre
   &p2 a l'appel de gmulxn.
16) [M1] buch.c: supprime la ligne non atteinte.
17) [M2] bibli2.c: rectrbox() et rectrline() corrige pour que les parametres 
   soient relatifs au curseur, comme dans rpoint.
18) [B3] alglin1.c: concat() corrige une bug dans la concatenation 17,18 ou 
   18,17 quand les longueurs sont <=2.
19) [M3], [N] bibli2.c: ecrit rectscale() (scale() sous gp) et modifie toutes 
   les fonctions rect pour qu'elles acceptent un facteur d'echelle. Change la
   syntaxe de line et box (seulement 3 parametres maintenant).
20) [B2] alglin2.c: caradj() corrige pour que les matrices d'ordre pair donnent
   une matrice adjointe correcte.
21) [M3] gp.c, gpreadline.c et anal.c: modifie completement le systeme d'aide.
   La structure entree a maintenant un nouveau champ: long menu.
22) [B1] alglin2.c: caradj() corrige pour que les matrices de taille <=1 marchent.
23) [M2] bibli1.c: algdep2() et lindep2() modifie pour que la precision soit
   fournie en chiffres decimaux au lieu de bits.
24) [B3] gen2.c: gpuigs() n=0 case 13,case 14 remplacer varn(x) par gvar(x).
25) [M2] plot.X et plot.sun: dans ploth et ploth2 ajoute la variable prec et
   remplacer newvalue(cgetr(3)) par newvalue(cgetr(prec)). L'utilisateur doit 
   maintenant absolument passer en precision 9 si cela suffit sous peine de
   perdre du temps.
26) [M3] plot.X, plot.sun et bibli2.c: modifie les tailles et diverses choses. 
   Inverse la coordonnees y de plothraw pour etre semblable a ploth, et affiche
   les 4 valeurs extremes comme dans ploth. Idem pour les sorties postscript.
27) [M1] plot.X, plot.sun: quelques modifs esthetiques.


--------------------- Version 1.37.1 -----------------------------------

28) [M1] bibli1.c: setprecr() remplacer long m=(prec-3)/K1 par 
   long m=glbfmt[2];
29) [B3] polarit2.c: ggcd(), case 6 case 6 cas p1=0 modifie.
30) [N] base.c: ecrit et installe initalg2().
31) [B2] polarit2.c: sturm() remplacer if(dx==3) return 0 par if(dx<=4)
   return dx-3.
32) [M3] bibli2.c: somme() et produit() ont maintenant un sens quand a>b
   et donc ne renvoient plus d'erreur.
33) [M1] base.c et ailleurs: remplace tchirnhausen par tschirnhaus, et
   dans le programme lui-meme diminue la taille de la transformation
   aleatoire.
34) [M2] elliptic.c: lseriesell() modifie pour que l'on puisse utiliser des
   coefficients n>46438.
35) [B2] gen2.c: gabs() oublie ,prec dans les cas>=17.
36) [M1] modifie les noms des fichiers plot pour qu'ils terminent par .c
37) [B1] arith1.c: gener() pour m=4 doit rendre mod(3,4) et non mod(1,4).
38) [M1] oublie de mettre scale dans le manuel.
39) [B1] arith1.c: sfcont(), mettre l1=65535 si l1>65535.
40) [B1] gen2.c: gpuigs() dans le cas n=0 oublie le case 7.
41) [B1] alglin2.c: caradj() ne mettait pas la bonne variable.
42) [M2] es.c: remplace || pour impression de vvecteurs et matrices par [].
   A voir a l'usage.
43) [M1] gen3.c: gmodulo() et gmodulcp() autorise 1er argument a etre vecteur/
   matrice, ainsi que fraction.
44) [M1] introduit @ pour bell (ne marche pas sous emacs). A voir.
45) [M1] Version 2.12+ de pari.el de W. Carlisle, et unification (aussi du a
   lui) de index.tex et users.tex.
46) [B3] buch.c: Reecriture de buchreal.
47) [B3] base.c: smith() et smith2(), c++ etait mal place.
48) [M1] alglin1.c: inverseimage() accepte maintenant vecteurs et matrices
   comme deuxieme argument.
49) [M1] base.c: initalg() fournit maintenant 2 composantes supplementaires:
   l'inverse de la HNF de la base d'entiers, et la table de multiplication de 
   cette base.
50) [N] base.c: installe idealmul(), primedec(), idealmulprime(), idealval()
   ecrits par Tollis.
51) [B1] alglin2.c: caradj() cas l=1 et l=2: remplacer if(*py) par 
   if((long)py).
52) [M3] Rajoute un nouveau paragraphe au chapitre 3, specifique aux corps
   de nombres. Ceci a implique la modification de anal.c, gp.c, gpreadline.c
   et bien sur les fichiers TeX.
53) [M2] arith2.c: auxdecomp() modifie pour inclure un test carre parfait.
54) [N] base.c: installe ideallllred().
55) [N] polarit1.c: ecrit factorpadic() complet (Tollis). Ne marche pas encore
   completement.
56) [B1] arith2.c: numbdiv() dans le deuxieme for() remplacer l=2 par l=1.
57) [M1] arith2.c: rhorealnod() et redrealnod() y[4] est mis egal a x[4] au
   lieu de 0 en precision 3.
58) [B2] base.c: galois() remplace tous les roots par des rootslong.
59) [B1] bibli1.c minim() introduire une va normax pour renvoyer la norme 
   maximale en dessous de la borne demandee.
60) [N] bibli1.c: installe perf().

--------------------- Version 1.37.2 -----------------------------------

61) [B1] arith2.c: rhoreal() et redreal() remplacer le calcul de l au debut
   par   l=max(lg(x[4]),((31-expo(x[4]))>>5)+2);if(l<=2) l=3;
62) [B1] alglin2.c: kerint() ajouter if(lg(g)==1) return g;
63) [B1] alglin2.c: sqred2() changer signe en gsigne.
64) [M3] base.c: initalg() change la 5-eme composante pour renvoyer les 
   matrices M, MC et T2, et la 6-eme ne renvoie que les r1+r2 premieres 
   racines.
65) [M3] base.c: ideallllred() utilise MC.V.M ou T2 comme forme quadratiques
   plutot que l'identite.
66) [B3] gen3.c: gcvtoi() et grndtoi() : la precision rendue etait completement
   fausse (bien que du signe correct). La correction ralentit ces fonctions.
67) [M1] base.c: remplacer tous les gmodulo par des gmodulcp.
68) [M1] base.c: ideallllred(), remplacer vdir par 4^vdir (donc un simple
   gmul2n).
69) [B2] alglin1.c: detreel() remplacer av1=av par av1=avma.
70) [M2] buch.c: buchimag() et buchreal() modifie pour que l'on puisse tricher
   pour explorer plus rapidement. Le nombre de parametres de l'appel a augmente
   de 1. D'autre part dans buchreal, supprime la sortie de l'erreur et remplace
   par une verification interne.
71) [N] buch.c: ecrit et installe buchgen(), version du 11/10/92.
72) [M2] base.c: ecrit element_muli(), element_sqr() et modifie element_mul()
   et element_pow() pour accelerer. Considerablement simplifie lens() (il
   suffit de resoudre un systeme NxN et pas 2NxN).
73) [M3] base.c: rootsof1() considerablement ameliore et rend une racine 
   primitive de 1.
74) [M2] base.c et buch.c: ecrit idealmulh(), fasthnf() et ameliore idealval()
   et les diverses fonctions intervenant dans buchgen().
75) [B1] bibli1.c: minim() doit avoir u[2] renvoyer borne si flg=0.
76) [N] base.c: ecrit minideal().
77) [N] alglin1.c: ecrit deplin().
78) [B2] trans1.c: mpsc1
	remplacer 4 fois la sequence
	  setlg(p2,l4);setlg(p3,l4);setlg(p4,l4);
	par
	  if(l4<l5) { setlg(p2,l4);setlg(p3,l4);setlg(p4,l4);}
  (ajouter la variable locale l5 initialisee par l5=l2=l+1+m/32)
79) [M2] alglin1.c: rank reecrit
  (9 fois + rapide sur certaines matrices entieres)
80) [M3] buch.c: buchgen() et programmes qu'il utilise modifie plusieurs fois.
  Version du 3/12/92.
81) [B1] base.c: kerlens() modifie pour marcher avec un premier>32767.
82) [B2] trans2.c: mppsi() remplacer rtodbl(z) par rtodbl(absr(z)).
83) [B1] base.c: initalg() et initalg2() modifies pour marcher en degre 1.
84) [B3] base.c: initalg() et initalg2() modifiaient le polynome d'entree
  dans certains cas!
85) [N] base.c: ajoute le calcul de la differente et de la matrice Tr(om_iom_j)
  dans initalg, et la fonction idealinv().
86) [M1] base.c et bibli1.c: initalg(), initalg2() et polred() utiliser 
  lllgramint a la place de lllgram si r1=n.
87) [B3] base.c: kerlens() corrige a plusieurs endroits.
88) [M3] base.c: deplacer de buch.c a base.c hnfimag() et clean (renommes
  hnfmod() er cleanmod()), declares dans gencom.h, et dans idealmul() 
  remplacer hnf par hnfmod.
89) [M2] arith1.c: sfcont() case 4,5, ajouter 1 composante dans certains cas
  pour mieux reperer les approximations rationnelles.
90) [B3] mp.s (pas mp.c), mais en fait du a une utilisation exotique dans
  arith1.c: sfcont(). addsi: deplacer la mise du signe juste apres 7$.
91) [M1] base.c: transformer fasthnf() en un fasthnf modulo, et effectue
  quelques changements dans hnfmod.
92) [B1] elliptic.c: lseriesell() et anell() avaient encore quelques problemes
  pour de grands conducteurs.
93) [N] gen3.c: ajouter settype().
94) [M2] bibli1.c: modifie vecsort() pour faire des tris multiindices.
95) [M1] polarit2.c: discsr() vectorise.
96) [B1] anal.c: identifier type 5 oublie de rajouter prec.
97) [B3] genport.h: definitions de macros de subis(),subrs(),subisz(),subrsz()
    mettre des parentheses apres le signe -.


--------------------- Version 1.37.3 -----------------------------------

PASSAGE EN ANSI C. LA VERSION NON ANSI EST ARRETEE A CE STADE.

98) [B3] buch.c: dans les 3 programmes, free(mat[i]) etait incorrect car les
    pointeurs etaient perdus.
99) [B3] bibli1.c: reorder() la permutation utilisee etait l'inverse de la bonne!
    remplacer polvar[i+1]=lpolx[j];ordvar[j]=i; par
              polvar[j+1]=lpolx[i];ordvar[i]=j;
100) [M3] arith1.c: gcarreparfait() (issquare() dans GP) etendu a presque tous
    les types.
101) [M3] buch.c: buchall() incorpore la multiplication par un premier 
    supplementaire systematiquement.
102) [M1] arith1.c: binaire() etendu aux entiers longs, aux reels et aux
    vecteurs/matrices.
103) [B1] alglin2.c: jacobi() bug sur expo de 0 reel et coeffs entiers :
     remplacer if(((e=expo(x))<e1)&&(gsigne(x))) e1=e;
         par    if((e=expo(x))<e1) e1=e;
	et   e2=expo(gcoeff(a,1,2));p=1;q=2;
        par  e2= -0x800000;
104) [M1] init.c: err() uniformise les newlines.
105) [B3] buch.c: quelques variables non-initialisees.
106) [N] base.c: installe initalg0().
107) [B3] base.c: galois() case 5: parentheses mal placees dans le 
   while ((l<=6)&&..).
108) [N] alglin1.c: ecrit hnfspec(),hnffinal(),hnfadd() pour l'usage de
   buchxxx.
109) [M3] buch.c: modifications importantes des programmes buchxxx.

--------------------- Version 1.37.4 -----------------------------------

110) [B1] base.c: smith2() rendait un resultat incorrect en cas de matrice
   vide.
111) [N] base.c: ecrit idealpow() et idealpowprime().
112) [N] bibli1.c: ecrit setrand().
113) [N] base.c et buch.c: ecrit buchinit() et isprincipal().
114) [N] base.c: ecrit isideal().
115) [M1] gen3.c: gmod(x,y) accepte y de type reel/fraction.
116) [B3] buch.c: nombreuses modifications a isprincipal().
117) [M1] et [N] base.c: idealmul accepte tous ideaux, et ecrit idealmulred().
118) [B1] gen1.c: quelques modifications concernant les matrices vides.
119) [M1] base.c: modifie idealmul pour accepter ideaux fractionnaires et
   premiers.
120) [M1] base.c: modifie idealpow pour accepter ldeaux premiers.
121) [N] base.c: ecrit idealpowred().
122) [B3] buch.c: corrige une bug dans l'utilisation de largeprime dans
   buchreal.
123) [B3] bibli1.c: ecrit mymyrand() pour utilisation dans les machines a base
   de SysV.
124) [B1] buch.c et elliptic.c: quelques petites bugs corrigees.
125) [B2] trans1.c: gsqrt() case 6, change signe en gsigne et corrige le calcul
   dans le cas x[1]<0 pour que l'argument soit dans ]-pi/2,pi/2].
126) [B1] gen3.c: integ() case 11, vx==v: modifie pour accepter d'integrer des
   series de residu nul.
127) [M1] helpmessages.c: subst() modifie le message.
128) [N] base.c: ecrit ROUND 4 (Ford-Letard) et remplace les appels a ROUND 2
   par ROUND 4. Round 2 conserve dans la fonction base2().
129) [N] arith1.c: ecrit bestappr().
130) [N] alglin1.c: ecrit imagereel() (imager() dans GP), et modifie le 
   epsilon utilise dans kerreel.
131) [M3] factmod accepte maintenant p>=2^31.
132) [N] alglin2.c: ecrit conjvec().
133) [M1] bibli1.c: modifie les fonctions liees a rand() pour ne plus 
   dependre du systeme. Introduit en particulier la variable globale
   pari_randseed. La fonction C rand() ne doit donc plus etre utilisee.
134) [M1] es.c: sori(), enleve un espace inutile dans les matrices.
135) [N] gen2.c: ecrit vecmin() et vecmax().
136) [N] polarit1.c: ecrit factorpadic4() implemente par Letard , utilisant 
   ROUND 4. Cette version s'apelle factorpadic() sous GP, et l'ancienne 
   version est conservee sous le nom de factorpadic2().
137) [B3] gen1.c, gen2.c: pour les p-adiques, remplacer les y[2]=x[2] et
   semblables par y[2]=(long)copyifstack((GEN)x[2]); 
138) [M1] mp.c, genpariother.h: applique protoize a mp.c (oubli), et mettre
   stdlib dans un #ifdef __cplusplus.
139) [B3] buch.c et alglin1.c: corrige de nombreuses bugs dues a l'ajout de
   lignes dependantes dans buchxxx.
140) [M1] init.c et gencom.h: supprime les constantes C4 et CN31.
141) [M1] polarit1.c: enleve quelques variables inutilisees.

--------------------- Version 1.37.5 -----------------------------------

142) [M9] TOUT: avec l'aide de J. Kouhia, profondes modifications pour pouvoir
   compiler sur des machines 64 bits. En principe, la seule restriction 
   restante est que sizeof(long)=sizeof(pointeur sur type elementaire)=
   puissance de 2 superieure ou egale a 4. Pas encore teste.
143) [B1] alglin1.c: traite plus correctement les matrices vides a quelques
   endroits.
144) [M3] buch.c: corrige completement buchimag pour le mettre d'accord avec
   buchgen (il reste buchreal a faire).
145) [M3] buch.c: idem pour buchreal, qui donne maintenant aussi les
   generateurs.
146) [B3] alglin1.c: au passage, de nombreuses bugs corrigees dans hnfspec()
   hnffinal() et hnfadd().
147) [N] bibli1.c: ecrit getrand(). Pas fondamental mais utile pour debugger.
148) [B3] buch.c, alglin1.c: fin (definitive?) du debuggage de buchxxx:
   diverses erreurs, en particuler dans subfactorbase{imag,real}.
149) [N] bibli1.c: ecrit getstack() et gettime().
150) [M1] base.c et buch.c: ajouter une verification de longueur dans 
   idealmulprime() et quelques reductions supplementaires dans isprincipal().
151) [M1] base.c: ideallllred() autorise des vecteurs a composantes non
   entieres.
152) [N] elliptic.c: ecrit taniyama().
153) [N] gen2.c: bytesize() (taille2() en mode librairie) disponible dans GP.
154) [B1] buch.c: buchxxx() quelques bugs dues au doublement de cbach et a
   une factorbase vide.
155) [N] alglin1.c: ecrit detint().
156) [M1] elliptic.c: par souci d'homogeneite, inverse la syntaxe de powell et
   compagnie.
157) [M1] buch.c: par souci d'homogeneite, change le signe de la 3-ieme 
   composante de isprincipal.
158) [M1] elliptic.c: nombres de Tamagawa donnes dans globalred() et
   localred().
159) [N], [M1] elliptic.c: change matell en mathell, vectorise hell(), et ecrit
   bilhell().
160) [N] elliptic.c: ecrit orderell() et torsell().
161) [M1] arith2.c: change compose() en compimag() et redcomp() en redimag().
162) [M2] helpmessages.c: reecrit un certain nombre de messages.
163) [B?] mp.c: itos() ajoute un (ulong) devant HIGHBIT par securite.
164) [B3] gen2.c: gpui() remplace le test pour appel a gpuigs au debut par
    lx=lgef(n);
    if((lx==2)||((lx==3)&&((ulong)n[2]<(ulong)HIGHBIT)))
      y=gpuigs(x,itos(n),prec);
165) [M1] polarit1.c: factmod9() ajouter une erreur si va<=vf.
166) [M2] polarit2.c: polfnf() supprimer oldpolfnf() et modifie le nouveau
    pour etre compatible avec factmod9(). En particulier la variable du corps
    de nombres doit maintenant etre de priorite inferieure a celle du polynome.

--------------------- Version 1.37.6 -----------------------------------

167) [N] base.c: ecrit idealfactor(), idealadd(), idealdiv(), idealintersect().
168) [M1] base.c: hnf() autorise les coeffs rationnels, et idealval(), idealfactor()
    autorise les ideaux fractionnaires.
169) [M3] coupe base.c en base1.c et base2.c.
170) [N] base2.c: ecrit hnfhavas() (hermitehavas() dans GP).
171) [M1] anal.c: supprime l'acces de GP a idealmulprime et idealpowprime.
172) [M3] base2.c: autorise tous les types possibles dans les operations
    entre ideaux.
173) [N] base2.c: ecrit principalideal() et principalidele().
174) [N] buch.c: ecrit isunit() et modifie getfu() pour que la matrice des
    plongements log. corresponde exactement aux unites donnees.
175) [M1] buch.c: "ecrit" buchinitfu, modifie la 8-eme composante de buchinit
    et change buchgen en buchgenfu, buchgennou en buchgen.
176) [M1] buch.c: les 3 programmes, modifie l'utilisation de la 2-ieme cte de Bach
    pour que la grande factor base ne soit pas trop petite.
