Karim BELABAS on Mon, 14 Feb 2000 15:18:57 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: gisirreducible |
> I would like to use gisirreducible in a C program to test some > polynomials, but I really don't find the correct way of using this > function. > If I define pol as a polynomial, others functions (polroots, gsubst) > work perfectly well, but I don't know the type of gisirreducible(pol). > Is it an int, a t_INT? (15:03) gp > ??polisirreducible [...] The library syntax is gisirreducible(pol). There's no special mention so everything in sight (argument, return value) is a GEN. It would seem more logical for an apparently boolean function to return an int; but it's not boolean since you can apply it, e.g to vectors of polynomials (the result being a vector of boolean values). Applied to an ordinary polynomial the result should have type t_INT and be equal to gzero or gun [ don't use such hardcoded values though, the correct way to test is indeed "if (gcmp1(gisirreducible(pol))". ] > Attempts like > "output(gisirreducible(pol));" This is correct and should work, assuming pol is a valid GEN object. > "printf("%d\n",gisirreducible(pol));" This is syntactically valid but yields a completely unexpected result (the address of the returned GEN, typecast to a long). > "if(gcmp1(gisirreducible(pol)))" This is also correct. > and so on can always be compiled, but execution yields something like > > x^11 - 11*x^9 + 43*x^7 - 70*x^5 - 2*x^4 + 41*x^3 + 7*x^2 - 5*x - 2 > *** segmentation fault: bug in PARI or calling program. > > *** Error in the PARI system. End of program. What is the complete program ? None of the snippets above should output the polynomial: /* test.c */ #include <pari.h> main() { GEN pol; pari_init(1000000,100); pol = flisexpr("x^11-11*x^9+43*x^7-70*x^5-2*x^4+41*x^3+7*x^2-5*x-2"); output(gisirreducible(pol)); } (15:14)(*1) orkay-karim % gcc test.c -lpari -lm (15:14)(*1) orkay-karim % ./a.out 1 [It may also be a bug in your PARI library. Check the output of polisirreducible(pol) under GP] Hope this help, Karim. __ Karim Belabas email: Karim.Belabas@math.u-psud.fr Dep. de Mathematiques, Bat. 425 Universite Paris-Sud Tel: (00 33) 1 69 15 57 48 F-91405 Orsay (France) Fax: (00 33) 1 69 15 60 19 -- PARI/GP Home Page: http://hasse.mathematik.tu-muenchen.de/ntsw/pari/