Inexor
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
gfield Struct Reference
Inheritance diagram for gfield:
bigint< BI_DIGITS >

Public Types

typedef ushort digit
 
typedef uint dbldigit
 

Public Member Functions

 gfield ()
 
 gfield (digit n)
 
 gfield (const char *s)
 
template<int Y_DIGITS>
 gfield (const bigint< Y_DIGITS > &y)
 
template<int Y_DIGITS>
gfieldoperator= (const bigint< Y_DIGITS > &y)
 
template<int X_DIGITS, int Y_DIGITS>
gfieldadd (const bigint< X_DIGITS > &x, const bigint< Y_DIGITS > &y)
 
template<int Y_DIGITS>
gfieldadd (const bigint< Y_DIGITS > &y)
 
template<int X_DIGITS>
gfieldmul2 (const bigint< X_DIGITS > &x)
 
gfieldmul2 ()
 
gfielddiv2 ()
 
template<int X_DIGITS, int Y_DIGITS>
gfieldsub (const bigint< X_DIGITS > &x, const bigint< Y_DIGITS > &y)
 
template<int Y_DIGITS>
gfieldsub (const bigint< Y_DIGITS > &y)
 
template<int X_DIGITS>
gfieldneg (const bigint< X_DIGITS > &x)
 
gfieldneg ()
 
template<int X_DIGITS>
gfieldsquare (const bigint< X_DIGITS > &x)
 
gfieldsquare ()
 
template<int X_DIGITS, int Y_DIGITS>
gfieldmul (const bigint< X_DIGITS > &x, const bigint< Y_DIGITS > &y)
 
template<int Y_DIGITS>
gfieldmul (const bigint< Y_DIGITS > &y)
 
template<int RESULT_DIGITS>
void reduce (const bigint< RESULT_DIGITS > &result)
 
template<int X_DIGITS, int Y_DIGITS>
gfieldpow (const bigint< X_DIGITS > &x, const bigint< Y_DIGITS > &y)
 
template<int Y_DIGITS>
gfieldpow (const bigint< Y_DIGITS > &y)
 
bool invert (const gfield &x)
 
void invert ()
 
int legendre () const
 
bool sqrt (const gfield &x)
 
bool sqrt ()
 
void parse (const char *s)
 
void zero ()
 
bool iszero () const
 
bool isone () const
 
int numbits () const
 
bool hasbit (int n) const
 
bool morebits (int n) const
 
void shrink ()
 
void shrinkdigits (int n)
 
void shrinkbits (int n)
 
template<int Y_DIGITS>
void copyshrinkdigits (const bigint< Y_DIGITS > &y, int n)
 
template<int Y_DIGITS>
void copyshrinkbits (const bigint< Y_DIGITS > &y, int n)
 
bigintrshift (int n)
 
bigintlshift (int n)
 
void zerodigits (int i, int n)
 
void zerobits (int i, int n)
 
template<int Y_DIGITS>
void copydigits (int to, const bigint< Y_DIGITS > &y, int from, int n)
 
template<int Y_DIGITS>
void copybits (int to, const bigint< Y_DIGITS > &y, int from, int n)
 
void dupdigits (int to, int from, int n)
 
void dupbits (int to, int from, int n)
 
template<int Y_DIGITS>
bool operator== (const bigint< Y_DIGITS > &y) const
 
template<int Y_DIGITS>
bool operator!= (const bigint< Y_DIGITS > &y) const
 
template<int Y_DIGITS>
bool operator< (const bigint< Y_DIGITS > &y) const
 
template<int Y_DIGITS>
bool operator> (const bigint< Y_DIGITS > &y) const
 
template<int Y_DIGITS>
bool operator<= (const bigint< Y_DIGITS > &y) const
 
template<int Y_DIGITS>
bool operator>= (const bigint< Y_DIGITS > &y) const
 

Static Public Member Functions

template<int X_DIGITS>
static int legendre (const bigint< X_DIGITS > &x)
 
static int parsedigits (ushort *digits, int maxlen, const char *s)
 

Public Attributes

int len
 
digit digits [BI_DIGITS]
 

Static Public Attributes

static const gfield P
 

Member Typedef Documentation

