Givaro Namespace Reference

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

## Namespaces

namespace | 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.
Integer & | inv (Integer &u, const Integer &a, const Integer &b)
| Modular inverse.
Integer & | invin (Integer &u, const Integer &b)
Integer | gcd (const Integer &a, const Integer &b)
Integer | pp (const Integer &P, const Integer &Q)
Integer & | lcm (Integer &g, const Integer &a, const Integer &b)
Integer | lcm (const Integer &a, const Integer &b)
Integer & | pow (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)
Integer & | sqrt (Integer &r, const Integer &p)
Integer & | sqrtrem (Integer &r, const Integer &p, Integer &rem)
bool | root (Integer &q, const Integer &a, 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 &a, Integer &b)
bool | isOdd (const Integer &a)
| Tests parity of an integer.
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] | u | is set to modulo b

## invin()

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

Parameters

  u |
  b |

## gcd()

Integer gcd | ( | const Integer & | a,
|  | const Integer & | b )

Parameters

  a,b | integers

Returns
  gcd(a,b)

Examples
  examples/Integer/ProbLucas.C.

## pp()

Integer pp | ( | const Integer & | P,
|  | const Integer & | Q )

Parameters

  P,Q | params

## 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

Parameters

  Res,n,l |

Examples
  examples/Integer/ProbLucas.C.

## pow() [2/2]

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

return

Parameters

  n,l |

## powmod()

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

return .

Parameters

  n,e,m |

## sign()

int32_t sign | ( | const Integer & | a | ) |

Parameters

  a |

## compare()

int32_t compare | ( | const Integer & | a,
|  | const Integer & | b )

Parameters

  a | integer
  b | integer

Returns
  `1` if , `0` if and `-1` otherwise.

## absCompare()

int32_t absCompare | ( | const Integer & | a,
|  | const Integer & | b )

Parameters

  a | integer
  b | integer

Returns
  `1` if , `0` if 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 )

Parameters

  q,a,n |

Examples
  examples/Integer/ModularSquareRoot.C, and examples/Integer/ProbLucas.C.

## 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

  a | integer

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"?

## operator>>()

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

in operator.

Parameters

  i | input stream
  n | integer to be built

## operator<<()

std::ostream & operator<< | ( | std::ostream & | o,
|  | const Integer & | n )

Parameters

  o | output stream
  n | integer to be printed

## absOutput()

std::ostream & absOutput | ( | std::ostream & | o,
|  | const Integer & | n )

Parameters

  o | output
  n | integer

## operator+()

Integer operator+ | ( | const int32_t | l,
|  | const Integer & | n )

Parameters

  l,n | to be added

## operator!=()

int32_t operator!= | ( | uint32_t | l,
|  | const Integer & | n )

Parameters

  l,n | integer

Returns
  `1` iff l == n

## operator==() [1/2]

int32_t operator== | ( | uint32_t | l,
|  | const Integer & | n )

Parameters

  l,n | integers to compare

## operator>()

int32_t operator> | ( | uint32_t | l,
|  | const Integer & | n )

Parameters

  l,n | integers to compare

## operator<()

int32_t operator< | ( | uint32_t | l,
|  | const Integer & | n )

Parameters

  l,n | integers to compare

## operator>=()

int32_t operator>= | ( | uint32_t | l,
|  | const Integer & | n )

Parameters

  l,n | integers to compare

## operator<=()

int32_t operator<= | ( | uint32_t | l,
|  | const Integer & | n )

Parameters

  l,n | integers to compare

## operator%()

Integer operator% | ( | const int64_t | l,
|  | const Integer & | n )

Parameters

  l |
  n |

Returns
  nl

## operator*()

Integer operator* | ( | const int32_t | l,
|  | const Integer & | n )

Parameters

  l,n | to be multpct

## operator-()

Integer operator- | ( | const int32_t | l,
|  | const Integer & | n )

Parameters

  l,n | to be substracted

## operator==() [2/2]

int operator== | ( | const Indeter & | i1,
|  | const Indeter & | i2 )

inline

Bug
  put elsewere. Inline members functions :