Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
<?php

declare(strict_types=1);

namespace Phpml\NeuralNetwork\Node\Neuron;

use Phpml\NeuralNetwork\Node;

class Synapse
{
    /**
     * @var float
     */
    protected $weight;

    /**
     * @var Node
     */
    protected $node;

    /**
     * @param float|null $weight
     */
    public function __construct(Node $node, ?float $weight = null)
    {
        $this->node = $node;
< $this->weight = $weight ?: $this->generateRandomWeight();
> $this->weight = $weight ?? $this->generateRandomWeight();
} public function getOutput(): float { return $this->weight * $this->node->getOutput(); } public function changeWeight(float $delta): void { $this->weight += $delta; } public function getWeight(): float { return $this->weight; } public function getNode(): Node { return $this->node; } protected function generateRandomWeight(): float { return (1 / random_int(5, 25) * random_int(0, 1)) > 0 ? -1 : 1; } }