2 #ifndef _EXPRESSION_TREE_HPP_ 3 #define _EXPRESSION_TREE_HPP_ 8 #include "ExprTreeNode.hpp" 179 template <
class ExpTreeConvert>
180 void fromVector(
const std::vector<ExpTreeConvert>& ringVec) {
183 for(
size_t i = 0; i < ringVec.size(); ++i) {
static ExpressionTree combineExpressionTrees(const ExpressionTree &left, const ExpressionTree &right, ExprTreeType type, ExprTreeVal *val=NULL)
Combine two expression trees using the supplied type and value as their common parent.
ExprTreeVal is the data element of a ExprTreeNode.
Definition: ExprTreeNode.hpp:57
ExpressionTree operator+(const ExpressionTree &rightTree)
Combine *this and the input rightTree into a new expression tree adjoining the two trees with additio...
An ExpressionTree encompasses various forms of data that can be expressed generically as a binary tre...
Definition: ExpressionTree.hpp:17
std::string toLaTeXString() const
Convert *this to a string in the format expected of LaTeX.
ExpressionTree operator/(const ExpressionTree &rightTree)
Combine *this and the input rightTree into a new expression tree adjoining the two trees with divison...
ExpressionTree operator^(const ExpressionTree &rightTree)
Combine *this and the input rightTree into a new expression tree adjoining the two trees with divison...
std::string toString() const
Convert *this to a generic string representation.
static ExprTreeNode * combineExprTreeNodes(ExprTreeNode *lNode, ExprTreeNode *rNode, ExprTreeType tType, ExprTreeVal *vVal=NULL)
Creates a new ExprTreeNode and combines two sub-trees (lNode and rNode) by adjoining them to the newl...
ExpressionTree & operator^=(const ExpressionTree &rightTree)
Add the input rightTree to the right side of *this, adjoining the two trees with division.
ExpressionTree operator*(const ExpressionTree &rightTree)
Combine *this and the input rightTree into a new expression tree adjoining the two trees with multipl...
ExpressionTree & operator-=(const ExpressionTree &rightTree)
Add the input rightTree to the right side of *this, adjoining the two trees with subtraction.
ExpressionTree & operator+=(const ExpressionTree &rightTree)
Add the input rightTree to the right side of *this, adjoining the two trees with addition.
void fromVector(const std::vector< ExpTreeConvert > &ringVec)
Fill this expression tree with the vector of BPASRing elements specified.
Definition: ExpressionTree.hpp:180
ExpressionTree operator-(const ExpressionTree &rightTree)
Combine *this and the input rightTree into a new expression tree adjoining the two trees with subtrac...
ExpressionTree & operator/=(const ExpressionTree &rightTree)
Add the input rightTree to the right side of *this, adjoining the two trees with division.
std::string toMapleString() const
Convert *this to a string in the format expected of a maple expression.
ExprTreeNode is a single node in the bianry tree of an ExpressionTree.
Definition: ExprTreeNode.hpp:76
ExpressionTree & operator=(const ExpressionTree &otherTree)
Copy assignment.
An interface defining conversion of a class to an ExpressionTree.
Definition: ExpressionTree.hpp:195
ExpressionTree & operator*=(const ExpressionTree &rightTree)
Add the input rightTree to the right side of *this, adjoining the two trees with multiplication.
ExpressionTree()
Construct the default, empty tree.
~ExpressionTree()
Destructor.