mean = $mean; $this->std = $std; } /** * Returns probability density of the given $value * * @param float $value * * @return float|int */ public function pdf(float $value) { // Calculate the probability density by use of normal/Gaussian distribution // Ref: https://en.wikipedia.org/wiki/Normal_distribution $std2 = $this->std ** 2; $mean = $this->mean; return exp(- (($value - $mean) ** 2) / (2 * $std2)) / sqrt(2 * $std2 * pi()); } /** * Returns probability density value of the given $value based on * given standard deviation and the mean * * @param float $mean * @param float $std * @param float $value * * @return float */ public static function distributionPdf(float $mean, float $std, float $value) { $normal = new self($mean, $std); return $normal->pdf($value); } }