D. J. Bernstein
Fast arithmetic
Integer multiplication benchmarks

CLN

CLN was written by Bruno Haible. It is currently maintained by Richard Kreckel. The CLN home page is www.ginac.de/CLN/. Sample code using CLN:
     #include "cln/cln.h"
     using namespace cln;

     main()
     {
       cl_I a;
       cl_I b;
       cl_I c;
       cin >> a;
       cin >> b;
       c = a * b;
       cout << c << "\n";
     }

I compiled CLN 1.1.4 on thoth on 2002.02.23:

     lynx -source ftp.santafe.edu/pub/gnu/cln-1.1.4.tar.gz > cln-1.1.4.tar.gz
     gunzip < cln-1.1.4.tar.gz | tar -xf -
     cd cln-1.1.4
     env CXXFLAGS='-O2 -fno-exceptions' ./configure
     gmake
     # about 1000 seconds
     lynx -source cr.yp.to/speed/mult/cln-bench.c > bench.c
     g++ -O3 -fno-exceptions -o bench bench.c -I include src/.libs/libcln.a
     ./bench > bench.out
     # about 90 seconds
Results:
       1:       1037        372         72         72         72         72 
       2:         79         72         72         72         72         72 
       3:         78         85         72         72         85         72 
       4:         78         85         72         85         72         72 
       5:         78         85         72         85         72         72 
       6:         78         72         72         72         72         72 
       7:        273         72         72         72         72         72 
       8:        241         72         72         72         72         72 
      10:         78         72         72         72         72         72 
      12:         79         72         72         72         72         72 
      14:        244         72         72         72         72         72 
      16:        528       5968        617        587        569        545 
      20:        603        545        543        545        543        545 
      24:        572        545        543        545        543        545 
      28:        572        545        543        545        543        545 
      32:       2900        716        670        662        660        662 
      40:       1036        768        743        745        701        703 
      48:        777        717        715        704        702        704 
      56:        967        713        712        700        698        700 
      64:        829        770        757        712        710        712 
      80:       1101        984        781        732        699        700 
      96:        847        804        746        707        706        707 
     112:        941        898        826        798        797        798 
     128:       1015        887        843        805        804        805 
     160:       1139        951        910        888        887        888 
     192:       1317       1022       1003        981        980        987 
     224:       1763       1408       1119       1086       1080       1077 
     256:       1435       1213       1193       1190       1193       1190 
     320:       1631       1568       1557       1557       1557       1557 
     384:       2114       1900       1898       1900       1898       1900 
     448:       2312       2277       2280       2277       2280       2277 
     512:      23166       4272       3141       3075       2999       3006 
     640:       3945       3658       3673       3643       3657       3643 
     768:       5197       4824       4588       4576       4588       4576 
     896:       5643       5472       5471       5459       5471       5459 
    1024:      18781       9815       8572       8575       8541       8529 
    1280:      11194      10873      10693      10681      10693      10681 
    1536:      13910      13707      13489      13477      13489      13477 
    1792:      17881      17172      16954      16942      16954      16942 
    2048:      26717      27006      25714      25647      25681      25626 
    2560:      32600      32589      32329      32315      32327      32315 
    3072:      41944      41142      40857      40845      40857      40845 
    3584:      53599      52497      52190      52178      52190      52178 
    4096:      79342      80295      78058      78028      78035      77987 
    5120:      99275      98978      98451     122056      99028      98467 
    6144:     125106     124856     124348     124334     124348     124334 
    7168:     162509     161172     160657     160643     160657     160643 
    8192:     240211     239033     238488     238467     238433     255828 
   10240:     304466     300882     300835     300834     300834     300834 
   12288:     375694     374951     374950     374925     374924     374925 
   14336:     489134     488119     488119     500630     488177     504358 
   16384:     745766     722727     721077     721007     721053     720983 
   20480:     915826     910291     926805     923026     910405     910126 
   24576:    1156409    1134677    1134661    1151468    1134952    1326149 
   28672:    1494185    1478853    1495181    1478188    1478136    1510773 
   32768:    2201351    2210386    2176673    2215472    2191688    2173799 
   40960:    3849813    3731559    3727230    3730833    3726742    3727475 
   49152:    3801968    3728383    3765793    3730033    3760663    3729969 
   57344:    3088885    3046755    3051267    3017967    3064144    3018332 
   65536:    8360122    8383318    8428481    8405044    8477941    8430117 
   81920:    8483706    8478002    8461403    8460543    8477644    8475428 
   98304:    8538136    8531611    8539755    8525827    8542772    8518405 
  114688:    7100804    6886580    7055857    7081696    7104974    7080017 
  131072:   18037276   18040922   18011725   18034694   18036598   18013783 
  163840:   18234218   18179210   18269249   18233186   18254831   18174529 
  196608:   18203688   18293060   18244302   18233764   18211410   18204966 
  229376:   18412297   18491328   18403688   18445881   18362379   18346317 
  262144:   39137119   38639853   38691738   39528678   38678339   38553343 
  327680:   39154583   39024349   39172592   38953341   38970439   39774388 
  393216:   39386922   38624592   39125172   39438778   39347024   39130107 
  458752:   39783449   39578004   40181674   39413765   39785302   39940911 
  524288:  101774795  102094687  103143978   99659409  100590686   99230860 
  655360:   99688160   98091904   97421843   97355053  100508111   98947541 
  786432:  102719546  102054616  100399638   99652074  103370046  100589446 
  917504:  102577816  102591074  101649045  101423297  100133829  102043444 
 1048576:  248182012  248174885  248737463  248486231  250034686  247715988 
 1310720:  251986643  250704928  249863628  249701676  250666410  258164840 
 1572864:  252894029  252101245  252847959  250749453  251714306  250518256 
 1835008:  253003093  252900912  250675594  251830395  253112373  251050119 
 2097152:  609590643  608678074  609156983  609668133  610193869  611691401 
 2621440:  617586321  617248648  615914827  615425253  616969652  615396414 
 3145728:  621776037  619598305  621087482  620958795  621579590  621813090 
 3670016:  626271465  625240081  624839921  625850028  625119453  624682324 
 4194304: 1287121401 1286162752 1284509578 1286527604 1285398559 1286768879 
 5242880: 1300994838 1298327458 1296421786 1308626593 1295890900 1295535965 
 6291456: 1296212227 1299266002 1299891407 1306174314 1297499105 1301017273 
 7340032: 1307968594 1306900275 1307246338 1305626207 1306274124 1306775219 
 8388608: 3195873156 3190984245 3192192780 3192839075 3191828531 3191578447 

