public function testAt()
 {
     // Verified with WolframAlpha
     // (e.g. http://www.wolframalpha.com/input/?i=PDF%5BNormalDistribution%5B0%2C1%5D%2C+0.5%5D )
     $this->assertEquals(0.352065, GaussianDistribution::at(0.5), '', GaussianDistributionTest::ERROR_TOLERANCE);
 }
 public static function wWithinMargin($teamPerformanceDifference, $drawMargin)
 {
     $teamPerformanceDifferenceAbsoluteValue = abs($teamPerformanceDifference);
     $denominator = GaussianDistribution::cumulativeTo($drawMargin - $teamPerformanceDifferenceAbsoluteValue) - GaussianDistribution::cumulativeTo(-$drawMargin - $teamPerformanceDifferenceAbsoluteValue);
     if ($denominator < 2.222758749E-162) {
         return 1.0;
     }
     $vt = self::vWithinMargin($teamPerformanceDifferenceAbsoluteValue, $drawMargin);
     return $vt * $vt + (($drawMargin - $teamPerformanceDifferenceAbsoluteValue) * GaussianDistribution::at($drawMargin - $teamPerformanceDifferenceAbsoluteValue) - (-$drawMargin - $teamPerformanceDifferenceAbsoluteValue) * GaussianDistribution::at(-$drawMargin - $teamPerformanceDifferenceAbsoluteValue)) / $denominator;
 }