use crate::{
illuminant::{Illuminant, IlluminantType},
spectral::Spd,
};
static SPD_DATA: [(u32, f64); 401] = [
(380, 2.87),
(381, 3.034),
(382, 3.1932),
(383, 3.3524),
(384, 3.5164),
(385, 3.69),
(386, 3.91608),
(387, 4.15184),
(388, 4.39256),
(389, 4.63352),
(390, 4.87),
(391, 5.05824),
(392, 5.24232),
(393, 5.42728),
(394, 5.61816),
(395, 5.82),
(396, 6.07398024691358),
(397, 6.33996543209877),
(398, 6.61396049382716),
(399, 6.89197037037037),
(400, 7.17),
(401, 7.42289086419753),
(402, 7.67310222222222),
(403, 7.92192987654321),
(404, 8.17066962962963),
(405, 254.538156273162),
(406, 99.7829043314767),
(407, 8.93780938271605),
(408, 9.20036839506173),
(409, 9.46568),
(410, 9.73382716049382),
(411, 10.009997037037),
(412, 10.287892345679),
(413, 10.56632),
(414, 10.8440869135802),
(415, 11.12),
(416, 11.3805362962963),
(417, 11.6399150617284),
(418, 11.9000256790123),
(419, 12.1627575308642),
(420, 12.43),
(421, 12.70192),
(422, 12.98256),
(423, 13.27424),
(424, 13.57928),
(425, 13.9),
(426, 14.24492),
(427, 14.60861),
(428, 14.99184),
(429, 15.39538),
(430, 15.82),
(431, 16.25607),
(432, 16.71736),
(433, 17.20724),
(434, 19.2963730813986),
(435, 929.42208329738),
(436, 20.4562130813986),
(437, 19.53196),
(438, 20.21704),
(439, 20.94583),
(440, 21.72),
(441, 22.52442),
(442, 23.38176),
(443, 24.29789),
(444, 25.27868),
(445, 26.33),
(446, 27.49656),
(447, 28.73568),
(448, 30.04352),
(449, 31.41624),
(450, 32.85),
(451, 34.356),
(452, 35.9116),
(453, 37.5092),
(454, 39.1412),
(455, 40.8),
(456, 42.4716),
(457, 44.1564),
(458, 45.8484),
(459, 47.5416),
(460, 49.23),
(461, 50.88424),
(462, 52.52752),
(463, 54.15968),
(464, 55.78056),
(465, 57.39),
(466, 59.0144),
(467, 60.6204),
(468, 62.2012),
(469, 63.75),
(470, 65.26),
(471, 66.67576),
(472, 68.05128),
(473, 69.39192),
(474, 70.70304),
(475, 71.99),
(476, 73.12568),
(477, 74.28104),
(478, 75.49456),
(479, 76.80472),
(480, 78.25),
(481, 80.41064),
(482, 82.64792),
(483, 84.86488),
(484, 86.96456),
(485, 88.85),
(486, 90.0332),
(487, 90.906),
(488, 91.4692),
(489, 91.7236),
(490, 91.67),
(491, 91.1156),
(492, 90.3032),
(493, 89.282),
(494, 88.1012),
(495, 86.81),
(496, 85.61216),
(497, 84.36368),
(498, 83.07512),
(499, 81.75704),
(500, 80.42),
(501, 79.04928),
(502, 77.68704),
(503, 76.35016),
(504, 75.05552),
(505, 73.82),
(506, 72.81216),
(507, 71.85928),
(508, 70.94032),
(509, 70.03424),
(510, 69.12),
(511, 68.06328),
(512, 66.98464),
(513, 65.89136),
(514, 64.79072),
(515, 63.69),
(516, 62.6192),
(517, 61.5572),
(518, 60.5056),
(519, 59.466),
(520, 58.44),
(521, 57.41704),
(522, 56.41392),
(523, 55.43528),
(524, 54.48576),
(525, 53.57),
(526, 52.6971123024463),
(527, 51.8661465292813),
(528, 51.0806246049183),
(529, 50.3440684549967),
(530, 49.660000050832),
(531, 49.069296725543),
(532, 48.5288141357858),
(533, 48.0331286003985),
(534, 47.580691054038),
(535, 47.199180414635),
(536, 47.0476516328244),
(537, 47.8741652229087),
(538, 51.5230506941472),
(539, 60.6011198190115),
(540, 75.4579951379971),
(541, 90.3599547596174),
(542, 95.7031272912685),
(543, 87.3028606996244),
(544, 74.94791094665),
(545, 719.349448394054),
(546, 54.5286056626197),
(547, 52.6020832645566),
(548, 61.0773909277897),
(549, 71.5103996304594),
(550, 76.3070990882721),
(551, 71.3681966829487),
(552, 60.6332496792523),
(553, 51.1219206647957),
(554, 45.9712513833705),
(555, 44.1346451318736),
(556, 43.7478806324799),
(557, 43.7700913744331),
(558, 43.879356570742),
(559, 44.0070953644051),
(560, 44.1400028794544),
(561, 44.2309571920177),
(562, 44.3275428225035),
(563, 44.4356501040824),
(564, 44.5611722374852),
(565, 44.710004055976),
(566, 44.8884420280474),
(567, 45.1019160979741),
(568, 45.3563290914819),
(569, 45.657820266443),
(570, 46.0131817092859),
(571, 46.5234518954811),
(572, 47.0848847093502),
(573, 47.6934909366829),
(574, 48.3575579497568),
(575, 49.1032590239201),
(576, 50.5868828458532),
(577, 152.990285585889),
(578, 52.8426953810688),
(579, 94.8483084202276),
(580, 60.2977728889517),
(581, 57.9781819399257),
(582, 60.2063101815854),
(583, 62.1435384496161),
(584, 63.5839942950811),
(585, 64.4550427040789),
(586, 64.832266020719),
(587, 64.8811104057371),
(588, 64.7609908323506),
(589, 64.5564926602385),
(590, 64.2796475088059),
(591, 63.9298208126755),
(592, 63.553071453732),
(593, 63.2507196279111),
(594, 63.1361919841758),
(595, 63.2809214601396),
(596, 63.711368553927),
(597, 64.3520636706087),
(598, 65.1283135903132),
(599, 65.9720288432845),
(600, 66.8338708575077),
(601, 67.5862493264751),
(602, 68.3309002775883),
(603, 69.0797031909665),
(604, 69.8474476380365),
(605, 70.6500106311255),
(606, 71.6231277251651),
(607, 72.633884290406),
(608, 73.8015404538437),
(609, 79.2971707348075),
(610, 87.3631138704482),
(611, 79.6016722289367),
(612, 77.7894129377947),
(613, 78.6911037174412),
(614, 79.594320000343),
(615, 80.4448148148148),
(616, 81.2806311111111),
(617, 82.0338637037037),
(618, 82.6837066666667),
(619, 83.2093540740741),
(620, 83.59),
(621, 83.7166488888889),
(622, 83.6787318518519),
(623, 83.4774903703704),
(624, 83.1141659259259),
(625, 82.59),
(626, 81.788),
(627, 80.8572),
(628, 79.8284),
(629, 78.7324),
(630, 77.6),
(631, 76.54872),
(632, 75.50096),
(633, 74.46584),
(634, 73.45248),
(635, 72.47),
(636, 71.60848),
(637, 70.77584),
(638, 69.96096),
(639, 69.15272),
(640, 68.34),
(641, 67.47808),
(642, 66.59784),
(643, 65.69656),
(644, 64.77152),
(645, 63.82),
(646, 62.80952),
(647, 61.77456),
(648, 60.71984),
(649, 59.65008),
(650, 58.57),
(651, 57.49296),
(652, 56.41288),
(653, 55.33232),
(654, 54.25384),
(655, 53.18),
(656, 52.1172),
(657, 51.0632),
(658, 50.0196),
(659, 48.988),
(660, 47.97),
(661, 46.9896),
(662, 46.0204),
(663, 45.0584),
(664, 44.0996),
(665, 43.14),
(666, 42.13624),
(667, 41.13352),
(668, 40.13768),
(669, 39.15456),
(670, 38.19),
(671, 37.27896),
(672, 36.39088),
(673, 35.52432),
(674, 34.67784),
(675, 33.85),
(676, 33.04064),
(677, 32.24672),
(678, 31.46648),
(679, 30.69816),
(680, 29.94),
(681, 29.1464),
(682, 28.3704),
(683, 27.6212),
(684, 26.908),
(685, 26.24),
(686, 25.74608),
(687, 25.28584),
(688, 24.83856),
(689, 24.38352),
(690, 23.9),
(691, 23.22392),
(692, 22.51376),
(693, 21.78464),
(694, 21.05168),
(695, 20.33),
(696, 19.68016),
(697, 19.06048),
(698, 18.47472),
(699, 17.92664),
(700, 17.42),
(701, 16.9944),
(702, 16.6088),
(703, 16.258),
(704, 15.9368),
(705, 15.64),
(706, 15.38352),
(707, 15.13576),
(708, 14.88624),
(709, 14.62448),
(710, 14.34),
(711, 13.9356),
(712, 13.5092),
(713, 13.072),
(714, 12.6352),
(715, 12.21),
(716, 11.85976),
(717, 11.53048),
(718, 11.22032),
(719, 10.92744),
(720, 10.65),
(721, 10.38552),
(722, 10.13296),
(723, 9.89064),
(724, 9.65688),
(725, 9.43),
(726, 9.19712),
(727, 8.97056),
(728, 8.75144),
(729, 8.54088),
(730, 8.34),
(731, 8.16208),
(732, 7.99304),
(733, 7.83096),
(734, 7.67392),
(735, 7.52),
(736, 7.35608),
(737, 7.19424),
(738, 7.03536),
(739, 6.88032),
(740, 6.73),
(741, 6.5904),
(742, 6.456),
(743, 6.3264),
(744, 6.2012),
(745, 6.08),
(746, 5.9624),
(747, 5.848),
(748, 5.7364),
(749, 5.6272),
(750, 5.52),
(751, 5.2544),
(752, 5.03),
(753, 4.8864),
(754, 4.8632),
(755, 5.0),
(756, 5.97),
(757, 7.0208),
(758, 8.0336),
(759, 8.8896),
(760, 9.47),
(761, 8.6816),
(762, 7.6236),
(763, 6.4208),
(764, 5.198),
(765, 4.08),
(766, 3.91896),
(767, 3.93048),
(768, 4.05752),
(769, 4.24304),
(770, 4.43),
(771, 4.26248),
(772, 4.05704),
(773, 3.83136),
(774, 3.60312),
(775, 3.39),
(776, 3.32413333333333),
(777, 3.28013333333333),
(778, 3.24706666666667),
(779, 3.214),
(780, 3.17),
];
impl Illuminant {
pub const FL3_14: Self = Self::new("FL3.14", IlluminantType::Fluorescent, Spd::new(&SPD_DATA));
}