Dash Core  0.12.2.1
P2P Digital Currency
base_uint< BITS > Class Template Reference

#include <arith_uint256.h>

Public Member Functions

 base_uint ()
 
 base_uint (const base_uint &b)
 
base_uintoperator= (const base_uint &b)
 
 base_uint (uint64_t b)
 
 base_uint (const std::string &str)
 
bool operator! () const
 
const base_uint operator~ () const
 
const base_uint operator- () const
 
double getdouble () const
 
base_uintoperator= (uint64_t b)
 
base_uintoperator^= (const base_uint &b)
 
base_uintoperator &= (const base_uint &b)
 
base_uintoperator|= (const base_uint &b)
 
base_uintoperator^= (uint64_t b)
 
base_uintoperator|= (uint64_t b)
 
base_uintoperator<<= (unsigned int shift)
 
base_uintoperator>>= (unsigned int shift)
 
base_uintoperator+= (const base_uint &b)
 
base_uintoperator-= (const base_uint &b)
 
base_uintoperator+= (uint64_t b64)
 
base_uintoperator-= (uint64_t b64)
 
base_uintoperator*= (uint32_t b32)
 
base_uintoperator*= (const base_uint &b)
 
base_uintoperator/= (const base_uint &b)
 
base_uintoperator++ ()
 
const base_uint operator++ (int)
 
base_uintoperator-- ()
 
const base_uint operator-- (int)
 
int CompareTo (const base_uint &b) const
 
bool EqualTo (uint64_t b) const
 
std::string GetHex () const
 
void SetHex (const char *psz)
 
void SetHex (const std::string &str)
 
std::string ToString () const
 
unsigned int size () const
 
unsigned int bits () const
 
uint64_t GetLow64 () const
 

Protected Types

enum  { WIDTH =BITS/32 }
 

Protected Attributes

uint32_t pn [WIDTH]
 

Friends

const base_uint operator+ (const base_uint &a, const base_uint &b)
 
const base_uint operator- (const base_uint &a, const base_uint &b)
 
const base_uint operator* (const base_uint &a, const base_uint &b)
 
const base_uint operator/ (const base_uint &a, const base_uint &b)
 
const base_uint operator| (const base_uint &a, const base_uint &b)
 
const base_uint operator & (const base_uint &a, const base_uint &b)
 
const base_uint operator^ (const base_uint &a, const base_uint &b)
 
const base_uint operator>> (const base_uint &a, int shift)
 
const base_uint operator<< (const base_uint &a, int shift)
 
const base_uint operator* (const base_uint &a, uint32_t b)
 
bool operator== (const base_uint &a, const base_uint &b)
 
bool operator!= (const base_uint &a, const base_uint &b)
 
bool operator> (const base_uint &a, const base_uint &b)
 
bool operator< (const base_uint &a, const base_uint &b)
 
bool operator>= (const base_uint &a, const base_uint &b)
 
bool operator<= (const base_uint &a, const base_uint &b)
 
bool operator== (const base_uint &a, uint64_t b)
 
bool operator!= (const base_uint &a, uint64_t b)
 

Detailed Description

template<unsigned int BITS>
class base_uint< BITS >

Template base class for unsigned big integers.

Definition at line 25 of file arith_uint256.h.

Member Enumeration Documentation

◆ anonymous enum

template<unsigned int BITS>
anonymous enum
protected
Enumerator
WIDTH 

Definition at line 28 of file arith_uint256.h.

Constructor & Destructor Documentation

◆ base_uint() [1/4]

template<unsigned int BITS>
base_uint< BITS >::base_uint ( )
inline

Definition at line 32 of file arith_uint256.h.

◆ base_uint() [2/4]

template<unsigned int BITS>
base_uint< BITS >::base_uint ( const base_uint< BITS > &  b)
inline

Definition at line 38 of file arith_uint256.h.

◆ base_uint() [3/4]

template<unsigned int BITS>
base_uint< BITS >::base_uint ( uint64_t  b)
inline

Definition at line 51 of file arith_uint256.h.

◆ base_uint() [4/4]

template<unsigned int BITS>
base_uint< BITS >::base_uint ( const std::string &  str)
explicit

Definition at line 16 of file arith_uint256.cpp.

