Givaro
Namespaces | Data Structures | Typedefs | Functions
Givaro Namespace Reference

Namespace in which the whole Givaro library resides. More...

Namespaces

 AlgorithmType
 Information about the type of method.
 

Data Structures

struct  _perfArray0< T >
 defined by marco GIVARO_PERF_DEFCLASS. ref counting and stuff. More...
 
class  Array0
 NODOC. More...
 
class  ArrayAllocatort
 ArrayAllocator: class for allocation of arrays. More...
 
class  Array0Tag
 Array0Tag. More...
 
class  ArrayFixed
 ArrayFixed. More...
 
struct  __giv_map_less_ith
 Map opcode on all Elements less or requal that ith. More...
 
class  Bits
 Bits. More...
 
struct  ElemRef
 Elem Ref. More...
 
struct  ElemConstRef
 Elem const Ref. More...
 
struct  Pair
 Pair. More...
 
class  Key
 The class Key. More...
 
class  HashTable
 Hash table. More...
 
class  List0
 ListO. More...
 
class  Stack
 Stack. More...
 
struct  ChineseRemainder
 CRA. More...
 
struct  ChineseRemainder< Ring, Domain, false >
 CRA2. More...
 
class  GIV_ExtensionrandIter
 Extension rand iters. More...
 
class  Extension
 Extension. More...
 
class  GF2
 Integers modulo 2. More...
 
class  GFqDom
 class GFqDom More...
 
class  GFqExtFast
 GFq Ext. More...
 
class  GFqExt
 GFq Ext (other) More...
 
struct  GFqKronecker
 GFqKronecker. More...
 
class  Primes16
 class Primes16 More...
 
class  RNSsystem
 class RNSsystem. More...
 
class  RNSsystemFixed
 NO DOC. More...
 
class  QField< Rational >
 Rational Domain. More...
 
struct  StaticElement
 Static Element. More...
 
class  Integer
 This is the Integer class. More...
 
class  ZRing< Integer >
 Integer Domain, Specialization of ZRing. More...
 
class  IntFactorDom
 Integer Factor Domain. More...
 
class  IntNumTheoDom
 Num theory Domain. More...
 
class  FermatDom
 Fermat numbers. More...
 
class  IntPrimeDom
 Primality tests. More...
 
class  IntRNSsystem
 RNS system class. No doc. More...
 
class  IntRSADom
 RSA domain. More...
 
class  IntSqrtModDom
 Modular square roots. More...
 
class  RandomIntegerIterator
 Random Integer Iterator. More...
 
class  GivMMInfo
 Static informations of memory allocation. More...
 
class  BlocFreeList
 Data structure of a bloc. More...
 
class  GivMMFreeList
 Implementation of a memory manager with free-lists. More...
 
class  GivMMRefCount
 Memory management with reference counter on allocated data. More...
 
class  GivaroMM
 Memory manager that allocates array of object of type T for. More...
 
class  RefCountPtr
 Refcount Pointer. More...
 
class  RefCounter
 Ref counter. More...
 
class  Rational
 Rationals. No doc. More...
 
class  Modular
 Forward declaration for Givaro::Modular. More...
 
class  Modular_implem
 This class implement the standard arithmetic with Modulo Elements. More...
 
class  Modular< Integer >
 This class implement the standard arithmetic with Modulo Elements. More...
 
class  Modular< Log16 >
 This class implement the standard arithmetic with Modulo Elements. More...
 
class  Montgomery< int32_t >
 This class implements the standard arithmetic with Modulo Elements. More...
 
class  Montgomery< RecInt::ruint< K > >
 The recint-based Montgomery ring. More...
 
class  UnparametricZRing
 Generic Class ZRing. More...
 
class  Neutral
 Neutral type. More...
 
class  givNoInit
 Used to build no initialized object as static object. More...
 
class  givNoCopy
 Used to call cstor without copy. More...
 
class  givWithCopy
 Used to call cstor with copy. More...
 
class  GivError
 Base class for exeception handling in Givaro. More...
 
class  GivMathError
 Math error. More...
 
class  GivBadFormat
 Exception thrown in input of data structure. More...
 
class  GivMathDivZero
 Div by 0. More...
 
struct  __givdom_trait_name
 give a name for /read/write More...
 
class  BaseDomain
 Base Domain. More...
 
