Givaro
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Protected Types | Protected Member Functions | Protected Attributes
Poly1PadicDom< Domain, Dense > Class Template Reference

Poly1 p-adic. More...

#include <givpoly1padic.h>

+ Inheritance diagram for Poly1PadicDom< Domain, Dense >:
+ Collaboration diagram for Poly1PadicDom< Domain, Dense >:

Public Types

typedef Poly_t::Element Element
 
typedef Poly_t::Element pol_Element
 
typedef IntegerDom::Element int_Element
 
typedef Domain Domain_t
 
typedef Domain::Element Type_t
 
typedef Domain::Residu_t Residu_t
 
typedef Poly1Dom< Domain, DenseSelf_t
 
typedef givvector< Type_tStorage_t
 
typedef const Storage_t constRep
 
typedef GIV_randIter< Self_t, ElementRandIter
 
using Self_t = ZRing< Integer >
 
using Parent_t = UnparametricZRing< Integer >
 
typedef RandomIntegerIterator< false, false > RandIter
 
typedef GeneralRingNonZeroRandIter< Self_tNonZeroRandIter
 
enum  
 
using Residu_t = Integer
 
using Element_ptr = Element *
 
using ConstElement_ptr = const Element *
 
typedef const Element ConstElement
 

Public Member Functions

 Poly1PadicDom (Domain &d, const Indeter &X)
 
 Poly1PadicDom (const Poly_t &P)
 
 Poly1PadicDom (const Poly_t &P, const IntegerDom &D)
 
template<class vect >
IntegerDom::Elementeval (IntegerDom::Element &E, const vect &P)
 
template<class vect >
uint64_t & eval (uint64_t &E, const vect &P)
 
template<class unsignedinttype , class vect >
unsignedinttype & eval (unsignedinttype &E, const vect &P)
 
template<class elem , class vect >
elem & evaldirect (elem &E, const vect &P)
 
template<class vect >
vect & radix (vect &P, const IntegerDom::Element &E, int64_t n=0)
 
template<class vect >
vect & fastradixdirect (vect &P, const double &E, uint64_t n)
 
template<class vect , class TT >
vect & radixdirect (vect &P, const TT &E, uint64_t n)
 
template<class vect >
vect & radixdirect (vect &P, const double &E, uint64_t n)
 
std::ostream & write (std::ostream &o) const
 
std::ostream & write (std::ostream &o, const Rep &n) const
 
Residu_t characteristic () const
 
Integercharacteristic (Integer &p) const
 
Residu_t cardinality () const
 
Integercardinality (Integer &c) const
 
int operator== (const Poly1Dom< Domain, Dense > &BC) const
 
int operator!= (const Poly1Dom< Domain, Dense > &BC) const
 
const IndetergetIndeter () const
 
IndetersetIndeter (const Indeter &X)
 
const Domainsubdomain () const
 
const Domaingetdomain () const
 
Domainsetdomain (const Domain &D)
 
const DomainsubDomain () const
 
const DomaingetDomain () const
 
DomainsetDomain (const Domain &D)
 
Repinit (Rep &a) const
 
template<class XXX >
Repinit (Rep &p, const XXX &cste) const
 
template<class XXX >
Repinit (Rep &p, const std::initializer_list< XXX > &cste) const
 
Repinit (Rep &r, const Degree deg) const
 
template<class XXX >
Repinit (Rep &p, const Degree deg, const XXX &lcoeff) const
 
template<class XXX >
Poly1Dom< Domain, Dense >::Repinit (Rep &P, const XXX &Val) const
 
template<class XXX >
Poly1Dom< Domain, Dense >::Repinit (Rep &P, const std::initializer_list< XXX > &L) const
 
template<class XXX >
Poly1Dom< Domain, Dense >::Repinit (Rep &P, const Degree d, const XXX &Val) const
 
Repassign (Rep &p, const Degree deg, const Type_t &lcoeff) const
 
Repassign (Rep &p, const Type_t &cste) const
 
Repassign (Rep &p, const Rep &q) const
 
Type_tassign (Type_t &, const Rep &) const
 
template<class XXX >
XXX & convert (XXX &p, const Rep &) const
 
template<class UU , template< class XX > class Vect>
Vect< UU > & convert (Vect< UU > &, const Rep &P) const
 
template<class XXX >
XXX & convert (XXX &Val, const typename Poly1Dom< Domain, Dense >::Rep &P) const
 
template<class UU , template< class XX > class Vect>
Vect< UU > & convert (Vect< UU > &Val, const typename Poly1Dom< Domain, Dense >::Rep &P) const
 
int isZero (const Rep &P) const
 
int isOne (const Rep &P) const
 
int isMOne (const Rep &P) const
 
bool isUnit (const Rep &P) const
 
int areEqual (const Rep &P, const Rep &Q) const
 
int areNEqual (const Rep &P, const Rep &Q) const
 
bool isDivisor (const Rep &P, const Element &Q) const
 isDivisor (a, b) Tests if Q | P (that is if P mod Q == 0). More...
 
Type_tleadcoef (Type_t &c, const Rep &P) const
 
Type_tgetEntry (Type_t &c, const Degree &i, const Rep &P) const
 
Type_t setEntry (Rep &P, const Type_t &c, const Degree &i) const
 
Degreedegree (Degree &d, const Rep &P) const
 
Degree degree (const Rep &P) const
 
Degreeval (Degree &d, const Rep &P) const
 
Repsetdegree (Rep &P) const
 Compute the degree of P. More...
 
RepsetDegree (Rep &P) const
 
Type_teval (Type_t &pval, const Rep &P, const Type_t &val) const
 
Repdiff (Rep &P, const Rep &Q) const
 
Repreverse (Rep &, const Rep &) const
 
Repreversein (Rep &) const
 
std::istream & read (std::istream &i)
 
std::istream & read (std::istream &i, Rep &n) const
 
std::ostream & write (std::ostream &o) const
 
std::ostream & write (std::ostream &o, const Rep &n) const
 
Repaddin (Rep &res, const Rep &u) const
 
Repaddin (Rep &res, const Type_t &val) const
 
Repadd (Rep &res, const Rep &u, const Rep &v) const
 
Repadd (Rep &res, const Rep &u, const Type_t &val) const
 
Repadd (Rep &res, const Type_t &val, const Rep &v) const
 
Repsubin (Rep &res, const Rep &u) const
 
Repsubin (Rep &res, const Type_t &val) const
 
Repsub (Rep &res, const Rep &u, const Rep &v) const
 
Repsub (Rep &res, const Rep &u, const Type_t &val) const
 
Repsub (Rep &res, const Type_t &val, const Rep &v) const
 
Repnegin (Rep &res) const
 
Repneg (Rep &res, const Rep &u) const
 
Repmulin (Rep &q, const Rep &a) const
 
Repmulin (Rep &q, const Type_t &a) const
 
Repmul (Rep &q, const Type_t &a, const Rep &b) const
 
Repmul (Rep &q, const Rep &a, const Type_t &b) const
 
Repmul (Rep &q, const Rep &a, const Rep &b) const
 
Repmul (Rep &, const Rep &, const Rep &, const Degree &, const Degree &) const
 
Repstdmul (Rep &R, const Rep &P, const Rep &Q) const
 
Repkaramul (Rep &R, const Rep &P, const Rep &Q) const
 
Repsqr (Rep &q, const Rep &a) const
 
Repshiftin (Rep &, int) const
 
Repshift (Rep &, const Rep &, int) const
 
Repdivin (Rep &q, const Rep &a) const
 
Repdivin (Rep &q, const Type_t &a) const
 
Repdiv (Rep &q, const Rep &a, const Rep &b) const
 
Repdiv (Rep &q, const Type_t &a, const Rep &b) const
 
Repdiv (Rep &q, const Rep &a, const Type_t &b) const
 
Repinvin (Rep &R) const
 
Repinv (Rep &R, const Rep &P) const
 
Repmodin (Rep &q, const Rep &a) const
 
Repmodin (Rep &q, const Type_t &a) const
 
Repmod (Rep &q, const Rep &a, const Rep &b) const
 
Repmod (Rep &q, const Type_t &a, const Rep &b) const
 
Repmod (Rep &q, const Rep &a, const Type_t &b) const
 
