summaryrefslogtreecommitdiff
path: root/src/c/elementaryFunctions/special_functions/gamma/dgammas.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/elementaryFunctions/special_functions/gamma/dgammas.c')
-rw-r--r--src/c/elementaryFunctions/special_functions/gamma/dgammas.c52
1 files changed, 0 insertions, 52 deletions
diff --git a/src/c/elementaryFunctions/special_functions/gamma/dgammas.c b/src/c/elementaryFunctions/special_functions/gamma/dgammas.c
deleted file mode 100644
index c466f434..00000000
--- a/src/c/elementaryFunctions/special_functions/gamma/dgammas.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <gsl/gsl_sf_gamma.h>
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-/* very simple approximation */
-double st_gamma(double x)
-{
- return sqrt(2.0*M_PI/x)*pow(x/M_E, x);
-}
-
-#define A 12
-double sp_gamma(double z)
-{
- const int a = A;
- static double c_space[A];
- static double *c = NULL;
- int k;
- double accm;
-
- if ( c == NULL ) {
- double k1_factrl = 1.0; /* (k - 1)!*(-1)^k with 0!==1*/
- c = c_space;
- c[0] = sqrt(2.0*M_PI);
- for(k=1; k < a; k++) {
- c[k] = exp(a-k) * pow(a-k, k-0.5) / k1_factrl;
- k1_factrl *= -k;
- }
- }
- accm = c[0];
- for(k=1; k < a; k++) {
- accm += c[k] / ( z + k );
- }
- accm *= exp(-(z+a)) * pow(z+a, z+0.5); /* Gamma(z+1) */
- return accm/z;
-}
-
-int main()
-{
- double x;
-
-
- printf("%15s%15s%15s%15s\n", "Stirling", "Spouge", "GSL", "libm");
- for(x=1.0; x <= 10.0; x+=1.0) {
- printf("%15.8lf%15.8lf%15.8lf%15.8lf\n", st_gamma(x/3.0), sp_gamma(x/3.0),
- gsl_sf_gamma(x/3.0), tgamma(x/3.0));
- }
- return 0;
-}