Integer.h File Reference

#include <iostream>

Go to the source code of this file.

Classes

struct  IntRep
struct  ZeroRep
struct  OneRep
struct  MinusOneRep
class  Integer

Defines

#define STATIC_IntRep(rep)   ((rep)->sz==0)

Typedefs

typedef Integer IntTmp

Functions

IntRepIalloc (IntRep *, const unsigned short *, int, int, int)
IntRepIcalloc (IntRep *, int)
IntRepIcopy_ulong (IntRep *, unsigned long)
IntRepIcopy_long (IntRep *, long)
IntRepIcopy (IntRep *, const IntRep *)
IntRepIresize (IntRep *, int)
IntRepadd (const IntRep *, int, const IntRep *, int, IntRep *)
IntRepadd (const IntRep *, int, long, IntRep *)
IntRepmultiply (const IntRep *, const IntRep *, IntRep *)
IntRepmultiply (const IntRep *, long, IntRep *)
IntReplshift (const IntRep *, long, IntRep *)
IntReplshift (const IntRep *, const IntRep *, int, IntRep *)
IntRepbitop (const IntRep *, const IntRep *, IntRep *, char)
IntRepbitop (const IntRep *, long, IntRep *, char)
IntReppower (const IntRep *, long, IntRep *)
IntRepdiv (const IntRep *, const IntRep *, IntRep *)
IntRepmod (const IntRep *, const IntRep *, IntRep *)
IntRepdiv (const IntRep *, long, IntRep *)
IntRepmod (const IntRep *, long, IntRep *)
IntRep_compl (const IntRep *, IntRep *)
IntRepabs (const IntRep *, IntRep *)
IntRepnegate1 (const IntRep *, IntRep *)
IntReppow (const IntRep *, long)
IntRepgcd (const IntRep *, const IntRep *y)
int compare (const IntRep *, const IntRep *)
int compare (const IntRep *, long)
int ucompare (const IntRep *, const IntRep *)
int ucompare (const IntRep *, long)
char * Itoa (const IntRep *x, int base=10, int width=0)
char * cvtItoa (const IntRep *x, char *fmt, int &fmtlen, int base, int showbase, int width, int align_right, char fillchar, char Xcase, int showpos)
IntRepatoIntRep (const char *s, int base=10)
long Itolong (const IntRep *)
int Iislong (const IntRep *)
long lg (const IntRep *)
IntRepIcopy_zero (IntRep *old)
int operator== (const Integer &, const Integer &)
int operator== (const Integer &, long)
int operator!= (const Integer &, const Integer &)
int operator!= (const Integer &, long)
int operator< (const Integer &, const Integer &)
int operator< (const Integer &, long)
int operator<= (const Integer &, const Integer &)
int operator<= (const Integer &, long)
int operator> (const Integer &, const Integer &)
int operator> (const Integer &, long)
int operator>= (const Integer &, const Integer &)
int operator>= (const Integer &, long)
Integer operator- (const Integer &)
Integer operator~ (const Integer &)
Integer operator+ (const Integer &, const Integer &)
Integer operator+ (const Integer &, long)
Integer operator+ (long, const Integer &)
Integer operator- (const Integer &, const Integer &)
Integer operator- (const Integer &, long)
Integer operator- (long, const Integer &)
Integer operator* (const Integer &, const Integer &)
Integer operator* (const Integer &, long)
Integer operator* (long, const Integer &)
Integer operator/ (const Integer &, const Integer &)
Integer operator/ (const Integer &, long)
Integer operator% (const Integer &, const Integer &)
Integer operator% (const Integer &, long)
Integer operator<< (const Integer &, const Integer &)
Integer operator<< (const Integer &, long)
Integer operator>> (const Integer &, const Integer &)
Integer operator>> (const Integer &, long)
Integer operator & (const Integer &, const Integer &)
Integer operator & (const Integer &, long)
Integer operator & (long, const Integer &)
Integer operator| (const Integer &, const Integer &)
Integer operator| (const Integer &, long)
Integer operator| (long, const Integer &)
Integer operator^ (const Integer &, const Integer &)
Integer operator^ (const Integer &, long)
Integer operator^ (long, const Integer &)
Integer abs (const Integer &)
Integer sqr (const Integer &)
Integer pow (const Integer &x, const Integer &y)
Integer pow (const Integer &x, long y)
Integer Ipow (long x, long y)
char * dec (const Integer &x, int width=0)
char * oct (const Integer &x, int width=0)
char * hex (const Integer &x, int width=0)
Integer sqrt (const Integer &)
Integer lcm (const Integer &x, const Integer &y)
int compare (const Integer &x, const Integer &y)
int ucompare (const Integer &x, const Integer &y)
int compare (const Integer &x, long y)
int ucompare (const Integer &x, long y)
int compare (long x, const Integer &y)
int ucompare (long x, const Integer &y)
void add (const Integer &x, const Integer &y, Integer &dest)
void sub (const Integer &x, const Integer &y, Integer &dest)
void mul (const Integer &x, const Integer &y, Integer &dest)
void div (const Integer &x, const Integer &y, Integer &dest)
void mod (const Integer &x, const Integer &y, Integer &dest)
void _and (const Integer &x, const Integer &y, Integer &dest)
void _or (const Integer &x, const Integer &y, Integer &dest)
void _xor (const Integer &x, const Integer &y, Integer &dest)
void lshift (const Integer &x, const Integer &y, Integer &dest)
void rshift (const Integer &x, const Integer &y, Integer &dest)
void pow (const Integer &x, const Integer &y, Integer &dest)
void add (const Integer &x, long y, Integer &dest)
void sub (const Integer &x, long y, Integer &dest)
void mul (const Integer &x, long y, Integer &dest)
void div (const Integer &x, long y, Integer &dest)
void mod (const Integer &x, long y, Integer &dest)
void _and (const Integer &x, long y, Integer &dest)
void _or (const Integer &x, long y, Integer &dest)
void _xor (const Integer &x, long y, Integer &dest)
void lshift (const Integer &x, long y, Integer &dest)
void rshift (const Integer &x, long y, Integer &dest)
void pow (const Integer &x, long y, Integer &dest)
void abs (const Integer &x, Integer &dest)
void negate1 (const Integer &x, Integer &dest)
void complement (const Integer &x, Integer &dest)
void add (long x, const Integer &y, Integer &dest)
void sub (long x, const Integer &y, Integer &dest)
void mul (long x, const Integer &y, Integer &dest)
void _and (long x, const Integer &y, Integer &dest)
void _or (long x, const Integer &y, Integer &dest)
void _xor (long x, const Integer &y, Integer &dest)
int sign (const Integer &x)
int even (const Integer &y)
int odd (const Integer &y)
char * Itoa (const Integer &y, int base, int width)
long lg (const Integer &x)
Integer atoI (const char *s, int base)
Integer gcd (const Integer &x, const Integer &y)

