mirror of
https://github.com/furyfire/trueskill.git
synced 2025-03-30 04:34:16 +00:00
More debugging and realizing how PHP does references
This commit is contained in:
@ -20,7 +20,7 @@ abstract class GaussianFactor extends Factor
|
||||
}
|
||||
|
||||
/// Sends the factor-graph message with and returns the log-normalization constant
|
||||
protected function sendMessageVariable(Message $message, Variable $variable)
|
||||
protected function sendMessageVariable(Message &$message, Variable &$variable)
|
||||
{
|
||||
$marginal = $variable->getValue();
|
||||
$messageValue = $message->getValue();
|
||||
@ -29,7 +29,7 @@ abstract class GaussianFactor extends Factor
|
||||
return $logZ;
|
||||
}
|
||||
|
||||
public function createVariableToMessageBinding(Variable $variable)
|
||||
public function createVariableToMessageBinding(Variable &$variable)
|
||||
{
|
||||
return parent::createVariableToMessageBinding($variable,
|
||||
new Message(
|
||||
|
@ -20,7 +20,7 @@ class GaussianGreaterThanFactor extends GaussianFactor
|
||||
{
|
||||
private $_epsilon;
|
||||
|
||||
public function __construct($epsilon, Variable $variable)
|
||||
public function __construct($epsilon, Variable &$variable)
|
||||
{
|
||||
parent::_construct("{0} > {1:0.000}");
|
||||
$this->_epsilon = $epsilon;
|
||||
@ -42,7 +42,7 @@ class GaussianGreaterThanFactor extends GaussianFactor
|
||||
|
||||
}
|
||||
|
||||
protected function updateMessageVariable(Message $message, Variable $variable)
|
||||
protected function updateMessageVariable(Message &$message, Variable &$variable)
|
||||
{
|
||||
$oldMarginal = clone $variable->getValue();
|
||||
$oldMessage = clone $message->getValue();
|
||||
|
@ -18,7 +18,7 @@ class GaussianLikelihoodFactor extends GaussianFactor
|
||||
{
|
||||
private $_precision;
|
||||
|
||||
public function __construct($betaSquared, Variable $variable1, Variable $variable2)
|
||||
public function __construct($betaSquared, Variable &$variable1, Variable &$variable2)
|
||||
{
|
||||
parent::__construct("Likelihood of {0} going to {1}");
|
||||
$this->_precision = 1.0/$betaSquared;
|
||||
@ -36,8 +36,8 @@ class GaussianLikelihoodFactor extends GaussianFactor
|
||||
$messages[0]->getValue());
|
||||
}
|
||||
|
||||
private function updateHelper(Message $message1, Message $message2,
|
||||
Variable $variable1, Variable $variable2)
|
||||
private function updateHelper(Message &$message1, Message &$message2,
|
||||
Variable &$variable1, Variable &$variable2)
|
||||
{
|
||||
$message1Value = clone $message1->getValue();
|
||||
$message2Value = clone $message2->getValue();
|
||||
|
@ -19,7 +19,7 @@ class GaussianPriorFactor extends GaussianFactor
|
||||
{
|
||||
private $_newMessage;
|
||||
|
||||
public function __construct($mean, $variance, Variable $variable)
|
||||
public function __construct($mean, $variance, Variable &$variable)
|
||||
{
|
||||
parent::__construct("Prior value going to {0}");
|
||||
$this->_newMessage = new GaussianDistribution($mean, sqrt($variance));
|
||||
@ -27,10 +27,10 @@ class GaussianPriorFactor extends GaussianFactor
|
||||
new Message(
|
||||
GaussianDistribution::fromPrecisionMean(0, 0),
|
||||
"message from {0} to {1}",
|
||||
this, variable));
|
||||
$this, variable));
|
||||
}
|
||||
|
||||
protected function updateMessageVariable(Message $message, Variable $variable)
|
||||
protected function updateMessageVariable(Message &$message, Variable &$variable)
|
||||
{
|
||||
$oldMarginal = clone $variable->getValue();
|
||||
$oldMessage = $message;
|
||||
|
@ -23,7 +23,7 @@ class GaussianWeightedSumFactor extends GaussianFactor
|
||||
private $_weights;
|
||||
private $_weightsSquared;
|
||||
|
||||
public function __construct(Variable $sumVariable, array $variablesToSum, array $variableWeights = null)
|
||||
public function __construct(Variable &$sumVariable, array &$variablesToSum, array &$variableWeights = null)
|
||||
{
|
||||
parent::__construct($this->createName($sumVariable, $variablesToSum, $variableWeights));
|
||||
$this->_weights = array();
|
||||
@ -133,9 +133,9 @@ class GaussianWeightedSumFactor extends GaussianFactor
|
||||
return $result;
|
||||
}
|
||||
|
||||
private function updateHelper(array $weights, array $weightsSquared,
|
||||
array $messages,
|
||||
array $variables)
|
||||
private function updateHelper(array &$weights, array &$weightsSquared,
|
||||
array &$messages,
|
||||
array &$variables)
|
||||
{
|
||||
// Potentially look at http://mathworld.wolfram.com/NormalSumDistribution.html for clues as
|
||||
// to what it's doing
|
||||
|
@ -20,7 +20,7 @@ class GaussianWithinFactor extends GaussianFactor
|
||||
{
|
||||
private $_epsilon;
|
||||
|
||||
public function __construct($epsilon, Variable $variable)
|
||||
public function __construct($epsilon, Variable &$variable)
|
||||
{
|
||||
$this->_epsilon = $epsilon;
|
||||
$this->createVariableToMessageBinding($variable);
|
||||
@ -43,7 +43,7 @@ class GaussianWithinFactor extends GaussianFactor
|
||||
return -GaussianDistribution::logProductNormalization($messageFromVariable, $message) + log($z);
|
||||
}
|
||||
|
||||
protected function updateMessage(Message $message, Variable $variable)
|
||||
protected function updateMessage(Message &$message, Variable &$variable)
|
||||
{
|
||||
$oldMarginal = clone $variable->getValue();
|
||||
$oldMessage = clone $message->getValue();
|
||||
|
Reference in New Issue
Block a user