kangaroo  1.0
the cbls library
NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric > Class Template Reference

Flexible arity value scalar or vector to value vector functions. More...

#include <naryValueScalarOrFactorVectorToValueFactorVectorFunc.hpp>

Inheritance diagram for NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric >:
Inheritance graph
[legend]

Protected Member Functions

Essential Methods
virtual ~NaryValueScalarOrFactorVectorToValueFactorVectorFunc ()
 Destructor. More...
 
 NaryValueScalarOrFactorVectorToValueFactorVectorFunc (System *const pSystem, Order const MaxiOrMini, Dim const ParamCount)
 Param constructor. More...
 
 NaryValueScalarOrFactorVectorToValueFactorVectorFunc (NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric > &&that) noexcept=delete
 Move constructor.
 
 NaryValueScalarOrFactorVectorToValueFactorVectorFunc (NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric > const &that)=delete
 Copy constructor.
 
NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric > & operator= (NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric > &&that) noexcept=delete
 Move assignment.
 
NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric > const & operator= (NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric > const &that)=delete
 Copy assignment.
 
Clock Synchronise
void syncExecClock ()
 Synchronise exec clock. More...
 
- Protected Member Functions inherited from ValueVectorFunction< value, metric, FactorVector >
virtual ~ValueVectorFunction ()
 Destructor. More...
 
 ValueVectorFunction (System *const pSystem, Order const MaxiOrMini, Dim const ParamCount)
 Param constructor. More...
 
 ValueVectorFunction (ValueVectorFunction< value, metric, vectorType > &&that) noexcept=delete
 Move constructor.
 
 ValueVectorFunction (ValueVectorFunction< value, metric, vectorType > const &that)=delete
 Copy constructor.
 
ValueVectorFunction< value, metric, vectorType > & operator= (ValueVectorFunction< value, metric, vectorType > &&that) noexcept=delete
 Move assignment.
 
ValueVectorFunction< value, metric, vectorType > & operator= (ValueVectorFunction< value, metric, vectorType > const &that)=delete
 Copy assignment.
 
virtual Wrap ExecWrappedScalar (Order const MaxiOrMini) const
 Execution scalar wrap of the expression—throws error. More...
 
virtual void syncSimulClock ()
 synchronise the simulation clock. More...
 
void defineExprValueRecord ()
 Define expression value. More...
 
void defineExprVectorRecord (Dim const FieldCount)
 Define vector record. More...
 
- Protected Member Functions inherited from Function
virtual void computeFinal ()=0
 Computation when function is final.
 
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 void executeAnew ()=0
 Compute in anew execution mode.
 
virtual void executeIncr ()=0
 Compute in incrmental execution mode.
 
virtual void simulateAnew ()=0
 Compute in anew simulation mode.
 
virtual void simulateIncr ()=0
 Compute in incremental simulation mode.
 
virtual Serial setPatron (Function *const pFunction, Serial ParamSerial)
 Set a patron in the expression and return patron serial. More...
 

Protected Attributes

Data Members
kb< Bool > mVectorNotScalars
 Whether optimisation segment is a vector or a scalar.
 
- Protected Attributes inherited from ValueVectorFunction< value, metric, FactorVector >
ValueRecord< value > * mExprValueRecord
 Point to the value record.
 
VectorRecord< metric > * mExprVectorRecord
 Point to the vector record.
 
Order const mMetricOptiOrder
 Maximisation or minimisation?
 
- 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.
 

Additional Inherited Members

- Public Types inherited from ValueVectorFunction< value, metric, FactorVector >
typedef value ValueType
 Value type.
 
typedef metric MetricType
 Metric type.
 
- Public Member Functions inherited from ValueVectorFunction< value, metric, FactorVector >
virtual Wrap ExecWrappedValue () const overridefinal
 Execution value wrap. More...
 
virtual Wrap SimulWrappedValue () const overridefinal
 Simulation value wrap. More...
 
virtual Dim VectorFieldCount () const overridefinal
 Number of fields in the vectors. More...
 
virtual Wrap ExecWrappedVectorField (Order const MaxiOrMini, Serial const FieldSerial) const overridefinal
 Execution value wrap of a vector field. More...
 
virtual ValueRecord< value > const * ExprValueRecord () const overridefinal
 Expression value. More...
 
virtual VectorRecord< metric > const * ExprVectorRecord (Order const MaxiOrMini) const overridefinal
 Expression metric. More...
 
virtual VectorType ExprVectorType () const overridefinal
 Expression vector type. More...
 
virtual Serial ValueTypeSerial () const overridefinal
 Value type serial. More...
 
virtual Serial MetricTypeSerial () const overridefinal
 Metric type serial. More...
 
value ExecValue () const
 Execution value. More...
 
value SimulValue () const
 Simulation value. More...
 
Order MetricOptiOrder () const
 Metric optimisation ordering. More...
 
metric ExecVectorField (Order MaxiOrMini, Serial const FieldSerial) const
 Execution metric of a vector field. 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...
 
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 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...
 
- 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...
 
- 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.
 
- Static Protected Member Functions inherited from Function
static Serial defineWithinSystem (Function *const pFunction)
 Define the function in the system. More...
 

Detailed Description

template<typename value, typename metric = value>
class NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric >

Flexible arity value scalar or vector to value vector functions.

Constructor & Destructor Documentation

template<typename value , typename metric >
NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric >::~NaryValueScalarOrFactorVectorToValueFactorVectorFunc ( )
inlineprotectedvirtual

Destructor.

template<typename value , typename metric >
NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric >::NaryValueScalarOrFactorVectorToValueFactorVectorFunc ( System *const  pSystem,
Order const  MaxiOrMini,
Dim const  ParamCount 
)
inlineprotected

Param constructor.

Member Function Documentation

template<typename value , typename metric >
void NaryValueScalarOrFactorVectorToValueFactorVectorFunc< value, metric >::syncExecClock ( )
inlineprotectedvirtual

Synchronize with batch clock of the system.

Reimplemented from ValueVectorFunction< value, metric, FactorVector >.


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