fixed: UInt::SetBitInWord(uint & value, uint bit) set 1 if the bit was
equal 1 (should be set 2) this affected only no-asm parts - when macro TTMATH_NOASM was defined fixed: UInt<value_size>::MulInt(uint ss2) there was a buffer overflow when value_size was equal 1 fixed: UInt::AddVector() and UInt::SubVector() didn't want to compile when macro TTMATH_NOASM was defined added: macros: TTMATH_LOGC(msg, carry) TTMATH_VECTOR_LOG(msg, vector, len) TTMATH_VECTOR_LOGC(msg, carry, vector, len) added: UInt::PrintVectorLog() for debugging purposes changed: UInt<> class uses new log macros git-svn-id: svn://ttmath.org/publicrep/ttmath/trunk@203 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
parent
31b8c242bd
commit
a8eb29e57d
|
@ -1,6 +1,13 @@
|
||||||
Version 0.9.0 prerelease (2009.09.20):
|
Version 0.9.0 prerelease (2009.10.03):
|
||||||
* fixed: Big::operator>>(std::istream&, Big<> &) didn't recognize values
|
* fixed: Big::operator>>(std::istream&, Big<> &) didn't recognize values
|
||||||
in scientific mode (with 'e' character)
|
in scientific mode (with 'e' character)
|
||||||
|
* fixed: UInt::SetBitInWord(uint & value, uint bit) set 1 if the bit was
|
||||||
|
equal 1 (should be set 2)
|
||||||
|
this affected only no-asm parts - when macro TTMATH_NOASM was defined
|
||||||
|
* fixed: UInt<value_size>::MulInt(uint ss2)
|
||||||
|
there was a buffer overflow when value_size was equal 1
|
||||||
|
* fixed: UInt::AddVector() and UInt::SubVector() didn't want to compile
|
||||||
|
when macro TTMATH_NOASM was defined
|
||||||
* added: support for wide characters (wchar_t, std::wstring)
|
* added: support for wide characters (wchar_t, std::wstring)
|
||||||
* added: Big::IsInteger()
|
* added: Big::IsInteger()
|
||||||
returns true if the value is integer (without fraction)
|
returns true if the value is integer (without fraction)
|
||||||
|
|
|
@ -491,9 +491,15 @@ namespace ttmath
|
||||||
|
|
||||||
|
|
||||||
#ifdef TTMATH_DEBUG_LOG
|
#ifdef TTMATH_DEBUG_LOG
|
||||||
#define TTMATH_LOG(msg) PrintLog(msg, std::cout);
|
#define TTMATH_LOG(msg) PrintLog(msg, std::cout);
|
||||||
|
#define TTMATH_LOGC(msg, carry) PrintLog(msg, carry, std::cout);
|
||||||
|
#define TTMATH_VECTOR_LOG(msg, vector, len) PrintVectorLog(msg, std::cout, vector, len);
|
||||||
|
#define TTMATH_VECTOR_LOGC(msg, carry, vector, len) PrintVectorLog(msg, carry, std::cout, vector, len);
|
||||||
#else
|
#else
|
||||||
#define TTMATH_LOG(msg)
|
#define TTMATH_LOG(msg)
|
||||||
|
#define TTMATH_LOGC(msg, carry)
|
||||||
|
#define TTMATH_VECTOR_LOG(msg, vector, len)
|
||||||
|
#define TTMATH_VECTOR_LOGC(msg, carry, vector, len)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,12 @@ public:
|
||||||
uint table[value_size];
|
uint table[value_size];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
some methods used for debugging purposes
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
this method is only for debugging purposes or when we want to make
|
this method is only for debugging purposes or when we want to make
|
||||||
a table of a variable (constant) in ttmathbig.h
|
a table of a variable (constant) in ttmathbig.h
|
||||||
|
@ -122,13 +128,48 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
this method is used when macro TTMATH_DEBUG_LOG is defined
|
||||||
|
*/
|
||||||
template<class char_type, class ostream_type>
|
template<class char_type, class ostream_type>
|
||||||
void PrintLog(const char_type * msg, ostream_type & output) const
|
static void PrintVectorLog(const char_type * msg, ostream_type & output, const uint * vector, uint vector_len)
|
||||||
{
|
{
|
||||||
output << msg << std::endl;
|
output << msg << std::endl;
|
||||||
|
|
||||||
for(uint i=0 ; i<value_size ; ++i)
|
for(uint i=0 ; i<vector_len ; ++i)
|
||||||
output << " table[" << i << "]: " << table[i] << std::endl;
|
output << " table[" << i << "]: " << vector[i] << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
this method is used when macro TTMATH_DEBUG_LOG is defined
|
||||||
|
*/
|
||||||
|
template<class char_type, class ostream_type>
|
||||||
|
static void PrintVectorLog(const char_type * msg, uint carry, ostream_type & output, const uint * vector, uint vector_len)
|
||||||
|
{
|
||||||
|
PrintVectorLog(msg, output, vector, vector_len);
|
||||||
|
output << " carry: " << carry << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
this method is used when macro TTMATH_DEBUG_LOG is defined
|
||||||
|
*/
|
||||||
|
template<class char_type, class ostream_type>
|
||||||
|
void PrintLog(const char_type * msg, ostream_type & output) const
|
||||||
|
{
|
||||||
|
PrintVectorLog(msg, output, table, value_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
this method is used when macro TTMATH_DEBUG_LOG is defined
|
||||||
|
*/
|
||||||
|
template<class char_type, class ostream_type>
|
||||||
|
void PrintLog(const char_type * msg, uint carry, ostream_type & output) const
|
||||||
|
{
|
||||||
|
PrintVectorLog(msg, output, table, value_size);
|
||||||
|
output << " carry: " << carry << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -243,7 +284,7 @@ public:
|
||||||
table[i] = 0;
|
table[i] = 0;
|
||||||
|
|
||||||
|
|
||||||
TTMATH_LOG("UInt32::SetFromTable")
|
TTMATH_LOG("UInt::SetFromTable")
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -308,7 +349,7 @@ public:
|
||||||
for( ; i >= 0 ; --i)
|
for( ; i >= 0 ; --i)
|
||||||
table[i] = 0;
|
table[i] = 0;
|
||||||
|
|
||||||
TTMATH_LOG("UInt64::SetFromTable")
|
TTMATH_LOG("UInt::SetFromTable")
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -436,7 +477,7 @@ public:
|
||||||
last_c = Rcl2(rest_bits, c);
|
last_c = Rcl2(rest_bits, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcl")
|
TTMATH_LOGC("UInt::Rcl", last_c)
|
||||||
|
|
||||||
return last_c;
|
return last_c;
|
||||||
}
|
}
|
||||||
|
@ -531,7 +572,7 @@ public:
|
||||||
last_c = Rcr2(rest_bits, c);
|
last_c = Rcr2(rest_bits, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcr")
|
TTMATH_LOGC("UInt::Rcr", last_c)
|
||||||
|
|
||||||
return last_c;
|
return last_c;
|
||||||
}
|
}
|
||||||
|
@ -550,11 +591,7 @@ public:
|
||||||
for(a=value_size-1 ; a>=0 && table[a]==0 ; --a);
|
for(a=value_size-1 ; a>=0 && table[a]==0 ; --a);
|
||||||
|
|
||||||
if( a < 0 )
|
if( a < 0 )
|
||||||
{
|
return moving; // all words in table have zero
|
||||||
// there's a value zero
|
|
||||||
TTMATH_LOG("UInt::CompensationToLeft")
|
|
||||||
return moving;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( a != value_size-1 )
|
if( a != value_size-1 )
|
||||||
{
|
{
|
||||||
|
@ -583,8 +620,6 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
this method looks for the highest set bit
|
this method looks for the highest set bit
|
||||||
|
|
||||||
|
@ -607,23 +642,16 @@ public:
|
||||||
// is zero
|
// is zero
|
||||||
index = 0;
|
index = 0;
|
||||||
|
|
||||||
TTMATH_LOG("UInt::FindLeadingBit")
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// table[table_id] != 0
|
// table[table_id] != 0
|
||||||
index = FindLeadingBitInWord( table[table_id] );
|
index = FindLeadingBitInWord( table[table_id] );
|
||||||
|
|
||||||
TTMATH_LOG("UInt::FindLeadingBit")
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
setting the 'bit_index' bit
|
setting the 'bit_index' bit
|
||||||
|
|
||||||
|
@ -639,8 +667,6 @@ public:
|
||||||
uint temp = table[index];
|
uint temp = table[index];
|
||||||
uint res = SetBitInWord(temp, bit);
|
uint res = SetBitInWord(temp, bit);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::GetBit")
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -758,43 +784,39 @@ public:
|
||||||
/*!
|
/*!
|
||||||
multiplication: this = this * ss2
|
multiplication: this = this * ss2
|
||||||
|
|
||||||
it returns a carry if it has been
|
it can return a carry
|
||||||
*/
|
*/
|
||||||
uint MulInt(uint ss2)
|
uint MulInt(uint ss2)
|
||||||
{
|
{
|
||||||
uint r2,r1;
|
uint r1, r2, x1;
|
||||||
|
uint c = 0;
|
||||||
|
|
||||||
UInt<value_size> u( *this );
|
UInt<value_size> u(*this);
|
||||||
SetZero();
|
SetZero();
|
||||||
|
|
||||||
for(uint x1=0 ; x1<value_size ; ++x1)
|
if( ss2 == 0 )
|
||||||
{
|
{
|
||||||
MulTwoWords(u.table[x1], ss2, &r2, &r1 );
|
TTMATH_LOGC("UInt::MulInt(uint)", 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if( x1 <= value_size - 2 )
|
|
||||||
{
|
|
||||||
if( AddTwoInts(r2,r1,x1) )
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// last iteration:
|
|
||||||
// x1 = value_size - 1;
|
|
||||||
|
|
||||||
if( r2 )
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if( AddInt(r1, x1) )
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::MulInt(uint)")
|
for(x1=0 ; x1<value_size-1 ; ++x1)
|
||||||
|
{
|
||||||
|
MulTwoWords(u.table[x1], ss2, &r2, &r1);
|
||||||
|
c += AddTwoInts(r2,r1,x1);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
// x1 = value_size-1 (last word)
|
||||||
|
MulTwoWords(u.table[x1], ss2, &r2, &r1);
|
||||||
|
c += (r2!=0) ? 1 : 0;
|
||||||
|
c += AddInt(r1, x1);
|
||||||
|
|
||||||
|
TTMATH_LOGC("UInt::MulInt(uint)", c)
|
||||||
|
|
||||||
|
return (c==0)? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
multiplication: result = this * ss2
|
multiplication: result = this * ss2
|
||||||
|
|
||||||
|
@ -802,17 +824,22 @@ public:
|
||||||
if so there will not be a carry
|
if so there will not be a carry
|
||||||
*/
|
*/
|
||||||
template<uint result_size>
|
template<uint result_size>
|
||||||
uint MulInt(uint ss2, UInt<result_size> & result)
|
void MulInt(uint ss2, UInt<result_size> & result) const
|
||||||
{
|
{
|
||||||
|
TTMATH_ASSERT( result_size > value_size )
|
||||||
|
|
||||||
uint r2,r1;
|
uint r2,r1;
|
||||||
uint x1size=value_size;
|
uint x1size=value_size;
|
||||||
uint x1start=0;
|
uint x1start=0;
|
||||||
|
|
||||||
if( value_size >= result_size )
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
result.SetZero();
|
result.SetZero();
|
||||||
|
|
||||||
|
if( ss2 == 0 )
|
||||||
|
{
|
||||||
|
TTMATH_VECTOR_LOG("UInt::MulInt(uint, UInt<>)", result.table, result_size)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if( value_size > 2 )
|
if( value_size > 2 )
|
||||||
{
|
{
|
||||||
// if the value_size is smaller than or equal to 2
|
// if the value_size is smaller than or equal to 2
|
||||||
|
@ -820,10 +847,10 @@ public:
|
||||||
|
|
||||||
for(x1size=value_size ; x1size>0 && table[x1size-1]==0 ; --x1size);
|
for(x1size=value_size ; x1size>0 && table[x1size-1]==0 ; --x1size);
|
||||||
|
|
||||||
if( x1size==0 )
|
if( x1size == 0 )
|
||||||
{
|
{
|
||||||
TTMATH_LOG("UInt::MulInt(uint, UInt<>)")
|
TTMATH_VECTOR_LOG("UInt::MulInt(uint, UInt<>)", result.table, result_size)
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(x1start=0 ; x1start<x1size && table[x1start]==0 ; ++x1start);
|
for(x1start=0 ; x1start<x1size && table[x1start]==0 ; ++x1start);
|
||||||
|
@ -835,10 +862,9 @@ public:
|
||||||
result.AddTwoInts(r2,r1,x1);
|
result.AddTwoInts(r2,r1,x1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TTMATH_VECTOR_LOG("UInt::MulInt(uint, UInt<>)", result.table, result_size)
|
||||||
|
|
||||||
TTMATH_LOG("UInt::MulInt(uint, UInt<>)")
|
return;
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -919,19 +945,19 @@ public:
|
||||||
{
|
{
|
||||||
if( Add(*this) )
|
if( Add(*this) )
|
||||||
{
|
{
|
||||||
TTMATH_LOG("UInt::Mul1")
|
TTMATH_LOGC("UInt::Mul1", 1)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ss1.Rcl(1) )
|
if( ss1.Rcl(1) )
|
||||||
if( Add(ss2) )
|
if( Add(ss2) )
|
||||||
{
|
{
|
||||||
TTMATH_LOG("UInt::Mul1")
|
TTMATH_LOGC("UInt::Mul1", 1)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Mul1")
|
TTMATH_LOGC("UInt::Mul1", 0)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1001,7 +1027,7 @@ public:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Mul2")
|
TTMATH_LOGC("UInt::Mul2", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -1125,7 +1151,7 @@ public:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Mul3")
|
TTMATH_LOGC("UInt::Mul3", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -1347,7 +1373,7 @@ public:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::MulFastest")
|
TTMATH_LOGC("UInt::MulFastest", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -1384,7 +1410,7 @@ public:
|
||||||
uint distancex2 = x2size - x2start;
|
uint distancex2 = x2size - x2start;
|
||||||
|
|
||||||
if( distancex1 < 3 || distancex2 < 3 )
|
if( distancex1 < 3 || distancex2 < 3 )
|
||||||
// either 'this' or 'ss2' have only 2 (or 1) item different from zero (side by side)
|
// either 'this' or 'ss2' have only 2 (or 1) items different from zero (side by side)
|
||||||
// (this condition in the future can be improved)
|
// (this condition in the future can be improved)
|
||||||
return Mul2Big3<value_size>(table, ss2.table, result, x1start, x1size, x2start, x2size);
|
return Mul2Big3<value_size>(table, ss2.table, result, x1start, x1size, x2start, x2size);
|
||||||
|
|
||||||
|
@ -1592,7 +1618,7 @@ private:
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
the first division's algorithm
|
the first division algorithm
|
||||||
radix 2
|
radix 2
|
||||||
*/
|
*/
|
||||||
uint Div1(const UInt<value_size> & divisor, UInt<value_size> * remainder = 0)
|
uint Div1(const UInt<value_size> & divisor, UInt<value_size> * remainder = 0)
|
||||||
|
@ -2190,7 +2216,7 @@ public:
|
||||||
|
|
||||||
return values:
|
return values:
|
||||||
0 - ok
|
0 - ok
|
||||||
1 - carry or
|
1 - carry
|
||||||
2 - incorrect argument (0^0)
|
2 - incorrect argument (0^0)
|
||||||
*/
|
*/
|
||||||
uint Pow(UInt<value_size> pow)
|
uint Pow(UInt<value_size> pow)
|
||||||
|
@ -2208,7 +2234,7 @@ public:
|
||||||
if( pow.table[0] & 1 )
|
if( pow.table[0] & 1 )
|
||||||
if( result.Mul(start) )
|
if( result.Mul(start) )
|
||||||
{
|
{
|
||||||
TTMATH_LOG("UInt::Pow(UInt<>)")
|
TTMATH_LOGC("UInt::Pow(UInt<>)", 1)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2216,7 +2242,7 @@ public:
|
||||||
// in the second Mul algorithm we can use start.Mul(start) directly (there is no TTMATH_ASSERT_REFERENCE there)
|
// in the second Mul algorithm we can use start.Mul(start) directly (there is no TTMATH_ASSERT_REFERENCE there)
|
||||||
if( start.Mul(start_temp) )
|
if( start.Mul(start_temp) )
|
||||||
{
|
{
|
||||||
TTMATH_LOG("UInt::Pow(UInt<>)")
|
TTMATH_LOGC("UInt::Pow(UInt<>)", 1)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2225,7 +2251,7 @@ public:
|
||||||
|
|
||||||
*this = result;
|
*this = result;
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Pow(UInt<>)")
|
TTMATH_LOGC("UInt::Pow(UInt<>)", 0)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2311,7 +2337,7 @@ public:
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
* conversion method
|
* conversion methods
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -2347,12 +2373,12 @@ public:
|
||||||
for( ; i<argument_size ; ++i)
|
for( ; i<argument_size ; ++i)
|
||||||
if( p.table[i] != 0 )
|
if( p.table[i] != 0 )
|
||||||
{
|
{
|
||||||
TTMATH_LOG("UInt::FromUInt(UInt<>)")
|
TTMATH_LOGC("UInt::FromUInt(UInt<>)", 1)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::FromUInt(UInt<>)")
|
TTMATH_LOGC("UInt::FromUInt(UInt<>)", 0)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2382,9 +2408,7 @@ public:
|
||||||
{
|
{
|
||||||
FromUInt(p);
|
FromUInt(p);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator=(UInt<argument_size>)")
|
return *this;
|
||||||
|
|
||||||
return *this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2393,7 +2417,8 @@ public:
|
||||||
*/
|
*/
|
||||||
UInt<value_size> & operator=(const UInt<value_size> & p)
|
UInt<value_size> & operator=(const UInt<value_size> & p)
|
||||||
{
|
{
|
||||||
FromUInt(p);
|
for(uint i=0 ; i<value_size ; ++i)
|
||||||
|
table[i] = p.table[i];
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator=(UInt<>)")
|
TTMATH_LOG("UInt::operator=(UInt<>)")
|
||||||
|
|
||||||
|
@ -2408,8 +2433,6 @@ public:
|
||||||
{
|
{
|
||||||
FromUInt(i);
|
FromUInt(i);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator=(uint)")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2420,8 +2443,6 @@ public:
|
||||||
UInt(uint i)
|
UInt(uint i)
|
||||||
{
|
{
|
||||||
FromUInt(i);
|
FromUInt(i);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::UInt(uint)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2441,8 +2462,6 @@ public:
|
||||||
{
|
{
|
||||||
FromUInt(uint(i));
|
FromUInt(uint(i));
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator=(sint)")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2455,8 +2474,6 @@ public:
|
||||||
UInt(sint i)
|
UInt(sint i)
|
||||||
{
|
{
|
||||||
FromUInt(uint(i));
|
FromUInt(uint(i));
|
||||||
|
|
||||||
TTMATH_LOG("UInt::UInt(sint)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2487,8 +2504,6 @@ public:
|
||||||
{
|
{
|
||||||
FromUInt(uint(i));
|
FromUInt(uint(i));
|
||||||
|
|
||||||
TTMATH_LOG("UInt64::operator=(unsigned int)")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2502,8 +2517,6 @@ public:
|
||||||
UInt(unsigned int i)
|
UInt(unsigned int i)
|
||||||
{
|
{
|
||||||
FromUInt(uint(i));
|
FromUInt(uint(i));
|
||||||
|
|
||||||
TTMATH_LOG("UInt64::UInt(unsigned int)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2519,8 +2532,6 @@ public:
|
||||||
{
|
{
|
||||||
FromUInt(uint(i));
|
FromUInt(uint(i));
|
||||||
|
|
||||||
TTMATH_LOG("UInt64::operator=(signed int)")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2536,8 +2547,6 @@ public:
|
||||||
UInt(signed int i)
|
UInt(signed int i)
|
||||||
{
|
{
|
||||||
FromUInt(uint(i));
|
FromUInt(uint(i));
|
||||||
|
|
||||||
TTMATH_LOG("UInt64::UInt(signed int)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2553,8 +2562,6 @@ public:
|
||||||
UInt(const char * s)
|
UInt(const char * s)
|
||||||
{
|
{
|
||||||
FromString(s);
|
FromString(s);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::UInt(const char *)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2564,8 +2571,6 @@ public:
|
||||||
UInt(const wchar_t * s)
|
UInt(const wchar_t * s)
|
||||||
{
|
{
|
||||||
FromString(s);
|
FromString(s);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::UInt(const wchar_t *)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2590,13 +2595,14 @@ public:
|
||||||
/*!
|
/*!
|
||||||
a default constructor
|
a default constructor
|
||||||
|
|
||||||
we don't clear table etc.
|
we don't clear the table
|
||||||
*/
|
*/
|
||||||
UInt()
|
UInt()
|
||||||
{
|
{
|
||||||
// when macro TTMATH_DEBUG_LOG is defined
|
// when macro TTMATH_DEBUG_LOG is defined
|
||||||
// we set special values to the table
|
// we set special values to the table
|
||||||
// in order to be everywhere the same value of the UInt object
|
// in order to be everywhere the same value of the UInt object
|
||||||
|
// without this it would be difficult to analyse the log file
|
||||||
#ifdef TTMATH_DEBUG_LOG
|
#ifdef TTMATH_DEBUG_LOG
|
||||||
#ifdef TTMATH_PLATFORM32
|
#ifdef TTMATH_PLATFORM32
|
||||||
for(uint i=0 ; i<value_size ; ++i)
|
for(uint i=0 ; i<value_size ; ++i)
|
||||||
|
@ -2614,7 +2620,8 @@ public:
|
||||||
*/
|
*/
|
||||||
UInt(const UInt<value_size> & u)
|
UInt(const UInt<value_size> & u)
|
||||||
{
|
{
|
||||||
FromUInt(u);
|
for(uint i=0 ; i<value_size ; ++i)
|
||||||
|
table[i] = u.table[i];
|
||||||
|
|
||||||
TTMATH_LOG("UInt::UInt(UInt<>)")
|
TTMATH_LOG("UInt::UInt(UInt<>)")
|
||||||
}
|
}
|
||||||
|
@ -2629,8 +2636,6 @@ public:
|
||||||
{
|
{
|
||||||
// look that 'size' we still set as 'value_size' and not as u.value_size
|
// look that 'size' we still set as 'value_size' and not as u.value_size
|
||||||
FromUInt(u);
|
FromUInt(u);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::UInt(UInt<argument_size>)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2717,7 +2722,7 @@ private:
|
||||||
|
|
||||||
SetZero();
|
SetZero();
|
||||||
temp.SetZero();
|
temp.SetZero();
|
||||||
SkipWhiteCharacters(s);
|
Misc::SkipWhiteCharacters(s);
|
||||||
|
|
||||||
if( after_source )
|
if( after_source )
|
||||||
*after_source = s;
|
*after_source = s;
|
||||||
|
@ -2746,7 +2751,7 @@ private:
|
||||||
if( after_source )
|
if( after_source )
|
||||||
*after_source = s;
|
*after_source = s;
|
||||||
|
|
||||||
TTMATH_LOG("UInt::FromString")
|
TTMATH_LOGC("UInt::FromString", c)
|
||||||
|
|
||||||
return (c==0)? 0 : 1;
|
return (c==0)? 0 : 1;
|
||||||
}
|
}
|
||||||
|
@ -3061,8 +3066,6 @@ public:
|
||||||
{
|
{
|
||||||
Sub(p2);
|
Sub(p2);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator-=")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3079,8 +3082,6 @@ public:
|
||||||
{
|
{
|
||||||
Add(p2);
|
Add(p2);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator+=")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3099,8 +3100,6 @@ public:
|
||||||
{
|
{
|
||||||
Mul(p2);
|
Mul(p2);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator*=")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3119,8 +3118,6 @@ public:
|
||||||
{
|
{
|
||||||
Div(p2);
|
Div(p2);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator/=")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3145,8 +3142,6 @@ public:
|
||||||
|
|
||||||
operator=(remainder);
|
operator=(remainder);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator%=")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3158,11 +3153,10 @@ public:
|
||||||
{
|
{
|
||||||
AddOne();
|
AddOne();
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator++")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Postfix operator e.g variable++
|
Postfix operator e.g variable++
|
||||||
*/
|
*/
|
||||||
|
@ -3172,8 +3166,6 @@ public:
|
||||||
|
|
||||||
AddOne();
|
AddOne();
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator++(int)")
|
|
||||||
|
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3182,8 +3174,6 @@ public:
|
||||||
{
|
{
|
||||||
SubOne();
|
SubOne();
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator--")
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3194,8 +3184,6 @@ public:
|
||||||
|
|
||||||
SubOne();
|
SubOne();
|
||||||
|
|
||||||
TTMATH_LOG("UInt::operator--(int)")
|
|
||||||
|
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,13 @@
|
||||||
|
|
||||||
namespace ttmath
|
namespace ttmath
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/*!
|
||||||
|
this method adds two words together
|
||||||
|
returns carry
|
||||||
|
|
||||||
|
this method is created only when TTMATH_NOASM macro is defined
|
||||||
|
*/
|
||||||
template<uint value_size>
|
template<uint value_size>
|
||||||
uint UInt<value_size>::AddTwoWords(uint a, uint b, uint carry, uint * result)
|
uint UInt<value_size>::AddTwoWords(uint a, uint b, uint carry, uint * result)
|
||||||
{
|
{
|
||||||
|
@ -95,7 +102,7 @@ namespace ttmath
|
||||||
for(i=0 ; i<value_size ; ++i)
|
for(i=0 ; i<value_size ; ++i)
|
||||||
c = AddTwoWords(table[i], ss2.table[i], c, &table[i]);
|
c = AddTwoWords(table[i], ss2.table[i], c, &table[i]);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Add")
|
TTMATH_LOGC("UInt::Add", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -131,7 +138,7 @@ namespace ttmath
|
||||||
for(i=index+1 ; i<value_size && c ; ++i)
|
for(i=index+1 ; i<value_size && c ; ++i)
|
||||||
c = AddTwoWords(table[i], 0, c, &table[i]);
|
c = AddTwoWords(table[i], 0, c, &table[i]);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::AddInt")
|
TTMATH_LOGC("UInt::AddInt", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -184,7 +191,7 @@ namespace ttmath
|
||||||
for(i=index+2 ; i<value_size && c ; ++i)
|
for(i=index+2 ; i<value_size && c ; ++i)
|
||||||
c = AddTwoWords(table[i], 0, c, &table[i]);
|
c = AddTwoWords(table[i], 0, c, &table[i]);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::AddTwoInts")
|
TTMATH_LOGC("UInt::AddTwoInts", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -224,7 +231,7 @@ namespace ttmath
|
||||||
for( ; i<ss1_size ; ++i)
|
for( ; i<ss1_size ; ++i)
|
||||||
c = AddTwoWords(ss1[i], 0, c, &result[i]);
|
c = AddTwoWords(ss1[i], 0, c, &result[i]);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::AddVector")
|
TTMATH_VECTOR_LOGC("UInt::AddVector", c, result, ss1_size)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -232,6 +239,12 @@ namespace ttmath
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
this method subtractes one word from the other
|
||||||
|
returns carry
|
||||||
|
|
||||||
|
this method is created only when TTMATH_NOASM macro is defined
|
||||||
|
*/
|
||||||
template<uint value_size>
|
template<uint value_size>
|
||||||
uint UInt<value_size>::SubTwoWords(uint a, uint b, uint carry, uint * result)
|
uint UInt<value_size>::SubTwoWords(uint a, uint b, uint carry, uint * result)
|
||||||
{
|
{
|
||||||
|
@ -273,7 +286,7 @@ namespace ttmath
|
||||||
for(i=0 ; i<value_size ; ++i)
|
for(i=0 ; i<value_size ; ++i)
|
||||||
c = SubTwoWords(table[i], ss2.table[i], c, &table[i]);
|
c = SubTwoWords(table[i], ss2.table[i], c, &table[i]);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Sub")
|
TTMATH_LOGC("UInt::Sub", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -311,7 +324,7 @@ namespace ttmath
|
||||||
for(i=index+1 ; i<value_size && c ; ++i)
|
for(i=index+1 ; i<value_size && c ; ++i)
|
||||||
c = SubTwoWords(table[i], 0, c, &table[i]);
|
c = SubTwoWords(table[i], 0, c, &table[i]);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::SubInt")
|
TTMATH_LOGC("UInt::SubInt", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -351,7 +364,7 @@ namespace ttmath
|
||||||
for( ; i<ss1_size ; ++i)
|
for( ; i<ss1_size ; ++i)
|
||||||
c = SubTwoWords(ss1[i], 0, c, &result[i]);
|
c = SubTwoWords(ss1[i], 0, c, &result[i]);
|
||||||
|
|
||||||
TTMATH_LOG("UInt::SubVector")
|
TTMATH_VECTOR_LOGC("UInt::SubVector", c, result, ss1_size)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -385,7 +398,7 @@ namespace ttmath
|
||||||
c = new_c;
|
c = new_c;
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcl2_one")
|
TTMATH_LOGC("UInt::Rcl2_one", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -424,7 +437,7 @@ namespace ttmath
|
||||||
c = new_c;
|
c = new_c;
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcr2_one")
|
TTMATH_LOGC("UInt::Rcr2_one", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -462,7 +475,7 @@ namespace ttmath
|
||||||
c = new_c;
|
c = new_c;
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcl2")
|
TTMATH_LOGC("UInt::Rcl2", c)
|
||||||
|
|
||||||
return (c & 1);
|
return (c & 1);
|
||||||
}
|
}
|
||||||
|
@ -501,7 +514,7 @@ namespace ttmath
|
||||||
c = new_c;
|
c = new_c;
|
||||||
}
|
}
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcr2")
|
TTMATH_LOGC("UInt::Rcr2", c)
|
||||||
|
|
||||||
return (c & TTMATH_UINT_HIGHEST_BIT) ? 1 : 0;
|
return (c & TTMATH_UINT_HIGHEST_BIT) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
@ -509,10 +522,9 @@ namespace ttmath
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*!
|
||||||
this method returns the number of the highest set bit in x
|
this method returns the number of the highest set bit in x
|
||||||
if the 'x' is zero this method returns '-1'
|
if the 'x' is zero this method returns '-1'
|
||||||
|
|
||||||
*/
|
*/
|
||||||
template<uint value_size>
|
template<uint value_size>
|
||||||
sint UInt<value_size>::FindLeadingBitInWord(uint x)
|
sint UInt<value_size>::FindLeadingBitInWord(uint x)
|
||||||
|
@ -539,7 +551,7 @@ namespace ttmath
|
||||||
this method sets a special bit in the 'value'
|
this method sets a special bit in the 'value'
|
||||||
and returns the last state of the bit (zero or one)
|
and returns the last state of the bit (zero or one)
|
||||||
|
|
||||||
bit is from <0,63>
|
bit is from <0,TTMATH_BITS_PER_UINT-1>
|
||||||
|
|
||||||
e.g.
|
e.g.
|
||||||
uint x = 100;
|
uint x = 100;
|
||||||
|
@ -553,7 +565,7 @@ namespace ttmath
|
||||||
|
|
||||||
uint mask = 1;
|
uint mask = 1;
|
||||||
|
|
||||||
if( bit > 1 )
|
if( bit > 0 )
|
||||||
mask = mask << bit;
|
mask = mask << bit;
|
||||||
|
|
||||||
uint last = value & mask;
|
uint last = value & mask;
|
||||||
|
|
|
@ -152,7 +152,7 @@ namespace ttmath
|
||||||
: "cc", "memory" );
|
: "cc", "memory" );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Add")
|
TTMATH_LOGC("UInt::Add", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -253,7 +253,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::AddInt")
|
TTMATH_LOGC("UInt::AddInt", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -374,7 +374,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::AddTwoInts")
|
TTMATH_LOGC("UInt::AddTwoInts", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -506,6 +506,8 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
TTMATH_VECTOR_LOGC("UInt::AddVector", c, result, ss1_size)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -592,7 +594,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Sub")
|
TTMATH_LOGC("UInt::Sub", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -694,7 +696,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::SubInt")
|
TTMATH_LOGC("UInt::SubInt", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -832,6 +834,8 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
TTMATH_VECTOR_LOGC("UInt::SubVector", c, result, ss1_size)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -908,7 +912,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcl2_one")
|
TTMATH_LOGC("UInt::Rcl2_one", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -980,7 +984,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcr2_one")
|
TTMATH_LOGC("UInt::Rcr2_one", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -1114,7 +1118,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcl2")
|
TTMATH_LOGC("UInt::Rcl2", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -1248,7 +1252,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcr2")
|
TTMATH_LOGC("UInt::Rcr2", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,7 +142,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Add")
|
TTMATH_LOGC("UInt::Add", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -214,7 +214,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::AddInt")
|
TTMATH_LOGC("UInt::AddInt", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -302,7 +302,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::AddTwoInts")
|
TTMATH_LOGC("UInt::AddTwoInts", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -390,7 +390,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TTMATH_LOG("UInt::AddVector")
|
TTMATH_VECTOR_LOGC("UInt::AddVector", c, result, ss1_size)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -452,7 +452,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Sub")
|
TTMATH_LOGC("UInt::Sub", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -523,7 +523,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::SubInt")
|
TTMATH_LOGC("UInt::SubInt", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -613,7 +613,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TTMATH_LOG("UInt::SubVector")
|
TTMATH_VECTOR_LOGC("UInt::SubVector", c, result, ss1_size)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -673,7 +673,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcl2_one")
|
TTMATH_LOGC("UInt::Rcl2_one", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -731,7 +731,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcr2_one")
|
TTMATH_LOGC("UInt::Rcr2_one", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -810,7 +810,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcl2")
|
TTMATH_LOGC("UInt::Rcl2", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
@ -890,7 +890,7 @@ namespace ttmath
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TTMATH_LOG("UInt::Rcr2")
|
TTMATH_LOGC("UInt::Rcr2", c)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue