#ifndef YM_TABLES_H
#define YM_TABLES_H

#include "blargg_common.h"

static const signed int tl_coeff [256] ICONST_ATTR = {
	2042,  2037,  2031,  2026,  2020,  2015,  2010,  2004,  1999, 
	1993,  1988,  1983,  1977,  1972,  1966,  1961,  1956,  1951, 
	1945,  1940,  1935,  1930,  1924,  1919,  1914,  1909,  1904, 
	1898,  1893,  1888,  1883,  1878,  1873,  1868,  1863,  1858, 
	1853,  1848,  1843,  1838,  1833,  1828,  1823,  1818,  1813, 
	1808,  1803,  1798,  1794,  1789,  1784,  1779,  1774,  1769, 
	1765,  1760,  1755,  1750,  1746,  1741,  1736,  1732,  1727, 
	1722,  1717,  1713,  1708,  1704,  1699,  1694,  1690,  1685, 
	1681,  1676,  1672,  1667,  1663,  1658,  1654,  1649,  1645, 
	1640,  1636,  1631,  1627,  1623,  1618,  1614,  1609,  1605, 
	1601,  1596,  1592,  1588,  1584,  1579,  1575,  1571,  1566, 
	1562,  1558,  1554,  1550,  1545,  1541,  1537,  1533,  1529, 
	1525,  1520,  1516,  1512,  1508,  1504,  1500,  1496,  1492, 
	1488,  1484,  1480,  1476,  1472,  1468,  1464,  1460,  1456, 
	1452,  1448,  1444,  1440,  1436,  1433,  1429,  1425,  1421, 
	1417,  1413,  1409,  1406,  1402,  1398,  1394,  1391,  1387, 
	1383,  1379,  1376,  1372,  1368,  1364,  1361,  1357,  1353, 
	1350,  1346,  1342,  1339,  1335,  1332,  1328,  1324,  1321, 
	1317,  1314,  1310,  1307,  1303,  1300,  1296,  1292,  1289, 
	1286,  1282,  1279,  1275,  1272,  1268,  1265,  1261,  1258, 
	1255,  1251,  1248,  1244,  1241,  1238,  1234,  1231,  1228, 
	1224,  1221,  1218,  1214,  1211,  1208,  1205,  1201,  1198, 
	1195,  1192,  1188,  1185,  1182,  1179,  1176,  1172,  1169, 
	1166,  1163,  1160,  1157,  1154,  1150,  1147,  1144,  1141, 
	1138,  1135,  1132,  1129,  1126,  1123,  1120,  1117,  1114, 
	1111,  1108,  1105,  1102,  1099,  1096,  1093,  1090,  1087, 
	1084,  1081,  1078,  1075,  1072,  1069,  1066,  1064,  1061, 
	1058,  1055,  1052,  1049,  1046,  1044,  1041,  1038,  1035, 
	1032,  1030,  1027,  1024, 
};

