public static Double[,] Pow(this Double[,] matrix, Double value) { if (value.IsInteger() && matrix.IsSquare()) { var n = (Int32)value; var result = matrix.Identity(); while (n-- > 0) { result = result.Multiply(matrix); } return(result); } return(null); }