Givaro
Public Types | 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 Poly1Dom< Domain, DenseSelf_t
 
typedef givvector< Type_tStorage_t
 
typedef const Storage_t constRep
 
using Self_t = IntegerDom
 
typedef GeneralRingRandIter< Self_tRandIter
 
typedef GeneralRingNonZeroRandIter< Self_tNonZeroRandIter
 
typedef ElementElement_ptr
 
typedef const Element ConstElement
 
typedef const ElementConstElement_ptr
 

Public Member Functions

 Poly1PadicDom (Domain &d, const Indeter &X)
 
 Poly1PadicDom (const Poly_t &P)
 
 Poly1PadicDom (const Poly_t &P, const IntegerDom &D)
 
std::ostream & write (std::ostream &o, const pol_Element &p)
 
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)
 
Type_t characteristic () const
 
Integercharacteristic (Integer &p) 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
 
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 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_tconvert (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 Domain >
Poly1Dom< Domain, Dense >::Type_tconvert (typename Poly1Dom< Domain, Dense >::Type_t &Val, const typename Poly1Dom< Domain, Dense >::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
 
int areEqual (const Rep &P, const Rep &Q) const
 
int areNEqual (const Rep &P, const Rep &Q) const
 
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
 
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
 
void ratrecon (Rep &N, Rep &D, const Rep &P, const Rep &M, const Degree &dk) 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 RandIter >
Reprandom (RandIter &g, Rep &r) const
 
template<class RandIter >
Reprandom (RandIter &g, Rep &r, uint64_t s) const
 
template<class RandIter >
Reprandom (RandIter &g, Rep &r, Degree s) const
 
Reprandom (GivRandom &g, Rep &r, Degree s) const
 
template<class RandIter >
Reprandom (RandIter &g, Rep &r, const Rep &b) const
 
template<class RandIter >
Poly1Dom< Domain, Dense >::Reprandom (RandIter &g, Rep &r) const
 
template<class RandIter >
Poly1Dom< Domain, Dense >::Reprandom (RandIter &g, Rep &r, uint64_t s) const
 
template<class RandIter >
Poly1Dom< Domain, Dense >::Reprandom (RandIter &g, typename Poly1Dom< Domain, Dense >::Rep &r, Degree d) const
 
template<class RandIter >
Poly1Dom< Domain, Dense >::Reprandom (RandIter &g, Rep &r, const Rep &b) const
 
template<class RandIter >
Repnonzerorandom (RandIter &g, Rep &r) const
 
template<class RandIter >
Repnonzerorandom (RandIter &g, Rep &r, uint64_t s) const
 
template<class RandIter >
Repnonzerorandom (RandIter &g, Rep &r, Degree s) const
 
template<class RandIter >
Repnonzerorandom (RandIter &g, Rep &r, const Rep &b) const
 
template<class RandIter >
Poly1Dom< Domain, Dense >::Repnonzerorandom (RandIter &g, Rep &r) const
 
template<class RandIter >
Poly1Dom< Domain, Dense >::Repnonzerorandom (RandIter &g, Rep &r, uint64_t s) const
 
template<class RandIter >
Poly1Dom< Domain, Dense >::Repnonzerorandom (RandIter &g, Rep &r, Degree d) const
 
template<class RandIter >
Poly1Dom< Domain, Dense >::Repnonzerorandom (RandIter &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 IntegerDom &) const
 
int operator!= (const IntegerDom &) const
 
Repinit (Rep &a) const
 
Repinit (Rep &a, const Rep &b) const
 
Repread (Rep &a, const int64_t i) const
 
Repread (Rep &a, const uint64_t i) const
 
Repread (Rep &a, const int32_t i) const
 
Repread (Rep &a, const uint32_t i) const
 
std::istream & read (std::istream &i)
 
std::istream & read (std::istream &i, Rep &n) const
 
Repconvert (Rep &a, const Rep &b) const
 
template<class XXX >
XXX & convert (XXX &x, const Rep &a) const
 
Repassign (Rep &a, const Rep &b) const
 
const Repaccess (const Rep &a) const
 
Repmul (Rep &r, const Rep &a, const Rep &b) const
 
Repdiv (Rep &r, const Rep &a, const Rep &b) const
 
Repmod (Rep &r, const Rep &a, const Rep &b) const
 
Repadd (Rep &r, const Rep &a, const Rep &b) const
 
Repsub (Rep &r, const Rep &a, 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
 
Repmulin (Rep &r, const Rep &a) const
 
Repdivin (Rep &r, const Rep &a) const
 
Repmodin (Rep &r, const Rep &a) const
 
Repaddin (Rep &r, const Rep &a) const
 
Repsubin (Rep &r, const Rep &a) 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
 
Repgcd (Rep &g, Rep &u, Rep &v, const Rep &a, const Rep &b) const
 
Repgcd (Rep &g, const Rep &a, const Rep &b) const
 
Replcm (Rep &l, const Rep &a, const Rep &b) const
 
Replcmin (Rep &l, const Rep &a) const
 
Repinv (Rep &u, const Rep &a, const Rep &b) const
 
Repinvin (Rep &u, const Rep &b) 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
 
long 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
 
unsigned long length (const Rep &a) const
 
int sign (const Rep &a) const
 
bool isZero (const Rep &a) const
 
bool isOne (const Rep &a) const
 
bool isMOne (const Rep &a) const
 
bool areEqual (const Rep &a, const Rep &b) const
 
bool areNEqual (const Rep &a, const Rep &b) 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
 
template<class MyRandIter >
Repnonzerorandom (MyRandIter &, Rep &r, long s=1) const
 
template<class MyRandIter >
Repnonzerorandom (MyRandIter &, Rep &r, const Rep &b) const
 
std::ostream & write (std::ostream &o) const
 
std::ostream & write (std::ostream &o, const Rep &n) const
 

Data Fields

Rep zero
 
Rep one
 
Rep mOne
 
const Integer one
 
const Integer mOne
 
const Integer zero
 

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

typedef Domain Domain_t
inherited
typedef Domain::Element Type_t
inherited
typedef Poly1Dom<Domain,Dense> Self_t
inherited
typedef givvector<Type_t> Storage_t
inherited
typedef const Storage_t constRep
inherited
typedef Rep::iterator RepIterator
protectedinherited
typedef Rep::const_iterator RepConstIterator
protectedinherited
using Self_t = IntegerDom
inherited
typedef GeneralRingRandIter<Self_t> RandIter
inherited
typedef Element* Element_ptr
inherited
typedef const Element ConstElement
inherited
typedef const Element* ConstElement_ptr
inherited

Constructor & Destructor Documentation

Poly1PadicDom ( Domain d,
const Indeter X 
)
inline
Poly1PadicDom ( const Poly_t P)
inline
Poly1PadicDom ( const Poly_t P,
const IntegerDom D 
)
inline

Member Function Documentation

std::ostream& write ( std::ostream &  o,
const pol_Element p 
)
inline
IntegerDom::Element& eval ( IntegerDom::Element E,
const vect &  P 
)
inline
uint64_t& eval ( uint64_t &  E,
const vect &  P 
)
inline
unsignedinttype& eval ( unsignedinttype &  E,
const vect &  P 
)
inline
elem& evaldirect ( elem &  E,
const vect &  P 
)
inline
vect& radix ( vect &  P,
const IntegerDom::Element E,
int64_t  n = 0 
)
inline
vect& fastradixdirect ( vect &  P,
const double &  E,
uint64_t  n 
)
inline
vect& radixdirect ( vect &  P,
const TT &  E,
uint64_t  n 
)
inline
vect& radixdirect ( vect &  P,
const double &  E,
uint64_t  n 
)
inline
Type_t characteristic ( ) const
inlineinherited
Integer& characteristic ( Integer p) const
inlineinherited
int operator== ( const Poly1Dom< Domain, Dense > &  BC) const
inlineinherited
int operator!= ( const Poly1Dom< Domain, Dense > &  BC) const
inlineinherited
const Indeter& getIndeter ( ) const
inlineinherited
Indeter& setIndeter ( const Indeter X)
inlineinherited
const Domain& subdomain ( ) const
inlineinherited
const Domain& getdomain ( ) const
inlineinherited
Domain& setdomain ( const Domain D)
inlineinherited
const Domain& subDomain ( ) const
inlineinherited
const Domain& getDomain ( ) const
inlineinherited
Domain& setDomain ( const Domain D)
inlineinherited
Poly1Dom< Domain, Dense >::Rep & init ( Rep a) const
inlineinherited
Rep& init ( Rep p,
const XXX &  cste 
) const
inherited
Poly1Dom< Domain, Dense >::Rep & init ( Rep r,
const Degree  deg 
) const
inlineinherited
Rep& init ( Rep p,
const Degree  deg,
const XXX &  lcoeff 
) const
inherited
Poly1Dom<Domain,Dense>::Rep& init ( Rep P,
const XXX &  Val 
) const
inlineinherited
Poly1Dom<Domain,Dense>::Rep& init ( Rep P,
const Degree  d,
const XXX &  Val 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & assign ( Rep p,
const Degree  deg,
const Type_t lcoeff 
) const
inlineinherited
Rep& assign ( Rep p,
const Type_t cste 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & assign ( Rep p,
const Rep q 
) const
inlineinherited
Type_t& convert ( Type_t ,
const Rep  
) const
inherited
XXX& convert ( XXX &  p,
const Rep  
) const
inherited
Vect<UU>& convert ( Vect< UU > &  ,
const Rep P 
) const
inherited
Poly1Dom<Domain,Dense>::Type_t& convert ( typename Poly1Dom< Domain, Dense >::Type_t Val,
const typename Poly1Dom< Domain, Dense >::Rep P 
) const
inlineinherited
XXX& convert ( XXX &  Val,
const typename Poly1Dom< Domain, Dense >::Rep P 
) const
inlineinherited
Vect<UU>& convert ( Vect< UU > &  Val,
const typename Poly1Dom< Domain, Dense >::Rep P 
) const
inlineinherited
int isZero ( const Rep P) const
inlineinherited
int isOne ( const Rep P) const
inlineinherited
int isMOne ( const Rep P) const
inlineinherited
int areEqual ( const Rep P,
const Rep Q 
) const
inlineinherited
int areNEqual ( const Rep P,
const Rep Q 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Type_t & leadcoef ( Type_t c,
const Rep P 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Type_t & getEntry ( Type_t c,
const Degree i,
const Rep P 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Type_t setEntry ( Rep P,
const Type_t c,
const Degree i 
) const
inlineinherited
Degree & degree ( Degree d,
const Rep P 
) const
inlineinherited
Degree degree ( const Rep P) const
inlineinherited
Degree & val ( Degree d,
const Rep P 
) const
inlineinherited
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
Rep& setDegree ( Rep P) const
inlineinherited
Poly1Dom< Domain, Dense >::Type_t & eval ( Type_t pval,
const Rep P,
const Type_t val 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & diff ( Rep P,
const Rep Q 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & reverse ( Rep P,
const Rep Q 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & reversein ( Rep P) const
inlineinherited
std::istream & read ( std::istream &  i)
inherited
std::istream & read ( std::istream &  i,
Rep n 
) const
inherited
std::ostream & write ( std::ostream &  o) const
inherited
std::ostream & write ( std::ostream &  o,
const Rep n 
) const
inherited
Poly1Dom< Domain, Dense >::Rep & addin ( Rep res,
const Rep u 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & addin ( Rep res,
const Type_t val 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & add ( Rep res,
const Rep u,
const Rep v 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & add ( Rep res,
const Rep u,
const Type_t val 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & add ( Rep res,
const Type_t val,
const Rep v 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & subin ( Rep res,
const Rep u 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & subin ( Rep res,
const Type_t val 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & subin ( Rep R,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend 
) const
inlineprotectedinherited
Poly1Dom< Domain, Dense >::Rep & subin ( Rep R,
const RepIterator  Rbeg,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend 
) const
inlineprotectedinherited
Poly1Dom< Domain, Dense >::Rep & subin ( Rep R,
const RepIterator  Rbeg,
const RepIterator  Rend,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend 
) const
inlineprotectedinherited
Poly1Dom< Domain, Dense >::Rep & sub ( Rep res,
const Rep u,
const Rep v 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & sub ( Rep res,
const Rep u,
const Type_t val 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & sub ( Rep res,
const Type_t val,
const Rep v 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & negin ( Rep res) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & neg ( Rep res,
const Rep u 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & mulin ( Rep q,
const Rep a 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & mulin ( Rep q,
const Type_t a 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & mul ( Rep q,
const Type_t a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & mul ( Rep q,
const Rep a,
const Type_t b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & mul ( Rep q,
const Rep a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & mul ( Rep R,
const Rep P,
const Rep Q,
const Degree Val,
const Degree deg 
) const
inlineinherited
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
Poly1Dom< Domain, Dense >::Rep & stdmul ( Rep R,
const Rep P,
const Rep Q 
) const
inlineinherited
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
Poly1Dom< Domain, Dense >::Rep & karamul ( Rep R,
const Rep P,
const Rep Q 
) const
inlineinherited
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
Poly1Dom< Domain, Dense >::Rep & sqr ( Rep q,
const Rep a 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & sqr ( Rep R,
const RepIterator  Rbeg,
const RepIterator  Rend,
const Rep P,
const RepConstIterator  Pbeg,
const RepConstIterator  Pend 
) const
inlineprotectedinherited
Poly1Dom< Domain, Dense >::Rep & shiftin ( Rep R,
int  s 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & shift ( Rep R,
const Rep a,
int  s 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & divin ( Rep q,
const Rep a 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & divin ( Rep q,
const Type_t a 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & div ( Rep q,
const Rep a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & div ( Rep q,
const Type_t a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & div ( Rep q,
const Rep a,
const Type_t b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & modin ( Rep q,
const Rep a 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & modin ( Rep q,
const Type_t a 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & mod ( Rep q,
const Rep a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & mod ( Rep q,
const Type_t a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & mod ( Rep q,
const Rep a,
const Type_t b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & axpy ( Rep r,
const Rep a,
const Rep x,
const Rep y 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & axpy ( Rep r,
const Type_t a,
const Rep x,
const Rep y 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & axpyin ( Rep r,
const Rep a,
const Rep x 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & axpyin ( Rep r,
const Type_t a,
const Rep x 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & maxpy ( Rep r,
const Rep a,
const Rep b,
const Rep c 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & maxpy ( Rep r,
const Type_t a,
const Rep b,
const Rep c 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & maxpyin ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & maxpyin ( Rep r,
const Type_t a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & axmy ( Rep r,
const Rep a,
const Rep x,
const Rep y 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & axmy ( Rep r,
const Type_t a,
const Rep x,
const Rep y 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & axmyin ( Rep r,
const Rep a,
const Rep x 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & axmyin ( Rep r,
const Type_t a,
const Rep x 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & divmod ( Rep q,
Rep r,
const Rep a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & divmodin ( Rep q,
Rep r,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & pdivmod ( Rep q,
Rep r,
Type_t m,
const Rep a,
const Rep b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & pmod ( Rep r,
Type_t m,
const Rep a,
const Rep b 
) const
inlineinherited
Rep& pmod ( Rep r,
const Rep a,
const Rep b 
) const
inherited
Rep& pdiv ( Rep q,
Type_t m,
const Rep a,
const Rep b 
) const
inherited
Rep& pdiv ( Rep q,
const Rep a,
const Rep b 
) const
inherited
Poly1Dom< Domain, Dense >::Rep & gcd ( Rep D,
const Rep P,
const Rep Q 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & gcd ( Rep D,
Rep U,
Rep V,
const Rep P,
const Rep Q 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & lcm ( Rep D,
const Rep P,
const Rep Q 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & invmod ( Rep U,
const Rep P,
const Rep Q 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & invmodunit ( Rep U,
const Rep P,
const Rep Q 
) const
inlineinherited
void ratrecon ( Rep N,
Rep D,
const Rep P,
const Rep M,
const Degree dk 
) const
inherited
bool ratreconcheck ( Rep N,
Rep D,
const Rep P,
const Rep M,
const Degree dk 
) const
inherited
Poly1Dom< Domain, Dense >::Rep & pow ( Rep W,
const Rep P,
uint64_t  n 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & powmod ( Rep W,
const Rep P,
IntegerDom::Element  pwr,
const Rep U 
) const
inlineinherited
Rep& powmod ( Rep W,
const Rep P,
MyInt  pwr,
const Rep U 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & power_compose ( Rep W,
const Rep P,
uint64_t  b 
) const
inlineinherited
Poly1Dom< Domain, Dense >::Rep & cyclotomic ( Rep P,
uint64_t  n 
) const
inlineinherited
Rep& random ( RandIter &  g,
Rep r 
) const
inherited
Rep& random ( RandIter &  g,
Rep r,
uint64_t  s 
) const
inherited
Rep& random ( RandIter &  g,
Rep r,
Degree  s 
) const
inherited
Poly1Dom< Domain, Dense >::Rep & random ( GivRandom g,
Rep r,
Degree  s 
) const
inlineinherited
Rep& random ( RandIter &  g,
Rep r,
const Rep b 
) const
inherited
Poly1Dom<Domain,Dense>::Rep& random ( RandIter &  g,
Rep r 
) const
inlineinherited
Poly1Dom<Domain,Dense>::Rep& random ( RandIter &  g,
Rep r,
uint64_t  s 
) const
inlineinherited
Poly1Dom<Domain,Dense>::Rep& random ( RandIter &  g,
typename Poly1Dom< Domain, Dense >::Rep r,
Degree  d 
) const
inlineinherited
Poly1Dom<Domain,Dense>::Rep& random ( RandIter &  g,
Rep r,
const Rep b 
) const
inlineinherited
Rep& nonzerorandom ( RandIter &  g,
Rep r 
) const
inherited
Rep& nonzerorandom ( RandIter &  g,
Rep r,
uint64_t  s 
) const
inherited
Rep& nonzerorandom ( RandIter &  g,
Rep r,
Degree  s 
) const
inherited
Rep& nonzerorandom ( RandIter &  g,
Rep r,
const Rep b 
) const
inherited
Poly1Dom<Domain,Dense>::Rep& nonzerorandom ( RandIter &  g,
Rep r 
) const
inlineinherited
Poly1Dom<Domain,Dense>::Rep& nonzerorandom ( RandIter &  g,
Rep r,
uint64_t  s 
) const
inlineinherited
Poly1Dom<Domain,Dense>::Rep& nonzerorandom ( RandIter &  g,
Rep r,
Degree  d 
) const
inlineinherited
Poly1Dom<Domain,Dense>::Rep& nonzerorandom ( RandIter &  g,
Rep r,
const Rep b 
) const
inlineinherited
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.
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
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
int operator== ( const IntegerDom ) const
inlineinherited
int operator!= ( const IntegerDom ) const
inlineinherited
Rep& init ( Rep a) const
inlineinherited
Rep& init ( Rep a,
const Rep b 
) const
inlineinherited
Rep& read ( Rep a,
const int64_t  i 
) const
inlineinherited
Rep& read ( Rep a,
const uint64_t  i 
) const
inlineinherited
Rep& read ( Rep a,
const int32_t  i 
) const
inlineinherited
Rep& read ( Rep a,
const uint32_t  i 
) const
inlineinherited
std::istream& read ( std::istream &  i)
inlineinherited
std::istream& read ( std::istream &  i,
Rep n 
) const
inlineinherited
Rep& convert ( Rep a,
const Rep b 
) const
inlineinherited
XXX& convert ( XXX &  x,
const Rep a 
) const
inlineinherited
Rep& assign ( Rep a,
const Rep b 
) const
inlineinherited
const Rep& access ( const Rep a) const
inlineinherited
Rep& mul ( Rep r,
const Rep a,
const Rep b 
) const
inlinevirtualinherited
Rep& div ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited
Rep& mod ( Rep r,
const Rep a,
const Rep b 
) const
inlineinherited
Rep& add ( Rep r,
const Rep a,
const Rep b 
) const
inlinevirtualinherited
Rep& sub ( Rep r,
const Rep a,
const Rep b 
) const
inlinevirtualinherited
Rep& divmod ( Rep q,
Rep r,
const Rep a,
const Rep b 
) const
inlineinherited
Rep& divexact ( Rep q,
const Rep a,
const Rep b 
) const
inlineinherited
Rep& mulin ( Rep r,
const Rep a 
) const
inlinevirtualinherited
Rep& divin ( Rep r,
const Rep a 
) const
inlineinherited
Rep& modin ( Rep r,
const Rep a 
) const
inlineinherited
Rep& addin ( Rep r,
const Rep a 
) const
inlinevirtualinherited
Rep& subin ( Rep r,
const Rep a 
) const
inlinevirtualinherited
Rep& axpy ( Rep r,
const Rep a,
const Rep b,
const Rep c 
) const
inlinevirtualinherited
Rep& maxpy ( Rep r,
const Rep a,
const Rep b,
const Rep c 
) const
inlinevirtualinherited
Rep& maxpyin ( Rep r,
const Rep a,
const Rep b 
) const
inlinevirtualinherited
Rep& axmy ( Rep r,
const Rep a,
const Rep b,
const Rep c 
) const
inlinevirtualinherited
Rep& axpyin ( Rep r,
const Rep a,
const Rep b 
) const
inlinevirtualinherited
Rep& axmyin ( Rep r,
const Rep a,
const Rep b 
) const
inlinevirtualinherited
Rep& neg ( Rep r,
const Rep a 
) const
inlinevirtualinherited
Rep& negin ( Rep r) const
inlinevirtualinherited
Rep& gcd ( Rep g,
Rep u,
Rep v,
const Rep a,
const Rep b 
) const
inlineinherited
Rep& gcd ( Rep g,
const Rep a,
const Rep b 
) const
inlineinherited
Rep& lcm ( Rep l,
const Rep a,
const Rep b 
) const
inlineinherited
Rep& lcmin ( Rep l,
const Rep a 
) const
inlineinherited
Rep& inv ( Rep u,
const Rep a,
const Rep b 
) const
inlineinherited
Rep& invin ( Rep u,
const Rep b 
) const
inlineinherited
Rep& pow ( Rep r,
const Rep n,
const int64_t  l 
) const
inlineinherited
Rep& pow ( Rep r,
const Rep n,
const uint64_t  l 
) const
inlineinherited
Rep& pow ( Rep r,
const Rep n,
const int32_t  l 
) const
inlineinherited
Rep& pow ( Rep r,
const Rep n,
const uint32_t  l 
) const
inlineinherited
Rep& sqrt ( Rep s,
const Rep n 
) const
inlineinherited
Rep& sqrt ( Rep s,
Rep r,
const Rep n 
) const
inlineinherited
long logp ( const Rep a,
const Rep p 
) const
inlineinherited
Rep& powmod ( Rep r,
const Rep n,
const int64_t  e,
const Rep m 
) const
inlineinherited
Rep& powmod ( Rep r,
const Rep n,
const Rep e,
const Rep m 
) const
inlineinherited
unsigned long length ( const Rep a) const
inlineinherited
int sign ( const Rep a) const
inlineinherited
bool isZero ( const Rep a) const
inlinevirtualinherited
bool isOne ( const Rep a) const
inlinevirtualinherited
bool isMOne ( const Rep a) const
inlinevirtualinherited
bool areEqual ( const Rep a,
const Rep b 
) const
inlinevirtualinherited
bool areNEqual ( const Rep a,
const Rep b 
) const
inlineinherited
bool isgeq ( const Rep a,
const Rep b 
) const
inlineinherited
bool isgeq ( const int64_t  b,
const Rep a 
) const
inlineinherited
bool isgeq ( const Rep a,
const int64_t  b 
) const
inlineinherited
bool isleq ( const Rep a,
const Rep b 
) const
inlineinherited
bool isleq ( const int64_t  b,
const Rep a 
) const
inlineinherited
bool isleq ( const Rep a,
const int64_t  b 
) const
inlineinherited
bool isgt ( const Rep a,
const Rep b 
) const
inlineinherited
bool isgt ( const int64_t  b,
const Rep a 
) const
inlineinherited
bool isgt ( const Rep a,
const int64_t  b 
) const
inlineinherited
bool islt ( const Rep a,
const Rep b 
) const
inlineinherited
bool islt ( const int64_t  b,
const Rep a 
) const
inlineinherited
bool islt ( const Rep a,
const int64_t  b 
) const
inlineinherited
Rep& random ( MyRandIter &  ,
Rep r,
long  s = 1 
) const
inlineinherited
Rep& random ( MyRandIter &  ,
Rep r,
const Rep b 
) const
inlineinherited
Rep& nonzerorandom ( MyRandIter &  ,
Rep r,
long  s = 1 
) const
inlineinherited
Rep& nonzerorandom ( MyRandIter &  ,
Rep r,
const Rep b 
) const
inlineinherited
std::ostream& write ( std::ostream &  o) const
inlineinherited
std::ostream& write ( std::ostream &  o,
const Rep n 
) const
inlineinherited

Field Documentation

Domain _domain
protectedinherited
Indeter _x
protectedinherited
Rep zero
inherited
Rep one
inherited
Rep mOne
inherited
const Integer one
inherited
const Integer mOne
inherited
const Integer zero
inherited

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