26 {
"binary",
"trivial"},
31 {
"series",
"distributive"},
53 return "distributive";
70 while (is && isalnum(is.peek()))
78 return std::max(i1, i2);
std::ostringstream os
The output stream: the corresponding C++ snippet to compile.
Trivial, plus associativity of add and product.
identities meet(identities i1, identities i2)
Associative plus commutativity, and "idempotence" for add.
An expressionset can implement several different sets of identities on expressions.
Linear plus optimizations.
Linear plus distribution. Used for series identities.
#define BUILTIN_UNREACHABLE()
std::string to_string(identities i)
Wrapper around operator<<.
std::ostream & operator<<(std::ostream &o, type_t t)
Print a expression type.
std::istream & operator>>(std::istream &is, identities &i)
Read from string form.
Strictly obey to the syntax.
identities(ids_t id=deflt)
A mapping from strings to Values.