| 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/