Variables

ZeroRep _ZeroRep
OneRep _OneRep
MinusOneRep _MinusOneRep


Define Documentation

#define STATIC_IntRep ( rep   )     ((rep)->sz==0)

Definition at line 25 of file Integer.h.

Referenced by Integer::~Integer().


Typedef Documentation

typedef Integer IntTmp

Definition at line 383 of file Integer.h.


Function Documentation

void _and ( long  x,
const Integer y,
Integer dest 
) [inline]

Definition at line 588 of file Integer.h.

References bitop(), and Integer::rep.

void _and ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 528 of file Integer.h.

References bitop(), and Integer::rep.

void _and ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 473 of file Integer.h.

References bitop(), and Integer::rep.

IntRep* _compl ( const IntRep ,
IntRep  
)

Referenced by complement().

void _or ( long  x,
const Integer y,
Integer dest 
) [inline]

Definition at line 593 of file Integer.h.

References bitop(), and Integer::rep.

void _or ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 533 of file Integer.h.

References bitop(), and Integer::rep.

void _or ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 478 of file Integer.h.

References bitop(), and Integer::rep.

void _xor ( long  x,
const Integer y,
Integer dest 
) [inline]

Definition at line 598 of file Integer.h.

References bitop(), and Integer::rep.

void _xor ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 538 of file Integer.h.

References bitop(), and Integer::rep.

void _xor ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 483 of file Integer.h.

References bitop(), and Integer::rep.

void abs ( const Integer x,
Integer dest 
) [inline]

Definition at line 558 of file Integer.h.

References Integer::abs(), and Integer::rep.

Integer abs ( const Integer x  )  [inline]

Definition at line 1258 of file Integer.h.

References Integer::abs().

IntRep* abs ( const IntRep ,
IntRep  
)

void add ( long  x,
const Integer y,
Integer dest 
) [inline]

