Max Alekseyev on Wed, 29 Nov 2017 18:23:06 +0100


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

Re: Segmentation Fault in PARI library related to factoru_pow()


Bill, thank you for clarification!
I wonder though about the general idea behind using vectors vs small vectors. Say, why factoru_pow() returns 3-component vector while its components are small vectors? Why not using just small vectors (or just vectors) here?
Thanks,
Max

On Nov 29, 2017 11:37 AM, "Bill Allombert" <Bill.Allombert@math.u-bordeaux.fr> wrote:
On Wed, Nov 29, 2017 at 11:17:11AM -0500, Max Alekseyev wrote:
> This is my first attempt to use factoru_pow() function and I got
>
>   ***   bug in PARI/GP (Segmentation Fault), please report.  ***   Error in
> the PARI system. End of program.
>
> while running the following C++ code:
>
> ====
> #include <iostream>
> #include <pari/pari.h>
> int main()
> {
>     pari_init(1ull<<30,1000);
>     GEN F = gel( factoru_pow(4), 3 ); // prime powers
>     long nf = glength(F);                      // number of prime powers
>     for(long i=1; i<=nf; ++i) {
>        std::cout << itos( gel(F,i) ) << std::endl;
>     }
>   return 0;
> }
> ====
>
> Is anything wrong with my code and/or PARI library?

F is a t_VECSMALL, so you should do
F[i] and not itos( gel(F,i) )

Cheers,
Bill.