420620ad367e454706c37a9a4220531e7f23f258
[alexxy/gromacs.git] / src / contrib / mk6_n.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <math.h>
4
5 void doit(char *fn,double myexp[],int n,double tabscale)
6 {
7   int    i,k;
8   double myfac[3] = { 1, -1, 1 };
9   double x,v,v2;
10   FILE   *fp;
11   
12   fp = fopen(fn,"w");
13   for(i=0; (i<=n); i++) {
14     x   =  i/tabscale;
15     
16     fprintf(fp,"%10g",x);
17     
18     for(k=0; (k<3); k++) {
19       if (x < 0.04) {
20         /* Avoid very high numbers */
21         v = v2 = 0;
22       }
23       else {
24         v  =  myfac[k]*pow(x,-myexp[k]);
25         v2 = (myexp[k]+1)*(myexp[k])*v/(x*x); 
26       }
27       fprintf(fp,"  %10g  %10g",v,v2);
28     }
29     fprintf(fp,"\n");
30   }
31   fclose(fp);
32 }
33
34 int main(int argc,char *argv[])
35 {
36   double my8[3]  = { 1, 6, 8 };
37   double my9[3]  = { 1, 6, 9 };
38   double my10[3] = { 1, 6, 10 };
39   double my11[3] = { 1, 6, 11 };
40   double my12[3] = { 1, 6, 12 };
41 #ifdef DOUBLE
42   double tabscale = 2000;
43 #else
44   double tabscale = 500;
45 #endif
46   int n = (int) (2.0*tabscale);
47     
48   doit("table6-8.xvg",my8,n,tabscale);
49   doit("table6-9.xvg",my9,n,tabscale);
50   doit("table6-10.xvg",my10,n,tabscale);
51   doit("table6-11.xvg",my11,n,tabscale);
52   doit("table6-12.xvg",my12,n,tabscale);
53   
54   return 0;
55 }
56