Also, if we are going to stick with mpn/x86_64/atom/sqr_basecase.asm on atom, I need the output of make tune before this has been removed.
Bill. On 18 February 2014 12:12, Bill Hart <goodwillh...@googlemail.com> wrote: > Hi JP, > > thanks. Did you notice that the make tuneup caused an error. Did you mean > to do make speed? > > It's not at all clear to me which is the better assembly source. We only > care about the speed of the basecase up to the crossover with karatsuba, > which seems to be very low, maybe 14 (assuming that make error didn't > affect things). > > From 1-13 limbs 10 of the 13 values are lower with Jason's code. So I > think we should stick with it on the atom. > > But I'll wait for you to confirm that the make error didn't actually stop > speed being rebuilt. > > Bill. > > > On 18 February 2014 10:24, Jean-Pierre Flori <jpfl...@gmail.com> wrote: > >> Here are proper timings for both sqr_squarebase and kara_sqr_n on atom in >> 64bit mode. >> It seems the generic assembly is slightly faster. >> For some reason the tuning utility build failed, I'll have a look tonight. >> >> >> # with mpn/x86_64/atom/mpn_sqr_basecase >> >> overhead 0.000000005 secs, precision 1000000 units of 6.00e-10 secs, CPU >> freq 1667.00 MHz >> mpn_sqr_basecase >> 1 0.000000016 >> 2 0.000000043 >> 3 0.000000104 >> 4 0.000000176 >> 5 0.000000249 >> 6 0.000000334 >> 7 0.000000432 >> 8 0.000000544 >> 9 0.000000670 >> 10 0.000000808 >> >> 11 0.000000959 >> 12 0.000001124 >> 13 0.000001303 >> 14 0.000001502 >> 15 0.000001706 >> 16 0.000001924 >> 17 0.000002155 >> 18 0.000002415 >> >> 19 0.000002655 >> 20 0.000002926 >> 21 0.000003210 >> 22 0.000003506 >> 23 0.000003815 >> 24 0.000004157 >> >> 25 0.000004486 >> 26 0.000004834 >> 27 0.000005197 >> 28 0.000005582 >> 29 0.000005963 >> 30 0.000006364 >> 31 0.000006780 >> 32 0.000007218 >> 33 0.000007680 >> 34 0.000008165 >> 35 0.000008641 >> 36 0.000009172 >> 37 0.000009654 >> 38 0.000010184 >> 39 0.000010713 >> 40 0.000011271 >> 41 0.000011829 >> 42 0.000012377 >> 43 0.000012970 >> 44 0.000013585 >> 45 0.000014193 >> 46 0.000014788 >> 47 0.000015423 >> 48 0.000016112 >> 49 0.000016762 >> 50 0.000017411 >> 51 0.000018119 >> 52 0.000018861 >> 53 0.000019578 >> 54 0.000020279 >> 55 0.000021021 >> 56 0.000021816 >> 57 0.000022594 >> 58 0.000023349 >> 59 0.000024162 >> 60 0.000024999 >> 61 0.000025832 >> 62 0.000026648 >> 63 0.000027486 >> 64 0.000028397 >> 65 0.000029334 >> 66 0.000030221 >> 67 0.000031158 >> 68 0.000032094 >> 69 0.000033024 >> 70 0.000033927 >> 71 0.000034871 >> 72 0.000035875 >> 73 0.000036867 >> 74 0.000037832 >> 75 0.000038838 >> 76 0.000039895 >> 77 0.000040944 >> 78 0.000041958 >> 79 0.000043020 >> 80 0.000044112 >> 81 0.000045487 >> 82 0.000046551 >> 83 0.000047637 >> 84 0.000048805 >> 85 0.000049928 >> 86 0.000051082 >> 87 0.000052226 >> 88 0.000053445 >> 89 0.000054623 >> 90 0.000055803 >> 91 0.000056999 >> 92 0.000058272 >> 93 0.000059503 >> 94 0.000060762 >> 95 0.000062011 >> 96 0.000063335 >> 97 0.000069153 >> 98 0.000065906 >> 99 0.000067208 >> 100 0.000068585 >> >> overhead 0.000000005 secs, precision 1000000 units of 6.00e-10 secs, CPU >> freq 1667.00 MHz >> mpn_kara_sqr_n >> 1 n/a >> 2 n/a >> 3 n/a >> 4 n/a >> 5 n/a >> 6 n/a >> 7 n/a >> 8 0.000000638 >> 9 0.000000797 >> 10 0.000000875 >> 11 0.000001057 >> 12 0.000001139 >> 13 0.000001349 >> 14 0.000001444 >> 15 0.000001691 >> 16 0.000001795 >> 17 0.000002069 >> 18 0.000002185 >> 19 0.000002482 >> 20 0.000002608 >> 21 0.000002933 >> 22 0.000003071 >> 23 0.000003424 >> 24 0.000003576 >> 25 0.000003956 >> 26 0.000004129 >> 27 0.000004556 >> 28 0.000004739 >> 29 0.000005170 >> 30 0.000005368 >> 31 0.000005809 >> 32 0.000006024 >> 33 0.000006499 >> 34 0.000006735 >> 35 0.000007253 >> 36 0.000007504 >> 37 0.000007531 >> 38 0.000007734 >> 39 0.000008046 >> 40 0.000008152 >> 41 0.000008886 >> 42 0.000009114 >> 43 0.000009428 >> 44 0.000009562 >> 45 0.000010374 >> 46 0.000010622 >> 47 0.000010947 >> 48 0.000011071 >> 49 0.000011944 >> 50 0.000012230 >> 51 0.000012603 >> 52 0.000012782 >> 53 0.000013684 >> 54 0.000014049 >> 55 0.000014461 >> 56 0.000014620 >> 57 0.000015542 >> 58 0.000015954 >> 59 0.000016354 >> 60 0.000016542 >> 61 0.000017496 >> 62 0.000017854 >> 63 0.000018321 >> 64 0.000018526 >> 65 0.000019526 >> 66 0.000019964 >> 67 0.000020452 >> 68 0.000020684 >> 69 0.000021760 >> 70 0.000022234 >> 71 0.000022777 >> 72 0.000023000 >> 73 0.000023233 >> 74 0.000023192 >> 75 0.000023532 >> 76 0.000023743 >> 77 0.000024519 >> 78 0.000024677 >> 79 0.000024947 >> 80 0.000025113 >> 81 0.000026618 >> 82 0.000027324 >> 83 0.000027783 >> 84 0.000028011 >> 85 0.000028706 >> 86 0.000028869 >> 87 0.000029194 >> 88 0.000029295 >> 89 0.000031048 >> 90 0.000031847 >> 91 0.000032358 >> 92 0.000032591 >> 93 0.000033331 >> 94 0.000033540 >> 95 0.000033855 >> 96 0.000034065 >> 97 0.000035837 >> 98 0.000036601 >> 99 0.000037108 >> 100 0.000037399 >> make tuneup >> make[1]: entrant dans le répertoire « /home/choupi/mpir/tune » >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c mul.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c tdiv_qr.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c toom4_mul_n.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c toom4_mul.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c toom3_mul.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c toom3_mul_n.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c toom8h_mul.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c toom8_sqr_n.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c mulmod_2expm1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c rootrem.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c divrem_euclidean_r_1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c divrem_hensel_qr_1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c rsh_divrem_hensel_qr_1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c dc_divappr_q.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c dc_div_qr.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c dc_div_qr_n.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c inv_divappr_q.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c inv_div_qr.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c tdiv_q.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c dc_bdiv_qr.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c dc_bdiv_qr_n.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c dc_bdiv_q.c >> for i in split_bits.c revbin.c normmod_2expp1.c mulmod_2expp1.c >> mul_trunc_sqrt2.c mul_mfa_trunc_sqrt2.c mul_fft_main.c mul_2expmod_2expp1.c >> ifft_trunc_sqrt2.c ifft_trunc.c ifft_radix2.c ifft_negacyclic.c fft_trunc.c >> fft_radix2.c fft_negacylic.c fft_mfa_trunc_sqrt2.c >> fft_mfa_trunc_sqrt2_inner.c fermat_to_mpz.c div_2expmod_2expp1.c >> combine_bits.c butterfly_rshB.c butterfly_lshB.c adjust_sqrt2.c adjust.c; >> do \ >> echo "#define TUNE_PROGRAM_BUILD 1" >$i; \ >> echo "#include \"fft/$i\"" >>$i; \ >> done >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c split_bits.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c revbin.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c normmod_2expp1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c mulmod_2expp1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c mul_trunc_sqrt2.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c mul_mfa_trunc_sqrt2.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c mul_fft_main.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c mul_2expmod_2expp1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c ifft_trunc_sqrt2.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c ifft_trunc.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c ifft_radix2.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c ifft_negacyclic.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c fft_trunc.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c fft_radix2.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c fft_negacylic.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c fft_mfa_trunc_sqrt2.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c fft_mfa_trunc_sqrt2_inner.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c fermat_to_mpz.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c div_2expmod_2expp1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c combine_bits.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c butterfly_rshB.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c butterfly_lshB.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c adjust_sqrt2.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c adjust.c >> echo "#define TUNE_PROGRAM_BUILD 1" >divrem_1.c >> echo "#define __gmpn_divrem_1 mpn_divrem_1_tune" >>divrem_1.c >> echo "#include \"mpn/generic/divrem_1.c\"" >>divrem_1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c divrem_1.c >> echo "#define TUNE_PROGRAM_BUILD 1" >mod_1.c >> echo "#define __gmpn_mod_1 mpn_mod_1_tune" >>mod_1.c >> echo "#include \"mpn/generic/mod_1.c\"" >>mod_1.c >> gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I../tests -m64 -O2 >> -march=atom -mtune=atom -c mod_1.c >> /bin/bash ../libtool --tag=CC --mode=link gcc -std=gnu99 -m64 -O2 >> -march=atom -mtune=atom -static -o tuneup tuneup.o sqr_basecase.o >> divrem_2.o gcd.o gcdext.o get_str.o mul_n.o mullow_n.o mulhigh_n.o mul.o >> tdiv_qr.o toom4_mul_n.o toom4_mul.o toom3_mul.o toom3_mul_n.o toom8h_mul.o >> toom8_sqr_n.o mulmod_2expm1.o rootrem.o divrem_euclidean_r_1.o >> divrem_hensel_qr_1.o rsh_divrem_hensel_qr_1.o dc_divappr_q.o dc_div_qr.o >> dc_div_qr_n.o inv_divappr_q.o inv_div_qr.o tdiv_q.o dc_bdiv_qr.o >> dc_bdiv_qr_n.o dc_bdiv_q.o split_bits.o revbin.o normmod_2expp1.o >> mulmod_2expp1.o mul_trunc_sqrt2.o mul_mfa_trunc_sqrt2.o mul_fft_main.o >> mul_2expmod_2expp1.o ifft_trunc_sqrt2.o ifft_trunc.o ifft_radix2.o >> ifft_negacyclic.o fft_trunc.o fft_radix2.o fft_negacylic.o >> fft_mfa_trunc_sqrt2.o fft_mfa_trunc_sqrt2_inner.o fermat_to_mpz.o >> div_2expmod_2expp1.o combine_bits.o butterfly_rshB.o butterfly_lshB.o >> adjust_sqrt2.o adjust.o divrem_1.o mod_1.o libspeed.la >> libtool: link: gcc -std=gnu99 -m64 -O2 -march=atom -mtune=atom -o tuneup >> tuneup.o sqr_basecase.o divrem_2.o gcd.o gcdext.o get_str.o mul_n.o >> mullow_n.o mulhigh_n.o mul.o tdiv_qr.o toom4_mul_n.o toom4_mul.o >> toom3_mul.o toom3_mul_n.o toom8h_mul.o toom8_sqr_n.o mulmod_2expm1.o >> rootrem.o divrem_euclidean_r_1.o divrem_hensel_qr_1.o >> rsh_divrem_hensel_qr_1.o dc_divappr_q.o dc_div_qr.o dc_div_qr_n.o >> inv_divappr_q.o inv_div_qr.o tdiv_q.o dc_bdiv_qr.o dc_bdiv_qr_n.o >> dc_bdiv_q.o split_bits.o revbin.o normmod_2expp1.o mulmod_2expp1.o >> mul_trunc_sqrt2.o mul_mfa_trunc_sqrt2.o mul_fft_main.o mul_2expmod_2expp1.o >> ifft_trunc_sqrt2.o ifft_trunc.o ifft_radix2.o ifft_negacyclic.o fft_trunc.o >> fft_radix2.o fft_negacylic.o fft_mfa_trunc_sqrt2.o >> fft_mfa_trunc_sqrt2_inner.o fermat_to_mpz.o div_2expmod_2expp1.o >> combine_bits.o butterfly_rshB.o butterfly_lshB.o adjust_sqrt2.o adjust.o >> divrem_1.o mod_1.o ./.libs/libspeed.a /home/choupi/mpir/.libs/libmpir.a -lm >> tuneup.o: file not recognized: File truncated >> collect2: ld returned 1 exit status >> make[1]: *** [tuneup] Erreur 1 >> make[1]: quittant le répertoire « /home/choupi/mpir/tune » >> make: *** [tune] Erreur 2 >> overhead 0.000000007 secs, precision 1000000 units of 6.00e-10 secs, CPU >> freq 1667.00 MHz >> mpn_sqr_basecase >> 1 0.000000033 >> 2 0.000000064 >> 3 0.000000112 >> 4 0.000000177 >> 5 0.000000284 >> 6 0.000000393 >> 7 0.000000512 >> 8 0.000000645 >> 9 0.000000782 >> 10 0.000000936 >> 11 0.000000893 >> 12 0.000001045 >> 13 0.000001211 >> 14 0.000001384 >> 15 0.000001574 >> 16 0.000001774 >> 17 0.000002184 >> 18 0.000002492 >> 19 0.000002830 >> 20 0.000003123 >> 21 0.000003278 >> 22 0.000003647 >> 23 0.000003506 >> 24 0.000003808 >> 25 0.000004109 >> 26 0.000004432 >> 27 0.000004772 >> 28 0.000005406 >> 29 0.000005979 >> 30 0.000006342 >> 31 0.000006793 >> 32 0.000007469 >> 33 0.000007715 >> 34 0.000007496 >> 35 0.000007880 >> 36 0.000008317 >> 37 0.000008775 >> 38 0.000009243 >> 39 0.000009716 >> 40 0.000011395 >> 41 0.000012117 >> 42 0.000011332 >> 43 0.000011761 >> 44 0.000012274 >> 45 0.000012836 >> 46 0.000014248 >> 47 0.000015515 >> 48 0.000015599 >> 49 0.000015158 >> 50 0.000015758 >> 51 0.000016389 >> 52 0.000017025 >> 53 0.000017758 >> 54 0.000021210 >> 55 0.000021674 >> 56 0.000020952 >> 57 0.000021985 >> 58 0.000021063 >> 59 0.000021775 >> 60 0.000023977 >> 61 0.000023240 >> 62 0.000023989 >> 63 0.000024749 >> 64 0.000025527 >> 65 0.000026310 >> 66 0.000027106 >> 67 0.000027913 >> 68 0.000028738 >> 69 0.000029568 >> 70 0.000030413 >> 71 0.000031267 >> 72 0.000032139 >> 73 0.000033018 >> 74 0.000033909 >> 75 0.000034812 >> 76 0.000035730 >> 77 0.000036656 >> 78 0.000037595 >> 79 0.000038544 >> 80 0.000039512 >> 81 0.000040674 >> 82 0.000041803 >> 83 0.000042467 >> 84 0.000044026 >> 85 0.000044502 >> 86 0.000045816 >> 87 0.000046580 >> 88 0.000047936 >> 89 0.000048709 >> 90 0.000059347 >> 91 0.000050885 >> 92 0.000052231 >> 93 0.000053105 >> 94 0.000054451 >> 95 0.000055382 >> 96 0.000056924 >> 97 0.000057692 >> 98 0.000059067 >> 99 0.000060058 >> 100 0.000061432 >> >> overhead 0.000000005 secs, precision 1000000 units of 6.00e-10 secs, CPU >> freq 1667.00 MHz >> mpn_kara_sqr_n >> 1 n/a >> 2 n/a >> 3 n/a >> 4 n/a >> 5 n/a >> 6 n/a >> 7 n/a >> 8 0.000000536 >> 9 0.000000737 >> 10 0.000000809 >> 11 0.000000996 >> 12 0.000001059 >> 13 0.000001277 >> 14 0.000001431 >> 15 0.000001591 >> 16 0.000001676 >> 17 0.000001942 >> 18 0.000002045 >> 19 0.000002329 >> 20 0.000002443 >> 21 0.000002752 >> 22 0.000002872 >> 23 0.000003209 >> 24 0.000003337 >> 25 0.000004098 >> 26 0.000004494 >> 27 0.000004249 >> 28 0.000004392 >> 29 0.000004814 >> 30 0.000004963 >> 31 0.000005427 >> 32 0.000005586 >> 33 0.000006083 >> 34 0.000006244 >> 35 0.000006711 >> 36 0.000006910 >> 37 0.000007005 >> 38 0.000007277 >> 39 0.000007544 >> 40 0.000007649 >> 41 0.000008325 >> 42 0.000008582 >> 43 0.000008840 >> 44 0.000008974 >> 45 0.000009697 >> 46 0.000009985 >> 47 0.000010272 >> 48 0.000010425 >> 49 0.000012963 >> 50 0.000013944 >> 51 0.000011808 >> 52 0.000011950 >> 53 0.000012792 >> 54 0.000013129 >> 55 0.000013432 >> 56 0.000013596 >> 57 0.000014457 >> 58 0.000015562 >> 59 0.000015171 >> 60 0.000015323 >> 61 0.000016425 >> 62 0.000016709 >> 63 0.000017073 >> 64 0.000017223 >> 65 0.000018343 >> 66 0.000018633 >> 67 0.000019042 >> 68 0.000019220 >> 69 0.000020199 >> 70 0.000020616 >> 71 0.000021027 >> 72 0.000021216 >> 73 0.000021522 >> 74 0.000021616 >> 75 0.000022090 >> 76 0.000022361 >> 77 0.000022977 >> 78 0.000023149 >> 79 0.000023473 >> 80 0.000023537 >> 81 0.000024844 >> 82 0.000025452 >> 83 0.000026019 >> 84 0.000026327 >> 85 0.000027028 >> 86 0.000027084 >> 87 0.000027405 >> 88 0.000027466 >> 89 0.000029053 >> 90 0.000029718 >> 91 0.000030339 >> 92 0.000030628 >> 93 0.000031263 >> 94 0.000036677 >> 95 0.000037286 >> 96 0.000037099 >> 97 0.000038554 >> 98 0.000040116 >> 99 0.000034797 >> 100 0.000035127 >> >> >> > -- You received this message because you are subscribed to the Google Groups "mpir-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to mpir-devel+unsubscr...@googlegroups.com. To post to this group, send email to mpir-devel@googlegroups.com. Visit this group at http://groups.google.com/group/mpir-devel. For more options, visit https://groups.google.com/groups/opt_out.