Repaxpy (Rep &r, const Rep &a, const Rep &x, const Rep &y) const
 
Repaxpy (Rep &r, const Type_t &a, const Rep &x, const Rep &y) const
 
Repaxpyin (Rep &r, const Rep &a, const Rep &x) const
 
Repaxpyin (Rep &r, const Type_t &a, const Rep &x) const
 
Repmaxpy (Rep &r, const Rep &a, const Rep &b, const Rep &c) const
 
Repmaxpy (Rep &r, const Type_t &a, const Rep &b, const Rep &c) const
 
Repmaxpyin (Rep &r, const Rep &a, const Rep &b) const
 
Repmaxpyin (Rep &r, const Type_t &a, const Rep &b) const
 
Repaxmy (Rep &r, const Rep &a, const Rep &x, const Rep &y) const
 
Repaxmy (Rep &r, const Type_t &a, const Rep &x, const Rep &y) const
 
Repaxmyin (Rep &r, const Rep &a, const Rep &x) const
 
Repaxmyin (Rep &r, const Type_t &a, const Rep &x) const
 
Repdivmod (Rep &q, Rep &r, const Rep &a, const Rep &b) const
 
Repdivmodin (Rep &q, Rep &r, const Rep &b) const
 
Reppdivmod (Rep &q, Rep &r, Type_t &m, const Rep &a, const Rep &b) const
 
Reppmod (Rep &r, Type_t &m, const Rep &a, const Rep &b) const
 
Reppmod (Rep &r, const Rep &a, const Rep &b) const
 
Reppdiv (Rep &q, Type_t &m, const Rep &a, const Rep &b) const
 
Reppdiv (Rep &q, const Rep &a, const Rep &b) const
 
Repgcd (Rep &D, const Rep &P, const Rep &Q) const
 
Repgcd (Rep &D, Rep &U, Rep &V, const Rep &P, const Rep &Q) const
 
Replcm (Rep &D, const Rep &P, const Rep &Q) const
 
Repinvmod (Rep &U, const Rep &P, const Rep &Q) const
 
Repinvmodunit (Rep &U, const Rep &P, const Rep &Q) const
 
bool ratrecon (Rep &N, Rep &D, const Rep &P, const Rep &M, const Degree &dk) const
 
bool ratrecon (Rep &N, Rep &D, const Rep &P, const Rep &M, const Degree &dk, bool forcereduce) const
 
bool ratreconcheck (Rep &N, Rep &D, const Rep &P, const Rep &M, const Degree &dk) const
 
Reppow (Rep &W, const Rep &P, uint64_t n) const
 
Reppowmod (Rep &W, const Rep &P, IntegerDom::Element pwr, const Rep &U) const
 
template<class MyInt >
Reppowmod (Rep &W, const Rep &P, MyInt pwr, const Rep &U) const
 
Reppower_compose (Rep &W, const Rep &P, uint64_t b) const
 
Repcyclotomic (Rep &P, uint64_t n) const
 
template<class RandomIterator >
Reprandom (RandomIterator &g, Rep &r) const
 
template<class RandomIterator >
Reprandom (RandomIterator &g, Rep &r, uint64_t s) const
 
template<class RandomIterator >
Reprandom (RandomIterator &g, Rep &r, Degree s) const
 
template<class RandomIterator >
Reprandom (RandomIterator &g, Rep &r, const Rep &b) const
 
template<class RandomIterator >
Poly1Dom< Domain, Dense >::Reprandom (RandomIterator &g, Rep &r) const
 
template<class RandomIterator >
Poly1Dom< Domain, Dense >::Reprandom (RandomIterator &g, Rep &r, uint64_t s) const
 
template<class RandomIterator >
Poly1Dom< Domain, Dense >::Reprandom (RandomIterator &g, typename Poly1Dom< Domain, Dense >::Rep &r, Degree d) const
 
template<class RandomIterator >
Poly1Dom< Domain, Dense >::Reprandom (RandomIterator &g, Rep &r, const Rep &b) const
 
template<class RandomIterator >
Repnonzerorandom (RandomIterator &g, Rep &r) const
 
template<class RandomIterator >
Repnonzerorandom (RandomIterator &g, Rep &r, uint64_t s) const
 
template<class RandomIterator >
Repnonzerorandom (RandomIterator &g, Rep &r, Degree s) const
 
template<class RandomIterator >
Repnonzerorandom (RandomIterator &g, Rep &r, const Rep &b) const
 
template<class RandomIterator >
Poly1Dom< Domain, Dense >::Repnonzerorandom (RandomIterator &g, Rep &r) const
 
template<class RandomIterator >
Poly1Dom< Domain, Dense >::Repnonzerorandom (RandomIterator &g, Rep &r, uint64_t s) const
 
template<class RandomIterator >
Poly1Dom< Domain, Dense >::Repnonzerorandom (RandomIterator &g, Rep &r, Degree d) const
 
template<class RandomIterator >
Poly1Dom< Domain, Dense >::Repnonzerorandom (RandomIterator &g, Rep &r, const Rep &b) const
 
size_t & sqrfree (size_t &Nfact, Rep *Fact, const Rep &P) const
 Sqrfree decomposition. More...
 
int operator== (const Self_t &) const
 
bool operator== (const Self_t &F) const
 
int operator!= (const Self_t &) const
 
bool operator!= (const Self_t &F) const
 
template<class XXX >
XXX & convert (XXX &x, const Rep &a) const
 
T & convert (T &x, const Element &y) const
 
Repmul (Rep &r, const Rep &a, const Rep &b) const
 
Repmulin (Rep &r, const Rep &b) const
 
Repdiv (Rep &r, const Rep &a, const Rep &b) const
 
Repdivin (Rep &r, const Rep &b) const
 
Repmod (Rep &r, const Rep &a, const Rep &b) const
 
Repmodin (Rep &r, const Rep &b) const
 
Repadd (Rep &r, const Rep &a, const Rep &b) const
 
Repaddin (Rep &r, const Rep &b) const
 
Repsub (Rep &r, const Rep &a, const Rep &b) const
 
Repsubin (Rep &r, const Rep &b) const
 
Repdivmod (Rep &q, Rep &r, const Rep &a, const Rep &b) const
 
Repdivexact (Rep &q, const Rep &a, const Rep &b) const
 
Repaxpy (Rep &r, const Rep &a, const Rep &b, const Rep &c) const
 
Repmaxpy (Rep &r, const Rep &a, const Rep &b, const Rep &c) const
 
Repmaxpyin (Rep &r, const Rep &a, const Rep &b) const
 
Repaxmy (Rep &r, const Rep &a, const Rep &b, const Rep &c) const
 
Repaxpyin (Rep &r, const Rep &a, const Rep &b) const
 
Repaxmyin (Rep &r, const Rep &a, const Rep &b) const
 
Repneg (Rep &r, const Rep &a) const
 
Repnegin (Rep &r) const
 
Elementquo (Element &q, const Element &a, const Element &b) const
 
Elementrem (Element &r, const Element &a, const Element &b) const
 
Elementquoin (Element &a, const Element &b) const
 
Elementremin (Element &a, const Element &b) const
 
void quoRem (Element &q, Element &r, const Element &a, const Element &b) const
 
Elementlogtwo (Element &z, const Element &x) const
 
Repgcd (Rep &g, Rep &u, Rep &v, const Rep &a, const Rep &b) const
 
Repgcd (Rep &g, const Rep &a, const Rep &b) const
 
Repgcdin (Rep &g, const Rep &a) const
 
Replcm (Rep &l, const Rep &a, const Rep &b) const
 
Replcmin (Rep &l, const Rep &a) const
 
Elementdxgcd (Element &g, Element &s, Element &t, Element &u, Element &v, const Element &a, const Element &b) const
 
Repinv (Rep &u, const Rep &a, const Rep &b) const
 
Repinvin (Rep &u, const Rep &b) const
 
Repinvmod (Rep &u, const Rep &a, const Rep &b) const
 
Repinvmodin (Rep &u, const Rep &b) const
 
bool ratrecon (Rep &num, Rep &den, const Rep &f, const Rep &m, const Rep &numbound, bool forcereduce=true, bool recurs=true) const
 
bool RationalReconstruction (Rep &, Rep &, const Rep &, const Rep &) const
 
