domain = domain::real;
}
+// possymbol
+
+possymbol::possymbol()
+{
+ domain = domain::positive;
+}
+
//////////
// other constructors
//////////
realsymbol::realsymbol(const std::string & initname, const std::string & texname, unsigned rt, tinfo_t rtt, unsigned domain)
: symbol(initname, texname, rt, rtt, domain) { }
+// possymbol
+
+possymbol::possymbol(const std::string & initname, unsigned domain)
+ : symbol(initname, domain) { }
+
+possymbol::possymbol(const std::string & initname, const std::string & texname, unsigned domain)
+ : symbol(initname, texname, domain) { }
+
+possymbol::possymbol(const std::string & initname, unsigned rt, tinfo_t rtt, unsigned domain)
+ : symbol(initname, rt, rtt, domain) { }
+
+possymbol::possymbol(const std::string & initname, const std::string & texname, unsigned rt, tinfo_t rtt, unsigned domain)
+ : symbol(initname, texname, rt, rtt, domain) { }
+
//////////
// archiving
//////////
inf == info_flags::rational_function)
return true;
if (inf == info_flags::real)
- return domain == domain::real;
+ return domain==domain::real || domain==domain::positive;
+ if (inf == info_flags::positive || inf == info_flags::nonnegative)
+ return domain == domain::positive;
else
return inherited::info(inf);
}
ex symbol::real_part() const
{
- if (domain == domain::real)
+ if (domain==domain::real || domain==domain::positive)
return *this;
return real_part_function(*this).hold();
}
ex symbol::imag_part() const
{
- if (domain == domain::real)
+ if (domain==domain::real || domain==domain::positive)
return 0;
return imag_part_function(*this).hold();
}