Milo  0.1
Milo:EquationManipulationProgram
Static Public Member Functions | Static Public Attributes | Private Attributes | List of all members
Differential Class Reference

#include <nodes.h>

Inheritance diagram for Differential:
Inheritance graph
[legend]
Collaboration diagram for Differential:
Collaboration graph
[legend]

Public Member Functions

Constructor and Virtual Destructor
 Differential (Parser &p, Node *parent)
 
 Differential (EqnXMLParser &in, Node *parent)
 
 ~Differential ()
 
Virtual Public Member Functions
bool isLeaf () const
 
int numFactors () const
 
Node * findNode (int x, int y)
 
Node * findNode (const Box &b)
 
std::string toString () const
 
const std::string & getName () const
 
std::type_index getType () const
 
void normalize ()
 
bool simplify ()
 
- 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 Differential * 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 = "differential"
 Name of Differential class.
 
static const std::type_index type = typeid(Differential)
 Type of Differential class.
 
- Static Public Attributes inherited from Node
static const std::vector< std::string > select_tags = { "NONE", "START", "END", "ALL" }
 

Private Member Functions

Virtual Private Member Functions
Node * downLeft ()
 
Node * downRight ()
 
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

Box m_internal
 Bounding box of this node.
 
char m_variable
 Variable of Differential.
 
NodePtr m_function
 Function to be differentiated.
 

Additional Inherited Members

- Public Types inherited from Node
enum  Select { NONE, START, END, ALL }
 

Detailed Description

Represents a differential of an expression to a variable.

Constructor & Destructor Documentation

Differential::Differential ( Parser &  p,
Node *  parent 
)

Constructor for Differential class.

Parameters
pParser object.
parentParent node.
Differential::Differential ( EqnXMLParser &  in,
Node *  parent 
)

XML constructor for Differential class. Read in XML for Differential class.

Parameters
inXML input stream.
parentParent node object.
Differential::~Differential ( )
inline

Abstract base class needs virtual destructor.

Member Function Documentation

void Differential::calcOrig ( UI::Graphics &  gc,
int  x,
int  y 
)
privatevirtual

Calculate origin of this node offset from the point (x,y) given it.

Parameters
gcGraphics context.
xHorizontal origin.
yVertical origin.

Implements Node.

Node::Frame Differential::calcSize ( UI::Graphics &  gc)
privatevirtual

Calculate size of this node in given graphics context.

Parameters
gcGraphics context.
Returns
Return frame containing size of this node.

Implements Node.

Node* Differential::downLeft ( )
inlineprivatevirtual

Get left node. For Differential class left most node of function argument.

Returns
Left node.

Reimplemented from Node.

Node* Differential::downRight ( )
inlineprivatevirtual

Get right node. For Differential class right most node of function argument.

Returns
Right node.

Reimplemented from Node.

void Differential::drawNode ( UI::Graphics &  gc) const
privatevirtual

Draw this node in the given graphical context.

Parameters
gcGraphical context.

Implements Node.

Node* Differential::findNode ( int  x,
int  y 
)
inlinevirtual

Rescursive search to find deepest node at point (x,y).

Parameters
xhorizontal coordinate.
yvertical coordinate.
Returns
Deepest node at point (x,y).

Reimplemented from Node.

Node * Differential::findNode ( const Box &  b)
virtual

Recursive function to return first node from a top to bottom search whose frame is inside Box b.

Parameters
bBounding box.
Returns
Top node inside bounding box.

Reimplemented from Node.

const std::string& Differential::getName ( ) const
inlinevirtual

Get name of this class.

Returns
Name of this class.

Implements Node.

Complex Differential::getNodeValue ( ) const
inlineprivatevirtual

Get value of this subtree.

Returns
Complex value of this subtree.

Implements Node.

std::type_index Differential::getType ( ) const
inlinevirtual

Get name of this class.

Returns
Name of this class.

Implements Node.

bool Differential::isLeaf ( ) const
inlinevirtual

Override for isLeaf virtual function.

Returns
False, this node has child nodes.

Reimplemented from Node.

void Differential::normalize ( )
inlinevirtual

Refactor subtree to a standard form. For Differential class, normalize function argument.

Reimplemented from Node.

int Differential::numFactors ( ) const
inlinevirtual

Get number of factors in this node.

Returns
Number of factors in function plus this node.

Reimplemented from Node.

Differential * Differential::parse ( Parser &  p,
Node *  parent 
)
static

Get Differential object from Parser.

Parameters
pParser object.
parentParent for new Differential object.
Returns
Differential object or null if no differential found in parser.
bool Differential::simplify ( )
inlinevirtual

Attempt to algebraically simplify the subtree this node is the root.

Returns
True, if subtree was changed.

Reimplemented from Node.

string Differential::toString ( ) const
virtual

Get string representation of this node.

Returns
String representation.

Implements Node.

void Differential::xml_out ( XML::Stream &  xml) const
privatevirtual

Output XML of this node.

Parameters
xmlXML output stream.

Implements Node.


The documentation for this class was generated from the following files: