The Sparta Modeling Framework
|
Represents a Unary function node. More...
#include <ExpressionNodeTypes.hpp>
Public Member Functions | |
UnaryFunction ()=delete | |
No default construction. | |
UnaryFunction (const UnaryFunction &rhp) | |
UnaryFunction (const std::string &name, fxn_t fxn, ExpressionNode *op) | |
UnaryFunction & | operator= (const UnaryFunction &)=delete |
Non-assignable. | |
virtual UnaryFunction * | clone_ () const override |
Deep copy of the content of this item. | |
virtual double | evaluate_ () const override |
Compute value of this item in simulation. | |
virtual bool | supportsCompression () const override |
virtual void | start () override |
virtual void | end () override |
virtual void | dump (std::ostream &o, bool show_range=true, bool resolve_subexprs=true) const override |
Dump the content of this expression item. | |
virtual void | getClocks (std::vector< const Clock * > &clocks) const override |
Populates a vector with the clocks found in this subexpression node. | |
Public Member Functions inherited from sparta::statistics::expression::ExpressionNode | |
ExpressionNode (const ExpressionNode &)=delete | |
No copy-constructable. | |
ExpressionNode * | clone () const |
uint32_t | getStats (std::vector< const StatisticInstance * > &results) const |
Gets the statistics present in this expression. | |
double | evaluate () |
Compute value of this item in simulation. Must be implemented by subclass. | |
Public Attributes | |
const std::string | name_ |
Name of this unary function. | |
const fxn_t | fxn_ |
Unary function to invoke. | |
std::unique_ptr< ExpressionNode > | operand_ |
Operand of the unary function fxn_. | |
Represents a Unary function node.
RetT | Return type of function pointer. Must be convertable to double |
Definition at line 286 of file ExpressionNodeTypes.hpp.
|
inline |
Definition at line 309 of file ExpressionNodeTypes.hpp.
|
inline |
brief Construct a new unary function
Name | of function |
unary | double function pointer |
op | Operand. Must not be nullptr. Takes ownership |
Definition at line 324 of file ExpressionNodeTypes.hpp.
|
inlineoverridevirtual |
Deep copy of the content of this item.
To be overridden by subclasses
Implements sparta::statistics::expression::ExpressionNode.
Definition at line 340 of file ExpressionNodeTypes.hpp.
|
inlineoverridevirtual |
Dump the content of this expression item.
o | Ostream to write to |
show_range | Should the range be shown in any subexpression nodes. |
resolve_subexprs | Should any referenced statistic defs be expanded to their full expressions so that this becomes an expression containing only counters. |
Implements sparta::statistics::expression::ExpressionNode.
Definition at line 364 of file ExpressionNodeTypes.hpp.
|
inlineoverridevirtual |
Implements sparta::statistics::expression::ExpressionNode.
Definition at line 360 of file ExpressionNodeTypes.hpp.
|
inlineoverridevirtual |
Compute value of this item in simulation.
Implements sparta::statistics::expression::ExpressionNode.
Definition at line 344 of file ExpressionNodeTypes.hpp.
|
inlineoverridevirtual |
Populates a vector with the clocks found in this subexpression node.
clocks | Vector of clocks to which any found clocks will be appended. This vector is not cleared. |
Implements sparta::statistics::expression::ExpressionNode.
Definition at line 372 of file ExpressionNodeTypes.hpp.
|
inlineoverridevirtual |
Implements sparta::statistics::expression::ExpressionNode.
Definition at line 356 of file ExpressionNodeTypes.hpp.
|
inlineoverridevirtual |
We currently are not attempting compression for UnaryFunction, BinaryFunction, and TernaryFunction SI's. These are not used with nearly as much frequency as counters, constants, and parameters.
Implements sparta::statistics::expression::ExpressionNode.
Definition at line 352 of file ExpressionNodeTypes.hpp.
const fxn_t sparta::statistics::expression::UnaryFunction< RetT, ArgT, fxn_t >::fxn_ |
Unary function to invoke.
Definition at line 296 of file ExpressionNodeTypes.hpp.
const std::string sparta::statistics::expression::UnaryFunction< RetT, ArgT, fxn_t >::name_ |
Name of this unary function.
Definition at line 291 of file ExpressionNodeTypes.hpp.
std::unique_ptr<ExpressionNode> sparta::statistics::expression::UnaryFunction< RetT, ArgT, fxn_t >::operand_ |
Operand of the unary function fxn_.
Definition at line 301 of file ExpressionNodeTypes.hpp.