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