bool RationalReconstruction (Rep &, Rep &, const Rep &, const Rep &, const Rep &, bool=true, bool=true) const
 
bool RationalReconstruction (Rep &, Rep &, const Rep &, const Rep &, const Rep &, const Rep &) const
 
Reppow (Rep &r, const Rep &n, const int64_t l) const
 
Reppow (Rep &r, const Rep &n, const uint64_t l) const
 
Reppow (Rep &r, const Rep &n, const int32_t l) const
 
Reppow (Rep &r, const Rep &n, const uint32_t l) const
 
Repsqrt (Rep &s, const Rep &n) const
 
Repsqrt (Rep &s, Rep &r, const Rep &n) const
 
int64_t logp (const Rep &a, const Rep &p) const
 
Reppowmod (Rep &r, const Rep &n, const int64_t e, const Rep &m) const
 
Reppowmod (Rep &r, const Rep &n, const Rep &e, const Rep &m) const
 
uint64_t length (const Rep &a) const
 
int sign (const Rep &a) const
 
bool isZero (const Rep &a) const
 
bool isZero (const Element &a) const
 
bool isOne (const Rep &a) const
 
bool isOne (const Element &a) const
 
bool isMOne (const Rep &a) const
 
bool isMOne (const Element &a) const
 
bool isUnit (const Rep &x) const
 isUnit More...
 
bool isUnit (const Element &a) const
 
bool isDivisor (const Element &a, const Element &b) const
 isDivisor (a, b) Test if b | a. More...
 
Elementabs (Element &x, const Element &a) const
 
Element abs (const Element &a) const
 
Elementabs (Element &x, const Element &a) const
 
Element abs (const Element &a) const
 
int32_t compare (const Rep &a, const Rep &b) const
 
long compare (const Element &a, const Element &b) const
 
bool areEqual (const Rep &a, const Rep &b) const
 
bool areNEqual (const Rep &a, const Rep &b) const
 
bool areAssociates (const Element &x, const Element &y) const
 
bool isgeq (const Rep &a, const Rep &b) const
 
bool isgeq (const int64_t b, const Rep &a) const
 
bool isgeq (const Rep &a, const int64_t b) const
 
bool isleq (const Rep &a, const Rep &b) const
 
bool isleq (const int64_t b, const Rep &a) const
 
bool isleq (const Rep &a, const int64_t b) const
 
bool isgt (const Rep &a, const Rep &b) const
 
bool isgt (const int64_t b, const Rep &a) const
 
bool isgt (const Rep &a, const int64_t b) const
 
bool islt (const Rep &a, const Rep &b) const
 
bool islt (const int64_t b, const Rep &a) const
 
bool islt (const Rep &a, const int64_t b) const
 
template<class MyRandIter >
Reprandom (MyRandIter &, Rep &r, long s=1) const
 
template<class MyRandIter >
Reprandom (MyRandIter &, Rep &r, const Rep &b) const
 
Elementrandom (const Random &g, Element &r) const
 
template<class MyRandIter >
Repnonzerorandom (MyRandIter &, Rep &r, long s=1) const
 
template<class MyRandIter >
Repnonzerorandom (MyRandIter &, Rep &r, const Rep &b) const
 
Elementnonzerorandom (const Random &g, Element &a) const
 
std::istream & read (std::istream &i)
 
std::istream & read (std::istream &is, Element &a) const
 Read field element. More...
 
std::ostream & write (std::ostream &o) const
 
std::ostream & write (std::ostream &os, const Element &a) const
 Print field element. More...
 
Residu_t residu () const
 
Residu_t size () const
 
Residu_t cardinality () const
 
T & cardinality (T &c) const
 
Residu_t characteristic () const
 
T & characteristic (T &c) const
 
Elementinit (Element &x) const
 
Elementinit (Element &x, const T &s) const
 
Elementassign (Element &x, const Element &y) const
 
Elementreduce (Element &x, const Element &y) const
 
Elementreduce (Element &x) const
 
Element minElement () const
 
Element maxElement () const
 
Arithmetic Operations

The first argument is set and is also the return value.

Elementmul (Element &x, const Element &y, const Element &z) const
 x := y*z More...
 
Elementdiv (Element &x, const Element &y, const Element &z) const
 x := y/z More...
 
Elementmod (Element &x, const Element &y, const Element &z) const
 x := y mod z More...
 
Elementadd (Element &x, const Element &y, const Element &z) const
 x := y + z More...
 
Elementsub (Element &x, const Element &y, const Element &z) const
 x := y - z More...
 
Elementaxpy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := a*x + y More...
 
Elementmaxpy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := y - a*x More...
 
Elementmaxpyin (Element &z, const Element &a, const Element &x) const
 z := z - a*x More...
 
Elementaxmy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := a*x - y More...
 
Elementaxpyin (Element &z, const Element &a, const Element &x) const
 z := a*x + z More...
 
Elementaxmyin (Element &z, const Element &a, const Element &x) const
 z := a*x - z More...
 
Elementneg (Element &x, const Element &y) const
 x := -y More...
 
Elementinv (Element &x, const Element &y) const
 x := 1/y More...
 
Inplace Arithmetic Operations

The first argument is modified and the result is the return value.

Elementmulin (Element &x, const Element &y) const
 x := x*y More...
 
Elementdivin (Element &x, const Element &y) const
 x := x/y More...
 
Elementmodin (Element &x, const Element &y) const
 x := x mod y More...
 
Elementaddin (Element &x, const Element &y) const
 x := x + y More...
 
Elementsubin (Element &x, const Element &y) const
 x := x - y More...
 
Elementnegin (Element &x) const
 x := -x More...
 
Elementinvin (Element &x) const
 x := 1/x More...
 
Comparison Predicates
bool areEqual (const Element &x, const Element &y) const
 x == y More...
 
Input/Output Operations
std::istream & read (std::istream &is) const
 Read field. More...
 
std::ostream & write (std::ostream &os, std::string F) const
 Read field. More...
 

Static Public Member Functions

static Residu_t maxCardinality ()
 
static Residu_t minCardinality ()
 
static const std::string type_string ()
 

Data Fields

Rep zero
 
Rep one
 
Rep mOne
 
const Element one
 
const Element zero
 
const Element mOne
 

Protected Types

typedef Rep::iterator RepIterator
 
typedef Rep::const_iterator RepConstIterator
 

Protected Member Functions

Repsubin (Rep &R, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend) const
 
Repsubin (Rep &R, const RepIterator Rbeg, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend) const
 
Repsubin (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend) const
 
Repmul (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend, const Rep &Q, const RepConstIterator Qbeg, const RepConstIterator Qend) const
 
Repstdmul (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend, const Rep &Q, const RepConstIterator Qbeg, const RepConstIterator Qend) const
 
Repkaramul (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend, const Rep &Q, const RepConstIterator Qbeg, const RepConstIterator Qend) const
 
Repsqr (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend) const
 
Repstdsqr (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend, const Type_t &two) const
 
Repsqrrec (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend, const Type_t &two) const
 

Protected Attributes

Domain _domain
 
Indeter _x
 

Detailed Description

template<class Domain>
class Givaro::Poly1PadicDom< Domain, Dense >

Poly1 p-adic.

Member Typedef Documentation

◆ Element

◆ pol_Element

◆ int_Element

◆ Domain_t

typedef Domain Domain_t
inherited

◆ Type_t

typedef Domain::Element Type_t
inherited

◆ Residu_t [1/2]

typedef Domain::Residu_t Residu_t
inherited

◆ Self_t [1/2]

typedef Poly1Dom<Domain,Dense> Self_t
inherited

◆ Storage_t

typedef givvector<Type_t> Storage_t
inherited

◆ constRep

typedef const Storage_t constRep
inherited

◆ RandIter [1/2]

typedef GIV_randIter< Self_t, Element> RandIter
inherited

◆ RepIterator

typedef Rep::iterator RepIterator
protectedinherited

◆ RepConstIterator

typedef Rep::const_iterator RepConstIterator
protectedinherited

◆ Self_t [2/2]

using Self_t = ZRing<Integer>
inherited

◆ Parent_t

using Parent_t = UnparametricZRing<Integer>
inherited

◆ RandIter [2/2]

typedef RandomIntegerIterator<false,false> RandIter
inherited

