sherpa::BigNum Class Reference

#include <BigNum.hxx>


Public Member Functions

 ~BigNum ()
 BigNum ()
 BigNum (uint32_t u, bool neg)
 BigNum (uint64_t u, bool neg)
 BigNum (uint32_t u)
 BigNum (uint64_t u)
 BigNum (int32_t i)
 BigNum (int64_t i)
 BigNum (const std::string &s, uint32_t radix=0)
 BigNum (const BigNum &)
BigNum operator+ (const BigNum &) const
BigNum operator- (const BigNum &) const
BigNum operator * (const BigNum &) const
BigNum operator/ (const BigNum &) const
BigNum operator% (const BigNum &) const
BigNumoperator+= (const BigNum &other)
BigNumoperator-= (const BigNum &other)
BigNumoperator *= (const BigNum &other)
BigNumoperator/= (const BigNum &other)
BigNumoperator%= (const BigNum &other)
BigNumoperator= (const BigNum &)
BigNum abs () const
BigNum neg () const
BigNum operator- () const
int cmp (const BigNum &other) const
bool operator< (const BigNum &other) const
bool operator<= (const BigNum &other) const
bool operator> (const BigNum &other) const
bool operator>= (const BigNum &other) const
bool operator== (const BigNum &other) const
bool operator!= (const BigNum &other) const
BigNum operator<< (size_t n)
BigNum operator>> (size_t n)
BigNumoperator<<= (size_t n)
BigNumoperator>>= (size_t n)
std::string asString (uint32_t radix=10) const
void toStream (std::ostream &strm, uint32_t radix=10) const
void fromStream (std::istream &strm, uint32_t radix=10)
uint32_t as_uint32 () const
uint64_t as_uint64 () const

Friends

struct nvec


Detailed Description

Definition at line 49 of file BigNum.hxx.


Constructor & Destructor Documentation

sherpa::BigNum::~BigNum (  ) 

Definition at line 396 of file BigNum.cxx.

sherpa::BigNum::BigNum (  )  [inline]

Definition at line 85 of file BigNum.hxx.

Referenced by asString(), operator *(), operator%(), operator+(), operator-(), operator/(), operator<<(), and operator>>().

sherpa::BigNum::BigNum ( uint32_t  u,
bool  neg 
) [inline]

Definition at line 92 of file BigNum.hxx.

sherpa::BigNum::BigNum ( uint64_t  u,
bool  neg 
)

Definition at line 433 of file BigNum.cxx.

References UINT32_T_MAX.

sherpa::BigNum::BigNum ( uint32_t  u  )  [inline]

Definition at line 110 of file BigNum.hxx.

sherpa::BigNum::BigNum ( uint64_t  u  ) 

Definition at line 448 of file BigNum.cxx.

References UINT32_T_MAX.

sherpa::BigNum::BigNum ( int32_t  i  )  [inline]

Definition at line 117 of file BigNum.hxx.

sherpa::BigNum::BigNum ( int64_t  i  ) 

Definition at line 463 of file BigNum.cxx.

References UINT32_T_MAX.

sherpa::BigNum::BigNum ( const std::string &  s,
uint32_t  radix = 0 
)

Definition at line 512 of file BigNum.cxx.

sherpa::BigNum::BigNum ( const BigNum  ) 

Definition at line 402 of file BigNum.cxx.

References digits, nDigits, negative, and oneDigit.


Member Function Documentation

BigNum sherpa::BigNum::abs (  )  const

Definition at line 698 of file BigNum.cxx.

References negative.

Referenced by operator+().

uint32_t sherpa::BigNum::as_uint32 (  )  const [inline]

Definition at line 226 of file BigNum.hxx.

uint64_t sherpa::BigNum::as_uint64 (  )  const [inline]

Definition at line 231 of file BigNum.hxx.

std::string sherpa::BigNum::asString ( uint32_t  radix = 10  )  const

Definition at line 743 of file BigNum.cxx.

References BigNum(), getDigit(), oneDigit, and s.

Referenced by toStream().

int sherpa::BigNum::cmp ( const BigNum other  )  const

Definition at line 684 of file BigNum.cxx.

References negative, and sherpa::vu_cmp().

Referenced by operator!=(), operator<(), operator<=(), operator==(), operator>(), and operator>=().

void sherpa::BigNum::fromStream ( std::istream &  strm,
uint32_t  radix = 10 
)

Definition at line 831 of file BigNum.cxx.

Referenced by sherpa::operator>>().

BigNum sherpa::BigNum::neg (  )  const

