21 #ifndef B3_ACTIVITY_LIBRARY_H
22 #define B3_ACTIVITY_LIBRARY_H
25 #include <gp_cpp/gp_covariance.h>
41 typedef std::map<std::string, double> Sd_map;
42 typedef std::map<std::string, std::vector<double> > Sv_map;
43 typedef std::map<std::string, std::pair<double, double> > Sp_map;
44 typedef std::map<std::string, std::pair<Vector, Matrix> > Sc_map;
45 typedef std::vector<std::string> S_vec;
46 typedef std::vector<std::vector<double> > V_vec;
56 return activities_.at(a);
63 const std::string&
role_name(
size_t r)
const {
return roles_.at(r); }
71 return std::find(iacts_.begin(), iacts_.end(), act) != iacts_.end();
77 return std::find(pacts_.begin(), pacts_.end(), act) != pacts_.end();
84 std::copy(iacts_.begin(), iacts_.end(), out);
91 std::copy(pacts_.begin(), pacts_.end(), out);
98 Sd_map::const_iterator pr_p = crp_params_.find(act);
100 "Cannot get group concentration: activity does not exist.");
108 Sv_map::const_iterator pr_p = role_dists_.find(act);
110 "Cannot get role distribution: activity does not exist.");
118 Sp_map::const_iterator pr_p = kernel_params_.find(act);
120 "Cannot get kernel: activity does not exist.");
122 return gp::Sqex(pr_p->second.first, pr_p->second.second);
128 Sc_map::const_iterator pr_p = role_mcs_.find(role);
130 "Cannot get role chain: role does not exist.");
138 const std::string& name,
139 const std::string& pt_name,
146 return act_target_.count(act);
153 std::vector<std::string>::const_iterator str_p = std::find(
159 return std::distance(roles_.begin(), str_p);
163 std::pair<S_vec, V_vec> read_strs_and_vecs(
const std::string& path);
167 std::vector<std::string> activities_;
168 std::vector<std::string> iacts_;
169 std::vector<std::string> pacts_;
170 std::vector<std::string> roles_;
175 Sp_map kernel_params_;
177 std::set<std::string> act_target_;
bool is_physical(const std::string &act) const
Is the given activity physical?.
Definition: bbb_activity_library.h:75
Vector sample_parameters(const std::string &name, const std::string &pt_name, const Vector &pt_params) const
Sample the parameters of an activity.
Definition: bbb_activity_library.cpp:171
const std::string & role_name(size_t r) const
Get the name of the r-th role.
Definition: bbb_activity_library.h:63
Definition for the Matrix class, a thin wrapper on the KJB Matrix struct and its related functionalit...
size_t num_roles() const
Get number of roles avialable.
Definition: bbb_activity_library.h:66
Activity_library(const std::string &lib_dp)
Constructor.
Definition: bbb_activity_library.cpp:40
const Sd_map::mapped_type & group_concentration(const std::string &act) const
Get the concentration parameter for an activity.
Definition: bbb_activity_library.h:96
bool is_intentional(const std::string &act) const
Is the given activity intentional?.
Definition: bbb_activity_library.h:69
r
Definition: APPgetLargeConnectedEdges.m:127
This class implements vectors, in the linear-algebra sense, with real-valued elements.
Definition: m_vector.h:87
const std::string & activity_name(size_t a) const
Get the name of the a-th activity.
Definition: bbb_activity_library.h:54
#define IFT(a, ex, msg)
Definition: l_exception.h:101
void physical_names(Iter out) const
Get a list of the physical activity names.
Definition: bbb_activity_library.h:89
void intentional_names(Iter out) const
Get a list of the intentional activity names.
Definition: bbb_activity_library.h:82
size_t role_index(const std::string &role) const
Get the index of a role (by name).
Definition: bbb_activity_library.h:151
size_t num_activities() const
Get number of activities avialable.
Definition: bbb_activity_library.h:60
gp::Sqex trajectory_kernel(const std::string &act) const
Get the trajectory kernel for an activity.
Definition: bbb_activity_library.h:116
Object thrown when an argument to a function is not acceptable.
Definition: l_exception.h:377
Support for error handling exception classes in libKJB.
const Sv_map::mapped_type & role_distribution(const std::string &act) const
Get the distribution over roles for an activity.
Definition: bbb_activity_library.h:106
const Sc_map::mapped_type & markov_chain(const std::string &role) const
Get the MC parameters for an activity.
Definition: bbb_activity_library.h:126
Definition: bbb_activity_library.h:38
Definition for the Vector class, a thin wrapper on the KJB Vector struct and its related functionalit...
bool has_target(const std::string &act) const
Returns true if the given activity has a target.
Definition: bbb_activity_library.h:144