2010-05-18 Justus Winter <4winter@informatik.uni-hamburg.de>
[grub.git] / gentrigtables.c
blob772cd6224b27cfd2f990c97158f480146b132f25
1 /* Generate trigonometric function tables. */
2 /*
3 * GRUB -- GRand Unified Bootloader
4 * Copyright (C) 2008, 2009 Free Software Foundation, Inc.
6 * GRUB is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * GRUB is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
20 #define _GNU_SOURCE 1
22 #include <grub/trig.h>
23 #include <math.h>
24 #include <stdio.h>
26 int
27 main ()
29 int i;
31 printf ("#include <grub/types.h>\n");
33 #define TAB(op) \
34 printf ("grub_int16_t grub_trig_" #op "tab[] =\n{"); \
35 for (i = 0; i < GRUB_TRIG_ANGLE_MAX; i++) \
36 { \
37 double x = i * 2 * M_PI / GRUB_TRIG_ANGLE_MAX; \
38 if (i % 10 == 0) \
39 printf ("\n "); \
40 printf ("%d,", (int) (round (op (x) * GRUB_TRIG_FRACTION_SCALE))); \
41 } \
42 printf ("\n};\n")
44 TAB(sin);
45 TAB(cos);
47 return 0;