kangaroo
1.0
the cbls library
|
Flexible arity value scalar or vector to value vector functions. More...
#include <naryValueScalarOrFactorVectorToValueFactorVectorFunc.hpp>
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. | |
Function & | operator= (Function &&that) noexcept=delete |
Move assignment. | |
Function & | operator= (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. | |
Expression & | operator= (Expression &&that) noexcept=delete |
Move assignment. | |
Expression & | operator= (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... | |
Flexible arity value scalar or vector to value vector functions.
|
inlineprotectedvirtual |
Destructor.
|
inlineprotected |
Param constructor.
|
inlineprotectedvirtual |
Synchronize with batch clock of the system.
Reimplemented from ValueVectorFunction< value, metric, FactorVector >.