687 lines
37 KiB
Plaintext
687 lines
37 KiB
Plaintext
|
Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/
|
|||
|
|
|||
|
Done for version 2.11.0 (released 18/07/2018):
|
|||
|
Fixed
|
|||
|
1- uninitialized memory reads in lgcdii and red_montgomery
|
|||
|
BA 2- memory leaks on pari_close [s_dbginfo, s_frame, colormap/graphcolor]
|
|||
|
BA 3- disallow generic operations that end up producing t_POLMOD modulo 0
|
|||
|
e.g. matker( [Mod(1,2); Mod(1,2*x)] )
|
|||
|
4- Fp_powu(a,n,N) incorrect when a not reduced mod N
|
|||
|
BA 5- Flm_adjoint: treat rectangular matrices correctly
|
|||
|
|
|||
|
Done for version 2.10.1 (released 04/07/2018):
|
|||
|
Fixed
|
|||
|
1- t_LIST corrupted on writebin / read [#2040]
|
|||
|
BA 2- nfisincl() result uses wrong variable [#2041]
|
|||
|
3- polcompositum(,1) when one polynomial has degree 1 [#2045]
|
|||
|
4- Mod(0,3)*x + O(x^2) -> O(x^2) [instead of same]
|
|||
|
AP 5- alginit(nf, hasse inv.) sometimes wrong degree or stack overflow
|
|||
|
6- factor(x/y) -> error
|
|||
|
7- factor(y/x) -> x^-1 [ instead of y^1 * x^-1 ]
|
|||
|
8- factor(x^2 + O(2^2)) -> x^2 [ instead of (x+O(2^2))^1 * (x+O(2^2))^1 ]
|
|||
|
9- mfeigenbasis(mfinit(71,1,71)) -> error [ full space in wt 1 ]
|
|||
|
10- make galoissubcyclo compatible with znstar(,1)
|
|||
|
11- idealfactor(nfinit(polcyclo(5)),2^4*[0,1,0,0]~,100) => SEGV
|
|||
|
12- idealredmodpower(nf,x,...) incorrect when x a t_INT or t_FRAC
|
|||
|
13- znchargauss(,,a != 1): wrong value (missing \bar{chi}(a))
|
|||
|
14- factorpadic(): wrong results when p-adic accuracy too low
|
|||
|
15- elleisnum([1,I/2^100],4) -> exponent overflow
|
|||
|
16- galoischartable: wrong results
|
|||
|
17- factor(N, lim) was using primes <= lim instead of < lim as documented
|
|||
|
18- bnrinit(,m,1) could return generators not coprime to m (when 2 || Nm)
|
|||
|
19- genus2red(3*(4*x^6+6*x^5+3*x^4+8*x^3+9*x^2-3),3) -> bug in
|
|||
|
litredp [#2053]
|
|||
|
20- missing type check in mfsymbol [ mfsymbol(mf,'f) -> SEGV ]
|
|||
|
21- incorrect values in ellzeta() [#2060]
|
|||
|
22- ((y^-3+O(y))*x+1)/x -> oo loop [#2063]
|
|||
|
23- mfslashexpansion: use Neururer-Brunault's theorem
|
|||
|
24- iferr(sqrt(x+1/y),E,E) -> SEGV [ typo in err_DOMAIN exception ]
|
|||
|
25- t_LIST corrupted on writebin / read [#2040]
|
|||
|
26- prevent diviiexact from creating invalid t_INT on bad input [#2064]
|
|||
|
27- Mod(*, constant polynomial) created invalid t_POLMODs
|
|||
|
28- rnfalgtobasis could create invalid t_POLMODs
|
|||
|
29- mftobasis(mf,f) could raise an exception when f was defined at a
|
|||
|
larger level than its conductor
|
|||
|
30- incorrect values in ellsigma() [#2061]
|
|||
|
31- incorrect values for bnrL1 at large accuracy [#1877]
|
|||
|
|
|||
|
Changed
|
|||
|
1- polcoeff is deprecated and renamed polcoef: it now only applies
|
|||
|
to scalars, polynomials, series and rational functions; no longer to
|
|||
|
vector/matrices or quadratic forms (use [] or "component").
|
|||
|
2- [libpari] rename polcoeff0 -> polcoef, polcoeff_i -> polcoef_i,
|
|||
|
truecoeff -> truecoef
|
|||
|
3- add optional argument to denominator/content/numerator to allow
|
|||
|
better control over semantic. E.g.
|
|||
|
No arg: denominator([1/2, 1/x, 1/y]) -> 2*y*x
|
|||
|
denominator([1/2, 1/x, x/y]) -> 2*x
|
|||
|
denominator([x/2, 1/x, 1/y]) -> y*x
|
|||
|
With arg: denominator(,1) is 2 in all 3 cases
|
|||
|
denominator(,x) is x in all 3 cases
|
|||
|
denominator(,y) is y in all 3 cases
|
|||
|
4- factor(t_RFRAC): sort factors by increasing degree
|
|||
|
5- [libpari] rename constant LOG2 -> M_LN2 (from math.h if available)
|
|||
|
6- ellweilcurve: allow input in ellisomat form
|
|||
|
7- [libpari] rnf_get_nfzk / nf_nfzk / nfeltup interface (czknf was
|
|||
|
useless, return and use nfzk)
|
|||
|
8- the rnf struct from rnfinit has changed, the new format is not
|
|||
|
compatible with pari-2.9
|
|||
|
9- improved eta(x^k)
|
|||
|
10- sinc(t_SER) more accurate
|
|||
|
11- in prettymatrix format, no longer print all 0 x n matrices as [;]:
|
|||
|
use [;] iff n = 0 and matrix(0,n) otherwise
|
|||
|
12- bnrdisclist returned t_MATs whose columns were t_VECSMALL
|
|||
|
13- mateigen(m): fall back to qfjacobi when m close to symmetric [#2059]
|
|||
|
|
|||
|
Added
|
|||
|
1- [libpari] denom_i, numer_i, conj_i
|
|||
|
BA 2- [libpari] Fp_pow_init, Flxq_pow_init, F2xq_pow_init
|
|||
|
Fp_pow_table, Flxq_pow_table, F2xq_pow_table
|
|||
|
gen_pow_init, gen_pow_table
|
|||
|
3- new GP function serchop
|
|||
|
4- [libpari] serchop_i
|
|||
|
BA 5- [libpari] hash_init_GEN, hash_haskey_long, hash_insert_long
|
|||
|
BA 6- [libpari] FpX_ddf_degree, FpXQX_ddf_degree, FlxqX_ddf_degree
|
|||
|
7- [libpari] checkell_i
|
|||
|
8- new GP function ellisotree
|
|||
|
9- mspolygon: add graphical representations (LaTeX form)
|
|||
|
10- [libpari] idealprodval, rnfdisc_factored
|
|||
|
11- [libpari] eta_ZXn, eta_product_ZXn
|
|||
|
BA 12- New GP functions galoisgetgroup, galoisgetname
|
|||
|
13- [libpari] cxtoreal, cxEk
|
|||
|
14- [libpari] gmin_shallow, gmax_shallow
|
|||
|
|
|||
|
Done for version 2.10.0 (released 15/05/2018):
|
|||
|
Fixed
|
|||
|
1- subst(1+x^3+O(x^6),x,x+O(x^4)) -> SEGV [#1865]
|
|||
|
BA 2- lfunartin was using too much stack
|
|||
|
BA 3- fflog in char 3 or 5 was slower than intended
|
|||
|
4- RgX_blocks only worked for t_INT or t_POL coeffs
|
|||
|
5- spurious bnrdlisclist entries (with negative number of real
|
|||
|
places...) when modulus not a conductor
|
|||
|
BA 6- modular algorithms could fail for very large input
|
|||
|
BA 7- [mingw] writebin did not work
|
|||
|
BA 8- forprime(N=2^100,oo,...) did not work
|
|||
|
9- mseval(W,s,p) did not check 'p' in weight 2
|
|||
|
10- matrixqz(m, -1 or -2) was very slow
|
|||
|
11- ZG_normalize destroyed its input
|
|||
|
12- [install] prototype code D0,U, did not work
|
|||
|
BA 13- use of complex default function argument could lead to stack error.
|
|||
|
14- factorpadic(2*x^4+x^2,2,2) -> division by 0 [#1876]
|
|||
|
15- incgam(110, I) very inaccurate
|
|||
|
BA 16- ellinit over number field was not compatible with generic operations.
|
|||
|
BA 17- [breakloop] dbg_up could confuse the breakloop.
|
|||
|
HC 18- sumnummonieninit(,,a) + sumnummonien(n = a, ...) with a > 1 gave wrong
|
|||
|
result
|
|||
|
19- sumnummonieninit([a,b], t_CLOSURE) => incorrect initialization
|
|||
|
20- lngamma(1+epsilon) much slower than in pari-2.7; eg. 10^-4 at \p200
|
|||
|
BA 21- lfun(...,t_SER,n>=1) returned a wrong result
|
|||
|
22- lfun(,, negative derivation order) => internal bug
|
|||
|
23- SEGV in sumnummonieninit when accuracy too low
|
|||
|
BA 24- ellidentify: check curve is over Q
|
|||
|
25- gdivgs(t_RFRAC,s) could create invalid objects
|
|||
|
26- chareval(G,chi,x,[[...], o]) didn't work (off-by-1)
|
|||
|
27- polsturm(x^2-1,[-1,1]) -> SEGV [#1884]
|
|||
|
28- typo in description of "call" symbolic operator [ _(_) ]
|
|||
|
PB 29- matinverseimage could find spurious solutions [#1888]
|
|||
|
30- ellsea could leak variables (=> "no more variables" error)
|
|||
|
31- ellsea leaked clones
|
|||
|
32- 1/x - 1/x returned gen_0 (instead of Pol(0))
|
|||
|
33- printf("%d",factor(2*3*5*7)) => SEGV
|
|||
|
34- lfuninit: incorrect guess for root number depending on init domain
|
|||
|
E = ellinit([0,-a,1,157*a-27,-90*a-543], nfinit(a^2-a+1));
|
|||
|
lfuninit(E,[0,20,10])[2][6] -> 1 (whereas rootno is -1)
|
|||
|
35- bnrinit(bnf,idealfactor(bnf,1)) -> SEGV [#1890]
|
|||
|
BA 36- lfuncreate([1,0,[0],1,1,1,1]) -> SEGV (invalid input)
|
|||
|
37- thue(imaginary quadratic of disc -3f^2, n) could return half-integers
|
|||
|
BA 38- [libpari] Z_ZV_mod caused gerepile error
|
|||
|
39- bestappr(1+0.*I) -> 1 + 0*I instead of 1
|
|||
|
40- memory corruption in qfminim [#1894]
|
|||
|
41- polylog(x) used realprecision accuracy instead of precision(x) [#1895]
|
|||
|
42- exp or log(I*1.0) used realprecision accuracy instead of precision(x)
|
|||
|
[#1896]
|
|||
|
PB 43- M = ffgen(2017^3)*[0, 1; 0, 0]; M^-1 -> SEGV [#1887]
|
|||
|
BA 44- lfun(lfungenus2(...),...) was much slower than intended
|
|||
|
BA 45- nfsubfields(polcyclo(88), 20) -> wrong result [#1892]
|
|||
|
BA 46- [mpi] dynamically linking with libpari did not work
|
|||
|
47- sin(1 + 1.0*I) used realprecision accuracy instead of precision(x);
|
|||
|
same for cos, tan, arg, expm1, sinc.
|
|||
|
48- make idealstar(,N) an actual shortcut for ideal(nfinit(x), N) [#1900];
|
|||
|
it is recommended to use znstar instead.
|
|||
|
HIL 49- polclass could access invalid memory
|
|||
|
50- K=bnfinit(x^2+2323);
|
|||
|
P=idealprimedec(K,23)[1];
|
|||
|
bnfisprincipal(K,P); \\ oo loop
|
|||
|
51- nfvalrem() overflowed in case of negative valuation
|
|||
|
52- ellminimalmodel over number field fails with impossible inverse [#1899]
|
|||
|
53- incorrect GC in nfgcd [#1903]
|
|||
|
54- missing GC in rnfisabelian
|
|||
|
55- derivnum(x = a, ...) allowed t_POL a but not t_RFRAC
|
|||
|
56- missing GC in vectorsmall
|
|||
|
BA 57- missing GC in idealramgroups
|
|||
|
BA 58- ellweilpairing failed for supersingular curves in char. 2 [#1910]
|
|||
|
BA 59- Mat()[1..0,1..0] -> SEGV
|
|||
|
PB 60- galoissubcyclo(1,1,fl) ignored fl [#1914]
|
|||
|
61- PostScript plot: fix font scaling
|
|||
|
EB 62- GP was incorrectly issuing fflush(NULL) [#1913]
|
|||
|
63- issquare(Mod(1,67)*x^4+Mod(14,67)*x^2+Mod(49,67)) -> SEGV [#1915]
|
|||
|
64- polroots(t_POL whose coeffs vary by a factor > 2^100000) -> SEGV
|
|||
|
(or stack overflow)
|
|||
|
65- nfisincl(nf1, nf2) didn't work [#1921]
|
|||
|
66- setting sopath in gprc then calling install() -> SEGV [#1922]
|
|||
|
67- nfislocalpower did not accept a bnf in place of a nf
|
|||
|
68- subst(t_SER, x, 0 t_POL) [#1925], e.g
|
|||
|
subst(x+O(x^2),x,0*x) -> 1 + O(x) [ instead of 0 ]
|
|||
|
subst(x+O(x^2),x,Mod(0,3)*x) -> O(x^0) [ instead of Mod(0,3) ]
|
|||
|
69- valuation(Mod(0,3)*x,x) -> 0 [ instead of oo ]
|
|||
|
70- factor(x^2 * (1+O(5^2))) -> domain error
|
|||
|
71- for T in Q_p[X], factor (round then compute multiplicity)
|
|||
|
and issquarefree (assume input is separable) did not agree. Now,
|
|||
|
factor() repeats irreducible factors according to apparent
|
|||
|
multiplicity (note that the multiplicity is not well defined for
|
|||
|
inexact inputs, which are close to being inseparable, i.e.
|
|||
|
v_p( disc(T) ) is large compared to the input accuracy). On the
|
|||
|
other hand, factorpadic with exact input is able to compute
|
|||
|
multiplicities reliably.
|
|||
|
72- Vecsmall(t_STR with extended (8-bit) ASCII) -> platform dependent +
|
|||
|
can't be converted back with Strchr
|
|||
|
73- x^y: loss of accuracy when y >> 1 and x exact
|
|||
|
BA 74- [pthread] do not use pthread when nbthreads=1
|
|||
|
75- sumdiv(arg. in factored form, k < 0) => error or wrong result
|
|||
|
76- Mod(0,1)^0 -> invalid t_INTMOD
|
|||
|
77- gamma and lngamma inaccurate near negative integers, e.g.
|
|||
|
gamma(-1+10^-16)
|
|||
|
BA 78- nfisisom, nfisincl and factor were still using factornf
|
|||
|
PB 79- nfinit(t_POL of deg 1, 3) => incorrect change of variable
|
|||
|
80- subst(t_SER, x, x+O(x^N)) was slow [ e.g. ellj(x+O(x^10000)) ]
|
|||
|
BA 81- setrand(2);polclass(-5032,27) -> wrong result
|
|||
|
82- polredabs(non-monic t_POL, 1) => potentially wrong transformation map
|
|||
|
83- if 'a < 'b < 'c, charpoly(Mod(a, a^2 + Mod(b,b^2+1)), c) => 1
|
|||
|
[ now error: the result can't be repreѕented as a t_POL in 'c, only
|
|||
|
as a t_POLMOD modulo b^2 whose coefficients are t_POL in 'c ]
|
|||
|
84- mathouseholder: missing sanity checks (SEGV, didn't accept t_COL)
|
|||
|
85- bestapprPade did not handle positive valuation correctly [#1945]
|
|||
|
PB 86- subst(Mod(1/z, y), z, x) -> wrong answer [#1949]
|
|||
|
87- subst(1+x^2+O(x^3),x,y) -> 1 + y^2 + O(y^4) [#1950]
|
|||
|
BA 88- [pthread] thread stacks could silently overflow
|
|||
|
XR 89- padicfields(3,6) -> FPE [#1947]
|
|||
|
90- nfislocalpower could compute ZV_pval(0 vector,) -> oo loop [#1955]
|
|||
|
BA 91- iferr(1/0,E,1,break()) -> SEGV
|
|||
|
92- missing roots in nfroots (when r2>0) [#1956,#1957]
|
|||
|
BA 93- factormod(...,p,1) was incorrect for large p
|
|||
|
BA 94- foo = vectorsmall(1);for(i=1,1, foo[1]); -> error [#1958]
|
|||
|
BA 95- v=Vecsmall([2]); Fl_neg(v[1],3) when Fl_neg is installed [#1958]
|
|||
|
96- fincke_pohst with stockmax = -1 and non-zero CHECK (infinite
|
|||
|
capacity + selection criterion) could lose some vectors
|
|||
|
Affected polredabs [#1963]
|
|||
|
97- ellwp(,,1) returned \wp'/2 instead of \wp'
|
|||
|
98- inaccuracy in ellL1 / ellanalyticrank (usually last digit)
|
|||
|
99- nffactor factors could be non-monic [#1967]
|
|||
|
100- bestapprPade(,explicit B): wrong result [#1946]
|
|||
|
101- bestappr(Mod(10,307), 40) -> 10 (instead of 3/31)
|
|||
|
102- mathnf([x;1]) -> SEGV [#1971]
|
|||
|
BA 103- ispower((x^3+ffgen([2^127-1,3])*x+1)^2,2,&r);r was wrong [#1976]
|
|||
|
104- factorpadic(3*x+O(2^5),2,5) -> division by 0 [#1982]
|
|||
|
105- vecmax(Vecsmall()) -> some random value [#1983]
|
|||
|
106- SEGV in install() when bad prototype supplied [#1977]
|
|||
|
107- ellzeta(., real number) possibly wrong result [#1981]
|
|||
|
BA 108- sqrtn(Mod(9, 101), -2) -> wrong result
|
|||
|
109- multiplying t_SER with t_INTMOD entries (mod a composite) whose
|
|||
|
leading term cancels -> SEGV [#1986]
|
|||
|
110- lambertw(t_SER) could create invalid t_FRACs
|
|||
|
111- matintersect did not always return a basis
|
|||
|
112- nfinit([T, listP]) could error out when a small prime
|
|||
|
outside listP divided the index [#1993]
|
|||
|
113- lfuntheta(1,1e50) -> overflow
|
|||
|
114- nfrootsof1 could return a t_POL (always return \pm 1 or a t_COL)
|
|||
|
115- oo-loop in msfromell [#1906]
|
|||
|
116- memory leak due to cgetg_block / gunclone_deep usage
|
|||
|
117- memory leak in ellminimalmodel when e memoized periods/roots components
|
|||
|
BA 118- [win32] plot colors were shifted by 1
|
|||
|
119- RgX_translate(P,c) with c equal to \pm 1 (e.g. as t_REAL or t_PADIC)
|
|||
|
incorrectly replaced c by its t_INT approximation [#1995]
|
|||
|
BA 120- matsupplement(Mod(matrix(5,1),2)) --> SEGV [#1996]
|
|||
|
121- PostScript engine: missing 'stroke' in plotbox method => some
|
|||
|
commands (e.g. colors) could be ignored
|
|||
|
122- sqrtnint(a,k) very inefficient for huge k [and huge a]
|
|||
|
123- powuu(0,1) -> SEGV
|
|||
|
124- mathnfmodid([;], t_VEC) did not correspond to specifications
|
|||
|
(always returned [;])
|
|||
|
125- matsolvemod([;],2,[]~) -> no solution [ instead of []~ ]
|
|||
|
126- a[1]=vector(10):a[1][1]=b;a[1]=vector(10); could leak memory [#1999]
|
|||
|
127- lcm(Pol(0),0) -> division by 0
|
|||
|
128- QX_complex_roots(a*x^n,) => SEGV
|
|||
|
BA 129- default(strictargs,1); my(a=2);(f(b,c)=123);f(1) => SEGV [#2004]
|
|||
|
130- factor(0.*x + 1) -> SEGV [#2005]
|
|||
|
131- sinh(x close to 0) -> loss of accuracy
|
|||
|
132- sinc(0.*I) -> division by 0
|
|||
|
133- wrong result in bnfinit due to loss of accuracy and unsufficient
|
|||
|
heuristics to detect it [#2007].
|
|||
|
{setrand(2);p=x^8-1661000*x^6+967427199776*x^4-230628391373468096*x^2
|
|||
|
+19278898978723566612544;bnfinit(p).cyc}
|
|||
|
=> [60,2,2,2,2,2,2,2,2,2] instead of [6,2]
|
|||
|
134- nffactor(y^8-y^6+y^4-y^2+1,x^4-1) -> concatenation error [#2009]
|
|||
|
135- vecsort / vecsearch: comparison function was required to assume
|
|||
|
integral values; allow t_INT, t_FRAC or t_REAL
|
|||
|
136- mathess was very unstable, and so was charpoly(,,2) [#2010]
|
|||
|
137- memory corruption in nffactor [#2013]
|
|||
|
BA 138- partitions(1,[0,5],[3,4]) -> incorrect result
|
|||
|
139- quadclassunit(-699,,[6,6]) -> SEGV [#2015]
|
|||
|
140- intnum would lose accuracy when using more control points, e.g.
|
|||
|
intnum(x=0,1,x*cos(Pi*x), 2) at \p100 [#2014]
|
|||
|
141- polcoeff(t_SER) -> incorrect types and values
|
|||
|
polcoeff(1/(1+x+y+O(y^2)+O(x^2)), 1,y) -> 2*x-1 [now -1+2*x+O(x^2)]
|
|||
|
polcoeff(y+O(y^2), 0, x) -> 0 [now y+O(y^2)]
|
|||
|
142- ellperiods([1,0.1 + I/10^50]) -> division by 0
|
|||
|
143- nfmodpr(nfinit(x),[],[]~) -> SEGV [#2020]
|
|||
|
144- nfisisom(nfinit(x^2+4),x^2+1) -> reverse isomorphism [#2022]
|
|||
|
145- forbid ellinit(E/Qp, prime != p or 1.0)
|
|||
|
146- elllocalred(non integral E/nf,p) -> wrong result
|
|||
|
147- ellorder(E/Q, P with t_FFELT entries) not accepted [ t_INTMOD was ]
|
|||
|
148- missing GC in lfuntheta
|
|||
|
149- implementation of newblock was incompatible with getheap(). Now we
|
|||
|
always include the 'block' size in the header.
|
|||
|
150- gamma(0.0+1/2*x+O(x^2)) -> domain error in factorial
|
|||
|
151- affrr(0.0, x) did not reset the exponent correctly: use
|
|||
|
min(expo(0.0), bit_accuracy(lg(x)))
|
|||
|
152- matkerint could be exponentially slow; guarantee polynomial time
|
|||
|
(drawback: slows down some classes of matrices) [#2034]
|
|||
|
153- ellminimaltwist did not check that E is defined over Q
|
|||
|
154- padicappr('x,Mod(0,'t^2+1)+O(7^10)) -> SEGV [#2036]
|
|||
|
155- allow \r "foo bar" (quotes around file names are optional for
|
|||
|
\l,\r, \w; they allow filenames with spaces) [#2035]
|
|||
|
156- memory leak in polclass()
|
|||
|
AP 157- fix integrality condition in algsubalg/algquotient/algcentralproj
|
|||
|
158- factorpadic gave wrong results at low accuracy
|
|||
|
|
|||
|
Added
|
|||
|
1- [libari] ZM_isidentity
|
|||
|
2- [libpari] rename buchnarrow -> bnfnarrow
|
|||
|
3- [libpari] ZX_radical
|
|||
|
BA 4- [gmp] support for mpn_divexact_1
|
|||
|
BA 5- parallel fflog in characteristic at most 5
|
|||
|
BA 6- parallel znlog for large characteristic
|
|||
|
7- [libpari] u_chinese_coprime
|
|||
|
BA 8- new GP function elltamagawa
|
|||
|
9- [libpari] RgX_rescale_to_int, RgM_rescale_to_int
|
|||
|
BA 10- [libpari] Flx_digits/FlxV_Flx_fromdigits
|
|||
|
11- new argument (multiple derivation) in GP function derivnum
|
|||
|
12- allow matrix(n) for n x n matrices
|
|||
|
13- new GP functions nfeltsign, nfeltembed, nfpolsturm
|
|||
|
HC 14- new GP functions sumnumap, sumnumapinit (Abel-Plana summation)
|
|||
|
HC 15- new GP functions zetamultall, zetamultconvert
|
|||
|
16- allow t_VECSMALL for vecsort [already there but undocumented] and
|
|||
|
vecsearch [already there but prevented by a typo]
|
|||
|
CG 17- new GP function matpermanent [#1860]
|
|||
|
18- [libpari] hammingl, RgM_is_QM, vecsmall_prod, zm_permanent,
|
|||
|
ZM_permanent
|
|||
|
19- lfuncreate: no longer assume Ramanujan-Petersson, allow specifying
|
|||
|
an arbitrary growth rate a_n = O(n^(k_1 + eps))
|
|||
|
BA 20- new GP function vecprod
|
|||
|
21- new GP function znchar
|
|||
|
VD 22- new GP functions forperm, forsubset
|
|||
|
PB 23- [libpari] F2xqM_F2xqC_gauss F2xqM_F2xqC_invimage F2xqM_gauss F2xqM_invimage
|
|||
|
FlxqM_FlxqC_invimage FlxqM_invimage
|
|||
|
FqM_FqC_invimage FqM_invimage
|
|||
|
gen_matcolinvimage gen_matinvimage
|
|||
|
FFM_FFC_invimage FFM_FFC_gauss FFM_gauss FFM_invimage
|
|||
|
24- new GP function polrootsbound
|
|||
|
HC 25- new GP functions prodeulerrat, sumeulerrat, sumnumrat, prodnumrat
|
|||
|
HC 26- new GP function zetahurwitz
|
|||
|
27- [libpari] sqrtnr_abs
|
|||
|
28- binomial(x,k): allow omitting k [ => vecbinomial ]
|
|||
|
VD 29- [libpari] forperm_init, forperm_next, forperm, forallsubset_init,
|
|||
|
forallsubset_next, forksubset_init, forksubset_next, forsubset
|
|||
|
30- [libpari] lindep_bit
|
|||
|
BA 31- new GP function ellbsd
|
|||
|
32- new GP function poldiscfactors
|
|||
|
33- [libpari] FpX_gcd_check
|
|||
|
34- [libpari] str_init, str_printf, str_putc, str_puts
|
|||
|
35- new GP function printp [ used to exist with a slightly different
|
|||
|
meaning: pretty format vs prettymatrix ]
|
|||
|
36- new GP function sumnumlagrange, sumnulagrangeinit
|
|||
|
37- [libpari] int2um1 (for 2^n - 1)
|
|||
|
38- Fl_powu: special purpose code when base is 2
|
|||
|
39- [libpari] vecpowuu, vecpowug
|
|||
|
40- [libpari] zerovec_block
|
|||
|
41- [libpari] Z_ZV_mod_tree
|
|||
|
42- [libpari] vecvecsmall_max, vecsmall_to_vec_inplace
|
|||
|
43- new GP function zetamultinit
|
|||
|
BA 44- new GP functions permorder, permsign
|
|||
|
BA 45- new GP function galoisconjclasses
|
|||
|
AP 46- new GP functions galoischartable, alggroupcenter, algmakeintegral
|
|||
|
47- [libpari] Flxn_inv
|
|||
|
48- new GP function chargalois
|
|||
|
49- [libpari] expose znstar internal interface: znstar_get_N,
|
|||
|
znstar_get_conreycyc, znstar_get_conreygen, znstar_get_faN, znstar_get_no,
|
|||
|
znstar_get_pe, znstar_get_Ui, checkznstar_i
|
|||
|
50- [libpari] coreu_fact, moebiusu_fact
|
|||
|
51- [libpari] ZabM_ker, ZabM_indexrank, ZabM_inv, ZabM_pseudoinv,
|
|||
|
BA 52- [libpari] stack_malloc_align
|
|||
|
PB 53- [libpari] FFM_deplin, FFM_indexrank, FFM_suppl F2xqM_deplin,
|
|||
|
F2xqM_indexrank, F2xqM_suppl FlxqM_deplin, FlxqM_indexrank, FlxqM_suppl
|
|||
|
FqM_indexrank
|
|||
|
JD 54- [plot] SVG support
|
|||
|
55- [libpari] upper_to_cx, cxredsl2, cxredsl2_i
|
|||
|
56- new GP function charpow
|
|||
|
57- [libpari] ZM_pseudoinv
|
|||
|
58- [libpari] ulogintall, ulogint, umuluu_or_0, QXQV_to_FpM, ZM_ZX_mul,
|
|||
|
RgM_RgX_mul
|
|||
|
59- new GP function ellminimaldisc
|
|||
|
60- [libpari] rfracrecip_to_ser_absolute, RgV_to_ser
|
|||
|
61- new GP function znchardecompose, zncharconductor, znchartoprimitive
|
|||
|
PB 62- [libpari] perm_sign
|
|||
|
PB 63- [libpari] FlxC_neg FlxC_sub FlxM_neg FlxM_sub FlxqC_Flxq_mul
|
|||
|
FlxqM_Flxq_mul zero_FlxC zero_FlxM
|
|||
|
PB 64- asymptotically fast linear algebra using CUP decomposition
|
|||
|
65- [libpari] nf_get_zkden, nf_get_zkprimpart
|
|||
|
66- [libpari] idealprimedec_galois, idealprimedec_degrees
|
|||
|
67- [libpari] idealaddtoone_raw, ZM_hnfmodprime, pr_hnf
|
|||
|
BA 68- new GP functions hyperellratpoints and ellratpoints based on
|
|||
|
Michael Stoll ratpoints code.
|
|||
|
69- [libpari] Z_pollardbrent, Z_ECM
|
|||
|
70- [libpari] RgX_mulhigh_i
|
|||
|
71- GP function znchargauss
|
|||
|
72- Configure --graphic=svg
|
|||
|
73- GP function divisorslenstra (divisors in residue classes)
|
|||
|
74- [libpari] lg_increase, vecfactoru, vecfactoru_i, vecfactoroddu,
|
|||
|
vecfactoroddu_i, vecfactorsquarefreeu
|
|||
|
BA 75- ellheight for curves over number fields
|
|||
|
76- new GP function forfactored
|
|||
|
77- [libpari] ZV_sort_inplace
|
|||
|
BA 78- ellrootno for curves over number fields
|
|||
|
79- optional flag to 'divisors' (add factorization)
|
|||
|
80- GP functions fordivfactored
|
|||
|
BA 81- [libpari] ZXQM_mul, ZXQM_sqr, QXQM_mul, QXQM_sqr
|
|||
|
82- [libpari] ZX_z_unscale
|
|||
|
83- [libpari] Flxn_mul
|
|||
|
BA 84- [libpari] FlxqX_is_squarefree, FlxqX_nbfact, RgX_to_FlxqX
|
|||
|
85- [libpari] RgX_addmulXn, RgX_addmulXn_shallow, RgX_addspec,
|
|||
|
RgX_addspec_shallow
|
|||
|
BA 86- GP functions galoischardet, galoischarpoly
|
|||
|
87- [libpari] mulcxpowIs
|
|||
|
BA 88- [libpari] function RgXn_sqrt
|
|||
|
KB+HC89- new package 'mf' for modular forms; new GP functions
|
|||
|
getcache lfunmf mfDelta mfEH
|
|||
|
mfEk mfTheta mfatkin mfatkineigenvalues
|
|||
|
mfatkininit mfbasis mfbd mfbracket
|
|||
|
mfcoef mfcoefs mfconductor mfcosets
|
|||
|
mfcuspisregular mfcusps mfcuspval mfcuspwidth
|
|||
|
mfderiv mfderivE2 mfdescribe mfdim
|
|||
|
mfdiv mfeigenbasis mfeigensearch mfeisenstein
|
|||
|
mfembed mfeval mffields mffromell
|
|||
|
mffrometaquo mffromlfun mffromqf mfgaloistype
|
|||
|
mfhecke mfheckemat mfinit mfisCM
|
|||
|
mfisequal mfkohnenbasis mfkohnenbijection mfkohneneigenbasis
|
|||
|
mflinear mfmanin mfmul mfnumcusps
|
|||
|
mfparams mfperiodpol mfperiodpolbasis mfpetersson
|
|||
|
mfpow mfsearch mfshift mfshimura
|
|||
|
mfslashexpansion mfspace mfsplit mfsturm
|
|||
|
mfsymbol mfsymboleval mftaylor mftobasis
|
|||
|
mftocoset mftonew mftraceform mftwist
|
|||
|
90- [libpari] ZV_cba, Z_cba_extend
|
|||
|
91- [libpari] RgV_is_ZVpos, RgV_is_ZVnon0
|
|||
|
JA 92- GP functions primecert, primecertexport, primecertisvalid (ECPP).
|
|||
|
93- [libpari] ncharvecexpo
|
|||
|
94- [libpari] rootsof1q_cx, rootsof1powinit, rootsof1pow
|
|||
|
BA 95- [libpari] RgX_digits
|
|||
|
96- [libpari] Q_content_safe
|
|||
|
BA 97- ellisomat: support for curve over finite field without CM
|
|||
|
98- GP function: bestapprnf
|
|||
|
99- [libpari] vec_prepend, lindepfull_bit
|
|||
|
BA 100- [libpari] QX_mul/QX_sqr/QX_ZX_rem, FFX_mul/FFX_sqr/FFX_rem,
|
|||
|
RgX_mul_i/RgX_sqr_i, ZXQX_mul/ZXQX_sqr
|
|||
|
BA 101- [libpari] Rg_type, RgX_type2, RgX_type3,
|
|||
|
RgM_type, RgM_type2, RgM_RgC_type
|
|||
|
BA 102- RgX_mul/RgX_sqr: support for coefficient ring detection
|
|||
|
BA 103- [libpari] FlxqXQ_auttrace
|
|||
|
BA 104- [libpari] F2xX_F2x_add, FlxX_Flx_sub, FqX_Fq_sub
|
|||
|
BA 105- [libpari] F2x_get_red, get_F2x_mod, get_F2x_var, get_F2x_degree,
|
|||
|
F2xqX_get_red, get_F2xqX_mod, get_F2xqX_var, get_F2xqX_degree
|
|||
|
106- [libpari] vecmoduu, quadclassno, mkfracss, sstoQ, Qtoss
|
|||
|
107- [libpari] znchar_quad
|
|||
|
VD 108- [libpari] closure_func_err
|
|||
|
BA 109- [libpari] F2xqX_extgcd, F2xqXQ_inv, F2xqXQ_invsafe, FFXQ_inv
|
|||
|
BA 110- [libpari] ZV_nv_mod_tree, ZM_nv_mod_tree, ZXC_nv_mod_tree,
|
|||
|
ZXM_nv_mod_tree
|
|||
|
BA 111- [libpari] FF_gen, FF_map, FFX_preimage, FF_Frobenius
|
|||
|
BA 112- New GP functions ffembed, ffmap, ffinvmap, ffcompomap, ffextend,
|
|||
|
fffrobenius
|
|||
|
113- [libpari] cx_approx_equal
|
|||
|
BA 114- [libpari] F2xqX_ispower, FlxqX_ispower, FpXQX_ispower, FFX_ispower,
|
|||
|
FpX_ispower, FqX_to_mod, FqM_to_mod, RgC_to_FqC, RgM_to_FqM,
|
|||
|
QXQC_to_mod_shallow, QXQM_to_mod_shallow
|
|||
|
BA 115- [libpari] ZC_Q_mul, ZM_Q_mul, ZX_Q_mul, QM_mul, QM_det, QM_ker
|
|||
|
BA 116- [libpari] Fl_log, Fl_log_pre, Fl_sqrtn, Fl_sqrtn_pre
|
|||
|
BA 117- [libpari] Flc_Flv_mul, Flm_adjoint, Flm_powers
|
|||
|
118- New GP function exponent()
|
|||
|
BA 119- [libpari] ZXM_init_CRT, ZXM_incremental_CRT
|
|||
|
120- [libpari] numdivu, numdivu_fact, gexpo_safe
|
|||
|
BA 121- [libpari] FpXC_center, FpXM_center
|
|||
|
BA 122- [libpari] nxV_chinese_center, nxCV_chinese_center, nxMV_chinese_center
|
|||
|
AP 123- New GP functions matdetmod, matimagemod, matinvmod, matkermod
|
|||
|
BA 124- [libpari] Z_content
|
|||
|
125- [libpari] checkMF, checkMF_i, checkmf_i, inv_content
|
|||
|
BA 126- [libpari] F2xqXQ_inv, F2xqXQ_invsafe, F2xqX_invBarrett, Flc_Flv_mul
|
|||
|
coprimes_zv
|
|||
|
127- New GP functions msdim, mslattice, mspetersson, mspolygon,
|
|||
|
ellweilcurve, ellpadicbsd, ellpadicregulator
|
|||
|
BA 128- New GP function lfuntwist
|
|||
|
129- [libpari] mkmat22, mkmat22s, Qp_agm2_sequence, Qp_ascending_Landen,
|
|||
|
Qp_descending_Landen
|
|||
|
BA 130- [libpari] famat_pows_shallow, famat_mulpows_shallow
|
|||
|
131- [libpari] QXQ_div_ratlift, ZM_equal0, QM_ImZ_hnfall, QM_ImQ_hnfall
|
|||
|
BA 132- [libpari] ZXn_mul, ZXn_sqr, FpXn_mul, FpXn_sqr, RgXn_recip_shallow,
|
|||
|
FpXn_exp, FpX_Newton, FpX_fromNewton, FpX_Laplace, FpX_invLaplace
|
|||
|
BA 133- [libpari] FpX_integ, FpX_convol
|
|||
|
134- allow zeta(power series)
|
|||
|
135- New GP function laurentseries
|
|||
|
LGr 136- default(echo): new value echo = 2 [ print as is, incl. whitespace ]
|
|||
|
LGr 137- allow power series as limits for intnum()
|
|||
|
138- [libpari] uordinal
|
|||
|
BA 139- [libpari] QM_gauss, QM_rank, QM_indexrank, QM_QC_mul
|
|||
|
LGr 140- make TESTS="a b c" test-all to test only 'a' 'b' and 'c', e.g.
|
|||
|
'lfun', 'gamma' and 'lfuntype' (same for statest-all and dyntest-all)
|
|||
|
141- allow quaddisc(integer factorization matrix)
|
|||
|
142- New GP function forsquarefree
|
|||
|
143- allow matsolve(m,b) when m is only left-invertible
|
|||
|
BA 144- [libpari] QXQ_mul, QXQ_sqr, FFXQ_mul, FFXQ_sqr
|
|||
|
145- New GP function idealispower
|
|||
|
BA 146- New GP function idealredmodpower
|
|||
|
147- 'ms' modular symbol package: support N = 1 as well
|
|||
|
148- allow mssplit(M), splits msnew(M) by default
|
|||
|
BA 149- [libpari] FpXQXn_mul, FpXQXn_sqr, FqXn_mul, FqXn_sqr
|
|||
|
150- New GP functions plothexport, plothrawexport, plotexport
|
|||
|
151- plotcolor(w, col) now allows color names (t_STR) or [R,G,B] values
|
|||
|
152- allow a t_STR composed of # + 6 hex digits for colour names
|
|||
|
153- isprime(,3): use ECPP
|
|||
|
154- new GP function log1p [#1829]
|
|||
|
BA 155- qfisom: allow to give the automorphism group of the second lattice
|
|||
|
156- optional argument to idealfactor [limit factorization]
|
|||
|
157- [libpari] idealHNF_Z_factor_i, idealfactor_limit, famat_div_shallow,
|
|||
|
Q_factor, Q_factor_limit, vecsquarefreeu, gprec_wensure
|
|||
|
158- vecsort / vecsearch: allow sort/search wrt to a "key" (closure with
|
|||
|
arity 1)
|
|||
|
159- [libpari] forprimestep_init
|
|||
|
160- allow forstep(a,b, Mod(c,q), ...)
|
|||
|
161- new GP function forprimestep
|
|||
|
162- [libpari] RgX_sylvestermatrix
|
|||
|
163- [libpari] Rg_to_Fq, Fp_invgen
|
|||
|
BA 164- [libpari] F2xqX_factor_squarefree, FlxqX_factor_squarefree,
|
|||
|
FpXQX_factor_squarefree, FqX_factor_squarefree, FFX_factor_squarefree
|
|||
|
BA 165- [libpari] FpXX_integ, FpXX_halve, FqX_halve, FpXQXn_exp, FqXn_exp,
|
|||
|
FqX_integ
|
|||
|
166- new file Ser.c
|
|||
|
BA 167- [libpari] FpXn_inv, FpXQXn_inv, FqXn_inv
|
|||
|
BA 168- New file GP interface: fileclose fileextern fileflush fileopen
|
|||
|
fileread filereadstr filewrite filewrite1
|
|||
|
BA 169- [libpari] Flx_ddf, F2x_ddf, FpX_ddf, F2xqX_ddf, FlxqX_ddf, FpXQX_ddf,
|
|||
|
FqX_ddf, FFX_ddf
|
|||
|
F2xqX_degfact, FlxqX_degfact, FpXQX_degfact, FqX_degfact, FFX_degfact
|
|||
|
170- new GP functions factormodSQF, factormodDDF
|
|||
|
171- [libpari] umuluu_le, ugcdiu, ugcdui, ulcm
|
|||
|
172- [libpari] Fp_center_i, FpX_center_i
|
|||
|
173- [libpari] hclassno6, hclassno6u
|
|||
|
BA 174- New GP function lfunsympow
|
|||
|
BA 175- nfsplitting: support for reducible polynomials
|
|||
|
AP 176- new GP functions alglatadd, alglatcontains, alglatelement, alglathnf,
|
|||
|
alglatindex, alglatinter, alglatlefttransporter, alglatmul,
|
|||
|
alglatrighttransporter, alglatsubset
|
|||
|
AP 177- new GP function algsplit
|
|||
|
|
|||
|
Changed
|
|||
|
1- rewrite bnfnarrow
|
|||
|
2- the bid struct from idealstar has been changed, the new format is
|
|||
|
not compatible with pari-2.9
|
|||
|
3- bnrdisclist output is now an ordinary vector (not a vector of vectors)
|
|||
|
4- made nfsign() / nfsign_arch() reliable [ use algebraic method
|
|||
|
besides floating point approximation to real embeddings ]
|
|||
|
5- support ??refcard-ell (or mf/nf/lfun)
|
|||
|
6- [libpari internals] bnrinit(,,1) [with generators] is no longer
|
|||
|
necessary for bnrsurjection()
|
|||
|
7- bnrinit(,,1) is no longer necessary for bnrL1, bnrconductor,
|
|||
|
bnrrootnumber, bnrstark, rnfkummer, galoissubcyclo
|
|||
|
8- msfromell: use a (much faster) modular algorithm, allow a vector
|
|||
|
of isogenous curves
|
|||
|
9- mseval(W,s,p): allow 2x2 matrix for the path 'p' argument
|
|||
|
10- allow mseval(W, t_MAT, p) to evaluate many symbols simultaneously
|
|||
|
11- allow polrootsreal() and polsturm() with non-rational real polynomials
|
|||
|
(input is rounded first)
|
|||
|
BA 12- FlxX_shift did not support negative (left) shift.
|
|||
|
BA 13- [libpari] rename FpX_fromdigits -> FpXV_FpX_fromdigits,
|
|||
|
FpXQX_fromdigits -> FpXQXV_FpXQX_fromdigits
|
|||
|
14- made lngamma(t_COMPLEX) faster
|
|||
|
15- made sumnummonieninit(,1) faster
|
|||
|
HC 16- sumnummonieninit(a) for [a,a] did not conform to documentation.
|
|||
|
Change to sumnummonieninit(b) for [1,b]
|
|||
|
17- improve prime() and primepi() by adding more checkpoints [#1878]
|
|||
|
18- lfun(Dirichlet character): switch automatically to lfunchiquad
|
|||
|
(Kronecker) if char has order <= 2
|
|||
|
19- nfchecksigns: replace by rigorous algorithm
|
|||
|
20- asympnum: better tunings => usually finds more terms
|
|||
|
21- extended help: make ?? op work for ALL operators (=> GP operators@2)
|
|||
|
22- idealstar(,N) : always include generators, for all values of flag
|
|||
|
[ this is cheap, allowing not to compute it doesn't make much sense;
|
|||
|
and G.gen is now always defined. ]
|
|||
|
23- let ellsea call the generic algorithm when q <= 523 to avoid an oo-loop
|
|||
|
24- sqrtnr algorithm (Newton iteration instead of exp(log(x)/n)
|
|||
|
BA 25- quadgen/quadunit: allow to specify the variable name instead of w.
|
|||
|
26- [libpari] rename vecbinome -> vecbinomial
|
|||
|
27- [libpari] rename padic_lindep -> lindep_padic, Xadic_lindep ->
|
|||
|
lindep_Xadic
|
|||
|
28- x^(t_FRAC) use sqrtnr if possible
|
|||
|
BA 29- keri replaced by ZM_ker (use modular algorithm)
|
|||
|
30- lfuncreate() change of format for (p,d)->Lp closure:
|
|||
|
- Lp here and in bad primes [p,Lp] must now use the actual local
|
|||
|
factor and not its inverse
|
|||
|
- d is now the exact number of terms needed (was 1 less), i.e.
|
|||
|
one need only return Lp + O(x^d)
|
|||
|
- bad primes are given as a separate 2nd component:
|
|||
|
[Lp, [[p1,L1],...[pk,Lk]]], not as [Lp, [p1,L1],...[pk,Lk]]
|
|||
|
31- faster nfgaloismatrix / nfgaloisapply(nf,s, ideal)
|
|||
|
32- nf struct: nf[7] now stores nf.zk / content(nf.zk). Old format is
|
|||
|
still supported (to read in data involving old-style nf generated by
|
|||
|
gp version < 2.10) but incurs a small speed penalty.
|
|||
|
JD 33- move plotport.c to libpari
|
|||
|
34- default window size for hi-res plots using --graphic=X
|
|||
|
35- component(t_POL T, n) used to return polcoeff(T, n-1) for all n >= 1
|
|||
|
[ undocumented compatibility behaviour, deprecated since the
|
|||
|
introduction of polcoeff ], and raised an exception for n <= 0.
|
|||
|
Now returns a true GEN component whenever it exists and raises an
|
|||
|
exception when it does not [ n <= 0 or n > polcoeff(T)+1 ].
|
|||
|
BA 36- Fl_addmul_pre: change arguments order to follow Fp_addmul convention
|
|||
|
37- issquarefree / isfundamental with integer argument: allow factored form
|
|||
|
38- change polred-type algorithm to return 'x' (no longer 'x-1') for
|
|||
|
the field of rational numbers (make it consistent with polredabs)
|
|||
|
BA 39- ellisomat(E,{fl}) is now ellisomat(E,{p},{fl}) (p degree of isogenies)
|
|||
|
40- the definition used in polred / polredbest / polredabs to decide
|
|||
|
what is the "best" polynomial to return
|
|||
|
41- removed resultant_all, use RgX_resultant_all
|
|||
|
42- polresultant: no longer compute the content of arguments
|
|||
|
(potentially very expensive for a generically small gain)
|
|||
|
43- support Q(i) in Q_denom / Q_remove_denom
|
|||
|
BA 44-[libpari] rename {FpXQXQ,FlxqXQ,F2xqXQ}V_aut{sum,trace,pow} to
|
|||
|
{FpXQXQ,FlxqXQ,F2xqXQ}_aut{sum,trace,pow}
|
|||
|
BA 45-[libpari] FpXQXQ_auttrace now identical to FpXQ_auttrace
|
|||
|
BA 46-[libpari] RgX_type now only handles polynomials.
|
|||
|
47-log: change threshold between Taylor / AGM when x close to a power
|
|||
|
of 2 [#1934]
|
|||
|
48-[libpari] ZM_inv and QM_inv interface
|
|||
|
49- K.tu[2]: make it a t_INT if possible, else a t_POLMOD
|
|||
|
50- removed warning "Mod(a,b)^n with n >> b : wasteful"
|
|||
|
51- ellpadicmatrix now returns a pair of matrices (instead of a matrix
|
|||
|
whose entries are pairs of values)
|
|||
|
52- ellpadicheight and ellpadicmatrix no longer accept [p,[a,b]]
|
|||
|
arguments; use * [a,b]~
|
|||
|
53- ellpadics2: allow curves with multiplicative reduction
|
|||
|
54- E/Qp now allowed in ellcard, ellap, ellgroup, ellissupersingular,
|
|||
|
ellpadicfrobenius, ellpadics2, ellintegralmodel, elllocalred
|
|||
|
55- E/Qp convert coefficient to exact form using centered residues
|
|||
|
56- msissymbol now returns a GEN (gen_0/gen_1) instead of a long, allow
|
|||
|
t_MAT arguments and return a vector of 0/1 in this case.
|
|||
|
57- allow mseval(M, t_MAT)
|
|||
|
58- change 'debugmem' default value to 1;
|
|||
|
no memory-related message at value 0 (not recommended under gp).
|
|||
|
BA 59- V=galoisfixedfield(,,2): return V[1] in the same variable as the
|
|||
|
coeffs of V[3] instead of P.
|
|||
|
60- numtoperm now returns a t_VECSMALL (so that results can be
|
|||
|
multiplied as permutations, etc.), no longer a ZV
|
|||
|
61- improve Fp_sqrt for p = 5 (mod 8) [Atkin's formula]
|
|||
|
62- improved matrixqz(,‐1 or -2) by using matkermod
|
|||
|
63- The functions psdraw, psploth and psplothraw and the default psfile
|
|||
|
are obsolete. Use one of plotexport, plothexport or plothrawexport
|
|||
|
with format "ps" and write the result to file.
|
|||
|
AP 64- new implementation of matsolvemod; old matsolvemod0 is deprecated
|
|||
|
65- plotcolor(w,c) now returns the [R,G,B] value attached to c
|
|||
|
66- allow plotdraw(w) for plotdraw([w,0,0])
|
|||
|
67- allow isprime(n) to use ECPP
|
|||
|
68- isprime(n,1) no longer outputs a certificate, use primecert(n)
|
|||
|
69- isprime(n,1) no longer uses APRCL for large prime divisors of n-1
|
|||
|
(pure Pocklington-Lehmer-Selfridge); use primecert(n).
|
|||
|
70- getrand() encoded results in a way that depended on 32bit/64bit arch
|
|||
|
71- thue(p, rhs) is much easier when p has no real roots; don't insist
|
|||
|
on computing bnfinit(p) in this case [#2003]
|
|||
|
72- use Newton in expm1
|
|||
|
73- change rnfpolredabs so that it outputs a canonical polynomial. As a
|
|||
|
result, the function is no longer Obsolete.
|
|||
|
74- allow polrecip(scalar x) -> x
|
|||
|
75- extend factormod(f, D) for general finite fields: D = p prime
|
|||
|
[over Fp], D = [T,p] (over Fp[x]/(T)), or omited [over field of
|
|||
|
definition of f]. Same for polrootsmod.
|
|||
|
76- factorff and polrootsff are now obsolete. Use factormod/polrootsmod
|
|||
|
77- Ser(s, 'x, d) now always return a series with d significant terms.
|
|||
|
It used to return a t_SER s in 'x verbatim and to use all given
|
|||
|
coefficients for a t_VEC/t_COL. Only if d is explicitly given,
|
|||
|
no change for Ser(s,'x)
|
|||
|
78- elllocalred, ellap, ellcard, ellissupersingular, ellgroup(,0):
|
|||
|
allow models which are not p-integral
|
|||
|
79- ellgroup: allow E over number field
|
|||
|
80- factorback([;]) is now invalid [ [;] is not the empty factorization,
|
|||
|
factor(1) = matrix(0,2) is ]
|
|||
|
81- cmpiu / cmpiu, equaliu / equalui : no longer assume that t_INT argument
|
|||
|
is non-negative
|
|||
|
82- rename diviu_rem -> absdiviu_rem, udiviu_rem -> uabsdiviu_rem,
|
|||
|
udivui_rem -> uabsdivui_rem
|
|||
|
83- allow E.omega, E.eta, E.area for E over number field
|
|||
|
84- ellpointtoz for E over number field
|
|||
|
AP 85- algnorm, algtrace and algcharpoly now have an optional flag to get the
|
|||
|
absolute version over an alginit algebra
|
|||
|
AP 86- renamed algsplittingmatrix -> algtomatrix
|
|||
|
AP 87- algleftmultable now always returns the multiplication table on the
|
|||
|
integral basis
|
|||
|
AP 88- merge algdecomposition + algsimpledec -> algsimpledec
|
|||
|
AP 89- algpoleval: new syntax for matrix argument algpoleval(al,pol,[x,mx])
|
|||
|
BA 90- ellmoddegree: return only the modular degree, do not depend on current
|
|||
|
precision.
|
|||
|
91- polsturm: allow non-squarefree polynomials (count distinct roots)
|
|||
|
AP 92- merge algdim + algdim -> algdim(,{abs=0})
|
|||
|
AP 93- merge algleftmultable + algtomatrix -> algtomatrix(,{abs=0})
|
|||
|
|
|||
|
Removed
|
|||
|
1- file 'MACHINES' (no longer maintained)
|
|||
|
2- useless argument nf in ZC_nfval, ZC_nfvalrem, pr_equal, ZC_prdvd
|
|||
|
3- useless flag argument in polrootsmod
|
|||
|
4- [libpari] useless function Flx_roots_naive; rootmod and rootmod2
|
|||
|
are now an alias for polrootsmod (both have been deprecated for years)
|
|||
|
rootmod0 is just as obsolete.
|