Definition at line 573 of file Integer.h.

void add ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 503 of file Integer.h.

void add ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 448 of file Integer.h.

IntRep* add ( const IntRep ,
int  ,
long  ,
IntRep  
)

IntRep* add ( const IntRep ,
int  ,
const IntRep ,
int  ,
IntRep  
)

Integer atoI ( const char *  s,
int  base = 10 
) [inline]

Definition at line 1273 of file Integer.h.

References atoIntRep(), and Integer::rep.

IntRep* atoIntRep ( const char *  s,
int  base = 10 
)

Referenced by atoI().

IntRep* bitop ( const IntRep ,
long  ,
IntRep ,
char   
)

IntRep* bitop ( const IntRep ,
const IntRep ,
IntRep ,
char   
)

Referenced by _and(), _or(), and _xor().

int compare ( long  x,
const Integer y 
) [inline]

Definition at line 438 of file Integer.h.

References Integer::compare, and Integer::rep.

int compare ( const Integer x,
long  y 
) [inline]

Definition at line 428 of file Integer.h.

References Integer::compare, and Integer::rep.

int compare ( const Integer x,
const Integer y 
) [inline]

Definition at line 418 of file Integer.h.

References Integer::compare, and Integer::rep.

int compare ( const IntRep ,
long   
)

int compare ( const IntRep ,
const IntRep  
)

void complement ( const Integer x,
Integer dest 
) [inline]

Definition at line 568 of file Integer.h.

References _compl(), and Integer::rep.

char* cvtItoa ( const IntRep x,
char *  fmt,
int &  fmtlen,
int  base,
int  showbase,
int  width,
int  align_right,
char  fillchar,
char  Xcase,
int  showpos 
)

char* dec ( const Integer x,
int  width = 0 
)

void div ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 518 of file Integer.h.

References Integer::div, and Integer::rep.

void div ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 463 of file Integer.h.

References Integer::div, and Integer::rep.

IntRep* div ( const IntRep ,
long  ,
IntRep  
)

IntRep* div ( const IntRep ,
const IntRep ,
IntRep  
)

int even ( const Integer y  )  [inline]

Definition at line 831 of file Integer.h.

References IntRep::len, Integer::rep, and IntRep::s.

Integer gcd ( const Integer x,
const Integer y 
) [inline]

Definition at line 1278 of file Integer.h.

References Integer::gcd, and Integer::rep.

IntRep* gcd ( const IntRep ,
const IntRep y 
)

char* hex ( const Integer x,
int  width = 0 
)

IntRep* Ialloc ( IntRep ,
const unsigned short *  ,
int  ,
int  ,
int   
)

IntRep* Icalloc ( IntRep ,
int   
)

IntRep* Icopy ( IntRep ,
const IntRep  
)

Referenced by Integer::operator=().

IntRep* Icopy_long ( IntRep ,
long   
)

Referenced by Integer::operator=().

IntRep* Icopy_ulong ( IntRep ,
unsigned  long 
)

IntRep* Icopy_zero ( IntRep old  ) 

int Iislong ( const IntRep  ) 

Referenced by Integer::fits_in_long().

Integer Ipow ( long  x,
long  y 
) [inline]

Definition at line 1246 of file Integer.h.

References Integer::pow.

IntRep* Iresize ( IntRep ,
int   
)

char* Itoa ( const Integer y,
int  base = 10,
int  width = 0 
) [inline]

Definition at line 841 of file Integer.h.

References Integer::Itoa, and Integer::rep.

char* Itoa ( const IntRep x,
int  base = 10,
int  width = 0 
)

long Itolong ( const IntRep  ) 

Referenced by Integer::as_long(), and pow().

Integer lcm ( const Integer x,
const Integer y 
)

long lg ( const Integer x  )  [inline]

Definition at line 848 of file Integer.h.

References Integer::lg, and Integer::rep.

long lg ( const IntRep  ) 

void lshift ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 543 of file Integer.h.

References Integer::lshift, and Integer::rep.

void lshift ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 488 of file Integer.h.

References Integer::lshift, and Integer::rep.

IntRep* lshift ( const IntRep ,
const IntRep ,
int  ,
IntRep  
)

IntRep* lshift ( const IntRep ,
long  ,
IntRep  
)

void mod ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 523 of file Integer.h.

References Integer::mod, and Integer::rep.

