pari
Modérateur : xcasadmin
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
pari
Salut,
J'ai un probleme avec certains retours de pari:
sur un xcas recent. (Je n'ai plus de version intermediaires, mais avec 0.7.1 tout marche)
pari()
p:=nextprime(10^4)
znprimroot(p)
donne bien
5 % 10007
en revanche a partir de 10^10, le retour est un modulaire trop gros:
p:=nextprime(10^10) (qui vaut 10000000019)
znprimroot(p) donne
2 % 6056184894185275394
a+
Fred
J'ai un probleme avec certains retours de pari:
sur un xcas recent. (Je n'ai plus de version intermediaires, mais avec 0.7.1 tout marche)
pari()
p:=nextprime(10^4)
znprimroot(p)
donne bien
5 % 10007
en revanche a partir de 10^10, le retour est un modulaire trop gros:
p:=nextprime(10^10) (qui vaut 10000000019)
znprimroot(p) donne
2 % 6056184894185275394
a+
Fred
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
ca remarche, mais l'arret en cas de *** the PARI stack overflows !
est tres brutal, on quitte xcas completement.
pari()
la ca marche
p:=10000000000129;
g:=pari_znprimroot(p);
pari_znlog(3,Mod(g,p));
ifactor(p-1);
mais si l'on donne un exemple fait expres pour depasser la memoire pari:
p:=40000000011053;
g:=pari_znprimroot(p);
pari_znlog(3,Mod(g,p));
alors ca plante brutalement.
avec pour message:
*** the PARI stack overflows !
current stack size: 10000000 (9.537 Mbytes)
[hint] you can increase GP stack with allocatemem()
*** znlog: the PARI stack overflows !
current stack size: 10000000 (9.537 Mbytes)
[hint] you can increase GP stack with allocatemem()
*** segmentation fault: bug in PARI or calling program.
Error in PARI subsystem
terminate called after throwing an instance of 'std::runtime_error'
what(): Bad Argument Value
a+
Fred
est tres brutal, on quitte xcas completement.
pari()
la ca marche
p:=10000000000129;
g:=pari_znprimroot(p);
pari_znlog(3,Mod(g,p));
ifactor(p-1);
mais si l'on donne un exemple fait expres pour depasser la memoire pari:
p:=40000000011053;
g:=pari_znprimroot(p);
pari_znlog(3,Mod(g,p));
alors ca plante brutalement.
avec pour message:
*** the PARI stack overflows !
current stack size: 10000000 (9.537 Mbytes)
[hint] you can increase GP stack with allocatemem()
*** znlog: the PARI stack overflows !
current stack size: 10000000 (9.537 Mbytes)
[hint] you can increase GP stack with allocatemem()
*** segmentation fault: bug in PARI or calling program.
Error in PARI subsystem
terminate called after throwing an instance of 'std::runtime_error'
what(): Bad Argument Value
a+
Fred
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
je ne vois pas de solution. En compilant avec les options de debuggage, le segmentation fault vient au moment de l'appel de pthread_exit, je suppose que c'est le mecanisme de gestion d'erreur de PARI (avec un longjmp) qui s'emmele les pinceaux avec la gestion des threads, peut-etre parce que la machine ou je compile statiquement a une version de la libpthread avec un bug. Heureusement, le probleme n'apparait pas avec la version dynamique (package debian). J'ajoute le backtrace au cas ou ca inspirerait une idee de remediation a quelqu'un d'autre:
Code : Tout sélectionner
(gdb) bt
#0 0x60032e81 in ?? ()
#1 0x4012f4bc in ?? () from /usr/local/lib/libgcc_s.so.1
#2 0x4012ae9e in _Unwind_FindEnclosingFunction ()
from /usr/local/lib/libgcc_s.so.1
#3 0x4012b7d6 in _Unwind_RaiseException () from /usr/local/lib/libgcc_s.so.1
#4 0x4012b8dd in _Unwind_ForcedUnwind () from /usr/local/lib/libgcc_s.so.1
#5 0x4003101a in _Unwind_ForcedUnwind () from /lib/tls/libpthread.so.0
#6 0x4002f1c3 in __pthread_unwind () from /lib/tls/libpthread.so.0
#7 0x4002bbc1 in pthread_exit () from /lib/tls/libpthread.so.0
#8 0x083c8976 in giac::in_thread_eval (arg=0x9a3887c) at global.cc:2484
#9 0x4002ab63 in start_thread () from /lib/tls/libpthread.so.0
#10 0x4020818a in clone () from /lib/tls/libc.so.6
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
bon, je crois que j'ai trouve une semi-parade, en tout cas ca ne plante plus tout de suite avec la version statique. Par contre une erreur survenant ensuite pose probleme, mais on a alors eu le temps de sauvegarder et relancer. Apparemment c'est un probleme d'incompatibilite entre les gestionnaires d'erreurs de pari et de la libstdc++, je n'ai pas d'autre idee pour regler definitivement le probleme.
Je te laisse essayer la mise a jour de xcas_root ou user.
Je te laisse essayer la mise a jour de xcas_root ou user.
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :