home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / progs / pari / pari_137 / changes1.37 < prev    next >
Text File  |  1992-05-20  |  24KB  |  430 lines

  1. (Modifications de 1.31 a 1.35 dans le fichier ~/PARISOURCES/Changes1.31-1.35)
  2. -----------------------------------------------------------------------------
  3. Modifications a la version 1.35.
  4.  
  5. Code: B: bug, M: modification, N: nouveau programme, D: erreur de doc.
  6. 1 a 3: de peu important a tres important
  7.  
  8. 1) [N] Ecrit et installe suppl() (supplement dans GP) et image().
  9. 2) [N] Ecrit et installe la factorisation dans les corps finis factmod9()
  10.    (factfq() dans GP).
  11. 3) [B1] alglin1.c: modifier les ker() pour que quand le noyau est nul le
  12.    resultat soit vide.
  13. 4) [B1] es.c: dans tous les programmes d'impression, accepter les matrices
  14.    a 0 colonnes.
  15. 5) [N] alglin1.c: ecrit un nouvel image(), et renomme l'ancien
  16.    image2().
  17. 6) [B1] es.c: comme 4, pour les vecteurs.
  18. 7) [B3] gen1.c: gmul() changer (dans ty>=10) le if() en
  19.     if(((vx>vy)&&((tx<17)||(ty<17)))||((vx==vy)&&(tx<10))||((ty>=17)&&(tx<17)))
  20.     gadd() idem changer le if() en
  21.     if(((vx>vy)&&((tx<17)||(ty<17)))||((vx==vy)&&(tx<10)))
  22.     gdiv() idem changer le if() en
  23.     if(((vx<vy)&&((tx<17)||(ty<17)))||((vx==vy)&&(ty<10))||((tx>=17)&&(ty<17)))
  24. 8) [M1] mis a jour testin et testout
  25.  
  26. ----------------------- Version 1.35.01 --------------------------
  27.  
  28. 9) [B2] polarit2.c, ggcd() reecrit completement le type 9,9, en analogie avec
  29.    le type 3, ainsi que type 9,10 en analogie avec 3,1.
  30. 10) [N] alglin1.c: ecrit et installe inverseimage().
  31. 11) [B2] polarit1.c: rootmod() et factmod(), modifie les appels a ggcd pour les
  32.    rendre compatible avec la correction 9).
  33. 12) [M1] mp.s etc...: modifie le code pour ne plus du tout utiliser a5, par
  34.    compatibilite avec le Mac.
  35. 13) [N] bibli1.c: ecrit et installe cyclo().
  36. 14) [N] bibli1.c: ecrit et installe vecsort().
  37. 15) [N] anal.c, gp.c, init.c: mis globalement infile et echo (transforme en
  38.     pariecho), ainsi qu'un buffer parireadbuffer, alloue dans gp.c. Puis
  39.     ecrit et installe read().
  40. 16) [N] anal.c: installe label() et goto() (honte a moi!), mais goto() ne
  41.     marche pas bien.
  42.  
  43. ------------------------ Version 1.35.02 ----------------------------
  44.  
  45. 17) [B2] gen2.c: dbltor() changer ex=log2(x) en ex=floor(log2(x)).
  46. 18) [B1] bibli1.c: lllgram(), apres n=lx-1 mettre:
  47.     if(n<=1) return gcopy(x).
  48. 19) [M1] arith1.c: bezout1(), (ligne 655) remplacer st=-1 par st= -1.
  49. 20) [M1] arith2.c: initprimes(), changer size=(maxnum+1)/2 en
  50.     size=(maxnum+257)>>1, et 2*(q-s) en (q-s)<<1.
  51. 21) [N] bibli1.c: ecrit et installe polymodrecip() (modreverse dans GP).
  52. 22) [N] bibli1.c: ecrit et installe polred2().
  53. 23) [N] gen3.c: ecrit et installe gtopolyrev() (polyrev dans GP).
  54. 24) [M3], [N] bibli1.c, base.c, etc...: unifie tous les base() en un seul, tous les polred,
  55.     supprime polredreal (un sturm est fait systematiquement), et ajoute smallpolred2() et
  56.     factoredpolred2().
  57. 25) [N] polarit1.c: ecrit et installe rootslong().
  58. 26) [D1] usersch3.tex: indiquer que dans binome(x,y), y doit etre un entier
  59.     du C, et dans anell(e,n) que e doit etre une equation minimale et n un
  60.     entier du C.
  61. 27) [B1] messages.c: changer factpadic en factorpadic.
  62. 28) [B1] alglin1.c: modifier concat() pour accepter des matrices vides.
  63. 29) [M1] elliptic.c: modifie initell en remplacant l'appel de roots()
  64.     par rootslong(), et installe l'ancien comme initell2() 
  65.     provisoirement.
  66.  
  67. ----------------------- Version 1.35.03 --------------------------------
  68.  
  69. 30) [B2] alglin1.c: keri() modifie, le precedent donnait tout simplement des
  70.     resultats faux.
  71. 31) [M1] usersch3.tex: divres, le reste est du signe du dividende, et non positif
  72.     ou nul comme signale.
  73. 32) [B1] gen1.c: gmul(), modifie pour traiter correctement les matrices vides,
  74. 33) [B1] polarit2.c: ggcd(), modifie pour que le pcgd d'un polynome avec l'entier 0
  75.     donne le polynome.
  76. 34) [N] base.c etc... Ecrit et installe galois() et tchirnhausen().
  77. 35) [N] bibli1.c etc... Ecrit et installe genrand() (random dans GP) et permute() 
  78.     (permutation in GP).
  79. 36) [M1] polarit2.c: modifie ggcd() et glcm() pour permettre des arguments
  80.     vecteurs/matrices.
  81. 37) [N] base.c etc... Ecrit et installe initalg().
  82. 38) [M1] gen2.c: normalize() remplace gcmp0 par isexactzero ainsi que les autres occurences
  83.     analogues dans gen1.c.
  84. 39) [B1] gen2.c: ggval() apres la premiere ligne isexactzero... ajouter
  85.     if((tx<9)&&(ty==10)) return 0;
  86. 40) [N] polarit2.c etc... ecrit et installe resultant2() valable pour des types non exacts.
  87. 41) [M1] alglin1.c: det() change la ligne de division pour qu'en cas de polynomes la division
  88.     soit euclidienne.
  89. 42) [M1] base.c: smith() modifie le code apres le if(!c) pour permettre des
  90.     matrices singulieres (b=0), et prendre la valeur absolue a la fin.
  91. 43) [B3] anal.c: lindep2 est de type 23 et pas 21.
  92. 44) [M1] usersch3.tex: galois, legerement modifie la terminologie.
  93. 45) [B3] base.c: corrige une bug dans smith() dans le cas ou p1=-p2.
  94. 46) [M1] pari.menu et usersch3.tex: oublie arg().
  95. 47) [M1] Modifie sumdivk pour qu'il accepte k<0.
  96. 48) [N] Ecrit les fonctions mpfactr() (fact dans gp) et izeta().
  97. 49) [B1] Corrige incgam() pour que ca marche quand a<=0. Ecrit incgam4().
  98. 50) [N] Ecrit et installe lseriesell() (a titre temporaire).
  99. 51) [N] Ecrit cxpolylog() et incorpore a polylog.
  100. 52) [N] Ecrit glngamma(), ggamma() pour les series, et gpolylog().
  101. 53) [B3] es.c: texi() corrige 4 lignes au type 10, identiques a la correction
  102.     correspondante dans bruti.
  103. 54) [N] Ecrit galoisconj().
  104. 55) [M1] Modifie gnorml2() pour accepter tous les types, en particulier matrices.
  105. 56) [B4] !!! gen1.c gadd() type 2+type 4 et 5, code incorrect modifie.
  106. 57) [N] Ecrit et installe matrixqz().
  107. 58) [N] Ecrit et installe centerlift().
  108. 59) [M2] Modifie err() et invmod() pour qu'il imprime les inversesmodulo
  109.     impossibles.
  110. 60) [N] Ecrit(!) et installe matlength(). 
  111.  
  112. ----------------------- Version 1.35.04 --------------------------------
  113.  
  114. 61) [B2] base.c: tchirnhausen() mettre {} apres le if(v).
  115. 62) [M1] reecrit commands() pour tenir compte des noms trop longs.
  116. 63) [M1] supprime encore une fois (!) les random() dans polarit1.c
  117. 64) [M1] ggval et pvaluation ne font plus deborder la pile pari.
  118. 65) [B1] gen3.c: matlength() donnait 1 ligne de trop.
  119. 66) [M1] gencom.h,gp.c,init.c,anal.c: modifie pour que la fonction read()
  120.     de GP soit reentrante.
  121. 67) [M2] anal.c: reecrit et nettement ameliore le programme constante().
  122. 68) [B2] alglin2.c: matrixqz() change pp en p dans la premiere division.
  123. 69) [M1] base.c: hnf() modifie pour accepter des matrices ayant plus de lignes
  124.     que de colonnes. Le resultat n'est maintenant pas toujours une matrice carree.
  125. 70) [N] alglin2.c: ecrit et installe matrixqz2() (algorithme de Dominique).
  126. 71) [N] alglin1.c: ecrit et installe indexrank().
  127. 72) [N] alglin2.c: ecrit et installe matrixqz3().
  128. 73) [B1] alglin1.c et alglin2.c: modifie invmulmat(), caract(), rank() 
  129.     et indexrank() pour accepter des matrices vides.
  130. 74) [N] alglin2.c: ecrit et installe kerint().
  131. 75) [M1] alglin2.c: matrixqz3() corrige une bug et ajoute une LLL-reduction a la fin.
  132. 76) [N] gen2.c, etc...: installe size() et rounderror().
  133. 77) [M1] alglin2.c: sqred1(), sqred2() (donc sqred()) modifies, et ajoute la protection
  134.     contre stack overflow.
  135. 78) [N] bibli1.c, alglin2.c: ecrit sqred3(), et nouvelles versions de lll() et lllgram(),
  136.     les anciennes s'appelant lll1() et lllgram1(). Les nouvelles sont beaucoup plus rapides
  137.     et necessitent moins de place.
  138. 79) [N] elliptic.c: ecrit et installe pointell() (fonction P de Weierstrass et sa derivee).
  139. 80) [M1] alglin1 et 2.c: modifie encore d'autres programmes d'algebre lineaire pour accepter
  140.     les matrices vides.
  141. 81) [M1] trans3.c: modifie polylog() pour qu'il accepte tout argument meme tres grand, et
  142.     gpolylog pour avoir les polylog d'indice negatif.
  143. 82) [M1],[N] trans3.c: renomme polylogd en polylogdold, et modifie pour que polylogd soit
  144.     maintenant le D_m~. De plus, traite les cas particuliers 0 et 1 dans les polylog.
  145. 83) [N] alglin2.c: ecrit et installe intersect().
  146. 84) [B2] alglin2.c: corrige une faute de frappe dans kerint().
  147. 85) [B2] elliptic.c: zell(), inverse le signe de t, change le mode de calcul de t pour
  148.     eviter au maximum les erreurs d'arrondis, ajoute une iteration agm systematiquement
  149.     et traite le cas particulier t=0 (zell() est donc correct et beaucoup plus precis).
  150. 86) [M1] bibli2.c: suminf(), prodinf(), prodinf1(), modifie la condition d'arret pour
  151.     qu'il puisse y avoir des coefficients nuls.
  152. 87) [M1] elliptic.c: matell(), double les coefficients (la precedente definition
  153.     donnait le regulateur divise par 2^r).
  154. 88) [D1] Modifie quelques fautes de frappe du manuel.
  155. 89) [M1] elliptic.c: oncurve(), modifie pour qu'il accepte un resultat approximatif 
  156.     dans le cas de courbes a coefficients inexacts.
  157. 90) [M1] anal.c et messages.c: interverti length et legendre qui n'etaient pas dans
  158.     l'order alphabetique.
  159. 91) [N] gen2.c, bibli1.c, etc...: ecrit et installe lexcmp() (lex dans GP) et lexsort().
  160. 92) [M1] polarit2.c, arith2.c: permis a smallfact() et boundfact() d'avoir des arguments
  161.     rationels, et tries les nombres premiers qui interviennent.
  162. 93) [M1] gen2.c: gpui(), modifie pour un traitement correct des vecteurs.
  163.  
  164. ------------------------- Version 1.35.05 ---------------------------------
  165.  
  166. 94) [M1] elliptic.c: apell() modifie pour accepter des nombres premiers >2^16.
  167. 95) [B2] alglin2.c: hess() etait incorrect. Modifie et en fait simplifie.
  168. 96) [B1] gen2.c: ajoute du code a dbltor() pour s'assurer que le resultat est
  169.     normalise.
  170. 97) [M2] version68k.c: ajoute presque toutes les routines de versionport.c
  171.     pour la correction 96 ci-dessus. Deplace les declarations externes de
  172.     overflow et hiremainder de genport.h a gencom.h.
  173. 98) [N] Donne a GP l'acces au polynome caracteristique calcule par la comatrice
  174.     et interverti avec caract. D'ou char() dans GP correspond a caradj0() dans
  175.     alglin2.c, et char1() dans GP correspond a caract() dans alglin2.c.
  176. 99) [M1] alglin2.c: Modifications cosmetiques a caract().
  177. 100) [M1] base.c: hnf() change j=def en j=def-1, puis a la fin (apres le if(
  178.     signe(p1))) mettre else def++.
  179. 101) [N] alglin2.c: ecrit un nouveau kerint() utilisant HNF. renomme l'ancien
  180.     kerint1().
  181. 102) [B3] bibli1.c: lllgram() et lllgram1(), la formule donnant mu_{i,k-1}
  182.     etait completement fausse! Corrige, et change la constante de 9/10 a 
  183.     99/100.
  184. 103) [B1] mp.s: negs() changer vers la fin tstl d1 en negl d1 (sinon identique
  185.     a stoi!). Ajoute #define negs(s) (stoi(-s)) dans genport.h. Egalement,
  186.     remplace le calcul d'un zero par _gzero, et dans abss enlever le link.
  187. 104) [M1] gen2.c: ismonome() remplace gcmp0() par isexactzero().
  188. 105) [M0] gen3.c: supprime conpol(); gencom.h ajoute une macro pour gdiventz().
  189. 106) [B2] gen1.c: gdiv() s/10, modifie pour que le resultat soit un polynome
  190.     quand s=0 exactement, gmul() et gen3.c: gmulsg() s*13,14 aussi.
  191. 107) [M3,N] anal.c (et erreurs.h, messages.c): modifie le case 200 de 
  192.     identifier() et skipidentifier() pour accepter les syntaxes m[j,] et m[,k]
  193.     ou m est une matrice. Ces objets peuvent etre utilises dans une expression,
  194.     et a gauche d'un symbole d'affectation (si m est une variable).
  195. 108) [N] Installe dans gp shift() (gshift() dans pari) et shiftmul() (gmul2n()
  196.     dans pari).
  197. 109) [N] es.c: Nouveau format matbrute(), nouvelle commande de GP \m,
  198.     modification de la signification de \p et \b.
  199. 110) [M1] gen3.c: gsubst() permis a nouveau une substitution dans un polymod.
  200.     et de facon similaire dans geval().
  201. 111) [M1] alglin2.c: caradj0() autorise polynome caracteristique de tout
  202.     scalaire.
  203. 112) [B1] polarit2.c: verifie le type dans quadpoly().
  204. 113) [M2] alglin2.c: trace() change completement l'algorithme pour le type 9:
  205.     utiliser les formules de Newton.
  206. 114) [B1] bibli1.c: verifie le type dans ggrando().
  207. 115) [M1] trans*.c: autorise les fonctions transcendantes de type 9.
  208. 116) [M1] polarit1.c: split() et split9() remplace gvar(*t) par varn(*t).
  209.     polarit2.c: discsr() type 10 remplace gvar(x) par varn(x).
  210. 117) [M3] gen*.c: nombreuses modifications pour un traitement un peu plus
  211.     correct du type 9 (suite des modifs liees a la modif 124 sur 1.34).
  212.     En particulier nouvelle fonction gvar2() et macro gvar9.
  213. 118) [M1] accepte le type 9 dans ground() et grndtoi().
  214. 119) [B3] polarit1.c: decpol() ajouter (i1<=k) avant (i==pos[i1]).
  215. 120) [B1] polarit1.c: gredsp() dans les 2 cas p1=0, faire un cgiv(p1) avant
  216.     l1=(long)(x+3).
  217. 121) [M2] polarit1.c: gred() tx==13 ou 14 calcule le contenu pour essayer
  218.     de mieux simplifier. En consequence dans d'autres programmes (gen*.c
  219.     en particulier), de tres nombreuses modifs aux case 13, case 14.
  220. 122) [B1] polarit2.c: remplacer quelques polgcd par ggcd.
  221. 123) [B1] polarit2.c: ggcd(), type 13,14 remplacer if(ty>=17) par if(ty>=15).
  222. 124) [B2] polarit1.c: poldivres() if(tx<10) *pr=gcopy(x) et pas gcopy(y).
  223. 125) [M1] gen3.c: gmulsg() et gdivgs() case 10: mettre ly=lgef(y) et 
  224.     lx=lgef(x).
  225. 126) [M1] anal.c: constante() remplace stoi(10) (dans l'exposant) par une
  226.     affectation dans un reel.
  227. 127) [B1] polarit2.c: ggcd() case 3, case 4: commencer par p1=mppgcd(x[1],y[2])
  228.     et non pas x[2].
  229. 128) [M1] polarit2.c: ggcd() autorise le pgcd case 9 case 13,14.
  230. 129) [M1] polarit2.c: ggcd() traite correctement le cas de variables 
  231.     differentes; modifie le resultat du pgcd avec une serie, et autorise les
  232.     pgcd generaux avec series.
  233. 130) [B1] gen2.c: normalizepol() changer le if(signe(x)) en if(lgef(x)>2).
  234. 131) [B1] bibli1.c: changevar() traite correctement les case 9 et 13,14.
  235. 132) [M1] polarit*.c, gencom.h: plusieurs modifs pour remplacer lgef() par
  236.     qqchose de plus correct (cas des polynomes scalaires). En particulier
  237.     macros isscalar(), isnonscalar() et leadingterm().
  238. 133) [M1] gen2.c: normalizepol() modifie et met le signe dans tous les cas.
  239.     gen1.c: enlever un setsigne inutile avant normalizepol.
  240. 134) [M2] gp.c: (modification de 109) modification de la signification de \p,
  241.     \b et \m, et nouvelle commande \a.
  242. 135) [N] arith2.c: ecrit rhorealnod() et redrealnod(), et ajoute des verifs
  243.     de type dans rhoreal et redreal. Change le nom qfred1 en redcomp, et
  244.     ajoute ces fonctions dans pari.menu.
  245. 136) [B1] anal.c: identifier() oublie de mettre une verification type et
  246.     longueur dans une affectation m[,c]= (suite de 107).
  247. 137) [M1] alglin2.c: gnorm() case 10 a 14, prendre la partie reelle avant
  248.     de donner le resultat.
  249. 138) [M1] trans1.c: gsqrt() autorise le type 9.
  250. 139) [N] gen3.c: installe simplify().
  251.  
  252.  
  253. --------------------------- Version 1.35.07 ------------------------------
  254.  
  255. (la version 1.35.06 n'a existe que de facon ephemere dans 1 seul site)
  256.  
  257. 140) [M3,B1] gen3.c: precision() remplacer le if(tx==2)... par
  258.   if (tx==2) return max(lg(x),2-(expo(x)>>5));
  259. 141) [B3] trans3.c: gpolylog() mettre au debut av=avma et enleve dans les cases
  260.   individuels.
  261. 142) [B2] elliptic.c: initell() et initell2() remplacer q=ginv(gadd(w,gsqrt(..
  262.    par
  263.       if(gsigne(greal(w))>0) q=ginv(gadd(w,gsqrt(gaddgs(gmul(w,w),-1),prec)));
  264.       else q=gsub(w,gsqrt(gaddgs(gmul(w,w),-1),prec));
  265.       pitemp=mppi(prec);...
  266. 143) [B1] elliptic.c: initell(), initell2() et zell() remplacer 
  267.    if(signe(p2)>0) par if(gsigne(p2)>0).
  268. 144) [N] bibli1.c: Ecrit et installe lllgramint() et lllint().
  269. 145) [B1] gen3.c: gceil() case 4,5: remplacer signe par gsigne.
  270. 146) [B3] gen2.c: gpuigs() dans ismonome(x) avant p1=cgetg(dd,10) mettre
  271.    av=avma; dans if(n<0) remplacer av=avma par tetpil=avma.
  272. 147) [B2] polarit2.c: content() remplacer tetpil=avma;p1=ggcd(p1,x[i])
  273.    par 
  274.           txi=typ(x[i]);
  275.           if((txi==2)||((txi>=6)&&(txi<=9))) {avma=l;return gun;}
  276.           else {tetpil=avma;p1=ggcd(p1,x[i]);}
  277.    rajouter les memes deux premieres lignes dans le else
  278.    et declarer txi.
  279. 148) [B1] polarit1.c: gred() dans tx==13 ou 14, remplacer if(gcmp0(x1))...
  280.    par
  281.     x1=(gcmp0(x1))?(GEN)x[1]:gdiv(x[1],x1);
  282.     x2=gdiv(x[2],x2);y=poldivres(x1,x2,&p1);
  283. 149) [B1] polarit2.c: content() case 11: mettre a la place
  284.     case 11: if((!signe(x))&&((tx==11)||(lx==2))) return gzero;
  285. 150) [M2,N] arith2.c: Modifie compose(), compreal(), comprealraw(), sqcomp(),
  286.     sqcompreal(), sqcomprealraw() pour calculer correctement avec des formes
  287.     non primitives (et installation de comprealraw(), sqcomprealraw() et
  288.     powrealraw()).
  289. 151) [M1] anal.c: remplacement de match() par une macro et matcherr()
  290. 152) [M2] anal.c: Au retour d'une fonction, faire systematiquement UNE copie
  291.     du resultat.
  292. 153) [M1] elliptic.c: le code commun a initell() et initell2() est factorise.
  293. 154) [M2] messages.c remplace par errmessages.c et helpmessages.c
  294. 155) [M1] tous les 0x77f+i remplaces par 0x77f +i pour satisfaire un 
  295.     compilateur paranoiaque.
  296. 156) [B2] polarit1.c: gres() remplacer   if(tx<10) return gcopy(y);
  297.     par if(tx<10) return gcopy(x);
  298. 157) [B2] arith2.c: kerint1(), av n'etait pas initialise.
  299. 158) [B1] gen2.c: lexcmp() lx etait dans certains cas utilise avant
  300.     initialisation
  301. 159) [M1] supprime une quinzaine de variables locales inutiles.
  302. 160) [B1] gen2.c: ggval() case 3, initialisation de p1=cgeti(lgef(x[1])) et
  303.     p2=cgeti(lgef(x[2])) etait necessaire.
  304. 161) [M2] polarit2.c: factor() type 10, modifie le code pour accepter des 
  305.     polynomes a coefficients rationnels et pas seulement entiers ou modulo.
  306. 162) [M1] errmessages.c et erreurs.h: Enleve recer2 et modifie le message de
  307.     recer1.
  308. 163) [M1] bibli1.c: Change setprecision() et setserieslength() pour retourner
  309.     ce qu'il faut.
  310. 164) [N] polarit2.c: ecrit polfnf() (factornf() dans gp).
  311. 165) [M1] Mis a jour le manuel, pari.menu et testin.
  312. 166) [B1] gen2.c: gcmp_1() case 9: changer gcmp en !gegal
  313. 167) [N] polarit2.c: Installe nfiso() (isisom() dans gp) nfincl() (isincl()
  314.     dans gp), et rootsof1().
  315. 168) [B1] trans3.c: polylog{p,d,dold}(2m+1,1) donnait 0.
  316.  
  317.  
  318. ----------------------------- Version 1.36beta3 ---------------------
  319.  
  320. 169) [B1] polarit2.c: newtonpoly() remplacer VERYBIGINT par LARGERINT,
  321.     defini dans gencom.h.
  322. 170) [B3] bibli1.c: lindep2() remplacer lll(p4,(prec<<1)-2) par lllint(p4).
  323. 171) [B2] bibli1.c: lllgramint() dans la double boucle initiale, ajouter
  324.     coeff(lam,j,i)=zero, commencer a i=1 au lieu de i=2, et enlever 
  325.     B[2]=coeff(x,1,1) qui precede.
  326. 172) [B1] gen3.c: ginv() corriger pour que le resultat soit une forme reduite
  327.     dans le cas 15 et 16.
  328. 173) [N] arith2.c: ecrit et installe (enfin!) nucomp(), nudupl() et nupow().
  329.     (apres essais, ils pourront remplacer la composition ordinaire).
  330.     Au passage, quelques modifications esthetiques.
  331. 174) [M1] alglin2.c: dans kerint() remplacer l'appel a lll par un appel a
  332.     lllint.
  333. 175) [M1] polarit2.c: factmod() tester si p<2^31.
  334. 176) [B1] bibli1.c: tous les lllgram* quand n<=1 ne pas retourner gcopy(x)
  335.     mais idmat(n).
  336. 177) [N] alglin2.c: ecrit et installe kerint2() qui devrait etre meilleur que
  337.     kerint.
  338. 178) [N] alglin2.c et bibli1.c: remplace kerint() par une nouvelle version,
  339.     et ecrit et installe lllkerim() et lllgramkerim(). Le programme kerint()
  340.     est habituellement plus rapide que kerint1() et kerint2().
  341. 179) [M1] supression de 8 variables locales inutilisees. Remplace isspace(c) par (isspace(c)) dans es.c
  342.  
  343. ------------------------ Version 1.36 ---------------------------------------
  344.  
  345. 180) [B1] gen3.c: gsubst() case 10, remplacer if(ty==6) z=poleval(x,y);
  346.     else { vx=varn(x);l=lgef(x);... par
  347.     vx=varn(x);if((ty==6)&&(v==vx)) z=poleval(x,y);else {l=lgef(x);...
  348. 181) [B1] arith1.c: fundunit(), changer x[lg(x)-1] en x[lgef(x)-1].
  349. 182) [B1] gen1.c: gadd(), case <10, case 11, corriger quand y=O(x^0):
  350.     dans le troisieme grand else (correspondant a e=0), apres 
  351.     z=cgetg(ly,ty);l=avma; remplacer p1=gadd(x,y[2]); par
  352.     p1=(signe(y))?gadd(x,y[2]):x;
  353.     Plus loin, remplacer else {z[1]=0x1008000;z[2]=(long)p1;...}
  354.     par else {if(!signe(y)) z[1]=0x8000;else {z[1]=0x1008000;z[2]=... }}
  355. 183) [M1] gen2.c: gegal() type 15 et 16 traites correctement.
  356. 184) [M3] polarit2.c: ggcd() type<9 type>=9 pris en compte le contenu de y,
  357.     et pris en compte les diviseurs simples des types 6 et 8. Modifie
  358.     content() de facon analogue.
  359. 185) [B2] gen3.c: numer() et denom(), accepte tous types autres que formes
  360.     quadratiques.
  361. 186) [B1] gen3.c: gsubst() case 11, case 10,13,14: remplace e*(lx-2) par
  362.     e*(lx-2+ex).
  363. 187) [M1] elliptic.c: smallinitell() sort j=0 quand d=0 a la place d'une erreur.
  364. 188) [M2] arith1.c et arith2.c: "vectorise" les operations arithmetiques
  365.    (de nombreuses modifications, aussi dans anal.c etc...)
  366. 189) [N] plot.X: ecrit et installe plothraw().
  367. 190) [B1] bibli2.c: suminf() remplacer affsr(1,y=cgetr(prec)) par y=gun.
  368. 191) [B3] arith2.c: nupow() remplacer le y=gerepile(.. final par
  369.    return gerepile(...
  370. 192) [B1] trans3.c: sagm() case 6, remplacer prec=precision(x) par
  371.    if(pp=precision(x)) prec=pp;
  372.  
  373. --------------------- Version 1.36.1 -----------------------------------
  374.  
  375. 193) [N] elliptic.c: ecrit et installe akell().
  376. 194) [B1] helpmessages.c: corrige le message pour initell et initell2.
  377. 195) [M3] init.c: allocatemoremem(), double la pile Pari avant de faire un
  378.    message d'erreur. A voir a l'usage.
  379. 196) [M2] elliptic.c: ordell() accepte aussi les rationnels.
  380. 197) [B1] elliptic.c: oncurve() remplacer -f+5 par -((f-2)<<5)+20.
  381. 198) [B2] polarit2.c: scalcontent() case 9 remplacer x[1] par x[2], et
  382.    content() remplacer if(tx<10) par if(tx<9) et rajouter dans le switch
  383.    case 9: return content(x[2]).
  384. 199) [M2] gen1.c: gadd() autorise l'addition scalaire/matrice dans certains 
  385.    cas.
  386. 200) [N] bibli2.c et plot.X (ainsi que anal.c etc...): ecrit et installe les
  387.    fonctions de rectplot. Sous GP: box(), cursor(), draw(), initrect(), 
  388.    killrect(), line(), lines(), move(), point(), points(), rbox(), rline(), 
  389.    rmove(), rpoint(), string().
  390. 201) [M1] gen2.c: modifie gtolong() pour accepter aussi le type reel et
  391.    fractions non entieres (on arrondit).
  392. 202) [M1] trans2.c: garg() autorise les vecteurs/matrices.
  393. 203) [M1] polarit1.c: polinvmod() remplace invmoder par ginvmoder.
  394. 204) [B3] polarit2.c: sturmpart() oubliait d'ignorer les zeros.
  395. 205) [M2] gp.c et gpreadline.c: dans main() case '{' ajouter
  396.    if((*tch2=='\\')&&(tch2[1]=='\\')) *tch2=0;
  397.    juste apres le if(!fgets...). Ceci permet d'ecrire des commentaires dans une
  398.    fonction.
  399. 206) [M3] partout, y compris dans le manuel, de nombreux petits changements
  400.    pour avoir le moins de warnings possibles, declaration de toutes les 
  401.    fonctions, mise au type void et int de celles qui doivent l'etre, et 
  402.    quelques long prec oublies. Par souci d'etre complet, rajoute addssz(),
  403.    subssz() et mulssz() dans mp.c.
  404. 207) [M2] trans3.c: theta() corrige pour rendre une valeur correcte quand z est
  405.    complexe.
  406. 208) [N] plot.sun: ecrit plothraw() et draw() sous suntools.
  407.  
  408. --------------------- Version 1.36.2 -----------------------------------
  409.  
  410. 209) [N] Incorpore buchimag() et buchreal(), et modifie les Makefile pour avoir
  411.    buch.c en plus. Modifie egalement INSTALLATION en consequence.
  412. 210) [N] Mis la version HP-PA dans les sources.
  413. 211) [N] bibli2.c: Ecrit postploth(),postploth2(),postplothraw(),postdraw().
  414. 212) [B2] alglin2.c: dans le else a la fin de matrixqz() ajoute av1=avma;
  415.    apres fl=1;
  416. 213) [B2] gen2.c: gcvtop() case 11:  oublie y=cgetg(lx,11) avant y[1]=x[1].
  417. 214) [B2] gen2.c: gpui() oublie av1=avma au debut du else final.
  418. 215) [B2] trans3.c: jbesselh() case 10,13,14 oubli av=avma initial.
  419. 216) [B2] gen1.c: gadd() case<10, case 19, oublie l=avma avant 
  420.    p1=gscalmat(x,ly-1)
  421. 217) [B1] anal.c: rpoint remplace rectpoint par rectrpoint.
  422. 218) [M1] polarit1.c: poldivres() apres f=1 mettre l=avma, et dans le cas
  423.    if(f) commencer par avma=l.
  424. 219) [M3] polarit1.c: poldivis() modifie la syntaxe, le resultat est cree et
  425.    non plus affecte comme dans mpdivis. Modifie gen2.c ggval() en consequence.
  426. 220) [M1] gen2.c: ggval() mis av=avma et avma=av en facteur du tout.
  427. 221) [B2] elliptic.c: apell() corrige pour les cas de mauvaise reduction.
  428.  
  429. -------------------------- Version 1.37 --------------------------------
  430.