public function map(callable $func) : Matrix { $m = $this->m; $n = $this->n; $R = []; for ($i = 0; $i < $m; $i++) { for ($j = 0; $j < $n; $j++) { $R[$i][$j] = $func($this->A[$i][$j]); } } return MatrixFactory::create($R); }