Bill Allombert on Wed, 22 Apr 2009 11:42:43 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: problem turning simple pari code into script |
On Tue, Apr 21, 2009 at 11:42:46PM -0400, Rob Denomme wrote: > Hi all, > I have a list of commands that I can evaluate one at a time in the GP > calculator, but I cannot get them to work in a script. In the following I > have pointed out exactly what fails, but provided some more code that I am > unsure will work once this problem is fixed. The script that doesn't > function is given below... Hello Rob, The problem you have is due to an incorrect use of braces: your script should work if you remove the braces. Normally, GP command are separated by newlines. To write a multiline command, we enclose it in braces: inside braces, newlines are ignored. However, functions are terminated by newline, so a function written inside braces will not end until the end of the braces. So here, the function f scope includes 'Norman = Mod(1,q^2);' and everything afterward. Cheers, Bill. > /* > * Example of what doesn't work (not important exactly what it does, but if > interested...) > * computes Norm(1-x^q) from the cyclotomic field Q(x), (x^p=1) > * to the field fixed by the Sylow-q subgroup of the Galois group > */ > { > p=127; > q=3; /* p, q primes */ > n=valuation(p-1,q); > h= znprimroot(p)^((p-1)/(q^n)); > > T=polcyclo(p); > /* note T=polcyclo(p) works just fine, T is now a polynomial in x */ > > f(x) = (1-x^q) % T; > /* this is the line that screws up in a script, > * but works when input to the gp calculator > */ > > Norman = Mod(1,q^2); > for(i=1,q^n,Norman*=Mod(f(x^( lift(h^i) )),T) ); > /* Once the above error is fixed will the above line work like I expect? > * i.e. will this think of Norman being in Z[x]/(q^2,T) > */ > > /* lift(lift(Norman)) will now print the norm of (1-x^q) > * where x is a primitive p-th root of unity > */ > }