class  GivaroMain
 Initialisation of GIVARO . More...
 
class  GivaroAppli
 Main application class Could be not used. More...
 
class  GivaroNoInit
 GivaroNoInit. More...
 
class  InitAfter
 InitAfter. More...
 
class  GivModule
 GivModule. More...
 
class  ObjectInit
 GivModule. More...
 
struct  OMPTimer
 OMP timer. More...
 
class  GIV_randIter
 Random ring Element generator. More...
 
class  ModularRandIter
 Random ring Element generator. More...
 
class  GeneralRingRandIter
 UnparametricRandIter. More...
 
class  GeneralRingNonZeroRandIter
 Random iterator for nonzero random numbers. More...
 
class  GivRandom
 GivRandom. More...
 
class  BaseTimer
 base for class RealTimer; class SysTimer; class UserTimer; More...
 
class  RealTimer
 Real timer. More...
 
class  UserTimer
 User timer. More...
 
class  SysTimer
 Sys timer. More...
 
class  Timer
 Timer. More...
 
class  Degree
 Degree type for polynomials. More...
 
class  Indeter
 Indeterminate. More...
 
struct  Interpolation
 Interpolation. More...
 
struct  NewtonInterpGeomMultip
 Newton (multip) More...
 
struct  NewtonInterpGeom
 Newton. More...
 
class  Poly1CRT
 Poly1 CRT. More...
 
class  Poly1Dom< Domain, Dense >
 Class Poly1Dom. More...
 
class  Poly1FactorDom
 Poly1FactorDom. More...
 
class  Poly1PadicDom< Domain, Dense >
 Poly1 p-adic. More...
 
class  CyclotomicTable
 CyclotomicTable. More...
 

Typedefs

typedef BaseDomain< char > CharDom
 char dom
 
typedef BaseDomain< short > ShortDom
 short dom
 
typedef BaseDomain< int > IntDom
 int dom
 
typedef BaseDomain< long > LongDom
 long dom
 
typedef BaseDomain< float > FloatDom
 float dom
 
typedef BaseDomain< double > DoubleDom
 double dom
 
template<typename T , typename A = std::allocator<T>>
using givvector = std::vector< T, A >
 givvector
 

Functions

template<class T1 , class T2 >
std::ostream & operator<< (std::ostream &o, const Pair< T1, T2 > &p)
 IO.
 
template<class T1 , class T2 >
std::istream & operator>> (std::istream &fin, Pair< T1, T2 > &p)
 IO.
 
template<class Rt >
Rt FF_EXPONENT_MAX (const Rt p, const Rt maxe=21)
 XXX.
 
template<class Rt >
Rt FF_SUBEXPONENT_MAX (const Rt p, const Rt e)
 XXX.
 
template<typename Field >
int64_t Exponent_Trait (const Field &F)
 XXX.
 
template<>
int64_t Exponent_Trait (const GFqDom< int64_t > &F)
 XXX.
 
template<typename BaseField >
int64_t Exponent_Trait (const Extension< BaseField > &F)
 XXX.
 
Integerinv (Integer &u, const Integer &a, const Integer &b)
 Modular inverse. More...
 
Integerinvin (Integer &u, const Integer &b)
 
Integer gcd (const Integer &a, const Integer &b)
 
Integer pp (const Integer &P, const Integer &Q)
 
Integerlcm (Integer &g, const Integer &a, const Integer &b)
 
Integer lcm (const Integer &a, const Integer &b)
 
Integerpow (Integer &Res, const Integer &n, const int64_t l)
 
Integer pow (const Integer &n, const int64_t l)
 
Integer powmod (const Integer &n, const uint64_t e, const Integer &m)
 
int32_t sign (const Integer &a)
 
int32_t compare (const Integer &a, const Integer &b)
 
int32_t absCompare (const Integer &a, const Integer &b)
 
int32_t isZero (const Integer &a)
 
int32_t nonZero (const Integer &a)
 
int32_t isOne (const Integer &a)
 
Integer fact (uint64_t l)
 
Integer sqrt (const Integer &p)
 
Integer sqrtrem (const Integer &p, Integer &rem)
 
Integersqrt (Integer &r, const Integer &p)
 
Integersqrtrem (Integer &r, const Integer &p, Integer &rem)
 
