Mike Rosing on Mon, 23 Feb 2015 22:07:26 +0100

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

Now what am I doing wrong?

I have a really simple program:

#include <pari/pari.h>

int main()
  GEN f, num, sum;
  int i, k;

  pari_init(2*1024*1024, 5*1024*512);
  f = factor(stoi(20765));
  pari_printf("%Ps\n", f);
  num = gel(f, 2);
  sum = gen_0;
  k =lg(num);
  for(i=1; i<=k; i++)
    sum = gadd(sum, gel(num, i));
    pari_printf("%d  %Pd\n", i, sum);
  return 0;

which dies at the end of the for loop:

$ ./bug-dyn
[5, 1; 4153, 1]
1  1
2  2
  ***   bug in PARI/GP (Segmentation Fault), please report.
  ***   Error in the PARI system. End of program.

The value of sum is always correct, but exiting the for loop crashes the program. What am I doing wrong?