|
Milo
0.1
Milo:EquationManipulationProgram
|
#include <milo.h>


Public Member Functions | |
| int | numTerms () const |
| void | setParent () |
| TermVector::iterator | begin () |
| TermVector::iterator | end () |
| void | add (double n) |
| void | add (ExpressionPtr old_expr) |
Constructor and Virtual Destructor | |
| Expression (EqnXMLParser &in, Node *parent=nullptr) | |
| Expression (Parser &p, Node *parent=nullptr) | |
| Expression (Term *term, Node *parent=nullptr) | |
| Expression (Node *factor, Node *parent=nullptr) | |
| ~Expression () | |
Virtual Public Member Functions | |
| std::string | toString () const |
| bool | isLeaf () const |
| Node * | findNode (int x, int y) |
| Node * | findNode (const Box &b) |
| int | numFactors () const |
| void | normalize () |
| bool | simplify () |
| const std::string & | getName () const |
| std::type_index | getType () const |
Public Member Functions inherited from Node | |
| void | calculateSize (UI::Graphics &gc) |
| void | out (XML::Stream &xml) |
| void | calculateOrigin (UI::Graphics &gc, int x, int y) |
| void | setUpDraw (UI::Graphics &gc) |
| void | draw (UI::Graphics &gc) const |
| void | setSelect (Select s) |
| Select | getSelect () const |
| void | setDrawParenthesis (bool fDrawPar) |
| bool | getDrawParenthesis () const |
| const Frame & | getFrame () const |
| Node * | first () |
| Node * | last () |
| Node * | getNextLeft () |
| Node * | getNextRight () |
| void | setParent (Node *parent) |
| Node * | getParent () const |
| int | getDepth () const |
| int | getNth () const |
| void | addNth (int n) |
| void | multNth (int n) |
| void | setNth (int n) |
| void | negative () |
| bool | getSign () const |
| Complex | getValue () const |
| std::shared_ptr< Node > | getSharedPtr () |
| Node (Node *parent=nullptr, bool fNeg=false, Select s=NONE) | |
| Node (EqnXMLParser &in, Node *parent) | |
| virtual | ~Node () |
| Abstract base class needs virtual desctructor. | |
| virtual bool | isFactor () const |
| virtual bool | less (NodePtr b) const |
Static Public Member Functions | |
| static Term * | getTerm (Equation &eqn, const std::string &text, Expression *parent=nullptr) |
| static Term * | getTerm (Parser &p, Expression *parent) |
| static Node * | parse (Parser &p, Node *parent) |
Static Public Member Functions inherited from Node | |
| static bool | createNodeByName (std::string name, Equation &eqn) |
Static Public Attributes | |
| static const std::string | name = "expression" |
| Name of this class. | |
| static const std::type_index | type = typeid(Expression) |
| Type of this class. | |
Static Public Attributes inherited from Node | |
| static const std::vector< std::string > | select_tags = { "NONE", "START", "END", "ALL" } |
Private Member Functions | |
| bool | add (Parser &p) |
Virtual Private Member Functions | |
| Node * | downLeft () |
| Node * | downRight () |
| Node * | getLeftSibling (Node *node) |
| Node * | getRightSibling (Node *node) |
| void | xml_out (XML::Stream &xml) const |
| Frame | calcSize (UI::Graphics &gc) |
| void | calcOrig (UI::Graphics &gc, int x, int y) |
| void | drawNode (UI::Graphics &gc) const |
| Complex | getNodeValue () const |
Private Attributes | |
| TermVector | terms |
| Expression owns this tree a list of terms. | |
| Box | m_internal |
| Bounding box of this node. | |
Friends | |
| class | FactorIterator |
Additional Inherited Members | |
Public Types inherited from Node | |
| enum | Select { NONE, START, END, ALL } |
Represents an expression as a vector of terms which are added together. Subtract happens by setting nodes to a negative sign. A vector of (ac,-b,2,i,3) is equivalent to ac-b+2+i3.
| Expression::Expression | ( | EqnXMLParser & | in, |
| Node * | parent = nullptr |
||
| ) |
XML constructor for Expression class. Read in XML for Expression class.
| in | XML input stream. |
| parent | Parent node object. |
Parser constructor for Expression class.
| p | Parser object. |
| parent | Parent node. |
Constructor for Expression class.
| term | Initialize term vector with this term. |
| parent | Parent expresion. |
Constructor for Expression class.
| factor | Initialize term vector with new term containing node. |
| parent | Parent expresion. |
|
inline |
Abstract base class needs virtual destructor.
| void Expression::add | ( | double | n | ) |
| void Expression::add | ( | ExpressionPtr | old_expr | ) |
Add terms from Expression object.
| old_expr | Expression object. |
|
private |
|
inline |
Get iterator to first term of Expression.
|
privatevirtual |
Calculate origin of this node offset from the point (x,y) given it.
| gc | Graphics context. |
| x | Horizontal origin. |
| y | Vertical origin. |
Implements Node.
|
privatevirtual |
Calculate size of this node in given graphics context.
| gc | Graphics context. |
Implements Node.
|
inlineprivatevirtual |
|
inlineprivatevirtual |
|
privatevirtual |
|
inline |
Get iterator to end of Expression.
|
virtual |
Rescursive search to find deepest node at point (x,y).
| x | horizontal coordinate. |
| y | vertical coordinate. |
Reimplemented from Node.
Recursive function to return first node from a top to bottom search whose frame is inside Box b.
| b | Bounding box. |
Reimplemented from Node.
Left sibiling of given node.
| node | Reference node. |
Reimplemented from Node.
|
inlinevirtual |
|
privatevirtual |
Right sibiling of given node.
| node | Reference node. |
Reimplemented from Node.
|
static |
|
static |
|
inlinevirtual |
|
inlinevirtual |
Override for isLeaf virtual function.
Reimplemented from Node.
|
virtual |
Refactor subtree to a standard form. For Expression class, reorder terms in alphabetical order and combine common terms. ab+3ba normalized to 4ab.
Reimplemented from Node.
|
virtual |
|
inline |
Get number of terms.
Helper static function to parse Expression.
| p | Parser object. |
| parent | Parent expression. |
|
inline |
Set parent of all terms to this expression.
|
virtual |
Attempt to algebraically simplify the subtree this node is the root.
Reimplemented from Node.
|
virtual |
Get representation of expression as string. String are terms separated by '+' or '-'.
Implements Node.
|
privatevirtual |
1.8.11