void mod ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 468 of file Integer.h.

References Integer::mod, and Integer::rep.

IntRep* mod ( const IntRep ,
long  ,
IntRep  
)

IntRep* mod ( const IntRep ,
const IntRep ,
IntRep  
)

void mul ( long  x,
const Integer y,
Integer dest 
) [inline]

Definition at line 583 of file Integer.h.

References multiply(), and Integer::rep.

void mul ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 513 of file Integer.h.

References multiply(), and Integer::rep.

void mul ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 458 of file Integer.h.

References multiply(), and Integer::rep.

IntRep* multiply ( const IntRep ,
long  ,
IntRep  
)

IntRep* multiply ( const IntRep ,
const IntRep ,
IntRep  
)

Referenced by mul().

void negate1 ( const Integer x,
Integer dest 
) [inline]

Definition at line 563 of file Integer.h.

References Integer::negate1(), and Integer::rep.

IntRep* negate1 ( const IntRep ,
IntRep  
)

char* oct ( const Integer x,
int  width = 0 
)

int odd ( const Integer y  )  [inline]

Definition at line 836 of file Integer.h.

References IntRep::len, Integer::rep, and IntRep::s.

Integer operator & ( long  x,
const Integer y 
) [inline]

Definition at line 1166 of file Integer.h.

References Integer::_and.

Integer operator & ( const Integer x,
long  y 
) [inline]

Definition at line 1161 of file Integer.h.

References Integer::_and.

Integer operator & ( const Integer x,
const Integer y 
) [inline]

Definition at line 1156 of file Integer.h.

References Integer::_and.

int operator!= ( const Integer x,
long  y 
) [inline]

Definition at line 621 of file Integer.h.

References Integer::compare.

int operator!= ( const Integer x,
const Integer y 
) [inline]

Definition at line 616 of file Integer.h.

References Integer::compare.

Integer operator% ( const Integer x,
long  y 
) [inline]

Definition at line 1216 of file Integer.h.

References Integer::mod.

Integer operator% ( const Integer x,
const Integer y 
) [inline]

Definition at line 1211 of file Integer.h.

References Integer::mod.

Integer operator* ( long  x,
const Integer y 
) [inline]

Definition at line 1146 of file Integer.h.

References Integer::mul.

Integer operator* ( const Integer x,
long  y 
) [inline]

Definition at line 1141 of file Integer.h.

References Integer::mul.

Integer operator* ( const Integer x,
const Integer y 
) [inline]

Definition at line 1136 of file Integer.h.

References Integer::mul.

Integer operator+ ( long  x,
const Integer y 
) [inline]

Definition at line 1116 of file Integer.h.

Integer operator+ ( const Integer x,
long  y 
) [inline]

Definition at line 1111 of file Integer.h.

Integer operator+ ( const Integer x,
const Integer y 
) [inline]

Definition at line 1106 of file Integer.h.

Integer operator- ( long  x,
const Integer y 
) [inline]

Definition at line 1131 of file Integer.h.

References Integer::sub.

Integer operator- ( const Integer x,
long  y 
) [inline]

Definition at line 1126 of file Integer.h.

References Integer::sub.

Integer operator- ( const Integer x,
const Integer y 
) [inline]

Definition at line 1121 of file Integer.h.

References Integer::sub.

Integer operator- ( const Integer x  )  [inline]

Definition at line 1263 of file Integer.h.

References Integer::negate1().

Integer operator/ ( const Integer x,
long  y 
) [inline]

Definition at line 1206 of file Integer.h.

References Integer::div.

Integer operator/ ( const Integer x,
const Integer y 
) [inline]

Definition at line 1201 of file Integer.h.

References Integer::div.

int operator< ( const Integer x,
long  y 
) [inline]

Definition at line 631 of file Integer.h.

References Integer::compare.

int operator< ( const Integer x,
const Integer y 
) [inline]

Definition at line 626 of file Integer.h.

References Integer::compare.

Integer operator<< ( const Integer x,
long  y 
) [inline]

Definition at line 1226 of file Integer.h.

References Integer::lshift.

Integer operator<< ( const Integer x,
const Integer y 
) [inline]

Definition at line 1221 of file Integer.h.

References Integer::lshift.

int operator<= ( const Integer x,
long  y 
) [inline]

Definition at line 641 of file Integer.h.

References Integer::compare.

int operator<= ( const Integer x,
const Integer y 
) [inline]

