]> git.proxmox.com Git - grub2.git/blob - gentrigtables.c
Portuguese (Tiago Fernandes / Miguel Figueiredo). Closes: #606908
[grub2.git] / gentrigtables.c
1 /* Generate trigonometric function tables. */
2 /*
3 * GRUB -- GRand Unified Bootloader
4 * Copyright (C) 2008, 2009 Free Software Foundation, Inc.
5 *
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.
10 *
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.
15 *
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/>.
18 */
19
20 #define _GNU_SOURCE 1
21
22 #include <grub/trig.h>
23 #include <math.h>
24 #include <stdio.h>
25
26 int
27 main ()
28 {
29 int i;
30
31 printf ("#include <grub/types.h>\n");
32
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")
43
44 TAB(sin);
45 TAB(cos);
46
47 return 0;
48 }