public function outer(Vector $b) : Matrix
    {
        $n = $b->n();

        $c = [];

        foreach ($this->a as $i => $value) {
            $temp = [];

            for ($j = 0; $j < $n; $j++) {
                $temp[] = $value * $b[$j];
            }

            $c[] = $temp;
        }

        return Matrix::quick($c);
    }