template<int BI_DIGITS>
typedef uint bigint< BI_DIGITS >::dbldigit
inherited
template<int BI_DIGITS>
typedef ushort bigint< BI_DIGITS >::digit
inherited

Constructor & Destructor Documentation

gfield::gfield ( )
inline
gfield::gfield ( digit  n)
inline
gfield::gfield ( const char *  s)
inline
template<int Y_DIGITS>
gfield::gfield ( const bigint< Y_DIGITS > &  y)
inline

Member Function Documentation

template<int X_DIGITS, int Y_DIGITS>
gfield& gfield::add ( const bigint< X_DIGITS > &  x,
const bigint< Y_DIGITS > &  y 
)
inline
template<int Y_DIGITS>
gfield& gfield::add ( const bigint< Y_DIGITS > &  y)
inline

References add().

Referenced by add().

template<int BI_DIGITS>
template<int Y_DIGITS>
void bigint< BI_DIGITS >::copybits ( int  to,
const bigint< Y_DIGITS > &  y,
int  from,
int  n 
)
inlineinherited

References BI_DIGIT_BITS, and bigint< BI_DIGITS >::copydigits().

Referenced by reduce().

template<int BI_DIGITS>
template<int Y_DIGITS>
void bigint< BI_DIGITS >::copydigits ( int  to,
const bigint< Y_DIGITS > &  y,
int  from,
int  n 
)
inlineinherited
template<int BI_DIGITS>
template<int Y_DIGITS>
void bigint< BI_DIGITS >::copyshrinkbits ( const bigint< Y_DIGITS > &  y,
int  n 
)
inlineinherited
template<int BI_DIGITS>
template<int Y_DIGITS>
void bigint< BI_DIGITS >::copyshrinkdigits ( const bigint< Y_DIGITS > &  y,
int  n 
)
inlineinherited
gfield& gfield::div2 ( )
inline
template<int BI_DIGITS>
void bigint< BI_DIGITS >::dupbits ( int  to,
int  from,
int  n 
)
inlineinherited

References BI_DIGIT_BITS, and bigint< BI_DIGITS >::dupdigits().

Referenced by reduce().

template<int BI_DIGITS>
void bigint< BI_DIGITS >::dupdigits ( int  to,
int  from,
int  n 
)
inlineinherited
template<int BI_DIGITS>
bool bigint< BI_DIGITS >::hasbit ( int  n) const
inlineinherited
bool gfield::invert ( const gfield x)
inline
void gfield::invert ( )
inline

References invert().

Referenced by invert().

template<int BI_DIGITS>
bool bigint< BI_DIGITS >::isone ( ) const
inlineinherited
template<int BI_DIGITS>
bool bigint< BI_DIGITS >::iszero ( ) const
inlineinherited
template<int X_DIGITS>
static int gfield::legendre ( const bigint< X_DIGITS > &  x)
inlinestatic
int gfield::legendre ( ) const
inline

References legendre().

Referenced by legendre(), and sqrt().

template<int BI_DIGITS>
bigint& bigint< BI_DIGITS >::lshift ( int  n)
inlineinherited
template<int BI_DIGITS>
bool bigint< BI_DIGITS >::morebits ( int  n) const
inlineinherited

References BI_DIGIT_BITS, and bigint< BI_DIGITS >::len.

Referenced by reduce().

template<int X_DIGITS, int Y_DIGITS>
gfield& gfield::mul ( const bigint< X_DIGITS > &  x,
const bigint< Y_DIGITS > &  y 
)
inline
template<int Y_DIGITS>
gfield& gfield::mul ( const bigint< Y_DIGITS > &  y)
inline

References mul().

Referenced by mul().

template<int X_DIGITS>
gfield& gfield::mul2 ( const bigint< X_DIGITS > &  x)
inline

References add().

Referenced by ecjacobian::mul2().

gfield& gfield::mul2 ( )
inline

References mul2().

Referenced by mul2().

template<int X_DIGITS>
gfield& gfield::neg ( const bigint< X_DIGITS > &  x)
inline

References P, and bigint< BI_DIGITS >::sub().

Referenced by ecjacobian::calcy().