Member Function Documentation

◆ bits()

template<unsigned int BITS>
unsigned int base_uint< BITS >::bits ( ) const

Returns the position of the highest bit set plus one, or zero if the value is zero.

Definition at line 172 of file arith_uint256.cpp.

Referenced by GetBlockProofEquivalentTime(), and base_uint< 256 >::operator/=().

◆ CompareTo()

template<unsigned int BITS>
int base_uint< BITS >::CompareTo ( const base_uint< BITS > &  b) const

Definition at line 110 of file arith_uint256.cpp.

◆ EqualTo()

template<unsigned int BITS>
bool base_uint< BITS >::EqualTo ( uint64_t  b) const

Definition at line 122 of file arith_uint256.cpp.

◆ getdouble()

template<unsigned int BITS>
double base_uint< BITS >::getdouble ( ) const

Definition at line 136 of file arith_uint256.cpp.

Referenced by GetNetworkHashPS(), InvalidChainFound(), and UpdateTip().

◆ GetHex()

template<unsigned int BITS>
std::string base_uint< BITS >::GetHex ( ) const

◆ GetLow64()

template<unsigned int BITS>
uint64_t base_uint< BITS >::GetLow64 ( ) const
inline

Definition at line 245 of file arith_uint256.h.

Referenced by GetBlockProofEquivalentTime(), and arith_uint256::GetCompact().

◆ operator &=()

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator&= ( const base_uint< BITS > &  b)
inline

Definition at line 104 of file arith_uint256.h.

◆ operator!()

template<unsigned int BITS>
bool base_uint< BITS >::operator! ( ) const
inline

Definition at line 61 of file arith_uint256.h.

◆ operator*=() [1/2]

template<unsigned int BITS>
base_uint< BITS > & base_uint< BITS >::operator*= ( uint32_t  b32)

Definition at line 56 of file arith_uint256.cpp.

◆ operator*=() [2/2]

template<unsigned int BITS>
base_uint< BITS > & base_uint< BITS >::operator*= ( const base_uint< BITS > &  b)

Definition at line 68 of file arith_uint256.cpp.

