Jack Fearnley on Tue, 05 May 2009 17:05:13 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Updating an old C program which uses parilib


I am trying to run a program I wrote and ran successfully some years back. It computes Dirichlet twists of elliptic L-functions. The program uses lisGEN which seems no longer to exist. The usage is
ee = smallinitell(lisGEN(stdin));
where stdin contains [0,1,0,4,4] for example.

There seems to be no exact replacement for this function so I am using scanf to read the five coefficients as longs and then using mkvecn to package the coefficients into a vector.
scanf("%ld %ld %ld %ld %ld",&c1,&c2,&c3,&c4,&c5);
       printf("%ld %ld %ld %ld %ld \n",c1,c2,c3,c4,c5);
   eee=mkvecn(5,(GEN)c1,(GEN)c2,(GEN)c3,(GEN)c4,(GEN)c5);
   ee = smallinitell(eee);

Where ee and eee are defined as GEN.

The printed result is


0 1 0 4 4

 ***   segmentation fault: bug in PARI or calling program.
 ***   Error in the PARI system. End of program.

1) Is there an exact replacement for lisGEN?

2) Am I doing something stupid?

In previous variations to solve this problem I have encountered stack overflow and an 'undefined' gzero.

3) Where did gzero go?

Any help would be greatly appreciated.

Best regards,
                    Jack Fearnley