pub const FIRST_WAVELENGTH: f64 = 360.0;
pub const LAST_WAVELENGTH: f64 = 780.0;
pub const WAVELENGTH_TO_RGB: [(i16, i16, i16); 421] = [
(0, 0, 5), (1, 0, 5), (1, 0, 6), (1, -1, 7), (1, -1, 8), (1, -1, 9), (1, -1, 10), (2, -1, 12), (2, -1, 13), (2, -2, 15), (2, -2, 17), (3, -2, 19), (3, -3, 21), (4, -3, 23), (4, -3, 26), (5, -4, 30), (5, -4, 34), (6, -5, 39), (7, -6, 45), (8, -7, 50), (9, -8, 56), (10, -8, 61), (11, -9, 67), (12, -10, 74), (13, -11, 82), (15, -13, 92), (17, -14, 104), (19, -17, 119), (22, -19, 136), (25, -22, 155), (29, -25, 175), (32, -28, 196), (36, -31, 220), (41, -35, 247), (46, -39, 278), (52, -45, 316), (59, -51, 362), (68, -59, 415), (78, -67, 473), (88, -75, 533), (97, -84, 593), (107, -92, 651), (116, -101, 711), (127, -110, 779), (141, -122, 861), (157, -136, 963), (177, -154, 1089), (201, -175, 1239), (228, -199, 1410), (259, -226, 1602), (292, -256, 1813), (329, -288, 2043), (368, -323, 2296), (412, -363, 2577), (462, -407, 2892), (517, -456, 3246), (577, -510, 3639), (644, -570, 4070), (716, -635, 4544), (794, -707, 5067), (880, -785, 5644), (973, -871, 6281), (1072, -962, 6965), (1172, -1056, 7674), (1271, -1149, 8387), (1366, -1238, 9082), (1453, -1323, 9749), (1534, -1402, 10387), (1608, -1475, 10995), (1674, -1542, 11569), (1732, -1603, 12107), (1779, -1656, 12605), (1818, -1702, 13059), (1847, -1740, 13472), (1868, -1772, 13843), (1880, -1796, 14174), (1884, -1813, 14464), (1880, -1823, 14715), (1868, -1827, 14927), (1848, -1824, 15104), (1821, -1816, 15247), (1787, -1802, 15358), (1745, -1783, 15439), (1698, -1759, 15494), (1644, -1730, 15528), (1584, -1698, 15544), (1519, -1661, 15544), (1448, -1620, 15529), (1373, -1576, 15503), (1293, -1530, 15471), (1209, -1481, 15434), (1122, -1430, 15396), (1031, -1377, 15355), (936, -1321, 15306), (837, -1261, 15244), (733, -1198, 15167), (623, -1130, 15069), (509, -1058, 14953), (392, -981, 14817), (270, -901, 14662), (147, -817, 14485), (21, -731, 14290), (-105, -640, 14073), (-236, -545, 13828), (-369, -444, 13547), (-505, -337, 13222), (-645, -222, 12849), (-788, -100, 12435), (-931, 25, 11994), (-1075, 154, 11540), (-1218, 285, 11086), (-1358, 417, 10640), (-1497, 550, 10198), (-1633, 684, 9761), (-1768, 820, 9328), (-1901, 957, 8898), (-2031, 1095, 8472), (-2160, 1234, 8053), (-2286, 1374, 7643), (-2410, 1514, 7241), (-2532, 1654, 6850), (-2651, 1792, 6469), (-2768, 1931, 6100), (-2884, 2070, 5745), (-2998, 2210, 5404), (-3110, 2351, 5079), (-3221, 2495, 4771), (-3331, 2641, 4480), (-3441, 2790, 4204), (-3554, 2943, 3943), (-3670, 3101, 3694), (-3790, 3265, 3459), (-3914, 3434, 3235), (-4042, 3610, 3024), (-4174, 3791, 2823), (-4309, 3977, 2633), (-4447, 4169, 2453), (-4588, 4367, 2282), (-4735, 4573, 2119), (-4888, 4789, 1965), (-5048, 5017, 1817), (-5218, 5258, 1677), (-5395, 5511, 1542), (-5575, 5773, 1412), (-5756, 6041, 1285), (-5933, 6312, 1158), (-6104, 6586, 1031), (-6270, 6862, 905), (-6430, 7141, 779), (-6585, 7423, 655), (-6734, 7710, 533), (-6876, 8000, 413), (-7010, 8291, 295), (-7134, 8582, 180), (-7245, 8871, 69), (-7343, 9153, -35), (-7426, 9430, -136), (-7493, 9700, -231), (-7542, 9959, -320), (-7572, 10205, -403), (-7581, 10435, -480), (-7568, 10647, -550), (-7532, 10840, -614), (-7477, 11019, -673), (-7404, 11185, -728), (-7313, 11339, -779), (-7207, 11483, -829), (-7084, 11616, -875), (-6947, 11738, -919), (-6797, 11848, -960), (-6634, 11947, -1000), (-6460, 12034, -1037), (-6274, 12111, -1072), (-6077, 12176, -1106), (-5869, 12231, -1138), (-5650, 12277, -1167), (-5419, 12313, -1195), (-5178, 12339, -1220), (-4925, 12357, -1244), (-4662, 12364, -1266), (-4387, 12362, -1286), (-4101, 12350, -1304), (-3805, 12330, -1320), (-3497, 12300, -1334), (-3179, 12261, -1347), (-2850, 12214, -1358), (-2512, 12157, -1367), (-2163, 12093, -1375), (-1804, 12020, -1381), (-1436, 11939, -1386), (-1058, 11852, -1389), (-670, 11757, -1391), (-272, 11654, -1392), (134, 11545, -1392), (551, 11428, -1390), (977, 11304, -1388), (1412, 11173, -1384), (1856, 11034, -1379), (2308, 10888, -1373), (2768, 10734, -1366), (3236, 10572, -1358), (3712, 10402, -1349), (4193, 10225, -1338), (4682, 10041, -1327), (5176, 9851, -1315), (5675, 9653, -1302), (6180, 9450, -1288), (6689, 9241, -1274), (7201, 9026, -1258), (7717, 8806, -1242), (8235, 8580, -1225), (8754, 8349, -1207), (9275, 8113, -1189), (9795, 7872, -1170), (10314, 7627, -1150), (10832, 7379, -1130), (11347, 7127, -1109), (11860, 6873, -1088), (12367, 6616, -1066), (12869, 6357, -1044), (13364, 6095, -1022), (13850, 5832, -999), (14327, 5568, -976), (14794, 5304, -953), (15251, 5039, -929), (15695, 4775, -906), (16127, 4513, -882), (16544, 4252, -859), (16948, 3994, -835), (17336, 3738, -811), (17710, 3485, -788), (18068, 3236, -764), (18409, 2991, -740), (18730, 2751, -717), (19028, 2517, -694), (19299, 2289, -671), (19541, 2070, -649), (19755, 1858, -627), (19943, 1653, -605), (20108, 1455, -584), (20251, 1264, -563), (20374, 1078, -543), (20475, 899, -523), (20551, 727, -503), (20600, 563, -484), (20620, 409, -465), (20607, 263, -447), (20565, 127, -430), (20496, 0, -413), (20401, -118, -396), (20282, -230, -380), (20142, -333, -365), (19979, -429, -350), (19794, -516, -335), (19587, -597, -321), (19357, -670, -307), (19106, -735, -294), (18834, -794, -281), (18541, -845, -269), (18225, -890, -257), (17886, -928, -245), (17524, -960, -234), (17142, -986, -223), (16743, -1006, -213), (16330, -1022, -203), (15906, -1032, -193), (15474, -1038, -183), (15035, -1040, -174), (14593, -1039, -166), (14152, -1034, -157), (13718, -1027, -149), (13292, -1019, -142), (12875, -1009, -135), (12464, -997, -128), (12058, -983, -121), (11654, -967, -115), (11253, -950, -109), (10855, -931, -103), (10462, -910, -98), (10073, -889, -93), (9687, -866, -88), (9306, -843, -83), (8930, -818, -78), (8560, -793, -74), (8195, -767, -70), (7838, -740, -66), (7489, -713, -62), (7147, -686, -59), (6814, -659, -55), (6491, -632, -52), (6179, -606, -49), (5878, -580, -46), (5588, -555, -44), (5309, -530, -41), (5039, -506, -39), (4778, -482, -36), (4527, -459, -34), (4284, -436, -32), (4050, -414, -30), (3826, -392, -28), (3609, -371, -26), (3402, -351, -25), (3202, -331, -23), (3012, -312, -22), (2830, -294, -20), (2656, -277, -19), (2491, -260, -18), (2334, -244, -16), (2186, -229, -15), (2047, -215, -14), (1917, -202, -13), (1797, -189, -12), (1685, -178, -11), (1582, -167, -11), (1485, -157, -10), (1396, -148, -9), (1313, -139, -9), (1236, -131, -8), (1163, -124, -8), (1094, -117, -7), (1027, -110, -7), (962, -103, -6), (898, -96, -6), (836, -90, -5), (778, -83, -5), (723, -78, -4), (672, -72, -4), (624, -67, -4), (579, -62, -3), (537, -58, -3), (499, -54, -3), (463, -50, -3), (431, -46, -2), (401, -43, -2), (373, -40, -2), (348, -37, -2), (325, -35, -2), (304, -33, -2), (284, -30, -1), (266, -28, -1), (249, -27, -1), (233, -25, -1), (218, -23, -1), (204, -22, -1), (190, -20, -1), (178, -19, -1), (166, -18, -1), (155, -16, -1), (145, -15, 0), (136, -14, 0), (127, -13, 0), (119, -12, 0), (111, -12, 0), (103, -11, 0), (96, -10, 0), (90, -9, 0), (84, -9, 0), (78, -8, 0), (73, -7, 0), (68, -7, 0), (63, -6, 0), (59, -6, 0), (55, -6, 0), (51, -5, 0), (48, -5, 0), (45, -4, 0), (42, -4, 0), (39, -4, 0), (36, -3, 0), (34, -3, 0), (31, -3, 0), (29, -3, 0), (27, -2, 0), (25, -2, 0), (23, -2, 0), (22, -2, 0), (20, -2, 0), (18, -2, 0), (17, -1, 0), (16, -1, 0), (15, -1, 0), (14, -1, 0), (13, -1, 0), (12, -1, 0), (11, -1, 0), (10, -1, 0), (9, -1, 0), (9, 0, 0), (8, 0, 0), (7, 0, 0), (7, 0, 0), (6, 0, 0), (6, 0, 0), (5, 0, 0), (5, 0, 0), (5, 0, 0), (4, 0, 0), (4, 0, 0), (4, 0, 0), (3, 0, 0), (3, 0, 0), (3, 0, 0), (3, 0, 0), (2, 0, 0), (2, 0, 0), (2, 0, 0), (2, 0, 0), (2, 0, 0), (2, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (0, 0, 0), (0, 0, 0), ];