~jonathank89/burg/burg-percise

1760.38.18 by Robert Millan
2009-11-21 Robert Millan <rmh.grub@aybabtu.com>
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
1819.1.1 by Bean
Merge with grub r2249.
31
  printf ("#include <grub/types.h>\n"
32
	  "#include <grub/symbol.h>\n"
33
	  "GRUB_EXPORT(grub_trig_costab);\n"
34
	  "GRUB_EXPORT(grub_trig_sintab);\n");
1760.38.18 by Robert Millan
2009-11-21 Robert Millan <rmh.grub@aybabtu.com>
35
36
#define TAB(op) \
37
  printf ("grub_int16_t grub_trig_" #op "tab[] =\n{"); \
38
  for (i = 0; i < GRUB_TRIG_ANGLE_MAX; i++) \
39
    { \
40
      double x = i * 2 * M_PI / GRUB_TRIG_ANGLE_MAX; \
41
      if (i % 10 == 0) \
42
	printf ("\n    "); \
43
      printf ("%d,", (int) (round (op (x) * GRUB_TRIG_FRACTION_SCALE))); \
44
    } \
45
  printf ("\n};\n")
46
47
  TAB(sin);
48
  TAB(cos);
49
1760.38.22 by Vladimir 'phcoder' Serbinenko
Use return instead of exit () in gentrigtables.c
50
  return 0;
1760.38.18 by Robert Millan
2009-11-21 Robert Millan <rmh.grub@aybabtu.com>
51
}