mirror of
				https://github.com/furyfire/trueskill.git
				synced 2025-11-04 10:12:28 +01:00 
			
		
		
		
	Slight tweaks based off references and need for a RatingContainer
This commit is contained in:
		@@ -63,13 +63,11 @@ class GaussianWeightedSumFactor extends GaussianFactor
 | 
			
		||||
        for ($weightsIndex = 1; $weightsIndex < $weightsLength; $weightsIndex++)
 | 
			
		||||
        { 
 | 
			
		||||
            $currentWeights = array();
 | 
			
		||||
            $this->_weights[$weightsIndex] = &$currentWeights;
 | 
			
		||||
 | 
			
		||||
            
 | 
			
		||||
            $variableIndices = array();
 | 
			
		||||
            $variableIndices[0] = $weightsIndex;
 | 
			
		||||
 | 
			
		||||
            $currentWeightsSquared = array();
 | 
			
		||||
            $this->_weightsSquared[$weightsIndex] = &$currentWeightsSquared;
 | 
			
		||||
 | 
			
		||||
            // keep a single variable to keep track of where we are in the array.
 | 
			
		||||
            // This is helpful since we skip over one of the spots
 | 
			
		||||
@@ -112,7 +110,10 @@ class GaussianWeightedSumFactor extends GaussianFactor
 | 
			
		||||
            $currentWeights[$currentDestinationWeightIndex] = $finalWeight;
 | 
			
		||||
            $currentWeightsSquared[$currentDestinationWeightIndex] = square($finalWeight);
 | 
			
		||||
            $variableIndices[count($variableWeights)] = 0;
 | 
			
		||||
            $this->_variableIndexOrdersForWeights[] = &$variableIndices;
 | 
			
		||||
            $this->_variableIndexOrdersForWeights[] = $variableIndices;
 | 
			
		||||
 | 
			
		||||
            $this->_weights[$weightsIndex] = $currentWeights;
 | 
			
		||||
            $this->_weightsSquared[$weightsIndex] = $currentWeightsSquared;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->createVariableToMessageBinding($sumVariable);
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ class TeamPerformancesToTeamPerformanceDifferencesLayer extends TrueSkillFactorG
 | 
			
		||||
            $weakerTeam = $inputVariablesGroups[$i + 1][0];
 | 
			
		||||
 | 
			
		||||
            $currentDifference = &$this->createOutputVariable();
 | 
			
		||||
            $newDifferencesFactor = &$this->createTeamPerformanceToDifferenceFactor($strongerTeam, $weakerTeam, $currentDifference);
 | 
			
		||||
            $newDifferencesFactor = $this->createTeamPerformanceToDifferenceFactor($strongerTeam, $weakerTeam, $currentDifference);
 | 
			
		||||
            $this->addLayerFactor($newDifferencesFactor);
 | 
			
		||||
 | 
			
		||||
            // REVIEW: Does it make sense to have groups of one?
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ namespace Moserware\Skills\TrueSkill;
 | 
			
		||||
 | 
			
		||||
require_once(dirname(__FILE__) . '/../GameInfo.php');
 | 
			
		||||
require_once(dirname(__FILE__) . '/../Rating.php');
 | 
			
		||||
require_once(dirname(__FILE__) . '/../RatingContainer.php');
 | 
			
		||||
require_once(dirname(__FILE__) . '/../FactorGraphs/FactorGraph.php');
 | 
			
		||||
require_once(dirname(__FILE__) . '/../FactorGraphs/FactorList.php');
 | 
			
		||||
require_once(dirname(__FILE__) . '/../FactorGraphs/Schedule.php');
 | 
			
		||||
@@ -18,6 +19,7 @@ require_once(dirname(__FILE__) . '/Layers/TeamPerformancesToTeamPerformanceDiffe
 | 
			
		||||
use Moserware\Numerics\GaussianDistribution;
 | 
			
		||||
use Moserware\Skills\GameInfo;
 | 
			
		||||
use Moserware\Skills\Rating;
 | 
			
		||||
use Moserware\Skills\RatingContainer;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\FactorGraph;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\FactorList;
 | 
			
		||||
use Moserware\Skills\FactorGraphs\ScheduleSequence;
 | 
			
		||||
@@ -130,14 +132,16 @@ class TrueSkillFactorGraph extends FactorGraph
 | 
			
		||||
 | 
			
		||||
    public function getUpdatedRatings()
 | 
			
		||||
    {
 | 
			
		||||
        $result = array();
 | 
			
		||||
        $result = new RatingContainer();
 | 
			
		||||
 | 
			
		||||
        foreach ($this->_priorLayer->getOutputVariablesGroups() as $currentTeam)
 | 
			
		||||
        {
 | 
			
		||||
            foreach ($currentTeam as $currentPlayer)
 | 
			
		||||
            {
 | 
			
		||||
                $result[$currentPlayer->getKey()] = new Rating($currentPlayer->getValue()->getMean(),
 | 
			
		||||
                                                               $currentPlayer->getValue()->getStandardDeviation());
 | 
			
		||||
                $newRating = new Rating($currentPlayer->getValue()->getMean(),
 | 
			
		||||
                                        $currentPlayer->getValue()->getStandardDeviation());
 | 
			
		||||
 | 
			
		||||
                $result->setRating($currentPlayer, $newRating);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user