3#include <clingo/core.hh>
5#include <clingo/profile.h>
46using ProfileNode = std::variant<ProfileNodeInternal, ProfileNodeLeaf>;
int clingo_profile_type_t
Corresponding type to clingo_profile_type_e.
Definition profile.h:36
@ clingo_profile_type_step
indicate per step values
Definition profile.h:32
@ clingo_profile_type_accu
indicate accumulated values
Definition profile.h:33
ProfileType
Enumeration of the types of profiling data.
Definition profile.hh:18
std::variant< ProfileNodeInternal, ProfileNodeLeaf > ProfileNode
A profile node that can be either an internal node or a leaf node.
Definition profile.hh:46
@ accu
Indicate accumulated profiling data.
@ step
Indicate per step profiling data.
Class to hold profiling data for an expression in a logic program.
Definition profile.hh:49
bool nested
Whether times are included in the parent.
Definition profile.hh:59
std::vector< ProfileNode > children
The children of the profile node.
Definition profile.hh:61
std::string key
The key of the profile node.
Definition profile.hh:57
ProfileNodeInternal(std::string key, bool nested)
Constructs a profile internal node with the given key.
Definition profile.hh:54
Class to hold profiling data for an expression in a logic program.
Definition profile.hh:24
ProfileType type
The type of the profiling data.
Definition profile.hh:37
uint64_t time_instantiate
The time spent instantiating the expression.
Definition profile.hh:40
uint64_t matches
The number of matches for the expression.
Definition profile.hh:38
uint64_t time_propagate
The time spent propagating the expression.
Definition profile.hh:41
ProfileNodeLeaf(ProfileType type, uint64_t matches=0, uint64_t instances=0, uint64_t time_instantiate=0, uint64_t time_propagate=0)
Constructs a profile leaf node with the given type and profiling data.
Definition profile.hh:32
uint64_t instances
The number of instances of the expression.
Definition profile.hh:39