Definition at line 709 of file BigNum.cxx.

References negative.

Referenced by operator-().

BigNum sherpa::BigNum::operator * ( const BigNum  )  const

Definition at line 621 of file BigNum.cxx.

References BigNum(), sherpa::nvec::len, negative, sherpa::nvec::vec, and sherpa::vu_mul().

BigNum& sherpa::BigNum::operator *= ( const BigNum other  )  [inline]

Definition at line 147 of file BigNum.hxx.

bool sherpa::BigNum::operator!= ( const BigNum other  )  const [inline]

Definition at line 202 of file BigNum.hxx.

References cmp().

BigNum sherpa::BigNum::operator% ( const BigNum  )  const

Definition at line 663 of file BigNum.cxx.

References BigNum(), sherpa::nvec::len, sherpa::nvec::vec, and sherpa::vu_divqr().

BigNum& sherpa::BigNum::operator%= ( const BigNum other  )  [inline]

Definition at line 159 of file BigNum.hxx.

BigNum sherpa::BigNum::operator+ ( const BigNum  )  const

Definition at line 566 of file BigNum.cxx.

References abs(), BigNum(), sherpa::nvec::len, max(), negative, sherpa::nvec::vec, and sherpa::vu_add().

BigNum& sherpa::BigNum::operator+= ( const BigNum other  )  [inline]

Definition at line 135 of file BigNum.hxx.

BigNum sherpa::BigNum::operator- (  )  const [inline]

Definition at line 171 of file BigNum.hxx.

References neg().

BigNum sherpa::BigNum::operator- ( const BigNum  )  const

Definition at line 589 of file BigNum.cxx.

References BigNum(), sherpa::nvec::len, max(), nDigits, negative, sherpa::nvec::vec, sherpa::vu_add(), sherpa::vu_cmp(), and sherpa::vu_sub().

BigNum& sherpa::BigNum::operator-= ( const BigNum other  )  [inline]

Definition at line 141 of file BigNum.hxx.

BigNum sherpa::BigNum::operator/ ( const BigNum  )  const

Definition at line 638 of file BigNum.cxx.

References sherpa::excpt::BadValue, BigNum(), sherpa::nvec::len, negative, THROW, sherpa::nvec::vec, and sherpa::vu_divqr().

BigNum& sherpa::BigNum::operator/= ( const BigNum other  )  [inline]

Definition at line 153 of file BigNum.hxx.

bool sherpa::BigNum::operator< ( const BigNum other  )  const [inline]

Definition at line 178 of file BigNum.hxx.

References cmp().

BigNum sherpa::BigNum::operator<< ( size_t  n  ) 

Definition at line 719 of file BigNum.cxx.

References BigNum(), sherpa::nvec::len, sherpa::nvec::vec, and sherpa::vu_lshift_bits().

BigNum& sherpa::BigNum::operator<<= ( size_t  n  )  [inline]

Definition at line 210 of file BigNum.hxx.

bool sherpa::BigNum::operator<= ( const BigNum other  )  const [inline]

Definition at line 183 of file BigNum.hxx.

References cmp().

BigNum & sherpa::BigNum::operator= ( const BigNum  ) 

Definition at line 415 of file BigNum.cxx.

References digits, nDigits, negative, and oneDigit.

bool sherpa::BigNum::operator== ( const BigNum other  )  const [inline]

Definition at line 197 of file BigNum.hxx.

References cmp().

bool sherpa::BigNum::operator> ( const BigNum other  )  const [inline]

Definition at line 187 of file BigNum.hxx.

References cmp().

bool sherpa::BigNum::operator>= ( const BigNum other  )  const [inline]

Definition at line 192 of file BigNum.hxx.

References cmp().

BigNum sherpa::BigNum::operator>> ( size_t  n  ) 

Definition at line 731 of file BigNum.cxx.

References BigNum(), sherpa::nvec::len, sherpa::nvec::vec, and sherpa::vu_rshift_bits().

BigNum& sherpa::BigNum::operator>>= ( size_t  n  )  [inline]

Definition at line 215 of file BigNum.hxx.

void sherpa::BigNum::toStream ( std::ostream &  strm,
uint32_t  radix = 10 
) const

Definition at line 826 of file BigNum.cxx.

References asString().

Referenced by sherpa::operator<<().


Friends And Related Function Documentation

friend struct nvec [friend]

Definition at line 50 of file BigNum.hxx.


The documentation for this class was generated from the following files:
Generated on Fri Feb 10 07:59:21 2012 for BitC Compiler by  doxygen 1.4.7