#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