10 #include "normalize.hh"
11 #include "sigorderrules.hh"
20 * Implements a additive term, a set of mterms added together
26 map<Tree,mterm> fSig2MTerms; ///< mapping between signatures and corresponding mterms
29 aterm (); ///< create an empty aterm (equivalent to 0)
30 aterm (Tree t); ///< create a aterm from an additive exp
31 //aterm (const aterm& a); ///< create a copy of an aterm
33 const aterm& operator += (Tree t); ///< add in place an additive expression tree
34 const aterm& operator -= (Tree t); ///< add in place an additive expression tree
36 const aterm& operator += (const mterm& m); ///< add in place an mterm
37 const aterm& operator -= (const mterm& m); ///< add in place an mterm
38 Tree normalizedTree() const; ///< return the corresponding normalized expression tree
40 ostream& print(ostream& dst) const; ///< print a aterm m1 + m2 + m3 +...
41 mterm greatestDivisor() const; ///< return the greatest divisor of any two mterms
42 aterm factorize(const mterm& d); ///< reorganize the aterm by factorizing d
45 inline ostream& operator << (ostream& s, const aterm& a) { return a.print(s); }