public static function one(int $m, int $n) : Matrix
{
if ($m < 1 || $n < 1) {
throw new Exception\OutOfBoundsException("m and n must be > 0. m = {$m}, n = {$n}");
}
$R = [];
for ($i = 0; $i < $m; $i++) {
for ($j = 0; $j < $n; $j++) {
$R[$i][$j] = 1;
}
}
return self::create($R);
}