49 ASSERT( flag,
"illegal level" );
81 while ( i < n &&
var_names[i] != name ) i++;
85 ASSERT( name !=
'@',
"illegal variable name" );
86 char * newvarnames =
new char [n+2];
87 for ( i = 0; i < n; i++ )
89 newvarnames[n] =
name;
104 char * newvarnames =
new char [l+2];
106 for ( i = 0; i < n; i++ )
108 for ( i = n; i <
l; i++ )
109 newvarnames[i] =
'@';
110 newvarnames[
l] =
name;
111 newvarnames[l+1] = 0;
126 else if ( _level < 0 && -_level < (
int)strlen(
var_names_ext ) )
143 if ( (vn == 0) || ((int)strlen( vn ) <=
l) )
144 os << dn <<
"_" <<
l;
145 else if ( vn[l] ==
'@' )
146 os << dn <<
"_" <<
l;
158 result +=
i.coeff() *
power( alpha,
i.exp() );
181 char * newvarnames =
new char [n+2];
182 for ( i = 0; i < n; i++ )
184 newvarnames[n] =
name;
185 newvarnames[n+1] = 0;
191 for ( i = 0; i < n; i++ )
264 int last_var=-alpha.
level();
267 ASSERT (n+1 >= last_var,
"wrong variable");
277 char * newvarnames =
new char [last_var+1];
278 for ( i = 0; i < last_var; i++ )
280 newvarnames[last_var] = 0;
284 for ( i = 0; i < last_var; i++ )
296 char * newvarnames =
new char [-alpha.
level() + 2];
297 for ( i = 0; i <= -alpha.
level(); i++ )
299 newvarnames[-alpha.
level()+1] = 0;
303 for ( i = 0; i <= -alpha.
level(); i++ )
friend Variable rootOf(const CanonicalForm &, char name)
returns a symbolic root of polynomial with name name.
ext_entry & operator=(const ext_entry &e)
ext_entry(const ext_entry &e)
void setReduce(const Variable &alpha, bool reduce)
factory's class for variables
friend OSTREAM & operator<<(OSTREAM &os, const Variable &v)
void prune1(const Variable &alpha)
InternalCF * copyObject()
STATIC_VAR char * var_names_ext
bool hasMipo(const Variable &alpha)
void setmipo(InternalPoly *p)
Interface to generate InternalCF's over various domains from intrinsic types or mpz_t's.
bool getReduce(const Variable &alpha)
void setMipo(const Variable &alpha, const CanonicalForm &mipo)
factory's class for polynomials
Iterators for CanonicalForm's.
STATIC_VAR char * var_names
static CanonicalForm conv2mipo(const CanonicalForm &mipo, const Variable &alpha)
void prune(Variable &alpha)
ext_entry(InternalPoly *mipoly, bool reduce)
class to iterate through CanonicalForm's
InternalPoly * getInternalMipo(const Variable &alpha)
Factory's internal polynomials.
const Variable & v
< [in] a sqrfree bivariate poly
STATIC_VAR ext_entry * algextensions
STATIC_VAR char default_name
STATIC_VAR char default_name_ext
#define ASSERT(expression, message)
CanonicalForm getMipo(const Variable &alpha, const Variable &x)