From 40fad23447a0eba0c5bde6b3b8525623addbf216 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Mon, 24 Jul 2017 14:05:04 +0200 Subject: [PATCH] Added comments incl. latex --- Business/Sales/MarketShareEstimation.php | 30 +++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/Business/Sales/MarketShareEstimation.php b/Business/Sales/MarketShareEstimation.php index 5ce16f46f..a98d61214 100644 --- a/Business/Sales/MarketShareEstimation.php +++ b/Business/Sales/MarketShareEstimation.php @@ -15,7 +15,7 @@ declare(strict_types=1); namespace phpOMS\Business\Sales; /** - * Market share calculations + * Market share calculations (Zipf function) * * @category Framework * @package phpOMS\Business @@ -25,6 +25,20 @@ namespace phpOMS\Business\Sales; * @since 1.0.0 */ class MarketShareEstimation { + /** + * Calculate rank (r) based on marketshare (m) + * + * @latex r = \sqrt[s]{\frac{1}{m \times \sum_{n=1}^N{\frac{1}{n^{s}}}}} + * + * @param int $participants (p) + * @param float $marketShare (m) + * @param float $modifier (s) + * + * @return float + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ public static function getRankFromMarketShare(int $participants, float $marketShare, float $modifier = 1.0) : int { $sum = 0.0; @@ -35,6 +49,20 @@ class MarketShareEstimation { return (int) round(pow(1 / ($marketShare * $sum); 1 / $modifier)); } + /** + * Calculate marketshare (m) based on rank (r) + * + * @latex m = \frac{\frac{1}{r^{s}}}{\sum_{n=1}^N{\frac{1}{n^{s}}}} + * + * @param int $participants (p) + * @param int $rank (r) + * @param float $modifier (s) + * + * @return float + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ public static function getMarketShareFromRank(int $participants, int $rank, float $modifier = 1.0) : float { $sum = 0.0;