16 #include <type_traits> 
   24     template<
typename Pol>
 
   29     template<
typename Pol>
 
   34     template<
typename Pol>
 
   71                 CARL_LOG_ERROR(
"carl.maplestream", 
"Bitvectors are not supported by Maple.");
 
   78                 CARL_LOG_ERROR(
"carl.maplestream", 
"Uninterpreted equalities are not supported by Maple.");
 
   82                 CARL_LOG_ERROR(
"carl.maplestream", 
"Printing exists or forall is not implemented yet.");
 
   91     void write(
const Monomial::Content::value_type& m) {
 
   92         if (m.second == 0) *
this << 
"1";
 
   93         else if (m.second == 1) *
this << m.first;
 
   94         else *
this << m.first << 
"^" << m.second;
 
  104     template<
typename Coeff>
 
  109             for (
auto it = mp.
rbegin(); it != mp.
rend(); ++it) {
 
  110                 if (it != mp.
rbegin()) *
this << 
" + ";
 
  127     template<
typename Coeff>
 
  139     template<
typename Coeff>
 
  143             for (std::size_t i = 0; i < up.
coefficients().size(); ++i) {
 
  144                 if (i > 0) *
this << 
" + ";
 
  147                 if (
exp == 0) *
this << 
" " << coeff;
 
  163             default:                                *
this << 
"?"; 
break;
 
  176     template<
typename Pol>
 
  183         write(
static_cast<const std::decay_t<T>&
>(t));
 
#define CARL_LOG_ERROR(channel, msg)
std::vector< Formula< Poly > > Formulas
Interval< Number > exp(const Interval< Number > &i)
bool is_zero(const Interval< Number > &i)
Check if this interval is a point-interval containing 0.
VariableType
Several types of variables are supported.
auto stream_joined(const std::string &glue, const T &v)
Allows to easily output some container with all elements separated by some string.
bool is_one(const Interval< Number > &i)
Check if this interval is a point-interval containing 1.
std::ostream & operator<<(std::ostream &os, const MapleStream &ms)
A Variable represents an algebraic variable that can be used throughout carl.
std::string name() const
Retrieves the name of the variable.
This class represents a univariate polynomial with coefficients of an arbitrary type.
bool is_constant() const
Checks whether the polynomial is constant with respect to the main variable.
const std::vector< Coefficient > & coefficients() const &
Retrieves the coefficients defining this polynomial.
Variable main_var() const
Retrieves the main variable of this polynomial.
NumberType constant_part() const
Returns the constant part of this polynomial.
The general-purpose multivariate polynomial class.
const Term< Coeff > & lterm() const
The leading term.
std::size_t nr_terms() const
Calculate the number of terms.
The general-purpose monomials.
std::shared_ptr< const Monomial > Arg
const Content & exponents() const
Coefficient & coeff()
Get the coefficient.
Monomial::Arg & monomial()
Get the monomial.
Represent a polynomial (in)equality against zero.
Relation relation() const
Represent an SMT formula, which can be an atom for some background theory or a boolean combination of...
const VariableAssignment< Pol > & variable_assignment() const
const Formula & subformula() const
const VariableComparison< Pol > & variable_comparison() const
carl::Variable::Arg boolean() const
const Constraint< Pol > & constraint() const
const Formulas< Pol > & subformulas() const
void write(const Monomial::Content::value_type &m)
void write(const VariableType &vt)
MapleStream & operator<<(std::ostream &(*os)(std::ostream &))
void write(const Monomial::Arg &m)
void write(const UnivariatePolynomial< Coeff > &up)
void write(const Formula< Pol > &f)
void write(const Monomial &m)
void write(const Formulas< Pol > &f, const std::string &op)
std::stringstream mStream
void write(const Constraint< Pol > &c)
void write(const MultivariatePolynomial< Coeff > &mp)
void write(const Variable &v)
void assertFormula(const Formula< Pol > &formula)
void write(const Term< Coeff > &t)
MapleStream & operator<<(T &&t)