kangaroo  1.0
the cbls library
Public Types
IfThenElseValueToValue< condValue, branchValue, value > Class Template Reference

If then else value to value function. More...

#include <ifThenElseValueToValue.hpp>

Inheritance diagram for IfThenElseValueToValue< condValue, branchValue, value >:
Inheritance graph
[legend]

Public Types

typedef condValue CondValueType
 The condition value type of if.
 
typedef branchValue BranchValueType
 The branch value type of then and else.
 
typedef value ValueType
 The value type of the function.
 
- Public Types inherited from ValueFunction< value >
typedef value ValueType
 Value type.
 

Static Public Member Functions

static IfThenElseValueToValue< condValue, branchValue, value > * define (System *const pSystem, Expression *const *ParamExprs)
 
static IfThenElseValueToValue< condValue, branchValue, value > * define (System *const pSystem, Expression *const CondExpr, Expression *const ThenExpr, Expression *const ElseExpr)
 Define an if then else value to value function expression in the system. More...
 
- Static Public Member Functions inherited from Expression
static void performExecution (Expression *const pExpression)
 Execute in current (anew or incrmental) mode. More...
 
static void performSimulation (Expression *const pExpression)
 Simulate in current (anew or incremental) mode. More...
 
static void performExecAnew (Expression *const pExpression)
 Execute in anew mode. More...
 
static void performExecIncr (Expression *const pExpression)
 Execute in incremental mode. More...
 
static void performSimulAnew (Expression *const pExpression)
 Simulate in anew mode. More...
 
static void performSimulIncr (Expression *const pExpression)
 Simulate in incremental mode. More...
 

Private Member Functions

Essential Methods
virtual ~IfThenElseValueToValue ()
 Destructor. More...
 
 IfThenElseValueToValue (System *const pSystem, Dim const ParamCount, Expression *const *pParamExprs)
 Param constructor. More...
 
 IfThenElseValueToValue (IfThenElseValueToValue< condValue, branchValue, value > &&that) noexcept=delete
 Move constructor.
 
 IfThenElseValueToValue (IfThenElseValueToValue< condValue, branchValue, value > const &that)=delete
 Copy constructor.
 
IfThenElseValueToValueoperator= (IfThenElseValueToValue< condValue, branchValue, value > &&that) noexcept=delete
 Move assignment.
 
IfThenElseValueToValueoperator= (IfThenElseValueToValue< condValue, branchValue, value > const &that)=delete
 Copy assignment.
 
Computation Methods
virtual void computeFinal () overridefinal
 Compute the expression. More...
 
virtual void executeAnew () overridefinal
 Execute the expression. More...
 
virtual void simulateAnew () overridefinal
 Simulate the expression. More...
 
virtual void executeIncr () overridefinal
 Execute the expression. More...
 
virtual void simulateIncr () overridefinal
 Simulate the expression. More...
 

Private Attributes

Data Members
ValueRecord< condValue > const * mCondExprValueRecord
 Cond parameter value record pointer.
 
ValueRecord< branchValue > const * mThenExprValueRecord
 Then parameter value record pointer.
 
ValueRecord< branchValue > const * mElseExprValueRecord
 Else parameter value record pointer.
 

Additional Inherited Members

- Public Member Functions inherited from ValueFunction< value >
virtual Wrap ExecWrappedValue () const overridefinal
 Execution value wrap. More...
 
virtual Wrap SimulWrappedValue () const overridefinal
 Simulation value wrap. More...
 
virtual ValueRecord< value > const * ExprValueRecord () const overridefinal
 Value record pointer. More...
 
virtual Serial ValueTypeSerial () const overridefinal
 Value type serial. More...
 
value ExecValue () const
 Execution value. More...
 
value SimulValue () const
 Simulation value. More...
 
- Public Member Functions inherited from Function
Bool ActiveLazyHalfAutoExec () const
 Whether auto execution in lazy half mode is active? More...
 
void activateLazyHalfAutoExec (Bool const SetNotUnset)
 Activate auto execution in lazy half mode. More...
 
virtual Identifier CareTabuModel () const
 Care for any tabu model? More...
 
virtual Bool CareLockEffect () const
 Care for lock effect? More...
 
virtual Bool CareFactorSerial () const
 Care factor serial? More...
 
virtual ~Function ()
 Destructor. More...
 
Serial FuncVarToFactorSerial (Serial const VarSerial) const
 Find the factor serial for a given variable serial. More...
 
- Public Member Functions inherited from Expression
Bool Terminal () const
 Whether the expression terminal—variables or constants are terminals, functions are not. More...
 
Bool Updatable () const
 Whether the expression updatable—variables are updatable, functions may be updatable. More...
 
Bool Computable () const
 Whether the expression computable—functions are normally computable, but may not be updatable as well. More...
 
virtual Serial MetricTypeSerial () const
 Metric type serial number. More...
 
Bool CompatibleValueMetricTypes () const
 Whether value and metric types are compatible. More...
 
