1 # ifndef realroot_polynomial_fcts_hpp
2 # define realroot_polynomial_fcts_hpp
8 # define TMPL template <class C, class Rep, class Ord>
9 # define VARIANT with<Rep,Ord>
10 # define Polynomial polynomial<C,VARIANT>
16 T
pow(
const T& a,
int i) {
21 if (a == T(1))
return a;
22 if (a == T(-1))
return (i % 2 == 0) ? T(1) : T(-1);
64 print(os, mp.rep(), Polynomial::Ring::vars());
return os;
67 template<
class OSTREAM,
class C,
class Rep,
class Ord>
inline OSTREAM&
69 print(os,mp.rep());
return os;
72 template<
class OSTREAM,
class C,
class Rep,
class Ord>
inline OSTREAM&
118 TMPL inline Seq<Polynomial>
134 template<
class Result,
class C,
class Rep,
class Ord,
class Parameters>
inline
137 eval(result, polynomial.rep(), parameters );
141 template<
class Result,
class C,
class Rep,
class Ord,
class Parameters>
inline
144 eval(result, polynomial.rep(), parameters, n );
148 template<
class Result,
class C,
class Rep,
class Ord,
class Parameters>
inline void
150 eval(result, polynomial.rep(), parameters );
166 template<
class C1,
class R1,
class C2,
class R2>
inline void
171 template<
class C1,
class R1,
class DOM,
class C2,
class R2>
inline void
173 assign(p.rep(),q.rep(), dmn);
177 template<
class POL1,
class C2,
class R2,
class V2>
189 face(r.rep(),p.rep(),v,f);
194 split(r.rep(),p.rep(),v);
199 #ifndef WITH_BINOMIAL_POWER
200 #define WITH_BINOMIAL_POWER
206 template <
class MP > MP
207 binomial(
typename MP::coeff_t coeff,
int i,
int d,
typename MP::coeff_t a) {
209 typename MP::coeff_t tmp;
210 for (
int k = 0 ; k <= d ; k++ )
213 polynomial += MP(
typename MP::monom_t( tmp , i, k ) );
217 #endif //WITH_BINOMIAL_POWER
223 shift( f.rep(), t, v );
229 shift( r.rep(), p.rep(), d, v );
248 #endif //realroot_polynomial_fcts_hpp
Sequence of terms with reference counter.
Definition: Seq.hpp:28
TMPL void reciprocal(Polynomial &f, const int &v)
Definition: polynomial_fcts.hpp:234
T pow(const T &a, int i)
Definition: binomials.hpp:12
TMPL Polynomial diff(const Polynomial &pol, int v)
Multivariate Polynomial Differentiation.
Definition: polynomial_fcts.hpp:99
dynamic_exp< E >::degree_t degree(const dynamic_exp< E > &t)
Definition: dynamicexp.hpp:191
void shift(IntervalData< RT, Poly > &ID, const RT &a)
Definition: contfrac_intervaldata.hpp:257
std::ostream & operator<<(std::ostream &os, const dynamic_exp< E > &t)
Definition: dynamicexp.hpp:199
Result eval(const Polynomial &polynomial, const Parameters ¶meters)
Multivariate Polynomial Evaluation.
Definition: polynomial_fcts.hpp:135
std::string to_string(int x)
to_string convert int to std::string In C++11, it should use std::to_string
Definition: assign.hpp:24
polynomial< COEFF, with< MonomialTensor > > Polynomial
Definition: solver_mv_cf.cpp:23
T as(const F &x)
Definition: assign.hpp:51
#define TMPL
Definition: polynomial_fcts.hpp:8
TMPL void face(Polynomial &r, const Polynomial &p, int v, int f)
Definition: polynomial_fcts.hpp:188
Definition: polynomial.hpp:37
ZZ size(const ZZ &z)
Definition: GMPXX.hpp:67
TMPL void split(Polynomial &r, Polynomial &p, int v)
Definition: polynomial_fcts.hpp:193
void print(OSTREAM &os, const Interval< T, r > &a)
Definition: Interval.hpp:135
Definition: binomials.hpp:68
#define Scalar
Definition: polynomial_operators.hpp:12
R & rep()
Definition: Seq.hpp:62
TMPL std::string as_string(const Polynomial &p)
Definition: polynomial_fcts.hpp:79
double C
Definition: solver_mv_fatarcs.cpp:16
TMPL Polynomial::Scalar content(const Polynomial &p)
Definition: polynomial_fcts.hpp:240
int Var(const T &v)
Definition: sign_variation.hpp:161
TMPL int nbvar(const Polynomial &mp)
Definition: polynomial_fcts.hpp:43
void assign(A &a, const B &b)
Generic definition of the assignement function.
Definition: assign.hpp:97
TMPL Polynomial homogenize(const Polynomial &p, const Polynomial &v)
Definition: polynomial_fcts.hpp:154
Definition: variables.hpp:65
Definition: polynomial.hpp:40
TMPL Seq< typename ring< C, Bernstein >::Polynomial > coefficients(const typename ring< C, Bernstein >::Polynomial &pol, int v)
Definition: polynomial_bernstein.hpp:74
T binomial(int n, int p)
Definition: binomials.hpp:52
#define assert(expr, msg)
Definition: shared_object.hpp:57