ttmath/ttmath
Tomasz Sowa eaa19dd46a added: uint UInt::Mul3(const UInt<value_size> & ss2)
void UInt::Mul3Big(const UInt<value_size> & ss2, UInt<value_size*2> & result)
         a new multiplication algorithm: Karatsuba multiplication,
         on a vector UInt<100> with all items different from zero this algorithm is faster
         about 3 times than Mul2Big(), and on a vector UInt<1000> with all items different from
         zero this algorithm is faster more than 5 times than Mul2Big()
         (measured on 32bit platform with GCC 4.3.3 with -O3 and -DTTMATH_RELEASE)
added:   uint MulFastest(const UInt<value_size> & ss2)
         void MulFastestBig(const UInt<value_size> & ss2, UInt<value_size*2> & result)
         those methods are trying to select the fastest multiplication algorithm
changed: uint Mul(const UInt<value_size> & ss2, uint algorithm = 100)
         void MulBig(const UInt<value_size> & ss2, UInt<value_size*2> & result, uint algorithm = 100)
         those methods by default use MulFastest() and MulFastestBig()
changed: changed a little Mul2Big() to cooperate with Mul3Big()
changed: names of methods in macros TTMATH_LOG()
added:   uint AddVector(const uint * ss1, const uint * ss2, uint ss1_size, uint ss2_size, uint * result)
         uint SubVector(const uint * ss1, const uint * ss2, uint ss1_size, uint ss2_size, uint * result)
         three forms: asm x86, asm x86_64, no-asm
         those methods are used by the Karatsuba multiplication algorithm



git-svn-id: svn://ttmath.org/publicrep/ttmath/trunk@148 e52654a7-88a9-db11-a3e9-0013d4bc506e
2009-05-15 22:27:04 +00:00
..
ttmath.h fixed: Big::Mod(x) didn't correctly return a carry 2009-05-11 01:50:00 +00:00
ttmathbig.h added: uint UInt::Mul3(const UInt<value_size> & ss2) 2009-05-15 22:27:04 +00:00
ttmathint.h added: UInt::PrintLog(const char * msg, std::ostream & output) 2009-05-01 14:53:21 +00:00
ttmathobjects.h added: Objects::IsDefined(const std::string & name) 2009-04-02 05:21:49 +00:00
ttmathparser.h fixed: Big::Mod(x) didn't correctly return a carry 2009-05-11 01:50:00 +00:00
ttmathtypes.h added: uint UInt::Mul3(const UInt<value_size> & ss2) 2009-05-15 22:27:04 +00:00
ttmathuint.h added: uint UInt::Mul3(const UInt<value_size> & ss2) 2009-05-15 22:27:04 +00:00
ttmathuint_noasm.h added: uint UInt::Mul3(const UInt<value_size> & ss2) 2009-05-15 22:27:04 +00:00
ttmathuint_x86.h added: uint UInt::Mul3(const UInt<value_size> & ss2) 2009-05-15 22:27:04 +00:00
ttmathuint_x86_64.h added: uint UInt::Mul3(const UInt<value_size> & ss2) 2009-05-15 22:27:04 +00:00