bool root (Integer &q, const Integer &, uint32_t n)
 
int64_t logp (const Integer &a, const Integer &p)
 
double logtwo (const Integer &a)
 
double naturallog (const Integer &a)
 
void swap (Integer &, Integer &)
 
bool isOdd (const Integer &a)
 Tests parity of an integer. More...
 
uint64_t length (const Integer &a)
 
std::istream & operator>> (std::istream &i, Integer &n)
 
std::ostream & operator<< (std::ostream &o, const Integer &n)
 
std::ostream & absOutput (std::ostream &o, const Integer &n)
 
Integer operator+ (const int32_t l, const Integer &n)
 
int32_t operator!= (uint32_t l, const Integer &n)
 
int32_t operator== (uint32_t l, const Integer &n)
 
int32_t operator> (uint32_t l, const Integer &n)
 
int32_t operator< (uint32_t l, const Integer &n)
 
int32_t operator>= (uint32_t l, const Integer &n)
 
int32_t operator<= (uint32_t l, const Integer &n)
 
Integer operator% (const int64_t l, const Integer &n)
 
Integer operator* (const int32_t l, const Integer &n)
 
Integer operator- (const int32_t l, const Integer &n)
 
std::ostream & operator<< (std::ostream &o, const GivMMInfo &T)
 IO.
 
template<typename Storage_t >
Storage_t & gcdext (Storage_t &d, Storage_t &u, Storage_t &v, const Storage_t a, const Storage_t b)
 Generalized extended GCD used by specialized Modular.
 
template<typename Storage_t >
std::enable_if< std::is_floating_point< Storage_t >::value, Storage_t & >::type extended_euclid (Storage_t &x, Storage_t &d, const Storage_t a, const Storage_t b)
 Extended Euclidean algorithm computing only the Bezout coefficient for a.
 
template<typename Storage_t >
Storage_t & invext (Storage_t &x, Storage_t &d, const Storage_t a, const Storage_t b)
 Generalized inversion used by specialized Modular.
 
template<typename T >
unsigned GIVINTLOG (const T &a)
 Integer log.
 
template<class TT , class UU >
TT power (const TT n, const UU l)
 Powering.
 
template<class D , class TT >
TT & dom_power (TT &res, const TT &n, uint64_t l, const D &F)
 dom_power
 
std::ostream & operator<< (std::ostream &o, const BaseTimer &BT)
 I/O.
 
std::ostream & operator<< (std::ostream &o, const Timer &T)
 I/O.
 
int64_t value (const Degree &d)
 value
 
int operator== (const Indeter &i1, const Indeter &i2)
 

Detailed Description

Namespace in which the whole Givaro library resides.

Todo:
use NTL if available ?

Function Documentation

◆ inv()

Integer & inv ( Integer u,
const Integer a,
const Integer b 
)

Modular inverse.

Inverse.

Parameters
a
b
[out]uis set to $a^{-1}$ modulo b

◆ invin()

Integer & invin ( Integer u,
const Integer b 
)
Parameters
u
b

◆ gcd()

Integer gcd ( const Integer a,
const Integer b 
)
Parameters
a,bintegers
Returns
gcd(a,b)
Examples
examples/Integer/ProbLucas.C.

◆ pp()

Integer pp ( const Integer P,
const Integer Q 
)
Parameters
P,Qparams

◆ lcm() [1/2]

Integer & lcm ( Integer g,
const Integer a,
const Integer b 
)
Parameters
g,a,b
Returns
g=lcm(a,b)

◆ lcm() [2/2]

Integer lcm ( const Integer a,
const Integer b 
)
Parameters
a,b

◆ pow() [1/2]

Integer & pow ( Integer Res,
const Integer n,
const int64_t  l 
)

return $n^l$

Parameters
Res,n,l
Examples
examples/Integer/ProbLucas.C.

◆ pow() [2/2]

Integer pow ( const Integer n,
const int64_t  l 
)

return $n^l$

Parameters
n,l

◆ powmod()

Integer powmod ( const Integer n,
const uint64_t  e,
const Integer m 
)

return $n^e \mod m$.

Parameters
n,e,m

◆ sign()

int32_t Givaro::sign ( const Integer a)
Parameters
a

◆ compare()

