home *** CD-ROM | disk | FTP | other *** search
/ Between Heaven & Hell 2 / BetweenHeavenHell.cdr / 500 / 471 / rccl127 < prev    next >
Text File  |  1987-03-02  |  1KB  |  38 lines

  1. #include <stdio.h>
  2.  
  3. #define SPREC   11
  4. #define APREC   11
  5.  
  6. main()
  7. {
  8.     FILE *fp = fdopen(creat("arch.h", 0644), "w");
  9.     double  a,
  10.         pi,
  11.         pib2,
  12.         pib4,
  13.         atan(),
  14.         atan2(),
  15.         sin();
  16.     int sz = 0;
  17.  
  18.     fprintf(fp, "#define PIB4\t%20.17f\n", pib4 = atan(1.));
  19.     fprintf(fp, "#define PIB2\t%20.17f\n", pib2 = 2. * pib4);
  20.     fprintf(fp, "#define PI\t%20.17f\n", pi = 4. * pib4);
  21.     fprintf(fp, "#define TBPI\t%20.17f\n", 1. / pib2);
  22.  
  23.     fprintf(fp, "static float st[] = {\n");
  24.     for (sz = 0; sz < (1 << SPREC); fprintf(fp, ",\n"), ++sz) {
  25.         a = pib2 * ((double)sz / (double)((1 << SPREC) - 1));
  26.         fprintf(fp, "\t%10.8f", sin(a));
  27.     }
  28.     fprintf(fp, "};\n#define ST\t%d\n", sz);
  29.     fprintf(fp, "#define MMAS\t0%o\n", sz - 1);
  30.     fprintf(fp, "static float at[] = {\n");
  31.     for (sz = 0; sz < (1 << APREC); fprintf(fp, ",\n"), ++sz) {
  32.         a = ((double)sz / (double)((1 << APREC) - 1));
  33.         fprintf(fp, "\t%10.8f", atan(a));
  34.     }
  35.     fprintf(fp, "\t%10.8f", atan(1.));
  36.     fprintf(fp, "};\n#define AT\t%d\n", sz);
  37. }
  38.