◆ NonZeroRandIter

◆ Residu_t [2/2]

using Residu_t = Integer
inherited

◆ Element_ptr

using Element_ptr = Element*
inherited

◆ ConstElement_ptr

using ConstElement_ptr = const Element*
inherited

◆ ConstElement

typedef const Element ConstElement
inherited

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited

Constructor & Destructor Documentation

◆ Poly1PadicDom() [1/3]

Poly1PadicDom ( Domain d,
const Indeter X 
)
inline

◆ Poly1PadicDom() [2/3]

Poly1PadicDom ( const Poly_t P)
inline

◆ Poly1PadicDom() [3/3]

Poly1PadicDom ( const Poly_t P,
const IntegerDom D 
)
inline

Member Function Documentation

◆ eval() [1/4]

IntegerDom::Element& eval ( IntegerDom::Element E,
const vect &  P 
)
inline

◆ eval() [2/4]

uint64_t& eval ( uint64_t &  E,
const vect &  P 
)
inline

◆ eval() [3/4]

unsignedinttype& eval ( unsignedinttype &  E,
const vect &  P 
)
inline

◆ evaldirect()

elem& evaldirect ( elem &  E,
const vect &  P 
)
inline

◆ radix()

vect& radix ( vect &  P,
const IntegerDom::Element E,
int64_t  n = 0 
)
inline

◆ fastradixdirect()

vect& fastradixdirect ( vect &  P,
const double &  E,
uint64_t  n 
)
inline

◆ radixdirect() [1/2]

vect& radixdirect ( vect &  P,
const TT &  E,
uint64_t  n 
)
inline

◆ radixdirect() [2/2]

vect& radixdirect ( vect &  P,
const double &  E,
uint64_t  n 
)
inline

◆ write() [1/7]

std::ostream & write

◆ write() [2/7]

std::ostream & write

◆ characteristic() [1/4]

Residu_t characteristic ( ) const
inlineinherited

◆ characteristic() [2/4]

Integer& characteristic ( Integer p) const
inlineinherited

◆ cardinality() [1/4]

Residu_t cardinality ( ) const
inlineinherited

◆ cardinality() [2/4]

Integer& cardinality ( Integer c) const
inlineinherited

◆ operator==() [1/3]

int operator== ( const Poly1Dom< Domain, Dense > &  BC) const
inlineinherited

◆ operator!=() [1/3]

int operator!= ( const Poly1Dom< Domain, Dense > &  BC) const
inlineinherited

◆ getIndeter()

const Indeter& getIndeter ( ) const
inlineinherited

◆ setIndeter()

Indeter& setIndeter ( const Indeter X)
inlineinherited

◆ subdomain()

const Domain& subdomain ( ) const
inlineinherited

◆ getdomain()

const Domain& getdomain ( ) const
inlineinherited

◆ setdomain()

Domain& setdomain ( const Domain D)
inlineinherited

◆ subDomain()

const Domain& subDomain ( ) const
inlineinherited

◆ getDomain()

const Domain& getDomain ( ) const
inlineinherited

◆ setDomain()

Domain& setDomain ( const Domain D)
inlineinherited

◆ init() [1/10]

Poly1Dom< Domain, Dense >::Rep & init ( Rep a) const
inlineinherited

◆ init() [2/10]

Rep& init ( Rep p,
const XXX &  cste 
) const
inherited

◆ init() [3/10]

Rep& init ( Rep p,
const std::initializer_list< XXX > &  cste 
) const
inherited

◆ init() [4/10]

Poly1Dom< Domain, Dense >::Rep & init ( Rep r,
const Degree  deg 
) const
inlineinherited

◆ init() [5/10]

Rep& init ( Rep p,
const Degree  deg,
const XXX &  lcoeff 
) const
inherited

◆ init() [6/10]

Poly1Dom<Domain,Dense>::Rep& init ( Rep P,
const XXX &  Val 
) const
inlineinherited

◆ init() [7/10]

Poly1Dom<Domain,Dense>::Rep& init ( Rep P,
const std::initializer_list< XXX > &  L 
) const
inlineinherited

◆ init() [8/10]

Poly1Dom<Domain,Dense>::Rep& init ( Rep P,
const Degree  d,
const XXX &  Val 
) const
inlineinherited

◆ assign() [1/5]

Poly1Dom< Domain, Dense >::Rep & assign ( Rep p,
const Degree  deg,
const Type_t lcoeff 
) const
inlineinherited

◆ assign() [2/5]

Rep& assign ( Rep p,
const Type_t cste 
) const
inlineinherited

◆ assign() [3/5]

Poly1Dom< Domain, Dense >::Rep & assign ( Rep p,
const Rep q 
) const
inlineinherited

◆ assign() [4/5]

Type_t& assign ( Type_t ,
const Rep  
) const
inherited

◆ convert() [1/6]

XXX& convert ( XXX &  p,
const Rep  
) const
inherited

◆ convert() [2/6]

Vect<UU>& convert ( Vect< UU > &  ,
const Rep P 
) const
inherited

◆ convert() [3/6]

XXX& convert ( XXX &  Val,
const typename Poly1Dom< Domain, Dense >::Rep P 
) const
inlineinherited

◆ convert() [4/6]

Vect<UU>& convert ( Vect< UU > &  Val,
const typename Poly1Dom< Domain, Dense >::Rep P 
) const
inlineinherited

◆ isZero() [1/3]

int isZero ( const Rep P) const
inlineinherited

◆ isOne() [1/3]

int isOne ( const Rep P) const
inlineinherited

◆ isMOne() [1/3]

int isMOne ( const Rep P) const
inlineinherited

◆ isUnit() [1/3]

bool isUnit ( const Rep P) const
inlineinherited

◆ areEqual() [1/3]

int areEqual ( const Rep P,
const Rep Q 
) const
inlineinherited

◆ areNEqual() [1/2]

int areNEqual ( const Rep P,
const Rep Q 
) const
inlineinherited

◆ isDivisor() [1/2]

bool isDivisor ( const Rep P,
const Element Q 
) const
inlineinherited

isDivisor (a, b) Tests if Q | P (that is if P mod Q == 0).

◆ leadcoef()

Poly1Dom< Domain, Dense >::Type_t & leadcoef ( Type_t c,
const Rep P 
) const
inlineinherited

◆ getEntry()

Poly1Dom< Domain, Dense >::Type_t & getEntry ( Type_t c,
const Degree i,
const Rep P 
) const
inlineinherited

◆ setEntry()

Poly1Dom< Domain, Dense >::Type_t setEntry ( Rep P,
const Type_t c,
const Degree i 
) const
inlineinherited

◆ degree() [1/2]

Degree & degree ( Degree d,
const Rep P 
) const
inlineinherited

◆ degree() [2/2]

Degree degree ( const Rep P) const
inlineinherited

◆ val()

Degree & val ( Degree d,
const Rep P 
) const
inlineinherited

◆ setdegree()

Poly1Dom< Domain, Dense >::Rep & setdegree ( Rep P) const
inlineinherited

Compute the degree of P.

Warning
this is an infamous function that may not leave P constant !!
Parameters
Ppolynomial

◆ setDegree()

Rep& setDegree ( Rep P) const
inlineinherited

◆ eval() [4/4]

Poly1Dom< Domain, Dense >::Type_t & eval ( Type_t pval,
const Rep P,
const Type_t val 
) const
inlineinherited

◆ diff()

Poly1Dom< Domain, Dense >::Rep & diff ( Rep P,
const Rep Q 
) const
inlineinherited

◆ reverse()

Poly1Dom< Domain, Dense >::Rep & reverse ( Rep P,
const Rep Q 
) const
inlineinherited

◆ reversein()

Poly1Dom< Domain, Dense >::Rep & reversein ( Rep P) const
inlineinherited

◆ read() [1/5]

std::istream & read ( std::istream &  i)
inherited

◆ read() [2/5]

std::istream & read ( std::istream &  i,
Rep n 
) const
inherited

◆ write() [3/7]

std::ostream & write ( std::ostream &  o) const
inherited

◆ write() [4/7]

std::ostream & write ( std::ostream &  o,
const Rep n 
) const
inherited

◆ addin() [1/4]

