FAUST compiler  0.9.9.6b8
aterm.hh
Go to the documentation of this file.
00001 #ifndef __ATERM__
00002 #define __ATERM__
00003 
00004 #include <stdio.h>
00005 #include <assert.h>
00006 #include "tlib.hh"
00007 #include "signals.hh"
00008 #include "sigprint.hh"
00009 #include "simplify.hh"
00010 #include "normalize.hh"
00011 #include "sigorderrules.hh"
00012 #include <map>
00013 #include <list>
00014 
00015 #include "mterm.hh"
00016 
00017 using namespace std;
00018 
00023 class aterm
00024 {
00025 
00026     map<Tree,mterm> fSig2MTerms;                
00027 
00028  public:
00029     aterm ();                                   
00030     aterm (Tree t);                             
00031     //aterm (const aterm& a);                       ///< create a copy of an aterm
00032 
00033     const aterm& operator += (Tree t);          
00034     const aterm& operator -= (Tree t);          
00035     
00036     const aterm& operator += (const mterm& m);  
00037     const aterm& operator -= (const mterm& m);  
00038     Tree normalizedTree() const;                
00039     
00040     ostream& print(ostream& dst) const;         
00041     mterm greatestDivisor() const;              
00042     aterm factorize(const mterm& d);            
00043 };
00044 
00045 inline ostream& operator << (ostream& s, const aterm& a) { return a.print(s); }
00046 
00047 
00048 #endif