7 #ifndef realroot_dynamic_exp_hpp
8 #define realroot_dynamic_exp_hpp
54 for(
int i=0;i<s;i++)
_tab[i]=(exponent_t)0;
59 assert(s <=
sizeof(t)/
sizeof(E));
61 for(
int i=0;i<s;i++)
_tab[i]=t[i];
95 if (&A ==
this) {
return *
this; }
122 else if(
_tab==NULL) {
139 for(size_type i =0;i<
_size;i++)
_tab[i]=_tmp[i];
140 for(size_type i =_size;i<s;i++)
_tab[i]=0;
154 self_t&
set_expt(size_type i, value_type d);
158 for(i=0;i<minsize;i++)
162 for(;i<(int)A.
_size;i++)
163 if(A.
_tab[i])
return 0;
167 for(;i<(int)B.
_size;i++)
168 if(B.
_tab[i])
return 0;
190 template<
class E>
inline
199 std::ostream & operator << (std::ostream & os, const dynamic_exp<E> & t) {
205 if(first) first=
false;
else os <<
"*";
207 }
else if (t[i] == 0);
209 if(first) first=
false;
else os <<
"*";
210 os <<
"X"<< i <<
'^' <<(int)(t[i]);
264 while(r>=0 && (A[r]==0)) r--;
291 void add (dynamic_exp<E> & r,
292 const dynamic_exp<E> & A,
const dynamic_exp<E> & B);
305 #endif // realroot_dynamic_exp_hpp
E value_type
Definition: dynamicexp.hpp:27
int degree_t
Definition: dynamicexp.hpp:35
self_t & set_expt(size_type i, value_type d)
Definition: dynamicexp.hpp:217
reverse_iterator rbegin()
Definition: dynamicexp.hpp:82
int lvar(const dynamic_exp< E > &A)
Definition: dynamicexp.hpp:262
dynamic_exp< E >::degree_t degree(const dynamic_exp< E > &t)
Definition: dynamicexp.hpp:191
size_type _size
Definition: dynamicexp.hpp:179
friend bool operator!=(const dynamic_exp &A, const dynamic_exp &B)
Definition: dynamicexp.hpp:175
void clear()
Definition: dynamicexp.hpp:185
iterator begin()
Definition: dynamicexp.hpp:77
const_iterator begin() const
Definition: dynamicexp.hpp:78
TMPL int N(const MONOMIAL &v)
Definition: monomial_glue.hpp:60
const_iterator end() const
Definition: dynamicexp.hpp:80
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: dynamicexp.hpp:31
iterator const_iterator
Definition: dynamicexp.hpp:30
const_reverse_iterator rbegin() const
Definition: dynamicexp.hpp:83
friend bool operator==(const dynamic_exp &A, const dynamic_exp &B)
Definition: dynamicexp.hpp:156
void reserve(size_type s)
Definition: dynamicexp.hpp:115
void resize(size_type s)
Definition: dynamicexp.hpp:132
Dynamic exponent.
Definition: dynamicexp.hpp:25
#define min(a, b)
Definition: parser_def.c:475
reverse_iterator rend()
Definition: dynamicexp.hpp:84
static E * alloc(unsigned int N)
Definition: dynamicexp.hpp:182
dynamic_exp< E > self_t
Definition: dynamicexp.hpp:36
void init(int s)
Definition: dynamicexp.hpp:147
size_type size() const
Definition: dynamicexp.hpp:75
~dynamic_exp()
Definition: dynamicexp.hpp:73
void add(V &a, const W &b)
Addition of two vectors.
Definition: array.hpp:154
self_t & operator=(const self_t &A)
Definition: dynamicexp.hpp:94
unsigned int size_type
Definition: dynamicexp.hpp:28
const_reverse_iterator rend() const
Definition: dynamicexp.hpp:85
dynamic_exp()
Definition: dynamicexp.hpp:39
dynamic_exp(int s, E *t)
Definition: dynamicexp.hpp:58
dynamic_exp(const dynamic_exp< E > &d)
Definition: dynamicexp.hpp:40
E * iterator
Definition: dynamicexp.hpp:29
E operator[](size_type i) const
Definition: dynamicexp.hpp:87
iterator end()
Definition: dynamicexp.hpp:79
E exponent_t
Definition: dynamicexp.hpp:34
Interval< T, r > max(const Interval< T, r > &a, const Interval< T, r > &b)
Definition: Interval_fcts.hpp:135
dynamic_exp(int s)
Definition: dynamicexp.hpp:51
void add(dynamic_exp< E > &r, const dynamic_exp< E > &A, const dynamic_exp< E > &B)
Definition: dynamicexp.hpp:295
std::reverse_iterator< iterator > reverse_iterator
Definition: dynamicexp.hpp:32
#define assert(expr, msg)
Definition: shared_object.hpp:57
void erase(dynamic_exp< E > &A)
Definition: dynamicexp.hpp:269
E * _tab
Definition: dynamicexp.hpp:180