]> git.proxmox.com Git - grub2.git/blob - grub-core/gentrigtables.c
On Linux, read partition start offsets from sysfs if possible
[grub2.git] / grub-core / 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 (int argc __attribute__ ((unused)),
28 char **argv __attribute__ ((unused)))
29 {
30 int i;
31
32 printf ("#include <grub/types.h>\n");
33 printf ("#include <grub/dl.h>\n");
34 printf ("\n");
35
36 printf ("/* Under copyright legislature such automated output isn't\n");
37 printf ("covered by any copyright. Hence it's public domain. Public\n");
38 printf ("domain works can be dual-licenced with any license. */\n");
39 printf ("GRUB_MOD_LICENSE (\"GPLv3+\");");
40 printf ("GRUB_MOD_DUAL_LICENSE (\"Public Domain\");");
41
42 #define TAB(op) \
43 printf ("const grub_int16_t grub_trig_" #op "tab[] =\n{"); \
44 for (i = 0; i < GRUB_TRIG_ANGLE_MAX; i++) \
45 { \
46 double x = i * 2 * M_PI / GRUB_TRIG_ANGLE_MAX; \
47 if (i % 10 == 0) \
48 printf ("\n "); \
49 printf ("%d,", (int) (round (op (x) * GRUB_TRIG_FRACTION_SCALE))); \
50 } \
51 printf ("\n};\n")
52
53 TAB(sin);
54 TAB(cos);
55
56 return 0;
57 }