TrinityCore
BigNumber Class Reference

#include <BigNumber.h>

Public Member Functions

 BigNumber ()
 
 BigNumber (BigNumber const &bn)
 
 BigNumber (uint32 v)
 
 BigNumber (int32 v)
 
 BigNumber (std::string const &v)
 
 BigNumber (std::vector< uint8 > const &v, bool littleEndian=true)
 
template<size_t Size>
 BigNumber (std::array< uint8, Size > const &v, bool littleEndian=true)
 
 ~BigNumber ()
 
void SetDword (int32)
 
void SetDword (uint32)
 
void SetQword (uint64)
 
void SetBinary (uint8 const *bytes, int32 len, bool littleEndian=true)
 
template<typename Container >
auto SetBinary (Container const &c, bool littleEndian=true) -> std::enable_if_t<!std::is_pointer_v< std::decay_t< Container > > >
 
bool SetHexStr (char const *str)
 
bool SetHexStr (std::string const &str)
 
void SetRand (int32 numbits)
 
BigNumberoperator= (BigNumber const &bn)
 
BigNumberoperator+= (BigNumber const &bn)
 
BigNumber operator+ (BigNumber const &bn) const
 
BigNumberoperator-= (BigNumber const &bn)
 
BigNumber operator- (BigNumber const &bn) const
 
BigNumberoperator*= (BigNumber const &bn)
 
BigNumber operator* (BigNumber const &bn) const
 
BigNumberoperator/= (BigNumber const &bn)
 
BigNumber operator/ (BigNumber const &bn) const
 
BigNumberoperator%= (BigNumber const &bn)
 
BigNumber operator% (BigNumber const &bn) const
 
BigNumberoperator<<= (int n)
 
BigNumber operator<< (int n) const
 
int32 CompareTo (BigNumber const &bn) const
 
bool operator== (BigNumber const &bn) const
 
std::strong_ordering operator<=> (BigNumber const &other) const
 
bool IsZero () const
 
bool IsNegative () const
 
BigNumber ModExp (BigNumber const &bn1, BigNumber const &bn2) const
 
BigNumber Exp (BigNumber const &) const
 
int32 GetNumBytes () const
 
int32 GetNumBits () const
 
struct bignum_st * BN ()
 
struct bignum_st const * BN () const
 
uint32 AsDword () const
 
void GetBytes (uint8 *buf, size_t bufsize, bool littleEndian=true) const
 
std::vector< uint8ToByteVector (int32 minSize=0, bool littleEndian=true) const
 
template<std::size_t Size>
std::array< uint8, Size > ToByteArray (bool littleEndian=true) const
 
std::string AsHexStr () const
 
std::string AsDecStr () const
 

Private Attributes

struct bignum_st * _bn
 

Detailed Description

Definition at line 29 of file BigNumber.h.

Constructor & Destructor Documentation

◆ BigNumber() [1/7]

BigNumber::BigNumber ( )

Definition at line 24 of file BigNumber.cpp.

◆ BigNumber() [2/7]

BigNumber::BigNumber ( BigNumber const &  bn)

Definition at line 28 of file BigNumber.cpp.

◆ BigNumber() [3/7]

BigNumber::BigNumber ( uint32  v)
inline

Definition at line 34 of file BigNumber.h.

◆ BigNumber() [4/7]

BigNumber::BigNumber ( int32  v)
inline

Definition at line 35 of file BigNumber.h.

◆ BigNumber() [5/7]

BigNumber::BigNumber ( std::string const &  v)
inline

Definition at line 36 of file BigNumber.h.

◆ BigNumber() [6/7]

BigNumber::BigNumber ( std::vector< uint8 > const &  v,
bool  littleEndian = true 
)
inline

Definition at line 37 of file BigNumber.h.

◆ BigNumber() [7/7]

template<size_t Size>
BigNumber::BigNumber ( std::array< uint8, Size > const &  v,
bool  littleEndian = true 
)
inline

Definition at line 39 of file BigNumber.h.

+ Here is the call graph for this function:

◆ ~BigNumber()

BigNumber::~BigNumber ( )

Definition at line 32 of file BigNumber.cpp.

Member Function Documentation

◆ AsDecStr()

std::string BigNumber::AsDecStr ( ) const

Definition at line 212 of file BigNumber.cpp.

◆ AsDword()

uint32 BigNumber::AsDword ( ) const

Definition at line 174 of file BigNumber.cpp.

◆ AsHexStr()

std::string BigNumber::AsHexStr ( ) const

Definition at line 204 of file BigNumber.cpp.

◆ BN() [1/2]

struct bignum_st * BigNumber::BN ( )
inline

Definition at line 119 of file BigNumber.h.

◆ BN() [2/2]

struct bignum_st const * BigNumber::BN ( ) const
inline

Definition at line 120 of file BigNumber.h.

◆ CompareTo()

int32 BigNumber::CompareTo ( BigNumber const &  bn) const

Definition at line 135 of file BigNumber.cpp.

◆ Exp()

BigNumber BigNumber::Exp ( BigNumber const &  bn) const

Definition at line 140 of file BigNumber.cpp.