Definition at line 636 of file Integer.h.

References Integer::compare.

int operator== ( const Integer x,
long  y 
) [inline]

Definition at line 611 of file Integer.h.

References Integer::compare.

int operator== ( const Integer x,
const Integer y 
) [inline]

Definition at line 606 of file Integer.h.

References Integer::compare.

int operator> ( const Integer x,
long  y 
) [inline]

Definition at line 651 of file Integer.h.

References Integer::compare.

int operator> ( const Integer x,
const Integer y 
) [inline]

Definition at line 646 of file Integer.h.

References Integer::compare.

int operator>= ( const Integer x,
long  y 
) [inline]

Definition at line 661 of file Integer.h.

References Integer::compare.

int operator>= ( const Integer x,
const Integer y 
) [inline]

Definition at line 656 of file Integer.h.

References Integer::compare.

Integer operator>> ( const Integer x,
long  y 
) [inline]

Definition at line 1236 of file Integer.h.

References Integer::rshift.

Integer operator>> ( const Integer x,
const Integer y 
) [inline]

Definition at line 1231 of file Integer.h.

References Integer::rshift.

Integer operator^ ( long  x,
const Integer y 
) [inline]

Definition at line 1196 of file Integer.h.

References Integer::_xor.

Integer operator^ ( const Integer x,
long  y 
) [inline]

Definition at line 1191 of file Integer.h.

References Integer::_xor.

Integer operator^ ( const Integer x,
const Integer y 
) [inline]

Definition at line 1186 of file Integer.h.

References Integer::_xor.

Integer operator| ( long  x,
const Integer y 
) [inline]

Definition at line 1181 of file Integer.h.

References Integer::_or.

Integer operator| ( const Integer x,
long  y 
) [inline]

Definition at line 1176 of file Integer.h.

References Integer::_or.

Integer operator| ( const Integer x,
const Integer y 
) [inline]

Definition at line 1171 of file Integer.h.

References Integer::_or.

Integer operator~ ( const Integer x  )  [inline]

Definition at line 1268 of file Integer.h.

References Integer::complement().

void pow ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 553 of file Integer.h.

References power(), and Integer::rep.

void pow ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 498 of file Integer.h.

References Itolong(), power(), and Integer::rep.

Integer pow ( const Integer x,
long  y 
) [inline]

Definition at line 1241 of file Integer.h.

References Integer::pow.

Integer pow ( const Integer x,
const Integer y 
) [inline]

Definition at line 1251 of file Integer.h.

References Integer::pow.

IntRep* pow ( const IntRep ,
long   
)

IntRep* power ( const IntRep ,
long  ,
IntRep  
)

Referenced by pow().

void rshift ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 548 of file Integer.h.

References Integer::lshift, and Integer::rep.

void rshift ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 493 of file Integer.h.

References Integer::lshift, and Integer::rep.

int sign ( const Integer x  )  [inline]

Definition at line 826 of file Integer.h.

References IntRep::len, Integer::rep, and IntRep::sgn.

Integer sqr ( const Integer x  )  [inline]

Definition at line 1151 of file Integer.h.

References Integer::mul.

Integer sqrt ( const Integer  ) 

void sub ( long  x,
const Integer y,
Integer dest 
) [inline]

Definition at line 578 of file Integer.h.

References Integer::rep.

void sub ( const Integer x,
long  y,
Integer dest 
) [inline]

Definition at line 508 of file Integer.h.

References Integer::rep.

void sub ( const Integer x,
const Integer y,
Integer dest 
) [inline]

Definition at line 453 of file Integer.h.

References Integer::rep.

int ucompare ( long  x,
const Integer y 
) [inline]

Definition at line 443 of file Integer.h.

References Integer::rep, and Integer::ucompare.

int ucompare ( const Integer x,
long  y 
) [inline]

Definition at line 433 of file Integer.h.

References Integer::rep, and Integer::ucompare.

int ucompare ( const Integer x,
const Integer y 
) [inline]

Definition at line 423 of file Integer.h.

References Integer::rep, and Integer::ucompare.

int ucompare ( const IntRep ,
long   
)

int ucompare ( const IntRep ,
const IntRep  
)


Variable Documentation

OneRep _OneRep [static]

ZeroRep _ZeroRep [static]


Generated on Mon Mar 2 17:58:48 2009 for CRyptography And Groups (CRAG) by  doxygen 1.5.6