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