/********************************************************************************************
        * Constructors
        ********************************************************************************************/

        public RunningCoupling(
            RunningCouplingType type
            )
        {
            Type = type;
            SetParameterization();
        }
        public static RunningCoupling Create(
            RunningCouplingType type
            )
        {
            if (type == RunningCouplingType.NonPerturbative_ITP)
            {
                return(new NumericalRunningCoupling());
            }

            return(new RunningCoupling(type));
        }
        private List <double> GetAlphaValueList(
            List <double> energyValues,
            RunningCouplingType type
            )
        {
            List <double>   alphaValues = new List <double>();
            RunningCoupling alpha       = RunningCoupling.Create(type);

            foreach (double energyValue in energyValues)
            {
                alphaValues.Add(alpha.Value(energyValue));
            }

            return(alphaValues);
        }