use crate::{
illuminant::{Illuminant, IlluminantType},
spectral::Spd,
};
static SPD_DATA: [(u32, f64); 401] = [
(380, 3.85),
(381, 3.662),
(382, 3.46613333333333),
(383, 3.27026666666667),
(384, 3.08226666666667),
(385, 2.91),
(386, 2.79952),
(387, 2.71096),
(388, 2.64264),
(389, 2.59288),
(390, 2.56),
(391, 2.51544),
(392, 2.49112),
(393, 2.49208),
(394, 2.52336),
(395, 2.59),
(396, 2.68500641975309),
(397, 2.8284612345679),
(398, 3.02841283950617),
(399, 3.29290962962963),
(400, 3.63),
(401, 4.09762469135802),
(402, 4.64146666666667),
(403, 5.2571012345679),
(404, 5.94010370372541),
(405, 272.914925422496),
(406, 98.7558207428676),
(407, 8.31625283950617),
(408, 9.21979160493827),
(409, 10.18264),
(410, 11.2050617283951),
(411, 12.280082962963),
(412, 13.4170143209877),
(413, 14.6179288888889),
(414, 15.8848997530864),
(415, 17.22),
(416, 18.637277037037),
(417, 20.1238360493827),
(418, 21.6787565432099),
(419, 23.3011180246914),
(420, 24.99),
(421, 26.76896),
(422, 28.60648),
(423, 30.49552),
(424, 32.42904),
(425, 34.4),
(426, 36.42208),
(427, 38.46234),
(428, 40.50856),
(429, 42.54852),
(430, 44.57),
(431, 46.54638),
(432, 48.48344),
(433, 50.37256),
(434, 53.0822964847297),
(435, 925.774142936413),
(436, 56.5706164847297),
(437, 57.32512),
(438, 58.85208),
(439, 60.25886),
(440, 61.53),
(441, 62.555),
(442, 63.4372),
(443, 64.1849),
(444, 64.8064),
(445, 65.31),
(446, 65.74616),
(447, 66.07048),
(448, 66.28072),
(449, 66.37464),
(450, 66.35),
(451, 66.18152),
(452, 65.89576),
(453, 65.49624),
(454, 64.98648),
(455, 64.37),
(456, 63.61416),
(457, 62.76768),
(458, 61.84312),
(459, 60.85304),
(460, 59.81),
(461, 58.78448),
(462, 57.71664),
(463, 56.60456),
(464, 55.44632),
(465, 54.24),
(466, 52.92),
(467, 51.564),
(468, 50.186),
(469, 48.8),
(470, 47.42),
(471, 45.96368),
(472, 44.56544),
(473, 43.26336),
(474, 42.09552),
(475, 41.1),
(476, 39.1456),
(477, 37.732),
(478, 37.1896),
(479, 37.8488),
(480, 40.04),
(481, 48.3288),
(482, 57.7516),
(483, 67.58),
(484, 77.0856),
(485, 85.54),
(486, 88.9684),
(487, 90.7004),
(488, 90.8192),
(489, 89.408),
(490, 86.55),
(491, 81.23368),
(492, 74.91064),
(493, 67.93776),
(494, 60.67192),
(495, 53.47),
(496, 48.16312),
(497, 43.26536),
(498, 38.76504),
(499, 34.65048),
(500, 30.91),
(501, 27.49832),
(502, 24.44576),
(503, 21.74904),
(504, 19.40488),
(505, 17.41),
(506, 15.94832),
(507, 14.78256),
(508, 13.86264),
(509, 13.13848),
(510, 12.56),
(511, 11.9264),
(512, 11.376),
(513, 10.8964),
(514, 10.4752),
(515, 10.1),
(516, 9.70752),
(517, 9.34896),
(518, 9.02464),
(519, 8.73488),
(520, 8.48),
(521, 8.2392),
(522, 8.0392),
(523, 7.8856),
(524, 7.784),
(525, 7.74),
(526, 7.60730116912437),
(527, 7.58137704596765),
(528, 7.70580233824874),
(529, 8.02415175368694),
(530, 8.58000000006939),
(531, 9.80307797344187),
(532, 11.2542657722299),
(533, 12.8806295416881),
(534, 14.6301787742174),
(535, 16.4699400032122),
(536, 18.4689511718904),
(537, 22.8838485785412),
(538, 40.2109755455765),
(539, 98.8225890055149),
(540, 227.051198657523),
(541, 383.953613151294),
(542, 446.372423538994),
(543, 353.445820907901),
(544, 204.116164476777),
(545, 1330.08790172697),
(546, 52.946113646215),
(547, 37.7473535215236),
(548, 63.9751761645752),
(549, 184.346155625822),
(550, 297.285369756942),
(551, 193.058805633707),
(552, 66.1852104692853),
(553, 34.1340448264301),
(554, 29.8630942792706),
(555, 27.499477811487),
(556, 25.1799233316886),
(557, 22.847756598346),
(558, 20.576301618505),
(559, 18.4391765234926),
(560, 16.51),
(561, 15.3117192897877),
(562, 14.3562923863836),
(563, 13.6050058380857),
(564, 13.0191461931925),
(565, 12.5600000000158),
(566, 11.9353788274572),
(567, 11.4234129523006),
(568, 11.0487577198042),
(569, 10.8360690086749),
(570, 10.8100076935272),
(571, 11.028868893705),
(572, 11.475620783513),
(573, 12.1682752357472),
(574, 13.1315168781209),
(575, 14.4153247789147),
(576, 16.7712250187638),
(577, 98.6570535380968),
(578, 23.3784709550837),
(579, 44.9356464714022),
(580, 40.7861871857413),
(581, 52.8800512798471),
(582, 68.861273628066),
(583, 83.2560592580302),
(584, 91.6887471006082),
(585, 91.6714651666669),
(586, 83.7183376566999),
(587, 72.192345140108),
(588, 61.2629800535515),
(589, 53.3525003093635),
(590, 48.7545652081084),
(591, 46.7510103777525),
(592, 45.934542937427),
(593, 45.4653491506339),
(594, 44.8957877207066),
(595, 44.0258614497531),
(596, 42.4940776839014),
(597, 40.5964473683164),
(598, 38.3660015755167),
(599, 35.8384450541539),
(600, 33.0500002401144),
(601, 29.1511011458184),
(602, 25.2854052233944),
(603, 21.7106991716593),
(604, 18.6847698184502),
(605, 16.4654051218568),
(606, 18.3554978864262),
(607, 20.6073130971847),
(608, 28.6467913424657),
(609, 107.640891948254),
(610, 387.564754303854),
(611, 535.029576630877),
(612, 264.573477952935),
(613, 118.624277594888),
(614, 162.538457130151),
(615, 75.7976843815527),
(616, 44.6574493400601),
(617, 46.1354887413903),
(618, 48.2368652732196),
(619, 50.0922992182463),
(620, 51.66),
(621, 54.7568896296296),
(622, 57.5655778395062),
(623, 59.7868212345679),
(624, 61.1213764197531),
(625, 61.27),
(626, 57.333335),
(627, 52.26228),
(628, 46.40762),
(629, 43.6805540061904),
(630, 135.01032098659),
(631, 32.2941096040212),
(632, 24.06066),
(633, 19.82004),
(634, 16.089655),
(635, 12.95),
(636, 11.18501),
(637, 9.99588),
(638, 9.287245),
(639, 8.96374),
(640, 8.93),
(641, 8.6564),
(642, 8.5904),
(643, 8.7452),
(644, 9.134),
(645, 9.77),
(646, 11.29424),
(647, 12.93512),
(648, 14.54888),
(649, 15.99176),
(650, 17.12),
(651, 16.79848),
(652, 16.12264),
(653, 15.19656),
(654, 14.12432),
(655, 13.01),
(656, 12.34552),
(657, 11.75016),
(658, 11.23104),
(659, 10.79528),
(660, 10.45),
(661, 10.3892),
(662, 10.3864),
(663, 10.402),
(664, 10.3964),
(665, 10.33),
(666, 9.88384),
(667, 9.36752),
(668, 8.81128),
(669, 8.24536),
(670, 7.7),
(671, 7.2912),
(672, 6.942),
(673, 6.6612),
(674, 6.4576),
(675, 6.34),
(676, 6.43272),
(677, 6.60016),
(678, 6.82224),
(679, 7.07888),
(680, 7.35),
(681, 7.56784),
(682, 7.77192),
(683, 7.95408),
(684, 8.10616),
(685, 8.22),
(686, 8.27976),
(687, 8.28688),
(688, 8.23512),
(689, 8.11824),
(690, 7.93),
(691, 7.6168),
(692, 7.2316),
(693, 6.78),
(694, 6.2676),
(695, 5.7),
(696, 4.62808),
(697, 3.62584),
(698, 2.81256),
(699, 2.30752),
(700, 2.23),
(701, 3.56232),
(702, 5.34496),
(703, 7.48144),
(704, 9.87528),
(705, 12.43),
(706, 15.58864),
(707, 18.58032),
(708, 21.17368),
(709, 23.13736),
(710, 24.24),
(711, 22.19008),
(712, 19.33144),
(713, 15.94776),
(714, 12.32272),
(715, 8.74),
(716, 6.64872),
(717, 4.87576),
(718, 3.41344),
(719, 2.25408),
(720, 1.39),
(721, 1.01192),
(722, 0.86416),
(723, 0.88944),
(724, 1.03048),
(725, 1.23),
(726, 1.20672),
(727, 1.18336),
(728, 1.15864),
(729, 1.13128),
(730, 1.1),
(731, 1.04272),
(732, 0.98416),
(733, 0.92824),
(734, 0.87888),
(735, 0.84),
(736, 0.83664),
(737, 0.84632),
(738, 0.86768),
(739, 0.89936),
(740, 0.94),
(741, 1.01576),
(742, 1.09088),
(743, 1.15712),
(744, 1.20624),
(745, 1.23),
(746, 1.14784),
(747, 1.04192),
(748, 0.92208),
(749, 0.79816),
(750, 0.68),
(751, 0.4936),
(752, 0.3536),
(753, 0.2908),
(754, 0.336),
(755, 0.52),
(756, 1.39584),
(757, 2.34152),
(758, 3.25728),
(759, 4.04336),
(760, 4.6),
(761, 4.01336),
(762, 3.20128),
(763, 2.26752),
(764, 1.31584),
(765, 0.45),
(766, 0.37824),
(767, 0.44872),
(768, 0.61408),
(769, 0.82696),
(770, 1.04),
(771, 0.97416),
(772, 0.87168),
(773, 0.74312),
(774, 0.59904),
(775, 0.45),
(776, 0.33888),
(777, 0.23584),
(778, 0.14336),
(779, 0.06392),
(780, 0.0),
];
impl Illuminant {
pub const FL3_11: Self = Self::new("FL3.11", IlluminantType::Fluorescent, Spd::new(&SPD_DATA));
}