Raven Core  3.0.0
P2P Digital Currency
Public Member Functions | Protected Types | Protected Attributes | Friends | List of all members
base_uint< BITS > Class Template Reference

Template base class for unsigned big integers. More...

#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
 Returns the position of the highest bit set plus one, or zero if the value is zero. More...
 
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 26 of file arith_uint256.h.

Member Enumeration Documentation

◆ anonymous enum

template<unsigned int BITS>
anonymous enum
protected
Enumerator
WIDTH 

Definition at line 29 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 33 of file arith_uint256.h.

Here is the caller graph for this function:

◆ base_uint() [2/4]

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

Definition at line 41 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 56 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 17 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 175 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ CompareTo()

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

Definition at line 113 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ EqualTo()

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

Definition at line 125 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ getdouble()

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

Definition at line 139 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ GetHex()

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

Definition at line 151 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ GetLow64()

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

Definition at line 252 of file arith_uint256.h.

Here is the caller graph for this function:

◆ operator &=()

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!()

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

Definition at line 68 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 59 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ operator*=() [2/2]

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

Definition at line 71 of file arith_uint256.cpp.

◆ operator++() [1/2]

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

Definition at line 180 of file arith_uint256.h.

◆ operator++() [2/2]

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

Definition at line 189 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 142 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 160 of file arith_uint256.h.

◆ operator-()

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

Definition at line 84 of file arith_uint256.h.

◆ operator--() [1/2]

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

Definition at line 197 of file arith_uint256.h.

◆ operator--() [2/2]

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

Definition at line 206 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 154 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 168 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 87 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ operator<<=()

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

Definition at line 25 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ operator=() [1/2]

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

Definition at line 49 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 95 of file arith_uint256.h.

◆ operator>>=()

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

Definition at line 42 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ operator^=() [1/2]

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^=() [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|=() [1/2]

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

Definition at line 118 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 132 of file arith_uint256.h.

◆ operator~()

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

Definition at line 76 of file arith_uint256.h.

◆ SetHex() [1/2]

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

Definition at line 157 of file arith_uint256.cpp.

Here is the caller graph for this function:

◆ SetHex() [2/2]

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

Definition at line 163 of file arith_uint256.cpp.

◆ size()

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

Definition at line 241 of file arith_uint256.h.

◆ ToString()

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

Definition at line 169 of file arith_uint256.cpp.

Here is the caller graph for this function:

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 222 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 228 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 234 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 219 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 226 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 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 218 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 220 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 230 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 225 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 232 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 227 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 233 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 229 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 231 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 224 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 223 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 221 of file arith_uint256.h.

Member Data Documentation

◆ pn

template<unsigned int BITS>
uint32_t base_uint< BITS >::pn[WIDTH]
protected

Definition at line 30 of file arith_uint256.h.


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