1# $Id: CHANGES 12117 2010-02-03 23:47:45Z bill $ 2Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/ 3 4Done for version 2.3.5 (released 05/02/2010): 5[last column crossreferences current development release 2.4.3] 6 Fixed 7 1- was not handling nffactor(*huge degree* nf, *non-monic* t_POL) properly 8 --> wrong result and possible memory corruption [#870] [F96] 9 2- quadclassunit(-3 or -4): incorrect format (extra component). 10BA 3- Fix detection of ppc64 running in 32bit mode. [F107] 11 4- wrong results in matsnf with t_POL entries [#901] [F110] 12 minpoly(matrix(4,4,i,j,i/j)) -> x^3 - 4*x^2 + x 13 5- bnfisintnorm(bnfinit(x^2-5), -180): result not reduced mod x^2-5 [#904] 14 6- Y;A; intformal(A,Y) [F114] 15 7- typo in RgXQX_divrem: random results if the input contains 16 unexpected scalar types, as in [#908] 17 8- ispower broken due to insufficient precision [#916] [F40] 18 9- [2;2]*[[1,0],[1,2]] -> SEGV 19 10- nffactor(): obscure "no factor" bug [when trial division found and 20 extracted *non monic* factors], [#930] [F127] 21BA 11- src/kernel/ix86/asm0.h had an incorrect #line entry. [F122] 22BA 12- COMPAT file was missing some functions renamed in 2.3: [F128] 23 flisexpr, flisseq -> gp_read_str; lisGEN -> gp_read_stream 24BA 13- nffactor could segfault. [#979] [F135] 25BA 14- missing type check in subgrouplist [#616] [2.4.2-F39] 26BA 15- nfdisc --> "not a prime" error (help Round4 to recover when using 27 non-primes, instead of raising immediate errors) [#624] [2-4-2-F41] 28BA 16- exp(0e1*I) --> SEGV [#630] [2-4-2-F44] 29BA 17- detection of exp2 and log2 was broken with C++ compilers [F143] 30BA 18- support for shared library on netbsd. [F144] 31IZ 19- [readline] 'foo)' + M-C-b -> infinite loop [F145] 32BA 20- factor(13533236897) -> I/O Warning [#1012] [F151] 33BA 21- usqrtsafe result could be off by one. [F152] 34BA 22- znprimroot(2) could segfault. 35BA 23- ellap could go in an infinite loop. 36IZ 24- [OS/2] Fix warning about string signedness. [F155] 37IZ 25- [OS/2] Fix symbol checking in Configure. [F156] 38BA 26- upowuu(2,31) returned a wrong result [#1031] [F157] 39IZ 27- [OS/2]: stack check present but not enabled [2.4.0-F6] 40 41%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 42Done for version 2.3.4 (released 08/07/2008): 43[last column crossreferences current development release 2.4.3] 44 Fixed 45 1- factor(500501^36): impossible assignment I-->S [F21] 46 2- quadray(-7,6) [or other "impossible conductors"] --> oo loop [#725][F22] 47 3- mathnf(a,1) could have negative entries if non-trivial kernel[#741][F31] 48 4- duplicate factors in nffactor (easy cases) [#761] [F42] 49 5- wrong signs in bnfisintnorm e.g. [bnfinit(x^3+5), 5] -> x [#767] [F45] 50 6- memory leak: local(x = VECTOR/MATRIX VALUE) in user functions 51 7- acos(x^0) -> division by 0 [ instead of O(x^8), at \ps 16 ] [2-4-2-F83] 52 Analogously, acosh(x^0), asin(x^0), asinh(I+O(x)) --> division by 0 53 8- zeta(0e1) --> SEGV [#627], exp(0e1*I) --> SEGV [#630] [2-4-2-F44] 54 zeta(1-2^31 or 1-2^63) -> SEGV [#730] [F26] 55 9- bnr=bnrinit(bnfinit(y^2-229,1),5,1); rnfkummer(bnr,,3) --> oo loop [F30] 56 10- missing subfields in nfsubfields [#744] [F33] 57 11- infinite loop in nffactor [#751] [F37] 58 12- eint1(10,10) completely wrong [F39] 59 13- x/(x+2) * Mod(1,2) -> Mod(1, 2)*x/(x + 2) [should be Mod(1,2)] [F46] 60 14- substpol(x/(y^3*x+1),y^2,1) -> x/(y^3*x + 1) [should be x/(y*x+1)] [F47] 61 15- hilbert(1,1,1) --> oo loop [#770] [F51] 62 16- nffactor(nfinit(y),x*y) [F50,F52,F53,F54] 63 nffactor(nfinit(y),x^2*y+1) 64 nffactor(nfinit(y),x^2*y) --> errors or SEGV. [#769] 65 nffactor(y^2+1, x+1/2) --> x+1/2 [ not integral ] 66 nffactor(y^2+1,x*y+1) --> x*y + 1 [ not normalized, missing POLMOD ] 67 nffactor(y^2+1,x^2+2*y+1) --> x^2+2*y+1 [ missing POLMOD ] 68 17- p=x^4-x^3+x^2-x+1; tnf = thueinit(p); thue(tnf,1) -> missing solutions 69 (could occur whenever p has no real root) [#764] [F57] 70 18- missing GC in numtoperm() [F58] 71 19- harmless uninitialized memory read in mulrrz_i() [F59] 72 20- minor inaccuracy in GMP kernel (affir) [F52] 73 21- matsolve([1;2;3],[1,2,4]~) --> [1]~ (should raise an error) [F56] 74 75 Changed 76 1- delete CVS.txt, add README-subversion 77 2- delete TODO [ only relevant / up to date in the development branch ] 78 79 Added 80 1- GP function version() [ current version number ] [A20] 81 82%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 83Done for version 2.3.3 (released 22/12/2007): 84[last column crossreferences current development release 2.4.2] 85 Fixed 86 1- remove hack in internal function 'readbin' that used the clone bit as 87 a special marker hence returned an invalid object, which could be 88 propagated to higher level public functions. [F4] 89BA 2- bitnegimply(1,2^65) returned a wrong result [#560] [F6] 90 3- nfeltreduce(nf,t_POLMOD,id) didn't work [#558] [F7] 91 4- segv in polrootspadic / repeated roots in FpX_root (only in deg 2) [F9] 92 5- numbpart inaccurate (and slow). E.g numbpart(52602) off by 1 [#557][F12] 93 6- remove type assumptions in mulcxI, mulcxmI: unsafe [#516]] [F14] 94 7- (y/x)/(x^0/y) not correctly simplified [F16] 95 8- sumpos(x=1,1/x^2,1) had the wrong sign [#587] [F21] 96 9- default(compatible,3); default(compatible,1) --> case no longer [F47] 97 taken into account (I = i) [#629] 98 10- possible oo loop in _isprincipal [ precision was supposed to increase, 99 but could in fact remain the same ] [F81] 100 11- agm(-1, 1+1e-55) --> oo loop, agm(-1,1) --> wrong result [F27] 101 12- read("a b.gz") \\ filename contains a space [F34] 102 gzip: ./a.gz: No such file or directory 103 13- quadgen([]) --> incorrect object [#606] [F31] 104 14- hyperu(0,1,1) --> oo loop [#608] [F32] 105 15- fix headers so that ulong is always defined [F33] 106 16- gclone didn't work on t_INTs with lg > lgefint [F37] 107 17- exp(2^200*I) --> catastrophic cancellation [cos/sin were OK] [#631][F45] 108 18- [Configure] don't rely on $CC exit status, check whether a non-0 size 109 executable is produced [ problems with tcc ] [F55] 110 19- wrong Prototype for subgrouplist [ extra 'p' ] [F56] 111 20- nf.codiff was only correct up to multiplication by some rational number 112 [cf #510 & 2.4.1-F7] [F58] 113 21- typo in bnfisintnorm(): missed some solutions [ couldn't find a unit 114 of norm -1 even though one exists ] [F74] 115 22- dilog(-1) [ more generally polylog of < 0 t_REALs ] should have 116 0 imaginary part [F84] 117 23- ix86, x86_64: missing earlyclobber constraint for addllx, subllx, [F87] 118 divll 119 24- deriv(x/(x+1),y) --> invalid t_RFRAC with exact 0 numerator [#687] [F90] 120 25- factornf(x^5+(-a+2)*x^4-a*x^3+(3*a-6)*x^2+(5*a-10)*x+(2*a-5), a^2-5) 121 --> SEGV [ not squarefree -> denominators creeping in ] [#708] [F110] 122BA 26- fix compilation problem with g++-4.2 and GMP [F94] 123BA 27- missing GP2C descriptions for Pol and Polrev [F114] 124 28- typo in FpM_gauss_pivot: FpM_rank, FpM_image, FpM_suppl, FpM_indexrank 125 much slower than they should be. Same problem in FqM_gauss_pivot. [F113] 126 127%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 128Done for version 2.3.2 (released 28/03/2006): 129[last column crossreferences current development release 2.4.1] 130 Fixed 131 1- [Cygwin] missing -L... -lgmp when compiling with gmp. [F2] 132 2- ispower(522^3) -> 0 [ looked like a 7th power to is_357_power(), which 133 then forgot to test for cubes ] [#506] [F3] 134 3- when nf.disc < 0, nf.diff was an incorrect PARI ideal [#510] [F6] 135 4- nf.codiff was only correct up to multiplication by some rational [F7] 136 number (a divisor of nf.disc) [#510] 137 5- inaccuracy (>= 2ulp) in [cached] log(2) [#498] [F8] 138 6- exp, sinh, asinh, tanh, atanh were inaccurate near 0 [F9] 139 7- [GMP kernel] forvec(x=[[-1,0]],print(x)) --> error [#509] [F10] 140 [ 'resetloop' failed when passing through '0' ] 141 8- nfbasistoalg(nfinit(y),x) created an invalid t_POLMOD [F11] 142 9- incorrect result in ZX_resultant (accuracy loss computing bound) [F12] 143 10- [Configure] gcc-specific flags were used on linux/freebsd/cygwin, 144 even when __gnuc__ was unset [F14] 145 11- factor( pure power FqX ) --> SEGV [F15] 146 12- [GMP kernel] polrootsmod(f, 4) --> wrong result [ low level t_INT [F16] 147 manipulation not using the int_* macros ] 148 13- polrootspadic(f, 2, r) --> some roots would be found twice [F17] 149 [ due to FpX_roots(f, 4) called ] [#521] 150 14- ??sumalt doesn't compile: in GPHELP, treat \ref in verbatim [F18] 151 mode[#518] 152 15- matinverseimage returned [;] when no pre-image exists. Conform to [F19] 153 the docs: "an empty vector or matrix", depending on the input types. 154 16- 3.5 % 2 --> error [ should be 0.5 ] [F21] 155 17- sin(1/10^100) --> 0e-28 [ also affected cos,tan,cotan ] [F22] 156 18- check that k >= 0 in thetanullk [#531] [F25] 157 19- isprime(-2,1) returned 1 [F26] 158 20- Fix 'Not enough precision in thue' error [F27] 159BA 21- [OS X] Fix kernel detection on x86_64-darwin [F28] 160BA 22- [Configure] spectacular failure to recognize gcc under some locales[F33] 161 23- polredabs(x^8+2*x^6-5*x^4+78*x^2+9) was incorrect [ missed 162 x^8+6*x^6-x^4+54*x^2+25 due to incorrect "skipfirst" ] [F34] 163 24- typo in resmod2n (specific to GMP kernel) [#546] [F35] 164 25- nfmodprinit could create FpX's which were not reduced mod p [F39] 165 26- O(x^3)^(1/2) was O(x^2) instead of O(x) [F40] 166 27- substpol(x^-2+O(x^-1),x^2,x) --> error [#555] [F42] 167 168%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 169Done for version 2.3.1 (released 06/10/2006): 170[last column crossreferences current development release 2.4.0] 171 Fixed 172 1- typo in remiimul: wrong result in a "failsafe" branch (hardly ever 173 taken). May affect modular powering /Fp if p >> 10^1300 [#457] 174 Also affects the gmp kernel, for p >> 10^5800. [F1] 175 2- inconsistent return type in nffactormod [#460] [F3] 176 3- gammah(1+O(3^5)) --> incorrect type in ggamd. [F8] 177 4- invalid read in copy_leaf [ SEGV in some libc ] [F9] 178BA 5- ellheight short help was accidentally truncated. [F10] 179 6- substpol(1+O(x^(2*n)),x^2,x) --> 1+O(x) instead of 1+O(x^n) [#470] [F11] 180 7- [OS X] only use -no-cpp-precomp with Apple cc [F12] 181 8- divrem(x,x,y) --> [1/y*x, 0] [F13] 182 9- typo in qflll: in rare cases (exact input+floating point computation+ 183 precision increase in last-but-1 step), the returned base change is not 184 properly updated in last iteration --> basis not LLL-reduced [F15] 185 10- (1+x)/(1-x)/(1+x)^2 not simplified [#472,#473] [F14,F16] 186 11- ispower(x^k, k) would answer 0 for some x and k in {3,5,7} [#476] [F17] 187 12- content(t_MAT with exactly 1 col) gave a wrong result [F18] 188 13- rare bug in red_montgomery (returning 0 with + sign, an incorrect object) 189 [ polrootspadic(x^11+x,11,10) --> corrupts gen_0 ] [F20] 190 14- qfbsolve(Qfb(1,2,10),5) --> [0,0; 0,0] instead of 0 [#479] [F21] 191 15- ispower(0, n, &z) would not set z [F22] 192 16- wrong result in conversion t_QUAD -> t_PADIC whenever disc = 1 (4) [F23] 193JJ 17- gaddgsz macro was wrong [#481] [F24] 194 18- polsubcyclo(p^k, q) --> wrong result [ gener_Fl(p^k) can't handle 195 k > 1, use gener instead ] [#480] [F25] 196SC 19- [GMP] mp_set_memory_functions was called with an incompatible realloc 197 function. [#484] [F26] 198AM 20- [TeXmacs] typo in texmacs_output: x --> <bluex> [#491] [F30] 199BA 21- bnrstark prototype code was non-standard. [F34] 200 22- rnfkummer(,,degree) often found too many fields [#482] [F35] 201 23- missing GC in forvec(,,2) [F37] 202 24- loss of accuracy in p-adic ellinit: wrong digits and spurious errors: 203 E.g i = 5; ellinit([1, -1, 1, -1, -14]*(1+O(17^i))) [F36] 204 25- possible stack corruption in charpoly(,1) [F39] 205 26- Ser(x) raised an error [#499] [F40] 206 207 208 Changed 209 1- remove CPP from Configure tests [C3] 210