library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity sinus_LUT is

port (
  angle : in unsigned(15 downto 0);
  sin : out signed(15 downto 0)
  );
end sinus_LUT;

architecture Behavioral of sinus_LUT is

signal angle_part : unsigned (13 downto 0);
signal quadrant : unsigned (1 downto 0);
signal sin_part : signed (15 downto 0);

begin

quadrant <= angle(15 downto 14);
angle_part <= angle(13 downto 0) when quadrant(0) = '0' else
                  to_unsigned(16383,14) - angle(13 downto 0);

sin_part <= to_signed(0,16) when angle_part < to_unsigned(16,14) else
            to_signed(51,16) when angle_part < to_unsigned(32,14) else
            to_signed(101,16) when angle_part < to_unsigned(48,14) else
            to_signed(151,16) when angle_part < to_unsigned(64,14) else
            to_signed(202,16) when angle_part < to_unsigned(80,14) else
            to_signed(252,16) when angle_part < to_unsigned(96,14) else
            to_signed(302,16) when angle_part < to_unsigned(112,14) else
            to_signed(352,16) when angle_part < to_unsigned(128,14) else
            to_signed(403,16) when angle_part < to_unsigned(144,14) else
            to_signed(453,16) when angle_part < to_unsigned(160,14) else
            to_signed(503,16) when angle_part < to_unsigned(176,14) else
            to_signed(553,16) when angle_part < to_unsigned(192,14) else
            to_signed(604,16) when angle_part < to_unsigned(208,14) else
            to_signed(654,16) when angle_part < to_unsigned(224,14) else
            to_signed(704,16) when angle_part < to_unsigned(240,14) else
            to_signed(754,16) when angle_part < to_unsigned(256,14) else
            to_signed(805,16) when angle_part < to_unsigned(272,14) else
            to_signed(855,16) when angle_part < to_unsigned(288,14) else
            to_signed(905,16) when angle_part < to_unsigned(304,14) else
            to_signed(955,16) when angle_part < to_unsigned(320,14) else
            to_signed(1006,16) when angle_part < to_unsigned(336,14) else
            to_signed(1056,16) when angle_part < to_unsigned(352,14) else
            to_signed(1106,16) when angle_part < to_unsigned(368,14) else
            to_signed(1156,16) when angle_part < to_unsigned(384,14) else
            to_signed(1207,16) when angle_part < to_unsigned(400,14) else
            to_signed(1257,16) when angle_part < to_unsigned(416,14) else
            to_signed(1307,16) when angle_part < to_unsigned(432,14) else
            to_signed(1357,16) when angle_part < to_unsigned(448,14) else
            to_signed(1407,16) when angle_part < to_unsigned(464,14) else
            to_signed(1458,16) when angle_part < to_unsigned(480,14) else
            to_signed(1508,16) when angle_part < to_unsigned(496,14) else
            to_signed(1558,16) when angle_part < to_unsigned(512,14) else
            to_signed(1608,16) when angle_part < to_unsigned(528,14) else
            to_signed(1659,16) when angle_part < to_unsigned(544,14) else
            to_signed(1709,16) when angle_part < to_unsigned(560,14) else
            to_signed(1759,16) when angle_part < to_unsigned(576,14) else
            to_signed(1809,16) when angle_part < to_unsigned(592,14) else
            to_signed(1859,16) when angle_part < to_unsigned(608,14) else
            to_signed(1909,16) when angle_part < to_unsigned(624,14) else
            to_signed(1960,16) when angle_part < to_unsigned(640,14) else
            to_signed(2010,16) when angle_part < to_unsigned(656,14) else
            to_signed(2060,16) when angle_part < to_unsigned(672,14) else
            to_signed(2110,16) when angle_part < to_unsigned(688,14) else
            to_signed(2160,16) when angle_part < to_unsigned(704,14) else
            to_signed(2210,16) when angle_part < to_unsigned(720,14) else
            to_signed(2261,16) when angle_part < to_unsigned(736,14) else
            to_signed(2311,16) when angle_part < to_unsigned(752,14) else
            to_signed(2361,16) when angle_part < to_unsigned(768,14) else
            to_signed(2411,16) when angle_part < to_unsigned(784,14) else
            to_signed(2461,16) when angle_part < to_unsigned(800,14) else
            to_signed(2511,16) when angle_part < to_unsigned(816,14) else
            to_signed(2561,16) when angle_part < to_unsigned(832,14) else
            to_signed(2611,16) when angle_part < to_unsigned(848,14) else
            to_signed(2662,16) when angle_part < to_unsigned(864,14) else
            to_signed(2712,16) when angle_part < to_unsigned(880,14) else
            to_signed(2762,16) when angle_part < to_unsigned(896,14) else
            to_signed(2812,16) when angle_part < to_unsigned(912,14) else
            to_signed(2862,16) when angle_part < to_unsigned(928,14) else
            to_signed(2912,16) when angle_part < to_unsigned(944,14) else
            to_signed(2962,16) when angle_part < to_unsigned(960,14) else
            to_signed(3012,16) when angle_part < to_unsigned(976,14) else
            to_signed(3062,16) when angle_part < to_unsigned(992,14) else
            to_signed(3112,16) when angle_part < to_unsigned(1008,14) else
            to_signed(3162,16) when angle_part < to_unsigned(1024,14) else
            to_signed(3212,16) when angle_part < to_unsigned(1040,14) else
            to_signed(3262,16) when angle_part < to_unsigned(1056,14) else
            to_signed(3312,16) when angle_part < to_unsigned(1072,14) else
            to_signed(3362,16) when angle_part < to_unsigned(1088,14) else
            to_signed(3412,16) when angle_part < to_unsigned(1104,14) else
            to_signed(3462,16) when angle_part < to_unsigned(1120,14) else
            to_signed(3512,16) when angle_part < to_unsigned(1136,14) else
            to_signed(3562,16) when angle_part < to_unsigned(1152,14) else
            to_signed(3612,16) when angle_part < to_unsigned(1168,14) else
            to_signed(3662,16) when angle_part < to_unsigned(1184,14) else
            to_signed(3712,16) when angle_part < to_unsigned(1200,14) else
            to_signed(3762,16) when angle_part < to_unsigned(1216,14) else
            to_signed(3812,16) when angle_part < to_unsigned(1232,14) else
            to_signed(3862,16) when angle_part < to_unsigned(1248,14) else
            to_signed(3912,16) when angle_part < to_unsigned(1264,14) else
            to_signed(3962,16) when angle_part < to_unsigned(1280,14) else
            to_signed(4012,16) when angle_part < to_unsigned(1296,14) else
            to_signed(4061,16) when angle_part < to_unsigned(1312,14) else
            to_signed(4111,16) when angle_part < to_unsigned(1328,14) else
            to_signed(4161,16) when angle_part < to_unsigned(1344,14) else
            to_signed(4211,16) when angle_part < to_unsigned(1360,14) else
            to_signed(4261,16) when angle_part < to_unsigned(1376,14) else
            to_signed(4311,16) when angle_part < to_unsigned(1392,14) else
            to_signed(4360,16) when angle_part < to_unsigned(1408,14) else
            to_signed(4410,16) when angle_part < to_unsigned(1424,14) else
            to_signed(4460,16) when angle_part < to_unsigned(1440,14) else
            to_signed(4510,16) when angle_part < to_unsigned(1456,14) else
            to_signed(4560,16) when angle_part < to_unsigned(1472,14) else
            to_signed(4609,16) when angle_part < to_unsigned(1488,14) else
            to_signed(4659,16) when angle_part < to_unsigned(1504,14) else
            to_signed(4709,16) when angle_part < to_unsigned(1520,14) else
            to_signed(4759,16) when angle_part < to_unsigned(1536,14) else
            to_signed(4808,16) when angle_part < to_unsigned(1552,14) else
            to_signed(4858,16) when angle_part < to_unsigned(1568,14) else
            to_signed(4908,16) when angle_part < to_unsigned(1584,14) else
            to_signed(4958,16) when angle_part < to_unsigned(1600,14) else
            to_signed(5007,16) when angle_part < to_unsigned(1616,14) else
            to_signed(5057,16) when angle_part < to_unsigned(1632,14) else
            to_signed(5107,16) when angle_part < to_unsigned(1648,14) else
            to_signed(5156,16) when angle_part < to_unsigned(1664,14) else
            to_signed(5206,16) when angle_part < to_unsigned(1680,14) else
            to_signed(5255,16) when angle_part < to_unsigned(1696,14) else
            to_signed(5305,16) when angle_part < to_unsigned(1712,14) else
            to_signed(5355,16) when angle_part < to_unsigned(1728,14) else
            to_signed(5404,16) when angle_part < to_unsigned(1744,14) else
            to_signed(5454,16) when angle_part < to_unsigned(1760,14) else
            to_signed(5503,16) when angle_part < to_unsigned(1776,14) else
            to_signed(5553,16) when angle_part < to_unsigned(1792,14) else
            to_signed(5602,16) when angle_part < to_unsigned(1808,14) else
            to_signed(5652,16) when angle_part < to_unsigned(1824,14) else
            to_signed(5701,16) when angle_part < to_unsigned(1840,14) else
            to_signed(5751,16) when angle_part < to_unsigned(1856,14) else
            to_signed(5800,16) when angle_part < to_unsigned(1872,14) else
            to_signed(5850,16) when angle_part < to_unsigned(1888,14) else
            to_signed(5899,16) when angle_part < to_unsigned(1904,14) else
            to_signed(5949,16) when angle_part < to_unsigned(1920,14) else
            to_signed(5998,16) when angle_part < to_unsigned(1936,14) else
            to_signed(6048,16) when angle_part < to_unsigned(1952,14) else
            to_signed(6097,16) when angle_part < to_unsigned(1968,14) else
            to_signed(6146,16) when angle_part < to_unsigned(1984,14) else
            to_signed(6196,16) when angle_part < to_unsigned(2000,14) else
            to_signed(6245,16) when angle_part < to_unsigned(2016,14) else
            to_signed(6294,16) when angle_part < to_unsigned(2032,14) else
            to_signed(6344,16) when angle_part < to_unsigned(2048,14) else
            to_signed(6393,16) when angle_part < to_unsigned(2064,14) else
            to_signed(6442,16) when angle_part < to_unsigned(2080,14) else
            to_signed(6492,16) when angle_part < to_unsigned(2096,14) else
            to_signed(6541,16) when angle_part < to_unsigned(2112,14) else
            to_signed(6590,16) when angle_part < to_unsigned(2128,14) else
            to_signed(6639,16) when angle_part < to_unsigned(2144,14) else
            to_signed(6689,16) when angle_part < to_unsigned(2160,14) else
            to_signed(6738,16) when angle_part < to_unsigned(2176,14) else
            to_signed(6787,16) when angle_part < to_unsigned(2192,14) else
            to_signed(6836,16) when angle_part < to_unsigned(2208,14) else
            to_signed(6885,16) when angle_part < to_unsigned(2224,14) else
            to_signed(6934,16) when angle_part < to_unsigned(2240,14) else
            to_signed(6983,16) when angle_part < to_unsigned(2256,14) else
            to_signed(7033,16) when angle_part < to_unsigned(2272,14) else
            to_signed(7082,16) when angle_part < to_unsigned(2288,14) else
            to_signed(7131,16) when angle_part < to_unsigned(2304,14) else
            to_signed(7180,16) when angle_part < to_unsigned(2320,14) else
            to_signed(7229,16) when angle_part < to_unsigned(2336,14) else
            to_signed(7278,16) when angle_part < to_unsigned(2352,14) else
            to_signed(7327,16) when angle_part < to_unsigned(2368,14) else
            to_signed(7376,16) when angle_part < to_unsigned(2384,14) else
            to_signed(7425,16) when angle_part < to_unsigned(2400,14) else
            to_signed(7474,16) when angle_part < to_unsigned(2416,14) else
            to_signed(7523,16) when angle_part < to_unsigned(2432,14) else
            to_signed(7572,16) when angle_part < to_unsigned(2448,14) else
            to_signed(7620,16) when angle_part < to_unsigned(2464,14) else
            to_signed(7669,16) when angle_part < to_unsigned(2480,14) else
            to_signed(7718,16) when angle_part < to_unsigned(2496,14) else
            to_signed(7767,16) when angle_part < to_unsigned(2512,14) else
            to_signed(7816,16) when angle_part < to_unsigned(2528,14) else
            to_signed(7865,16) when angle_part < to_unsigned(2544,14) else
            to_signed(7913,16) when angle_part < to_unsigned(2560,14) else
            to_signed(7962,16) when angle_part < to_unsigned(2576,14) else
            to_signed(8011,16) when angle_part < to_unsigned(2592,14) else
            to_signed(8060,16) when angle_part < to_unsigned(2608,14) else
            to_signed(8108,16) when angle_part < to_unsigned(2624,14) else
            to_signed(8157,16) when angle_part < to_unsigned(2640,14) else
            to_signed(8206,16) when angle_part < to_unsigned(2656,14) else
            to_signed(8254,16) when angle_part < to_unsigned(2672,14) else
            to_signed(8303,16) when angle_part < to_unsigned(2688,14) else
            to_signed(8352,16) when angle_part < to_unsigned(2704,14) else
            to_signed(8400,16) when angle_part < to_unsigned(2720,14) else
            to_signed(8449,16) when angle_part < to_unsigned(2736,14) else
            to_signed(8497,16) when angle_part < to_unsigned(2752,14) else
            to_signed(8546,16) when angle_part < to_unsigned(2768,14) else
            to_signed(8594,16) when angle_part < to_unsigned(2784,14) else
            to_signed(8643,16) when angle_part < to_unsigned(2800,14) else
            to_signed(8691,16) when angle_part < to_unsigned(2816,14) else
            to_signed(8740,16) when angle_part < to_unsigned(2832,14) else
            to_signed(8788,16) when angle_part < to_unsigned(2848,14) else
            to_signed(8837,16) when angle_part < to_unsigned(2864,14) else
            to_signed(8885,16) when angle_part < to_unsigned(2880,14) else
            to_signed(8933,16) when angle_part < to_unsigned(2896,14) else
            to_signed(8982,16) when angle_part < to_unsigned(2912,14) else
            to_signed(9030,16) when angle_part < to_unsigned(2928,14) else
            to_signed(9078,16) when angle_part < to_unsigned(2944,14) else
            to_signed(9127,16) when angle_part < to_unsigned(2960,14) else
            to_signed(9175,16) when angle_part < to_unsigned(2976,14) else
            to_signed(9223,16) when angle_part < to_unsigned(2992,14) else
            to_signed(9271,16) when angle_part < to_unsigned(3008,14) else
            to_signed(9320,16) when angle_part < to_unsigned(3024,14) else
            to_signed(9368,16) when angle_part < to_unsigned(3040,14) else
            to_signed(9416,16) when angle_part < to_unsigned(3056,14) else
            to_signed(9464,16) when angle_part < to_unsigned(3072,14) else
            to_signed(9512,16) when angle_part < to_unsigned(3088,14) else
            to_signed(9560,16) when angle_part < to_unsigned(3104,14) else
            to_signed(9608,16) when angle_part < to_unsigned(3120,14) else
            to_signed(9656,16) when angle_part < to_unsigned(3136,14) else
            to_signed(9704,16) when angle_part < to_unsigned(3152,14) else
            to_signed(9752,16) when angle_part < to_unsigned(3168,14) else
            to_signed(9800,16) when angle_part < to_unsigned(3184,14) else
            to_signed(9848,16) when angle_part < to_unsigned(3200,14) else
            to_signed(9896,16) when angle_part < to_unsigned(3216,14) else
            to_signed(9944,16) when angle_part < to_unsigned(3232,14) else
            to_signed(9992,16) when angle_part < to_unsigned(3248,14) else
            to_signed(10040,16) when angle_part < to_unsigned(3264,14) else
            to_signed(10088,16) when angle_part < to_unsigned(3280,14) else
            to_signed(10136,16) when angle_part < to_unsigned(3296,14) else
            to_signed(10183,16) when angle_part < to_unsigned(3312,14) else
            to_signed(10231,16) when angle_part < to_unsigned(3328,14) else
            to_signed(10279,16) when angle_part < to_unsigned(3344,14) else
            to_signed(10327,16) when angle_part < to_unsigned(3360,14) else
            to_signed(10374,16) when angle_part < to_unsigned(3376,14) else
            to_signed(10422,16) when angle_part < to_unsigned(3392,14) else
            to_signed(10470,16) when angle_part < to_unsigned(3408,14) else
            to_signed(10517,16) when angle_part < to_unsigned(3424,14) else
            to_signed(10565,16) when angle_part < to_unsigned(3440,14) else
            to_signed(10612,16) when angle_part < to_unsigned(3456,14) else
            to_signed(10660,16) when angle_part < to_unsigned(3472,14) else
            to_signed(10707,16) when angle_part < to_unsigned(3488,14) else
            to_signed(10755,16) when angle_part < to_unsigned(3504,14) else
            to_signed(10802,16) when angle_part < to_unsigned(3520,14) else
            to_signed(10850,16) when angle_part < to_unsigned(3536,14) else
            to_signed(10897,16) when angle_part < to_unsigned(3552,14) else
            to_signed(10945,16) when angle_part < to_unsigned(3568,14) else
            to_signed(10992,16) when angle_part < to_unsigned(3584,14) else
            to_signed(11039,16) when angle_part < to_unsigned(3600,14) else
            to_signed(11087,16) when angle_part < to_unsigned(3616,14) else
            to_signed(11134,16) when angle_part < to_unsigned(3632,14) else
            to_signed(11181,16) when angle_part < to_unsigned(3648,14) else
            to_signed(11228,16) when angle_part < to_unsigned(3664,14) else
            to_signed(11276,16) when angle_part < to_unsigned(3680,14) else
            to_signed(11323,16) when angle_part < to_unsigned(3696,14) else
            to_signed(11370,16) when angle_part < to_unsigned(3712,14) else
            to_signed(11417,16) when angle_part < to_unsigned(3728,14) else
            to_signed(11464,16) when angle_part < to_unsigned(3744,14) else
            to_signed(11511,16) when angle_part < to_unsigned(3760,14) else
            to_signed(11558,16) when angle_part < to_unsigned(3776,14) else
            to_signed(11605,16) when angle_part < to_unsigned(3792,14) else
            to_signed(11652,16) when angle_part < to_unsigned(3808,14) else
            to_signed(11699,16) when angle_part < to_unsigned(3824,14) else
            to_signed(11746,16) when angle_part < to_unsigned(3840,14) else
            to_signed(11793,16) when angle_part < to_unsigned(3856,14) else
            to_signed(11840,16) when angle_part < to_unsigned(3872,14) else
            to_signed(11887,16) when angle_part < to_unsigned(3888,14) else
            to_signed(11934,16) when angle_part < to_unsigned(3904,14) else
            to_signed(11981,16) when angle_part < to_unsigned(3920,14) else
            to_signed(12027,16) when angle_part < to_unsigned(3936,14) else
            to_signed(12074,16) when angle_part < to_unsigned(3952,14) else
            to_signed(12121,16) when angle_part < to_unsigned(3968,14) else
            to_signed(12167,16) when angle_part < to_unsigned(3984,14) else
            to_signed(12214,16) when angle_part < to_unsigned(4000,14) else
            to_signed(12261,16) when angle_part < to_unsigned(4016,14) else
            to_signed(12307,16) when angle_part < to_unsigned(4032,14) else
            to_signed(12354,16) when angle_part < to_unsigned(4048,14) else
            to_signed(12400,16) when angle_part < to_unsigned(4064,14) else
            to_signed(12447,16) when angle_part < to_unsigned(4080,14) else
            to_signed(12493,16) when angle_part < to_unsigned(4096,14) else
            to_signed(12540,16) when angle_part < to_unsigned(4112,14) else
            to_signed(12586,16) when angle_part < to_unsigned(4128,14) else
            to_signed(12633,16) when angle_part < to_unsigned(4144,14) else
            to_signed(12679,16) when angle_part < to_unsigned(4160,14) else
            to_signed(12725,16) when angle_part < to_unsigned(4176,14) else
            to_signed(12772,16) when angle_part < to_unsigned(4192,14) else
            to_signed(12818,16) when angle_part < to_unsigned(4208,14) else
            to_signed(12864,16) when angle_part < to_unsigned(4224,14) else
            to_signed(12910,16) when angle_part < to_unsigned(4240,14) else
            to_signed(12957,16) when angle_part < to_unsigned(4256,14) else
            to_signed(13003,16) when angle_part < to_unsigned(4272,14) else
            to_signed(13049,16) when angle_part < to_unsigned(4288,14) else
            to_signed(13095,16) when angle_part < to_unsigned(4304,14) else
            to_signed(13141,16) when angle_part < to_unsigned(4320,14) else
            to_signed(13187,16) when angle_part < to_unsigned(4336,14) else
            to_signed(13233,16) when angle_part < to_unsigned(4352,14) else
            to_signed(13279,16) when angle_part < to_unsigned(4368,14) else
            to_signed(13325,16) when angle_part < to_unsigned(4384,14) else
            to_signed(13371,16) when angle_part < to_unsigned(4400,14) else
            to_signed(13417,16) when angle_part < to_unsigned(4416,14) else
            to_signed(13463,16) when angle_part < to_unsigned(4432,14) else
            to_signed(13508,16) when angle_part < to_unsigned(4448,14) else
            to_signed(13554,16) when angle_part < to_unsigned(4464,14) else
            to_signed(13600,16) when angle_part < to_unsigned(4480,14) else
            to_signed(13646,16) when angle_part < to_unsigned(4496,14) else
            to_signed(13691,16) when angle_part < to_unsigned(4512,14) else
            to_signed(13737,16) when angle_part < to_unsigned(4528,14) else
            to_signed(13783,16) when angle_part < to_unsigned(4544,14) else
            to_signed(13828,16) when angle_part < to_unsigned(4560,14) else
            to_signed(13874,16) when angle_part < to_unsigned(4576,14) else
            to_signed(13919,16) when angle_part < to_unsigned(4592,14) else
            to_signed(13965,16) when angle_part < to_unsigned(4608,14) else
            to_signed(14010,16) when angle_part < to_unsigned(4624,14) else
            to_signed(14056,16) when angle_part < to_unsigned(4640,14) else
            to_signed(14101,16) when angle_part < to_unsigned(4656,14) else
            to_signed(14146,16) when angle_part < to_unsigned(4672,14) else
            to_signed(14192,16) when angle_part < to_unsigned(4688,14) else
            to_signed(14237,16) when angle_part < to_unsigned(4704,14) else
            to_signed(14282,16) when angle_part < to_unsigned(4720,14) else
            to_signed(14327,16) when angle_part < to_unsigned(4736,14) else
            to_signed(14373,16) when angle_part < to_unsigned(4752,14) else
            to_signed(14418,16) when angle_part < to_unsigned(4768,14) else
            to_signed(14463,16) when angle_part < to_unsigned(4784,14) else
            to_signed(14508,16) when angle_part < to_unsigned(4800,14) else
            to_signed(14553,16) when angle_part < to_unsigned(4816,14) else
            to_signed(14598,16) when angle_part < to_unsigned(4832,14) else
            to_signed(14643,16) when angle_part < to_unsigned(4848,14) else
            to_signed(14688,16) when angle_part < to_unsigned(4864,14) else
            to_signed(14733,16) when angle_part < to_unsigned(4880,14) else
            to_signed(14778,16) when angle_part < to_unsigned(4896,14) else
            to_signed(14823,16) when angle_part < to_unsigned(4912,14) else
            to_signed(14867,16) when angle_part < to_unsigned(4928,14) else
            to_signed(14912,16) when angle_part < to_unsigned(4944,14) else
            to_signed(14957,16) when angle_part < to_unsigned(4960,14) else
            to_signed(15002,16) when angle_part < to_unsigned(4976,14) else
            to_signed(15046,16) when angle_part < to_unsigned(4992,14) else
            to_signed(15091,16) when angle_part < to_unsigned(5008,14) else
            to_signed(15136,16) when angle_part < to_unsigned(5024,14) else
            to_signed(15180,16) when angle_part < to_unsigned(5040,14) else
            to_signed(15225,16) when angle_part < to_unsigned(5056,14) else
            to_signed(15269,16) when angle_part < to_unsigned(5072,14) else
            to_signed(15314,16) when angle_part < to_unsigned(5088,14) else
            to_signed(15358,16) when angle_part < to_unsigned(5104,14) else
            to_signed(15402,16) when angle_part < to_unsigned(5120,14) else
            to_signed(15447,16) when angle_part < to_unsigned(5136,14) else
            to_signed(15491,16) when angle_part < to_unsigned(5152,14) else
            to_signed(15535,16) when angle_part < to_unsigned(5168,14) else
            to_signed(15580,16) when angle_part < to_unsigned(5184,14) else
            to_signed(15624,16) when angle_part < to_unsigned(5200,14) else
            to_signed(15668,16) when angle_part < to_unsigned(5216,14) else
            to_signed(15712,16) when angle_part < to_unsigned(5232,14) else
            to_signed(15756,16) when angle_part < to_unsigned(5248,14) else
            to_signed(15800,16) when angle_part < to_unsigned(5264,14) else
            to_signed(15844,16) when angle_part < to_unsigned(5280,14) else
            to_signed(15888,16) when angle_part < to_unsigned(5296,14) else
            to_signed(15932,16) when angle_part < to_unsigned(5312,14) else
            to_signed(15976,16) when angle_part < to_unsigned(5328,14) else
            to_signed(16020,16) when angle_part < to_unsigned(5344,14) else
            to_signed(16064,16) when angle_part < to_unsigned(5360,14) else
            to_signed(16108,16) when angle_part < to_unsigned(5376,14) else
            to_signed(16151,16) when angle_part < to_unsigned(5392,14) else
            to_signed(16195,16) when angle_part < to_unsigned(5408,14) else
            to_signed(16239,16) when angle_part < to_unsigned(5424,14) else
            to_signed(16282,16) when angle_part < to_unsigned(5440,14) else
            to_signed(16326,16) when angle_part < to_unsigned(5456,14) else
            to_signed(16369,16) when angle_part < to_unsigned(5472,14) else
            to_signed(16413,16) when angle_part < to_unsigned(5488,14) else
            to_signed(16456,16) when angle_part < to_unsigned(5504,14) else
            to_signed(16500,16) when angle_part < to_unsigned(5520,14) else
            to_signed(16543,16) when angle_part < to_unsigned(5536,14) else
            to_signed(16587,16) when angle_part < to_unsigned(5552,14) else
            to_signed(16630,16) when angle_part < to_unsigned(5568,14) else
            to_signed(16673,16) when angle_part < to_unsigned(5584,14) else
            to_signed(16717,16) when angle_part < to_unsigned(5600,14) else
            to_signed(16760,16) when angle_part < to_unsigned(5616,14) else
            to_signed(16803,16) when angle_part < to_unsigned(5632,14) else
            to_signed(16846,16) when angle_part < to_unsigned(5648,14) else
            to_signed(16889,16) when angle_part < to_unsigned(5664,14) else
            to_signed(16932,16) when angle_part < to_unsigned(5680,14) else
            to_signed(16975,16) when angle_part < to_unsigned(5696,14) else
            to_signed(17018,16) when angle_part < to_unsigned(5712,14) else
            to_signed(17061,16) when angle_part < to_unsigned(5728,14) else
            to_signed(17104,16) when angle_part < to_unsigned(5744,14) else
            to_signed(17147,16) when angle_part < to_unsigned(5760,14) else
            to_signed(17190,16) when angle_part < to_unsigned(5776,14) else
            to_signed(17233,16) when angle_part < to_unsigned(5792,14) else
            to_signed(17275,16) when angle_part < to_unsigned(5808,14) else
            to_signed(17318,16) when angle_part < to_unsigned(5824,14) else
            to_signed(17361,16) when angle_part < to_unsigned(5840,14) else
            to_signed(17403,16) when angle_part < to_unsigned(5856,14) else
            to_signed(17446,16) when angle_part < to_unsigned(5872,14) else
            to_signed(17488,16) when angle_part < to_unsigned(5888,14) else
            to_signed(17531,16) when angle_part < to_unsigned(5904,14) else
            to_signed(17573,16) when angle_part < to_unsigned(5920,14) else
            to_signed(17616,16) when angle_part < to_unsigned(5936,14) else
            to_signed(17658,16) when angle_part < to_unsigned(5952,14) else
            to_signed(17700,16) when angle_part < to_unsigned(5968,14) else
            to_signed(17743,16) when angle_part < to_unsigned(5984,14) else
            to_signed(17785,16) when angle_part < to_unsigned(6000,14) else
            to_signed(17827,16) when angle_part < to_unsigned(6016,14) else
            to_signed(17869,16) when angle_part < to_unsigned(6032,14) else
            to_signed(17911,16) when angle_part < to_unsigned(6048,14) else
            to_signed(17953,16) when angle_part < to_unsigned(6064,14) else
            to_signed(17995,16) when angle_part < to_unsigned(6080,14) else
            to_signed(18037,16) when angle_part < to_unsigned(6096,14) else
            to_signed(18079,16) when angle_part < to_unsigned(6112,14) else
            to_signed(18121,16) when angle_part < to_unsigned(6128,14) else
            to_signed(18163,16) when angle_part < to_unsigned(6144,14) else
            to_signed(18205,16) when angle_part < to_unsigned(6160,14) else
            to_signed(18247,16) when angle_part < to_unsigned(6176,14) else
            to_signed(18288,16) when angle_part < to_unsigned(6192,14) else
            to_signed(18330,16) when angle_part < to_unsigned(6208,14) else
            to_signed(18372,16) when angle_part < to_unsigned(6224,14) else
            to_signed(18413,16) when angle_part < to_unsigned(6240,14) else
            to_signed(18455,16) when angle_part < to_unsigned(6256,14) else
            to_signed(18496,16) when angle_part < to_unsigned(6272,14) else
            to_signed(18538,16) when angle_part < to_unsigned(6288,14) else
            to_signed(18579,16) when angle_part < to_unsigned(6304,14) else
            to_signed(18621,16) when angle_part < to_unsigned(6320,14) else
            to_signed(18662,16) when angle_part < to_unsigned(6336,14) else
            to_signed(18703,16) when angle_part < to_unsigned(6352,14) else
            to_signed(18745,16) when angle_part < to_unsigned(6368,14) else
            to_signed(18786,16) when angle_part < to_unsigned(6384,14) else
            to_signed(18827,16) when angle_part < to_unsigned(6400,14) else
            to_signed(18868,16) when angle_part < to_unsigned(6416,14) else
            to_signed(18909,16) when angle_part < to_unsigned(6432,14) else
            to_signed(18950,16) when angle_part < to_unsigned(6448,14) else
            to_signed(18991,16) when angle_part < to_unsigned(6464,14) else
            to_signed(19032,16) when angle_part < to_unsigned(6480,14) else
            to_signed(19073,16) when angle_part < to_unsigned(6496,14) else
            to_signed(19114,16) when angle_part < to_unsigned(6512,14) else
            to_signed(19155,16) when angle_part < to_unsigned(6528,14) else
            to_signed(19195,16) when angle_part < to_unsigned(6544,14) else
            to_signed(19236,16) when angle_part < to_unsigned(6560,14) else
            to_signed(19277,16) when angle_part < to_unsigned(6576,14) else
            to_signed(19317,16) when angle_part < to_unsigned(6592,14) else
            to_signed(19358,16) when angle_part < to_unsigned(6608,14) else
            to_signed(19398,16) when angle_part < to_unsigned(6624,14) else
            to_signed(19439,16) when angle_part < to_unsigned(6640,14) else
            to_signed(19479,16) when angle_part < to_unsigned(6656,14) else
            to_signed(19520,16) when angle_part < to_unsigned(6672,14) else
            to_signed(19560,16) when angle_part < to_unsigned(6688,14) else
            to_signed(19600,16) when angle_part < to_unsigned(6704,14) else
            to_signed(19641,16) when angle_part < to_unsigned(6720,14) else
            to_signed(19681,16) when angle_part < to_unsigned(6736,14) else
            to_signed(19721,16) when angle_part < to_unsigned(6752,14) else
            to_signed(19761,16) when angle_part < to_unsigned(6768,14) else
            to_signed(19801,16) when angle_part < to_unsigned(6784,14) else
            to_signed(19841,16) when angle_part < to_unsigned(6800,14) else
            to_signed(19881,16) when angle_part < to_unsigned(6816,14) else
            to_signed(19921,16) when angle_part < to_unsigned(6832,14) else
            to_signed(19961,16) when angle_part < to_unsigned(6848,14) else
            to_signed(20001,16) when angle_part < to_unsigned(6864,14) else
            to_signed(20041,16) when angle_part < to_unsigned(6880,14) else
            to_signed(20080,16) when angle_part < to_unsigned(6896,14) else
            to_signed(20120,16) when angle_part < to_unsigned(6912,14) else
            to_signed(20160,16) when angle_part < to_unsigned(6928,14) else
            to_signed(20199,16) when angle_part < to_unsigned(6944,14) else
            to_signed(20239,16) when angle_part < to_unsigned(6960,14) else
            to_signed(20278,16) when angle_part < to_unsigned(6976,14) else
            to_signed(20318,16) when angle_part < to_unsigned(6992,14) else
            to_signed(20357,16) when angle_part < to_unsigned(7008,14) else
            to_signed(20397,16) when angle_part < to_unsigned(7024,14) else
            to_signed(20436,16) when angle_part < to_unsigned(7040,14) else
            to_signed(20475,16) when angle_part < to_unsigned(7056,14) else
            to_signed(20514,16) when angle_part < to_unsigned(7072,14) else
            to_signed(20554,16) when angle_part < to_unsigned(7088,14) else
            to_signed(20593,16) when angle_part < to_unsigned(7104,14) else
            to_signed(20632,16) when angle_part < to_unsigned(7120,14) else
            to_signed(20671,16) when angle_part < to_unsigned(7136,14) else
            to_signed(20710,16) when angle_part < to_unsigned(7152,14) else
            to_signed(20749,16) when angle_part < to_unsigned(7168,14) else
            to_signed(20788,16) when angle_part < to_unsigned(7184,14) else
            to_signed(20826,16) when angle_part < to_unsigned(7200,14) else
            to_signed(20865,16) when angle_part < to_unsigned(7216,14) else
            to_signed(20904,16) when angle_part < to_unsigned(7232,14) else
            to_signed(20943,16) when angle_part < to_unsigned(7248,14) else
            to_signed(20981,16) when angle_part < to_unsigned(7264,14) else
            to_signed(21020,16) when angle_part < to_unsigned(7280,14) else
            to_signed(21058,16) when angle_part < to_unsigned(7296,14) else
            to_signed(21097,16) when angle_part < to_unsigned(7312,14) else
            to_signed(21135,16) when angle_part < to_unsigned(7328,14) else
            to_signed(21174,16) when angle_part < to_unsigned(7344,14) else
            to_signed(21212,16) when angle_part < to_unsigned(7360,14) else
            to_signed(21250,16) when angle_part < to_unsigned(7376,14) else
            to_signed(21289,16) when angle_part < to_unsigned(7392,14) else
            to_signed(21327,16) when angle_part < to_unsigned(7408,14) else
            to_signed(21365,16) when angle_part < to_unsigned(7424,14) else
            to_signed(21403,16) when angle_part < to_unsigned(7440,14) else
            to_signed(21441,16) when angle_part < to_unsigned(7456,14) else
            to_signed(21479,16) when angle_part < to_unsigned(7472,14) else
            to_signed(21517,16) when angle_part < to_unsigned(7488,14) else
            to_signed(21555,16) when angle_part < to_unsigned(7504,14) else
            to_signed(21593,16) when angle_part < to_unsigned(7520,14) else
            to_signed(21630,16) when angle_part < to_unsigned(7536,14) else
            to_signed(21668,16) when angle_part < to_unsigned(7552,14) else
            to_signed(21706,16) when angle_part < to_unsigned(7568,14) else
            to_signed(21744,16) when angle_part < to_unsigned(7584,14) else
            to_signed(21781,16) when angle_part < to_unsigned(7600,14) else
            to_signed(21819,16) when angle_part < to_unsigned(7616,14) else
            to_signed(21856,16) when angle_part < to_unsigned(7632,14) else
            to_signed(21894,16) when angle_part < to_unsigned(7648,14) else
            to_signed(21931,16) when angle_part < to_unsigned(7664,14) else
            to_signed(21968,16) when angle_part < to_unsigned(7680,14) else
            to_signed(22005,16) when angle_part < to_unsigned(7696,14) else
            to_signed(22043,16) when angle_part < to_unsigned(7712,14) else
            to_signed(22080,16) when angle_part < to_unsigned(7728,14) else
            to_signed(22117,16) when angle_part < to_unsigned(7744,14) else
            to_signed(22154,16) when angle_part < to_unsigned(7760,14) else
            to_signed(22191,16) when angle_part < to_unsigned(7776,14) else
            to_signed(22228,16) when angle_part < to_unsigned(7792,14) else
            to_signed(22265,16) when angle_part < to_unsigned(7808,14) else
            to_signed(22302,16) when angle_part < to_unsigned(7824,14) else
            to_signed(22339,16) when angle_part < to_unsigned(7840,14) else
            to_signed(22375,16) when angle_part < to_unsigned(7856,14) else
            to_signed(22412,16) when angle_part < to_unsigned(7872,14) else
            to_signed(22449,16) when angle_part < to_unsigned(7888,14) else
            to_signed(22485,16) when angle_part < to_unsigned(7904,14) else
            to_signed(22522,16) when angle_part < to_unsigned(7920,14) else
            to_signed(22558,16) when angle_part < to_unsigned(7936,14) else
            to_signed(22595,16) when angle_part < to_unsigned(7952,14) else
            to_signed(22631,16) when angle_part < to_unsigned(7968,14) else
            to_signed(22667,16) when angle_part < to_unsigned(7984,14) else
            to_signed(22704,16) when angle_part < to_unsigned(8000,14) else
            to_signed(22740,16) when angle_part < to_unsigned(8016,14) else
            to_signed(22776,16) when angle_part < to_unsigned(8032,14) else
            to_signed(22812,16) when angle_part < to_unsigned(8048,14) else
            to_signed(22848,16) when angle_part < to_unsigned(8064,14) else
            to_signed(22884,16) when angle_part < to_unsigned(8080,14) else
            to_signed(22920,16) when angle_part < to_unsigned(8096,14) else
            to_signed(22956,16) when angle_part < to_unsigned(8112,14) else
            to_signed(22992,16) when angle_part < to_unsigned(8128,14) else
            to_signed(23028,16) when angle_part < to_unsigned(8144,14) else
            to_signed(23063,16) when angle_part < to_unsigned(8160,14) else
            to_signed(23099,16) when angle_part < to_unsigned(8176,14) else
            to_signed(23135,16) when angle_part < to_unsigned(8192,14) else
            to_signed(23170,16) when angle_part < to_unsigned(8208,14) else
            to_signed(23206,16) when angle_part < to_unsigned(8224,14) else
            to_signed(23241,16) when angle_part < to_unsigned(8240,14) else
            to_signed(23277,16) when angle_part < to_unsigned(8256,14) else
            to_signed(23312,16) when angle_part < to_unsigned(8272,14) else
            to_signed(23347,16) when angle_part < to_unsigned(8288,14) else
            to_signed(23383,16) when angle_part < to_unsigned(8304,14) else
            to_signed(23418,16) when angle_part < to_unsigned(8320,14) else
            to_signed(23453,16) when angle_part < to_unsigned(8336,14) else
            to_signed(23488,16) when angle_part < to_unsigned(8352,14) else
            to_signed(23523,16) when angle_part < to_unsigned(8368,14) else
            to_signed(23558,16) when angle_part < to_unsigned(8384,14) else
            to_signed(23593,16) when angle_part < to_unsigned(8400,14) else
            to_signed(23628,16) when angle_part < to_unsigned(8416,14) else
            to_signed(23662,16) when angle_part < to_unsigned(8432,14) else
            to_signed(23697,16) when angle_part < to_unsigned(8448,14) else
            to_signed(23732,16) when angle_part < to_unsigned(8464,14) else
            to_signed(23767,16) when angle_part < to_unsigned(8480,14) else
            to_signed(23801,16) when angle_part < to_unsigned(8496,14) else
            to_signed(23836,16) when angle_part < to_unsigned(8512,14) else
            to_signed(23870,16) when angle_part < to_unsigned(8528,14) else
            to_signed(23904,16) when angle_part < to_unsigned(8544,14) else
            to_signed(23939,16) when angle_part < to_unsigned(8560,14) else
            to_signed(23973,16) when angle_part < to_unsigned(8576,14) else
            to_signed(24007,16) when angle_part < to_unsigned(8592,14) else
            to_signed(24042,16) when angle_part < to_unsigned(8608,14) else
            to_signed(24076,16) when angle_part < to_unsigned(8624,14) else
            to_signed(24110,16) when angle_part < to_unsigned(8640,14) else
            to_signed(24144,16) when angle_part < to_unsigned(8656,14) else
            to_signed(24178,16) when angle_part < to_unsigned(8672,14) else
            to_signed(24212,16) when angle_part < to_unsigned(8688,14) else
            to_signed(24245,16) when angle_part < to_unsigned(8704,14) else
            to_signed(24279,16) when angle_part < to_unsigned(8720,14) else
            to_signed(24313,16) when angle_part < to_unsigned(8736,14) else
            to_signed(24347,16) when angle_part < to_unsigned(8752,14) else
            to_signed(24380,16) when angle_part < to_unsigned(8768,14) else
            to_signed(24414,16) when angle_part < to_unsigned(8784,14) else
            to_signed(24447,16) when angle_part < to_unsigned(8800,14) else
            to_signed(24481,16) when angle_part < to_unsigned(8816,14) else
            to_signed(24514,16) when angle_part < to_unsigned(8832,14) else
            to_signed(24547,16) when angle_part < to_unsigned(8848,14) else
            to_signed(24581,16) when angle_part < to_unsigned(8864,14) else
            to_signed(24614,16) when angle_part < to_unsigned(8880,14) else
            to_signed(24647,16) when angle_part < to_unsigned(8896,14) else
            to_signed(24680,16) when angle_part < to_unsigned(8912,14) else
            to_signed(24713,16) when angle_part < to_unsigned(8928,14) else
            to_signed(24746,16) when angle_part < to_unsigned(8944,14) else
            to_signed(24779,16) when angle_part < to_unsigned(8960,14) else
            to_signed(24812,16) when angle_part < to_unsigned(8976,14) else
            to_signed(24845,16) when angle_part < to_unsigned(8992,14) else
            to_signed(24878,16) when angle_part < to_unsigned(9008,14) else
            to_signed(24910,16) when angle_part < to_unsigned(9024,14) else
            to_signed(24943,16) when angle_part < to_unsigned(9040,14) else
            to_signed(24975,16) when angle_part < to_unsigned(9056,14) else
            to_signed(25008,16) when angle_part < to_unsigned(9072,14) else
            to_signed(25040,16) when angle_part < to_unsigned(9088,14) else
            to_signed(25073,16) when angle_part < to_unsigned(9104,14) else
            to_signed(25105,16) when angle_part < to_unsigned(9120,14) else
            to_signed(25137,16) when angle_part < to_unsigned(9136,14) else
            to_signed(25170,16) when angle_part < to_unsigned(9152,14) else
            to_signed(25202,16) when angle_part < to_unsigned(9168,14) else
            to_signed(25234,16) when angle_part < to_unsigned(9184,14) else
            to_signed(25266,16) when angle_part < to_unsigned(9200,14) else
            to_signed(25298,16) when angle_part < to_unsigned(9216,14) else
            to_signed(25330,16) when angle_part < to_unsigned(9232,14) else
            to_signed(25362,16) when angle_part < to_unsigned(9248,14) else
            to_signed(25393,16) when angle_part < to_unsigned(9264,14) else
            to_signed(25425,16) when angle_part < to_unsigned(9280,14) else
            to_signed(25457,16) when angle_part < to_unsigned(9296,14) else
            to_signed(25488,16) when angle_part < to_unsigned(9312,14) else
            to_signed(25520,16) when angle_part < to_unsigned(9328,14) else
            to_signed(25551,16) when angle_part < to_unsigned(9344,14) else
            to_signed(25583,16) when angle_part < to_unsigned(9360,14) else
            to_signed(25614,16) when angle_part < to_unsigned(9376,14) else
            to_signed(25646,16) when angle_part < to_unsigned(9392,14) else
            to_signed(25677,16) when angle_part < to_unsigned(9408,14) else
            to_signed(25708,16) when angle_part < to_unsigned(9424,14) else
            to_signed(25739,16) when angle_part < to_unsigned(9440,14) else
            to_signed(25770,16) when angle_part < to_unsigned(9456,14) else
            to_signed(25801,16) when angle_part < to_unsigned(9472,14) else
            to_signed(25832,16) when angle_part < to_unsigned(9488,14) else
            to_signed(25863,16) when angle_part < to_unsigned(9504,14) else
            to_signed(25894,16) when angle_part < to_unsigned(9520,14) else
            to_signed(25925,16) when angle_part < to_unsigned(9536,14) else
            to_signed(25955,16) when angle_part < to_unsigned(9552,14) else
            to_signed(25986,16) when angle_part < to_unsigned(9568,14) else
            to_signed(26017,16) when angle_part < to_unsigned(9584,14) else
            to_signed(26047,16) when angle_part < to_unsigned(9600,14) else
            to_signed(26078,16) when angle_part < to_unsigned(9616,14) else
            to_signed(26108,16) when angle_part < to_unsigned(9632,14) else
            to_signed(26138,16) when angle_part < to_unsigned(9648,14) else
            to_signed(26169,16) when angle_part < to_unsigned(9664,14) else
            to_signed(26199,16) when angle_part < to_unsigned(9680,14) else
            to_signed(26229,16) when angle_part < to_unsigned(9696,14) else
            to_signed(26259,16) when angle_part < to_unsigned(9712,14) else
            to_signed(26289,16) when angle_part < to_unsigned(9728,14) else
            to_signed(26319,16) when angle_part < to_unsigned(9744,14) else
            to_signed(26349,16) when angle_part < to_unsigned(9760,14) else
            to_signed(26379,16) when angle_part < to_unsigned(9776,14) else
            to_signed(26409,16) when angle_part < to_unsigned(9792,14) else
            to_signed(26438,16) when angle_part < to_unsigned(9808,14) else
            to_signed(26468,16) when angle_part < to_unsigned(9824,14) else
            to_signed(26498,16) when angle_part < to_unsigned(9840,14) else
            to_signed(26527,16) when angle_part < to_unsigned(9856,14) else
            to_signed(26557,16) when angle_part < to_unsigned(9872,14) else
            to_signed(26586,16) when angle_part < to_unsigned(9888,14) else
            to_signed(26616,16) when angle_part < to_unsigned(9904,14) else
            to_signed(26645,16) when angle_part < to_unsigned(9920,14) else
            to_signed(26674,16) when angle_part < to_unsigned(9936,14) else
            to_signed(26703,16) when angle_part < to_unsigned(9952,14) else
            to_signed(26732,16) when angle_part < to_unsigned(9968,14) else
            to_signed(26761,16) when angle_part < to_unsigned(9984,14) else
            to_signed(26790,16) when angle_part < to_unsigned(10000,14) else
            to_signed(26819,16) when angle_part < to_unsigned(10016,14) else
            to_signed(26848,16) when angle_part < to_unsigned(10032,14) else
            to_signed(26877,16) when angle_part < to_unsigned(10048,14) else
            to_signed(26906,16) when angle_part < to_unsigned(10064,14) else
            to_signed(26934,16) when angle_part < to_unsigned(10080,14) else
            to_signed(26963,16) when angle_part < to_unsigned(10096,14) else
            to_signed(26991,16) when angle_part < to_unsigned(10112,14) else
            to_signed(27020,16) when angle_part < to_unsigned(10128,14) else
            to_signed(27048,16) when angle_part < to_unsigned(10144,14) else
            to_signed(27077,16) when angle_part < to_unsigned(10160,14) else
            to_signed(27105,16) when angle_part < to_unsigned(10176,14) else
            to_signed(27133,16) when angle_part < to_unsigned(10192,14) else
            to_signed(27161,16) when angle_part < to_unsigned(10208,14) else
            to_signed(27189,16) when angle_part < to_unsigned(10224,14) else
            to_signed(27217,16) when angle_part < to_unsigned(10240,14) else
            to_signed(27245,16) when angle_part < to_unsigned(10256,14) else
            to_signed(27273,16) when angle_part < to_unsigned(10272,14) else
            to_signed(27301,16) when angle_part < to_unsigned(10288,14) else
            to_signed(27329,16) when angle_part < to_unsigned(10304,14) else
            to_signed(27356,16) when angle_part < to_unsigned(10320,14) else
            to_signed(27384,16) when angle_part < to_unsigned(10336,14) else
            to_signed(27412,16) when angle_part < to_unsigned(10352,14) else
            to_signed(27439,16) when angle_part < to_unsigned(10368,14) else
            to_signed(27467,16) when angle_part < to_unsigned(10384,14) else
            to_signed(27494,16) when angle_part < to_unsigned(10400,14) else
            to_signed(27521,16) when angle_part < to_unsigned(10416,14) else
            to_signed(27549,16) when angle_part < to_unsigned(10432,14) else
            to_signed(27576,16) when angle_part < to_unsigned(10448,14) else
            to_signed(27603,16) when angle_part < to_unsigned(10464,14) else
            to_signed(27630,16) when angle_part < to_unsigned(10480,14) else
            to_signed(27657,16) when angle_part < to_unsigned(10496,14) else
            to_signed(27684,16) when angle_part < to_unsigned(10512,14) else
            to_signed(27711,16) when angle_part < to_unsigned(10528,14) else
            to_signed(27737,16) when angle_part < to_unsigned(10544,14) else
            to_signed(27764,16) when angle_part < to_unsigned(10560,14) else
            to_signed(27791,16) when angle_part < to_unsigned(10576,14) else
            to_signed(27817,16) when angle_part < to_unsigned(10592,14) else
            to_signed(27844,16) when angle_part < to_unsigned(10608,14) else
            to_signed(27870,16) when angle_part < to_unsigned(10624,14) else
            to_signed(27897,16) when angle_part < to_unsigned(10640,14) else
            to_signed(27923,16) when angle_part < to_unsigned(10656,14) else
            to_signed(27949,16) when angle_part < to_unsigned(10672,14) else
            to_signed(27976,16) when angle_part < to_unsigned(10688,14) else
            to_signed(28002,16) when angle_part < to_unsigned(10704,14) else
            to_signed(28028,16) when angle_part < to_unsigned(10720,14) else
            to_signed(28054,16) when angle_part < to_unsigned(10736,14) else
            to_signed(28080,16) when angle_part < to_unsigned(10752,14) else
            to_signed(28106,16) when angle_part < to_unsigned(10768,14) else
            to_signed(28132,16) when angle_part < to_unsigned(10784,14) else
            to_signed(28157,16) when angle_part < to_unsigned(10800,14) else
            to_signed(28183,16) when angle_part < to_unsigned(10816,14) else
            to_signed(28209,16) when angle_part < to_unsigned(10832,14) else
            to_signed(28234,16) when angle_part < to_unsigned(10848,14) else
            to_signed(28260,16) when angle_part < to_unsigned(10864,14) else
            to_signed(28285,16) when angle_part < to_unsigned(10880,14) else
            to_signed(28310,16) when angle_part < to_unsigned(10896,14) else
            to_signed(28336,16) when angle_part < to_unsigned(10912,14) else
            to_signed(28361,16) when angle_part < to_unsigned(10928,14) else
            to_signed(28386,16) when angle_part < to_unsigned(10944,14) else
            to_signed(28411,16) when angle_part < to_unsigned(10960,14) else
            to_signed(28436,16) when angle_part < to_unsigned(10976,14) else
            to_signed(28461,16) when angle_part < to_unsigned(10992,14) else
            to_signed(28486,16) when angle_part < to_unsigned(11008,14) else
            to_signed(28511,16) when angle_part < to_unsigned(11024,14) else
            to_signed(28535,16) when angle_part < to_unsigned(11040,14) else
            to_signed(28560,16) when angle_part < to_unsigned(11056,14) else
            to_signed(28585,16) when angle_part < to_unsigned(11072,14) else
            to_signed(28609,16) when angle_part < to_unsigned(11088,14) else
            to_signed(28634,16) when angle_part < to_unsigned(11104,14) else
            to_signed(28658,16) when angle_part < to_unsigned(11120,14) else
            to_signed(28682,16) when angle_part < to_unsigned(11136,14) else
            to_signed(28707,16) when angle_part < to_unsigned(11152,14) else
            to_signed(28731,16) when angle_part < to_unsigned(11168,14) else
            to_signed(28755,16) when angle_part < to_unsigned(11184,14) else
            to_signed(28779,16) when angle_part < to_unsigned(11200,14) else
            to_signed(28803,16) when angle_part < to_unsigned(11216,14) else
            to_signed(28827,16) when angle_part < to_unsigned(11232,14) else
            to_signed(28851,16) when angle_part < to_unsigned(11248,14) else
            to_signed(28875,16) when angle_part < to_unsigned(11264,14) else
            to_signed(28898,16) when angle_part < to_unsigned(11280,14) else
            to_signed(28922,16) when angle_part < to_unsigned(11296,14) else
            to_signed(28946,16) when angle_part < to_unsigned(11312,14) else
            to_signed(28969,16) when angle_part < to_unsigned(11328,14) else
            to_signed(28993,16) when angle_part < to_unsigned(11344,14) else
            to_signed(29016,16) when angle_part < to_unsigned(11360,14) else
            to_signed(29039,16) when angle_part < to_unsigned(11376,14) else
            to_signed(29063,16) when angle_part < to_unsigned(11392,14) else
            to_signed(29086,16) when angle_part < to_unsigned(11408,14) else
            to_signed(29109,16) when angle_part < to_unsigned(11424,14) else
            to_signed(29132,16) when angle_part < to_unsigned(11440,14) else
            to_signed(29155,16) when angle_part < to_unsigned(11456,14) else
            to_signed(29178,16) when angle_part < to_unsigned(11472,14) else
            to_signed(29201,16) when angle_part < to_unsigned(11488,14) else
            to_signed(29223,16) when angle_part < to_unsigned(11504,14) else
            to_signed(29246,16) when angle_part < to_unsigned(11520,14) else
            to_signed(29269,16) when angle_part < to_unsigned(11536,14) else
            to_signed(29291,16) when angle_part < to_unsigned(11552,14) else
            to_signed(29314,16) when angle_part < to_unsigned(11568,14) else
            to_signed(29336,16) when angle_part < to_unsigned(11584,14) else
            to_signed(29359,16) when angle_part < to_unsigned(11600,14) else
            to_signed(29381,16) when angle_part < to_unsigned(11616,14) else
            to_signed(29403,16) when angle_part < to_unsigned(11632,14) else
            to_signed(29425,16) when angle_part < to_unsigned(11648,14) else
            to_signed(29447,16) when angle_part < to_unsigned(11664,14) else
            to_signed(29469,16) when angle_part < to_unsigned(11680,14) else
            to_signed(29491,16) when angle_part < to_unsigned(11696,14) else
            to_signed(29513,16) when angle_part < to_unsigned(11712,14) else
            to_signed(29535,16) when angle_part < to_unsigned(11728,14) else
            to_signed(29557,16) when angle_part < to_unsigned(11744,14) else
            to_signed(29578,16) when angle_part < to_unsigned(11760,14) else
            to_signed(29600,16) when angle_part < to_unsigned(11776,14) else
            to_signed(29622,16) when angle_part < to_unsigned(11792,14) else
            to_signed(29643,16) when angle_part < to_unsigned(11808,14) else
            to_signed(29664,16) when angle_part < to_unsigned(11824,14) else
            to_signed(29686,16) when angle_part < to_unsigned(11840,14) else
            to_signed(29707,16) when angle_part < to_unsigned(11856,14) else
            to_signed(29728,16) when angle_part < to_unsigned(11872,14) else
            to_signed(29749,16) when angle_part < to_unsigned(11888,14) else
            to_signed(29770,16) when angle_part < to_unsigned(11904,14) else
            to_signed(29791,16) when angle_part < to_unsigned(11920,14) else
            to_signed(29812,16) when angle_part < to_unsigned(11936,14) else
            to_signed(29833,16) when angle_part < to_unsigned(11952,14) else
            to_signed(29854,16) when angle_part < to_unsigned(11968,14) else
            to_signed(29874,16) when angle_part < to_unsigned(11984,14) else
            to_signed(29895,16) when angle_part < to_unsigned(12000,14) else
            to_signed(29916,16) when angle_part < to_unsigned(12016,14) else
            to_signed(29936,16) when angle_part < to_unsigned(12032,14) else
            to_signed(29956,16) when angle_part < to_unsigned(12048,14) else
            to_signed(29977,16) when angle_part < to_unsigned(12064,14) else
            to_signed(29997,16) when angle_part < to_unsigned(12080,14) else
            to_signed(30017,16) when angle_part < to_unsigned(12096,14) else
            to_signed(30037,16) when angle_part < to_unsigned(12112,14) else
            to_signed(30057,16) when angle_part < to_unsigned(12128,14) else
            to_signed(30077,16) when angle_part < to_unsigned(12144,14) else
            to_signed(30097,16) when angle_part < to_unsigned(12160,14) else
            to_signed(30117,16) when angle_part < to_unsigned(12176,14) else
            to_signed(30137,16) when angle_part < to_unsigned(12192,14) else
            to_signed(30157,16) when angle_part < to_unsigned(12208,14) else
            to_signed(30176,16) when angle_part < to_unsigned(12224,14) else
            to_signed(30196,16) when angle_part < to_unsigned(12240,14) else
            to_signed(30215,16) when angle_part < to_unsigned(12256,14) else
            to_signed(30235,16) when angle_part < to_unsigned(12272,14) else
            to_signed(30254,16) when angle_part < to_unsigned(12288,14) else
            to_signed(30273,16) when angle_part < to_unsigned(12304,14) else
            to_signed(30292,16) when angle_part < to_unsigned(12320,14) else
            to_signed(30312,16) when angle_part < to_unsigned(12336,14) else
            to_signed(30331,16) when angle_part < to_unsigned(12352,14) else
            to_signed(30350,16) when angle_part < to_unsigned(12368,14) else
            to_signed(30369,16) when angle_part < to_unsigned(12384,14) else
            to_signed(30387,16) when angle_part < to_unsigned(12400,14) else
            to_signed(30406,16) when angle_part < to_unsigned(12416,14) else
            to_signed(30425,16) when angle_part < to_unsigned(12432,14) else
            to_signed(30443,16) when angle_part < to_unsigned(12448,14) else
            to_signed(30462,16) when angle_part < to_unsigned(12464,14) else
            to_signed(30481,16) when angle_part < to_unsigned(12480,14) else
            to_signed(30499,16) when angle_part < to_unsigned(12496,14) else
            to_signed(30517,16) when angle_part < to_unsigned(12512,14) else
            to_signed(30536,16) when angle_part < to_unsigned(12528,14) else
            to_signed(30554,16) when angle_part < to_unsigned(12544,14) else
            to_signed(30572,16) when angle_part < to_unsigned(12560,14) else
            to_signed(30590,16) when angle_part < to_unsigned(12576,14) else
            to_signed(30608,16) when angle_part < to_unsigned(12592,14) else
            to_signed(30626,16) when angle_part < to_unsigned(12608,14) else
            to_signed(30644,16) when angle_part < to_unsigned(12624,14) else
            to_signed(30661,16) when angle_part < to_unsigned(12640,14) else
            to_signed(30679,16) when angle_part < to_unsigned(12656,14) else
            to_signed(30697,16) when angle_part < to_unsigned(12672,14) else
            to_signed(30714,16) when angle_part < to_unsigned(12688,14) else
            to_signed(30732,16) when angle_part < to_unsigned(12704,14) else
            to_signed(30749,16) when angle_part < to_unsigned(12720,14) else
            to_signed(30767,16) when angle_part < to_unsigned(12736,14) else
            to_signed(30784,16) when angle_part < to_unsigned(12752,14) else
            to_signed(30801,16) when angle_part < to_unsigned(12768,14) else
            to_signed(30818,16) when angle_part < to_unsigned(12784,14) else
            to_signed(30835,16) when angle_part < to_unsigned(12800,14) else
            to_signed(30852,16) when angle_part < to_unsigned(12816,14) else
            to_signed(30869,16) when angle_part < to_unsigned(12832,14) else
            to_signed(30886,16) when angle_part < to_unsigned(12848,14) else
            to_signed(30903,16) when angle_part < to_unsigned(12864,14) else
            to_signed(30919,16) when angle_part < to_unsigned(12880,14) else
            to_signed(30936,16) when angle_part < to_unsigned(12896,14) else
            to_signed(30952,16) when angle_part < to_unsigned(12912,14) else
            to_signed(30969,16) when angle_part < to_unsigned(12928,14) else
            to_signed(30985,16) when angle_part < to_unsigned(12944,14) else
            to_signed(31002,16) when angle_part < to_unsigned(12960,14) else
            to_signed(31018,16) when angle_part < to_unsigned(12976,14) else
            to_signed(31034,16) when angle_part < to_unsigned(12992,14) else
            to_signed(31050,16) when angle_part < to_unsigned(13008,14) else
            to_signed(31066,16) when angle_part < to_unsigned(13024,14) else
            to_signed(31082,16) when angle_part < to_unsigned(13040,14) else
            to_signed(31098,16) when angle_part < to_unsigned(13056,14) else
            to_signed(31114,16) when angle_part < to_unsigned(13072,14) else
            to_signed(31129,16) when angle_part < to_unsigned(13088,14) else
            to_signed(31145,16) when angle_part < to_unsigned(13104,14) else
            to_signed(31161,16) when angle_part < to_unsigned(13120,14) else
            to_signed(31176,16) when angle_part < to_unsigned(13136,14) else
            to_signed(31192,16) when angle_part < to_unsigned(13152,14) else
            to_signed(31207,16) when angle_part < to_unsigned(13168,14) else
            to_signed(31222,16) when angle_part < to_unsigned(13184,14) else
            to_signed(31237,16) when angle_part < to_unsigned(13200,14) else
            to_signed(31253,16) when angle_part < to_unsigned(13216,14) else
            to_signed(31268,16) when angle_part < to_unsigned(13232,14) else
            to_signed(31283,16) when angle_part < to_unsigned(13248,14) else
            to_signed(31298,16) when angle_part < to_unsigned(13264,14) else
            to_signed(31312,16) when angle_part < to_unsigned(13280,14) else
            to_signed(31327,16) when angle_part < to_unsigned(13296,14) else
            to_signed(31342,16) when angle_part < to_unsigned(13312,14) else
            to_signed(31357,16) when angle_part < to_unsigned(13328,14) else
            to_signed(31371,16) when angle_part < to_unsigned(13344,14) else
            to_signed(31386,16) when angle_part < to_unsigned(13360,14) else
            to_signed(31400,16) when angle_part < to_unsigned(13376,14) else
            to_signed(31414,16) when angle_part < to_unsigned(13392,14) else
            to_signed(31429,16) when angle_part < to_unsigned(13408,14) else
            to_signed(31443,16) when angle_part < to_unsigned(13424,14) else
            to_signed(31457,16) when angle_part < to_unsigned(13440,14) else
            to_signed(31471,16) when angle_part < to_unsigned(13456,14) else
            to_signed(31485,16) when angle_part < to_unsigned(13472,14) else
            to_signed(31499,16) when angle_part < to_unsigned(13488,14) else
            to_signed(31513,16) when angle_part < to_unsigned(13504,14) else
            to_signed(31526,16) when angle_part < to_unsigned(13520,14) else
            to_signed(31540,16) when angle_part < to_unsigned(13536,14) else
            to_signed(31554,16) when angle_part < to_unsigned(13552,14) else
            to_signed(31567,16) when angle_part < to_unsigned(13568,14) else
            to_signed(31581,16) when angle_part < to_unsigned(13584,14) else
            to_signed(31594,16) when angle_part < to_unsigned(13600,14) else
            to_signed(31607,16) when angle_part < to_unsigned(13616,14) else
            to_signed(31620,16) when angle_part < to_unsigned(13632,14) else
            to_signed(31634,16) when angle_part < to_unsigned(13648,14) else
            to_signed(31647,16) when angle_part < to_unsigned(13664,14) else
            to_signed(31660,16) when angle_part < to_unsigned(13680,14) else
            to_signed(31673,16) when angle_part < to_unsigned(13696,14) else
            to_signed(31685,16) when angle_part < to_unsigned(13712,14) else
            to_signed(31698,16) when angle_part < to_unsigned(13728,14) else
            to_signed(31711,16) when angle_part < to_unsigned(13744,14) else
            to_signed(31724,16) when angle_part < to_unsigned(13760,14) else
            to_signed(31736,16) when angle_part < to_unsigned(13776,14) else
            to_signed(31749,16) when angle_part < to_unsigned(13792,14) else
            to_signed(31761,16) when angle_part < to_unsigned(13808,14) else
            to_signed(31773,16) when angle_part < to_unsigned(13824,14) else
            to_signed(31786,16) when angle_part < to_unsigned(13840,14) else
            to_signed(31798,16) when angle_part < to_unsigned(13856,14) else
            to_signed(31810,16) when angle_part < to_unsigned(13872,14) else
            to_signed(31822,16) when angle_part < to_unsigned(13888,14) else
            to_signed(31834,16) when angle_part < to_unsigned(13904,14) else
            to_signed(31846,16) when angle_part < to_unsigned(13920,14) else
            to_signed(31857,16) when angle_part < to_unsigned(13936,14) else
            to_signed(31869,16) when angle_part < to_unsigned(13952,14) else
            to_signed(31881,16) when angle_part < to_unsigned(13968,14) else
            to_signed(31892,16) when angle_part < to_unsigned(13984,14) else
            to_signed(31904,16) when angle_part < to_unsigned(14000,14) else
            to_signed(31915,16) when angle_part < to_unsigned(14016,14) else
            to_signed(31927,16) when angle_part < to_unsigned(14032,14) else
            to_signed(31938,16) when angle_part < to_unsigned(14048,14) else
            to_signed(31949,16) when angle_part < to_unsigned(14064,14) else
            to_signed(31960,16) when angle_part < to_unsigned(14080,14) else
            to_signed(31971,16) when angle_part < to_unsigned(14096,14) else
            to_signed(31982,16) when angle_part < to_unsigned(14112,14) else
            to_signed(31993,16) when angle_part < to_unsigned(14128,14) else
            to_signed(32004,16) when angle_part < to_unsigned(14144,14) else
            to_signed(32015,16) when angle_part < to_unsigned(14160,14) else
            to_signed(32025,16) when angle_part < to_unsigned(14176,14) else
            to_signed(32036,16) when angle_part < to_unsigned(14192,14) else
            to_signed(32047,16) when angle_part < to_unsigned(14208,14) else
            to_signed(32057,16) when angle_part < to_unsigned(14224,14) else
            to_signed(32067,16) when angle_part < to_unsigned(14240,14) else
            to_signed(32078,16) when angle_part < to_unsigned(14256,14) else
            to_signed(32088,16) when angle_part < to_unsigned(14272,14) else
            to_signed(32098,16) when angle_part < to_unsigned(14288,14) else
            to_signed(32108,16) when angle_part < to_unsigned(14304,14) else
            to_signed(32118,16) when angle_part < to_unsigned(14320,14) else
            to_signed(32128,16) when angle_part < to_unsigned(14336,14) else
            to_signed(32138,16) when angle_part < to_unsigned(14352,14) else
            to_signed(32148,16) when angle_part < to_unsigned(14368,14) else
            to_signed(32157,16) when angle_part < to_unsigned(14384,14) else
            to_signed(32167,16) when angle_part < to_unsigned(14400,14) else
            to_signed(32177,16) when angle_part < to_unsigned(14416,14) else
            to_signed(32186,16) when angle_part < to_unsigned(14432,14) else
            to_signed(32195,16) when angle_part < to_unsigned(14448,14) else
            to_signed(32205,16) when angle_part < to_unsigned(14464,14) else
            to_signed(32214,16) when angle_part < to_unsigned(14480,14) else
            to_signed(32223,16) when angle_part < to_unsigned(14496,14) else
            to_signed(32232,16) when angle_part < to_unsigned(14512,14) else
            to_signed(32241,16) when angle_part < to_unsigned(14528,14) else
            to_signed(32250,16) when angle_part < to_unsigned(14544,14) else
            to_signed(32259,16) when angle_part < to_unsigned(14560,14) else
            to_signed(32268,16) when angle_part < to_unsigned(14576,14) else
            to_signed(32276,16) when angle_part < to_unsigned(14592,14) else
            to_signed(32285,16) when angle_part < to_unsigned(14608,14) else
            to_signed(32294,16) when angle_part < to_unsigned(14624,14) else
            to_signed(32302,16) when angle_part < to_unsigned(14640,14) else
            to_signed(32311,16) when angle_part < to_unsigned(14656,14) else
            to_signed(32319,16) when angle_part < to_unsigned(14672,14) else
            to_signed(32327,16) when angle_part < to_unsigned(14688,14) else
            to_signed(32335,16) when angle_part < to_unsigned(14704,14) else
            to_signed(32343,16) when angle_part < to_unsigned(14720,14) else
            to_signed(32351,16) when angle_part < to_unsigned(14736,14) else
            to_signed(32359,16) when angle_part < to_unsigned(14752,14) else
            to_signed(32367,16) when angle_part < to_unsigned(14768,14) else
            to_signed(32375,16) when angle_part < to_unsigned(14784,14) else
            to_signed(32383,16) when angle_part < to_unsigned(14800,14) else
            to_signed(32390,16) when angle_part < to_unsigned(14816,14) else
            to_signed(32398,16) when angle_part < to_unsigned(14832,14) else
            to_signed(32405,16) when angle_part < to_unsigned(14848,14) else
            to_signed(32413,16) when angle_part < to_unsigned(14864,14) else
            to_signed(32420,16) when angle_part < to_unsigned(14880,14) else
            to_signed(32427,16) when angle_part < to_unsigned(14896,14) else
            to_signed(32435,16) when angle_part < to_unsigned(14912,14) else
            to_signed(32442,16) when angle_part < to_unsigned(14928,14) else
            to_signed(32449,16) when angle_part < to_unsigned(14944,14) else
            to_signed(32456,16) when angle_part < to_unsigned(14960,14) else
            to_signed(32463,16) when angle_part < to_unsigned(14976,14) else
            to_signed(32469,16) when angle_part < to_unsigned(14992,14) else
            to_signed(32476,16) when angle_part < to_unsigned(15008,14) else
            to_signed(32483,16) when angle_part < to_unsigned(15024,14) else
            to_signed(32489,16) when angle_part < to_unsigned(15040,14) else
            to_signed(32496,16) when angle_part < to_unsigned(15056,14) else
            to_signed(32502,16) when angle_part < to_unsigned(15072,14) else
            to_signed(32509,16) when angle_part < to_unsigned(15088,14) else
            to_signed(32515,16) when angle_part < to_unsigned(15104,14) else
            to_signed(32521,16) when angle_part < to_unsigned(15120,14) else
            to_signed(32527,16) when angle_part < to_unsigned(15136,14) else
            to_signed(32533,16) when angle_part < to_unsigned(15152,14) else
            to_signed(32539,16) when angle_part < to_unsigned(15168,14) else
            to_signed(32545,16) when angle_part < to_unsigned(15184,14) else
            to_signed(32551,16) when angle_part < to_unsigned(15200,14) else
            to_signed(32557,16) when angle_part < to_unsigned(15216,14) else
            to_signed(32562,16) when angle_part < to_unsigned(15232,14) else
            to_signed(32568,16) when angle_part < to_unsigned(15248,14) else
            to_signed(32573,16) when angle_part < to_unsigned(15264,14) else
            to_signed(32579,16) when angle_part < to_unsigned(15280,14) else
            to_signed(32584,16) when angle_part < to_unsigned(15296,14) else
            to_signed(32589,16) when angle_part < to_unsigned(15312,14) else
            to_signed(32595,16) when angle_part < to_unsigned(15328,14) else
            to_signed(32600,16) when angle_part < to_unsigned(15344,14) else
            to_signed(32605,16) when angle_part < to_unsigned(15360,14) else
            to_signed(32610,16) when angle_part < to_unsigned(15376,14) else
            to_signed(32615,16) when angle_part < to_unsigned(15392,14) else
            to_signed(32619,16) when angle_part < to_unsigned(15408,14) else
            to_signed(32624,16) when angle_part < to_unsigned(15424,14) else
            to_signed(32629,16) when angle_part < to_unsigned(15440,14) else
            to_signed(32633,16) when angle_part < to_unsigned(15456,14) else
            to_signed(32638,16) when angle_part < to_unsigned(15472,14) else
            to_signed(32642,16) when angle_part < to_unsigned(15488,14) else
            to_signed(32647,16) when angle_part < to_unsigned(15504,14) else
            to_signed(32651,16) when angle_part < to_unsigned(15520,14) else
            to_signed(32655,16) when angle_part < to_unsigned(15536,14) else
            to_signed(32659,16) when angle_part < to_unsigned(15552,14) else
            to_signed(32663,16) when angle_part < to_unsigned(15568,14) else
            to_signed(32667,16) when angle_part < to_unsigned(15584,14) else
            to_signed(32671,16) when angle_part < to_unsigned(15600,14) else
            to_signed(32675,16) when angle_part < to_unsigned(15616,14) else
            to_signed(32679,16) when angle_part < to_unsigned(15632,14) else
            to_signed(32682,16) when angle_part < to_unsigned(15648,14) else
            to_signed(32686,16) when angle_part < to_unsigned(15664,14) else
            to_signed(32689,16) when angle_part < to_unsigned(15680,14) else
            to_signed(32693,16) when angle_part < to_unsigned(15696,14) else
            to_signed(32696,16) when angle_part < to_unsigned(15712,14) else
            to_signed(32700,16) when angle_part < to_unsigned(15728,14) else
            to_signed(32703,16) when angle_part < to_unsigned(15744,14) else
            to_signed(32706,16) when angle_part < to_unsigned(15760,14) else
            to_signed(32709,16) when angle_part < to_unsigned(15776,14) else
            to_signed(32712,16) when angle_part < to_unsigned(15792,14) else
            to_signed(32715,16) when angle_part < to_unsigned(15808,14) else
            to_signed(32718,16) when angle_part < to_unsigned(15824,14) else
            to_signed(32720,16) when angle_part < to_unsigned(15840,14) else
            to_signed(32723,16) when angle_part < to_unsigned(15856,14) else
            to_signed(32726,16) when angle_part < to_unsigned(15872,14) else
            to_signed(32728,16) when angle_part < to_unsigned(15888,14) else
            to_signed(32730,16) when angle_part < to_unsigned(15904,14) else
            to_signed(32733,16) when angle_part < to_unsigned(15920,14) else
            to_signed(32735,16) when angle_part < to_unsigned(15936,14) else
            to_signed(32737,16) when angle_part < to_unsigned(15952,14) else
            to_signed(32739,16) when angle_part < to_unsigned(15968,14) else
            to_signed(32741,16) when angle_part < to_unsigned(15984,14) else
            to_signed(32743,16) when angle_part < to_unsigned(16000,14) else
            to_signed(32745,16) when angle_part < to_unsigned(16016,14) else
            to_signed(32747,16) when angle_part < to_unsigned(16032,14) else
            to_signed(32749,16) when angle_part < to_unsigned(16048,14) else
            to_signed(32751,16) when angle_part < to_unsigned(16064,14) else
            to_signed(32752,16) when angle_part < to_unsigned(16080,14) else
            to_signed(32754,16) when angle_part < to_unsigned(16096,14) else
            to_signed(32755,16) when angle_part < to_unsigned(16112,14) else
            to_signed(32756,16) when angle_part < to_unsigned(16128,14) else
            to_signed(32758,16) when angle_part < to_unsigned(16144,14) else
            to_signed(32759,16) when angle_part < to_unsigned(16160,14) else
            to_signed(32760,16) when angle_part < to_unsigned(16176,14) else
            to_signed(32761,16) when angle_part < to_unsigned(16192,14) else
            to_signed(32762,16) when angle_part < to_unsigned(16208,14) else
            to_signed(32763,16) when angle_part < to_unsigned(16224,14) else
            to_signed(32764,16) when angle_part < to_unsigned(16240,14) else
            to_signed(32764,16) when angle_part < to_unsigned(16256,14) else
            to_signed(32765,16) when angle_part < to_unsigned(16272,14) else
            to_signed(32766,16) when angle_part < to_unsigned(16288,14) else
            to_signed(32766,16) when angle_part < to_unsigned(16304,14) else
            to_signed(32767,16) when angle_part < to_unsigned(16320,14) else
            to_signed(32767,16) when angle_part < to_unsigned(16336,14) else
            to_signed(32767,16) when angle_part < to_unsigned(16352,14) else
            to_signed(32767,16) when angle_part < to_unsigned(16368,14) else
            to_signed(32767,16);

sin <= sin_part when quadrant(1) = '0' else -sin_part;

end Behavioral;