clan::BigInt Class Reference

Big Integer class. More...

#include <big_int.h>

Public Member Functions

Construction
 BigInt ()
 Constructs a big integer (initialised to zero) More...
 
 BigInt (uint32_t value)
 Constructs a big integer (initialised to value) More...
 
 BigInt (int32_t value)
 Constructs a big integer (initialised to value) More...
 
 BigInt (uint64_t value)
 Constructs a big integer (initialised to value) More...
 
 BigInt (int64_t value)
 Constructs a big integer (initialised to value) More...
 
 BigInt (const BigInt &other)
 Copy constructor. More...
 
 ~BigInt ()
 Destructor. More...
 
BigIntoperator= (const BigInt &other)
 
Operations
void read_unsigned_octets (const unsigned char *input_str, unsigned int input_length)
 
void zero ()
 
bool make_prime (unsigned int num_bits)
 
int cmp_z () const
 Compare a <=> 0. Returns <0 if a<0, 0 if a=0, >0 if a>0. More...
 
void set_bit (unsigned int bit_number, unsigned int value)
 
int significant_bits () const
 
void sieve (const uint32_t *primes, unsigned int num_primes, std::vector< unsigned char > &sieve)
 
uint32_t mod_d (uint32_t d) const
 Compute c = a (mod d). Result will always be 0 <= c < d. More...
 
void div_d (uint32_t d, BigInt *q, uint32_t *r) const
 Compute the quotient q = a / d and remainder r = a mod d, for a single digit d. Respects the sign of its divisor (single digits are unsigned anyway). More...
 
bool fermat (uint32_t w) const
 Using w as a witness, try pseudo-primality testing based on Fermat's little theorem. More...
 
bool pprime (int nt) const
 Performs nt iteration of the Miller-Rabin probabilistic primality test on a. More...
 
void set (int32_t d)
 Sets a value. More...
 
void set (uint32_t d)
 
void set (uint64_t d)
 
void set (int64_t d)
 
void get (uint32_t &d)
 Gets a value. More...
 
void get (uint64_t &d)
 
void get (int64_t &d)
 
void get (int32_t &d)
 
void exptmod (const BigInt *b, const BigInt *m, BigInt *c) const
 Compute c = (a ** b) mod m. More...
 
void mod (const BigInt *m, BigInt *c) const
 Compute c = a (mod m). Result will always be 0 <= c < m. More...
 
void div (const BigInt &b, BigInt *q, BigInt *r) const
 Compute q = a / b and r = a mod b. More...
 
void div (uint32_t d, BigInt *q, BigInt *r) const
 
BigInt operator+ (const BigInt &b)
 Compute result = this + b. More...
 
BigInt operator+ (uint32_t d)
 
BigInt operator+= (const BigInt &b)
 Compute this += b. More...
 
BigInt operator+= (uint32_t d)
 
BigInt operator- (const BigInt &b)
 Compute result = this - b. More...
 
BigInt operator- (uint32_t d)
 
BigInt operator-= (const BigInt &b)
 Compute this -= b. More...
 
BigInt operator-= (uint32_t d)
 
BigInt operator* (const BigInt &b)
 Compute result = this * b. More...
 
BigInt operator* (uint32_t d)
 
BigInt operator*= (const BigInt &b)
 Compute this *= b. More...
 
BigInt operator*= (uint32_t d)
 
BigInt operator/ (const BigInt &b)
 Compute result = this / b. More...
 
BigInt operator/ (uint32_t d)
 
BigInt operator/= (const BigInt &b)
 Compute this /= b. More...
 
BigInt operator/= (uint32_t d)
 
BigInt operator% (const BigInt &b)
 Compute result = this % b. More...
 
BigInt operator% (uint32_t d)
 
BigInt operator%= (const BigInt &b)
 Compute this %= b. More...
 
BigInt operator%= (uint32_t d)
 
int cmp (const BigInt *b) const
 
int cmp_d (uint32_t d) const
 Compare a <=> d. Returns <0 if a<d, 0 if a=d, >0 if a>d. More...
 
void neg (BigInt *b) const
 Compute b = -a. 'a' and 'b' may be identical. More...
 
unsigned int trailing_zeros () const
 
void sqrmod (const BigInt *m, BigInt *c) const
 
void sqr (BigInt *b) const
 
void random ()
 Assigns a random value to a. More...
 
void exch (BigInt *mp2)
 Exchange mp1 and mp2 without allocating any intermediate memory. More...
 
bool invmod (const BigInt *m, BigInt *c) const
 Compute c = a^-1 (mod m), if there is an inverse for a (mod m). More...
 
void xgcd (const BigInt *b, BigInt *g, BigInt *x, BigInt *y) const
 Compute g = (a, b) and values x and y satisfying Bezout's identity. More...
 
void abs (BigInt *b) const
 Compute b = |a|. 'a' and 'b' may be identical. More...
 
bool is_even () const
 Returns a true if number is even. More...
 
bool is_odd () const
 Returns a true if number is odd. More...
 
void div_2 (BigInt *c) const
 Compute c = a / 2, disregarding the remainder. More...
 
void to_unsigned_octets (unsigned char *output_str, unsigned int output_length) const
 
int unsigned_octet_size () const
 

Detailed Description

Big Integer class.


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