virtual ScalarBase const * ExprScalarRecord (Order const MaxiOrMini) const
 Expression scalar record or null if no scalar is present. More...
 
virtual VectorBase const * ExprVectorRecord (Order const MaxiOrMini) const
 Expression vector record or null if no vector is present. More...
 
virtual VectorType ExprVectorType () const
 Expression vector type: fields for params or factors or values. More...
 
virtual Bool SharedOptiMetrics () const
 Whether maxi and mini metrics share the same metric record. More...
 
virtual Order ActiveSharedOptiMetric () const
 When shared, the active one between the maxi or mini metrics. More...
 
virtual Bool NeedLazyModeUserExecution () const
 Needs user initiated execution in lazy computation mode, since there might be backlog: call this in propagation mode. More...
 
virtual Bool NeedDownwardUserSimulation () const
 Needs simulation since simulation has not been performed, call this after propagation: call this in propagation mode. More...
 
Clock ExecClock () const
 The execution clock of the expression. More...
 
Clock SimulClock () const
 The simulation clock of the expression. More...
 
Bool ChangedSystemExecClock () const
 Whether the system's execution clock changed from the expression's execution clock. More...
 
Bool ChangedSystemSimulClock () const
 Whether the system's simulation clock changed from the expression's simulation clock. More...
 
- Data Fields inherited from Function
Index const NestingIndex
 Function nesting index; starts from 0.
 
Serial const FuncSerial
 Unique over all functions.
 
kb< Expression * > const ParamExprs
 Parameter expressions that this function immediately depends on.
 
kb< ParamSpecType > const *const ParamSpecs
 Parameter specifications i.e. how to use values and metrics.
 
xb< Variable * > const FactorVars
 Factor variables that this function transitively depends on.
 
nrl< xb< Serial > > const ParamFactors
 Variables that parameters depend on. Factor serial of the function are use to represent parameter variables.
 
- Data Fields inherited from Expression
Identifier const ExprFamily
 Expression family is either void, variable, constant or function.
 
Identifier const ExprModel
 Expression model is a category within each expression family.
 
Identifier const ExprFormat
 Expression format is a concrete expression implementation.
 
System *const SysMaster
 The system that contains this expression.
 
Hash const ExprHash
 Expression hash value is used in quick matching of a certain expression.
 
xb< Function * > const PatronFuncs
 Patron functions of the current expression.
 
xb< Serial > const PatronParams
 Parameter serials in the patron expressions.
 
- Protected Member Functions inherited from MuxValueFunc< value >
virtual ~MuxValueFunc ()
 Destructor. More...
 
 MuxValueFunc (System *const pSystem, Dim const ParamCount)
 Param constructor. More...
 
 MuxValueFunc (MuxValueFunc< value > &&that) noexcept=delete
 Move constructor.
 
 MuxValueFunc (MuxValueFunc< value > const &that)=delete
 Copy constructor.
 
MuxValueFunc< value > & operator= (MuxValueFunc< value > &&that) noexcept=delete
 Move assignment.
 
MuxValueFunc< value > & operator= (MuxValueFunc< value > const &that)=delete
 Copy assignment.
 
- Protected Member Functions inherited from ValueFunction< value >
virtual void syncExecClock () override
 Synchronise the execution clock. More...
 
virtual void syncSimulClock () override
 synchronise the simulation clock. More...
 
virtual Wrap ExecWrappedScalar (Order const MaxiOrMini) const overridefinal
 Execution scalar wrap of the expression—throws error. More...
 
virtual Dim VectorFieldCount () const overridefinal
 Number of fields in the vector metrics—throws error. More...
 
virtual Wrap ExecWrappedVectorField (Order const MaxiOrMini, Serial const FieldSerial) const overridefinal
 Execution value wrap of a vector field—throws error. More...
 
virtual ~ValueFunction ()
 Destructor. More...
 
 ValueFunction (System *const pSystem, Dim const ParamCount)
 Param constructor. More...
 
 ValueFunction (ValueFunction< value > &&that) noexcept=delete
 Move constructor.
 
 ValueFunction (ValueFunction< value > const &that)=delete
 Copy constructor.
 
ValueFunction< value > & operator= (ValueFunction< value > &&that) noexcept=delete
 Move assignment.
 
ValueFunction< value > & operator= (ValueFunction< value > const &that)=delete
 Copy assignment.
 
void defineExprValueRecord ()
 Define expression value. More...
 
- Protected Member Functions inherited from Function
virtual void setupComputation ()
 Set up various things for computation. More...
 
virtual void adjustMemAuto () override
 Adjust memory requirement automatically. More...
 
void setFuncSerial (Serial const pSerial)
 Set function serial. More...
 
Hash calcExprHash () const
 Calculate expression hash value. More...
 
virtual Bool equate (Expression const &that) const override
 Compare expressions for equality. More...
 
virtual TabuBase const * CareTabuInstance () const
 Which tabu instance to care for. More...
 
virtual void computeTabuEffect ()
 Compute the tabu effect upon callback. More...
 
