121 return std::max(i1, i2);
bool operator<(self_t that) const
bool is_associative() const
Whether associative.
An expressionset can implement several different sets of identities on expressions.
std::ostringstream os
The output stream: the corresponding C++ snippet to compile.
static type join(rat::identities i1, rat::identities i2)
Traditional plus distribution. Used for series identities.
Trivial, plus associativity of sum and product.
identities(ids_t id=deflt)
A structure that implements the computation of join(V1, V2).
std::ostream & operator<<(std::ostream &o, type_t t)
identities meet(identities i1, identities i2)
bool is_linear() const
Whether linear.
Associative plus commutativity, and "idempotence" for sum.
bool operator==(self_t that) const
std::istringstream is
The input stream: the specification to translate.
std::istream & operator>>(std::istream &is, identities &i)
Read from string form.
std::string to_string(identities i)
Wrapper around operator<<.
bool is_distributive() const
Whether distributive.
rat::identities identities(const expression &exp)
Bridge.
Strictly obey to the syntax.
bool operator!=(self_t that) const