mirror of
				https://github.com/furyfire/trueskill.git
				synced 2025-11-04 10:12:28 +01:00 
			
		
		
		
	Tenative pass at getting prior layer working. Found out about division by zero and closure differences.
This commit is contained in:
		@@ -9,7 +9,6 @@ require_once(dirname(__FILE__) . "/Variable.php");
 | 
			
		||||
use Moserware\Skills\Guard;
 | 
			
		||||
use Moserware\Skills\HashMap;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
abstract class Factor
 | 
			
		||||
{
 | 
			
		||||
    private $_messages = array();
 | 
			
		||||
@@ -21,7 +20,7 @@ abstract class Factor
 | 
			
		||||
    protected function __construct($name)
 | 
			
		||||
    {
 | 
			
		||||
        $this->_name = "Factor[" . $name . "]";
 | 
			
		||||
        $this->_messagesToVariableBinding = new HashMap();
 | 
			
		||||
        $this->_messageToVariableBinding = new HashMap();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Returns the log-normalization constant of that factor
 | 
			
		||||
@@ -81,12 +80,12 @@ abstract class Factor
 | 
			
		||||
 | 
			
		||||
    public abstract function createVariableToMessageBinding(Variable &$variable);
 | 
			
		||||
 | 
			
		||||
    protected function createVariableToMessageBindingWithMessage(Variable &$variable, Variable &$message)
 | 
			
		||||
    protected function createVariableToMessageBindingWithMessage(Variable &$variable, Message &$message)
 | 
			
		||||
    {
 | 
			
		||||
        $index = count($this->_messages);
 | 
			
		||||
        $this->_messages[] = $message;
 | 
			
		||||
        $this->_messages[] = $message;        
 | 
			
		||||
        $this->_messageToVariableBinding->setValue($message, $variable);
 | 
			
		||||
        $this->_variables[] = $variable;
 | 
			
		||||
        $this->_variables[] = &$variable;
 | 
			
		||||
        return $message;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ abstract class FactorGraphLayer
 | 
			
		||||
        return $this->_localFactors;        
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function &setInputVariablesGroups(&$value)
 | 
			
		||||
    public function setInputVariablesGroups(&$value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->_inputVariablesGroups = $value;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ class VariableFactory
 | 
			
		||||
 | 
			
		||||
    public function __construct($variablePriorInitializer)
 | 
			
		||||
    {
 | 
			
		||||
        $this->_variablePriorInitializer = $variablePriorInitializer;
 | 
			
		||||
        $this->_variablePriorInitializer = &$variablePriorInitializer;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function createBasicVariable()
 | 
			
		||||
@@ -22,7 +22,8 @@ class VariableFactory
 | 
			
		||||
 | 
			
		||||
    public function createKeyedVariable($key)
 | 
			
		||||
    {
 | 
			
		||||
        $newVar = new KeyedVariable($key, $this->_variablePriorInitializer());
 | 
			
		||||
        $initializer = $this->_variablePriorInitializer;
 | 
			
		||||
        $newVar = new KeyedVariable($key, "key variable", $initializer());
 | 
			
		||||
        return $newVar;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user