middle products
Paul Zimmermann
Paul.Zimmermann at loria.fr
Wed Jun 17 09:36:51 CEST 2009
David,
> I had a stab at this. I needed to rework the estimates since the
> middle product introduces more errors (mainly the missed terms at the
> low end).
> [...]
> | inv_bc | inv_mp | ratio |
> 10 | 1.35e+03 | 1.36e+03 | 1.007 |
> 11 | 1.70e+03 | 1.70e+03 | 1.005 |
> 12 | 1.68e+03 | 1.69e+03 | 1.005 |
> 13 | 1.77e+03 | 1.79e+03 | 1.013 |
> 14 | 1.91e+03 | 1.92e+03 | 1.005 |
> 16 | 2.19e+03 | 2.15e+03 | 0.984 |
> 17 | 2.31e+03 | 2.12e+03 | 0.917 |
> 19 | 2.87e+03 | 2.31e+03 | 0.804 |
> 21 | 3.02e+03 | 2.56e+03 | 0.848 |
> 23 | 3.26e+03 | 2.87e+03 | 0.882 |
> 25 | 3.60e+03 | 3.14e+03 | 0.873 |
> 28 | 4.50e+03 | 3.69e+03 | 0.819 |
> 31 | 5.23e+03 | 4.04e+03 | 0.773 |
> 34 | 6.11e+03 | 4.63e+03 | 0.758 |
> 37 | 6.41e+03 | 4.86e+03 | 0.757 |
> 41 | 7.95e+03 | 5.70e+03 | 0.717 |
> 45 | 9.39e+03 | 6.43e+03 | 0.684 |
> 50 | 1.05e+04 | 7.67e+03 | 0.728 |
> 55 | 1.27e+04 | 8.46e+03 | 0.666 |
> 61 | 1.50e+04 | 9.69e+03 | 0.648 |
> 67 | 1.78e+04 | 1.16e+04 | 0.654 |
> 74 | 2.10e+04 | 1.40e+04 | 0.666 |
> 81 | 2.52e+04 | 1.49e+04 | 0.593 |
> 89 | 2.83e+04 | 1.70e+04 | 0.600 |
> 98 | 3.34e+04 | 2.05e+04 | 0.614 |
> 108 | 4.11e+04 | 2.30e+04 | 0.559 |
> 119 | 4.49e+04 | 2.66e+04 | 0.593 |
> 131 | 5.39e+04 | 3.15e+04 | 0.585 |
> 144 | 5.90e+04 | 3.61e+04 | 0.612 |
> 158 | 6.96e+04 | 4.24e+04 | 0.608 |
> 174 | 8.27e+04 | 4.81e+04 | 0.582 |
> 191 | 9.72e+04 | 5.56e+04 | 0.572 |
> 211 | 1.10e+05 | 6.51e+04 | 0.589 |
> 232 | 1.27e+05 | 7.49e+04 | 0.589 |
> 255 | 1.52e+05 | 8.56e+04 | 0.564 |
> 281 | 1.75e+05 | 1.01e+05 | 0.577 |
> 309 | 2.03e+05 | 1.17e+05 | 0.577 |
> 340 | 2.39e+05 | 1.37e+05 | 0.571 |
> 374 | 2.72e+05 | 1.55e+05 | 0.569 |
> 411 | 3.29e+05 | 1.81e+05 | 0.551 |
> 452 | 3.72e+05 | 2.08e+05 | 0.560 |
> 497 | 4.40e+05 | 2.42e+05 | 0.550 |
> 547 | 5.07e+05 | 2.84e+05 | 0.559 |
> 602 | 5.81e+05 | 3.38e+05 | 0.582 |
> 662 | 6.80e+05 | 3.85e+05 | 0.566 |
> 728 | 7.85e+05 | 4.43e+05 | 0.564 |
> 801 | 9.11e+05 | 5.05e+05 | 0.555 |
> 881 | 1.04e+06 | 5.88e+05 | 0.566 |
> 970 | 1.23e+06 | 6.89e+05 | 0.561 |
> 1067 | 1.40e+06 | 7.94e+05 | 0.566 |
> 1173 | 1.65e+06 | 9.35e+05 | 0.566 |
> 1291 | 1.88e+06 | 1.06e+06 | 0.567 |
> 1420 | 2.17e+06 | 1.22e+06 | 0.563 |
> 1562 | 2.57e+06 | 1.44e+06 | 0.561 |
> 1718 | 2.91e+06 | 1.65e+06 | 0.566 |
> 1890 | 3.39e+06 | 1.92e+06 | 0.567 |
> 2079 | 3.90e+06 | 2.22e+06 | 0.569 |
> 2287 | 4.57e+06 | 2.60e+06 | 0.570 |
> 2516 | 5.20e+06 | 3.02e+06 | 0.581 |
> 2768 | 5.95e+06 | 3.44e+06 | 0.579 |
> 3044 | 6.94e+06 | 4.00e+06 | 0.577 |
> 3349 | 8.06e+06 | 4.55e+06 | 0.565 |
> 3684 | 9.20e+06 | 5.35e+06 | 0.582 |
> 4052 | 1.08e+07 | 6.23e+06 | 0.577 |
> 4457 | 1.25e+07 | 7.24e+06 | 0.579 |
> 4903 | 1.46e+07 | 8.38e+06 | 0.573 |
> 5394 | 1.66e+07 | 9.71e+06 | 0.585 |
> 5933 | 1.92e+07 | 1.11e+07 | 0.580 |
> 6526 | 2.28e+07 | 1.30e+07 | 0.573 |
> 7179 | 2.55e+07 | 1.49e+07 | 0.585 |
> 7897 | 2.99e+07 | 1.77e+07 | 0.591 |
> 8687 | 3.39e+07 | 2.03e+07 | 0.599 |
> 9555 | 3.96e+07 | 2.40e+07 | 0.605 |
> 10511 | 4.45e+07 | 2.71e+07 | 0.608 |
> 11562 | 5.22e+07 | 3.15e+07 | 0.604 |
> 12718 | 5.99e+07 | 3.67e+07 | 0.613 |
> 13990 | 6.87e+07 | 4.17e+07 | 0.607 |
> 15389 | 8.11e+07 | 4.86e+07 | 0.599 |
> 16928 | 8.98e+07 | 5.53e+07 | 0.615 |
> 18621 | 1.05e+08 | 6.55e+07 | 0.621 |
those timings are quite good! I'm impressed you win already at 16 limbs,
and already save more than 33% at 55 limbs. Larger timings in the FFT
range (say 100,000, 1M, 10M, 100M and 1G limbs) would be interesting too.
Paul Zimmermann
More information about the gmp-devel
mailing list