gamma = $gamma; } public function compute($a, $b): float { if (!is_array($a) || !is_array($b)) { throw new InvalidArgumentException(sprintf('Arguments of %s must be arrays', __METHOD__)); } $score = 2 * Product::scalar($a, $b); $squares = Product::scalar($a, $a) + Product::scalar($b, $b); return exp(-$this->gamma * ($squares - $score)); } }