// Objective function is Roger Lee's G*exp(d*Tau) function
        // or Lord and Kahl's optimal alpha function
        public double f(double[] x, double[] param)
        {
            LordKahl LK = new LordKahl();

            if (GlobalVars.ObjFunChoice == "RogerLee")
            {
                double kappa = param[0];
                double rho   = param[1];
                double sigma = param[2];
                double tau   = param[3];
                return(LK.RogerLeeGExpD(x[0], kappa, rho, sigma, tau));
            }
            else if (GlobalVars.ObjFunChoice == "LordKahl")
            {
                double kappa  = param[0];
                double theta  = param[1];
                double lambda = param[2];
                double rho    = param[3];
                double sigma  = param[4];
                double tau    = param[5];
                double K      = param[6];
                double S      = param[7];
                double r      = param[8];
                double v0     = param[9];
                return(LK.LordKahlFindAlpha(x[0], kappa, theta, lambda, rho, sigma, tau, K, S, r, v0));
            }
            else
            {
                return(0.0);
            }
        }