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() );
175 algextensions[1] =
ext_entry( 0,
false );
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++ )
192 newalgext[i] = algextensions[i];
195 algextensions = newalgext;
204 return algextensions[-alpha.
level()].
mipo();
265 if (-alpha.
level() == 1)
274 char * newvarnames =
new char [-alpha.
level() + 1];
275 for ( i = 0; i < -alpha.
level(); i++ )
277 newvarnames[-alpha.
level()] = 0;
281 for ( i = 0; i < -alpha.
level(); i++ )
282 newalgext[i] = algextensions[i];
284 algextensions = newalgext;
293 char * newvarnames =
new char [-alpha.
level() + 2];
294 for ( i = 0; i <= -alpha.
level(); i++ )
296 newvarnames[-alpha.
level()+1] = 0;
300 for ( i = 0; i <= -alpha.
level(); i++ )
301 newalgext[i] = algextensions[i];
303 algextensions = newalgext;
static char * var_names_ext
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
const CanonicalForm CFMap CFMap int &both_non_zero int n
void prune1(const Variable &alpha)
InternalCF * copyObject()
static char default_name_ext
bool hasMipo(const Variable &alpha)
OSTREAM & operator<<(OSTREAM &os, const Variable &v)
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 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
char name(const Variable &v)
static ext_entry * algextensions
#define ASSERT(expression, message)
CanonicalForm getMipo(const Variable &alpha, const Variable &x)
Variable rootOf(const CanonicalForm &mipo, char name)
returns a symbolic root of polynomial with name name Use it to define algebraic variables ...