Older timings for CLN 1.0.1 on a Pentium-II:

      1:        831        331        341        328        319        321 
      2:        319        322        319        321        319        328 
      4:        319        322        319        321        319        328 
      8:        319        322        319        321        319        328 
     16:        687       4987        694        709        619        692 
     32:       3542       1241       1360        950       1025        933 
     64:       1367       1312       1203       1001        979       1000 
    128:       1330       1414       1290       1257       1264       1238 
    256:       2348       2443       2321       2262       2212       2189 
    512:       8257       5253       5133       4973       5031       4949 
   1024:      14831      14493      14253      14332      14187      14251 
   2048:      43512      42819      42537      42633      42482      42585 
   4096:     135308     140146     129362     128651     128499     128606 
   8192:     388769     395970     388580     388597     388449     388573 
  16384:    1188515    1191876    1175705    1174036    1173845    1198244 
  32768:    3593322    3592413    3544073    3551542    3550712    3550029 
  65536:   11637798   11588166   11612424   11583725   11595229   11585579 
 131072:   24883440   24524641   24453301   24455546   24443368   24437821 
 262144:   54023019   53377550   52332133   53004840   53760162   54155994 
 524288:  135591667  135624127  136454425  136772105  136088081  136608819 
1048576:  300566815  302479346  301059817  302665437  301872232  302118563 
2097152:  767414270  778539505  768655239  778896004  781456233  779075896 
4194304: 1589483330 1591872914 1605255997 1611909420 1619504900 1586406046 
8388608: 4180732728 4188183047 4183977855 4191484545 4189871315 4185781379