◆ GetBytes()

void BigNumber::GetBytes ( uint8 buf,
size_t  bufsize,
bool  littleEndian = true 
) const

Definition at line 189 of file BigNumber.cpp.

+ Here is the caller graph for this function:

◆ GetNumBits()

int32 BigNumber::GetNumBits ( ) const

Definition at line 169 of file BigNumber.cpp.

+ Here is the caller graph for this function:

◆ GetNumBytes()

int32 BigNumber::GetNumBytes ( ) const

Definition at line 164 of file BigNumber.cpp.

+ Here is the caller graph for this function:

◆ IsNegative()

bool BigNumber::IsNegative ( ) const

Definition at line 184 of file BigNumber.cpp.

◆ IsZero()

bool BigNumber::IsZero ( ) const

Definition at line 179 of file BigNumber.cpp.

◆ ModExp()

BigNumber BigNumber::ModExp ( BigNumber const &  bn1,
BigNumber const &  bn2 
) const

Definition at line 152 of file BigNumber.cpp.

+ Here is the caller graph for this function:

◆ operator%()

BigNumber BigNumber::operator% ( BigNumber const &  bn) const
inline

Definition at line 85 of file BigNumber.h.

◆ operator%=()

BigNumber & BigNumber::operator%= ( BigNumber const &  bn)

Definition at line 118 of file BigNumber.cpp.

◆ operator*()

BigNumber BigNumber::operator* ( BigNumber const &  bn) const
inline

Definition at line 71 of file BigNumber.h.

◆ operator*=()

BigNumber & BigNumber::operator*= ( BigNumber const &  bn)

Definition at line 96 of file BigNumber.cpp.

◆ operator+()

BigNumber BigNumber::operator+ ( BigNumber const &  bn) const
inline

Definition at line 57 of file BigNumber.h.

◆ operator+=()

BigNumber & BigNumber::operator+= ( BigNumber const &  bn)

Definition at line 84 of file BigNumber.cpp.

◆ operator-()

BigNumber BigNumber::operator- ( BigNumber const &  bn) const
inline

Definition at line 64 of file BigNumber.h.

◆ operator-=()

BigNumber & BigNumber::operator-= ( BigNumber const &  bn)

Definition at line 90 of file BigNumber.cpp.

◆ operator/()

BigNumber BigNumber::operator/ ( BigNumber const &  bn) const
inline

Definition at line 78 of file BigNumber.h.

◆ operator/=()

BigNumber & BigNumber::operator/= ( BigNumber const &  bn)

Definition at line 107 of file BigNumber.cpp.

◆ operator<<()

BigNumber BigNumber::operator<< ( int  n) const
inline

Definition at line 92 of file BigNumber.h.

◆ operator<<=()

BigNumber & BigNumber::operator<<= ( int  n)

Definition at line 129 of file BigNumber.cpp.

◆ operator<=>()

std::strong_ordering BigNumber::operator<=> ( BigNumber const &  other) const
inline

Definition at line 100 of file BigNumber.h.

◆ operator=()

BigNumber & BigNumber::operator= ( BigNumber const &  bn)

Definition at line 75 of file BigNumber.cpp.

◆ operator==()

bool BigNumber::operator== ( BigNumber const &  bn) const
inline

Definition at line 99 of file BigNumber.h.

◆ SetBinary() [1/2]

template<typename Container >
auto BigNumber::SetBinary ( Container const &  c,
bool  littleEndian = true 
) -> std::enable_if_t<!std::is_pointer_v<std::decay_t<Container>>>
inline

Definition at line 48 of file BigNumber.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetBinary() [2/2]

void BigNumber::SetBinary ( uint8 const *  bytes,
int32  len,
bool  littleEndian = true 
)

Definition at line 56 of file BigNumber.cpp.

◆ SetDword() [1/2]

void BigNumber::SetDword ( int32  val)

Definition at line 37 of file BigNumber.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetDword() [2/2]

void BigNumber::SetDword ( uint32  val)

Definition at line 44 of file BigNumber.cpp.

◆ SetHexStr() [1/2]

bool BigNumber::SetHexStr ( char const *  str)

Definition at line 64 of file BigNumber.cpp.

+ Here is the caller graph for this function:

◆ SetHexStr() [2/2]

bool BigNumber::SetHexStr ( std::string const &  str)
inline

Definition at line 50 of file BigNumber.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetQword()

void BigNumber::SetQword ( uint64  val)

Definition at line 49 of file BigNumber.cpp.

◆ SetRand()

void BigNumber::SetRand ( int32  numbits)

Definition at line 70 of file BigNumber.cpp.

+ Here is the caller graph for this function:

◆ ToByteArray()

template<std::size_t Size>
std::array< uint8, Size > BigNumber::ToByteArray ( bool  littleEndian = true) const
inline

Definition at line 128 of file BigNumber.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ToByteVector()

std::vector< uint8 > BigNumber::ToByteVector ( int32  minSize = 0,
bool  littleEndian = true 
) const

Definition at line 195 of file BigNumber.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ _bn

struct bignum_st* BigNumber::_bn
private

Definition at line 139 of file BigNumber.h.


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