D. J. Bernstein
Fast arithmetic
Integer multiplication benchmarks

MIRACL

MIRACL was written by Michael Scott. The MIRACL home page is indigo.ie/~mscott. Sample code using MIRACL:
     #include <stdio.h>
     #include "miracl.h"
     
     main()
     {
       big a;
       big b;
       big c;
     
       mirsys(-65536,0);
     
       a = mirvar(0);
       b = mirvar(0);
       c = mirvar(0);
     
       cinnum(a,stdin);
       cinnum(b,stdin);
     
       multiply(a,b,c);
     
       cotnum(c,stdout);
     }

Here are some old timings. I downloaded MIRACL version 4.22. I copied mrmuldv.any to mrmuldv.s, removed everything from mrmuldv.s except the section labelled DJGPP GNU C, and eliminated the underscores from mrmuldv.s. Then I compiled the library:

     as -o mrmuldv.o mrmuldv.s
     ln -s ../include/* .
     ln -s mirdef.h32 mirdef.h
     make -f ../lib/miracl.mak
Results on a Pentium II:
      1:       4215        415        335        341        316        313 
      2:        820        356        333        313        347        313 
      4:        486        332        316        331        379        345 
      8:        463        331        348        345        316        331 
     16:        475        331        360        313        316        331 
     32:        483        320        362        340        336        340 
     64:        598        488        489        436        460        419 
    128:       1031        863        880        811        847        811 
    256:       2561       2476       2507       2471       2509       2471 
    512:       8330       8267       8305       8267       8305       8267 
   1024:      30781      30811      30848      30812      30848      30812 
   2048:     119642     119762     119800     119762     128178     119762 
   4096:     472119     472438     472477     472439     472477     472439 
   8192:    1896462    1890836    1916694    1916890    1896697    1890836 
  16384:    7578453    7567765    7556846    7751752    7569880    7552307 
  32768:   30146002   30363948   30155703   30259578   30231958   30167444 
  65536:  120904516  121034638  121100894  121012190  122170890  121097840