Tiny type work

This commit is contained in:
Jens True 2024-02-29 10:16:18 +00:00
parent 231173dbf2
commit 03d26de045
3 changed files with 10 additions and 1 deletions

@ -4,10 +4,15 @@ declare(strict_types=1);
namespace DNW\Skills\FactorGraphs;
class FactorGraph
abstract class FactorGraph
{
private VariableFactory $variableFactory;
protected function __construct()
{
$this->variableFactory = new VariableFactory(fn () => NULL);
}
public function getVariableFactory(): VariableFactory
{
return $this->variableFactory;

@ -18,6 +18,9 @@ class PlayerPerformancesToTeamPerformancesLayer extends TrueSkillFactorGraphLaye
public function buildLayer(): void
{
$inputVariablesGroups = $this->getInputVariablesGroups();
/**
* @var KeyedVariable[] $currentTeam
*/
foreach ($inputVariablesGroups as $currentTeam) {
$localCurrentTeam = $currentTeam;
$teamPerformance = $this->createOutputVariable($localCurrentTeam);

@ -37,6 +37,7 @@ class TrueSkillFactorGraph extends FactorGraph
*/
public function __construct(private readonly GameInfo $gameInfo, array $teams, array $teamRanks)
{
parent::__construct();
$this->priorLayer = new PlayerPriorValuesToSkillsLayer($this, $teams);
$newFactory = new VariableFactory(
static fn(): GaussianDistribution => GaussianDistribution::fromPrecisionMean(0, 0)