virtual void computeLockEffect ()
 Compute the lock effect up on callback. More...
 
 Function (System *const pSystem, Dim const ParamCount)
 Param constructor. More...
 
 Function (Function &&that) noexcept=delete
 Move constructor.
 
 Function (Function const &that)=delete
 Copy constructor.
 
Functionoperator= (Function &&that) noexcept=delete
 Move assignment.
 
Functionoperator= (Function const &that)=delete
 Copy assignment.
 
void setParameters (ParamOrder const pParamOrder, Dim const ParamCount, Expression *const *const pParamExprs, ParamSpecType const *const pParamSpecs=nullptr, Index *const pParamIndexes=nullptr)
 Set the parameters, if unordered then expression pointers along with indexes (if given) are sorted. More...
 
void defineRootWithinSystem ()
 Define as a root within the system. More...
 
Serial RootFuncSerial () const
 The root function serial within the system. More...
 
void setRootFuncSerial (Serial const RootFuncSerial)
 Set the root function serial with the system. More...
 
- Protected Member Functions inherited from Expression
virtual ~Expression ()
 Destructor. More...
 
 Expression (System *const pSystem)
 Param constructor. More...
 
 Expression (Expression &&that) noexcept=delete
 Move constructor.
 
 Expression (Expression const &that)=delete
 Copy constructor.
 
Expressionoperator= (Expression &&that) noexcept=delete
 Move assignment.
 
Expressionoperator= (Expression const &that)=delete
 Copy assignment.
 
void setExprFamily (Identifier const pFamily)
 Set expression family. More...
 
void setExprModel (Identifier const pModel)
 Set expression model. More...
 
void setExprFormat (Identifier const pFormat)
 Set expression format. More...
 
void setExprHash (Hash const pHash)
 Set expression hash value. More...
 
void setUpdatable (Bool const SetNotUnset)
 Set expression updatablity. More...
 
void updateExecClock ()
 Update the execution clock. More...
 
void updateSimulClock ()
 Update the simulation clock. More...
 
virtual void syncExecBatchClock ()
 Synchronize the execution batch clock. More...
 
virtual void syncSimulBatchClock ()
 Synchronize the simulation batch clock. More...
 
virtual Serial setPatron (Function *const pFunction, Serial ParamSerial)
 Set a patron in the expression and return patron serial. More...
 
- Static Protected Member Functions inherited from Function
static Serial defineWithinSystem (Function *const pFunction)
 Define the function in the system. More...
 
- Protected Attributes inherited from ValueFunction< value >
ValueRecord< value > * mExprValueRecord
 Expression value.
 
- Protected Attributes inherited from Function
Serial mRootFuncSerial
 Root function serial in the system.
 
- Protected Attributes inherited from Expression
friend System
 Friend access to System.
 
Clock mEmulClock
 The emulation clock, when the expression was emulated.
 
Clock mExecClock
 The execution clock, when the expression was executed.
 
Clock mSimulClock
 The simulation clock, when the expression was simulated.
 

Detailed Description

template<typename condValue, typename branchValue, typename value = branchValue>
class IfThenElseValueToValue< condValue, branchValue, value >

If then else value to value function.

Template Parameters
condValueThe condition type of if.
branchValueThe brach type of then and else.
valueThe value type of the function.

Constructor & Destructor Documentation

template<typename condValue , typename branchValue , typename value >
IfThenElseValueToValue< condValue, branchValue, value >::~IfThenElseValueToValue ( )
inlineprivatevirtual

Destructor.

template<typename condValue , typename branchValue , typename value >
IfThenElseValueToValue< condValue, branchValue, value >::IfThenElseValueToValue ( System *const  pSystem,
Dim const  ParamCount,
Expression *const *  pParamExprs 
)
inlineprivate

Param constructor.

Member Function Documentation

template<typename condValue , typename branchValue , typename value >
void IfThenElseValueToValue< condValue, branchValue, value >::computeFinal ( )
inlinefinaloverrideprivatevirtual

Compute the expression.

Implements Function.

template<typename condValue , typename branchValue , typename value >
void IfThenElseValueToValue< condValue, branchValue, value >::executeAnew ( )
inlinefinaloverrideprivatevirtual

Compute the expression in execution mode.

Implements Expression.

template<typename condValue , typename branchValue , typename value >
void IfThenElseValueToValue< condValue, branchValue, value >::simulateAnew ( )
inlinefinaloverrideprivatevirtual

Compute the expression in simulation mode.

Implements Expression.

template<typename condValue , typename branchValue , typename value >
void IfThenElseValueToValue< condValue, branchValue, value >::executeIncr ( )
inlinefinaloverrideprivatevirtual

Compute the expression in execution mode.

Implements Expression.

template<typename condValue , typename branchValue , typename value >
void IfThenElseValueToValue< condValue, branchValue, value >::simulateIncr ( )
inlinefinaloverrideprivatevirtual

Compute the expression in simulation mode.

Implements Expression.


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