public Complex Exp(Complex c, ComplexFn func)
        {
            if (func == null)
            {
                return(Exp(c));
            }

            Complex resultOfFunc = func.Invoke(c);

            return(Exp(resultOfFunc));
        }
        public Complex Pow(Complex c, Complex pow, ComplexFn func)
        {
            if (func == null)
            {
                return(Pow(c, pow));
            }

            Complex resultOfFunc = func.Invoke(c);

            return(Pow(resultOfFunc, pow));
        }