20130113, 18:02  #1 
"Ed Hall"
Dec 2009
Adirondack Mtns
5^{2}·11·19 Posts 
Error with large number on 32bit machines
How disappointing!
On my 32bit machines (both antiX and Ubuntu), on which I compiled GMP and ECM, I am receiving the following error: Code:
$ ecm c 10 v 43000000 < ecmIn GMPECM 6.4.3 [configured with GMP 5.0.5] [ECM] Running on math03 Input number is 16314315482963226490821946080971549450706222359508882207070502298741881754665051765380282665291356409074285196429704092132126707585162244439000837928127809542351956738323750370087594623357586179416038045807359853 (212 digits) Using MODMULN [mulredc:4, sqrredc:4] ecm: symbol lookup error: ecm: undefined symbol: __gmpn_add_nc Code:
$ ecm c 10 v 43000000 < ecmIn GMPECM 6.4.3 [configured with GMP 5.0.5] [ECM] Running on math02 Input number is 326286309659264529816438921619430989014124447190177644141410045974837635093301035307605653305827 (96 digits) Using MODMULN [mulredc:0, sqrredc:0] Using B1=43000000, B2=240490660426, polynomial Dickson(12), sigma=3200203337 dF=65536, k=5, d=690690, d2=17, i0=46 Expected number of curves to find a factor of n digits: 35 40 45 50 55 60 65 70 75 80 55 246 1286 7557 49831 361851 2844041 2.4e+07 2.2e+08 2.2e+09 Step 1 took 542085ms ********** Factor found in step 1: 86635039 Found composite factor of 8 digits: 86635039 Composite cofactor 3766216457284269587694638443221927666173549563360589520152579904475343227966931893544893 has 88 digits Code:
$ ecm c 10 v 43000000 < ecmIn GMPECM 6.3 [configured with GMP 5.0.2] [ECM] Running on math01 Input number is 16314315482963226490821946080971549450706222359508882207070502298741881754665051765380282665291356409074285196429704092132126707585162244439000837928127809542351956738323750370087594623357586179416038045807359853 (212 digits) Using MODMULN Using B1=43000000, B2=240490660426, polynomial Dickson(12), sigma=3523070894 dF=65536, k=5, d=690690, d2=17, i0=46 Expected number of curves to find a factor of n digits: 35 40 45 50 55 60 65 70 75 80 55 246 1286 7557 49831 361851 2844041 2.4e+07 2.2e+08 2.2e+09 
20130113, 18:35  #2  
Bamboozled!
"๐บ๐๐ท๐ท๐ญ"
May 2003
Down not across
61·191 Posts 
Quote:


20130113, 19:19  #3  
Mar 2006
2^{2}·7·19 Posts 
Quote:
HAVE___GMPN_ADD_NC = 1 Also, if you could post a zipped up copy of your config.log, that might help us track this down. Now, I'm not sure what would cause this problem, but, since you are building these things yourself, could you try the following as a temporary workaround: 1) In your ecm directory run "make clean" 2) Then run your "./configure" again 3) Then, go into the config.h and if you find the following line: #define HAVE___GMPN_ADD_NC 1 replace it with: /* #define HAVE___GMPN_ADD_NC 1 */ 4) Then run "make" and "make check" to be sure those complete successfully 5) Then try your number again and let us know the results Hopefully we can figure this out. 

20130113, 20:15  #4  
Banned
"Luigi"
Aug 2002
Team Italia
3·1,619 Posts 
Quote:
#define HAVE___GMPN_REDC_1 1 Thank you! Luigi 

20130113, 22:36  #5 
Mar 2006
2^{2}×7×19 Posts 
Hmmm, if so then that means that ./configure might be missing something or messing something up. Can you post a zipped up copy of your config.log so we can see what might be going wrong?

20130113, 23:22  #6  
Banned
"Luigi"
Aug 2002
Team Italia
3·1,619 Posts 
Quote:
I can add that all the tests done with make check were ok after the update. Luigi 

