Givaro
|
Newton. More...
#include <givinterpgeom.h>
Public Types | |
typedef std::vector< typename Domain::Element > | Vect_t |
typedef TruncDom< Domain > ::Polynomial_t | Polynomial |
typedef Polynomial | Element |
typedef TruncDom< Domain >::Element | Truncated |
typedef TruncDom< Domain >::Type_t | Type_t |
typedef TruncDom< Domain > | Self_t |
typedef Poly1Dom< Domain, Dense > | Father_t |
typedef Domain | Domain_t |
typedef Father_t::Storage_t | Polynomial_t |
typedef std::pair < Polynomial_t, Degree > | Storage_t |
typedef Storage_t | Rep |
typedef const Storage_t | constRep |
Public Member Functions | |
NewtonInterpGeom (const Domain &d, const Indeter &X=Indeter()) | |
template<typename BlackBox > | |
void | initialize (const BlackBox &bb) |
template<typename BlackBox > | |
void | operator() (const BlackBox &bb) |
Polynomial & | Newton (Polynomial &inter) |
Polynomial & | interpolator (Polynomial &inter) |
const Father_t & | getpoldomain () const |
Rep & | init (Rep &p) const |
template<class XXX > | |
Rep & | init (Rep &p, const XXX &cste) const |
template<class XXX > | |
Rep & | init (Rep &p, const Degree deg, const XXX &lcoeff) const |
Rep & | init (Rep &r, const Degree deg) const |
Polynomial_t & | convert (Polynomial_t &r, const Rep &P) const |
template<class XXX > | |
XXX & | convert (XXX &r, const Rep &P) const |
Type_t & | convert (Type_t &, 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 |
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 |
Rep & | assign (Rep &p, const Polynomial_t &r) const |
Rep & | assign (Rep &p, const Polynomial_t &r, const Degree v, const Degree d) const |
Rep & | mulin (Rep &p, const Degree &s) const |
Rep & | mulin (Rep &P, const Rep &Q) const |
Rep & | mulin (Rep &r, const Rep &v, const Degree &Val, const Degree °) const |
Rep & | mulin (Rep &q, const Type_t &a) const |
Rep & | divin (Rep &p, const Degree &s) const |
Rep & | divin (Rep &q, const Rep &a) const |
Rep & | divin (Rep &q, const Type_t &a) const |
Rep & | setdegree (Rep &P) const |
Compute the degree of P. | |
Rep & | setval (Rep &P) const |
Degree & | degree (Degree &d, const Rep &P) const |
Degree | degree (const Rep &P) const |
Degree & | val (Degree &d, const 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 |
Rep & | shift (Rep &p, const Degree &s) const |
Rep & | shift (Rep &, const Rep &, int) const |
Rep & | truncin (Rep &p, const Degree &v, const Degree &d) const |
Rep & | trunc (Rep &p, const Rep &R, const Degree &v, const Degree &d) 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 & | expand (Rep &P, const Degree &d) const |
Rep & | addin (Rep &R, const Rep &P) const |
Rep & | addin (Rep &R, const Rep &P, const Degree &v, const Degree &d) 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 Rep &v, const Degree &Val, const Degree °) 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 & | neg (Rep &R, const Rep &P) const |
Rep & | negin (Rep &R) const |
Rep & | sub (Rep &res, const Rep &u, const Rep &v) const |
Rep & | sub (Rep &R, const Rep &P, const Rep &Q, const Degree &v, const Degree &d) 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 & | subin (Rep &R, const Rep &P) const |
Rep & | subin (Rep &R, const Rep &P, const Degree &v, const Degree &d) const |
Rep & | subin (Rep &res, const Type_t &val) const |
Rep & | mul (Rep &res, const Rep &u, const Rep &v) const |
Rep & | mul (Rep &r, const Rep &u, const Rep &v, const Degree &Val, const Degree °) 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 & | axpy (Rep &r, const Rep &a, const Rep &x, const Rep &y) const |
Rep & | axpy (Rep &r, const Rep &a, const Rep &x, const Rep &y, const Degree &Val, const Degree °) 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 Rep &a, const Rep &x, const Degree &Val, const Degree °) const |
Rep & | axpyin (Rep &r, const Type_t &a, const Rep &x) const |
Rep & | axmy (Rep &r, const Rep &a, const Rep &x, const Rep &y) const |
Rep & | axmy (Rep &r, const Rep &a, const Rep &x, const Rep &y, const Degree &Val, const Degree °) 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 Rep &a, const Rep &x, const Degree &Val, const Degree °) const |
Rep & | axmyin (Rep &r, const Type_t &a, const Rep &x) const |
Rep & | maxpy (Rep &r, const Rep &a, const Rep &x, const Rep &y) const |
Rep & | maxpy (Rep &r, const Rep &a, const Rep &x, const Rep &y, const Degree &Val, const Degree °) 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 &x) const |
Rep & | maxpyin (Rep &r, const Rep &a, const Rep &x, const Degree &Val, const Degree °) const |
Rep & | maxpyin (Rep &r, const Type_t &a, const Rep &b) 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 |
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) |
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 |
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 |
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 & | 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 & | 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 |
size_t & | sqrfree (size_t &Nfact, Rep *Fact, const Rep &P) const |
Sqrfree decomposition. |
Data Fields | |
Storage_t | zero |
Storage_t | one |
Storage_t | 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 |
Newton.
typedef std::vector< typename Domain::Element > Vect_t |
typedef TruncDom<Domain>::Polynomial_t Polynomial |
typedef Polynomial Element |
Reimplemented from TruncDom< Domain >.
Reimplemented from TruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inherited |
Reimplemented in FixedTruncDom< Domain >.
|
inherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
protectedinherited |
|
protectedinherited |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
|
inherited |
|
inlineinherited |
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >, and FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented in FixedTruncDom< Domain >.
Compute the degree of P.
P
constant !! P | polynomial |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented in FixedTruncDom< Domain >.
Reimplemented from Poly1Dom< Domain, Dense >.
|
inlineinherited |
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
Reimplemented from Poly1Dom< Domain, Dense >.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
Reimplemented in FixedTruncDom< Domain >.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
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 |
|
inherited |
Reimplemented from Poly1Dom< Domain, Dense >.
|
inherited |
Reimplemented from Poly1Dom< Domain, Dense >.
|
inherited |
Reimplemented from Poly1Dom< Domain, Dense >.
|
protectedinherited |
|
protectedinherited |