PARI gp
Publié : mar. 29/août/2006 6:54
Je reviens avec des nouvelles sur la super calculatrice PARIgp.
Pour commencer, voici une doc en francais.
Bonne nouvelle egalement, a partir de la page 18, il y a des explications detaillées sur l'utilisation de ce logiciel via un autre (enfin, je crois). Comme je n'ai pas les competences, qq'un pourrait il regarder et me dire si c'est utilisable sous PB ??
Merci
Doc fr :
http://www.math.u-bordeaux.fr/~belabas/ ... igp-fr.pdf
Autre chose, le programme doit apparement commencé par :
Cela se peut il en PB ?
Voici un exemple de code :
Pour commencer, voici une doc en francais.
Bonne nouvelle egalement, a partir de la page 18, il y a des explications detaillées sur l'utilisation de ce logiciel via un autre (enfin, je crois). Comme je n'ai pas les competences, qq'un pourrait il regarder et me dire si c'est utilisable sous PB ??
Merci
Doc fr :
http://www.math.u-bordeaux.fr/~belabas/ ... igp-fr.pdf
Autre chose, le programme doit apparement commencé par :
Code : Tout sélectionner
#include <pari.h>
Voici un exemple de code :
Code : Tout sélectionner
#include <pari/pari.h>
/*
GP;install("extgcd", "GG&&", "gcdex", "./libextgcd.so");
*/
/* return d = gcd(a,b), sets u, v such that au + bv = gcd(a,b) */
GEN
extgcd(GEN A, GEN B, GEN *U, GEN *V)
{
pari_sp av = avma;
GEN ux = gen_1, vx = gen_0, a = A, b = B;
if (typ(a) != t_INT || typ(b) != t_INT) pari_err(typeer, "extgcd");
if (signe(a) < 0) { a = negi(a); ux = negi(ux); }
while (!gcmp0(b))
{
GEN r, q = dvmdii(a, b, &r), v = vx;
vx = subii(ux, mulii(q, vx));
ux = v;
a = b; b = r;
}
*U = ux;
*V = diviiexact( subii(a, mulii(A,ux)), B );
gerepileall(av, 3, &a, U, V); return a;
}
int
main()
{
GEN x, y, d, u, v;
pari_init(1000000,2);
printf("x = "); x = gp_read_stream(stdin);
printf("y = "); y = gp_read_stream(stdin);
d = extgcd(x, y, &u, &v);
pariprintf("gcd = %Z\nu = %Z\nv = %Z\n", d,u,v);
return 0;
}