◆ operator++() [1/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator++ ( )
inline

Definition at line 173 of file arith_uint256.h.

◆ operator++() [2/2]

template<unsigned int BITS>
const base_uint base_uint< BITS >::operator++ ( int  )
inline

Definition at line 182 of file arith_uint256.h.

◆ operator+=() [1/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator+= ( const base_uint< BITS > &  b)
inline

Definition at line 135 of file arith_uint256.h.

◆ operator+=() [2/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator+= ( uint64_t  b64)
inline

Definition at line 153 of file arith_uint256.h.

◆ operator-()

template<unsigned int BITS>
const base_uint base_uint< BITS >::operator- ( ) const
inline

Definition at line 77 of file arith_uint256.h.

◆ operator--() [1/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator-- ( )
inline

Definition at line 190 of file arith_uint256.h.

◆ operator--() [2/2]

template<unsigned int BITS>
const base_uint base_uint< BITS >::operator-- ( int  )
inline

Definition at line 199 of file arith_uint256.h.

◆ operator-=() [1/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator-= ( const base_uint< BITS > &  b)
inline

Definition at line 147 of file arith_uint256.h.

◆ operator-=() [2/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator-= ( uint64_t  b64)
inline

Definition at line 161 of file arith_uint256.h.

◆ operator/=()

template<unsigned int BITS>
base_uint< BITS > & base_uint< BITS >::operator/= ( const base_uint< BITS > &  b)

Definition at line 84 of file arith_uint256.cpp.

◆ operator<<=()

template<unsigned int BITS>
base_uint< BITS > & base_uint< BITS >::operator<<= ( unsigned int  shift)

Definition at line 22 of file arith_uint256.cpp.

◆ operator=() [1/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator= ( const base_uint< BITS > &  b)
inline

Definition at line 44 of file arith_uint256.h.

◆ operator=() [2/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator= ( uint64_t  b)
inline

Definition at line 88 of file arith_uint256.h.

◆ operator>>=()

template<unsigned int BITS>
base_uint< BITS > & base_uint< BITS >::operator>>= ( unsigned int  shift)

Definition at line 39 of file arith_uint256.cpp.

◆ operator^=() [1/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator^= ( const base_uint< BITS > &  b)
inline

Definition at line 97 of file arith_uint256.h.

◆ operator^=() [2/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator^= ( uint64_t  b)
inline

Definition at line 118 of file arith_uint256.h.

◆ operator|=() [1/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator|= ( const base_uint< BITS > &  b)
inline

Definition at line 111 of file arith_uint256.h.

◆ operator|=() [2/2]

template<unsigned int BITS>
base_uint& base_uint< BITS >::operator|= ( uint64_t  b)
inline

Definition at line 125 of file arith_uint256.h.

◆ operator~()

template<unsigned int BITS>
const base_uint base_uint< BITS >::operator~ ( ) const
inline

Definition at line 69 of file arith_uint256.h.

◆ SetHex() [1/2]

template<unsigned int BITS>
void base_uint< BITS >::SetHex ( const char *  psz)

Definition at line 154 of file arith_uint256.cpp.

◆ SetHex() [2/2]

template<unsigned int BITS>
void base_uint< BITS >::SetHex ( const std::string &  str)

Definition at line 160 of file arith_uint256.cpp.

◆ size()

template<unsigned int BITS>
unsigned int base_uint< BITS >::size ( ) const
inline

Definition at line 234 of file arith_uint256.h.

◆ ToString()

template<unsigned int BITS>
std::string base_uint< BITS >::ToString ( ) const

Definition at line 166 of file arith_uint256.cpp.

Referenced by CalculateNextWorkRequired().

Friends And Related Function Documentation

◆ operator &

template<unsigned int BITS>
const base_uint operator& ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 215 of file arith_uint256.h.

◆ operator!= [1/2]

template<unsigned int BITS>
bool operator!= ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 221 of file arith_uint256.h.

◆ operator!= [2/2]

template<unsigned int BITS>
bool operator!= ( const base_uint< BITS > &  a,
uint64_t  b 
)
friend

Definition at line 227 of file arith_uint256.h.

◆ operator* [1/2]

template<unsigned int BITS>
const base_uint operator* ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 212 of file arith_uint256.h.

◆ operator* [2/2]

template<unsigned int BITS>
const base_uint operator* ( const base_uint< BITS > &  a,
uint32_t  b 
)
friend

Definition at line 219 of file arith_uint256.h.

◆ operator+

template<unsigned int BITS>
const base_uint operator+ ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 210 of file arith_uint256.h.

◆ operator-

template<unsigned int BITS>
const base_uint operator- ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 211 of file arith_uint256.h.

◆ operator/

template<unsigned int BITS>
const base_uint operator/ ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 213 of file arith_uint256.h.

◆ operator<

template<unsigned int BITS>
bool operator< ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 223 of file arith_uint256.h.

◆ operator<<

template<unsigned int BITS>
const base_uint operator<< ( const base_uint< BITS > &  a,
int  shift 
)
friend

Definition at line 218 of file arith_uint256.h.

◆ operator<=

template<unsigned int BITS>
bool operator<= ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 225 of file arith_uint256.h.

◆ operator== [1/2]

template<unsigned int BITS>
bool operator== ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 220 of file arith_uint256.h.

◆ operator== [2/2]

template<unsigned int BITS>
bool operator== ( const base_uint< BITS > &  a,
uint64_t  b 
)
friend

Definition at line 226 of file arith_uint256.h.

◆ operator>

template<unsigned int BITS>
bool operator> ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 222 of file arith_uint256.h.

◆ operator>=

template<unsigned int BITS>
bool operator>= ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 224 of file arith_uint256.h.

◆ operator>>

template<unsigned int BITS>
const base_uint operator>> ( const base_uint< BITS > &  a,
int  shift 
)
friend

Definition at line 217 of file arith_uint256.h.

◆ operator^

template<unsigned int BITS>
const base_uint operator^ ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 216 of file arith_uint256.h.

◆ operator|

template<unsigned int BITS>
const base_uint operator| ( const base_uint< BITS > &  a,
const base_uint< BITS > &  b 
)
friend

Definition at line 214 of file arith_uint256.h.

Member Data Documentation

◆ pn


The documentation for this class was generated from the following files: