class Gambit::primary_model_functor
[No description available] More…
#include <functors.hpp>
Inherits from Gambit::model_functor, Gambit::module_functor< ModelParameters >, Gambit::module_functor_common, Gambit::functor
Public Functions
| Name | |
|---|---|
| primary_model_functor(void(*)(ModelParameters &) inputFunction, str func_name, str func_capability, str result_type, str origin_name, Models::ModelFunctorClaw & claw) Constructor. | |
| ModelParameters * | getcontentsPtr() |
| virtual | ~primary_model_functor() Destructor. |
Additional inherited members
Public Functions inherited from Gambit::model_functor
| Name | |
|---|---|
| model_functor(void(*)(ModelParameters &) inputFunction, str func_name, str func_capability, str result_type, str origin_name, Models::ModelFunctorClaw & claw) Constructor. | |
| void | setModelName(str model_name) Function for setting the model name for a ModelParameters object. Mainly for better error messages. |
| void | addParameter(str parname) Function for adding a new parameter to the map inside the ModelParameters object. |
| void | donateParameters(model_functor & receiver) Function for handing over parameter identities to another model_functor. |
| virtual | ~model_functor() Destructor. |
Public Functions inherited from Gambit::module_functor< ModelParameters >
| Name | |
|---|---|
| module_functor(void(*)(TYPE &) inputFunction, str func_name, str func_capability, str result_type, str origin_name, Models::ModelFunctorClaw & claw) Constructor. | |
| virtual | ~module_functor() Destructor. |
| virtual void | setPrintRequirement(bool flag) Setter for indicating if the wrapped function’s result should to be printed. |
| virtual bool | requiresPrinting() const Getter indicating if the wrapped function’s result should to be printed. |
| virtual void | calculate() Calculate method. |
| const TYPE & | operator()(int index) Operation (return value) |
| safe_ptr< TYPE > | valuePtr() Alternative to operation (returns a safe pointer to value) |
| virtual void | print(Printers::BasePrinter * printer, const int pointID, int index) Printer function. |
| virtual void | print(Printers::BasePrinter * printer, const int pointID) Printer function (no-thread-index short-circuit) |
Protected Functions inherited from Gambit::module_functor< ModelParameters >
| Name | |
|---|---|
| virtual void | init_memory() Initialise the memory of this functor. |
Protected Attributes inherited from Gambit::module_functor< ModelParameters >
| Name | |
|---|---|
| void(*)(TYPE &) | myFunction Internal storage of function pointer. |
| TYPE * | myValue Internal pointer to storage location of function value. |
| bool | myPrintFlag Flag to select whether or not the results of this functor should be sent to the printer object. |
Public Functions inherited from Gambit::module_functor_common
| Name | |
|---|---|
| module_functor_common(str func_name, str func_capability, str result_type, str origin_name, Models::ModelFunctorClaw & claw) Constructor. | |
| virtual | ~module_functor_common() Destructor. |
| virtual double | getRuntimeAverage() Getter for averaged runtime. |
| virtual void | reset() Reset functor. |
| virtual void | notifyOfInvalidation(const str & msg) Tell the functor that it invalidated the current point in model space, pass a message explaining why, and throw an exception. |
| virtual double | getInvalidationRate() Getter for invalidation rate. |
| virtual void | setFadeRate(double new_rate) Setter for the fade rate. |
| virtual void | setTimingPrintRequirement(bool flag) Setter for indicating if the timing data for this function’s execution should be printed. |
| virtual bool | requiresTimingPrinting() const Getter indicating if the timing data for this function’s execution should be printed. |
| bool | getActiveModelFlag(str model) Indicate whether or not a known model is activated or not. |
| safe_ptr< str > | getChosenReqFromGroup(str group) Return a safe pointer to a string indicating which backend requirement has been activated for a given backend group. |
| virtual void | iterate(long long iteration) Execute a single iteration in the loop managed by this functor. |
| virtual void | init_myCurrentIteration_if_NULL() Initialise the array holding the current iteration(s) of this functor. |
| virtual void | setIteration(long long iteration) Setter for setting the iteration number in the loop in which this functor runs. |
| virtual omp_safe_ptr< long long > | iterationPtr() Return a safe pointer to the iteration number in the loop in which this functor runs. |
| virtual void | setCanBeLoopManager(bool canManage) Setter for specifying whether this is permitted to be a manager functor, which runs other functors nested in a loop. |
| virtual bool | canBeLoopManager() Getter for revealing whether this is permitted to be a manager functor. |
| virtual void | setLoopManagerCapType(str cap, str t) Setter for specifying the capability required of a manager functor, if it is to run this functor nested in a loop. |
| virtual bool | needsLoopManager() Getter for revealing whether this functor needs a loop manager. |
| virtual str | loopManagerCapability() Getter for revealing the required capability of the wrapped function’s loop manager. |
| virtual str | loopManagerType() Getter for revealing the required type of the wrapped function’s loop manager. |
| virtual str | loopManagerName() Getter for revealing the name of the wrapped function’s assigned loop manager. |
| virtual str | loopManagerOrigin() Getter for revealing the module of the wrapped function’s assigned loop manager. |
| virtual void | breakLoopFromManagedFunctor() Tell the manager of the loop in which this functor runs that it is time to break the loop. |
| virtual safe_ptr< bool > | loopIsDone() Return a safe pointer to the flag indicating that a loop managed by this functor should break now. |
| virtual void | resetLoop() Provide a way to reset the flag indicating that a loop managed by this functor should break. |
| virtual void | breakLoop() Tell the functor that the loop it manages should break now. |
| virtual std::set< sspair > | dependencies() Getter for listing currently activated dependencies. |
| virtual std::set< sspair > | backendclassloading() Getter for listing backends that require class loading. |
| virtual std::set< str > | backendgroups() Getter for listing backend requirement groups. |
| virtual std::set< sspair > | backendreqs() Getter for listing all backend requirements. |
| virtual std::set< sspair > | backendreqs(str group) Getter for listing backend requirements from a specific group. |
| virtual std::set< sspair > | backendspermitted(sspair quant) Getter for listing permitted backends. |
| virtual std::set< str > | backendreq_tags(sspair quant) Getter for listing tags associated with backend requirements. |
| virtual std::set< sspair > | forcematchingbackend(str tag) Getter for listing backend requirements that must be resolved from the same backend. |
| virtual std::set< sspair > | backend_conditional_dependencies(str req, str type, str be, str ver) Getter for listing backend-specific conditional dependencies (4-string version) |
| virtual std::set< sspair > | backend_conditional_dependencies(str req, str type, str be) Getter for backend-specific conditional dependencies (3-string version) |
| virtual std::set< sspair > | backend_conditional_dependencies(functor * be_functor) Getter for backend-specific conditional dependencies (backend functor pointer version) |
| virtual std::set< sspair > | model_conditional_dependencies(str model) Getter for listing model-specific conditional dependencies (matches also on parents and friends) |
| virtual std::set< sspair > | model_conditional_dependencies_exact(str model) Getter for listing model-specific conditional dependencies (matches on the exact model) |
| virtual std::set< sspair > | model_conditional_backend_reqs(str model) Getter for listing model-specific conditional backend requirements (matches also on parents and friends) |
| virtual std::set< sspair > | model_conditional_backend_reqs_exact(str model) Getter for listing model-specific conditional backend requirements (matches on the exact model) |
| void | setDependency(str dep, str dep_type, void(*)(functor *, module_functor_common *) resolver, str purpose ="") Add and activate unconditional dependencies. |
| void | setConditionalDependency(str dep, str dep_type) Add conditional dependency-type pairs in advance of later conditions. |
| void | setBackendConditionalDependency(str req, str be, str ver, str dep, void(*)(functor *, module_functor_common *) resolver) Add a backend conditional dependency for multiple backend versions. |
| void | setBackendConditionalDependencySingular(str req, str be, str ver, str dep, void(*)(functor *, module_functor_common *) resolver) Add a backend conditional dependency for a single backend version. |
| void | setModelConditionalDependency(str model, str dep, void(*)(functor *, module_functor_common *) resolver) Add a model conditional dependency for multiple models. |
| void | setModelConditionalDependencySingular(str model, str dep, void(*)(functor *, module_functor_common *) resolver) Add a model conditional dependency for a single model. |
| void | makeBackendRuleForModel(str model, str tag) Add a rule for activating backend requirements according to the model being scanned. |
| void | setBackendReq(str group, str req, str tags, str type, void(*)(functor *) resolver) |
| void | setModelConditionalBackendReq(str model, str req, str type) Add a model conditional backend requirement for multiple models. |
| void | setModelConditionalBackendReqSingular(str model, str req, str type) Add a model conditional backend requirement for a single model. |
| void | makeBackendOptionRule(str be_and_ver, str tag) Add a rule for dictating which backends can be used to fulfill which backend requirements. |
| void | setPermittedBackend(str req, str be, str ver) Add a single permitted backend version. |
| void | makeBackendMatchingRule(str tag) Add one or more rules for forcing backends reqs with the same tags to always be resolved from the same backend. |
| void | setRequiredClassloader(str be, str ver, str safe_ver) Add a rule indicating that classes from a given backend must be available. |
| virtual void | notifyOfBackends(std::map< str, std::set< str > > be_ver_map) Indicate to the functor which backends are actually loaded and working. |
| virtual void | setNestedList(std::vector< functor * > & newNestedList) Set the ordered list of pointers to other functors that should run nested in a loop managed by this one. |
| virtual void | resolveDependency(functor * dep_functor) Resolve a dependency using a pointer to another functor object. |
| virtual void | resolveLoopManager(functor * dep_functor) Set this functor’s loop manager (if it has one) |
| virtual void | resolveBackendReq(functor * be_functor) Resolve a backend requirement using a pointer to another functor object. |
| virtual void | notifyOfModel(str model) Notify the functor that a certain model is being scanned, so that it can activate its dependencies and backend reqs accordingly. |
| virtual void | notifyOfDependee(functor * dependent_functor) Notify the functor that another functor depends on it. |
| virtual invalid_point_exception * | retrieve_invalid_point_exception() Retrieve the previously saved exception generated when this functor invalidated the current point in model space. |
Protected Functions inherited from Gambit::module_functor_common
| Name | |
|---|---|
| virtual void | reset(int thread_num) Reset functor for one thread only. |
| virtual void | acknowledgeInvalidation(invalid_point_exception & e, functor * f =NULL) Acknowledge that this functor invalidated the current point in model space. |
| virtual void | startTiming(int thread_num) Do pre-calculate timing things. |
| virtual void | finishTiming(int thread_num) Do post-calculate timing things. |
| virtual void | init_memory() Initialise the memory of this functor. |
| void | fill_activeModelFlags() Construct the list of known models only if it doesn’t yet exist. |
| sspair | retrieve_conditional_dep_type_pair(str dep) Retrieve full conditional dependency-type pair from conditional dependency only. |
| void | check_missing_LogTag() Check if an appropriate LogTag for this functor is missing from the logging system. |
| void | entering_multithreaded_region() |
| void | leaving_multithreaded_region() |
Protected Attributes inherited from Gambit::module_functor_common
| Name | |
|---|---|
| bool | myTimingPrintFlag Flag to select whether or not the timing data for this function’s execution should be printed;. |
| std::chrono::time_point< std::chrono::system_clock > * | start Beginning and end timing points. |
| std::chrono::time_point< std::chrono::system_clock > * | end |
| bool | point_exception_raised A flag indicating whether or not this functor has invalidated the current point. |
| invalid_point_exception | raised_point_exception An exception raised because this functor has invalidated the current point. |
| double | runtime_average Averaged runtime in ns. |
| double | fadeRate Fade rate for average runtime. |
| double | pInvalidation Probability that functors invalidates point in model parameter space. |
| bool * | needs_recalculating Needs recalculating or not? |
| bool * | already_printed Has result already been sent to the printer? |
| bool * | already_printed_timing Has timing data already been sent to the printer? |
| bool | iCanManageLoops Flag indicating whether this function can manage a loop over other functions. |
| bool | myLoopIsDone Flag indicating whether this function is ready to finish its loop (only relevant if iCanManageLoops = true) |
| bool | iRunNested Flag indicating whether this function can run nested in a loop over functions. |
| str | myLoopManagerCapability Capability of a function that mangages a loop that this function can run inside of. |
| str | myLoopManagerType Capability of a function that mangages a loop that this function can run inside of. |
| functor * | myLoopManager Pointer to the functor that mangages the loop that this function runs inside of. |
| std::vector< functor * > | myNestedFunctorList Vector of functors that have been set up to run nested within this one. |
| long long * | myCurrentIteration Pointer to counters for iterations of nested functor loop. |
| const int | globlMaxThreads Maximum number of OpenMP threads this MPI process is permitted to launch in total. |
| std::set< str > | myGroups Internal list of backend groups that this functor’s requirements fall into. |
| std::map< str, str > | chosenReqsFromGroups Map from groups to backend reqs, indicating which backend req has been activated for which backend group. |
| std::set< sspair > | myBackendReqs Set of all backend requirement-type string pairs. |
| std::set< sspair > | myResolvableBackendReqs Set of all backend requirement-type string pairs currently available for resolution. |
| std::map< str, std::set< sspair > > | myGroupedBackendReqs Set of backend requirement-type string pairs for specific backend groups. |
| std::set< sspair > | myDependencies Vector of dependency-type string pairs. |
| std::map< str, str > | myConditionalDependencies Map of conditional dependencies to their types. |
| std::map< std::vector< str >, std::set< sspair > > | myBackendConditionalDependencies Map from (vector with 4 strings: backend req, type, backend, version) to (set of {conditional dependency-type} pairs) |
| std::map< str, std::set< sspair > > | myModelConditionalDependencies Map from models to (set of {conditional dependency-type} pairs) |
| std::map< str, std::set< sspair > > | myModelConditionalBackendReqs Map from models to (set of {conditional backend requirement-type} pairs) |
| std::map< str, bool > | activeModelFlags Map from known models to flags indicating if they are activated or not (known = allowed, in allowed groups or conditions for conditional dependencies) |
| std::map< sspair, void(*)(functor *, module_functor_common *)> | dependency_map |
| std::map< sspair, functor * > | dependency_functor_map |
| std::map< str, str > | backendreq_types Map from backend requirements to their required types. |
| std::map< sspair, str > | backendreq_groups Map from backend requirements to their designated groups. |
| std::map< sspair, std::set< str > > | backendreq_tagmap Map from backend requirements to their rule tags. |
| std::map< sspair, void(*)(functor *)> | backendreq_map |
| std::map< sspair, std::set< sspair > > | permitted_map Map from (backend requirement-type pairs) to (set of permitted {backend-version} pairs) |
| std::map< str, std::set< sspair > > | myForcedMatches Map from tags to sets of matching (backend requirement-type pairs) that are forced to use the same backend. |
| std::map< str, std::set< str > > | required_classloading_backends Map from required classloading backends to their versions. |
| std::vector< str > | missing_backends Vector of required backends currently missing. |
| timespec | tp Internal timespec object. |
| int | myLogTag Integer LogTag, for tagging log messages. |
| bool | signal_mode_locked |
Friends inherited from Gambit::module_functor_common
| Name | |
|---|---|
| void | FunctorHelp::entering_multithreaded_region(module_functor_common & ) Connectors to external helper functions (to decouple signal handling from this class) |
| void | FunctorHelp::leaving_multithreaded_region(module_functor_common & ) |
Public Functions inherited from Gambit::functor
| Name | |
|---|---|
| virtual double | getRuntimeAverage() |
| virtual double | getInvalidationRate() |
| virtual void | setFadeRate(double ) |
| virtual void | notifyOfInvalidation(const str & ) |
| virtual void | reset() |
| functor(str func_name, str func_capability, str result_type, str origin_name, Models::ModelFunctorClaw & claw) Constructor. | |
| virtual | ~functor() Destructor. |
| virtual void | calculate() Virtual calculate(); needs to be redefined in daughters. |
| virtual void | reset_and_calculate() Reset-then-recalculate method. |
| void | setStatus(FunctorStatus stat) Setter for status. |
| virtual void | setInUse(bool ) Set the inUse flag (must be overridden in derived class to have any effect). |
| void | setPurpose(str purpose) Setter for purpose (relevant only for next-to-output functors) |
| void | setVertexID(int ID) Setter for vertex ID (used in printer system) |
| void | setTimingVertexID(int ID) Set ID for timing ‘vertex’ (used in printer system) |
| str | name() const Getter for the wrapped function’s name. |
| str | capability() const Getter for the wrapped function’s reported capability. |
| str | type() const Getter for the wrapped function’s reported return type. |
| str | origin() const Getter for the wrapped function’s origin (module or backend name) |
| virtual str | version() const Getter for the version of the wrapped function’s origin (module or backend) |
| virtual str | safe_version() const Getter for the ‘safe’ incarnation of the version of the wrapped function’s origin (module or backend) |
| FunctorStatus | status() const Getter for the functors current status. |
| bool | isAvailable() const Checks whether the functor is available (or even already activated) |
| bool | isActive() const Checks whether the functor is active. |
| bool | isDisabled() const Checks whether the functor is disabled (discriminant is negative) |
| bool | isEnabled() const Checks whether the functor is enabled (discriminant is non negative) |
| sspair | quantity() const Getter for the overall quantity provided by the wrapped function (capability-type pair) |
| str | purpose() const Getter for purpose (relevant for output nodes, aka helper structures for the dep. resolution) |
| str | citationKey() const Getter for the citation key. |
| int | vertexID() const Getter for vertex ID. |
| int | timingVertexID() const Getter for timing vertex ID. |
| str | label() const Getter for string label. |
| str | timingLabel() const Getter for the printer timing label. |
| virtual bool | requiresPrinting() const Getter indicating if the wrapped function’s result should to be printed. |
| virtual bool | requiresTimingPrinting() const Getter indicating if the timing data for this function’s execution should be printed. |
| virtual void | setPrintRequirement(bool flag) Setter for indicating if the wrapped function’s result should to be printed. |
| virtual void | setTimingPrintRequirement(bool flag) Setter for indicating if the timing data for this function’s execution should be printed. |
| virtual void | setNestedList(std::vector< functor * > & ) Set the ordered list of pointers to other functors that should run nested in a loop managed by this one. |
| virtual void | setIteration(long long ) Set the iteration number in a loop in which this functor runs. |
| virtual bool | canBeLoopManager() Getter for revealing whether this is permitted to be a manager functor. |
| virtual bool | needsLoopManager() Getter for revealing whether this functor needs a loop manager. |
| virtual str | loopManagerCapability() Getter for revealing the required capability of the wrapped function’s loop manager. |
| virtual str | loopManagerType() Getter for revealing the required type of the wrapped function’s loop manager. |
| virtual str | loopManagerName() Getter for revealing the name of the wrapped function’s assigned loop manager. |
| virtual str | loopManagerOrigin() Getter for revealing the module of the wrapped function’s assigned loop manager. |
| virtual void | breakLoop() Tell the functor that the loop it manages should break now. |
| virtual std::set< sspair > | dependencies() Getter for listing currently activated dependencies. |
| virtual std::set< sspair > | backendclassloading() Getter for listing backends that require class loading. |
| virtual std::set< str > | backendgroups() Getter for listing backend requirement groups. |
| virtual std::set< sspair > | backendreqs() Getter for listing all backend requirements. |
| virtual std::set< sspair > | backendreqs(str ) Getter for listing backend requirements from a specific group. |
| virtual std::set< sspair > | backendspermitted(sspair ) Getter for listing permitted backends. |
| virtual std::set< str > | backendreq_tags(sspair ) Getter for listing tags associated with backend requirements. |
| virtual std::set< sspair > | forcematchingbackend(str ) Getter for listing backend requirements that must be resolved from the same backend. |
| virtual std::set< sspair > | backend_conditional_dependencies(str , str , str , str ) Getter for listing backend-specific conditional dependencies (4-string version) |
| virtual std::set< sspair > | backend_conditional_dependencies(str req, str type, str be) Getter for backend-specific conditional dependencies (3-string version) |
| virtual std::set< sspair > | backend_conditional_dependencies(functor * be_functor) Getter for backend-specific conditional dependencies (backend functor pointer version) |
| virtual std::set< sspair > | model_conditional_dependencies(str model) Getter for listing model-specific conditional dependencies (matches also on parents and friends) |
| virtual std::set< sspair > | model_conditional_dependencies_exact(str model) Getter for listing model-specific conditional dependencies (matches on the exact model) |
| virtual std::set< sspair > | model_conditional_backend_reqs(str model) Getter for listing model-specific conditional backend requirements (matches also on parents and friends) |
| virtual std::set< sspair > | model_conditional_backend_reqs_exact(str model) Getter for listing model-specific conditional backend requirements (matches on the exact model) |
| virtual void | resolveDependency(functor * ) Resolve a dependency using a pointer to another functor object. |
| virtual void | resolveLoopManager(functor * ) Set this functor’s loop manager (if it has one) |
| virtual void | resolveBackendReq(functor * ) Resolve a backend requirement using a pointer to another functor object. |
| virtual void | notifyOfModel(str ) Notify the functor that a certain model is being scanned, so that it can activate itself accordingly. |
| virtual void | notifyOfDependee(functor * ) Notify the functor that it is being used to fill a dependency of another functor. |
| virtual void | notifyOfBackends(std::map< str, std::set< str > > ) Indicate to the functor which backends are actually loaded and working. |
| virtual void | print(Printers::BasePrinter * printer, const int pointID, int thread_num) Printer function. |
| virtual void | print(Printers::BasePrinter * printer, const int pointID) Printer function (no-thread-index short-circuit) |
| virtual invalid_point_exception * | retrieve_invalid_point_exception() Retrieve the previously saved exception generated when this functor invalidated the current point in model space. |
| void | notifyOfIniOptions(const Options & opt) |
| template <typename TYPE > void | setOption(const str & key, const TYPE val) Set an option for the functor directly (for use in standalone executables). |
| safe_ptr< Options > | getOptions() Return a safe pointer to the options that this functor is supposed to run with (e.g. from the ini file). |
| void | notifyOfSubCaps(const str & subcap_string) Notify the functor about a string in YAML that contains the sub-capability information (for use in standalones) |
| void | notifyOfSubCaps(const Options & subcaps) Notify the functor about an instance of the options class that contains sub-capability information. |
| template <typename TYPE > void | setSubCap(const str & key, const TYPE val) Set a sub-capability (subcap)for the functor directly (for use in standalone executables). |
| safe_ptr< Options > | getSubCaps() Return a safe pointer to the subcaps that this functor realises it is supposed to facilitate downstream calculation of. |
| safe_ptr< std::set< sspair > > | getDependees() Return a safe pointer to the vector of all capability,type pairs of functors arranged downstream of this one in the dependency tree. |
| const std::set< str > & | getAllowedModels() Getter for listing allowed models. |
| const std::set< str > & | getConditionalModels() Getter for listing conditional models. |
| const std::map< str, std::set< str > > & | getModelGroups() Getter for map of model groups and the set of models in each group. |
| bool | allModelsAllowed() Test whether the functor is allowed to be used with all models. |
| bool | modelAllowed(str model) Test whether the functor is always allowed (either explicitly or implicitly) to be used with a given model. |
| bool | modelExplicitlyAllowed(str model) Test whether the functor is explictly always allowed to be used with a given model. |
| void | setAllowedModel(str model) Add a model to the internal list of models for which this functor is allowed to be used. |
| bool | modelComboAllowed(std::set< str > combo) Test whether the functor is allowed (either explicitly or implicitly) to be used with a given combination of models. |
| bool | modelComboExplicitlyAllowed(std::set< str > combo) Test whether the functor has been explictly allowed to be used with a given combination of models. |
| void | setModelGroup(str group, str contents) Add a model group definition to the internal list of model groups. |
| void | setAllowedModelGroupCombo(str groups) Add a combination of model groups to the internal list of combinations for which this functor is allowed to be used. |
| void | addMatchedObservable(const DRes::Observable * obs) Add an observable to the set of those that this functor matches. |
| const std::set< const DRes::Observable * > & | getMatchedObservables() Retrieve the set of observables that this functor matches. |
| void | addMatchedModuleRule(const DRes::ModuleRule * r) Add a module rule to the set of those against which this functor has been tested and found to match. |
| void | addMatchedBackendRule(const DRes::BackendRule * r) Add a backend rule to the set of those against which this functor has been tested and found to match. |
| const std::set< const DRes::ModuleRule * > & | getMatchedModuleRules() Retrieve the set of module rules against which this functor has been tested and found to match. |
| const std::set< const DRes::BackendRule * > & | getMatchedBackendRules() Retrieve the set of backend rules against which this functor has been tested and found to match. |
| template <class RuleT > const std::set< RuleT * > & | getMatchedRules() Retrieve matched rules by type. |
| const std::set< const DRes::ModuleRule * > & | getMatchedRules() |
Protected Functions inherited from Gambit::functor
| Name | |
|---|---|
| virtual void | reset(int ) Reset functor for one thread only. |
| void | failBigTime(str method) Attempt to retrieve a dependency or model parameter that has not been resolved. |
| bool | allowed_parent_or_friend_exists(str model) Test if there is a model in the functor’s allowedModels list as which this model can be interpreted. |
| bool | in_allowed_combo(str model) Check that a model is actually part of a combination that is allowed to be used with this functor. |
| bool | contains_anything_interpretable_as_member_of(std::set< str > combo, str group) Test whether any of the entries in a given model group is a valid interpretation of any members in a given combination. |
| bool | has_common_elements(std::set< str > combo, str group) Work out whether a given combination of models and a model group have any elements in common. |
| str | find_friend_or_parent_model_in_map(str model, std::map< str, std::set< sspair > > karta) Try to find a parent or friend model in some user-supplied map from models to sspair vectors. |
Protected Attributes inherited from Gambit::functor
| Name | |
|---|---|
| str | myName Internal storage of the function name. |
| str | myCapability Internal storage of exactly what the function calculates. |
| str | myType Internal storage of the type of what the function calculates. |
| str | myOrigin Internal storage of the name of the module or backend to which the function belongs. |
| str | myPurpose Purpose of the function (relevant for output and next-to-output functors) |
| str | myCitationKey Citation key: BibTex key of the reference. |
| const Models::ModelFunctorClaw * | myClaw Bound model functor claw, for checking relationships between models. |
| const str | myLabel String label, used to label functor results for printer system. |
| const str | myTimingLabel String label, used to label functor timing data for printer system. |
| FunctorStatus | myStatus Status: |
| int | myVertexID Internal storage of the vertex ID number used by the printer system to identify functors. |
| int | myTimingVertexID ID assigned by printers to the timing data output stream. |
| bool | verbose Debug flag. |
| Options | myOptions Internal storage of function options, as a YAML node. |
| Options | mySubCaps Internal storage of function sub-capabilities, as a YAML node. |
| std::set< sspair > | myDependees List of all capability,type pairs of functors downstream of this one in the dependency tree. |
| std::set< str > | allowedModels List of allowed models. |
| std::set< str > | conditionalModels List of conditional models. |
| std::set< std::set< str > > | allowedGroupCombos List of allowed model group combinations. |
| std::map< str, std::set< str > > | modelGroups Map from model group names to group contents. |
| std::set< const DRes::Observable * > | matched_observables The set of observables that this functor matches. |
| std::set< const DRes::ModuleRule * > | matched_module_rules Set of module rules against which this functor has been tested and found to match. |
| std::set< const DRes::BackendRule * > | matched_backend_rules Set of backend rules against which this functor has been tested and found to match. |
Detailed Description
class Gambit::primary_model_functor;
Functors specific to primary ModelParameters objects
These allow direct access to the functor contents via a raw pointer, so that the parameter values can be set (not allowed via safe pointers).
Public Functions Documentation
function primary_model_functor
primary_model_functor(
void(*)(ModelParameters &) inputFunction,
str func_name,
str func_capability,
str result_type,
str origin_name,
Models::ModelFunctorClaw & claw
)
Constructor.
Primary model functor class method definitions.
Constructor
function getcontentsPtr
ModelParameters * getcontentsPtr()
Functor contents raw pointer “get” function Returns a raw pointer to myValue, so that the contents may be modified (intended for setting parameter values in primary ModelParameters objects)
function ~primary_model_functor
inline virtual ~primary_model_functor()
Destructor.
Updated on 2025-02-12 at 16:10:31 +0000