diff options
Diffstat (limited to 'gi/pyp-topics/src/pyp.hh')
-rw-r--r-- | gi/pyp-topics/src/pyp.hh | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gi/pyp-topics/src/pyp.hh b/gi/pyp-topics/src/pyp.hh index 85076c98..80c79fe1 100644 --- a/gi/pyp-topics/src/pyp.hh +++ b/gi/pyp-topics/src/pyp.hh @@ -33,6 +33,7 @@ public: double prob(Dish dish, double p0) const; double prob(Dish dish, double dcd, double dca, double dtd, double dta, double p0) const; + double unnormalised_prob(Dish dish, double p0) const; int num_customers() const { return _total_customers; } int num_types() const { return std::tr1::unordered_map<Dish,int>::size(); } @@ -145,6 +146,16 @@ PYP<Dish,Hash>::prob(Dish dish, double p0) const template <typename Dish, typename Hash> double +PYP<Dish,Hash>::unnormalised_prob(Dish dish, double p0) const +{ + int c = count(dish), t = num_tables(dish); + double r = num_tables() * _a + _b; + if (c > 0) return (c - _a * t + r * p0); + else return r * p0; +} + +template <typename Dish, typename Hash> +double PYP<Dish,Hash>::prob(Dish dish, double dcd, double dca, double dtd, double dta, double p0) const |