static double Sum_of_Number_Series_D(int Initial_Index, double Delta, Member_of_Numeric_Series Member, ref int Final_Index)
        {
            double mem_k, pattial_sum, global_sum = 0.0;
            int    k = Initial_Index; bool flag;

            do
            {
                mem_k       = Member(k);
                global_sum += mem_k;
                flag        = (Math.Abs(mem_k) >= Delta);
                if (flag)
                {
                    k++;
                }
            }while (flag);
            int K = k - Initial_Index + 1; k++;

            do
            {
                pattial_sum = Sum_of_Number_Series(k, k + K, Member);
                global_sum += pattial_sum;
                flag        = (Math.Abs(pattial_sum / global_sum) >= Delta);
                if (flag)
                {
                    k = k + K + 1;
                }
            } while (flag);
            Final_Index = k + K;
            return(global_sum);
        }
        public static double Sum_of_Number_Series(int Initial_Index, int Last_Index, Member_of_Numeric_Series Member)
        {
            double global_sum = 0.0;

            for (int k = Initial_Index; k <= Last_Index; k++)
            {
                global_sum += Member(k);
            }
            return(global_sum);
        }