| Bill Allombert on Thu, 18 Mar 2010 10:39:44 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Degree overflow in pow_monome - PARI |
On Wed, Mar 17, 2010 at 09:32:37PM -0500, Phat Tran wrote:
> *** degree overflow in pow_monome.
> *** Error in the PARI system. End of program.
>
> I got the error message above while running the codes in C using PARI/GP
> 2.3.5 under cygwin.
>
> GEN m = readseq("123456789");
> > GEN n = readseq("1234567");
> >
> > GEN a = readseq("7");
> > GEN c = readseq("8");
> >
> > GEN b = readseq("10358");
> > GEN d = readseq("49850");
> >
> >
> > GEN x = pol_x[fetch_user_var("x")];
> > GEN y = pol_x[fetch_user_var("y")];
> > GEN z = pol_x[fetch_user_var("a")];
> >
> > z = gpowgs(gmodulo(gadd(x, gmodulo(gadd(y, gmodulss(1, n)),
> > gsub(gpowgs(y, c), d))), gsub(gpowgs(x, a), b)), m);
Hello Minhphat,
If you compile that code with gcc -Wall, you get warning:
phat.c:19: warning: passing argument 2 of ïgmodulssï makes integer from pointer
without a cast
phat.c:20: warning: passing argument 2 of ïgpowgsï makes integer from pointer without a cast
phat.c:20: warning: passing argument 2 of ïgpowgsï makes integer from pointer without a cast
phat.c:20: warning: passing argument 2 of ïgpowgsï makes integer from pointer without a cast
The problem is that you are calling functions that expect long int with a GEN
argument. This cannot work.
For example: gmodulss(1, n) expect two "long int" but n is a GEN.
idem for gpowgs.
Cheers,
Bill.