]> git.proxmox.com Git - grub2.git/blame - gentrigtables.c
Acount for transfer->size being size-1 when counting *actual
[grub2.git] / gentrigtables.c
CommitLineData
d2be7481
RM
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
26int
27main ()
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
8f41eb55 47 return 0;
d2be7481 48}