72 long double factorial(
long double);
73 long double power_of_4(
long double);
74 long double compute_batch_sum(
long double*);
76 long double compute_factorial_fraction(
long double n,
long double i);
83 long double n = 0.0, i=0.0;
86 long double prevcheckpoint=0.0;
87 long double prevsum = 0.0, sum = 0.0, prevsumdiff = 0.0, sumdiff = 0.0, term1 = 0.0;
88 long double sum_batched[3000];
89 for(k=0; k < 3000;k++)
94 for(n = 8185.0; n <= 30000.0; n++)
96 term1 = factorial(2*n) / power_of_4(n);
99 for (i=prevcheckpoint+1.0; i <= prevcheckpoint+50.0; ++i)
108 sum = sum + compute_factorial_fraction(n,i);
112 sum_batched[s++]=sum;
120 sum=compute_batch_sum(sum_batched);
121 cout <<
"sum = "<<sum<<endl;
122 cout <<
"Probability of good choice for population of " << 2*n <<
"=" << (sum / power_of_4(n))*100.0 <<endl;
123 sumdiff = sum - prevsum;
124 cout <<
"prob - prevprob = " << sumdiff << endl;
125 cout <<
"Convergence test: (sum - prevsum)/prevsum = " << sumdiff/prevsum << endl;
127 prevsumdiff = sumdiff;
129 for(k=0; k < 3000;k++)
138 long double compute_factorial_fraction(
long double n,
long double i)
141 long double numdenom = 1.0;
143 for(k=i+1,l=i; k <= n,l < n; k++,l++)
145 numdenom *= (n+k)/(n-l);
151 long double compute_batch_sum(
long double* sum_batched)
154 for(
int i=0; i<3000; i++)
156 if(sum_batched[i] > 0.0)
158 cout<<
"compute_batch_sum(): sum_batched["<<i<<
"]:"<<sum_batched[i]<<endl;
165 long double factorial(
long double n)
171 return (
long double) n*factorial(n-1);
174 long double power_of_4(
long double n)
176 long double power = 1.0 ;
178 for (i=n;i > 0.0;i--)