16 template<
char X,
class E=
char>
68 memset(
tab,0,
sizeof(E)*s);
80 return memcmp(A.
tab,B.
tab,
sizeof(E)*A.
size) == 0;
90 template<
char X,
class E>
inline
94 for (
int i = 0;
i < t.
size; ++
i) d+=t[
i];
98 template<
char X,
class E>
99 std::ostream & operator << (std::ostream & os, const dynamicexp<X,E> & t) {
100 for (
int i = 0;
i < t.size; ++
i)
104 else if (t.tab[i] == 0);
106 os <<
"*"<<X << i <<
'^' <<(int)(t[i]);
125 template<
char X,
class E>
129 memcpy(A.
tab,tab,
sizeof(E)*s);
139 template<
char X,
class E>
142 else if (i < A.
size-1)
144 else if (i >= A.
size && d) {
145 E * aux = (E *)
malloc(
sizeof(E)*(i+1));
146 memset(aux,0,
sizeof(E)*(i+1));
147 memcpy(aux,A.
tab,
sizeof(E)*A.
size);
157 else if (i >= A.
size && !d);
162 while (j >= 0 && !A.
tab[j]) --
j;
169 E * aux = (E *)
malloc(
sizeof(E)*(j+1));
170 memcpy(aux,A.
tab,
sizeof(E)*(j+1));
177 template<
char X,
class E>
182 template<
char X,
class E>
190 template<
char X,
class E>
193 for (
int i = 0;
i < B.
size; ++
i)
197 memcpy(tab,B.
tab,
sizeof(E)*B.
size);
203 memcpy(aux,B.
tab,
sizeof(E)*B.
size);
204 for (
int i = 0;
i < size; ++
i)
212 template<
char X,
class E>
226 for (; i < B.
size; ++
i)
232 for (; i < A.
size; ++
i)
238 #endif // //_dynamicexp_H_
~dynamicexp()
Definition: dynamicexp.hpp:39
E * tab
Definition: dynamicexp.hpp:87
#define max(a, b)
Definition: alp_f2c.H:167
dynamicexp(const dynamicexp< X, E > &d)
Definition: dynamicexp.hpp:25
int lvar(const dynamicexp< X, E > &A)
Definition: dynamicexp.hpp:178
void reserve(int s)
Definition: dynamicexp.hpp:59
Dynamic exponent.
Definition: dynamicexp.hpp:17
void build(dynamicexp< X, E > &A, int s, E *tab)
Definition: dynamicexp.hpp:126
int size
Definition: dynamicexp.hpp:86
void add(dynamicexp< X, E > &r, const dynamicexp< X, E > &A, const dynamicexp< X, E > &B)
Definition: dynamicexp.hpp:213
if(!(yy_init))
Definition: lex.mpoly.c:689
MSKconetypee MSKrealt MSKint32t MSKint32t j
Definition: mosek.h:2421
dynamicexp(int s)
Definition: dynamicexp.hpp:37
self_t & operator+=(const self_t &B)
Definition: dynamicexp.hpp:191
friend bool operator!=(const dynamicexp &A, const dynamicexp &B)
Definition: dynamicexp.hpp:83
void SDegree(dynamicexp< X, E > &A, int i, int d)
Definition: dynamicexp.hpp:140
dynamicexp()
Definition: dynamicexp.hpp:24
dynamicexp< X, E >::degree_t Degree(const dynamicexp< X, E > &t)
Definition: dynamicexp.hpp:91
self_t setExponent(int i, int d)
Definition: dynamicexp.hpp:72
MSKint32t MSKint32t MSKint32t i
Definition: mosek.h:2278
dynamicexp(int s, E *t)
Definition: dynamicexp.hpp:33
MSKrescodee r
Definition: mosek.h:2321
E operator[](int i) const
Definition: dynamicexp.hpp:41
E exponent_t
Definition: dynamicexp.hpp:19
dynamicexp & operator=(const dynamicexp &A)
Definition: dynamicexp.hpp:46
dynamicexp< X, E > self_t
Definition: dynamicexp.hpp:21
int degree_t
Definition: dynamicexp.hpp:20
friend bool operator==(const dynamicexp &A, const dynamicexp &B)
Definition: dynamicexp.hpp:78
void erase(dynamicexp< X, E > &A)
Definition: dynamicexp.hpp:183