Poly1Dom< Domain, Dense >::Rep & addin ( Rep res,
const Rep u 
) const
inlineinherited

◆ addin() [2/4]

Poly1Dom< Domain, Dense >::Rep & addin ( Rep res,
const Type_t val 
) const
inlineinherited

◆ add() [1/5]

Poly1Dom< Domain, Dense >::Rep & add ( Rep res,
const Rep u,
const Rep v 
) const
inlineinherited

◆ add() [2/5]

Poly1Dom< Domain, Dense >::Rep & add ( Rep res,
const Rep u,
const Type_t val 
) const
inlineinherited

◆ add() [3/5]

Poly1Dom< Domain, Dense >::Rep & add ( Rep res,
const Type_t val,
const Rep v 
) const
inlineinherited

◆ subin() [1/7]

Poly1Dom< Domain, Dense >::Rep & subin ( Rep res,
const Rep u 
) const
inlineinherited

◆ subin() [2/7]

Poly1Dom< Domain, Dense >::Rep & subin ( Rep res,
const Type_t val 
) const
inlineinherited

◆ subin() [3/7]

Poly1Dom< Domain, Dense >::Rep & subin ( Rep R,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend 
) const
inlineprotectedinherited

◆ subin() [4/7]

Poly1Dom< Domain, Dense >::Rep & subin ( Rep R,
const RepIterator  Rbeg,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend 
) const
inlineprotectedinherited

◆ subin() [5/7]

Poly1Dom< Domain, Dense >::Rep & subin ( Rep R,
const RepIterator  Rbeg,
const RepIterator  Rend,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend 
) const
inlineprotectedinherited

◆ sub() [1/5]

Poly1Dom< Domain, Dense >::Rep & sub ( Rep res,
const Rep u,
const Rep v 
) const
inlineinherited

◆ sub() [2/5]

Poly1Dom< Domain, Dense >::Rep & sub ( Rep res,
const Rep u,
const Type_t val 
) const
inlineinherited

◆ sub() [3/5]

Poly1Dom< Domain, Dense >::Rep & sub ( Rep res,
const Type_t val,
const Rep v 
) const
inlineinherited

◆ negin() [1/3]

Poly1Dom< Domain, Dense >::Rep & negin ( Rep res) const
inlineinherited

◆ neg() [1/3]

Poly1Dom< Domain, Dense >::Rep & neg ( Rep res,
const Rep u 
) const
inlineinherited

◆ mulin() [1/4]

Poly1Dom< Domain, Dense >::Rep & mulin ( Rep q,
const Rep a 
) const
inlineinherited

◆ mulin() [2/4]

Poly1Dom< Domain, Dense >::Rep & mulin ( Rep q,
const Type_t a 
) const
inlineinherited

◆ mul() [1/7]

Poly1Dom< Domain, Dense >::Rep & mul ( Rep q,
const Type_t a,
const Rep b 
) const
inlineinherited

◆ mul() [2/7]

Poly1Dom< Domain, Dense >::Rep & mul ( Rep q,
const Rep a,
const Type_t b 
) const
inlineinherited

◆ mul() [3/7]

Poly1Dom< Domain, Dense >::Rep & mul ( Rep q,
const Rep a,
const Rep b 
) const
inlineinherited

◆ mul() [4/7]

Poly1Dom< Domain, Dense >::Rep & mul ( Rep R,
const Rep P,
const Rep Q,
const Degree Val,
const Degree deg 
) const
inlineinherited

◆ mul() [5/7]

Poly1Dom< Domain, Dense >::Rep & mul ( Rep R,
const RepIterator  Rbeg,
const RepIterator  Rend,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend,
const Rep Q,
const RepConstIterator  Qbeg,
const RepConstIterator  Qend 
) const
inlineprotectedinherited

◆ stdmul() [1/2]

Poly1Dom< Domain, Dense >::Rep & stdmul ( Rep R,
const Rep P,
const Rep Q 
) const
inlineinherited

◆ stdmul() [2/2]

Poly1Dom< Domain, Dense >::Rep & stdmul ( Rep R,
const RepIterator  Rbeg,
const RepIterator  Rend,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend,
const Rep Q,
const RepConstIterator  Qbeg,
const RepConstIterator  Qend 
) const
inlineprotectedinherited

◆ karamul() [1/2]

Poly1Dom< Domain, Dense >::Rep & karamul ( Rep R,
const Rep P,
const Rep Q 
) const
inlineinherited

◆ karamul() [2/2]

Poly1Dom< Domain, Dense >::Rep & karamul ( Rep R,
const RepIterator  Rbeg,
const RepIterator  Rend,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend,
const Rep Q,
const RepConstIterator  Qbeg,
const RepConstIterator  Qend 
) const
inlineprotectedinherited

◆ sqr() [1/2]

Poly1Dom< Domain, Dense >::Rep & sqr ( Rep q,
const Rep a 
) const
inlineinherited

◆ sqr() [2/2]

Poly1Dom< Domain, Dense >::Rep & sqr ( Rep R,
const RepIterator  Rbeg,
const RepIterator  Rend,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend 
) const
inlineprotectedinherited

◆ shiftin()

Poly1Dom< Domain, Dense >::Rep & shiftin ( Rep R,
int  s 
) const
inlineinherited

◆ shift()

Poly1Dom< Domain, Dense >::Rep & shift ( Rep R,
const Rep a,
int  s 
) const
inlineinherited

◆ divin() [1/4]

Poly1Dom< Domain, Dense >::Rep & divin ( Rep q,
const Rep a 
) const
inlineinherited

◆ divin() [2/4]

Poly1Dom< Domain, Dense >::Rep & divin ( Rep q,
const Type_t a 
) const
inlineinherited

◆ div() [1/5]

Poly1Dom< Domain, Dense >::Rep & div ( Rep q,
const Rep a,
const Rep b 
) const
inlineinherited

◆ div() [2/5]

Poly1Dom< Domain, Dense >::Rep & div ( Rep q,
const Type_t a,
const Rep b 
) const
inlineinherited

◆ div() [3/5]

Poly1Dom< Domain, Dense >::Rep & div ( Rep q,
const Rep a,
const Type_t b 
) const
inlineinherited

◆ invin() [1/3]

Poly1Dom< Domain, Dense >::Rep & invin ( Rep R) const
inlineinherited

◆ inv() [1/3]

Poly1Dom< Domain, Dense >::Rep & inv ( Rep R,
const Rep P 
) const
inlineinherited

◆ modin() [1/4]

Poly1Dom< Domain, Dense >::Rep & modin ( Rep q,
const Rep a 
) const
inlineinherited

◆ modin() [2/4]

Poly1Dom< Domain, Dense >::Rep & modin ( Rep q,
const Type_t a 
) const
inlineinherited

◆ mod() [1/5]

Poly1Dom< Domain, Dense >::Rep & mod ( Rep q,
const Rep a,
const Rep b 
) const
inlineinherited

◆ mod() [2/5]

Poly1Dom< Domain, Dense >::Rep & mod ( Rep q,
const Type_t a,
const Rep b 
) const
inlineinherited

◆ mod() [3/5]

Poly1Dom< Domain, Dense >::Rep & mod ( Rep q,
const Rep a,
const Type_t b 
) const
inlineinherited

◆ axpy() [1/4]

Poly1Dom< Domain, Dense >::Rep & axpy ( Rep r,
const Rep a,
const Rep x,
const Rep y 
) const
inlineinherited

◆ axpy() [2/4]

Poly1Dom< Domain, Dense >::Rep & axpy ( Rep r,
const Type_t a,
const Rep x,
const Rep y 
) const
inlineinherited

◆ axpyin() [1/4]

Poly1Dom< Domain, Dense >::Rep & axpyin ( Rep r,
const Rep a,
const Rep x 
) const
inlineinherited

◆ axpyin() [2/4]

Poly1Dom< Domain, Dense >::Rep & axpyin ( Rep r,
const Type_t a,
const Rep x 
) const
inlineinherited

◆ maxpy() [1/4]

Poly1Dom< Domain, Dense >::Rep & maxpy ( Rep r,
const Rep a,
const Rep b,
const Rep c 
) const
inlineinherited

◆ maxpy() [2/4]

Poly1Dom< Domain, Dense >::Rep & maxpy ( Rep r,
const Type_t a,
const Rep b,
const Rep c 
) const
inlineinherited