int32_t compare ( const Integer a,
const Integer b 
)
Parameters
ainteger
binteger
Returns
1 if $a > b$, 0 if $a = b$ and -1 otherwise.

◆ absCompare()

int32_t absCompare ( const Integer a,
const Integer b 
)
Parameters
ainteger
binteger
Returns
1 if $|a| > |b|$, 0 if $|a| = |b|$ and -1 otherwise.

◆ isZero()

int32_t isZero ( const Integer a)
Parameters
a
Examples
examples/Integer/ProbLucas.C.

◆ nonZero()

int32_t nonZero ( const Integer a)
Parameters
a

◆ isOne()

int32_t isOne ( const Integer a)
Parameters
a
Examples
examples/Integer/ProbLucas.C.

◆ fact()

Integer fact ( uint64_t  l)
Parameters
l

◆ sqrt() [1/2]

Integer sqrt ( const Integer p)
Parameters
p
Examples
examples/Integer/ProbLucas.C.

◆ sqrtrem() [1/2]

Integer sqrtrem ( const Integer p,
Integer rem 
)
Parameters
p,rem

◆ sqrt() [2/2]

Integer & sqrt ( Integer r,
const Integer p 
)
Parameters
r,p

◆ sqrtrem() [2/2]

Integer & sqrtrem ( Integer r,
const Integer p,
Integer rem 
)
Parameters
r,p,rem

◆ root()

bool root ( Integer q,
const Integer a,
uint32_t  n 
)

◆ logp()

int64_t logp ( const Integer a,
const Integer p 
)
Parameters
a,p

◆ logtwo()

double logtwo ( const Integer a)
Parameters
a
Examples
examples/Integer/ProbLucas.C.

◆ naturallog()

double naturallog ( const Integer a)
Parameters
a

◆ swap()

void swap ( Integer a,
Integer b 
)

swap

Parameters
a,b

◆ isOdd()

bool isOdd ( const Integer a)

Tests parity of an integer.

parity of an integer

Parameters
ainteger
Returns
1 if odd, 0 if even

◆ length()

uint64_t length ( const Integer a)
Parameters
a
Bug:
JGD 23.04.2012: shouldn't it be "mp_limb_t" instead of "uint64_t"?
Bug:
JGD 23.04.2012: shouldn't it be "mp_limb_t" instead of "uint64_t"?

◆ operator>>()

std::istream & operator>> ( std::istream &  i,
Integer n 
)

in operator.

Parameters
iinput stream
ninteger to be built

◆ operator<<()

std::ostream & operator<< ( std::ostream &  o,
const Integer n 
)
Parameters
ooutput stream
ninteger to be printed

◆ absOutput()

std::ostream & absOutput ( std::ostream &  o,
const Integer n 
)
Parameters
ooutput
ninteger

◆ operator+()

Integer Givaro::operator+ ( const int32_t  l,
const Integer n 
)
Parameters
l,nto be added

◆ operator!=()

int32_t Givaro::operator!= ( uint32_t  l,
const Integer n 
)
Parameters
l,ninteger
Returns
1 iff l == n

◆ operator==() [1/2]

int32_t Givaro::operator== ( uint32_t  l,
const Integer n 
)
Parameters
l,nintegers to compare

◆ operator>()

int32_t Givaro::operator> ( uint32_t  l,
const Integer n 
)
Parameters
l,nintegers to compare

◆ operator<()

int32_t Givaro::operator< ( uint32_t  l,
const Integer n 
)
Parameters
l,nintegers to compare

◆ operator>=()

int32_t Givaro::operator>= ( uint32_t  l,
const Integer n 
)
Parameters
l,nintegers to compare

◆ operator<=()

int32_t Givaro::operator<= ( uint32_t  l,
const Integer n 
)
Parameters
l,nintegers to compare

◆ operator%()

Integer Givaro::operator% ( const int64_t  l,
const Integer n 
)
Parameters
l
n
Returns
nl

◆ operator*()

Integer Givaro::operator* ( const int32_t  l,
const Integer n 
)
Parameters
l,nto be multpct

◆ operator-()

Integer Givaro::operator- ( const int32_t  l,
const Integer n 
)
Parameters
l,nto be substracted

◆ operator==() [2/2]

int Givaro::operator== ( const Indeter i1,
const Indeter i2 
)
inline
Bug:
put elsewere. Inline members functions :