Back to index

wims  3.65+svn20090927
mathmake.c
Go to the documentation of this file.
00001 #include <stdio.h>
00002 #include <math.h>
00003 
00004 #define scale 1024
00005 
00006 int basis[91];
00007 int cost[360];
00008 
00009 main(void) {
00010        int i;
00011        printf("#define costScale %d\n", scale);
00012        printf("int cost[] = {\n  ");
00013        for (i=0; (i <= 90); i++) {
00014               basis[i] = cos((double)i * .0174532925) * scale;
00015        }
00016        for (i=0; (i < 90); i++) {
00017               printf("%d,\n  ", cost[i] = basis[i]);
00018        }
00019        for (i=90; (i < 180); i++) {
00020               printf("%d,\n  ", cost[i] = -basis[180-i]);
00021        }
00022        for (i=180; (i < 270); i++) {
00023               printf("%d,\n  ", cost[i] = -basis[i-180]);
00024        }
00025        for (i=270; (i < 359); i++) {
00026               printf("%d,\n  ", cost[i] = basis[360-i]);
00027        }
00028        printf("%d\n", cost[359] = basis[1]);
00029        printf("};\n");
00030        printf("#define sintScale %d\n", scale);
00031        printf("int sint[] = {\n  ");
00032        for (i=0; (i<360); i++) {
00033               int val;
00034               val = cost[(i + 270) % 360];
00035               if (i != 359) {
00036                      printf("%d,\n  ", val);
00037               } else {
00038                      printf("%d\n", val);
00039               }
00040        }
00041        printf("};\n");
00042 }
00043