gfield& gfield::neg ( )
inline

References neg().

Referenced by neg().

template<int BI_DIGITS>
int bigint< BI_DIGITS >::numbits ( ) const
inlineinherited
template<int BI_DIGITS>
template<int Y_DIGITS>
bool bigint< BI_DIGITS >::operator!= ( const bigint< Y_DIGITS > &  y) const
inlineinherited
template<int BI_DIGITS>
template<int Y_DIGITS>
bool bigint< BI_DIGITS >::operator< ( const bigint< Y_DIGITS > &  y) const
inlineinherited
template<int BI_DIGITS>
template<int Y_DIGITS>
bool bigint< BI_DIGITS >::operator<= ( const bigint< Y_DIGITS > &  y) const
inlineinherited
template<int Y_DIGITS>
gfield& gfield::operator= ( const bigint< Y_DIGITS > &  y)
inline
template<int BI_DIGITS>
template<int Y_DIGITS>
bool bigint< BI_DIGITS >::operator== ( const bigint< Y_DIGITS > &  y) const
inlineinherited
template<int BI_DIGITS>
template<int Y_DIGITS>
bool bigint< BI_DIGITS >::operator> ( const bigint< Y_DIGITS > &  y) const
inlineinherited
template<int BI_DIGITS>
template<int Y_DIGITS>
bool bigint< BI_DIGITS >::operator>= ( const bigint< Y_DIGITS > &  y) const
inlineinherited
template<int BI_DIGITS>
void bigint< BI_DIGITS >::parse ( const char *  s)
inlineinherited
template<int BI_DIGITS>
static int bigint< BI_DIGITS >::parsedigits ( ushort digits,
int  maxlen,
const char *  s 
)
inlinestaticinherited
template<int X_DIGITS, int Y_DIGITS>
gfield& gfield::pow ( const bigint< X_DIGITS > &  x,
const bigint< Y_DIGITS > &  y 
)
inline
template<int Y_DIGITS>
gfield& gfield::pow ( const bigint< Y_DIGITS > &  y)
inline

References pow().

Referenced by pow().

template<int RESULT_DIGITS>
void gfield::reduce ( const bigint< RESULT_DIGITS > &  result)
inline
template<int BI_DIGITS>
bigint& bigint< BI_DIGITS >::rshift ( int  n)
inlineinherited
template<int BI_DIGITS>
void bigint< BI_DIGITS >::shrink ( )
inlineinherited
template<int BI_DIGITS>
void bigint< BI_DIGITS >::shrinkbits ( int  n)
inlineinherited
template<int BI_DIGITS>
void bigint< BI_DIGITS >::shrinkdigits ( int  n)
inlineinherited
bool gfield::sqrt ( const gfield x)
inline
bool gfield::sqrt ( )
inline

References sqrt().

Referenced by sqrt().

template<int X_DIGITS>
gfield& gfield::square ( const bigint< X_DIGITS > &  x)
inline
gfield& gfield::square ( )
inline

References square().

Referenced by square().

template<int X_DIGITS, int Y_DIGITS>
gfield& gfield::sub ( const bigint< X_DIGITS > &  x,
const bigint< Y_DIGITS > &  y 
)
inline
template<int Y_DIGITS>
gfield& gfield::sub ( const bigint< Y_DIGITS > &  y)
inline

References sub().

Referenced by sub().

template<int BI_DIGITS>
void bigint< BI_DIGITS >::zero ( )
inlineinherited

References bigint< BI_DIGITS >::len.

Referenced by ecjacobian::calcy().

template<int BI_DIGITS>
void bigint< BI_DIGITS >::zerobits ( int  i,
int  n 
)
inlineinherited

References BI_DIGIT_BITS, and bigint< BI_DIGITS >::zerodigits().

Referenced by reduce().

template<int BI_DIGITS>
void bigint< BI_DIGITS >::zerodigits ( int  i,
int  n 
)
inlineinherited

Member Data Documentation

template<int BI_DIGITS>
digit bigint< BI_DIGITS >::digits[BI_DIGITS]
inherited
template<int BI_DIGITS>
int bigint< BI_DIGITS >::len
inherited
const gfield gfield::P
static

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