static const unsigned int sin_coeff [1<<10] ICONST_ATTR = 
{
	4274,  3462,  3086,  2838,  2652,  2504,  2380,  2274,  2182, 
	2100,  2026,  1958,  1898,  1840,  1788,  1738,  1692,  1650, 
	1608,  1570,  1534,  1498,  1464,  1434,  1402,  1374,  1344, 
	1318,  1292,  1266,  1242,  1218,  1196,  1174,  1152,  1132, 
	1112,  1092,  1072,  1054,  1036,  1018,  1002,   984,   968, 
	 952,   936,   922,   906,   892,   878,   864,   850,   836, 
	 822,   810,   798,   784,   772,   760,   750,   738,   726, 
	 716,   704,   694,   682,   672,   662,   652,   642,   632, 
	 622,   614,   604,   594,   586,   578,   568,   560,   552, 
	 542,   534,   526,   518,   510,   502,   496,   488,   480, 
	 472,   466,   458,   452,   444,   438,   430,   424,   418, 
	 410,   404,   398,   392,   386,   380,   374,   368,   362, 
	 356,   350,   344,   338,   334,   328,   322,   318,   312, 
	 306,   302,   296,   292,   286,   282,   276,   272,   268, 
	 262,   258,   254,   250,   244,   240,   236,   232,   228, 
	 224,   220,   216,   212,   208,   204,   200,   196,   192, 
	 188,   184,   182,   178,   174,   170,   166,   164,   160, 
	 156,   154,   150,   148,   144,   140,   138,   134,   132, 
	 128,   126,   124,   120,   118,   114,   112,   110,   106, 
	 104,   102,    98,    96,    94,    92,    90,    86,    84, 
	  82,    80,    78,    76,    74,    72,    70,    68,    66, 
	  64,    62,    60,    58,    56,    54,    52,    50,    48, 
	  46,    46,    44,    42,    40,    40,    38,    36,    34, 
	  34,    32,    30,    30,    28,    26,    26,    24,    24, 
	  22,    20,    20,    18,    18,    16,    16,    14,    14, 
	  14,    12,    12,    10,    10,    10,     8,     8,     8, 
	   6,     6,     6,     4,     4,     4,     4,     2,     2, 
	   2,     2,     2,     2,     2,     0,     0,     0,     0, 
	   0,     0,     0,     0,     0,     0,     0,     0,     0, 
	   0,     0,     0,     2,     2,     2,     2,     2,     2, 
	   2,     4,     4,     4,     4,     6,     6,     6,     8, 
	   8,     8,    10,    10,    10,    12,    12,    14,    14, 
	  14,    16,    16,    18,    18,    20,    20,    22,    24, 
	  24,    26,    26,    28,    30,    30,    32,    34,    34, 
	  36,    38,    40,    40,    42,    44,    46,    46,    48, 
	  50,    52,    54,    56,    58,    60,    62,    64,    66, 
	  68,    70,    72,    74,    76,    78,    80,    82,    84, 
	  86,    90,    92,    94,    96,    98,   102,   104,   106, 
	 110,   112,   114,   118,   120,   124,   126,   128,   132, 
	 134,   138,   140,   144,   148,   150,   154,   156,   160, 
	 164,   166,   170,   174,   178,   182,   184,   188,   192, 
	 196,   200,   204,   208,   212,   216,   220,   224,   228, 
	 232,   236,   240,   244,   250,   254,   258,   262,   268, 
	 272,   276,   282,   286,   292,   296,   302,   306,   312, 
	 318,   322,   328,   334,   338,   344,   350,   356,   362, 
	 368,   374,   380,   386,   392,   398,   404,   410,   418, 
	 424,   430,   438,   444,   452,   458,   466,   472,   480, 
	 488,   496,   502,   510,   518,   526,   534,   542,   552, 
	 560,   568,   578,   586,   594,   604,   614,   622,   632, 
	 642,   652,   662,   672,   682,   694,   704,   716,   726, 
	 738,   750,   760,   772,   784,   798,   810,   822,   836, 
	 850,   864,   878,   892,   906,   922,   936,   952,   968, 
	 984,  1002,  1018,  1036,  1054,  1072,  1092,  1112,  1132, 
	1152,  1174,  1196,  1218,  1242,  1266,  1292,  1318,  1344, 
	1374,  1402,  1434,  1464,  1498,  1534,  1570,  1608,  1650, 
	1692,  1738,  1788,  1840,  1898,  1958,  2026,  2100,  2182, 
	2274,  2380,  2504,  2652,  2838,  3086,  3462,  4274,  4275, 
	3463,  3087,  2839,  2653,  2505,  2381,  2275,  2183,  2101, 
	2027,  1959,  1899,  1841,  1789,  1739,  1693,  1651,  1609, 
	1571,  1535,  1499,  1465,  1435,  1403,  1375,  1345,  1319, 
	1293,  1267,  1243,  1219,  1197,  1175,  1153,  1133,  1113, 
	1093,  1073,  1055,  1037,  1019,  1003,   985,   969,   953, 
	 937,   923,   907,   893,   879,   865,   851,   837,   823, 
	 811,   799,   785,   773,   761,   751,   739,   727,   717, 
	 705,   695,   683,   673,   663,   653,   643,   633,   623, 
	 615,   605,   595,   587,   579,   569,   561,   553,   543, 
	 535,   527,   519,   511,   503,   497,   489,   481,   473, 
	 467,   459,   453,   445,   439,   431,   425,   419,   411, 
	 405,   399,   393,   387,   381,   375,   369,   363,   357, 
	 351,   345,   339,   335,   329,   323,   319,   313,   307, 
	 303,   297,   293,   287,   283,   277,   273,   269,   263, 
	 259,   255,   251,   245,   241,   237,   233,   229,   225, 
	 221,   217,   213,   209,   205,   201,   197,   193,   189, 
	 185,   183,   179,   175,   171,   167,   165,   161,   157, 
	 155,   151,   149,   145,   141,   139,   135,   133,   129, 
	 127,   125,   121,   119,   115,   113,   111,   107,   105, 
	 103,    99,    97,    95,    93,    91,    87,    85,    83, 
	  81,    79,    77,    75,    73,    71,    69,    67,    65, 
	  63,    61,    59,    57,    55,    53,    51,    49,    47, 
	  47,    45,    43,    41,    41,    39,    37,    35,    35, 
	  33,    31,    31,    29,    27,    27,    25,    25,    23, 
	  21,    21,    19,    19,    17,    17,    15,    15,    15, 
	  13,    13,    11,    11,    11,     9,     9,     9,     7, 
	   7,     7,     5,     5,     5,     5,     3,     3,     3, 
	   3,     3,     3,     3,     1,     1,     1,     1,     1, 
	   1,     1,     1,     1,     1,     1,     1,     1,     1, 
	   1,     1,     3,     3,     3,     3,     3,     3,     3, 
	   5,     5,     5,     5,     7,     7,     7,     9,     9, 
	   9,    11,    11,    11,    13,    13,    15,    15,    15, 
	  17,    17,    19,    19,    21,    21,    23,    25,    25, 
	  27,    27,    29,    31,    31,    33,    35,    35,    37, 
	  39,    41,    41,    43,    45,    47,    47,    49,    51, 
	  53,    55,    57,    59,    61,    63,    65,    67,    69, 
	  71,    73,    75,    77,    79,    81,    83,    85,    87, 
	  91,    93,    95,    97,    99,   103,   105,   107,   111, 
	 113,   115,   119,   121,   125,   127,   129,   133,   135, 
	 139,   141,   145,   149,   151,   155,   157,   161,   165, 
	 167,   171,   175,   179,   183,   185,   189,   193,   197, 
	 201,   205,   209,   213,   217,   221,   225,   229,   233, 
	 237,   241,   245,   251,   255,   259,   263,   269,   273, 
	 277,   283,   287,   293,   297,   303,   307,   313,   319, 
	 323,   329,   335,   339,   345,   351,   357,   363,   369, 
	 375,   381,   387,   393,   399,   405,   411,   419,   425, 
	 431,   439,   445,   453,   459,   467,   473,   481,   489, 
	 497,   503,   511,   519,   527,   535,   543,   553,   561, 
	 569,   579,   587,   595,   605,   615,   623,   633,   643, 
	 653,   663,   673,   683,   695,   705,   717,   727,   739, 
	 751,   761,   773,   785,   799,   811,   823,   837,   851, 
	 865,   879,   893,   907,   923,   937,   953,   969,   985, 
	1003,  1019,  1037,  1055,  1073,  1093,  1113,  1133,  1153, 
	1175,  1197,  1219,  1243,  1267,  1293,  1319,  1345,  1375, 
	1403,  1435,  1465,  1499,  1535,  1571,  1609,  1651,  1693, 
	1739,  1789,  1841,  1899,  1959,  2027,  2101,  2183,  2275, 
	2381,  2505,  2653,  2839,  3087,  3463,  4275, 
};

#endif
