use crate::{
illuminant::{Illuminant, IlluminantType},
spectral::Spd,
};
static SPD_DATA: [(u32, f64); 401] = [
(380, 3.77),
(381, 3.544),
(382, 3.31066666666667),
(383, 3.07733333333333),
(384, 2.85133333333333),
(385, 2.64),
(386, 2.48512),
(387, 2.35096),
(388, 2.23624),
(389, 2.13968),
(390, 2.06),
(391, 1.97544),
(392, 1.91032),
(393, 1.86848),
(394, 1.85376),
(395, 1.87),
(396, 1.90746567901235),
(397, 1.9869649382716),
(398, 2.11573135802469),
(399, 2.30099851851852),
(400, 2.55),
(401, 2.91654320987654),
(402, 3.34964444444444),
(403, 3.84489382716049),
(404, 4.39788148166093),
(405, 270.879310710992),
(406, 89.9689084446528),
(407, 6.32894913580247),
(408, 7.06447308641975),
(409, 7.84864),
(410, 8.68135802469136),
(411, 9.56441185185185),
(412, 10.4953639506173),
(413, 11.4736533333333),
(414, 12.4987190123457),
(415, 13.57),
(416, 14.6668148148148),
(417, 15.8137530864198),
(418, 17.0152839506173),
(419, 18.2758765432099),
(420, 19.6),
(421, 21.05384),
(422, 22.56472),
(423, 24.12168),
(424, 25.71376),
(425, 27.33),
(426, 28.94138),
(427, 30.559515),
(428, 32.17796),
(429, 33.79027),
(430, 35.39),
(431, 36.978945),
(432, 38.54036),
(433, 40.06574),
(434, 43.7558265656059),
(435, 888.426510650479),
(436, 47.0492624515833),
(437, 45.6723),
(438, 46.895),
(439, 48.015425),
(440, 49.02),
(441, 49.80579),
(442, 50.47092),
(443, 51.024155),
(444, 51.47426),
(445, 51.83),
(446, 52.1448),
(447, 52.3716),
(448, 52.508),
(449, 52.5516),
(450, 52.5),
(451, 52.32808),
(452, 52.06184),
(453, 51.70456),
(454, 51.25952),
(455, 50.73),
(456, 50.09016),
(457, 49.37968),
(458, 48.60912),
(459, 47.78904),
(460, 46.93),
(461, 46.08608),
(462, 45.21344),
(463, 44.31176),
(464, 43.38072),
(465, 42.42),
(466, 41.40592),
(467, 40.36736),
(468, 39.30984),
(469, 38.23888),
(470, 37.16),
(471, 35.92544),
(472, 34.73232),
(473, 33.62448),
(474, 32.64576),
(475, 31.84),
(476, 30.13744),
(477, 28.97392),
(478, 28.67168),
(479, 29.55296),
(480, 31.94),
(481, 40.31728),
(482, 49.80424),
(483, 59.68256),
(484, 69.23392),
(485, 77.74),
(486, 81.26168),
(487, 83.10664),
(488, 83.36176),
(489, 82.11392),
(490, 79.45),
(491, 74.42648),
(492, 68.41824),
(493, 61.76976),
(494, 54.82552),
(495, 47.93),
(496, 42.84496),
(497, 38.14328),
(498, 33.81512),
(499, 29.85064),
(500, 26.24),
(501, 22.92952),
(502, 19.96416),
(503, 17.34504),
(504, 15.07328),
(505, 13.15),
(506, 11.78848),
(507, 10.72464),
(508, 9.90656),
(509, 9.28232),
(510, 8.8),
(511, 8.24704),
(512, 7.77232),
(513, 7.36408),
(514, 7.01056),
(515, 6.7),
(516, 6.37072),
(517, 6.07336),
(518, 5.80864),
(519, 5.57728),
(520, 5.38),
(521, 5.19768),
(522, 5.05584000000001),
(523, 4.96016000000045),
(524, 4.91632000001199),
(525, 4.93000000027138),
(526, 4.96676742022733),
(527, 5.08244306120309),
(528, 5.29273600465466),
(529, 5.61336491324478),
(530, 6.06013745257519),
(531, 6.79438530374819),
(532, 7.65604328002253),
(533, 8.65389356151533),
(534, 9.90268195526562),
(535, 11.897259791957),
(536, 16.2389236979904),
(537, 26.8808795727137),
(538, 51.5324159744902),
(539, 100.929261137662),
(540, 183.210752555949),
(541, 293.552446308021),
(542, 406.907122972753),
(543, 483.935934228426),
(544, 494.005463725513),
(545, 641.524221166252),
(546, 333.15001237614),
(547, 238.577525447105),
(548, 181.091504668009),
(549, 157.475911059649),
(550, 143.258876471964),
(551, 118.269527401026),
(552, 83.2771103455759),
(553, 51.6100697630041),
(554, 31.8362759522181),
(555, 22.7758059585543),
(556, 19.2424547843143),
(557, 17.7214904634008),
(558, 16.683277199096),
(559, 15.7157892477368),
(560, 14.7601326176819),
(561, 13.9085266348087),
(562, 13.0949590644222),
(563, 12.3301389040552),
(564, 11.6248793678132),
(565, 10.9900000000052),
(566, 10.0992717484371),
(567, 9.38482555976483),
(568, 8.9417434968741),
(569, 8.86510762265557),
(570, 9.25),
(571, 10.9610421110382),
(572, 13.1313917446108),
(573, 15.6637461087986),
(574, 18.4608024116821),
(575, 21.4252578613422),
(576, 24.1856987865657),
(577, 26.9874609945828),
(578, 29.802832639532),
(579, 87.5039071861144),
(580, 41.4616513910304),
(581, 38.4210813331624),
(582, 47.5598218616942),
(583, 84.5949999133603),
(584, 131.15545561641),
(585, 109.716583265263),
(586, 65.2005024455009),
(587, 52.5147199658825),
(588, 52.586874111927),
(589, 53.5393260214072),
(590, 54.072647513689),
(591, 53.5935523837889),
(592, 52.6626887552072),
(593, 51.3439776209868),
(594, 49.701665772044),
(595, 47.8),
(596, 46.0747618688724),
(597, 44.1257797047866),
(598, 41.9244166062646),
(599, 39.4420356718284),
(600, 36.65),
(601, 32.2201938875925),
(602, 27.7483289352639),
(603, 23.5306379419637),
(604, 19.8633537073161),
(605, 17.0427105770018),
(606, 18.8343777940501),
(607, 21.0629484387657),
(608, 30.5995215673407),
(609, 128.648149353958),
(610, 475.170030474654),
(611, 657.667610308397),
(612, 321.58513828728),
(613, 140.470257667888),
(614, 221.107870804003),
(615, 82.4151157318992),
(616, 45.3303253485912),
(617, 47.4007391190804),
(618, 49.6541022612758),
(619, 51.6586207853632),
(620, 53.37),
(621, 56.6987158333333),
(622, 59.7259110416667),
(623, 62.1817483333333),
(624, 63.7963904166667),
(625, 64.3),
(626, 61.345143125),
(627, 57.2589783333333),
(628, 52.2910675),
(629, 49.6153172687077),
(630, 152.631340968628),
(631, 37.62643516516),
(632, 28.9113075),
(633, 23.3235383333333),
(634, 18.215063125),
(635, 13.79),
(636, 11.60296375),
(637, 10.1699516666667),
(638, 9.35745770833333),
(639, 9.03197583333333),
(640, 9.06),
(641, 8.694),
(642, 8.568),
(643, 8.702),
(644, 9.116),
(645, 9.83),
(646, 11.64768),
(647, 13.60944),
(648, 15.53936),
(649, 17.26152),
(650, 18.6),
(651, 18.13696),
(652, 17.24888),
(653, 16.07032),
(654, 14.73584),
(655, 13.38),
(656, 12.69672),
(657, 12.12136),
(658, 11.64864),
(659, 11.27328),
(660, 10.99),
(661, 10.9372),
(662, 10.93),
(663, 10.9272),
(664, 10.8876),
(665, 10.77),
(666, 10.2148),
(667, 9.5788),
(668, 8.9004),
(669, 8.218),
(670, 7.57),
(671, 7.13368),
(672, 6.77384),
(673, 6.49416),
(674, 6.29832),
(675, 6.19),
(676, 6.24296),
(677, 6.37328),
(678, 6.56712),
(679, 6.81064),
(680, 7.09),
(681, 7.39264),
(682, 7.70312),
(683, 8.00728),
(684, 8.29096),
(685, 8.54),
(686, 8.72744),
(687, 8.85512),
(688, 8.91208),
(689, 8.88736),
(690, 8.77),
(691, 8.4796),
(692, 8.092),
(693, 7.6136),
(694, 7.0508),
(695, 6.41),
(696, 5.1248),
(697, 3.9176),
(698, 2.938),
(699, 2.3356),
(700, 2.26),
(701, 3.9488),
(702, 6.1916),
(703, 8.866),
(704, 11.8496),
(705, 15.02),
(706, 18.89),
(707, 22.5432),
(708, 25.6984),
(709, 28.0744),
(710, 29.39),
(711, 26.83408),
(712, 23.28784),
(713, 19.10256),
(714, 14.62952),
(715, 10.22),
(716, 7.68672),
(717, 5.55416),
(718, 3.80824),
(719, 2.43488),
(720, 1.42),
(721, 0.9668),
(722, 0.7896),
(723, 0.82),
(724, 0.9896),
(725, 1.23),
(726, 1.20528),
(727, 1.18144),
(728, 1.15696),
(729, 1.13032),
(730, 1.1),
(731, 1.04176),
(732, 0.98248),
(733, 0.92632),
(734, 0.87744),
(735, 0.84),
(736, 0.83928),
(737, 0.85304),
(738, 0.88016),
(739, 0.91952),
(740, 0.97),
(741, 1.06856),
(742, 1.16648),
(743, 1.25312),
(744, 1.31784),
(745, 1.35),
(746, 1.25608),
(747, 1.12904),
(748, 0.97896),
(749, 0.81592),
(750, 0.65),
(751, 0.38984),
(752, 0.17232),
(753, 0.03288),
(754, 0.00696),
(755, 0.13),
(756, 0.98944),
(757, 1.93072),
(758, 2.85128),
(759, 3.64856),
(760, 4.22),
(761, 3.63968),
(762, 2.83424),
(763, 1.90696),
(764, 0.96112),
(765, 0.1),
(766, 0.0256),
(767, 0.0928),
(768, 0.2552),
(769, 0.4664),
(770, 0.68),
(771, 0.61728),
(772, 0.52224),
(773, 0.40656),
(774, 0.28192),
(775, 0.16),
(776, 0.1056),
(777, 0.064),
(778, 0.0336),
(779, 0.0128),
(780, 0.0),
];
impl Illuminant {
pub const FL3_9: Self = Self::new("FL3.9", IlluminantType::Fluorescent, Spd::new(&SPD_DATA));
}