tony\.reix on Wed, 05 Oct 2005 19:12:49 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Segmentation Violation |
Hi, With the latest version of PARI/gp, I have a segmentation violation. Based on gdb, this seems to appear in gmp. Tony # gp BinomialMod.gp GP/PARI CALCULATOR Version 2.2.10 (alpha) i686 running linux (ix86/GMP-4.1.4 kernel) 32-bit version compiled: Sep 26 2005, gcc-3.3.3 20040412 (Red Hat Linux 3.3.3-7) (readline v4.3 enabled, extended help available) BinomialMod.gp loaded 33 Erreur de segmentation (core dumped) # gdb gp core.15456 #0 mpn_fft_fft (Ap=0xfe383f30, Bp=0xfe381f30, K=1024, ll=0xfe38a674, omega=28, n=448, inc=2, tp=0xfe385f30) at mul_fft.c:281 281 mpn_fft_fft (Ap, Bp, K/2,ll-1,2 * omega,n,inc2, tp); [) bt #0 mpn_fft_fft (Ap=0xfe383f30, Bp=0xfe381f30, K=1024, ll=0xfe38a674, omega=28, n=448, inc=2, tp=0xfe385f30) at mul_fft.c:281 #1 0x0012b031 in mpn_fft_fft (Ap=0xfe383f30, Bp=0xfe381f30, K=1024, ll=0xfe38a674, omega=14, n=448, inc=1, tp=0xfe385f30) at mul_fft.c:281 #2 0x0012c5ef in mpn_mul_fft_internal (op=0xd8db0008, n=0xfe381f30, m=0xf5b507b4, pl=413696, k=11, K=2048, Ap=0xfe383f30, Bp=0xfe381f30, A=0xd86ab008, B=0xd8a2d008, nprime=448, l=202, Mp=7, _fft_l=0xfe38a650, T=0xfe385f30, rec=0) at mul_fft.c:553 #3 0x0012ca6c in __gmpn_mul_fft (op=0xfe380f40, pl=413696, n=0xf5ce4494, nl=-206949, m=0xf5b507b4, ml=-206949, k=11) at mul_fft.c:709 #4 0x0012cbc5 in __gmpn_mul_fft_full (op=0xfe380f40, n=0xf5c1a494, nl=206747, m=0xf5a867b4, ml=206747) at mul_fft.c:736 #5 0x0012ebd3 in __gmpn_mul_n (p=0xfe38acc4, a=0xf5c1a494, b=0xf5a867b4, n=206747) at mul_n.c:1167 #6 0x0012a5fd in __gmpn_mul (prodp=0xfe5e8860, up=0xf5c1a494, un=1676179, vp=0xf5a867b4, vn=206747) at mul.c:146 #7 0x001330ef in __gmpn_tdiv_qr (qp=0xf5a867b4, rp=0xf528dc84, qxn=0, np=0xf6349158, nn=-28186124, dp=0xf5b50628, dn=2089674) at tdiv_qr.c:382 #8 0x00815656 in dvmdii () from /usr/local/lib/libpari-gmp-2.2.so.10 #9 0x00230a64 in strptime_l () from /lib/tls/libc.so.6 BinomialMod.gp : ---------------------------------------- binomialmod(a,b,p)= { local(B,a_,b_); B=1; while(a!=0 && b!=0, a_ = a%p; b_ = b%p; a = (a-a_)/p; b = (b-b_)/p; B = (B*(binomial(a_,b_)))%p ); return(B) } tb(a,p)= { for(i=0,a, print1(i); for(j=0,i, print1(" ", binomialmod(i,j,p)) ); print) } chthp(b)= { local(p,i,pl); pl=100000000; default(primelimit,pl); i=0; forprime(p=b,pl, i++; if(i%1000==0, print1(i/1000, " ")); if( binomialmod(2*p-1,p-1,p^3) != 1 , print(">>> ", p)) ); } chthc_old(b)= { local(m, n, i, l); l=100000000; i=0; if( (b%2)==0, b=b/2, b=(b-1)/2 ); for(m=b,l, n=2*m+1; if(n%1000==1, print1((n-1)/1000, " ")); if(isprime(n)==0, b = binomialmod(2*n-1, n-1, n^3) ; if( b == 1 , print(">>> ", n)) ); ); } allocatemem(500000000) chthc(beg, end)= { local(m, n, i, e, B); i=0; if( (beg%2)==0, beg=beg/2, beg=(beg-1)/2 ); for(m=beg, end, n=2*m+1; if(n%100000==1, print1((n-1)/100000, " ")); if(isprime(n)==0, F=factor(n); e=1; for(j=1, matsize(F)[1], p=F[j,1]; B=binomialmod(2*n-1, n-1, p); if( B != 1 , e=0; break) ); if(e==1, B=binomialmod(2*n-1, n-1, n^3); if(B == 1, print(">>> ", n)); ); ); ); } bm(a,b,p)= { local(B,a_,b_); B=1; while(a!=0 && b!=0, a_ = a%p; b_ = b%p; a = (a-a_)/p; b = (b-b_)/p; print("a=",a," b=",b," a_=", a_," b_=",b_," binomial(a_,b_)=",binomial(a_,b_)); B = (B*(binomial(a_,b_)))%p ); return(B) } print(""); print("BinomialMod.gp loaded"); chthc(3300000,10000000000); Accédez au courrier électronique de La Poste : www.laposte.net ; 3615 LAPOSTENET (0,34?/mn) ; tél : 08 92 68 13 50 (0,34?/mn)