20130114, 03:11  #7 
"Ed Hall"
Dec 2009
Adirondack Mtns
5^{2}·11·19 Posts 
Thanks, everyone!
@xilman: Yes! Code:
... NOTE: NEXT TEST WILL FAIL ON 32BIT MACHINES, THIS IS EXPECTED. GMPECM 6.4.3 [configured with GMP 5.0.5] [P+1] Input number is 8589934621 (10 digits) Using B1=42949673104294967311, B2=1, polynomial x^1 Step 1 took 48ms ********** Factor found in step 1: 8589934621 Found input number N GMPECM 6.4.3 [configured with GMP 5.0.5] [P+1] Input number is 6054018161*10^400+417727253109 (410 digits) Using B1=2000, B2=2352760, polynomial x^1, x0=4 ./ecm: symbol lookup error: ./ecm: undefined symbol: __gmpn_add_nc ############### ERROR ############### Expected return code 14 but got 127 make: *** [check] Error 1 @WraithX: Code:
$ ecm printconfig Compilation options: Included GMP header files version 5.0.5 GWNUM_VERSION undefined HAVE_SSE2 = 1 $HAVE___GMPN_ADD_NC = 1 HAVE___GMPN_MOD_34LSUB1 = 1 HAVE___GMPN_REDC_1 = 1 MEMORY_DEBUG undefined USE_ASM_REDC undefined WANT_ASSERT undefined WANT_SHELLCMD undefined _OPENMP undefined MPZMOD_THRESHOLD = 84 REDC_THRESHOLD = 119 MUL_NTT_THRESHOLD = 4096 NTT_GFP_TWIDDLE_DIF_BREAKOVER = 17 NTT_GFP_TWIDDLE_DIT_BREAKOVER = 17 PREREVERTDIVISION_NTT_THRESHOLD = 64 POLYINVERT_NTT_THRESHOLD = 1024 POLYEVALT_NTT_THRESHOLD = 512 MPZSPV_NORMALISE_STRIDE = 2048 Here is the result of commenting out the "#define HAVE___GMPN_ADD_NC 1" line: Code:
... NOTE: NEXT 3 TESTS WILL FAIL ON SOME 32BIT MACHINES, THIS IS EXPECTED. GMPECM 6.4.3 [configured with GMP 5.0.5] [ECM] Input number is 10000000000000000000000000000000000000121 (41 digits) Using B1=2950307, B2=4281751120, polynomial Dickson(6), sigma=61 Step 1 took 20229ms ********** Factor found in step 1: 10000000000000000000000000000000000000121 Found input number N GMPECM 6.4.3 [configured with GMP 5.0.5] [ECM] Input number is 10000000000000000000000000000000000000121 (41 digits) Using B1=9405629, B2=23422152400, polynomial Dickson(12), sigma=266 Step 1 took 65384ms ********** Factor found in step 1: 10000000000000000000000000000000000000121 Found input number N GMPECM 6.4.3 [configured with GMP 5.0.5] [ECM] Input number is 10000000000000000000000000000000000000121 (41 digits) Using B1=4372759, B2=8561918830, polynomial Dickson(6), sigma=291 Step 1 took 30265ms ********** Factor found in step 1: 10000000000000000000000000000000000000121 Found input number N All ECM tests are ok. Code:
$ ecm c 10 v 43000000 < ecmIn GMPECM 6.4.3 [configured with GMP 5.0.5] [ECM] Running on math02 Input number is 16314315482963226490821946080971549450706222359508882207070502298741881754665051765380282665291356409074285196429704092132126707585162244439000837928127809542351956738323750370087594623357586179416038045807359853 (212 digits) Using MODMULN [mulredc:4, sqrredc:4] Using B1=43000000, B2=240490660426, polynomial Dickson(12), sigma=2155976667 dF=65536, k=5, d=690690, d2=17, i0=46 Expected number of curves to find a factor of n digits: 35 40 45 50 55 60 65 70 75 80 55 246 1286 7557 49831 361851 2844041 2.4e+07 2.2e+08 2.2e+09 Last fiddled with by EdH on 20130114 at 03:11 
20130115, 03:11  #8  
Mar 2006
2^{2}×7×19 Posts 
Quote:
Did you put the "$" in front of it? I don't see anything in the code that would print out a "$" in front of that line. I'm wondering if there might be multiple gmp.h or libgmp.a or libgmp.so* files on your computer? We can try to find out by seeing what all paths are defined in your environment with the following command: env  grep i path (At this point I'm not sure how to search a PATH [or LD_LIBRARY_PATH] variable for a certain file, any linux gurus know???) Then, we need to find out what library your binary is linking to. Can you run ldd on your ecm binary? Like so: ldd ecm We're interested in the line with libgmp.so, it could look like: libgmp.so.10 => /usr/local/lib/libgmp.so.10 Once you have that, can you try running nm on the lib from above? Like: nm /usr/local/lib/libgmp.so.10  grep i add_nc Theoretically, that might come up empty. My guess at that point will be that you have another libgmp (.a, .so), perhaps in /usr/lib/. If so, could you try the nm+grep command on that libgmp too? I think one will have the add_nc, and the other won't. Let's see where this gets us. @ET_ What problem were you running into, specifically? If you're using a recent GMP (5.0+) that you've compiled yourself, it should have mpn_redc_1. Was GMPECM not compiling for you? Or were you getting errors while running? What version of GMP are you using? Is it precompiled or did you build it yourself? I'd like to fix any problems rather than spread the above "workaround" to too many people. 

20130115, 03:52  #9 
Basketry That Evening!
"Bunslow the Bold"
Jun 2011
40<A<43 89<O<88
3×29×83 Posts 
A better command might be `locate libgmp.a libgmp.so`, and then comparing that to what ldd says.

20130115, 06:07  #10  
"Ed Hall"
Dec 2009
Adirondack Mtns
5^{2}·11·19 Posts 
Quote:
Quote:
Code:
$ env  grep i path PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games Quote:
Code:
$ ldd ecm ldd: ./ecm: No such file or directory Code:
$ whereis libecm libecm: /usr/local/lib/libecm.a /usr/local/lib/libecm.la Code:
$ whereis libgmp libgmp: /usr/local/lib/libgmp.so /usr/local/lib/libgmp.la /usr/local/lib/libgmp.a Quote:
Code:
$ nm /usr/local/lib/libgmp.so  grep i add_nc 00021340 T __gmpn_add_nc Code:
$ nm /usr/local/lib/libgmp.la  grep i add_nc nm: /usr/local/lib/libgmp.la: File format not recognized Code:
$ nm /usr/local/lib/libgmp.a  grep i add_nc 00000000 T __gmpn_add_nc U __gmpn_add_nc U __gmpn_add_nc U __gmpn_add_nc U __gmpn_add_nc Quote:
Code:
$ locate libgmp /home/math02/Math/ggnfs/src/lasieve4/libgmpaux.a /home/math02/Math/gmp/libgmp.la /home/math02/Math/gmp/.libs/libgmp.a /home/math02/Math/gmp/.libs/libgmp.la /home/math02/Math/gmp/.libs/libgmp.lai /home/math02/Math/gmp/.libs/libgmp.so /home/math02/Math/gmp/.libs/libgmp.so.10 /home/math02/Math/gmp/.libs/libgmp.so.10.0.5 /usr/lib/i386linuxgnu/libgmp.so.10 /usr/lib/i386linuxgnu/libgmp.so.10.0.5 /usr/lib/i386linuxgnu/openssl1.0.0/engines/libgmp.so /usr/local/lib/libgmp.a /usr/local/lib/libgmp.la /usr/local/lib/libgmp.so /usr/local/lib/libgmp.so.10 /usr/local/lib/libgmp.so.10.0.5 /usr/share/doc/libgmp10 /usr/share/doc/libgmp10/README.Debian /usr/share/doc/libgmp10/TODO.Debian /usr/share/doc/libgmp10/changelog.Debian.gz /usr/share/doc/libgmp10/copyright /var/lib/dpkg/info/libgmp10:i386.list /var/lib/dpkg/info/libgmp10:i386.md5sums /var/lib/dpkg/info/libgmp10:i386.postinst /var/lib/dpkg/info/libgmp10:i386.postrm /var/lib/dpkg/info/libgmp10:i386.shlibs 

20130115, 07:55  #11  
Banned
"Luigi"
Aug 2002
Team Italia
4857_{10} Posts 
Quote:
I was using MPIR 2.5.1 compiled to use GMP 5.0.2 configuration files. Yes I configured and compiled it [by] myself. I already uploaded the config.log file to the forum, on another subthread of this section. Luigi 

Thread Tools  
Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Error Prone Machines  PageFault  Data  17  20120410 01:40 
Scalability of Glucas on large machines: A future //ed prime 95 ?  T.Rex  Software  29  20061213 21:40 
Start and Stop Prime 95 on Large Groups of Windows XP Machines  MarcGetty  Software  3  20060307 07:54 
Putting prime 95 on a large number of machines  moo  Software  10  20041215 13:25 
Team_Prime_Rib errorprone machines  GP2  Data  10  20031005 18:34 