use crate::{
illuminant::{Illuminant, IlluminantType},
spectral::Spd,
};
static SPD_DATA: [(u32, f64); 531] = [
(300, 0.01922),
(301, 0.222348),
(302, 0.425476),
(303, 0.628604),
(304, 0.831732),
(305, 1.03486),
(306, 1.23799),
(307, 1.44112),
(308, 1.64424),
(309, 1.84737),
(310, 2.0505),
(311, 2.62329),
(312, 3.19608),
(313, 3.76887),
(314, 4.34166),
(315, 4.91445),
(316, 5.48724),
(317, 6.06003),
(318, 6.63282),
(319, 7.20561),
(320, 7.7784),
(321, 8.47531),
(322, 9.17222),
(323, 9.86913),
(324, 10.566),
(325, 11.263),
(326, 11.9599),
(327, 12.6568),
(328, 13.3537),
(329, 14.0506),
(330, 14.7475),
(331, 15.0676),
(332, 15.3876),
(333, 15.7076),
(334, 16.0277),
(335, 16.3478),
(336, 16.6678),
(337, 16.9878),
(338, 17.3079),
(339, 17.628),
(340, 17.948),
(341, 18.2542),
(342, 18.5603),
(343, 18.8665),
(344, 19.1727),
(345, 19.4788),
(346, 19.785),
(347, 20.0912),
(348, 20.3974),
(349, 20.7035),
(350, 21.0097),
(351, 21.3029),
(352, 21.5961),
(353, 21.8894),
(354, 22.1826),
(355, 22.4758),
(356, 22.769),
(357, 23.0622),
(358, 23.3555),
(359, 23.6487),
(360, 23.9419),
(361, 24.2438),
(362, 24.5457),
(363, 24.8475),
(364, 25.1494),
(365, 25.4513),
(366, 25.7532),
(367, 26.0551),
(368, 26.3569),
(369, 26.6588),
(370, 26.9607),
(371, 26.7134),
(372, 26.4661),
(373, 26.2187),
(374, 25.9714),
(375, 25.7241),
(376, 25.4768),
(377, 25.2295),
(378, 24.9821),
(379, 24.7348),
(380, 24.4875),
(381, 25.0258),
(382, 25.5641),
(383, 26.1024),
(384, 26.6407),
(385, 27.179),
(386, 27.7174),
(387, 28.2557),
(388, 28.794),
(389, 29.3323),
(390, 29.8706),
(391, 31.8144),
(392, 33.7581),
(393, 35.7018),
(394, 37.6456),
(395, 39.5894),
(396, 41.5331),
(397, 43.4768),
(398, 45.4206),
(399, 47.3644),
(400, 49.3081),
(401, 50.0286),
(402, 50.749),
(403, 51.4695),
(404, 52.19),
(405, 52.9104),
(406, 53.6309),
(407, 54.3514),
(408, 55.0719),
(409, 55.7923),
(410, 56.5128),
(411, 56.8649),
(412, 57.217),
(413, 57.5691),
(414, 57.9212),
(415, 58.2733),
(416, 58.6254),
(417, 58.9775),
(418, 59.3296),
(419, 59.6817),
(420, 60.0338),
(421, 59.8122),
(422, 59.5905),
(423, 59.3689),
(424, 59.1473),
(425, 58.9256),
(426, 58.704),
(427, 58.4824),
(428, 58.2608),
(429, 58.0391),
(430, 57.8175),
(431, 59.5182),
(432, 61.219),
(433, 62.9197),
(434, 64.6205),
(435, 66.3212),
(436, 68.0219),
(437, 69.7227),
(438, 71.4234),
(439, 73.1242),
(440, 74.8249),
(441, 76.0671),
(442, 77.3094),
(443, 78.5516),
(444, 79.7938),
(445, 81.036),
(446, 82.2783),
(447, 83.5205),
(448, 84.7627),
(449, 86.005),
(450, 87.2472),
(451, 87.5837),
(452, 87.9202),
(453, 88.2567),
(454, 88.5932),
(455, 88.9297),
(456, 89.2662),
(457, 89.6027),
(458, 89.9392),
(459, 90.2757),
(460, 90.6122),
(461, 90.6878),
(462, 90.7634),
(463, 90.839),
(464, 90.9146),
(465, 90.9902),
(466, 91.0657),
(467, 91.1413),
(468, 91.2169),
(469, 91.2925),
(470, 91.3681),
(471, 91.7421),
(472, 92.1162),
(473, 92.4902),
(474, 92.8643),
(475, 93.2383),
(476, 93.6123),
(477, 93.9864),
(478, 94.3604),
(479, 94.7345),
(480, 95.1085),
(481, 94.7939),
(482, 94.4793),
(483, 94.1648),
(484, 93.8502),
(485, 93.5356),
(486, 93.221),
(487, 92.9064),
(488, 92.5919),
(489, 92.2773),
(490, 91.9627),
(491, 92.3388),
(492, 92.7149),
(493, 93.091),
(494, 93.4671),
(495, 93.8432),
(496, 94.2193),
(497, 94.5954),
(498, 94.9715),
(499, 95.3476),
(500, 95.7237),
(501, 95.8127),
(502, 95.9016),
(503, 95.9906),
(504, 96.0795),
(505, 96.1685),
(506, 96.2575),
(507, 96.3464),
(508, 96.4354),
(509, 96.5243),
(510, 96.6133),
(511, 96.6649),
(512, 96.7164),
(513, 96.768),
(514, 96.8196),
(515, 96.8712),
(516, 96.9227),
(517, 96.9743),
(518, 97.0259),
(519, 97.0774),
(520, 97.129),
(521, 97.626),
(522, 98.123),
(523, 98.62),
(524, 99.117),
(525, 99.614),
(526, 100.111),
(527, 100.608),
(528, 101.105),
(529, 101.602),
(530, 102.099),
(531, 101.965),
(532, 101.83),
(533, 101.696),
(534, 101.561),
(535, 101.427),
(536, 101.292),
(537, 101.158),
(538, 101.024),
(539, 100.889),
(540, 100.755),
(541, 100.911),
(542, 101.067),
(543, 101.223),
(544, 101.38),
(545, 101.536),
(546, 101.692),
(547, 101.848),
(548, 102.005),
(549, 102.161),
(550, 102.317),
(551, 102.085),
(552, 101.854),
(553, 101.622),
(554, 101.39),
(555, 101.158),
(556, 100.927),
(557, 100.695),
(558, 100.463),
(559, 100.232),
(560, 100.0),
(561, 99.7735),
(562, 99.547),
(563, 99.3205),
(564, 99.094),
(565, 98.8675),
(566, 98.641),
(567, 98.4145),
(568, 98.188),
(569, 97.9615),
(570, 97.735),
(571, 97.8533),
(572, 97.9716),
(573, 98.0899),
(574, 98.2082),
(575, 98.3265),
(576, 98.4448),
(577, 98.5631),
(578, 98.6814),
(579, 98.7997),
(580, 98.918),
(581, 98.3761),
(582, 97.8342),
(583, 97.2922),
(584, 96.7503),
(585, 96.2084),
(586, 95.6665),
(587, 95.1246),
(588, 94.5826),
(589, 94.0407),
(590, 93.4988),
(591, 93.9177),
(592, 94.3366),
(593, 94.7555),
(594, 95.1744),
(595, 95.5933),
(596, 96.0122),
(597, 96.4311),
(598, 96.85),
(599, 97.2689),
(600, 97.6878),
(601, 97.8459),
(602, 98.0041),
(603, 98.1622),
(604, 98.3203),
(605, 98.4784),
(606, 98.6366),
(607, 98.7947),
(608, 98.9528),
(609, 99.111),
(610, 99.2691),
(611, 99.2463),
(612, 99.2236),
(613, 99.2008),
(614, 99.1781),
(615, 99.1553),
(616, 99.1325),
(617, 99.1098),
(618, 99.087),
(619, 99.0643),
(620, 99.0415),
(621, 98.7095),
(622, 98.3776),
(623, 98.0456),
(624, 97.7136),
(625, 97.3816),
(626, 97.0497),
(627, 96.7177),
(628, 96.3857),
(629, 96.0538),
(630, 95.7218),
(631, 96.0353),
(632, 96.3489),
(633, 96.6624),
(634, 96.976),
(635, 97.2895),
(636, 97.603),
(637, 97.9166),
(638, 98.2301),
(639, 98.5437),
(640, 98.8572),
(641, 98.5382),
(642, 98.2192),
(643, 97.9002),
(644, 97.5812),
(645, 97.2622),
(646, 96.9432),
(647, 96.6242),
(648, 96.3052),
(649, 95.9862),
(650, 95.6672),
(651, 95.9195),
(652, 96.1717),
(653, 96.424),
(654, 96.6762),
(655, 96.9285),
(656, 97.1808),
(657, 97.433),
(658, 97.6853),
(659, 97.9375),
(660, 98.1898),
(661, 98.6712),
(662, 99.1525),
(663, 99.6339),
(664, 100.115),
(665, 100.597),
(666, 101.078),
(667, 101.559),
(668, 102.041),
(669, 102.522),
(670, 103.003),
(671, 102.616),
(672, 102.229),
(673, 101.842),
(674, 101.455),
(675, 101.068),
(676, 100.681),
(677, 100.294),
(678, 99.9071),
(679, 99.52),
(680, 99.133),
(681, 97.9578),
(682, 96.7826),
(683, 95.6074),
(684, 94.4322),
(685, 93.257),
(686, 92.0817),
(687, 90.9065),
(688, 89.7313),
(689, 88.5561),
(690, 87.3809),
(691, 87.8032),
(692, 88.2254),
(693, 88.6477),
(694, 89.0699),
(695, 89.4922),
(696, 89.9145),
(697, 90.3367),
(698, 90.759),
(699, 91.1812),
(700, 91.6035),
(701, 91.732),
(702, 91.8605),
(703, 91.989),
(704, 92.1175),
(705, 92.246),
(706, 92.3746),
(707, 92.5031),
(708, 92.6316),
(709, 92.7601),
(710, 92.8886),
(711, 91.2852),
(712, 89.6818),
(713, 88.0783),
(714, 86.4749),
(715, 84.8715),
(716, 83.2681),
(717, 81.6647),
(718, 80.0612),
(719, 78.4578),
(720, 76.8544),
(721, 77.8201),
(722, 78.7858),
(723, 79.7514),
(724, 80.7171),
(725, 81.6828),
(726, 82.6485),
(727, 83.6142),
(728, 84.5798),
(729, 85.5455),
(730, 86.5112),
(731, 87.1181),
(732, 87.7249),
(733, 88.3318),
(734, 88.9386),
(735, 89.5455),
(736, 90.1524),
(737, 90.7592),
(738, 91.3661),
(739, 91.9729),
(740, 92.5798),
(741, 91.1448),
(742, 89.7098),
(743, 88.2748),
(744, 86.8398),
(745, 85.4048),
(746, 83.9699),
(747, 82.5349),
(748, 81.0999),
(749, 79.6649),
(750, 78.2299),
(751, 76.1761),
(752, 74.1223),
(753, 72.0685),
(754, 70.0147),
(755, 67.9608),
(756, 65.907),
(757, 63.8532),
(758, 61.7994),
(759, 59.7456),
(760, 57.6918),
(761, 60.2149),
(762, 62.738),
(763, 65.2612),
(764, 67.7843),
(765, 70.3074),
(766, 72.8305),
(767, 75.3536),
(768, 77.8768),
(769, 80.3999),
(770, 82.923),
(771, 82.4581),
(772, 81.9932),
(773, 81.5283),
(774, 81.0634),
(775, 80.5985),
(776, 80.1336),
(777, 79.6687),
(778, 79.2038),
(779, 78.7389),
(780, 78.274),
(781, 78.402),
(782, 78.5301),
(783, 78.6581),
(784, 78.7862),
(785, 78.9142),
(786, 79.0422),
(787, 79.1703),
(788, 79.2983),
(789, 79.4264),
(790, 79.5544),
(791, 78.9391),
(792, 78.3238),
(793, 77.7085),
(794, 77.0932),
(795, 76.478),
(796, 75.8627),
(797, 75.2474),
(798, 74.6321),
(799, 74.0168),
(800, 73.4015),
(801, 72.4534),
(802, 71.5052),
(803, 70.5571),
(804, 69.609),
(805, 68.6608),
(806, 67.7127),
(807, 66.7646),
(808, 65.8165),
(809, 64.8683),
(810, 63.9202),
(811, 64.6059),
(812, 65.2916),
(813, 65.9772),
(814, 66.6629),
(815, 67.3486),
(816, 68.0343),
(817, 68.72),
(818, 69.4056),
(819, 70.0913),
(820, 70.777),
(821, 71.1435),
(822, 71.5099),
(823, 71.8764),
(824, 72.2429),
(825, 72.6094),
(826, 72.9758),
(827, 73.3423),
(828, 73.7088),
(829, 74.0752),
(830, 74.4417),
];
impl Illuminant {
pub const D50: Self = Self::new("D50", IlluminantType::Daylight, Spd::new(&SPD_DATA));
}