Public Member Functions |
Protected Member Functions |
Protected Attributes |
Friends |
List of all members
Gambit::module_functor_common Class Reference Functor derived class for module functions. More...
Inheritance diagram for Gambit::module_functor_common:
![]()
Collaboration diagram for Gambit::module_functor_common:
![]()
Detailed DescriptionFunctor derived class for module functions. Definition at line 399 of file functors.hpp. Constructor & Destructor Documentation◆ module_functor_common()
Constructor. Definition at line 637 of file functors.cpp. References check_missing_LogTag(), globlMaxThreads, LOCAL_INFO, Gambit::Models::ModelFunctorClaw::model_exists(), myLogTag, Gambit::functor::myOrigin, Gambit::Logging::str2tag(), and Gambit::utils_error(). 662 if (globlMaxThreads == 0) utils_error().raise(LOCAL_INFO,"Cannot determine number of hardware threads available on this system."); bool iCanManageLoops Flag indicating whether this function can manage a loop over other functions. Definition: functors.hpp:624 bool point_exception_raised A flag indicating whether or not this functor has invalidated the current point. Definition: functors.hpp:600 str myOrigin Internal storage of the name of the module or backend to which the function belongs. Definition: functors.hpp:326 #define FUNCTORS_BASE_INVALIDATION_RATE Minimum invaldiation rate (should be 0<...<<1) Definition: functors.hpp:58 #define FUNCTORS_FADE_RATE Decay rate of average runtime estimate [(number of functor evaluations)^-1]. Definition: functors.hpp:56 bool myTimingPrintFlag Flag to select whether or not the timing data for this function's execution should be printed;... Definition: functors.hpp:585 double pInvalidation Probability that functors invalidates point in model parameter space. Definition: functors.hpp:612 long long * myCurrentIteration Pointer to counters for iterations of nested functor loop. Definition: functors.hpp:643 functor * myLoopManager Pointer to the functor that mangages the loop that this function runs inside of. Definition: functors.hpp:637 bool * already_printed_timing Has timing data already been sent to the printer? Definition: functors.hpp:621 std::chrono::time_point< std::chrono::system_clock > * end Definition: functors.hpp:597 str myLoopManagerCapability Capability of a function that mangages a loop that this function can run inside of. Definition: functors.hpp:633 std::chrono::time_point< std::chrono::system_clock > * start Beginning and end timing points. Definition: functors.hpp:597 void check_missing_LogTag() Check if an appropriate LogTag for this functor is missing from the logging system. Definition: functors.cpp:680 bool iRunNested Flag indicating whether this function can run nested in a loop over functions. Definition: functors.hpp:630 str myLoopManagerType Capability of a function that mangages a loop that this function can run inside of. Definition: functors.hpp:635 const int globlMaxThreads Maximum number of OpenMP threads this MPI process is permitted to launch in total. Definition: functors.hpp:646
Here is the call graph for this function:
![]() ◆ ~module_functor_common()
Destructor. Definition at line 669 of file functors.cpp. References already_printed, already_printed_timing, end, myCurrentIteration, needs_recalculating, and start. long long * myCurrentIteration Pointer to counters for iterations of nested functor loop. Definition: functors.hpp:643 bool * already_printed_timing Has timing data already been sent to the printer? Definition: functors.hpp:621 std::chrono::time_point< std::chrono::system_clock > * end Definition: functors.hpp:597 std::chrono::time_point< std::chrono::system_clock > * start Beginning and end timing points. Definition: functors.hpp:597 Member Function Documentation◆ acknowledgeInvalidation()
Acknowledge that this functor invalidated the current point in model space. Definition at line 741 of file functors.cpp. References breakLoop(), fadeRate, FUNCTORS_BASE_INVALIDATION_RATE, pInvalidation, point_exception_raised, raised_point_exception, and Gambit::invalid_point_exception::set_thrower(). Referenced by Gambit::module_functor< void >::calculate(), iterate(), and notifyOfInvalidation(). bool point_exception_raised A flag indicating whether or not this functor has invalidated the current point. Definition: functors.hpp:600 #define FUNCTORS_BASE_INVALIDATION_RATE Minimum invaldiation rate (should be 0<...<<1) Definition: functors.hpp:58 double pInvalidation Probability that functors invalidates point in model parameter space. Definition: functors.hpp:612 invalid_point_exception raised_point_exception An exception raised because this functor has invalidated the current point. Definition: functors.hpp:603 virtual void breakLoop() Tell the functor that the loop it manages should break now. Definition: functors.cpp:871
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ backend_conditional_dependencies() [1/3]
Getter for listing backend-specific conditional dependencies (4-string version) Reimplemented from Gambit::functor. Definition at line 989 of file functors.cpp. References myBackendConditionalDependencies. Referenced by backend_conditional_dependencies(), and resolveBackendReq(). 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) Definition: functors.cpp:989 str type() const Getter for the wrapped function's reported return type. Definition: functors.cpp:119 std::map< std::vector< str >, std::set< sspair > > myBackendConditionalDependencies Map from (vector with 4 strings: backend req, type, backend, version) to (set of {conditional depende... Definition: functors.hpp:670
Here is the caller graph for this function:
![]() ◆ backend_conditional_dependencies() [2/3]
Getter for backend-specific conditional dependencies (3-string version) Reimplemented from Gambit::functor. Definition at line 1014 of file functors.cpp. References backend_conditional_dependencies(). 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) Definition: functors.cpp:989 str type() const Getter for the wrapped function's reported return type. Definition: functors.cpp:119
Here is the call graph for this function:
![]() ◆ backend_conditional_dependencies() [3/3]
Getter for backend-specific conditional dependencies (backend functor pointer version) Reimplemented from Gambit::functor. Definition at line 1020 of file functors.cpp. References backend_conditional_dependencies(), Gambit::functor::capability(), Gambit::functor::origin(), Gambit::functor::type(), and Gambit::functor::version(). 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) Definition: functors.cpp:989
Here is the call graph for this function:
![]() ◆ backendgroups()
Getter for listing backend requirement groups. Reimplemented from Gambit::functor. Definition at line 932 of file functors.cpp. References myGroups. std::set< str > myGroups Internal list of backend groups that this functor's requirements fall into. Definition: functors.hpp:649 ◆ backendreq_tags()Getter for listing tags associated with backend requirements. Reimplemented from Gambit::functor. Definition at line 962 of file functors.cpp. References backendreq_tagmap. std::map< sspair, std::set< str > > backendreq_tagmap Map from backend requirements to their rule tags. Definition: functors.hpp:696 ◆ backendreqs() [1/2]
Getter for listing all backend requirements. Reimplemented from Gambit::functor. Definition at line 934 of file functors.cpp. References myResolvableBackendReqs. std::set< sspair > myResolvableBackendReqs Set of all backend requirement-type string pairs currently available for resolution. Definition: functors.hpp:658 ◆ backendreqs() [2/2]Getter for listing backend requirements from a specific group. Reimplemented from Gambit::functor. Definition at line 936 of file functors.cpp. References combine_hdf5::group, and myGroupedBackendReqs. std::map< str, std::set< sspair > > myGroupedBackendReqs Set of backend requirement-type string pairs for specific backend groups. Definition: functors.hpp:661 ◆ backendspermitted()Getter for listing permitted backends. Reimplemented from Gambit::functor. Definition at line 949 of file functors.cpp. References permitted_map. std::map< sspair, std::set< sspair > > permitted_map Map from (backend requirement-type pairs) to (set of permitted {backend-version} pairs) ... Definition: functors.hpp:703 ◆ breakLoop()
Tell the functor that the loop it manages should break now. Reimplemented from Gambit::functor. Definition at line 871 of file functors.cpp. References myLoopIsDone. Referenced by acknowledgeInvalidation(), and iterate(). bool myLoopIsDone Flag indicating whether this function is ready to finish its loop (only relevant if iCanManageLoops =... Definition: functors.hpp:627
Here is the caller graph for this function:
![]() ◆ breakLoopFromManagedFunctor()
Tell the manager of the loop in which this functor runs that it is time to break the loop. Definition at line 855 of file functors.cpp. References Gambit::functor::breakLoop(), LOCAL_INFO, myLoopManager, Gambit::functor::name(), Gambit::functor::origin(), and Gambit::utils_error(). str origin() const Getter for the wrapped function's origin (module or backend name) Definition: functors.cpp:121 virtual void breakLoop() Tell the functor that the loop it manages should break now. Definition: functors.cpp:276 functor * myLoopManager Pointer to the functor that mangages the loop that this function runs inside of. Definition: functors.hpp:637
Here is the call graph for this function:
![]() ◆ canBeLoopManager()
Getter for revealing whether this is permitted to be a manager functor. Reimplemented from Gambit::functor. Definition at line 911 of file functors.cpp. References iCanManageLoops. bool iCanManageLoops Flag indicating whether this function can manage a loop over other functions. Definition: functors.hpp:624 ◆ check_missing_LogTag()
Check if an appropriate LogTag for this functor is missing from the logging system. Definition at line 680 of file functors.cpp. References LOCAL_INFO, myLogTag, Gambit::functor::myName, Gambit::functor::myOrigin, and Gambit::utils_warning(). Referenced by module_functor_common(). 688 << "This is probably because there is no log specified for " << myOrigin << " in your yaml file."; str myOrigin Internal storage of the name of the module or backend to which the function belongs. Definition: functors.hpp:326 EXPORT_SYMBOLS warning & utils_warning() Utility warnings. Definition: standalone_error_handlers.cpp:34
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ dependencies()
Getter for listing currently activated dependencies. Reimplemented from Gambit::functor. Definition at line 930 of file functors.cpp. References myDependencies. std::set< sspair > myDependencies Vector of dependency-type string pairs. Definition: functors.hpp:664 ◆ entering_multithreaded_region()
Definition at line 737 of file functors.hpp. References Gambit::FunctorHelp::entering_multithreaded_region(). Referenced by Gambit::module_functor< void >::calculate(). void entering_multithreaded_region(module_functor_common &functor) Definition: functors_with_signals.cpp:76
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ fill_activeModelFlags()
Construct the list of known models only if it doesn't yet exist. Definition at line 1544 of file functors.cpp. References activeModelFlags, Gambit::functor::allowedModels, Gambit::functor::modelGroups, myModelConditionalBackendReqs, and myModelConditionalDependencies. Referenced by Gambit::module_functor< void >::calculate(), and notifyOfModel(). 1550 for (auto it = allowedModels.begin(); it != allowedModels.end(); ++it) { activeModelFlags[*it] = false; } 1553 { for (auto jt = it->second.begin(); jt != it->second.end(); ++jt) { activeModelFlags[*jt] = false; } } 1555 for (auto it = myModelConditionalDependencies.begin(); it != myModelConditionalDependencies.end(); ++it) { activeModelFlags[it->first] = false; } 1556 for (auto it = myModelConditionalBackendReqs.begin(); it != myModelConditionalBackendReqs.end(); ++it) { activeModelFlags[it->first] = false; } std::map< str, std::set< str > > modelGroups Map from model group names to group contents. Definition: functors.hpp:370 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) Definition: functors.hpp:679 std::map< str, std::set< sspair > > myModelConditionalBackendReqs Map from models to (set of {conditional backend requirement-type} pairs) Definition: functors.hpp:676 std::map< str, std::set< sspair > > myModelConditionalDependencies Map from models to (set of {conditional dependency-type} pairs) Definition: functors.hpp:673
Here is the caller graph for this function:
![]() ◆ finishTiming()Do post-calculate timing things. Definition at line 1677 of file functors.cpp. References end, fadeRate, FUNCTORS_BASE_INVALIDATION_RATE, needs_recalculating, pInvalidation, runtime_average, and start. Referenced by Gambit::module_functor< void >::calculate(). #define FUNCTORS_BASE_INVALIDATION_RATE Minimum invaldiation rate (should be 0<...<<1) Definition: functors.hpp:58 double pInvalidation Probability that functors invalidates point in model parameter space. Definition: functors.hpp:612 std::chrono::time_point< std::chrono::system_clock > * end Definition: functors.hpp:597 std::chrono::time_point< std::chrono::system_clock > * start Beginning and end timing points. Definition: functors.hpp:597
Here is the caller graph for this function:
![]() ◆ forcematchingbackend()Getter for listing backend requirements that must be resolved from the same backend. Reimplemented from Gambit::functor. Definition at line 975 of file functors.cpp. References myForcedMatches. 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 ba... Definition: functors.hpp:706 ◆ getActiveModelFlag()
Indicate whether or not a known model is activated or not. Definition at line 780 of file functors.cpp. References activeModelFlags, LOCAL_INFO, Gambit::model_error(), Gambit::functor::myName, and Gambit::functor::myOrigin. str myOrigin Internal storage of the name of the module or backend to which the function belongs. Definition: functors.hpp:326 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) Definition: functors.hpp:679
Here is the call graph for this function:
![]() ◆ getChosenReqFromGroup()Return a safe pointer to a string indicating which backend requirement has been activated for a given backend group. Definition at line 795 of file functors.cpp. References chosenReqsFromGroups, and combine_hdf5::group. std::map< str, str > chosenReqsFromGroups Map from groups to backend reqs, indicating which backend req has been activated for which backend gr... Definition: functors.hpp:652 ◆ getInvalidationRate()
Getter for invalidation rate. Reimplemented from Gambit::functor. Definition at line 768 of file functors.cpp. References pInvalidation. double pInvalidation Probability that functors invalidates point in model parameter space. Definition: functors.hpp:612 ◆ getRuntimeAverage()
Getter for averaged runtime. Reimplemented from Gambit::functor. Definition at line 694 of file functors.cpp. References runtime_average. ◆ init_memory()
Initialise the memory of this functor. Reimplemented in Gambit::module_functor< TYPE >, and Gambit::module_functor< ModelParameters >. Definition at line 1617 of file functors.cpp. References already_printed, already_printed_timing, end, globlMaxThreads, iRunNested, generate_raster_scan_settings::n, needs_recalculating, and start. Referenced by reset(). 1620 // Reserve enough space to hold as many timing points and recalculation flags as there are slots (threads) allowed
bool * already_printed_timing Has timing data already been sent to the printer? Definition: functors.hpp:621 std::chrono::time_point< std::chrono::system_clock > * end Definition: functors.hpp:597 std::chrono::time_point< std::chrono::system_clock > * start Beginning and end timing points. Definition: functors.hpp:597 bool iRunNested Flag indicating whether this function can run nested in a loop over functions. Definition: functors.hpp:630 const int globlMaxThreads Maximum number of OpenMP threads this MPI process is permitted to launch in total. Definition: functors.hpp:646
Here is the caller graph for this function:
![]() ◆ init_myCurrentIteration_if_NULL()
Initialise the array holding the current iteration(s) of this functor. Definition at line 835 of file functors.cpp. References globlMaxThreads, iRunNested, and myCurrentIteration. Referenced by iterationPtr(), and setIteration(). 841 if(myCurrentIteration==NULL) // Check again in case two threads managed to get this far in sequence. 843 // Set the number of slots to the max number of threads allowed iff this functor can run in parallel long long * myCurrentIteration Pointer to counters for iterations of nested functor loop. Definition: functors.hpp:643 bool iRunNested Flag indicating whether this function can run nested in a loop over functions. Definition: functors.hpp:630 const int globlMaxThreads Maximum number of OpenMP threads this MPI process is permitted to launch in total. Definition: functors.hpp:646
Here is the caller graph for this function:
![]() ◆ iterate()
Execute a single iteration in the loop managed by this functor. Definition at line 802 of file functors.cpp. References acknowledgeInvalidation(), breakLoop(), and myNestedFunctorList. 812 (*it)->reset_and_calculate(); // Reset the nested functor so that it recalculates, then set it off 817 if (omp_get_level()==0) throw(e); // If not in an OpenMP parallel block, inform of invalidation and throw onwards 821 // Skip the rest of the iteration, without trying to evaluate the rest of the loop, and wrap it up. virtual void acknowledgeInvalidation(invalid_point_exception &, functor *f=NULL) Acknowledge that this functor invalidated the current point in model space. Definition: functors.cpp:741 std::vector< functor * > myNestedFunctorList Vector of functors that have been set up to run nested within this one. Definition: functors.hpp:640 virtual void breakLoop() Tell the functor that the loop it manages should break now. Definition: functors.cpp:871
Here is the call graph for this function:
![]() ◆ iterationPtr()
Return a safe pointer to the iteration number in the loop in which this functor runs. Definition at line 902 of file functors.cpp. References init_myCurrentIteration_if_NULL(), and myCurrentIteration. Referenced by Gambit::register_function_nesting(). virtual void init_myCurrentIteration_if_NULL() Initialise the array holding the current iteration(s) of this functor. Definition: functors.cpp:835 long long * myCurrentIteration Pointer to counters for iterations of nested functor loop. Definition: functors.hpp:643
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ leaving_multithreaded_region()
Definition at line 738 of file functors.hpp. References Gambit::FunctorHelp::leaving_multithreaded_region(). Referenced by Gambit::module_functor< void >::calculate(). void leaving_multithreaded_region(module_functor_common &functor) Definition: functors_with_signals.cpp:92
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ loopIsDone()
Return a safe pointer to the flag indicating that a loop managed by this functor should break now. Definition at line 880 of file functors.cpp. References myLoopIsDone. Referenced by Gambit::register_function(). bool myLoopIsDone Flag indicating whether this function is ready to finish its loop (only relevant if iCanManageLoops =... Definition: functors.hpp:627
Here is the caller graph for this function:
![]() ◆ loopManagerCapability()
Getter for revealing the required capability of the wrapped function's loop manager. Reimplemented from Gambit::functor. Definition at line 921 of file functors.cpp. References myLoopManagerCapability. Referenced by Gambit::dep_bucket< TYPE >::use_thread_index(). str myLoopManagerCapability Capability of a function that mangages a loop that this function can run inside of. Definition: functors.hpp:633
Here is the caller graph for this function:
![]() ◆ loopManagerName()
Getter for revealing the name of the wrapped function's assigned loop manager. Reimplemented from Gambit::functor. Definition at line 925 of file functors.cpp. References myLoopManager, and Gambit::functor::name(). Referenced by Gambit::dep_bucket< TYPE >::use_thread_index(). functor * myLoopManager Pointer to the functor that mangages the loop that this function runs inside of. Definition: functors.hpp:637
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ loopManagerOrigin()
Getter for revealing the module of the wrapped function's assigned loop manager. Reimplemented from Gambit::functor. Definition at line 927 of file functors.cpp. References myLoopManager, and Gambit::functor::origin(). Referenced by Gambit::dep_bucket< TYPE >::use_thread_index(). str origin() const Getter for the wrapped function's origin (module or backend name) Definition: functors.cpp:121 functor * myLoopManager Pointer to the functor that mangages the loop that this function runs inside of. Definition: functors.hpp:637
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ loopManagerType()
Getter for revealing the required type of the wrapped function's loop manager. Reimplemented from Gambit::functor. Definition at line 923 of file functors.cpp. References myLoopManagerType. str myLoopManagerType Capability of a function that mangages a loop that this function can run inside of. Definition: functors.hpp:635 ◆ makeBackendMatchingRule()Add one or more rules for forcing backends reqs with the same tags to always be resolved from the same backend. Add one or more rules that force backends reqs with the same tag to always be resolved from the same backend. Definition at line 1287 of file functors.cpp. References backendreq_tagmap, Gambit::Utils::delimiterSplit(), LOCAL_INFO, myBackendReqs, myForcedMatches, Gambit::functor::name(), Gambit::functor::origin(), Gambit::Utils::strip_parentheses(), and Gambit::utils_error(). Referenced by Gambit::apply_backend_matching_rule(). EXPORT_SYMBOLS void strip_parentheses(str &) Strips leading and/or trailing parentheses from a string. Definition: util_functions.cpp:133 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 ba... Definition: functors.hpp:706 std::set< sspair > myBackendReqs Set of all backend requirement-type string pairs. Definition: functors.hpp:655 str origin() const Getter for the wrapped function's origin (module or backend name) Definition: functors.cpp:121 std::map< sspair, std::set< str > > backendreq_tagmap Map from backend requirements to their rule tags. Definition: functors.hpp:696 EXPORT_SYMBOLS std::vector< str > delimiterSplit(str s, str delim) Split a string into a vector of strings, using a delimiter, and removing any whitespace around the de... Definition: util_functions.cpp:93
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ makeBackendOptionRule()Add a rule for dictating which backends can be used to fulfill which backend requirements. Definition at line 1222 of file functors.cpp. References backendreq_tagmap, Gambit::Utils::delimiterSplit(), Gambit::Utils::is_disjoint(), LOCAL_INFO, myBackendReqs, Gambit::functor::name(), Gambit::functor::origin(), setPermittedBackend(), Gambit::Utils::strip_parentheses(), and Gambit::utils_error(). Referenced by Gambit::apply_backend_option_rule(). 1251 // For each of the matching backend requirements, set the chosen backend-version pairs as permitted
EXPORT_SYMBOLS void strip_parentheses(str &) Strips leading and/or trailing parentheses from a string. Definition: util_functions.cpp:133 std::set< sspair > myBackendReqs Set of all backend requirement-type string pairs. Definition: functors.hpp:655 str origin() const Getter for the wrapped function's origin (module or backend name) Definition: functors.cpp:121 std::map< sspair, std::set< str > > backendreq_tagmap Map from backend requirements to their rule tags. Definition: functors.hpp:696 bool is_disjoint(const Set1 &set1, const Set2 &set2) Test if two sets are disjoint (works on any sorted std container I think) Definition: util_functions.hpp:163 EXPORT_SYMBOLS std::vector< str > delimiterSplit(str s, str delim) Split a string into a vector of strings, using a delimiter, and removing any whitespace around the de... Definition: util_functions.cpp:93 void setPermittedBackend(str req, str be, str ver) Add a single permitted backend version. Definition: functors.cpp:1262
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ makeBackendRuleForModel()Add a rule for activating backend requirements according to the model being scanned. Definition at line 1165 of file functors.cpp. References backendreq_tagmap, Gambit::Utils::delimiterSplit(), Gambit::Utils::is_disjoint(), myBackendReqs, setModelConditionalBackendReq(), and Gambit::Utils::strip_parentheses(). EXPORT_SYMBOLS void strip_parentheses(str &) Strips leading and/or trailing parentheses from a string. Definition: util_functions.cpp:133 std::set< sspair > myBackendReqs Set of all backend requirement-type string pairs. Definition: functors.hpp:655 std::map< sspair, std::set< str > > backendreq_tagmap Map from backend requirements to their rule tags. Definition: functors.hpp:696 bool is_disjoint(const Set1 &set1, const Set2 &set2) Test if two sets are disjoint (works on any sorted std container I think) Definition: util_functions.hpp:163 EXPORT_SYMBOLS std::vector< str > delimiterSplit(str s, str delim) Split a string into a vector of strings, using a delimiter, and removing any whitespace around the de... Definition: util_functions.cpp:93 void setModelConditionalBackendReq(str model, str req, str type) Add a model conditional backend requirement for multiple models. Definition: functors.cpp:1190
Here is the call graph for this function:
![]() ◆ model_conditional_backend_reqs()
Getter for listing model-specific conditional backend requirements. Reimplemented from Gambit::functor. Definition at line 1036 of file functors.cpp. References Gambit::functor::find_friend_or_parent_model_in_map(), and myModelConditionalBackendReqs. Referenced by notifyOfModel(). 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... Definition: functors.cpp:607 std::map< str, std::set< sspair > > myModelConditionalBackendReqs Map from models to (set of {conditional backend requirement-type} pairs) Definition: functors.hpp:676
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ model_conditional_dependencies()
Getter for listing model-specific conditional dependencies. Reimplemented from Gambit::functor. Definition at line 1027 of file functors.cpp. References Gambit::functor::find_friend_or_parent_model_in_map(), and myModelConditionalDependencies. Referenced by notifyOfModel(). 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... Definition: functors.cpp:607 std::map< str, std::set< sspair > > myModelConditionalDependencies Map from models to (set of {conditional dependency-type} pairs) Definition: functors.hpp:673
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ notifyOfBackends()
Indicate to the functor which backends are actually loaded and working. Reimplemented from Gambit::functor. Definition at line 1341 of file functors.cpp. References missing_backends, Gambit::functor::myStatus, and required_classloading_backends. 1345 for (auto it = required_classloading_backends.begin(); it != required_classloading_backends.end(); ++it) std::map< str, std::set< str > > required_classloading_backends Map from required classloading backends to their versions. Definition: functors.hpp:709 std::vector< str > missing_backends Vector of required backends currently missing. Definition: functors.hpp:712 int myStatus Status: -4 = required backend absent (backend ini functions) -3 = required classes absent -2 = functi... Definition: functors.hpp:346 ◆ notifyOfDependee()Notify the functor that another functor depends on it. Reimplemented from Gambit::functor. Definition at line 1410 of file functors.cpp. References dependency_functor_map, Gambit::functor::getDependees(), Gambit::functor::getSubCaps(), Gambit::functor::myDependees, Gambit::functor::notifyOfSubCaps(), and Gambit::functor::quantity(). void notifyOfSubCaps(const Options &) Notify the functor about an instance of the options class that contains sub-capability information... Definition: functors.cpp:381 std::set< sspair > myDependees List of all capability,type pairs of functors downstream of this one in the dependency tree... Definition: functors.hpp:361 std::map< sspair, functor * > dependency_functor_map Map from (dependency-type pairs) to pointers to functors used to resolve them that set dependency fun... Definition: functors.hpp:687
Here is the call graph for this function:
![]() ◆ notifyOfInvalidation()Tell the functor that it invalidated the current point in model space, pass a message explaining why, and throw an exception. Reimplemented from Gambit::functor. Definition at line 734 of file functors.cpp. References acknowledgeInvalidation(), Gambit::invalid_point(), Gambit::invalid_point_exception::raise(), and retrieve_invalid_point_exception(). virtual invalid_point_exception * retrieve_invalid_point_exception() Retrieve the previously saved exception generated when this functor invalidated the current point in ... Definition: functors.cpp:756 virtual void acknowledgeInvalidation(invalid_point_exception &, functor *f=NULL) Acknowledge that this functor invalidated the current point in model space. Definition: functors.cpp:741 virtual void raise(const std::string &) Raise the exception, i.e. throw it. Exact override of base method. Definition: exceptions.cpp:422 invalid_point_exception & invalid_point() Invalid point exceptions. Definition: standalone_error_handlers.cpp:83
Here is the call graph for this function:
![]() ◆ notifyOfModel()Notify the functor that a certain model is being scanned, so that it can activate its dependencies and backend reqs accordingly. Reimplemented from Gambit::functor. Definition at line 1561 of file functors.cpp. References activeModelFlags, backendreq_groups, Gambit::Models::ModelFunctorClaw::downstream_of(), fill_activeModelFlags(), model_conditional_backend_reqs(), model_conditional_dependencies(), Gambit::Models::ModelFunctorClaw::model_exists(), Gambit::functor::myClaw, myDependencies, myGroupedBackendReqs, myResolvableBackendReqs, and Gambit::functor::verbose. 1577 // Compare with models that have already been activated, to avoid activating multiple models of the same lineage. 1581 if (activation_candidate != active_model and myClaw->model_exists(active_model) and jt->second) 1583 // If the already active model can be upcast to the activation candidate, abort the activiation of the candidate. 1585 // If the candidate can be upcast to the already active model, activate the candidate instead of the already active model. 1589 cout << "model: " << model << " " << "model to be activated: " << activation_candidate << "(" << it->second << ") active model: " << active_model << "(" << jt->second << ")" << endl; 1590 cout << "active model lives below:" << myClaw->downstream_of(active_model, activation_candidate) << endl; 1591 cout << "activation candidate lives below:" << myClaw->downstream_of(activation_candidate, active_model) << endl; 1595 if (verbose) cout << "Activate candidate " << activation_candidate << "?" << it->second << endl; 1600 // If this model fits any conditional dependencies (or descended from one that can be interpreted as one that fits any), then activate them. 1602 for (std::set<sspair>::iterator it = deps_to_activate.begin() ; it != deps_to_activate.end(); ++it) 1606 // If this model fits any conditional backend requirements (or descended from one that can be interpreted as one that fits any), then activate them. 1608 for (std::set<sspair>::iterator it = backend_reqs_to_activate.begin() ; it != backend_reqs_to_activate.end(); ++it) void fill_activeModelFlags() Construct the list of known models only if it doesn't yet exist. Definition: functors.cpp:1544 std::map< sspair, str > backendreq_groups Map from backend requirements to their designated groups. Definition: functors.hpp:693 bool downstream_of(const str &, const str &) const Check if model 1 exists somewhere downstream of (and can be therefore be interpreted as a) model 2... Definition: models.cpp:286 std::set< sspair > myResolvableBackendReqs Set of all backend requirement-type string pairs currently available for resolution. Definition: functors.hpp:658 virtual std::set< sspair > model_conditional_dependencies(str model) Getter for listing model-specific conditional dependencies. Definition: functors.cpp:1027 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) Definition: functors.hpp:679 std::set< sspair > myDependencies Vector of dependency-type string pairs. Definition: functors.hpp:664 virtual std::set< sspair > model_conditional_backend_reqs(str model) Getter for listing model-specific conditional backend requirements. Definition: functors.cpp:1036 bool model_exists(const str &) const Indicate whether a model is recognised by GAMBIT or not. Definition: models.cpp:209 std::map< str, std::set< sspair > > myGroupedBackendReqs Set of backend requirement-type string pairs for specific backend groups. Definition: functors.hpp:661 const Models::ModelFunctorClaw * myClaw Bound model functor claw, for checking relationships between models. Definition: functors.hpp:332
Here is the call graph for this function:
![]() ◆ requiresTimingPrinting()
Getter indicating if the timing data for this function's execution should be printed. Reimplemented from Gambit::functor. Definition at line 706 of file functors.cpp. References myTimingPrintFlag. bool myTimingPrintFlag Flag to select whether or not the timing data for this function's execution should be printed;... Definition: functors.hpp:585 ◆ reset() [1/2]
Reset functor. Reset functor for all threads. Reimplemented from Gambit::functor. Definition at line 712 of file functors.cpp. References already_printed, already_printed_timing, globlMaxThreads, iCanManageLoops, init_memory(), iRunNested, generate_raster_scan_settings::n, needs_recalculating, point_exception_raised, and resetLoop(). bool iCanManageLoops Flag indicating whether this function can manage a loop over other functions. Definition: functors.hpp:624 bool point_exception_raised A flag indicating whether or not this functor has invalidated the current point. Definition: functors.hpp:600 virtual void resetLoop() Provide a way to reset the flag indicating that a loop managed by this functor should break... Definition: functors.cpp:886 bool * already_printed_timing Has timing data already been sent to the printer? Definition: functors.hpp:621 bool iRunNested Flag indicating whether this function can run nested in a loop over functions. Definition: functors.hpp:630 const int globlMaxThreads Maximum number of OpenMP threads this MPI process is permitted to launch in total. Definition: functors.hpp:646
Here is the call graph for this function:
![]() ◆ reset() [2/2]Reset functor for one thread only. Reimplemented from Gambit::functor. Definition at line 724 of file functors.cpp. References already_printed, already_printed_timing, iCanManageLoops, init_memory(), needs_recalculating, and resetLoop(). bool iCanManageLoops Flag indicating whether this function can manage a loop over other functions. Definition: functors.hpp:624 virtual void resetLoop() Provide a way to reset the flag indicating that a loop managed by this functor should break... Definition: functors.cpp:886 bool * already_printed_timing Has timing data already been sent to the printer? Definition: functors.hpp:621
Here is the call graph for this function:
![]() ◆ resetLoop()
Provide a way to reset the flag indicating that a loop managed by this functor should break. Definition at line 886 of file functors.cpp. References myLoopIsDone. Referenced by reset(). bool myLoopIsDone Flag indicating whether this function is ready to finish its loop (only relevant if iCanManageLoops =... Definition: functors.hpp:627
Here is the caller graph for this function:
![]() ◆ resolveBackendReq()Resolve a backend requirement using a pointer to another functor object. Reimplemented from Gambit::functor. Definition at line 1446 of file functors.cpp. References backend_conditional_dependencies(), backendreq_groups, backendreq_map, chosenReqsFromGroups, end, combine_hdf5::group, LOCAL_INFO, myDependencies, Gambit::functor::myName, Gambit::functor::myOrigin, Gambit::functor::origin(), permitted_map, Gambit::functor::quantity(), Gambit::functor::safe_version(), Gambit::functor::setStatus(), Gambit::utils_error(), and Gambit::functor::version(). 1451 //First make sure that the proposed backend function fulfills a known requirement of the module function. 1458 if ( //Check for a condition under which the proposed backend function is an acceptable fit for this requirement. 1459 //Check whether there are have been any permitted backends stated for this requirement (if not, anything goes). 1461 //Iterate over the vector of backend-version pairs for this requirement to see if all versions of the 1463 (std::find(permitted_map[key].begin(), permitted_map[key].end(), generic_proposal) != permitted_map[key].end()) || 1464 //Iterate over the vector of backend-version pairs again to see if the specific backend version 1466 (std::find(permitted_map[key].begin(), permitted_map[key].end(), proposal) != permitted_map[key].end()) ) 1475 //If this is also the condition under which any backend-conditional dependencies should be activated, do it. 1477 for (std::set<sspair>::iterator it = deps_to_activate.begin() ; it != deps_to_activate.end(); ++it) 1482 // Add a dependency on the initialisation function of the backend that this backend function hails from (if not done already). 1483 sspair be_ini_quantity(be_functor->origin() + "_" + be_functor->safe_version() + "_init", "void"); 1484 if (std::find(myDependencies.begin(), myDependencies.end(), be_ini_quantity) == myDependencies.end()) 1496 //If it is part of a group, make sure another backend requirement from the same group has not already been activated. 1533 else //The proposed backend function does not fulfill any known requirement of the module function. std::map< sspair, void(*)(functor *)> backendreq_map Map from (backend requirement-type pairs) to (pointers to templated void functions that set backend r... Definition: functors.hpp:700 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) Definition: functors.cpp:989 str myOrigin Internal storage of the name of the module or backend to which the function belongs. Definition: functors.hpp:326 std::map< sspair, str > backendreq_groups Map from backend requirements to their designated groups. Definition: functors.hpp:693 std::set< sspair > myDependencies Vector of dependency-type string pairs. Definition: functors.hpp:664 std::map< sspair, std::set< sspair > > permitted_map Map from (backend requirement-type pairs) to (set of permitted {backend-version} pairs) ... Definition: functors.hpp:703 std::chrono::time_point< std::chrono::system_clock > * end Definition: functors.hpp:597 std::map< str, str > chosenReqsFromGroups Map from groups to backend reqs, indicating which backend req has been activated for which backend gr... Definition: functors.hpp:652
Here is the call graph for this function:
![]() ◆ resolveDependency()Resolve a dependency using a pointer to another functor object. Reimplemented from Gambit::functor. Definition at line 1386 of file functors.cpp. References dependency_functor_map, dependency_map, LOCAL_INFO, myDependencies, Gambit::functor::myName, Gambit::functor::myOrigin, Gambit::functor::myPurpose, Gambit::functor::notifyOfDependee(), Gambit::functor::quantity(), Gambit::functor::setPurpose(), and Gambit::utils_error(). Referenced by resolveLoopManager(). 1399 if (dependency_map.find(key) != dependency_map.end()) (*dependency_map[key])(dep_functor,this); 1404 // save the pointer to the resolving functor to allow this functor to notify it of future dependees
str myOrigin Internal storage of the name of the module or backend to which the function belongs. Definition: functors.hpp:326 str myPurpose Purpose of the function (relevant for output and next-to-output functors) Definition: functors.hpp:330 std::map< sspair, void(*)(functor *, module_functor_common *)> dependency_map Map from (dependency-type pairs) to (pointers to templated void functions that set dependency functor... Definition: functors.hpp:683 std::map< sspair, functor * > dependency_functor_map Map from (dependency-type pairs) to pointers to functors used to resolve them that set dependency fun... Definition: functors.hpp:687 std::set< sspair > myDependencies Vector of dependency-type string pairs. Definition: functors.hpp:664
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ resolveLoopManager()Set this functor's loop manager (if it has one) Reimplemented from Gambit::functor. Definition at line 1423 of file functors.cpp. References Gambit::functor::canBeLoopManager(), Gambit::functor::capability(), LOCAL_INFO, myLoopManager, myLoopManagerCapability, myLoopManagerType, Gambit::functor::myName, Gambit::functor::myOrigin, resolveDependency(), Gambit::functor::type(), and Gambit::utils_error(). 1425 if (dep_functor->capability() != myLoopManagerCapability or not dep_functor->canBeLoopManager())
str myOrigin Internal storage of the name of the module or backend to which the function belongs. Definition: functors.hpp:326 virtual void resolveDependency(functor *dep_functor) Resolve a dependency using a pointer to another functor object. Definition: functors.cpp:1386 functor * myLoopManager Pointer to the functor that mangages the loop that this function runs inside of. Definition: functors.hpp:637 str myLoopManagerCapability Capability of a function that mangages a loop that this function can run inside of. Definition: functors.hpp:633 str myLoopManagerType Capability of a function that mangages a loop that this function can run inside of. Definition: functors.hpp:635
Here is the call graph for this function:
![]() ◆ retrieve_conditional_dep_type_pair()Retrieve full conditional dependency-type pair from conditional dependency only. Definition at line 1060 of file functors.cpp. References LOCAL_INFO, myConditionalDependencies, Gambit::functor::name(), Gambit::functor::origin(), setBackendConditionalDependency(), and Gambit::utils_error(). Referenced by setBackendConditionalDependencySingular(), and setModelConditionalDependencySingular(). std::map< str, str > myConditionalDependencies Map of conditional dependencies to their types. Definition: functors.hpp:667 str origin() const Getter for the wrapped function's origin (module or backend name) Definition: functors.cpp:121
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ retrieve_invalid_point_exception()
Retrieve the previously saved exception generated when this functor invalidated the current point in model space. Reimplemented from Gambit::functor. Definition at line 756 of file functors.cpp. References f, myNestedFunctorList, point_exception_raised, and raised_point_exception. Referenced by notifyOfInvalidation(). bool point_exception_raised A flag indicating whether or not this functor has invalidated the current point. Definition: functors.hpp:600 std::vector< functor * > myNestedFunctorList Vector of functors that have been set up to run nested within this one. Definition: functors.hpp:640 invalid_point_exception raised_point_exception An exception raised because this functor has invalidated the current point. Definition: functors.hpp:603
Here is the caller graph for this function:
![]() ◆ setBackendConditionalDependency()
Add a backend conditional dependency for multiple backend versions. Definition at line 1075 of file functors.cpp. References Gambit::Utils::delimiterSplit(), and setBackendConditionalDependencySingular(). Referenced by Gambit::register_backend_conditional_dependency(), and retrieve_conditional_dep_type_pair(). void setBackendConditionalDependencySingular(str, str, str, str, void(*)(functor *, module_functor_common *)) Add a backend conditional dependency for a single backend version. Definition: functors.cpp:1087 EXPORT_SYMBOLS std::vector< str > delimiterSplit(str s, str delim) Split a string into a vector of strings, using a delimiter, and removing any whitespace around the de... Definition: util_functions.cpp:93
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ setBackendConditionalDependencySingular()
Add a backend conditional dependency for a single backend version. Definition at line 1087 of file functors.cpp. References backendreq_types, dependency_map, LOCAL_INFO, myBackendConditionalDependencies, Gambit::functor::name(), Gambit::functor::origin(), retrieve_conditional_dep_type_pair(), setModelConditionalDependency(), and Gambit::utils_error(). Referenced by setBackendConditionalDependency(). sspair retrieve_conditional_dep_type_pair(str) Retrieve full conditional dependency-type pair from conditional dependency only. Definition: functors.cpp:1060 std::map< str, str > backendreq_types Map from backend requirements to their required types. Definition: functors.hpp:690 str origin() const Getter for the wrapped function's origin (module or backend name) Definition: functors.cpp:121 std::map< sspair, void(*)(functor *, module_functor_common *)> dependency_map Map from (dependency-type pairs) to (pointers to templated void functions that set dependency functor... Definition: functors.hpp:683 std::map< std::vector< str >, std::set< sspair > > myBackendConditionalDependencies Map from (vector with 4 strings: backend req, type, backend, version) to (set of {conditional depende... Definition: functors.hpp:670
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ setBackendReq()
Add an unconditional backend requirement The info gets updated later if this turns out to be contitional on a model. Add an unconditional backend requirement The info gets updated later if this turns out to be conditional on a model. Definition at line 1143 of file functors.cpp. References backendreq_groups, backendreq_map, backendreq_tagmap, backendreq_types, Gambit::Utils::delimiterSplit(), Gambit::Utils::fix_type(), combine_hdf5::group, myBackendReqs, myGroupedBackendReqs, myGroups, myResolvableBackendReqs, Gambit::Utils::strip_parentheses(), and Gambit::functor::type(). Referenced by Gambit::register_backend_requirement(). std::map< sspair, void(*)(functor *)> backendreq_map Map from (backend requirement-type pairs) to (pointers to templated void functions that set backend r... Definition: functors.hpp:700 std::map< str, str > backendreq_types Map from backend requirements to their required types. Definition: functors.hpp:690 EXPORT_SYMBOLS void strip_parentheses(str &) Strips leading and/or trailing parentheses from a string. Definition: util_functions.cpp:133 std::set< sspair > myBackendReqs Set of all backend requirement-type string pairs. Definition: functors.hpp:655 std::map< sspair, str > backendreq_groups Map from backend requirements to their designated groups. Definition: functors.hpp:693 std::map< sspair, std::set< str > > backendreq_tagmap Map from backend requirements to their rule tags. Definition: functors.hpp:696 std::set< sspair > myResolvableBackendReqs Set of all backend requirement-type string pairs currently available for resolution. Definition: functors.hpp:658 str type() const Getter for the wrapped function's reported return type. Definition: functors.cpp:119 std::map< str, std::set< sspair > > myGroupedBackendReqs Set of backend requirement-type string pairs for specific backend groups. Definition: functors.hpp:661 EXPORT_SYMBOLS std::vector< str > delimiterSplit(str s, str delim) Split a string into a vector of strings, using a delimiter, and removing any whitespace around the de... Definition: util_functions.cpp:93 std::set< str > myGroups Internal list of backend groups that this functor's requirements fall into. Definition: functors.hpp:649 str fix_type(str) Clean out whitespace and strip Gambit and default BOSSed class namespaces. Definition: type_equivalency.cpp:34
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ setCanBeLoopManager()
Setter for specifying whether this is permitted to be a manager functor, which runs other functors nested in a loop. Definition at line 909 of file functors.cpp. References iCanManageLoops. Referenced by Gambit::register_function(). bool iCanManageLoops Flag indicating whether this function can manage a loop over other functions. Definition: functors.hpp:624
Here is the caller graph for this function:
![]() ◆ setConditionalDependency()Add conditional dependency-type pairs in advance of later conditions. Definition at line 1054 of file functors.cpp. References myConditionalDependencies. Referenced by Gambit::register_conditional_dependency(). std::map< str, str > myConditionalDependencies Map of conditional dependencies to their types. Definition: functors.hpp:667
Here is the caller graph for this function:
![]() ◆ setDependency()
Add and activate unconditional dependencies. Definition at line 1045 of file functors.cpp. References dependency_map, Gambit::Utils::fix_type(), myDependencies, Gambit::functor::myPurpose, and Gambit::functor::purpose(). Referenced by Gambit::register_dependency(). str purpose() const Getter for purpose (relevant for output nodes, aka helper structures for the dep. resolution) ... Definition: functors.cpp:138 str myPurpose Purpose of the function (relevant for output and next-to-output functors) Definition: functors.hpp:330 std::map< sspair, void(*)(functor *, module_functor_common *)> dependency_map Map from (dependency-type pairs) to (pointers to templated void functions that set dependency functor... Definition: functors.hpp:683 std::set< sspair > myDependencies Vector of dependency-type string pairs. Definition: functors.hpp:664 str fix_type(str) Clean out whitespace and strip Gambit and default BOSSed class namespaces. Definition: type_equivalency.cpp:34
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ setFadeRate()Setter for the fade rate. Reimplemented from Gambit::functor. Definition at line 774 of file functors.cpp. References fadeRate. ◆ setIteration()
Setter for setting the iteration number in the loop in which this functor runs. Reimplemented from Gambit::functor. Definition at line 895 of file functors.cpp. References init_myCurrentIteration_if_NULL(), and myCurrentIteration. virtual void init_myCurrentIteration_if_NULL() Initialise the array holding the current iteration(s) of this functor. Definition: functors.cpp:835 long long * myCurrentIteration Pointer to counters for iterations of nested functor loop. Definition: functors.hpp:643
Here is the call graph for this function:
![]() ◆ setLoopManagerCapType()Setter for specifying the capability required of a manager functor, if it is to run this functor nested in a loop. Setter for specifying the capability and type required of a manager functor, if it is to run this functor nested in a loop. Definition at line 914 of file functors.cpp. References iRunNested, myLoopManagerCapability, and myLoopManagerType. Referenced by Gambit::register_function_nesting(). str myLoopManagerCapability Capability of a function that mangages a loop that this function can run inside of. Definition: functors.hpp:633 bool iRunNested Flag indicating whether this function can run nested in a loop over functions. Definition: functors.hpp:630 str myLoopManagerType Capability of a function that mangages a loop that this function can run inside of. Definition: functors.hpp:635
Here is the caller graph for this function:
![]() ◆ setModelConditionalBackendReq()Add a model conditional backend requirement for multiple models. Definition at line 1190 of file functors.cpp. References Gambit::Utils::delimiterSplit(), Gambit::LogTags::models, and setModelConditionalBackendReqSingular(). Referenced by makeBackendRuleForModel(). str type() const Getter for the wrapped function's reported return type. Definition: functors.cpp:119 EXPORT_SYMBOLS std::vector< str > delimiterSplit(str s, str delim) Split a string into a vector of strings, using a delimiter, and removing any whitespace around the de... Definition: util_functions.cpp:93 void setModelConditionalBackendReqSingular(str model, str req, str type) Add a model conditional backend requirement for a single model. Definition: functors.cpp:1202 Definition: log_tags.hpp:49
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ setModelConditionalBackendReqSingular()
Add a model conditional backend requirement for a single model. Definition at line 1202 of file functors.cpp. References backendreq_groups, Gambit::Utils::fix_type(), myGroupedBackendReqs, myModelConditionalBackendReqs, and myResolvableBackendReqs. Referenced by setModelConditionalBackendReq(). std::map< sspair, str > backendreq_groups Map from backend requirements to their designated groups. Definition: functors.hpp:693 std::set< sspair > myResolvableBackendReqs Set of all backend requirement-type string pairs currently available for resolution. Definition: functors.hpp:658 str type() const Getter for the wrapped function's reported return type. Definition: functors.cpp:119 std::map< str, std::set< sspair > > myGroupedBackendReqs Set of backend requirement-type string pairs for specific backend groups. Definition: functors.hpp:661 std::map< str, std::set< sspair > > myModelConditionalBackendReqs Map from models to (set of {conditional backend requirement-type} pairs) Definition: functors.hpp:676 str fix_type(str) Clean out whitespace and strip Gambit and default BOSSed class namespaces. Definition: type_equivalency.cpp:34
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ setModelConditionalDependency()
Add a model conditional dependency for multiple models. Definition at line 1117 of file functors.cpp. References Gambit::Utils::delimiterSplit(), Gambit::LogTags::models, and setModelConditionalDependencySingular(). Referenced by Gambit::register_model_conditional_dependency(), and setBackendConditionalDependencySingular(). void setModelConditionalDependencySingular(str, str, void(*)(functor *, module_functor_common *)) Add a model conditional dependency for a single model. Definition: functors.cpp:1129 EXPORT_SYMBOLS std::vector< str > delimiterSplit(str s, str delim) Split a string into a vector of strings, using a delimiter, and removing any whitespace around the de... Definition: util_functions.cpp:93 Definition: log_tags.hpp:49
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ setModelConditionalDependencySingular()
Add a model conditional dependency for a single model. Definition at line 1129 of file functors.cpp. References dependency_map, myModelConditionalDependencies, and retrieve_conditional_dep_type_pair(). Referenced by setModelConditionalDependency(). sspair retrieve_conditional_dep_type_pair(str) Retrieve full conditional dependency-type pair from conditional dependency only. Definition: functors.cpp:1060 std::map< sspair, void(*)(functor *, module_functor_common *)> dependency_map Map from (dependency-type pairs) to (pointers to templated void functions that set dependency functor... Definition: functors.hpp:683 std::map< str, std::set< sspair > > myModelConditionalDependencies Map from models to (set of {conditional dependency-type} pairs) Definition: functors.hpp:673
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ setNestedList()
Set the ordered list of pointers to other functors that should run nested in a loop managed by this one. Reimplemented from Gambit::functor. Definition at line 1370 of file functors.cpp. References iCanManageLoops, LOCAL_INFO, myNestedFunctorList, Gambit::functor::name(), Gambit::functor::origin(), and Gambit::utils_error(). bool iCanManageLoops Flag indicating whether this function can manage a loop over other functions. Definition: functors.hpp:624 std::vector< functor * > myNestedFunctorList Vector of functors that have been set up to run nested within this one. Definition: functors.hpp:640 str origin() const Getter for the wrapped function's origin (module or backend name) Definition: functors.cpp:121
Here is the call graph for this function:
![]() ◆ setPermittedBackend()Add a single permitted backend version. Definition at line 1262 of file functors.cpp. References backendreq_types, LOCAL_INFO, Gambit::functor::name(), Gambit::functor::origin(), permitted_map, and Gambit::utils_error(). Referenced by makeBackendOptionRule(). std::map< str, str > backendreq_types Map from backend requirements to their required types. Definition: functors.hpp:690 str origin() const Getter for the wrapped function's origin (module or backend name) Definition: functors.cpp:121 std::map< sspair, std::set< sspair > > permitted_map Map from (backend requirement-type pairs) to (set of permitted {backend-version} pairs) ... Definition: functors.hpp:703
Here is the call graph for this function:
![]()
Here is the caller graph for this function:
![]() ◆ setRequiredClassloader()Add a rule indicating that classes from a given backend must be available. Definition at line 1328 of file functors.cpp. References myDependencies, and required_classloading_backends. 1334 if (std::find(myDependencies.begin(), myDependencies.end(), be_ini_quantity) == myDependencies.end()) std::map< str, std::set< str > > required_classloading_backends Map from required classloading backends to their versions. Definition: functors.hpp:709 std::set< sspair > myDependencies Vector of dependency-type string pairs. Definition: functors.hpp:664 ◆ setTimingPrintRequirement()
Setter for indicating if the timing data for this function's execution should be printed. Reimplemented from Gambit::functor. Definition at line 700 of file functors.cpp. References myTimingPrintFlag. bool myTimingPrintFlag Flag to select whether or not the timing data for this function's execution should be printed;... Definition: functors.hpp:585 ◆ startTiming()Do pre-calculate timing things. Definition at line 1671 of file functors.cpp. References start. Referenced by Gambit::module_functor< void >::calculate(). std::chrono::time_point< std::chrono::system_clock > * start Beginning and end timing points. Definition: functors.hpp:597
Here is the caller graph for this function:
![]() Friends And Related Function Documentation◆ FunctorHelp::entering_multithreaded_regionConnectors to external helper functions (to decouple signal handling from this class) ◆ FunctorHelp::leaving_multithreaded_regionMember Data Documentation◆ activeModelFlags
Map from known models to flags indicating if they are activated or not (known = allowed, in allowed groups or conditions for conditional dependencies) Definition at line 679 of file functors.hpp. Referenced by fill_activeModelFlags(), getActiveModelFlag(), and notifyOfModel(). ◆ already_printed
Has result already been sent to the printer? Definition at line 618 of file functors.hpp. Referenced by init_memory(), reset(), and ~module_functor_common(). ◆ already_printed_timing
Has timing data already been sent to the printer? Definition at line 621 of file functors.hpp. Referenced by init_memory(), reset(), and ~module_functor_common(). ◆ backendreq_groupsMap from backend requirements to their designated groups. Definition at line 693 of file functors.hpp. Referenced by notifyOfModel(), resolveBackendReq(), setBackendReq(), and setModelConditionalBackendReqSingular(). ◆ backendreq_mapMap from (backend requirement-type pairs) to (pointers to templated void functions that set backend requirement functor pointers) Definition at line 700 of file functors.hpp. Referenced by resolveBackendReq(), and setBackendReq(). ◆ backendreq_tagmapMap from backend requirements to their rule tags. Definition at line 696 of file functors.hpp. Referenced by backendreq_tags(), makeBackendMatchingRule(), makeBackendOptionRule(), makeBackendRuleForModel(), and setBackendReq(). ◆ backendreq_typesMap from backend requirements to their required types. Definition at line 690 of file functors.hpp. Referenced by setBackendConditionalDependencySingular(), setBackendReq(), and setPermittedBackend(). ◆ chosenReqsFromGroupsMap from groups to backend reqs, indicating which backend req has been activated for which backend group. Definition at line 652 of file functors.hpp. Referenced by getChosenReqFromGroup(), and resolveBackendReq(). ◆ dependency_functor_mapMap from (dependency-type pairs) to pointers to functors used to resolve them that set dependency functor pointers) Definition at line 687 of file functors.hpp. Referenced by notifyOfDependee(), and resolveDependency(). ◆ dependency_map
Map from (dependency-type pairs) to (pointers to templated void functions that set dependency functor pointers) Definition at line 683 of file functors.hpp. Referenced by resolveDependency(), setBackendConditionalDependencySingular(), setDependency(), and setModelConditionalDependencySingular(). ◆ end
Definition at line 597 of file functors.hpp. Referenced by finishTiming(), init_memory(), resolveBackendReq(), and ~module_functor_common(). ◆ fadeRate
Fade rate for average runtime. Definition at line 609 of file functors.hpp. Referenced by acknowledgeInvalidation(), finishTiming(), and setFadeRate(). ◆ globlMaxThreads
Maximum number of OpenMP threads this MPI process is permitted to launch in total. Definition at line 646 of file functors.hpp. Referenced by init_memory(), init_myCurrentIteration_if_NULL(), module_functor_common(), and reset(). ◆ iCanManageLoops
Flag indicating whether this function can manage a loop over other functions. Definition at line 624 of file functors.hpp. Referenced by canBeLoopManager(), Gambit::FunctorHelp::entering_multithreaded_region(), Gambit::FunctorHelp::leaving_multithreaded_region(), reset(), setCanBeLoopManager(), and setNestedList(). ◆ iRunNested
Flag indicating whether this function can run nested in a loop over functions. Definition at line 630 of file functors.hpp. Referenced by init_memory(), init_myCurrentIteration_if_NULL(), reset(), and setLoopManagerCapType(). ◆ missing_backends
Vector of required backends currently missing. Definition at line 712 of file functors.hpp. Referenced by Gambit::module_functor< void >::calculate(), and notifyOfBackends(). ◆ myBackendConditionalDependencies
Map from (vector with 4 strings: backend req, type, backend, version) to (set of {conditional dependency-type} pairs) Definition at line 670 of file functors.hpp. Referenced by backend_conditional_dependencies(), and setBackendConditionalDependencySingular(). ◆ myBackendReqs
Set of all backend requirement-type string pairs. Definition at line 655 of file functors.hpp. Referenced by makeBackendMatchingRule(), makeBackendOptionRule(), makeBackendRuleForModel(), and setBackendReq(). ◆ myConditionalDependenciesMap of conditional dependencies to their types. Definition at line 667 of file functors.hpp. Referenced by retrieve_conditional_dep_type_pair(), and setConditionalDependency(). ◆ myCurrentIteration
Pointer to counters for iterations of nested functor loop. Definition at line 643 of file functors.hpp. Referenced by init_myCurrentIteration_if_NULL(), iterationPtr(), setIteration(), and ~module_functor_common(). ◆ myDependencies
Vector of dependency-type string pairs. Definition at line 664 of file functors.hpp. Referenced by dependencies(), notifyOfModel(), resolveBackendReq(), resolveDependency(), setDependency(), and setRequiredClassloader(). ◆ myForcedMatchesMap from tags to sets of matching (backend requirement-type pairs) that are forced to use the same backend. Definition at line 706 of file functors.hpp. Referenced by forcematchingbackend(), and makeBackendMatchingRule(). ◆ myGroupedBackendReqsSet of backend requirement-type string pairs for specific backend groups. Definition at line 661 of file functors.hpp. Referenced by backendreqs(), notifyOfModel(), setBackendReq(), and setModelConditionalBackendReqSingular(). ◆ myGroups
Internal list of backend groups that this functor's requirements fall into. Definition at line 649 of file functors.hpp. Referenced by backendgroups(), and setBackendReq(). ◆ myLogTag
Integer LogTag, for tagging log messages. Definition at line 718 of file functors.hpp. Referenced by Gambit::module_functor< void >::calculate(), check_missing_LogTag(), and module_functor_common(). ◆ myLoopIsDone
Flag indicating whether this function is ready to finish its loop (only relevant if iCanManageLoops = true) Definition at line 627 of file functors.hpp. Referenced by breakLoop(), loopIsDone(), and resetLoop(). ◆ myLoopManager
Pointer to the functor that mangages the loop that this function runs inside of. Definition at line 637 of file functors.hpp. Referenced by breakLoopFromManagedFunctor(), loopManagerName(), loopManagerOrigin(), and resolveLoopManager(). ◆ myLoopManagerCapability
Capability of a function that mangages a loop that this function can run inside of. Definition at line 633 of file functors.hpp. Referenced by loopManagerCapability(), resolveLoopManager(), and setLoopManagerCapType(). ◆ myLoopManagerType
Capability of a function that mangages a loop that this function can run inside of. Definition at line 635 of file functors.hpp. Referenced by loopManagerType(), resolveLoopManager(), and setLoopManagerCapType(). ◆ myModelConditionalBackendReqs
Map from models to (set of {conditional backend requirement-type} pairs) Definition at line 676 of file functors.hpp. Referenced by fill_activeModelFlags(), model_conditional_backend_reqs(), and setModelConditionalBackendReqSingular(). ◆ myModelConditionalDependencies
Map from models to (set of {conditional dependency-type} pairs) Definition at line 673 of file functors.hpp. Referenced by fill_activeModelFlags(), model_conditional_dependencies(), and setModelConditionalDependencySingular(). ◆ myNestedFunctorList
Vector of functors that have been set up to run nested within this one. Definition at line 640 of file functors.hpp. Referenced by iterate(), retrieve_invalid_point_exception(), and setNestedList(). ◆ myResolvableBackendReqs
Set of all backend requirement-type string pairs currently available for resolution. Definition at line 658 of file functors.hpp. Referenced by backendreqs(), notifyOfModel(), setBackendReq(), and setModelConditionalBackendReqSingular(). ◆ myTimingPrintFlag
Flag to select whether or not the timing data for this function's execution should be printed;. Definition at line 585 of file functors.hpp. Referenced by requiresTimingPrinting(), and setTimingPrintRequirement(). ◆ needs_recalculating
Needs recalculating or not? Definition at line 615 of file functors.hpp. Referenced by Gambit::module_functor< void >::calculate(), finishTiming(), init_memory(), reset(), and ~module_functor_common(). ◆ permitted_mapMap from (backend requirement-type pairs) to (set of permitted {backend-version} pairs) Definition at line 703 of file functors.hpp. Referenced by backendspermitted(), resolveBackendReq(), and setPermittedBackend(). ◆ pInvalidation
Probability that functors invalidates point in model parameter space. Definition at line 612 of file functors.hpp. Referenced by acknowledgeInvalidation(), finishTiming(), and getInvalidationRate(). ◆ point_exception_raised
A flag indicating whether or not this functor has invalidated the current point. Definition at line 600 of file functors.hpp. Referenced by acknowledgeInvalidation(), Gambit::module_functor< void >::calculate(), reset(), and retrieve_invalid_point_exception(). ◆ raised_point_exception
An exception raised because this functor has invalidated the current point. Definition at line 603 of file functors.hpp. Referenced by acknowledgeInvalidation(), and retrieve_invalid_point_exception(). ◆ required_classloading_backends
Map from required classloading backends to their versions. Definition at line 709 of file functors.hpp. Referenced by notifyOfBackends(), and setRequiredClassloader(). ◆ runtime_average
Averaged runtime in ns. Definition at line 606 of file functors.hpp. Referenced by finishTiming(), and getRuntimeAverage(). ◆ signal_mode_locked
While locked, prevent this function switching off threadsafe* emergency signal handling. *The emergency signal handling cannot be made completely threadsafe; it can still cause lockups and memory corruption if it occurs at an inopportune time. "soft" shutdown is always preferable. Definition at line 727 of file functors.hpp. Referenced by Gambit::FunctorHelp::entering_multithreaded_region(), and Gambit::FunctorHelp::leaving_multithreaded_region(). ◆ start
Beginning and end timing points. Definition at line 597 of file functors.hpp. Referenced by finishTiming(), init_memory(), startTiming(), and ~module_functor_common(). ◆ tp
Internal timespec object. Definition at line 715 of file functors.hpp. The documentation for this class was generated from the following files:
|