diff options
author | camthesaxman <cameronghall@cox.net> | 2017-06-15 21:29:45 -0500 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-06-15 21:29:45 -0500 |
commit | 2c6e9e9bc5c4a88ae50f17c5bd22e59328da074b (patch) | |
tree | ce05b0dd7c4c95a774f9abc0291d1b0d4db75d8b /src | |
parent | 3344d86d906405843827c098b3da98b7f7855df1 (diff) |
use macros to convert floating point to fixed point
Diffstat (limited to 'src')
-rw-r--r-- | src/trig.c | 1008 |
1 files changed, 507 insertions, 501 deletions
diff --git a/src/trig.c b/src/trig.c index bfaeb16e8..e16a69e63 100644 --- a/src/trig.c +++ b/src/trig.c @@ -1,514 +1,520 @@ #include "global.h" #include "trig.h" -// values of sin(x*(π/128)) as Q8.8 fixed-point numbers from x = 0 to x = 319 +// Converts a number to Q8.8 fixed-point format +#define Q_8_8(n) ((s16)((n) * 256)) + +// Converts a number to Q4.12 fixed-point format +#define Q_4_12(n) ((s16)((n) * 4096)) + +// Values of sin(x*(π/128)) as Q8.8 fixed-point numbers from x = 0 to x = 319 const s16 gSineTable[] = { - 0x0000, // sin(0*(π/128)) = 0 - 0x0006, // sin(1*(π/128)) = 0.0234375 - 0x000C, // sin(2*(π/128)) = 0.046875 - 0x0012, // sin(3*(π/128)) = 0.0703125 - 0x0019, // sin(4*(π/128)) = 0.09765625 - 0x001F, // sin(5*(π/128)) = 0.12109375 - 0x0025, // sin(6*(π/128)) = 0.14453125 - 0x002B, // sin(7*(π/128)) = 0.16796875 - 0x0031, // sin(8*(π/128)) = 0.19140625 - 0x0038, // sin(9*(π/128)) = 0.21875 - 0x003E, // sin(10*(π/128)) = 0.2421875 - 0x0044, // sin(11*(π/128)) = 0.265625 - 0x004A, // sin(12*(π/128)) = 0.2890625 - 0x0050, // sin(13*(π/128)) = 0.3125 - 0x0056, // sin(14*(π/128)) = 0.3359375 - 0x005C, // sin(15*(π/128)) = 0.359375 - 0x0061, // sin(16*(π/128)) = 0.37890625 - 0x0067, // sin(17*(π/128)) = 0.40234375 - 0x006D, // sin(18*(π/128)) = 0.42578125 - 0x0073, // sin(19*(π/128)) = 0.44921875 - 0x0078, // sin(20*(π/128)) = 0.46875 - 0x007E, // sin(21*(π/128)) = 0.4921875 - 0x0083, // sin(22*(π/128)) = 0.51171875 - 0x0088, // sin(23*(π/128)) = 0.53125 - 0x008E, // sin(24*(π/128)) = 0.5546875 - 0x0093, // sin(25*(π/128)) = 0.57421875 - 0x0098, // sin(26*(π/128)) = 0.59375 - 0x009D, // sin(27*(π/128)) = 0.61328125 - 0x00A2, // sin(28*(π/128)) = 0.6328125 - 0x00A7, // sin(29*(π/128)) = 0.65234375 - 0x00AB, // sin(30*(π/128)) = 0.66796875 - 0x00B0, // sin(31*(π/128)) = 0.6875 - 0x00B5, // sin(32*(π/128)) = 0.70703125 - 0x00B9, // sin(33*(π/128)) = 0.72265625 - 0x00BD, // sin(34*(π/128)) = 0.73828125 - 0x00C1, // sin(35*(π/128)) = 0.75390625 - 0x00C5, // sin(36*(π/128)) = 0.76953125 - 0x00C9, // sin(37*(π/128)) = 0.78515625 - 0x00CD, // sin(38*(π/128)) = 0.80078125 - 0x00D1, // sin(39*(π/128)) = 0.81640625 - 0x00D4, // sin(40*(π/128)) = 0.828125 - 0x00D8, // sin(41*(π/128)) = 0.84375 - 0x00DB, // sin(42*(π/128)) = 0.85546875 - 0x00DE, // sin(43*(π/128)) = 0.8671875 - 0x00E1, // sin(44*(π/128)) = 0.87890625 - 0x00E4, // sin(45*(π/128)) = 0.890625 - 0x00E7, // sin(46*(π/128)) = 0.90234375 - 0x00EA, // sin(47*(π/128)) = 0.9140625 - 0x00EC, // sin(48*(π/128)) = 0.921875 - 0x00EE, // sin(49*(π/128)) = 0.9296875 - 0x00F1, // sin(50*(π/128)) = 0.94140625 - 0x00F3, // sin(51*(π/128)) = 0.94921875 - 0x00F4, // sin(52*(π/128)) = 0.953125 - 0x00F6, // sin(53*(π/128)) = 0.9609375 - 0x00F8, // sin(54*(π/128)) = 0.96875 - 0x00F9, // sin(55*(π/128)) = 0.97265625 - 0x00FB, // sin(56*(π/128)) = 0.98046875 - 0x00FC, // sin(57*(π/128)) = 0.984375 - 0x00FD, // sin(58*(π/128)) = 0.98828125 - 0x00FE, // sin(59*(π/128)) = 0.9921875 - 0x00FE, // sin(60*(π/128)) = 0.9921875 - 0x00FF, // sin(61*(π/128)) = 0.99609375 - 0x00FF, // sin(62*(π/128)) = 0.99609375 - 0x00FF, // sin(63*(π/128)) = 0.99609375 - 0x0100, // sin(64*(π/128)) = 1 - 0x00FF, // sin(65*(π/128)) = 0.99609375 - 0x00FF, // sin(66*(π/128)) = 0.99609375 - 0x00FF, // sin(67*(π/128)) = 0.99609375 - 0x00FE, // sin(68*(π/128)) = 0.9921875 - 0x00FE, // sin(69*(π/128)) = 0.9921875 - 0x00FD, // sin(70*(π/128)) = 0.98828125 - 0x00FC, // sin(71*(π/128)) = 0.984375 - 0x00FB, // sin(72*(π/128)) = 0.98046875 - 0x00F9, // sin(73*(π/128)) = 0.97265625 - 0x00F8, // sin(74*(π/128)) = 0.96875 - 0x00F6, // sin(75*(π/128)) = 0.9609375 - 0x00F4, // sin(76*(π/128)) = 0.953125 - 0x00F3, // sin(77*(π/128)) = 0.94921875 - 0x00F1, // sin(78*(π/128)) = 0.94140625 - 0x00EE, // sin(79*(π/128)) = 0.9296875 - 0x00EC, // sin(80*(π/128)) = 0.921875 - 0x00EA, // sin(81*(π/128)) = 0.9140625 - 0x00E7, // sin(82*(π/128)) = 0.90234375 - 0x00E4, // sin(83*(π/128)) = 0.890625 - 0x00E1, // sin(84*(π/128)) = 0.87890625 - 0x00DE, // sin(85*(π/128)) = 0.8671875 - 0x00DB, // sin(86*(π/128)) = 0.85546875 - 0x00D8, // sin(87*(π/128)) = 0.84375 - 0x00D4, // sin(88*(π/128)) = 0.828125 - 0x00D1, // sin(89*(π/128)) = 0.81640625 - 0x00CD, // sin(90*(π/128)) = 0.80078125 - 0x00C9, // sin(91*(π/128)) = 0.78515625 - 0x00C5, // sin(92*(π/128)) = 0.76953125 - 0x00C1, // sin(93*(π/128)) = 0.75390625 - 0x00BD, // sin(94*(π/128)) = 0.73828125 - 0x00B9, // sin(95*(π/128)) = 0.72265625 - 0x00B5, // sin(96*(π/128)) = 0.70703125 - 0x00B0, // sin(97*(π/128)) = 0.6875 - 0x00AB, // sin(98*(π/128)) = 0.66796875 - 0x00A7, // sin(99*(π/128)) = 0.65234375 - 0x00A2, // sin(100*(π/128)) = 0.6328125 - 0x009D, // sin(101*(π/128)) = 0.61328125 - 0x0098, // sin(102*(π/128)) = 0.59375 - 0x0093, // sin(103*(π/128)) = 0.57421875 - 0x008E, // sin(104*(π/128)) = 0.5546875 - 0x0088, // sin(105*(π/128)) = 0.53125 - 0x0083, // sin(106*(π/128)) = 0.51171875 - 0x007E, // sin(107*(π/128)) = 0.4921875 - 0x0078, // sin(108*(π/128)) = 0.46875 - 0x0073, // sin(109*(π/128)) = 0.44921875 - 0x006D, // sin(110*(π/128)) = 0.42578125 - 0x0067, // sin(111*(π/128)) = 0.40234375 - 0x0061, // sin(112*(π/128)) = 0.37890625 - 0x005C, // sin(113*(π/128)) = 0.359375 - 0x0056, // sin(114*(π/128)) = 0.3359375 - 0x0050, // sin(115*(π/128)) = 0.3125 - 0x004A, // sin(116*(π/128)) = 0.2890625 - 0x0044, // sin(117*(π/128)) = 0.265625 - 0x003E, // sin(118*(π/128)) = 0.2421875 - 0x0038, // sin(119*(π/128)) = 0.21875 - 0x0031, // sin(120*(π/128)) = 0.19140625 - 0x002B, // sin(121*(π/128)) = 0.16796875 - 0x0025, // sin(122*(π/128)) = 0.14453125 - 0x001F, // sin(123*(π/128)) = 0.12109375 - 0x0019, // sin(124*(π/128)) = 0.09765625 - 0x0012, // sin(125*(π/128)) = 0.0703125 - 0x000C, // sin(126*(π/128)) = 0.046875 - 0x0006, // sin(127*(π/128)) = 0.0234375 - 0x0000, // sin(128*(π/128)) = 0 - 0xFFFA, // sin(129*(π/128)) = -0.0234375 - 0xFFF4, // sin(130*(π/128)) = -0.046875 - 0xFFEE, // sin(131*(π/128)) = -0.0703125 - 0xFFE7, // sin(132*(π/128)) = -0.09765625 - 0xFFE1, // sin(133*(π/128)) = -0.12109375 - 0xFFDB, // sin(134*(π/128)) = -0.14453125 - 0xFFD5, // sin(135*(π/128)) = -0.16796875 - 0xFFCF, // sin(136*(π/128)) = -0.19140625 - 0xFFC8, // sin(137*(π/128)) = -0.21875 - 0xFFC2, // sin(138*(π/128)) = -0.2421875 - 0xFFBC, // sin(139*(π/128)) = -0.265625 - 0xFFB6, // sin(140*(π/128)) = -0.2890625 - 0xFFB0, // sin(141*(π/128)) = -0.3125 - 0xFFAA, // sin(142*(π/128)) = -0.3359375 - 0xFFA4, // sin(143*(π/128)) = -0.359375 - 0xFF9F, // sin(144*(π/128)) = -0.37890625 - 0xFF99, // sin(145*(π/128)) = -0.40234375 - 0xFF93, // sin(146*(π/128)) = -0.42578125 - 0xFF8D, // sin(147*(π/128)) = -0.44921875 - 0xFF88, // sin(148*(π/128)) = -0.46875 - 0xFF82, // sin(149*(π/128)) = -0.4921875 - 0xFF7D, // sin(150*(π/128)) = -0.51171875 - 0xFF78, // sin(151*(π/128)) = -0.53125 - 0xFF72, // sin(152*(π/128)) = -0.5546875 - 0xFF6D, // sin(153*(π/128)) = -0.57421875 - 0xFF68, // sin(154*(π/128)) = -0.59375 - 0xFF63, // sin(155*(π/128)) = -0.61328125 - 0xFF5E, // sin(156*(π/128)) = -0.6328125 - 0xFF59, // sin(157*(π/128)) = -0.65234375 - 0xFF55, // sin(158*(π/128)) = -0.66796875 - 0xFF50, // sin(159*(π/128)) = -0.6875 - 0xFF4B, // sin(160*(π/128)) = -0.70703125 - 0xFF47, // sin(161*(π/128)) = -0.72265625 - 0xFF43, // sin(162*(π/128)) = -0.73828125 - 0xFF3F, // sin(163*(π/128)) = -0.75390625 - 0xFF3B, // sin(164*(π/128)) = -0.76953125 - 0xFF37, // sin(165*(π/128)) = -0.78515625 - 0xFF33, // sin(166*(π/128)) = -0.80078125 - 0xFF2F, // sin(167*(π/128)) = -0.81640625 - 0xFF2C, // sin(168*(π/128)) = -0.828125 - 0xFF28, // sin(169*(π/128)) = -0.84375 - 0xFF25, // sin(170*(π/128)) = -0.85546875 - 0xFF22, // sin(171*(π/128)) = -0.8671875 - 0xFF1F, // sin(172*(π/128)) = -0.87890625 - 0xFF1C, // sin(173*(π/128)) = -0.890625 - 0xFF19, // sin(174*(π/128)) = -0.90234375 - 0xFF16, // sin(175*(π/128)) = -0.9140625 - 0xFF14, // sin(176*(π/128)) = -0.921875 - 0xFF12, // sin(177*(π/128)) = -0.9296875 - 0xFF0F, // sin(178*(π/128)) = -0.94140625 - 0xFF0D, // sin(179*(π/128)) = -0.94921875 - 0xFF0C, // sin(180*(π/128)) = -0.953125 - 0xFF0A, // sin(181*(π/128)) = -0.9609375 - 0xFF08, // sin(182*(π/128)) = -0.96875 - 0xFF07, // sin(183*(π/128)) = -0.97265625 - 0xFF05, // sin(184*(π/128)) = -0.98046875 - 0xFF04, // sin(185*(π/128)) = -0.984375 - 0xFF03, // sin(186*(π/128)) = -0.98828125 - 0xFF02, // sin(187*(π/128)) = -0.9921875 - 0xFF02, // sin(188*(π/128)) = -0.9921875 - 0xFF01, // sin(189*(π/128)) = -0.99609375 - 0xFF01, // sin(190*(π/128)) = -0.99609375 - 0xFF01, // sin(191*(π/128)) = -0.99609375 - 0xFF00, // sin(192*(π/128)) = -1 - 0xFF01, // sin(193*(π/128)) = -0.99609375 - 0xFF01, // sin(194*(π/128)) = -0.99609375 - 0xFF01, // sin(195*(π/128)) = -0.99609375 - 0xFF02, // sin(196*(π/128)) = -0.9921875 - 0xFF02, // sin(197*(π/128)) = -0.9921875 - 0xFF03, // sin(198*(π/128)) = -0.98828125 - 0xFF04, // sin(199*(π/128)) = -0.984375 - 0xFF05, // sin(200*(π/128)) = -0.98046875 - 0xFF07, // sin(201*(π/128)) = -0.97265625 - 0xFF08, // sin(202*(π/128)) = -0.96875 - 0xFF0A, // sin(203*(π/128)) = -0.9609375 - 0xFF0C, // sin(204*(π/128)) = -0.953125 - 0xFF0D, // sin(205*(π/128)) = -0.94921875 - 0xFF0F, // sin(206*(π/128)) = -0.94140625 - 0xFF12, // sin(207*(π/128)) = -0.9296875 - 0xFF14, // sin(208*(π/128)) = -0.921875 - 0xFF16, // sin(209*(π/128)) = -0.9140625 - 0xFF19, // sin(210*(π/128)) = -0.90234375 - 0xFF1C, // sin(211*(π/128)) = -0.890625 - 0xFF1F, // sin(212*(π/128)) = -0.87890625 - 0xFF22, // sin(213*(π/128)) = -0.8671875 - 0xFF25, // sin(214*(π/128)) = -0.85546875 - 0xFF28, // sin(215*(π/128)) = -0.84375 - 0xFF2C, // sin(216*(π/128)) = -0.828125 - 0xFF2F, // sin(217*(π/128)) = -0.81640625 - 0xFF33, // sin(218*(π/128)) = -0.80078125 - 0xFF37, // sin(219*(π/128)) = -0.78515625 - 0xFF3B, // sin(220*(π/128)) = -0.76953125 - 0xFF3F, // sin(221*(π/128)) = -0.75390625 - 0xFF43, // sin(222*(π/128)) = -0.73828125 - 0xFF47, // sin(223*(π/128)) = -0.72265625 - 0xFF4B, // sin(224*(π/128)) = -0.70703125 - 0xFF50, // sin(225*(π/128)) = -0.6875 - 0xFF55, // sin(226*(π/128)) = -0.66796875 - 0xFF59, // sin(227*(π/128)) = -0.65234375 - 0xFF5E, // sin(228*(π/128)) = -0.6328125 - 0xFF63, // sin(229*(π/128)) = -0.61328125 - 0xFF68, // sin(230*(π/128)) = -0.59375 - 0xFF6D, // sin(231*(π/128)) = -0.57421875 - 0xFF72, // sin(232*(π/128)) = -0.5546875 - 0xFF78, // sin(233*(π/128)) = -0.53125 - 0xFF7D, // sin(234*(π/128)) = -0.51171875 - 0xFF82, // sin(235*(π/128)) = -0.4921875 - 0xFF88, // sin(236*(π/128)) = -0.46875 - 0xFF8D, // sin(237*(π/128)) = -0.44921875 - 0xFF93, // sin(238*(π/128)) = -0.42578125 - 0xFF99, // sin(239*(π/128)) = -0.40234375 - 0xFF9F, // sin(240*(π/128)) = -0.37890625 - 0xFFA4, // sin(241*(π/128)) = -0.359375 - 0xFFAA, // sin(242*(π/128)) = -0.3359375 - 0xFFB0, // sin(243*(π/128)) = -0.3125 - 0xFFB6, // sin(244*(π/128)) = -0.2890625 - 0xFFBC, // sin(245*(π/128)) = -0.265625 - 0xFFC2, // sin(246*(π/128)) = -0.2421875 - 0xFFC8, // sin(247*(π/128)) = -0.21875 - 0xFFCF, // sin(248*(π/128)) = -0.19140625 - 0xFFD5, // sin(249*(π/128)) = -0.16796875 - 0xFFDB, // sin(250*(π/128)) = -0.14453125 - 0xFFE1, // sin(251*(π/128)) = -0.12109375 - 0xFFE7, // sin(252*(π/128)) = -0.09765625 - 0xFFEE, // sin(253*(π/128)) = -0.0703125 - 0xFFF4, // sin(254*(π/128)) = -0.046875 - 0xFFFA, // sin(255*(π/128)) = -0.0234375 - 0x0000, // sin(256*(π/128)) = 0 - 0x0006, // sin(257*(π/128)) = 0.0234375 - 0x000C, // sin(258*(π/128)) = 0.046875 - 0x0012, // sin(259*(π/128)) = 0.0703125 - 0x0019, // sin(260*(π/128)) = 0.09765625 - 0x001F, // sin(261*(π/128)) = 0.12109375 - 0x0025, // sin(262*(π/128)) = 0.14453125 - 0x002B, // sin(263*(π/128)) = 0.16796875 - 0x0031, // sin(264*(π/128)) = 0.19140625 - 0x0038, // sin(265*(π/128)) = 0.21875 - 0x003E, // sin(266*(π/128)) = 0.2421875 - 0x0044, // sin(267*(π/128)) = 0.265625 - 0x004A, // sin(268*(π/128)) = 0.2890625 - 0x0050, // sin(269*(π/128)) = 0.3125 - 0x0056, // sin(270*(π/128)) = 0.3359375 - 0x005C, // sin(271*(π/128)) = 0.359375 - 0x0061, // sin(272*(π/128)) = 0.37890625 - 0x0067, // sin(273*(π/128)) = 0.40234375 - 0x006D, // sin(274*(π/128)) = 0.42578125 - 0x0073, // sin(275*(π/128)) = 0.44921875 - 0x0078, // sin(276*(π/128)) = 0.46875 - 0x007E, // sin(277*(π/128)) = 0.4921875 - 0x0083, // sin(278*(π/128)) = 0.51171875 - 0x0088, // sin(279*(π/128)) = 0.53125 - 0x008E, // sin(280*(π/128)) = 0.5546875 - 0x0093, // sin(281*(π/128)) = 0.57421875 - 0x0098, // sin(282*(π/128)) = 0.59375 - 0x009D, // sin(283*(π/128)) = 0.61328125 - 0x00A2, // sin(284*(π/128)) = 0.6328125 - 0x00A7, // sin(285*(π/128)) = 0.65234375 - 0x00AB, // sin(286*(π/128)) = 0.66796875 - 0x00B0, // sin(287*(π/128)) = 0.6875 - 0x00B5, // sin(288*(π/128)) = 0.70703125 - 0x00B9, // sin(289*(π/128)) = 0.72265625 - 0x00BD, // sin(290*(π/128)) = 0.73828125 - 0x00C1, // sin(291*(π/128)) = 0.75390625 - 0x00C5, // sin(292*(π/128)) = 0.76953125 - 0x00C9, // sin(293*(π/128)) = 0.78515625 - 0x00CD, // sin(294*(π/128)) = 0.80078125 - 0x00D1, // sin(295*(π/128)) = 0.81640625 - 0x00D4, // sin(296*(π/128)) = 0.828125 - 0x00D8, // sin(297*(π/128)) = 0.84375 - 0x00DB, // sin(298*(π/128)) = 0.85546875 - 0x00DE, // sin(299*(π/128)) = 0.8671875 - 0x00E1, // sin(300*(π/128)) = 0.87890625 - 0x00E4, // sin(301*(π/128)) = 0.890625 - 0x00E7, // sin(302*(π/128)) = 0.90234375 - 0x00EA, // sin(303*(π/128)) = 0.9140625 - 0x00EC, // sin(304*(π/128)) = 0.921875 - 0x00EE, // sin(305*(π/128)) = 0.9296875 - 0x00F1, // sin(306*(π/128)) = 0.94140625 - 0x00F3, // sin(307*(π/128)) = 0.94921875 - 0x00F4, // sin(308*(π/128)) = 0.953125 - 0x00F6, // sin(309*(π/128)) = 0.9609375 - 0x00F8, // sin(310*(π/128)) = 0.96875 - 0x00F9, // sin(311*(π/128)) = 0.97265625 - 0x00FB, // sin(312*(π/128)) = 0.98046875 - 0x00FC, // sin(313*(π/128)) = 0.984375 - 0x00FD, // sin(314*(π/128)) = 0.98828125 - 0x00FE, // sin(315*(π/128)) = 0.9921875 - 0x00FE, // sin(316*(π/128)) = 0.9921875 - 0x00FF, // sin(317*(π/128)) = 0.99609375 - 0x00FF, // sin(318*(π/128)) = 0.99609375 - 0x00FF, // sin(319*(π/128)) = 0.99609375 + Q_8_8(0), // sin(0*(π/128)) + Q_8_8(0.0234375), // sin(1*(π/128)) + Q_8_8(0.046875), // sin(2*(π/128)) + Q_8_8(0.0703125), // sin(3*(π/128)) + Q_8_8(0.09765625), // sin(4*(π/128)) + Q_8_8(0.12109375), // sin(5*(π/128)) + Q_8_8(0.14453125), // sin(6*(π/128)) + Q_8_8(0.16796875), // sin(7*(π/128)) + Q_8_8(0.19140625), // sin(8*(π/128)) + Q_8_8(0.21875), // sin(9*(π/128)) + Q_8_8(0.2421875), // sin(10*(π/128)) + Q_8_8(0.265625), // sin(11*(π/128)) + Q_8_8(0.2890625), // sin(12*(π/128)) + Q_8_8(0.3125), // sin(13*(π/128)) + Q_8_8(0.3359375), // sin(14*(π/128)) + Q_8_8(0.359375), // sin(15*(π/128)) + Q_8_8(0.37890625), // sin(16*(π/128)) + Q_8_8(0.40234375), // sin(17*(π/128)) + Q_8_8(0.42578125), // sin(18*(π/128)) + Q_8_8(0.44921875), // sin(19*(π/128)) + Q_8_8(0.46875), // sin(20*(π/128)) + Q_8_8(0.4921875), // sin(21*(π/128)) + Q_8_8(0.51171875), // sin(22*(π/128)) + Q_8_8(0.53125), // sin(23*(π/128)) + Q_8_8(0.5546875), // sin(24*(π/128)) + Q_8_8(0.57421875), // sin(25*(π/128)) + Q_8_8(0.59375), // sin(26*(π/128)) + Q_8_8(0.61328125), // sin(27*(π/128)) + Q_8_8(0.6328125), // sin(28*(π/128)) + Q_8_8(0.65234375), // sin(29*(π/128)) + Q_8_8(0.66796875), // sin(30*(π/128)) + Q_8_8(0.6875), // sin(31*(π/128)) + Q_8_8(0.70703125), // sin(32*(π/128)) + Q_8_8(0.72265625), // sin(33*(π/128)) + Q_8_8(0.73828125), // sin(34*(π/128)) + Q_8_8(0.75390625), // sin(35*(π/128)) + Q_8_8(0.76953125), // sin(36*(π/128)) + Q_8_8(0.78515625), // sin(37*(π/128)) + Q_8_8(0.80078125), // sin(38*(π/128)) + Q_8_8(0.81640625), // sin(39*(π/128)) + Q_8_8(0.828125), // sin(40*(π/128)) + Q_8_8(0.84375), // sin(41*(π/128)) + Q_8_8(0.85546875), // sin(42*(π/128)) + Q_8_8(0.8671875), // sin(43*(π/128)) + Q_8_8(0.87890625), // sin(44*(π/128)) + Q_8_8(0.890625), // sin(45*(π/128)) + Q_8_8(0.90234375), // sin(46*(π/128)) + Q_8_8(0.9140625), // sin(47*(π/128)) + Q_8_8(0.921875), // sin(48*(π/128)) + Q_8_8(0.9296875), // sin(49*(π/128)) + Q_8_8(0.94140625), // sin(50*(π/128)) + Q_8_8(0.94921875), // sin(51*(π/128)) + Q_8_8(0.953125), // sin(52*(π/128)) + Q_8_8(0.9609375), // sin(53*(π/128)) + Q_8_8(0.96875), // sin(54*(π/128)) + Q_8_8(0.97265625), // sin(55*(π/128)) + Q_8_8(0.98046875), // sin(56*(π/128)) + Q_8_8(0.984375), // sin(57*(π/128)) + Q_8_8(0.98828125), // sin(58*(π/128)) + Q_8_8(0.9921875), // sin(59*(π/128)) + Q_8_8(0.9921875), // sin(60*(π/128)) + Q_8_8(0.99609375), // sin(61*(π/128)) + Q_8_8(0.99609375), // sin(62*(π/128)) + Q_8_8(0.99609375), // sin(63*(π/128)) + Q_8_8(1), // sin(64*(π/128)) + Q_8_8(0.99609375), // sin(65*(π/128)) + Q_8_8(0.99609375), // sin(66*(π/128)) + Q_8_8(0.99609375), // sin(67*(π/128)) + Q_8_8(0.9921875), // sin(68*(π/128)) + Q_8_8(0.9921875), // sin(69*(π/128)) + Q_8_8(0.98828125), // sin(70*(π/128)) + Q_8_8(0.984375), // sin(71*(π/128)) + Q_8_8(0.98046875), // sin(72*(π/128)) + Q_8_8(0.97265625), // sin(73*(π/128)) + Q_8_8(0.96875), // sin(74*(π/128)) + Q_8_8(0.9609375), // sin(75*(π/128)) + Q_8_8(0.953125), // sin(76*(π/128)) + Q_8_8(0.94921875), // sin(77*(π/128)) + Q_8_8(0.94140625), // sin(78*(π/128)) + Q_8_8(0.9296875), // sin(79*(π/128)) + Q_8_8(0.921875), // sin(80*(π/128)) + Q_8_8(0.9140625), // sin(81*(π/128)) + Q_8_8(0.90234375), // sin(82*(π/128)) + Q_8_8(0.890625), // sin(83*(π/128)) + Q_8_8(0.87890625), // sin(84*(π/128)) + Q_8_8(0.8671875), // sin(85*(π/128)) + Q_8_8(0.85546875), // sin(86*(π/128)) + Q_8_8(0.84375), // sin(87*(π/128)) + Q_8_8(0.828125), // sin(88*(π/128)) + Q_8_8(0.81640625), // sin(89*(π/128)) + Q_8_8(0.80078125), // sin(90*(π/128)) + Q_8_8(0.78515625), // sin(91*(π/128)) + Q_8_8(0.76953125), // sin(92*(π/128)) + Q_8_8(0.75390625), // sin(93*(π/128)) + Q_8_8(0.73828125), // sin(94*(π/128)) + Q_8_8(0.72265625), // sin(95*(π/128)) + Q_8_8(0.70703125), // sin(96*(π/128)) + Q_8_8(0.6875), // sin(97*(π/128)) + Q_8_8(0.66796875), // sin(98*(π/128)) + Q_8_8(0.65234375), // sin(99*(π/128)) + Q_8_8(0.6328125), // sin(100*(π/128)) + Q_8_8(0.61328125), // sin(101*(π/128)) + Q_8_8(0.59375), // sin(102*(π/128)) + Q_8_8(0.57421875), // sin(103*(π/128)) + Q_8_8(0.5546875), // sin(104*(π/128)) + Q_8_8(0.53125), // sin(105*(π/128)) + Q_8_8(0.51171875), // sin(106*(π/128)) + Q_8_8(0.4921875), // sin(107*(π/128)) + Q_8_8(0.46875), // sin(108*(π/128)) + Q_8_8(0.44921875), // sin(109*(π/128)) + Q_8_8(0.42578125), // sin(110*(π/128)) + Q_8_8(0.40234375), // sin(111*(π/128)) + Q_8_8(0.37890625), // sin(112*(π/128)) + Q_8_8(0.359375), // sin(113*(π/128)) + Q_8_8(0.3359375), // sin(114*(π/128)) + Q_8_8(0.3125), // sin(115*(π/128)) + Q_8_8(0.2890625), // sin(116*(π/128)) + Q_8_8(0.265625), // sin(117*(π/128)) + Q_8_8(0.2421875), // sin(118*(π/128)) + Q_8_8(0.21875), // sin(119*(π/128)) + Q_8_8(0.19140625), // sin(120*(π/128)) + Q_8_8(0.16796875), // sin(121*(π/128)) + Q_8_8(0.14453125), // sin(122*(π/128)) + Q_8_8(0.12109375), // sin(123*(π/128)) + Q_8_8(0.09765625), // sin(124*(π/128)) + Q_8_8(0.0703125), // sin(125*(π/128)) + Q_8_8(0.046875), // sin(126*(π/128)) + Q_8_8(0.0234375), // sin(127*(π/128)) + Q_8_8(0), // sin(128*(π/128)) + Q_8_8(-0.0234375), // sin(129*(π/128)) + Q_8_8(-0.046875), // sin(130*(π/128)) + Q_8_8(-0.0703125), // sin(131*(π/128)) + Q_8_8(-0.09765625), // sin(132*(π/128)) + Q_8_8(-0.12109375), // sin(133*(π/128)) + Q_8_8(-0.14453125), // sin(134*(π/128)) + Q_8_8(-0.16796875), // sin(135*(π/128)) + Q_8_8(-0.19140625), // sin(136*(π/128)) + Q_8_8(-0.21875), // sin(137*(π/128)) + Q_8_8(-0.2421875), // sin(138*(π/128)) + Q_8_8(-0.265625), // sin(139*(π/128)) + Q_8_8(-0.2890625), // sin(140*(π/128)) + Q_8_8(-0.3125), // sin(141*(π/128)) + Q_8_8(-0.3359375), // sin(142*(π/128)) + Q_8_8(-0.359375), // sin(143*(π/128)) + Q_8_8(-0.37890625), // sin(144*(π/128)) + Q_8_8(-0.40234375), // sin(145*(π/128)) + Q_8_8(-0.42578125), // sin(146*(π/128)) + Q_8_8(-0.44921875), // sin(147*(π/128)) + Q_8_8(-0.46875), // sin(148*(π/128)) + Q_8_8(-0.4921875), // sin(149*(π/128)) + Q_8_8(-0.51171875), // sin(150*(π/128)) + Q_8_8(-0.53125), // sin(151*(π/128)) + Q_8_8(-0.5546875), // sin(152*(π/128)) + Q_8_8(-0.57421875), // sin(153*(π/128)) + Q_8_8(-0.59375), // sin(154*(π/128)) + Q_8_8(-0.61328125), // sin(155*(π/128)) + Q_8_8(-0.6328125), // sin(156*(π/128)) + Q_8_8(-0.65234375), // sin(157*(π/128)) + Q_8_8(-0.66796875), // sin(158*(π/128)) + Q_8_8(-0.6875), // sin(159*(π/128)) + Q_8_8(-0.70703125), // sin(160*(π/128)) + Q_8_8(-0.72265625), // sin(161*(π/128)) + Q_8_8(-0.73828125), // sin(162*(π/128)) + Q_8_8(-0.75390625), // sin(163*(π/128)) + Q_8_8(-0.76953125), // sin(164*(π/128)) + Q_8_8(-0.78515625), // sin(165*(π/128)) + Q_8_8(-0.80078125), // sin(166*(π/128)) + Q_8_8(-0.81640625), // sin(167*(π/128)) + Q_8_8(-0.828125), // sin(168*(π/128)) + Q_8_8(-0.84375), // sin(169*(π/128)) + Q_8_8(-0.85546875), // sin(170*(π/128)) + Q_8_8(-0.8671875), // sin(171*(π/128)) + Q_8_8(-0.87890625), // sin(172*(π/128)) + Q_8_8(-0.890625), // sin(173*(π/128)) + Q_8_8(-0.90234375), // sin(174*(π/128)) + Q_8_8(-0.9140625), // sin(175*(π/128)) + Q_8_8(-0.921875), // sin(176*(π/128)) + Q_8_8(-0.9296875), // sin(177*(π/128)) + Q_8_8(-0.94140625), // sin(178*(π/128)) + Q_8_8(-0.94921875), // sin(179*(π/128)) + Q_8_8(-0.953125), // sin(180*(π/128)) + Q_8_8(-0.9609375), // sin(181*(π/128)) + Q_8_8(-0.96875), // sin(182*(π/128)) + Q_8_8(-0.97265625), // sin(183*(π/128)) + Q_8_8(-0.98046875), // sin(184*(π/128)) + Q_8_8(-0.984375), // sin(185*(π/128)) + Q_8_8(-0.98828125), // sin(186*(π/128)) + Q_8_8(-0.9921875), // sin(187*(π/128)) + Q_8_8(-0.9921875), // sin(188*(π/128)) + Q_8_8(-0.99609375), // sin(189*(π/128)) + Q_8_8(-0.99609375), // sin(190*(π/128)) + Q_8_8(-0.99609375), // sin(191*(π/128)) + Q_8_8(-1), // sin(192*(π/128)) + Q_8_8(-0.99609375), // sin(193*(π/128)) + Q_8_8(-0.99609375), // sin(194*(π/128)) + Q_8_8(-0.99609375), // sin(195*(π/128)) + Q_8_8(-0.9921875), // sin(196*(π/128)) + Q_8_8(-0.9921875), // sin(197*(π/128)) + Q_8_8(-0.98828125), // sin(198*(π/128)) + Q_8_8(-0.984375), // sin(199*(π/128)) + Q_8_8(-0.98046875), // sin(200*(π/128)) + Q_8_8(-0.97265625), // sin(201*(π/128)) + Q_8_8(-0.96875), // sin(202*(π/128)) + Q_8_8(-0.9609375), // sin(203*(π/128)) + Q_8_8(-0.953125), // sin(204*(π/128)) + Q_8_8(-0.94921875), // sin(205*(π/128)) + Q_8_8(-0.94140625), // sin(206*(π/128)) + Q_8_8(-0.9296875), // sin(207*(π/128)) + Q_8_8(-0.921875), // sin(208*(π/128)) + Q_8_8(-0.9140625), // sin(209*(π/128)) + Q_8_8(-0.90234375), // sin(210*(π/128)) + Q_8_8(-0.890625), // sin(211*(π/128)) + Q_8_8(-0.87890625), // sin(212*(π/128)) + Q_8_8(-0.8671875), // sin(213*(π/128)) + Q_8_8(-0.85546875), // sin(214*(π/128)) + Q_8_8(-0.84375), // sin(215*(π/128)) + Q_8_8(-0.828125), // sin(216*(π/128)) + Q_8_8(-0.81640625), // sin(217*(π/128)) + Q_8_8(-0.80078125), // sin(218*(π/128)) + Q_8_8(-0.78515625), // sin(219*(π/128)) + Q_8_8(-0.76953125), // sin(220*(π/128)) + Q_8_8(-0.75390625), // sin(221*(π/128)) + Q_8_8(-0.73828125), // sin(222*(π/128)) + Q_8_8(-0.72265625), // sin(223*(π/128)) + Q_8_8(-0.70703125), // sin(224*(π/128)) + Q_8_8(-0.6875), // sin(225*(π/128)) + Q_8_8(-0.66796875), // sin(226*(π/128)) + Q_8_8(-0.65234375), // sin(227*(π/128)) + Q_8_8(-0.6328125), // sin(228*(π/128)) + Q_8_8(-0.61328125), // sin(229*(π/128)) + Q_8_8(-0.59375), // sin(230*(π/128)) + Q_8_8(-0.57421875), // sin(231*(π/128)) + Q_8_8(-0.5546875), // sin(232*(π/128)) + Q_8_8(-0.53125), // sin(233*(π/128)) + Q_8_8(-0.51171875), // sin(234*(π/128)) + Q_8_8(-0.4921875), // sin(235*(π/128)) + Q_8_8(-0.46875), // sin(236*(π/128)) + Q_8_8(-0.44921875), // sin(237*(π/128)) + Q_8_8(-0.42578125), // sin(238*(π/128)) + Q_8_8(-0.40234375), // sin(239*(π/128)) + Q_8_8(-0.37890625), // sin(240*(π/128)) + Q_8_8(-0.359375), // sin(241*(π/128)) + Q_8_8(-0.3359375), // sin(242*(π/128)) + Q_8_8(-0.3125), // sin(243*(π/128)) + Q_8_8(-0.2890625), // sin(244*(π/128)) + Q_8_8(-0.265625), // sin(245*(π/128)) + Q_8_8(-0.2421875), // sin(246*(π/128)) + Q_8_8(-0.21875), // sin(247*(π/128)) + Q_8_8(-0.19140625), // sin(248*(π/128)) + Q_8_8(-0.16796875), // sin(249*(π/128)) + Q_8_8(-0.14453125), // sin(250*(π/128)) + Q_8_8(-0.12109375), // sin(251*(π/128)) + Q_8_8(-0.09765625), // sin(252*(π/128)) + Q_8_8(-0.0703125), // sin(253*(π/128)) + Q_8_8(-0.046875), // sin(254*(π/128)) + Q_8_8(-0.0234375), // sin(255*(π/128)) + Q_8_8(0), // sin(256*(π/128)) + Q_8_8(0.0234375), // sin(257*(π/128)) + Q_8_8(0.046875), // sin(258*(π/128)) + Q_8_8(0.0703125), // sin(259*(π/128)) + Q_8_8(0.09765625), // sin(260*(π/128)) + Q_8_8(0.12109375), // sin(261*(π/128)) + Q_8_8(0.14453125), // sin(262*(π/128)) + Q_8_8(0.16796875), // sin(263*(π/128)) + Q_8_8(0.19140625), // sin(264*(π/128)) + Q_8_8(0.21875), // sin(265*(π/128)) + Q_8_8(0.2421875), // sin(266*(π/128)) + Q_8_8(0.265625), // sin(267*(π/128)) + Q_8_8(0.2890625), // sin(268*(π/128)) + Q_8_8(0.3125), // sin(269*(π/128)) + Q_8_8(0.3359375), // sin(270*(π/128)) + Q_8_8(0.359375), // sin(271*(π/128)) + Q_8_8(0.37890625), // sin(272*(π/128)) + Q_8_8(0.40234375), // sin(273*(π/128)) + Q_8_8(0.42578125), // sin(274*(π/128)) + Q_8_8(0.44921875), // sin(275*(π/128)) + Q_8_8(0.46875), // sin(276*(π/128)) + Q_8_8(0.4921875), // sin(277*(π/128)) + Q_8_8(0.51171875), // sin(278*(π/128)) + Q_8_8(0.53125), // sin(279*(π/128)) + Q_8_8(0.5546875), // sin(280*(π/128)) + Q_8_8(0.57421875), // sin(281*(π/128)) + Q_8_8(0.59375), // sin(282*(π/128)) + Q_8_8(0.61328125), // sin(283*(π/128)) + Q_8_8(0.6328125), // sin(284*(π/128)) + Q_8_8(0.65234375), // sin(285*(π/128)) + Q_8_8(0.66796875), // sin(286*(π/128)) + Q_8_8(0.6875), // sin(287*(π/128)) + Q_8_8(0.70703125), // sin(288*(π/128)) + Q_8_8(0.72265625), // sin(289*(π/128)) + Q_8_8(0.73828125), // sin(290*(π/128)) + Q_8_8(0.75390625), // sin(291*(π/128)) + Q_8_8(0.76953125), // sin(292*(π/128)) + Q_8_8(0.78515625), // sin(293*(π/128)) + Q_8_8(0.80078125), // sin(294*(π/128)) + Q_8_8(0.81640625), // sin(295*(π/128)) + Q_8_8(0.828125), // sin(296*(π/128)) + Q_8_8(0.84375), // sin(297*(π/128)) + Q_8_8(0.85546875), // sin(298*(π/128)) + Q_8_8(0.8671875), // sin(299*(π/128)) + Q_8_8(0.87890625), // sin(300*(π/128)) + Q_8_8(0.890625), // sin(301*(π/128)) + Q_8_8(0.90234375), // sin(302*(π/128)) + Q_8_8(0.9140625), // sin(303*(π/128)) + Q_8_8(0.921875), // sin(304*(π/128)) + Q_8_8(0.9296875), // sin(305*(π/128)) + Q_8_8(0.94140625), // sin(306*(π/128)) + Q_8_8(0.94921875), // sin(307*(π/128)) + Q_8_8(0.953125), // sin(308*(π/128)) + Q_8_8(0.9609375), // sin(309*(π/128)) + Q_8_8(0.96875), // sin(310*(π/128)) + Q_8_8(0.97265625), // sin(311*(π/128)) + Q_8_8(0.98046875), // sin(312*(π/128)) + Q_8_8(0.984375), // sin(313*(π/128)) + Q_8_8(0.98828125), // sin(314*(π/128)) + Q_8_8(0.9921875), // sin(315*(π/128)) + Q_8_8(0.9921875), // sin(316*(π/128)) + Q_8_8(0.99609375), // sin(317*(π/128)) + Q_8_8(0.99609375), // sin(318*(π/128)) + Q_8_8(0.99609375), // sin(319*(π/128)) }; // values of sin(x) as Q4.12 fixed-point numbers from x = 0° to x = 179° const s16 gSineDegreeTable[] = { - 0x0000, // sin(0°) = 0 - 0x0047, // sin(1°) = 0.017333984375 - 0x008F, // sin(2°) = 0.034912109375 - 0x00D6, // sin(3°) = 0.05224609375 - 0x011E, // sin(4°) = 0.06982421875 - 0x0165, // sin(5°) = 0.087158203125 - 0x01AC, // sin(6°) = 0.1044921875 - 0x01F3, // sin(7°) = 0.121826171875 - 0x023A, // sin(8°) = 0.13916015625 - 0x0281, // sin(9°) = 0.156494140625 - 0x02C7, // sin(10°) = 0.173583984375 - 0x030E, // sin(11°) = 0.19091796875 - 0x0354, // sin(12°) = 0.2080078125 - 0x0399, // sin(13°) = 0.224853515625 - 0x03DF, // sin(14°) = 0.241943359375 - 0x0424, // sin(15°) = 0.2587890625 - 0x0469, // sin(16°) = 0.275634765625 - 0x04AE, // sin(17°) = 0.29248046875 - 0x04F2, // sin(18°) = 0.30908203125 - 0x0536, // sin(19°) = 0.32568359375 - 0x0579, // sin(20°) = 0.342041015625 - 0x05BC, // sin(21°) = 0.3583984375 - 0x05FE, // sin(22°) = 0.37451171875 - 0x0640, // sin(23°) = 0.390625 - 0x0682, // sin(24°) = 0.40673828125 - 0x06C3, // sin(25°) = 0.422607421875 - 0x0704, // sin(26°) = 0.4384765625 - 0x0744, // sin(27°) = 0.4541015625 - 0x0783, // sin(28°) = 0.469482421875 - 0x07C2, // sin(29°) = 0.48486328125 - 0x0800, // sin(30°) = 0.5 - 0x083E, // sin(31°) = 0.51513671875 - 0x087B, // sin(32°) = 0.530029296875 - 0x08B7, // sin(33°) = 0.544677734375 - 0x08F2, // sin(34°) = 0.55908203125 - 0x092D, // sin(35°) = 0.573486328125 - 0x0968, // sin(36°) = 0.587890625 - 0x09A1, // sin(37°) = 0.601806640625 - 0x09DA, // sin(38°) = 0.61572265625 - 0x0A12, // sin(39°) = 0.62939453125 - 0x0A49, // sin(40°) = 0.642822265625 - 0x0A7F, // sin(41°) = 0.656005859375 - 0x0AB5, // sin(42°) = 0.669189453125 - 0x0AE9, // sin(43°) = 0.681884765625 - 0x0B1D, // sin(44°) = 0.694580078125 - 0x0B50, // sin(45°) = 0.70703125 - 0x0B82, // sin(46°) = 0.71923828125 - 0x0BB4, // sin(47°) = 0.7314453125 - 0x0BE4, // sin(48°) = 0.7431640625 - 0x0C13, // sin(49°) = 0.754638671875 - 0x0C42, // sin(50°) = 0.76611328125 - 0x0C6F, // sin(51°) = 0.777099609375 - 0x0C9C, // sin(52°) = 0.7880859375 - 0x0CC7, // sin(53°) = 0.798583984375 - 0x0CF2, // sin(54°) = 0.80908203125 - 0x0D1B, // sin(55°) = 0.819091796875 - 0x0D44, // sin(56°) = 0.8291015625 - 0x0D6B, // sin(57°) = 0.838623046875 - 0x0D92, // sin(58°) = 0.84814453125 - 0x0DB7, // sin(59°) = 0.857177734375 - 0x0DDB, // sin(60°) = 0.865966796875 - 0x0DFE, // sin(61°) = 0.87451171875 - 0x0E21, // sin(62°) = 0.883056640625 - 0x0E42, // sin(63°) = 0.89111328125 - 0x0E61, // sin(64°) = 0.898681640625 - 0x0E80, // sin(65°) = 0.90625 - 0x0E9E, // sin(66°) = 0.91357421875 - 0x0EBA, // sin(67°) = 0.92041015625 - 0x0ED6, // sin(68°) = 0.92724609375 - 0x0EF0, // sin(69°) = 0.93359375 - 0x0F09, // sin(70°) = 0.939697265625 - 0x0F21, // sin(71°) = 0.945556640625 - 0x0F38, // sin(72°) = 0.951171875 - 0x0F4D, // sin(73°) = 0.956298828125 - 0x0F61, // sin(74°) = 0.961181640625 - 0x0F74, // sin(75°) = 0.9658203125 - 0x0F86, // sin(76°) = 0.97021484375 - 0x0F97, // sin(77°) = 0.974365234375 - 0x0FA6, // sin(78°) = 0.97802734375 - 0x0FB5, // sin(79°) = 0.981689453125 - 0x0FC2, // sin(80°) = 0.98486328125 - 0x0FCE, // sin(81°) = 0.98779296875 - 0x0FD8, // sin(82°) = 0.990234375 - 0x0FE1, // sin(83°) = 0.992431640625 - 0x0FE9, // sin(84°) = 0.994384765625 - 0x0FF0, // sin(85°) = 0.99609375 - 0x0FF6, // sin(86°) = 0.99755859375 - 0x0FFA, // sin(87°) = 0.99853515625 - 0x0FFD, // sin(88°) = 0.999267578125 - 0x0FFF, // sin(89°) = 0.999755859375 - 0x1000, // sin(90°) = 1 - 0x0FFF, // sin(91°) = 0.999755859375 - 0x0FFD, // sin(92°) = 0.999267578125 - 0x0FFA, // sin(93°) = 0.99853515625 - 0x0FF6, // sin(94°) = 0.99755859375 - 0x0FF0, // sin(95°) = 0.99609375 - 0x0FE9, // sin(96°) = 0.994384765625 - 0x0FE1, // sin(97°) = 0.992431640625 - 0x0FD8, // sin(98°) = 0.990234375 - 0x0FCE, // sin(99°) = 0.98779296875 - 0x0FC2, // sin(100°) = 0.98486328125 - 0x0FB5, // sin(101°) = 0.981689453125 - 0x0FA6, // sin(102°) = 0.97802734375 - 0x0F97, // sin(103°) = 0.974365234375 - 0x0F86, // sin(104°) = 0.97021484375 - 0x0F74, // sin(105°) = 0.9658203125 - 0x0F61, // sin(106°) = 0.961181640625 - 0x0F4D, // sin(107°) = 0.956298828125 - 0x0F38, // sin(108°) = 0.951171875 - 0x0F21, // sin(109°) = 0.945556640625 - 0x0F09, // sin(110°) = 0.939697265625 - 0x0EF0, // sin(111°) = 0.93359375 - 0x0ED6, // sin(112°) = 0.92724609375 - 0x0EBA, // sin(113°) = 0.92041015625 - 0x0E9E, // sin(114°) = 0.91357421875 - 0x0E80, // sin(115°) = 0.90625 - 0x0E61, // sin(116°) = 0.898681640625 - 0x0E42, // sin(117°) = 0.89111328125 - 0x0E21, // sin(118°) = 0.883056640625 - 0x0DFE, // sin(119°) = 0.87451171875 - 0x0DDB, // sin(120°) = 0.865966796875 - 0x0DB7, // sin(121°) = 0.857177734375 - 0x0D92, // sin(122°) = 0.84814453125 - 0x0D6B, // sin(123°) = 0.838623046875 - 0x0D44, // sin(124°) = 0.8291015625 - 0x0D1B, // sin(125°) = 0.819091796875 - 0x0CF2, // sin(126°) = 0.80908203125 - 0x0CC7, // sin(127°) = 0.798583984375 - 0x0C9C, // sin(128°) = 0.7880859375 - 0x0C6F, // sin(129°) = 0.777099609375 - 0x0C42, // sin(130°) = 0.76611328125 - 0x0C13, // sin(131°) = 0.754638671875 - 0x0BE4, // sin(132°) = 0.7431640625 - 0x0BB4, // sin(133°) = 0.7314453125 - 0x0B82, // sin(134°) = 0.71923828125 - 0x0B50, // sin(135°) = 0.70703125 - 0x0B1D, // sin(136°) = 0.694580078125 - 0x0AE9, // sin(137°) = 0.681884765625 - 0x0AB5, // sin(138°) = 0.669189453125 - 0x0A7F, // sin(139°) = 0.656005859375 - 0x0A49, // sin(140°) = 0.642822265625 - 0x0A12, // sin(141°) = 0.62939453125 - 0x09DA, // sin(142°) = 0.61572265625 - 0x09A1, // sin(143°) = 0.601806640625 - 0x0968, // sin(144°) = 0.587890625 - 0x092D, // sin(145°) = 0.573486328125 - 0x08F2, // sin(146°) = 0.55908203125 - 0x08B7, // sin(147°) = 0.544677734375 - 0x087B, // sin(148°) = 0.530029296875 - 0x083E, // sin(149°) = 0.51513671875 - 0x0800, // sin(150°) = 0.5 - 0x07C2, // sin(151°) = 0.48486328125 - 0x0783, // sin(152°) = 0.469482421875 - 0x0744, // sin(153°) = 0.4541015625 - 0x0704, // sin(154°) = 0.4384765625 - 0x06C3, // sin(155°) = 0.422607421875 - 0x0682, // sin(156°) = 0.40673828125 - 0x0640, // sin(157°) = 0.390625 - 0x05FE, // sin(158°) = 0.37451171875 - 0x05BC, // sin(159°) = 0.3583984375 - 0x0579, // sin(160°) = 0.342041015625 - 0x0536, // sin(161°) = 0.32568359375 - 0x04F2, // sin(162°) = 0.30908203125 - 0x04AE, // sin(163°) = 0.29248046875 - 0x0469, // sin(164°) = 0.275634765625 - 0x0424, // sin(165°) = 0.2587890625 - 0x03DF, // sin(166°) = 0.241943359375 - 0x0399, // sin(167°) = 0.224853515625 - 0x0354, // sin(168°) = 0.2080078125 - 0x030E, // sin(169°) = 0.19091796875 - 0x02C7, // sin(170°) = 0.173583984375 - 0x0281, // sin(171°) = 0.156494140625 - 0x023A, // sin(172°) = 0.13916015625 - 0x01F3, // sin(173°) = 0.121826171875 - 0x01AC, // sin(174°) = 0.1044921875 - 0x0165, // sin(175°) = 0.087158203125 - 0x011E, // sin(176°) = 0.06982421875 - 0x00D6, // sin(177°) = 0.05224609375 - 0x008F, // sin(178°) = 0.034912109375 - 0x0047, // sin(179°) = 0.017333984375 + Q_4_12(0), // sin(0°) + Q_4_12(0.017333984375), // sin(1°) + Q_4_12(0.034912109375), // sin(2°) + Q_4_12(0.05224609375), // sin(3°) + Q_4_12(0.06982421875), // sin(4°) + Q_4_12(0.087158203125), // sin(5°) + Q_4_12(0.1044921875), // sin(6°) + Q_4_12(0.121826171875), // sin(7°) + Q_4_12(0.13916015625), // sin(8°) + Q_4_12(0.156494140625), // sin(9°) + Q_4_12(0.173583984375), // sin(10°) + Q_4_12(0.19091796875), // sin(11°) + Q_4_12(0.2080078125), // sin(12°) + Q_4_12(0.224853515625), // sin(13°) + Q_4_12(0.241943359375), // sin(14°) + Q_4_12(0.2587890625), // sin(15°) + Q_4_12(0.275634765625), // sin(16°) + Q_4_12(0.29248046875), // sin(17°) + Q_4_12(0.30908203125), // sin(18°) + Q_4_12(0.32568359375), // sin(19°) + Q_4_12(0.342041015625), // sin(20°) + Q_4_12(0.3583984375), // sin(21°) + Q_4_12(0.37451171875), // sin(22°) + Q_4_12(0.390625), // sin(23°) + Q_4_12(0.40673828125), // sin(24°) + Q_4_12(0.422607421875), // sin(25°) + Q_4_12(0.4384765625), // sin(26°) + Q_4_12(0.4541015625), // sin(27°) + Q_4_12(0.469482421875), // sin(28°) + Q_4_12(0.48486328125), // sin(29°) + Q_4_12(0.5), // sin(30°) + Q_4_12(0.51513671875), // sin(31°) + Q_4_12(0.530029296875), // sin(32°) + Q_4_12(0.544677734375), // sin(33°) + Q_4_12(0.55908203125), // sin(34°) + Q_4_12(0.573486328125), // sin(35°) + Q_4_12(0.587890625), // sin(36°) + Q_4_12(0.601806640625), // sin(37°) + Q_4_12(0.61572265625), // sin(38°) + Q_4_12(0.62939453125), // sin(39°) + Q_4_12(0.642822265625), // sin(40°) + Q_4_12(0.656005859375), // sin(41°) + Q_4_12(0.669189453125), // sin(42°) + Q_4_12(0.681884765625), // sin(43°) + Q_4_12(0.694580078125), // sin(44°) + Q_4_12(0.70703125), // sin(45°) + Q_4_12(0.71923828125), // sin(46°) + Q_4_12(0.7314453125), // sin(47°) + Q_4_12(0.7431640625), // sin(48°) + Q_4_12(0.754638671875), // sin(49°) + Q_4_12(0.76611328125), // sin(50°) + Q_4_12(0.777099609375), // sin(51°) + Q_4_12(0.7880859375), // sin(52°) + Q_4_12(0.798583984375), // sin(53°) + Q_4_12(0.80908203125), // sin(54°) + Q_4_12(0.819091796875), // sin(55°) + Q_4_12(0.8291015625), // sin(56°) + Q_4_12(0.838623046875), // sin(57°) + Q_4_12(0.84814453125), // sin(58°) + Q_4_12(0.857177734375), // sin(59°) + Q_4_12(0.865966796875), // sin(60°) + Q_4_12(0.87451171875), // sin(61°) + Q_4_12(0.883056640625), // sin(62°) + Q_4_12(0.89111328125), // sin(63°) + Q_4_12(0.898681640625), // sin(64°) + Q_4_12(0.90625), // sin(65°) + Q_4_12(0.91357421875), // sin(66°) + Q_4_12(0.92041015625), // sin(67°) + Q_4_12(0.92724609375), // sin(68°) + Q_4_12(0.93359375), // sin(69°) + Q_4_12(0.939697265625), // sin(70°) + Q_4_12(0.945556640625), // sin(71°) + Q_4_12(0.951171875), // sin(72°) + Q_4_12(0.956298828125), // sin(73°) + Q_4_12(0.961181640625), // sin(74°) + Q_4_12(0.9658203125), // sin(75°) + Q_4_12(0.97021484375), // sin(76°) + Q_4_12(0.974365234375), // sin(77°) + Q_4_12(0.97802734375), // sin(78°) + Q_4_12(0.981689453125), // sin(79°) + Q_4_12(0.98486328125), // sin(80°) + Q_4_12(0.98779296875), // sin(81°) + Q_4_12(0.990234375), // sin(82°) + Q_4_12(0.992431640625), // sin(83°) + Q_4_12(0.994384765625), // sin(84°) + Q_4_12(0.99609375), // sin(85°) + Q_4_12(0.99755859375), // sin(86°) + Q_4_12(0.99853515625), // sin(87°) + Q_4_12(0.999267578125), // sin(88°) + Q_4_12(0.999755859375), // sin(89°) + Q_4_12(1), // sin(90°) + Q_4_12(0.999755859375), // sin(91°) + Q_4_12(0.999267578125), // sin(92°) + Q_4_12(0.99853515625), // sin(93°) + Q_4_12(0.99755859375), // sin(94°) + Q_4_12(0.99609375), // sin(95°) + Q_4_12(0.994384765625), // sin(96°) + Q_4_12(0.992431640625), // sin(97°) + Q_4_12(0.990234375), // sin(98°) + Q_4_12(0.98779296875), // sin(99°) + Q_4_12(0.98486328125), // sin(100°) + Q_4_12(0.981689453125), // sin(101°) + Q_4_12(0.97802734375), // sin(102°) + Q_4_12(0.974365234375), // sin(103°) + Q_4_12(0.97021484375), // sin(104°) + Q_4_12(0.9658203125), // sin(105°) + Q_4_12(0.961181640625), // sin(106°) + Q_4_12(0.956298828125), // sin(107°) + Q_4_12(0.951171875), // sin(108°) + Q_4_12(0.945556640625), // sin(109°) + Q_4_12(0.939697265625), // sin(110°) + Q_4_12(0.93359375), // sin(111°) + Q_4_12(0.92724609375), // sin(112°) + Q_4_12(0.92041015625), // sin(113°) + Q_4_12(0.91357421875), // sin(114°) + Q_4_12(0.90625), // sin(115°) + Q_4_12(0.898681640625), // sin(116°) + Q_4_12(0.89111328125), // sin(117°) + Q_4_12(0.883056640625), // sin(118°) + Q_4_12(0.87451171875), // sin(119°) + Q_4_12(0.865966796875), // sin(120°) + Q_4_12(0.857177734375), // sin(121°) + Q_4_12(0.84814453125), // sin(122°) + Q_4_12(0.838623046875), // sin(123°) + Q_4_12(0.8291015625), // sin(124°) + Q_4_12(0.819091796875), // sin(125°) + Q_4_12(0.80908203125), // sin(126°) + Q_4_12(0.798583984375), // sin(127°) + Q_4_12(0.7880859375), // sin(128°) + Q_4_12(0.777099609375), // sin(129°) + Q_4_12(0.76611328125), // sin(130°) + Q_4_12(0.754638671875), // sin(131°) + Q_4_12(0.7431640625), // sin(132°) + Q_4_12(0.7314453125), // sin(133°) + Q_4_12(0.71923828125), // sin(134°) + Q_4_12(0.70703125), // sin(135°) + Q_4_12(0.694580078125), // sin(136°) + Q_4_12(0.681884765625), // sin(137°) + Q_4_12(0.669189453125), // sin(138°) + Q_4_12(0.656005859375), // sin(139°) + Q_4_12(0.642822265625), // sin(140°) + Q_4_12(0.62939453125), // sin(141°) + Q_4_12(0.61572265625), // sin(142°) + Q_4_12(0.601806640625), // sin(143°) + Q_4_12(0.587890625), // sin(144°) + Q_4_12(0.573486328125), // sin(145°) + Q_4_12(0.55908203125), // sin(146°) + Q_4_12(0.544677734375), // sin(147°) + Q_4_12(0.530029296875), // sin(148°) + Q_4_12(0.51513671875), // sin(149°) + Q_4_12(0.5), // sin(150°) + Q_4_12(0.48486328125), // sin(151°) + Q_4_12(0.469482421875), // sin(152°) + Q_4_12(0.4541015625), // sin(153°) + Q_4_12(0.4384765625), // sin(154°) + Q_4_12(0.422607421875), // sin(155°) + Q_4_12(0.40673828125), // sin(156°) + Q_4_12(0.390625), // sin(157°) + Q_4_12(0.37451171875), // sin(158°) + Q_4_12(0.3583984375), // sin(159°) + Q_4_12(0.342041015625), // sin(160°) + Q_4_12(0.32568359375), // sin(161°) + Q_4_12(0.30908203125), // sin(162°) + Q_4_12(0.29248046875), // sin(163°) + Q_4_12(0.275634765625), // sin(164°) + Q_4_12(0.2587890625), // sin(165°) + Q_4_12(0.241943359375), // sin(166°) + Q_4_12(0.224853515625), // sin(167°) + Q_4_12(0.2080078125), // sin(168°) + Q_4_12(0.19091796875), // sin(169°) + Q_4_12(0.173583984375), // sin(170°) + Q_4_12(0.156494140625), // sin(171°) + Q_4_12(0.13916015625), // sin(172°) + Q_4_12(0.121826171875), // sin(173°) + Q_4_12(0.1044921875), // sin(174°) + Q_4_12(0.087158203125), // sin(175°) + Q_4_12(0.06982421875), // sin(176°) + Q_4_12(0.05224609375), // sin(177°) + Q_4_12(0.034912109375), // sin(178°) + Q_4_12(0.017333984375), // sin(179°) }; // amplitude * sin(index*(π/128)) |