◆ maxpyin() [1/4]

Poly1Dom< Domain, Dense >::Rep & maxpyin ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ maxpyin() [2/4]

Poly1Dom< Domain, Dense >::Rep & maxpyin ( Rep r,
const Type_t a,
const Rep b 
) const
inlineinherited

◆ axmy() [1/4]

Poly1Dom< Domain, Dense >::Rep & axmy ( Rep r,
const Rep a,
const Rep x,
const Rep y 
) const
inlineinherited

◆ axmy() [2/4]

Poly1Dom< Domain, Dense >::Rep & axmy ( Rep r,
const Type_t a,
const Rep x,
const Rep y 
) const
inlineinherited

◆ axmyin() [1/4]

Poly1Dom< Domain, Dense >::Rep & axmyin ( Rep r,
const Rep a,
const Rep x 
) const
inlineinherited

◆ axmyin() [2/4]

Poly1Dom< Domain, Dense >::Rep & axmyin ( Rep r,
const Type_t a,
const Rep x 
) const
inlineinherited

◆ divmod() [1/2]

Poly1Dom< Domain, Dense >::Rep & divmod ( Rep q,
Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ divmodin()

Poly1Dom< Domain, Dense >::Rep & divmodin ( Rep q,
Rep r,
const Rep b 
) const
inlineinherited

◆ pdivmod()

Poly1Dom< Domain, Dense >::Rep & pdivmod ( Rep q,
Rep r,
Type_t m,
const Rep a,
const Rep b 
) const
inlineinherited

◆ pmod() [1/2]

Poly1Dom< Domain, Dense >::Rep & pmod ( Rep r,
Type_t m,
const Rep a,
const Rep b 
) const
inlineinherited

◆ pmod() [2/2]

Rep& pmod ( Rep r,
const Rep a,
const Rep b 
) const
inherited

◆ pdiv() [1/2]

Rep& pdiv ( Rep q,
Type_t m,
const Rep a,
const Rep b 
) const
inherited

◆ pdiv() [2/2]

Rep& pdiv ( Rep q,
const Rep a,
const Rep b 
) const
inherited

◆ gcd() [1/4]

Poly1Dom< Domain, Dense >::Rep & gcd ( Rep D,
const Rep P,
const Rep Q 
) const
inlineinherited

◆ gcd() [2/4]

Poly1Dom< Domain, Dense >::Rep & gcd ( Rep D,
Rep U,
Rep V,
const Rep P,
const Rep Q 
) const
inlineinherited

◆ lcm() [1/2]

Poly1Dom< Domain, Dense >::Rep & lcm ( Rep D,
const Rep P,
const Rep Q 
) const
inlineinherited

◆ invmod() [1/2]

Poly1Dom< Domain, Dense >::Rep & invmod ( Rep U,
const Rep P,
const Rep Q 
) const
inlineinherited

◆ invmodunit()

Poly1Dom< Domain, Dense >::Rep & invmodunit ( Rep U,
const Rep P,
const Rep Q 
) const
inlineinherited

◆ ratrecon() [1/3]

bool ratrecon ( Rep N,
Rep D,
const Rep P,
const Rep M,
const Degree dk 
) const
inherited

◆ ratrecon() [2/3]

bool ratrecon ( Rep N,
Rep D,
const Rep P,
const Rep M,
const Degree dk,
bool  forcereduce 
) const
inherited

◆ ratreconcheck()

bool ratreconcheck ( Rep N,
Rep D,
const Rep P,
const Rep M,
const Degree dk 
) const
inherited

◆ pow() [1/5]

Poly1Dom< Domain, Dense >::Rep & pow ( Rep W,
const Rep P,
uint64_t  n 
) const
inlineinherited

◆ powmod() [1/4]

Poly1Dom< Domain, Dense >::Rep & powmod ( Rep W,
const Rep P,
IntegerDom::Element  pwr,
const Rep U 
) const
inlineinherited

◆ powmod() [2/4]

Rep& powmod ( Rep W,
const Rep P,
MyInt  pwr,
const Rep U 
) const
inlineinherited

◆ power_compose()

Poly1Dom< Domain, Dense >::Rep & power_compose ( Rep W,
const Rep P,
uint64_t  b 
) const
inlineinherited

◆ cyclotomic()

Poly1Dom< Domain, Dense >::Rep & cyclotomic ( Rep P,
uint64_t  n 
) const
inlineinherited

◆ random() [1/11]

Rep& random ( RandomIterator &  g,
Rep r 
) const
inherited

◆ random() [2/11]

Rep& random ( RandomIterator &  g,
Rep r,
uint64_t  s 
) const
inherited

◆ random() [3/11]

Rep& random ( RandomIterator &  g,
Rep r,
Degree  s 
) const
inherited

◆ random() [4/11]

Rep& random ( RandomIterator &  g,
Rep r,
const Rep b 
) const
inherited

◆ random() [5/11]

Poly1Dom<Domain,Dense>::Rep& random ( RandomIterator &  g,
Rep r 
) const
inlineinherited

◆ random() [6/11]

Poly1Dom<Domain,Dense>::Rep& random ( RandomIterator &  g,
Rep r,
uint64_t  s 
) const
inlineinherited

◆ random() [7/11]

Poly1Dom<Domain,Dense>::Rep& random ( RandomIterator &  g,
typename Poly1Dom< Domain, Dense >::Rep r,
Degree  d 
) const
inlineinherited

◆ random() [8/11]

Poly1Dom<Domain,Dense>::Rep& random ( RandomIterator &  g,
Rep r,
const Rep b 
) const
inlineinherited

◆ nonzerorandom() [1/11]

Rep& nonzerorandom ( RandomIterator &  g,
Rep r 
) const
inherited

◆ nonzerorandom() [2/11]

Rep& nonzerorandom ( RandomIterator &  g,
Rep r,
uint64_t  s 
) const
inherited

◆ nonzerorandom() [3/11]

Rep& nonzerorandom ( RandomIterator &  g,
Rep r,
Degree  s 
) const
inherited

◆ nonzerorandom() [4/11]

Rep& nonzerorandom ( RandomIterator &  g,
Rep r,
const Rep b 
) const
inherited

◆ nonzerorandom() [5/11]

Poly1Dom<Domain,Dense>::Rep& nonzerorandom ( RandomIterator &  g,
Rep r 
) const
inlineinherited

◆ nonzerorandom() [6/11]

Poly1Dom<Domain,Dense>::Rep& nonzerorandom ( RandomIterator &  g,
Rep r,
uint64_t  s 
) const
inlineinherited

◆ nonzerorandom() [7/11]

Poly1Dom<Domain,Dense>::Rep& nonzerorandom ( RandomIterator &  g,
Rep r,
Degree  d 
) const
inlineinherited

◆ nonzerorandom() [8/11]

Poly1Dom<Domain,Dense>::Rep& nonzerorandom ( RandomIterator &  g,
Rep r,
const Rep b 
) const
inlineinherited

◆ sqrfree()

size_t & sqrfree ( size_t &  Nfact,
Rep Fact,
const Rep P 
) const
inherited

Sqrfree decomposition.

Decompose P such that: P = Fact[0]^0 * Fact[1]^1 * ... * Fact[P.degree()]^(P.degree()), with Fact[0] the leading coefficient. The array Fact must be allocated before calling the function. The size of Fact must be degP+1 is all factors should be computed. For more readeable version of the algorithm, see Geddes, p342.

Parameters
Nfact[in] the size of Fact
Fact[in] an array of dimension Nfact
Nfact[out] is the number of factor in the sqrfree decomposition
Fact[out] contains at most Nfact factors of the decomposition.
Prep.

◆ stdsqr()

Poly1Dom< Domain, Dense >::Rep & stdsqr ( Rep R,
const RepIterator  Rbeg,
const RepIterator  Rend,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend,
const Type_t two 
) const
inlineprotectedinherited

◆ sqrrec()

Poly1Dom< Domain, Dense >::Rep & sqrrec ( Rep R,
const RepIterator  Rbeg,
const RepIterator  Rend,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend,
const Type_t two 
) const
inlineprotectedinherited

◆ operator==() [2/3]

int operator== ( const Self_t ) const
inlineinherited

◆ operator==() [3/3]

bool operator== ( const Self_t F) const
inlineinherited

◆ operator!=() [2/3]

int operator!= ( const Self_t ) const
inlineinherited

◆ operator!=() [3/3]

bool operator!= ( const Self_t F) const
inlineinherited

◆ convert() [5/6]

XXX& convert ( XXX &  x,
const Rep a 
) const
inlineinherited

◆ convert() [6/6]

T& convert ( T &  x,
const Element y 
) const
inlineinherited

◆ mul() [6/7]

Rep& mul ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ mul() [7/7]

Element& mul ( Element x,
const Element y,
const Element z 
) const
inlinevirtualinherited

x := y*z

Implements RingInterface< _Element >.

◆ mulin() [3/4]

Rep& mulin ( Rep r,
const Rep b 
) const
inlineinherited

◆ mulin() [4/4]

Element& mulin ( Element x,
const Element y 
) const
inlinevirtualinherited

x := x*y

Implements RingInterface< _Element >.

◆ div() [4/5]

Rep& div ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ div() [5/5]

Element& div ( Element x,
const Element y,
const Element z 
) const
inlineinherited

x := y/z

◆ divin() [3/4]

Rep& divin ( Rep r,
const Rep b 
) const
inlineinherited

◆ divin() [4/4]

Element& divin ( Element x,
const Element y 
) const
inlineinherited

x := x/y

◆ mod() [4/5]

Rep& mod ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ mod() [5/5]

Element& mod ( Element x,
const Element y,
const Element z 
) const
inlineinherited

x := y mod z

◆ modin() [3/4]

Rep& modin ( Rep r,
const Rep b 
) const
inlineinherited

◆ modin() [4/4]

Element& modin ( Element x,
const Element y 
) const
inlineinherited

x := x mod y

◆ add() [4/5]

Rep& add ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ add() [5/5]

Element& add ( Element x,
const Element y,
const Element z 
) const
inlinevirtualinherited

x := y + z

Implements RingInterface< _Element >.

◆ addin() [3/4]

Rep& addin ( Rep r,
const Rep b 
) const
inlineinherited

◆ addin() [4/4]

Element& addin ( Element x,
const Element y 
) const
inlinevirtualinherited

x := x + y

Implements RingInterface< _Element >.

◆ sub() [4/5]

Rep& sub ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ sub() [5/5]

Element& sub ( Element x,
const Element y,
const Element z 
) const
inlinevirtualinherited

x := y - z

Implements RingInterface< _Element >.

◆ subin() [6/7]

Rep& subin ( Rep r,
const Rep b 
) const
inlineinherited

◆ subin() [7/7]

Element& subin ( Element x,
const Element y 
) const
inlinevirtualinherited

x := x - y

Implements RingInterface< _Element >.

◆ divmod() [2/2]

Rep& divmod ( Rep q,
Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ divexact()

Rep& divexact ( Rep q,
const Rep a,
const Rep b 
) const
inlineinherited

◆ axpy() [3/4]

Rep& axpy ( Rep r,
const Rep a,
const Rep b,
const Rep c 
) const
inlineinherited

◆ axpy() [4/4]

Element& axpy ( Element z,
const Element a,
const Element x,
const Element y 
) const
inlinevirtualinherited

z := a*x + y

Implements RingInterface< _Element >.

◆ maxpy() [3/4]

Rep& maxpy ( Rep r,
const Rep a,
const Rep b,
const Rep c 
) const
inlineinherited

◆ maxpy() [4/4]

Element& maxpy ( Element z,
const Element a,
const Element x,
const Element y 
) const
inlinevirtualinherited

z := y - a*x

Implements RingInterface< _Element >.

◆ maxpyin() [3/4]

Rep& maxpyin ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ maxpyin() [4/4]

Element& maxpyin ( Element z,
const Element a,
const Element x 
) const
inlinevirtualinherited

z := z - a*x

Implements RingInterface< _Element >.

◆ axmy() [3/4]

Rep& axmy ( Rep r,
const Rep a,
const Rep b,
const Rep c 
) const
inlineinherited

◆ axmy() [4/4]

Element& axmy ( Element z,
const Element a,
const Element x,
const Element y 
) const
inlinevirtualinherited

z := a*x - y

Implements RingInterface< _Element >.

◆ axpyin() [3/4]

Rep& axpyin ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ axpyin() [4/4]

Element& axpyin ( Element z,
const Element a,
const Element x 
) const
inlinevirtualinherited

z := a*x + z

Implements RingInterface< _Element >.

◆ axmyin() [3/4]

Rep& axmyin ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited

◆ axmyin() [4/4]

Element& axmyin ( Element z,
const Element a,
const Element x 
) const
inlinevirtualinherited

z := a*x - z

Implements RingInterface< _Element >.

◆ neg() [2/3]

Rep& neg ( Rep r,
const Rep a 
) const
inlineinherited

◆ neg() [3/3]

Element& neg ( Element x,
const Element y 
) const
inlinevirtualinherited

x := -y

Implements RingInterface< _Element >.

◆ negin() [2/3]

Rep& negin ( Rep r) const
inlineinherited

◆ negin() [3/3]

Element& negin ( Element x) const
inlinevirtualinherited

x := -x

Implements RingInterface< _Element >.

◆ quo()

Element& quo ( Element q,
const Element a,
const Element b 
) const
inlineinherited

◆ rem()

Element& rem ( Element r,
const Element a,
const Element b 
) const
inlineinherited

◆ quoin()

Element& quoin ( Element a,
const Element b 
) const
inlineinherited

◆ remin()

Element& remin ( Element a,
const Element b 
) const
inlineinherited

◆ quoRem()

void quoRem ( Element q,
Element r,
const Element a,
const Element b 
) const
inlineinherited

◆ logtwo()

Element& logtwo ( Element z,
const Element x 
) const
inlineinherited

◆ gcd() [3/4]

Rep& gcd ( Rep g,
Rep u,
Rep v,
const Rep a,
const Rep b 
) const
inlineinherited

◆ gcd() [4/4]

Rep& gcd ( Rep g,
const Rep a,
const Rep b 
) const
inlineinherited

◆ gcdin()

Rep& gcdin ( Rep g,
const Rep a 
) const
inlineinherited

◆ lcm() [2/2]

Rep& lcm ( Rep l,
const Rep a,
const Rep b 
) const
inlineinherited

◆ lcmin()

Rep& lcmin ( Rep l,
const Rep a 
) const
inlineinherited

◆ dxgcd()

Element& dxgcd ( Element g,
Element s,
Element t,
Element u,
Element v,
const Element a,
const Element b 
) const
inlineinherited

◆ inv() [2/3]

Rep& inv ( Rep u,
const Rep a,
const Rep b 
) const
inlineinherited

◆ inv() [3/3]

Element& inv ( Element x,
const Element y 
) const
inlineinherited

x := 1/y

◆ invin() [2/3]

Rep& invin ( Rep u,
const Rep b 
) const
inlineinherited

◆ invin() [3/3]

Element& invin ( Element x) const
inlineinherited

x := 1/x

◆ invmod() [2/2]

Rep& invmod ( Rep u,
const Rep a,
const Rep b 
) const
inlineinherited

◆ invmodin()

Rep& invmodin ( Rep u,
const Rep b 
) const
inlineinherited

◆ ratrecon() [3/3]

bool ratrecon ( Rep num,
Rep den,
const Rep f,
const Rep m,
const Rep numbound,
bool  forcereduce = true,
bool  recurs = true 
) const
inherited

◆ RationalReconstruction() [1/3]

bool RationalReconstruction ( Rep a,
Rep b,
const Rep x,
const Rep m 
) const
inherited

◆ RationalReconstruction() [2/3]

bool RationalReconstruction ( Rep a,
Rep b,
const Rep x,
const Rep m,
const Rep bound,
bool  forcereduce = true,
bool  recurs = true 
) const
inherited

◆ RationalReconstruction() [3/3]

bool RationalReconstruction ( Rep a,
Rep b,
const Rep x,
const Rep m,
const Rep a_bound,
const Rep b_bound 
) const
inherited

◆ pow() [2/5]

Rep& pow ( Rep r,
const Rep n,
const int64_t  l 
) const
inlineinherited

◆ pow() [3/5]

Rep& pow ( Rep r,
const Rep n,
const uint64_t  l 
) const
inlineinherited

◆ pow() [4/5]

Rep& pow ( Rep r,
const Rep n,
const int32_t  l 
) const
inlineinherited

◆ pow() [5/5]

Rep& pow ( Rep r,
const Rep n,
const uint32_t  l 
) const
inlineinherited

◆ sqrt() [1/2]

Rep& sqrt ( Rep s,
const Rep n 
) const
inlineinherited

◆ sqrt() [2/2]

Rep& sqrt ( Rep s,
Rep r,
const Rep n 
) const
inlineinherited

◆ logp()

int64_t logp ( const Rep a,
const Rep p 
) const
inlineinherited

◆ powmod() [3/4]

Rep& powmod ( Rep r,
const Rep n,
const int64_t  e,
const Rep m 
) const
inlineinherited

◆ powmod() [4/4]

Rep& powmod ( Rep r,
const Rep n,
const Rep e,
const Rep m 
) const
inlineinherited

◆ length()

uint64_t length ( const Rep a) const
inlineinherited

◆ sign()

int sign ( const Rep a) const
inlineinherited

◆ isZero() [2/3]

bool isZero ( const Rep a) const
inlineinherited

◆ isZero() [3/3]

bool isZero ( const Element a) const
inlinevirtualinherited

◆ isOne() [2/3]

bool isOne ( const Rep a) const
inlineinherited

◆ isOne() [3/3]

bool isOne ( const Element a) const
inlinevirtualinherited

◆ isMOne() [2/3]

bool isMOne ( const Rep a) const
inlineinherited

◆ isMOne() [3/3]

bool isMOne ( const Element a) const
inlinevirtualinherited

◆ isUnit() [2/3]

bool isUnit ( const Rep x) const
inlineinherited

isUnit

◆ isUnit() [3/3]

bool isUnit ( const Element a) const
inlinevirtualinherited

◆ isDivisor() [2/2]

bool isDivisor ( const Element a,
const Element b 
) const
inlineinherited

isDivisor (a, b) Test if b | a.

◆ abs() [1/4]

Element& abs ( Element x,
const Element a 
) const
inlineinherited

◆ abs() [2/4]

Element abs ( const Element a) const
inlineinherited

◆ abs() [3/4]

Element& abs ( Element x,
const Element a 
) const
inlineinherited

◆ abs() [4/4]

Element abs ( const Element a) const
inlineinherited

◆ compare() [1/2]

int32_t compare ( const Rep a,
const Rep b 
) const
inlineinherited

◆ compare() [2/2]

long compare ( const Element a,
const Element b 
) const
inlineinherited

◆ areEqual() [2/3]

bool areEqual ( const Rep a,
const Rep b 
) const
inlineinherited

◆ areEqual() [3/3]

bool areEqual ( const Element x,
const Element y 
) const
inlinevirtualinherited

x == y

Implements RingInterface< _Element >.

◆ areNEqual() [2/2]

bool areNEqual ( const Rep a,
const Rep b 
) const
inlineinherited

◆ areAssociates()

bool areAssociates ( const Element x,
const Element y 
) const
inlineinherited

◆ isgeq() [1/3]

bool isgeq ( const Rep a,
const Rep b 
) const
inlineinherited

◆ isgeq() [2/3]

bool isgeq ( const int64_t  b,
const Rep a 
) const
inlineinherited

◆ isgeq() [3/3]

bool isgeq ( const Rep a,
const int64_t  b 
) const
inlineinherited

◆ isleq() [1/3]

bool isleq ( const Rep a,
const Rep b 
) const
inlineinherited

◆ isleq() [2/3]

bool isleq ( const int64_t  b,
const Rep a 
) const
inlineinherited

◆ isleq() [3/3]

bool isleq ( const Rep a,
const int64_t  b 
) const
inlineinherited

◆ isgt() [1/3]

bool isgt ( const Rep a,
const Rep b 
) const
inlineinherited

◆ isgt() [2/3]

bool isgt ( const int64_t  b,
const Rep a 
) const
inlineinherited

◆ isgt() [3/3]

bool isgt ( const Rep a,
const int64_t  b 
) const
inlineinherited

◆ islt() [1/3]

bool islt ( const Rep a,
const Rep b 
) const
inlineinherited

◆ islt() [2/3]

bool islt ( const int64_t  b,
const Rep a 
) const
inlineinherited

◆ islt() [3/3]

bool islt ( const Rep a,
const int64_t  b 
) const
inlineinherited

◆ random() [9/11]

Rep& random ( MyRandIter &  ,
Rep r,
long  s = 1 
) const
inlineinherited

◆ random() [10/11]

Rep& random ( MyRandIter &  ,
Rep r,
const Rep b 
) const
inlineinherited

◆ random() [11/11]

Element& random ( const Random &  g,
Element r 
) const
inlineinherited

◆ nonzerorandom() [9/11]

Rep& nonzerorandom ( MyRandIter &  ,
Rep r,
long  s = 1 
) const
inlineinherited

◆ nonzerorandom() [10/11]

Rep& nonzerorandom ( MyRandIter &  ,
Rep r,
const Rep b 
) const
inlineinherited

◆ nonzerorandom() [11/11]

Element& nonzerorandom ( const Random &  g,
Element a 
) const
inlineinherited

◆ read() [3/5]

std::istream& read ( std::istream &  i)
inlineinherited

◆ read() [4/5]

std::istream& read ( std::istream &  is,
Element x 
) const
inlinevirtualinherited

Read field element.

Returns
input stream from which field element is read.
Parameters
isinput stream from which field element is read.
xfield element.

Reimplemented from UnparametricOperations< _Element >.

◆ read() [5/5]

std::istream& read ( std::istream &  is) const
inlineinherited

Read field.

Returns
input stream from which field is read.
Parameters
isinput stream from which field is read.

◆ write() [5/7]

std::ostream& write ( std::ostream &  o) const
inlinevirtualinherited

◆ write() [6/7]

std::ostream& write ( std::ostream &  os,
const Element x 
) const
inlinevirtualinherited

Print field element.

Returns
output stream to which field element is written.
Parameters
osoutput stream to which field element is written.
xfield element.

Reimplemented from UnparametricOperations< _Element >.

◆ write() [7/7]

std::ostream& write ( std::ostream &  os,
std::string  F 
) const
inlineinherited

Read field.

Returns
input stream from which field is read.
Parameters
isinput stream from which field is read.

◆ residu()

Residu_t residu ( ) const
inlineinherited

◆ size()

Residu_t size ( ) const
inlineinherited

◆ cardinality() [3/4]

Residu_t cardinality ( ) const
inlineinherited

◆ cardinality() [4/4]

T& cardinality ( T &  c) const
inlineinherited

◆ characteristic() [3/4]

Residu_t characteristic ( ) const
inlineinherited

◆ characteristic() [4/4]

T& characteristic ( T &  c) const
inlineinherited

◆ maxCardinality()

static Residu_t maxCardinality ( )
inlinestaticinherited

◆ minCardinality()

static Residu_t minCardinality ( )
inlinestaticinherited

◆ init() [9/10]

Element& init ( Element x) const
inlinevirtualinherited

◆ init() [10/10]

Element& init ( Element x,
const T &  s 
) const
inlineinherited

◆ assign() [5/5]

Element& assign ( Element x,
const Element y 
) const
inlinevirtualinherited

◆ reduce() [1/2]

Element& reduce ( Element x,
const Element y 
) const
inlineinherited

◆ reduce() [2/2]

Element& reduce ( Element x) const
inlineinherited

◆ minElement()

Element minElement ( ) const
inlineinherited

◆ maxElement()

Element maxElement ( ) const
inlineinherited

◆ type_string()

static const std::string type_string ( )
inlinestaticinherited

Field Documentation

◆ _domain

Domain _domain
protectedinherited

◆ _x

Indeter _x
protectedinherited

◆ zero [1/2]

Rep zero
inherited

◆ one [1/2]

Rep one
inherited

◆ mOne [1/2]

Rep mOne
inherited

◆ one [2/2]

const Element one
inherited

◆ zero [2/2]

const Element zero
inherited

◆ mOne [2/2]

const Element mOne
inherited

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