Integer bignum class for multithreaded appications

Discussion created by Raulnsh on May 10, 2011


I have C++ class cBigNumber, developed for reliable and fast operations on integers with unlimited range. The class utilizes integer ALU (FPU in not used). Algorithms are optimzed  for numbers containing from 500 to 20,000 bits, larger numbers can also be used. The class supports multithreading, and has optional 32/64 bit assembler optimization. I've compared it with well-known NTL library, which uses similar numeric algorithms combined with FPU operations - my class works several times faster.

Occasionally, the class is best suited for AMD Athlon/Phenom processors, where it works approximately twice faster in comparison with Intel Core i7. One can look for results of performance tests: http://www.imach.uran.ru/cbignum/Cbignump.txt. This is not due to specicific AMD optimizations, because I've optimized the class for various Intel processors as well as for AMD processors. I would like to know how the class works under AMD Bulldoser - who can test?

The class is partially public domain (portable C++ code except for assembler optimization). May be, AMD could have some interest related with this class?

http://www.imach.uran.ru/cbignum/ (home page - downloads, documatation, papers etc.)