case info_flags::integer_polynomial:
case info_flags::cinteger_polynomial:
case info_flags::rational_polynomial:
+ case info_flags::real:
+ case info_flags::rational:
+ case info_flags::integer:
+ case info_flags::crational:
+ case info_flags::cinteger:
+ case info_flags::positive:
+ case info_flags::nonnegative:
+ case info_flags::posint:
+ case info_flags::nonnegint:
+ case info_flags::even:
case info_flags::crational_polynomial:
case info_flags::rational_function: {
epvector::const_iterator i = seq.begin(), end = seq.end();
return false;
++i;
}
+ if (overall_coeff.is_zero() && (inf == info_flags::positive || inf == info_flags::posint))
+ return true;
return overall_coeff.info(inf);
}
case info_flags::algebraic: {
class info_flags {
public:
enum {
- // answered by class numeric and symbols/constants in particular domains
+ // answered by class numeric, add, mul and symbols/constants in particular domains
numeric,
real,
rational,
case info_flags::integer_polynomial:
case info_flags::cinteger_polynomial:
case info_flags::rational_polynomial:
+ case info_flags::real:
+ case info_flags::rational:
+ case info_flags::integer:
+ case info_flags::crational:
+ case info_flags::cinteger:
+ case info_flags::positive:
+ case info_flags::nonnegative:
+ case info_flags::posint:
+ case info_flags::nonnegint:
+ case info_flags::even:
case info_flags::crational_polynomial:
case info_flags::rational_function: {
epvector::const_iterator i = seq.begin(), end = seq.end();
return false;
++i;
}
+ if (overall_coeff.is_equal(*_num1_p) && inf == info_flags::even)
+ return true;
return overall_coeff.info(inf);
}
case info_flags::algebraic: {
basis.info(inf);
case info_flags::expanded:
return (flags & status_flags::expanded);
+ case info_flags::positive:
+ return basis.info(info_flags::positive) && exponent.info(info_flags::real);
case info_flags::has_indices: {
if (flags & status_flags::has_indices)
return true;