public function testLogRatioNormalization()
 {
     // Verified with Ralf Herbrich's F# implementation
     $m1s2 = new GaussianDistribution(1, 2);
     $m3s4 = new GaussianDistribution(3, 4);
     $lrn = GaussianDistribution::logRatioNormalization($m1s2, $m3s4);
     $this->assertEquals(2.6157405972171204, $lrn, '', GaussianDistributionTest::ERROR_TOLERANCE);
 }
 public function getLogNormalization()
 {
     $vars = $this->getVariables();
     $messages = $this->getMessages();
     return GaussianDistribution::logRatioNormalization($vars[0]->getValue(), $messages[0]->getValue());
 }
 public function getLogNormalization()
 {
     $vars = $this->getVariables();
     $messages = $this->getMessages();
     $result = 0.0;
     // We start at 1 since offset 0 has the sum
     $varCount = count($vars);
     for ($i = 1; $i < $varCount; $i++) {
         $result += GaussianDistribution::logRatioNormalization($vars[$i]->getValue(), $messages[$i]->getValue());
     }
     return $result;
 }