Functions

big Namespace Reference

Functions

uint32_t Degree (uint32_t v)
int LimbDegree (const uint32_t *n, int limbs)
uint32_t Degree (const uint32_t *n, int limbs)
void Set (uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
void Set (uint32_t *lhs, int limbs, const uint32_t *rhs)
void Set32 (uint32_t *lhs, int lhs_limbs, const uint32_t rhs)
bool Less (int limbs, const uint32_t *lhs, const uint32_t *rhs)
bool Greater (int limbs, const uint32_t *lhs, const uint32_t *rhs)
bool Equal (int limbs, const uint32_t *lhs, const uint32_t *rhs)
bool Less (const uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
bool Greater (const uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
bool Equal (const uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
bool Greater32 (const uint32_t *lhs, int lhs_limbs, uint32_t rhs)
bool Equal32 (const uint32_t *lhs, int lhs_limbs, uint32_t rhs)
void ShiftRight (int limbs, uint32_t *out, const uint32_t *in, int shift)
uint32_t ShiftLeft (int limbs, uint32_t *out, const uint32_t *in, int shift)
uint32_t Add (uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
uint32_t Add (uint32_t *out, const uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
uint32_t Add32 (uint32_t *lhs, int lhs_limbs, uint32_t rhs)
int32_t Subtract (uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
int32_t Subtract (uint32_t *out, const uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
int32_t Subtract32 (uint32_t *lhs, int lhs_limbs, uint32_t rhs)
void Negate (int limbs, uint32_t *lhs, const uint32_t *rhs)
void BitNot (uint32_t *n, int limbs)
void LimbNot (uint32_t *n, int limbs)
void Xor (int limbs, uint32_t *lhs, const uint32_t *rhs)
uint32_t AddLeftShift32 (int limbs, uint32_t *A, const uint32_t *B, uint32_t S)
uint32_t Multiply32 (int limbs, uint32_t *result, const uint32_t *A, uint32_t B)
uint32_t MultiplyAdd32 (int limbs, uint32_t *X, uint32_t M, uint32_t A)
uint32_t AddMultiply32 (int limbs, uint32_t *A, const uint32_t *B, uint32_t M)
void SimpleMultiply (int limbs, uint32_t *product, const uint32_t *x, const uint32_t *y)
void SimpleMultiplyLowHalf (int limbs, uint32_t *product, const uint32_t *x, const uint32_t *y)
void SimpleSquare (int limbs, uint32_t *product, const uint32_t *x)
void Multiply (int limbs, uint32_t *product, const uint32_t *x, const uint32_t *y)
void Square (int limbs, uint32_t *product, const uint32_t *x)
uint32_t Modulus32 (int limbs, const uint32_t *N, uint32_t divisor)
uint32_t Divide32 (int limbs, uint32_t *A, uint32_t divisor)
uint32_t MulInverse32 (uint32_t n)
bool MulInverse (int limbs, const uint32_t *u, uint32_t *result)
bool Divide (const uint32_t *u, int u_limbs, const uint32_t *v, int v_limbs, uint32_t *q, uint32_t *r)
bool Modulus (const uint32_t *u, int u_limbs, const uint32_t *v, int v_limbs, uint32_t *r)
void BarrettModulusPrecomp (int limbs, const uint32_t *m, uint32_t *m_inv)
void BarrettModulus (int limbs, const uint32_t *x, const uint32_t *m, const uint32_t *m_inv, uint32_t *result)
bool MulMod (int limbs, const uint32_t *x, const uint32_t *y, const uint32_t *modulus, uint32_t *result)
int ToInt (uint32_t *lhs, int max_limbs, const char *rhs, uint32_t base)
void GCD (const uint32_t *a, int a_limbs, const uint32_t *b, int b_limbs, uint32_t *result)
bool InvMod (const uint32_t *u, int u_limbs, const uint32_t *v, int limbs, uint32_t *result)
bool SquareRoot (int limbs, const uint32_t *square, uint32_t *root)
uint32_t MonReducePrecomp (uint32_t modulus0)
void MonInputResidue (const uint32_t *n, int n_limbs, const uint32_t *modulus, int m_limbs, uint32_t *n_residue)
void MonPro (int limbs, const uint32_t *a_residue, const uint32_t *b_residue, const uint32_t *modulus, uint32_t mod_inv, uint32_t *result)
void MonInverse (int limbs, const uint32_t *a_residue, const uint32_t *modulus, uint32_t mod_inv, uint32_t *result)
void MonReduce (int limbs, uint32_t *s, const uint32_t *modulus, uint32_t mod_inv, uint32_t *result)
void MonFinish (int limbs, uint32_t *n, const uint32_t *modulus, uint32_t mod_inv)
uint32_tPrecomputeWindow (const uint32_t *base, const uint32_t *modulus, int limbs, uint32_t mod_inv, int window_bits)
void MonExpMod (const uint32_t *base, const uint32_t *exponent, int exponent_limbs, const uint32_t *modulus, int mod_limbs, uint32_t mod_inv, uint32_t *result)
void ExpMod (const uint32_t *base, int base_limbs, const uint32_t *exponent, int exponent_limbs, const uint32_t *modulus, int mod_limbs, uint32_t mod_inv, uint32_t *result)
uint32_t ExpMod (uint32_t b, uint32_t e, uint32_t m)
bool RabinMillerPrimeTest (const uint32_t *n, int limbs, uint32_t k)
void GenerateStrongPseudoPrime (uint32_t *n, int limbs)
void ToLittleEndian (uint32_t *, int)
void FromLittleEndian (uint32_t *, int)
bool GreaterOrEqual (const uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
bool LessOrEqual (const uint32_t *lhs, int lhs_limbs, const uint32_t *rhs, int rhs_limbs)
bool LessOrEqual32 (const uint32_t *lhs, int lhs_limbs, uint32_t rhs)
void ExpCRT (const uint32_t *base, int base_limbs, const uint32_t *exponent, int exponent_limbs, const uint32_t *mod_p, uint32_t p_inv, const uint32_t *mod_q, uint32_t q_inv, const uint32_t *pinvq, int mod_limbs, uint32_t *result)

Detailed Description

This file is part of RakNet Copyright 2003 Jenkins Software LLC

Usage of RakNet is subject to the appropriate license agreement.


Function Documentation

uint32_t big::Add ( uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
)

Here is the caller graph for this function:

uint32_t big::Add ( uint32_t out,
const uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
)
uint32_t big::Add32 ( uint32_t lhs,
int  lhs_limbs,
uint32_t  rhs 
)
uint32_t big::AddLeftShift32 ( int  limbs,
uint32_t A,
const uint32_t B,
uint32_t  S 
)
uint32_t big::AddMultiply32 ( int  limbs,
uint32_t A,
const uint32_t B,
uint32_t  M 
)
void big::BarrettModulus ( int  limbs,
const uint32_t x,
const uint32_t m,
const uint32_t m_inv,
uint32_t result 
)
void big::BarrettModulusPrecomp ( int  limbs,
const uint32_t m,
uint32_t m_inv 
)
void big::BitNot ( uint32_t n,
int  limbs 
)
uint32_t big::Degree ( uint32_t  v  ) 
uint32_t big::Degree ( const uint32_t n,
int  limbs 
)
bool big::Divide ( const uint32_t u,
int  u_limbs,
const uint32_t v,
int  v_limbs,
uint32_t q,
uint32_t r 
)
uint32_t big::Divide32 ( int  limbs,
uint32_t A,
uint32_t  divisor 
)
bool big::Equal ( int  limbs,
const uint32_t lhs,
const uint32_t rhs 
)
bool big::Equal ( const uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
)
bool big::Equal32 ( const uint32_t lhs,
int  lhs_limbs,
uint32_t  rhs 
)
void big::ExpCRT ( const uint32_t base,
int  base_limbs,
const uint32_t exponent,
int  exponent_limbs,
const uint32_t mod_p,
uint32_t  p_inv,
const uint32_t mod_q,
uint32_t  q_inv,
const uint32_t pinvq,
int  mod_limbs,
uint32_t result 
)
void big::ExpMod ( const uint32_t base,
int  base_limbs,
const uint32_t exponent,
int  exponent_limbs,
const uint32_t modulus,
int  mod_limbs,
uint32_t  mod_inv,
uint32_t result 
)

Here is the caller graph for this function:

uint32_t big::ExpMod ( uint32_t  b,
uint32_t  e,
uint32_t  m 
)

Definition at line 1712 of file BigInt.cpp.

void big::FromLittleEndian ( uint32_t ,
int   
) [inline]

Definition at line 54 of file BigInt.h.

void big::GCD ( const uint32_t a,
int  a_limbs,
const uint32_t b,
int  b_limbs,
uint32_t result 
)

Here is the caller graph for this function:

void big::GenerateStrongPseudoPrime ( uint32_t n,
int  limbs 
)

Here is the caller graph for this function:

bool big::Greater ( int  limbs,
const uint32_t lhs,
const uint32_t rhs 
)

Here is the caller graph for this function:

bool big::Greater ( const uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
)
bool big::Greater32 ( const uint32_t lhs,
int  lhs_limbs,
uint32_t  rhs 
)

Here is the caller graph for this function:

bool big::GreaterOrEqual ( const uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
) [inline]

Definition at line 66 of file BigInt.h.

Here is the call graph for this function:

bool big::InvMod ( const uint32_t u,
int  u_limbs,
const uint32_t v,
int  limbs,
uint32_t result 
)

Here is the caller graph for this function:

bool big::Less ( const uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
)
bool big::Less ( int  limbs,
const uint32_t lhs,
const uint32_t rhs 
)

Here is the caller graph for this function:

bool big::LessOrEqual ( const uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
) [inline]

Definition at line 75 of file BigInt.h.

Here is the call graph for this function:

bool big::LessOrEqual32 ( const uint32_t lhs,
int  lhs_limbs,
uint32_t  rhs 
) [inline]

Definition at line 84 of file BigInt.h.

Here is the call graph for this function:

int big::LimbDegree ( const uint32_t n,
int  limbs 
)
void big::LimbNot ( uint32_t n,
int  limbs 
)
bool big::Modulus ( const uint32_t u,
int  u_limbs,
const uint32_t v,
int  v_limbs,
uint32_t r 
)
uint32_t big::Modulus32 ( int  limbs,
const uint32_t N,
uint32_t  divisor 
)
void big::MonExpMod ( const uint32_t base,
const uint32_t exponent,
int  exponent_limbs,
const uint32_t modulus,
int  mod_limbs,
uint32_t  mod_inv,
uint32_t result 
)
void big::MonFinish ( int  limbs,
uint32_t n,
const uint32_t modulus,
uint32_t  mod_inv 
)
void big::MonInputResidue ( const uint32_t n,
int  n_limbs,
const uint32_t modulus,
int  m_limbs,
uint32_t n_residue 
)
void big::MonInverse ( int  limbs,
const uint32_t a_residue,
const uint32_t modulus,
uint32_t  mod_inv,
uint32_t result 
)
void big::MonPro ( int  limbs,
const uint32_t a_residue,
const uint32_t b_residue,
const uint32_t modulus,
uint32_t  mod_inv,
uint32_t result 
)
void big::MonReduce ( int  limbs,
uint32_t s,
const uint32_t modulus,
uint32_t  mod_inv,
uint32_t result 
)
uint32_t big::MonReducePrecomp ( uint32_t  modulus0  ) 

Here is the caller graph for this function:

bool big::MulInverse ( int  limbs,
const uint32_t u,
uint32_t result 
)
uint32_t big::MulInverse32 ( uint32_t  n  ) 
bool big::MulMod ( int  limbs,
const uint32_t x,
const uint32_t y,
const uint32_t modulus,
uint32_t result 
)

Here is the caller graph for this function:

void big::Multiply ( int  limbs,
uint32_t product,
const uint32_t x,
const uint32_t y 
)

Here is the caller graph for this function:

uint32_t big::Multiply32 ( int  limbs,
uint32_t result,
const uint32_t A,
uint32_t  B 
)
uint32_t big::MultiplyAdd32 ( int  limbs,
uint32_t X,
uint32_t  M,
uint32_t  A 
)
void big::Negate ( int  limbs,
uint32_t lhs,
const uint32_t rhs 
)
uint32_t* big::PrecomputeWindow ( const uint32_t base,
const uint32_t modulus,
int  limbs,
uint32_t  mod_inv,
int  window_bits 
)

Definition at line 1506 of file BigInt.cpp.

bool big::RabinMillerPrimeTest ( const uint32_t n,
int  limbs,
uint32_t  k 
)
void big::Set ( uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
)

Here is the caller graph for this function:

void big::Set ( uint32_t lhs,
int  limbs,
const uint32_t rhs 
)
void big::Set32 ( uint32_t lhs,
int  lhs_limbs,
const uint32_t  rhs 
)
uint32_t big::ShiftLeft ( int  limbs,
uint32_t out,
const uint32_t in,
int  shift 
)
void big::ShiftRight ( int  limbs,
uint32_t out,
const uint32_t in,
int  shift 
)
void big::SimpleMultiply ( int  limbs,
uint32_t product,
const uint32_t x,
const uint32_t y 
)
void big::SimpleMultiplyLowHalf ( int  limbs,
uint32_t product,
const uint32_t x,
const uint32_t y 
)
void big::SimpleSquare ( int  limbs,
uint32_t product,
const uint32_t x 
)
void big::Square ( int  limbs,
uint32_t product,
const uint32_t x 
)
bool big::SquareRoot ( int  limbs,
const uint32_t square,
uint32_t root 
)
int32_t big::Subtract ( uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
)

Here is the caller graph for this function:

int32_t big::Subtract ( uint32_t out,
const uint32_t lhs,
int  lhs_limbs,
const uint32_t rhs,
int  rhs_limbs 
)
int32_t big::Subtract32 ( uint32_t lhs,
int  lhs_limbs,
uint32_t  rhs 
)

Here is the caller graph for this function:

int big::ToInt ( uint32_t lhs,
int  max_limbs,
const char *  rhs,
uint32_t  base 
)
void big::ToLittleEndian ( uint32_t ,
int   
) [inline]

Definition at line 53 of file BigInt.h.

void big::Xor ( int  limbs,
uint32_t lhs,
const uint32_t rhs 
)