public function outerProduct(Vector $B) : Matrix { $m = $this->n; $n = $B->getN(); $R = []; for ($i = 0; $i < $m; $i++) { for ($j = 0; $j < $n; $j++) { $R[$i][$j] = $this->A[$i] * $B[$j]; } } return MatrixFactory::create($R); }