mathmake.c 1010 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define scale 1024
  4. int basis[91];
  5. int cost[360];
  6. main (void)
  7. {
  8. int i;
  9. printf ("#define costScale %d\n", scale);
  10. printf ("int cost[] = {\n ");
  11. for (i = 0; (i <= 90); i++)
  12. {
  13. basis[i] = cos ((double) i * .0174532925) * scale;
  14. }
  15. for (i = 0; (i < 90); i++)
  16. {
  17. printf ("%d,\n ", cost[i] = basis[i]);
  18. }
  19. for (i = 90; (i < 180); i++)
  20. {
  21. printf ("%d,\n ", cost[i] = -basis[180 - i]);
  22. }
  23. for (i = 180; (i < 270); i++)
  24. {
  25. printf ("%d,\n ", cost[i] = -basis[i - 180]);
  26. }
  27. for (i = 270; (i < 359); i++)
  28. {
  29. printf ("%d,\n ", cost[i] = basis[360 - i]);
  30. }
  31. printf ("%d\n", cost[359] = basis[1]);
  32. printf ("};\n");
  33. printf ("#define sintScale %d\n", scale);
  34. printf ("int sint[] = {\n ");
  35. for (i = 0; (i < 360); i++)
  36. {
  37. int val;
  38. val = cost[(i + 270) % 360];
  39. if (i != 359)
  40. {
  41. printf ("%d,\n ", val);
  42. }
  43. else
  44. {
  45. printf ("%d\n", val);
  46. }
  47. }
  48. printf ("};\n");
  49. }