Givaro
|
#include <givinterp.h>
Public Types | |
typedef std::vector< typename Domain::Element > | Vect_t |
typedef Poly1Dom< Domain, Dense >::Element | Element |
typedef Domain | Domain_t |
typedef Domain::Element | Type_t |
typedef Poly1Dom< Domain, Dense > | Self_t |
typedef givvector< Type_t > | Storage_t |
typedef Storage_t | Rep |
typedef const Storage_t | constRep |
Public Member Functions | |
Interpolation (const Domain &d, const Indeter &X=Indeter()) | |
void | operator() (const typename Domain::Element &x, const typename Domain::Element &f) |
Element & | interpolator () |
Type_t | characteristic () const |
Integer & | characteristic (Integer &p) const |
int | operator== (const Poly1Dom< Domain, Dense > &BC) const |
int | operator!= (const Poly1Dom< Domain, Dense > &BC) const |
const Indeter & | getIndeter () const |
Indeter & | setIndeter (const Indeter &X) |
const Domain & | subdomain () const |
const Domain & | getdomain () const |
Domain & | setdomain (const Domain &D) |
const Domain & | subDomain () const |
const Domain & | getDomain () const |
Domain & | setDomain (const Domain &D) |
Rep & | init (Rep &a) const |
template<class XXX > | |
Rep & | init (Rep &p, const XXX &cste) const |
Rep & | init (Rep &r, const Degree deg) const |
template<class XXX > | |
Rep & | init (Rep &p, const Degree deg, const XXX &lcoeff) const |
Rep & | assign (Rep &p, const Degree deg, const Type_t &lcoeff) const |
Rep & | assign (Rep &p, const Type_t &cste) const |
Rep & | assign (Rep &p, const Rep &q) const |
Type_t & | convert (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_t & | convert (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 | areEqual (const Rep &P, const Rep &Q) const |
int | areNEqual (const Rep &P, const Rep &Q) const |
Type_t & | leadcoef (Type_t &c, const Rep &P) const |
Type_t & | getEntry (Type_t &c, const Degree &i, const Rep &P) const |
Type_t | setEntry (Rep &P, const Type_t &c, const Degree &i) const |
Degree & | degree (Degree &d, const Rep &P) const |
Degree | degree (const Rep &P) const |
Degree & | val (Degree &d, const Rep &P) const |
Rep & | setdegree (Rep &P) const |
Compute the degree of P. | |
Rep & | setDegree (Rep &P) const |
Type_t & | eval (Type_t &pval, const Rep &P, const Type_t &val) const |
Rep & | diff (Rep &P, const Rep &Q) const |
Rep & | reverse (Rep &, const Rep &) const |
Rep & | reversein (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 |
Rep & | addin (Rep &res, const Rep &u) const |
Rep & | addin (Rep &res, const Type_t &val) const |
Rep & | add (Rep &res, const Rep &u, const Rep &v) const |
Rep & | add (Rep &res, const Rep &u, const Type_t &val) const |
Rep & | add (Rep &res, const Type_t &val, const Rep &v) const |
Rep & | subin (Rep &res, const Rep &u) const |
Rep & | subin (Rep &res, const Type_t &val) const |
Rep & | sub (Rep &res, const Rep &u, const Rep &v) const |
Rep & | sub (Rep &res, const Rep &u, const Type_t &val) const |
Rep & | sub (Rep &res, const Type_t &val, const Rep &v) const |
Rep & | negin (Rep &res) const |
Rep & | neg (Rep &res, const Rep &u) const |
Rep & | mulin (Rep &q, const Rep &a) const |
Rep & | mulin (Rep &q, const Type_t &a) const |
Rep & | mul (Rep &q, const Type_t &a, const Rep &b) const |
Rep & | mul (Rep &q, const Rep &a, const Type_t &b) const |
Rep & | mul (Rep &q, const Rep &a, const Rep &b) const |
Rep & | mul (Rep &, const Rep &, const Rep &, const Degree &, const Degree &) const |
Rep & | stdmul (Rep &R, const Rep &P, const Rep &Q) const |
Rep & | karamul (Rep &R, const Rep &P, const Rep &Q) const |
Rep & | sqr (Rep &q, const Rep &a) const |
Rep & | shiftin (Rep &, int) const |
Rep & | shift (Rep &, const Rep &, int) const |
Rep & | divin (Rep &q, const Rep &a) const |
Rep & | divin (Rep &q, const Type_t &a) const |
Rep & | div (Rep &q, const Rep &a, const Rep &b) const |
Rep & | div (Rep &q, const Type_t &a, const Rep &b) const |
Rep & | div (Rep &q, const Rep &a, const Type_t &b) const |
Rep & | modin (Rep &q, const Rep &a) const |
Rep & | modin (Rep &q, const Type_t &a) const |
Rep & | mod (Rep &q, const Rep &a, const Rep &b) const |
Rep & | mod (Rep &q, const Type_t &a, const Rep &b) const |
Rep & | mod (Rep &q, const Rep &a, const Type_t &b) const |
Rep & | axpy (Rep &r, const Rep &a, const Rep &x, const Rep &y) const |
Rep & | axpy (Rep &r, const Type_t &a, const Rep &x, const Rep &y) const |
Rep & | axpyin (Rep &r, const Rep &a, const Rep &x) const |
Rep & | axpyin (Rep &r, const Type_t &a, const Rep &x) const |
Rep & | maxpy (Rep &r, const Rep &a, const Rep &b, const Rep &c) const |
Rep & | maxpy (Rep &r, const Type_t &a, const Rep &b, const Rep &c) const |
Rep & | maxpyin (Rep &r, const Rep &a, const Rep &b) const |
Rep & | maxpyin (Rep &r, const Type_t &a, const Rep &b) const |
Rep & | axmy (Rep &r, const Rep &a, const Rep &x, const Rep &y) const |
Rep & | axmy (Rep &r, const Type_t &a, const Rep &x, const Rep &y) const |
Rep & | axmyin (Rep &r, const Rep &a, const Rep &x) const |
Rep & | axmyin (Rep &r, const Type_t &a, const Rep &x) const |
Rep & | divmod (Rep &q, Rep &r, const Rep &a, const Rep &b) const |
Rep & | divmodin (Rep &q, Rep &r, const Rep &b) const |
Rep & | pdivmod (Rep &q, Rep &r, Type_t &m, const Rep &a, const Rep &b) const |
Rep & | pmod (Rep &r, Type_t &m, const Rep &a, const Rep &b) const |
Rep & | pmod (Rep &r, const Rep &a, const Rep &b) const |
Rep & | pdiv (Rep &q, Type_t &m, const Rep &a, const Rep &b) const |
Rep & | pdiv (Rep &q, const Rep &a, const Rep &b) const |
Rep & | gcd (Rep &D, const Rep &P, const Rep &Q) const |
Rep & | gcd (Rep &D, Rep &U, Rep &V, const Rep &P, const Rep &Q) const |
Rep & | lcm (Rep &D, const Rep &P, const Rep &Q) const |
Rep & | invmod (Rep &U, const Rep &P, const Rep &Q) const |
Rep & | invmodunit (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 |
Rep & | pow (Rep &W, const Rep &P, long n) const |
Rep & | powmod (Rep &W, const Rep &P, IntegerDom::Element pwr, const Rep &U) const |
template<class MyInt > | |
Rep & | powmod (Rep &W, const Rep &P, MyInt pwr, const Rep &U) const |
Rep & | power_compose (Rep &W, const Rep &P, long b) const |
Rep & | cyclotomic (Rep &P, long n) const |
template<class RandIter > | |
Rep & | random (RandIter &g, Rep &r) const |
template<class RandIter > | |
Rep & | random (RandIter &g, Rep &r, long s) const |
template<class RandIter > | |
Rep & | random (RandIter &g, Rep &r, Degree s) const |
Rep & | random (GivRandom &g, Rep &r, Degree s) const |
template<class RandIter > | |
Rep & | random (RandIter &g, Rep &r, const Rep &b) const |
template<class RandIter > | |
Poly1Dom< Domain, Dense >::Rep & | random (RandIter &g, typename Poly1Dom< Domain, Dense >::Rep &r, Degree d) const |
template<class RandIter > | |
Rep & | nonzerorandom (RandIter &g, Rep &r) const |
template<class RandIter > | |
Rep & | nonzerorandom (RandIter &g, Rep &r, long s) const |
template<class RandIter > | |
Rep & | nonzerorandom (RandIter &g, Rep &r, Degree s) const |
template<class RandIter > | |
Rep & | nonzerorandom (RandIter &g, Rep &r, const Rep &b) const |
size_t & | sqrfree (size_t &Nfact, Rep *Fact, const Rep &P) const |
Sqrfree decomposition. |
Data Fields | |
Rep | zero |
Rep | one |
Rep | mOne |
Protected Types | |
typedef Rep::iterator | RepIterator |
typedef Rep::const_iterator | RepConstIterator |
Protected Member Functions | |
Rep & | subin (Rep &R, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend) const |
Rep & | subin (Rep &R, const RepIterator Rbeg, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend) const |
Rep & | subin (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend) const |
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 |
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 |
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 |
Rep & | sqr (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend) const |
Rep & | stdsqr (Rep &R, const RepIterator Rbeg, const RepIterator Rend, const Rep &P, const RepConstIterator Pbeg, const RepConstIterator Pend, const Type_t &two) const |
Rep & | sqrrec (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 |
typedef std::vector< typename Domain::Element > Vect_t |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
protectedinherited |
|
protectedinherited |
|
inline |
|
inline |
|
inline |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
Reimplemented in TruncDom< Domain >.
Reimplemented in TruncDom< Domain >, TruncDom< Domain >, FixedTruncDom< Domain >, and FixedTruncDom< Domain >.
|
inherited |
Reimplemented in TruncDom< Domain >.
|
inherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
Reimplemented in TruncDom< Domain >.
Reimplemented in TruncDom< Domain >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
Reimplemented in TruncDom< Domain >.
Compute the degree of P.
P
constant !! P | polynomial |
Reimplemented in TruncDom< Domain >.
|
inlineinherited |
|
inherited |
Reimplemented in TruncDom< Domain >.
|
inherited |
Reimplemented in FixedTruncDom< Domain >, and TruncDom< Domain >.
|
inherited |
Reimplemented in FixedTruncDom< Domain >, and TruncDom< Domain >.
|
inherited |
Reimplemented in FixedTruncDom< Domain >, and TruncDom< Domain >.
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
Reimplemented in TruncDom< Domain >.
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
Reimplemented in TruncDom< Domain >.
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
Reimplemented in TruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
|
inlineinherited |
Reimplemented in TruncDom< Domain >.
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.
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. |
P | rep. |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
Reimplemented in TruncDom< Domain >.
|
inherited |
Reimplemented in TruncDom< Domain >.
|
inherited |
Reimplemented in TruncDom< Domain >.