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