Joerg Arndt on Mon, 10 Apr 2006 12:17:05 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Pol problem (bug?) |
* Karim Belabas <Karim.Belabas@math.u-bordeaux1.fr> [Apr 10. 2006 11:50]: > * Joerg Arndt [2006-04-09 11:27]: > > I do not see a system here: > > > > ? Pol([a,b,c]) > > a*x^2 + b*x + c > > ? Pol([a,b,c],d) > > a*d^2 + b*d + c > > ? Pol([a,b,c],x) > > a*x^2 + b*x + c > > ? Pol([a,x,c]) > > a*x^2 + x*x + c > > ? Pol([a,x,c],'x) > > a*x^2 + x*x + c > > > > ? Pol([a,x,c],'x_) > > *** Pol: main variable has highest priority in gtopoly. > > ? Pol([a,x,c],'a_) > > *** Pol: main variable has highest priority in gtopoly. > > ? Pol([a,x,c],'z_) > > *** Pol: main variable has highest priority in gtopoly. > > I have reworded the error message and fixed an off-by-1 problem. The > correct behaviour (current CVS, clean session) is Fine, thanks. > > ? Pol([a,b,c]) > %1 = a*x^2 + b*x + c > ? Pol([a,b,c],d) > *** Pol: variable must have higher priority in gtopoly. > ? Pol([a,b,c],x) > %2 = a*x^2 + b*x + c > ? Pol([a,x,c]) > *** Pol: variable must have higher priority in gtopoly. > ? Pol([a,x,c],'x) > *** Pol: variable must have higher priority in gtopoly. > ? Pol([a,x,c],'x_) > *** Pol: variable must have higher priority in gtopoly. > ? Pol([a,x,c],'a_) > *** Pol: variable must have higher priority in gtopoly. > ? Pol([a,x,c],'z_) > *** Pol: variable must have higher priority in gtopoly. > > > what is a "main variable"? > > (09:38) gp > ??Pol > Pol(x,{v = x}): > > transforms the object x into a polynomial with main variable v. [...] > Warning: this is not a substitution function. It will not transform an > object containing variables of higher priority than v. > > ? Pol(x + y, y) > *** Pol: variable must have higher priority in gtopoly. > > See also Section 2.5.4 (p. 39, current CVS) of the User's manual, on > "Variable priorities, multivariate objects" I'll do that. > > > There does not seem to be a workaround. > > There might be. What are you trying to achieve ? I compute recurrences via modular polynomial exponentiation, see http://www.jjj.de/pari/fastrec.inc.gp The (topmost) function vec2charpol() used by frec() (bottom of file) fails sometimes with symbolic recursions, e.g. when trying to compute Fibonacci polynomials. ? frec([1,x],[2*x,-1],3) *** Pol: main variable has highest priority in gtopoly. ? frec([1,a],[2*a,-1],3) time = 0 ms. [4*a^3 - 3*a, 8*a^4 - 8*a^2 + 1] ? a=33; ? N=100000; ? f=frec([1,a],[2*a,-1],N)[1]; time = 46 ms. \\ same does not work with builtin: ? t=subst(poltchebi(N,x),x,a); *** poltchebi: the PARI stack overflows ! current stack size: 256000000 (244.141 Mbytes) [hint] you can increase GP stack with allocatemem() The frec() function allows to compute term of general (linear, homogeneous) recurrences very fast. Compare to the builtin fibonacci(): ? n=1000000; ? f=frec([0,1],[1,1],n)[1]; time = 57 ms. ? t=fibonacci(n); time = 38 ms. ? t-f 0 ... but you get any order: ? f=frec([0,0,0,1],[1,1,1,1],n)[1]; time = 352 ms. > > Cheers, > > K.B. > -- > Karim Belabas Tel: (+33) (0)5 40 00 26 17 > Universite Bordeaux 1 Fax: (+33) (0)5 40 00 69 50 > 351, cours de la Liberation http://www.math.u-bordeaux.fr/~belabas/ > F-33405 Talence (France) http://pari.math.u-bordeaux.fr/ [PARI/GP] All the best, jj P.S.: my attempt for SVD: http://www.jjj.de/pari/matsvd.inc.gp some hypergoemetric stuff: http://www.jjj.de/pari/hypergeom.inc.gp