use crate::{
illuminant::{Illuminant, IlluminantType},
spectral::Spd,
};
static SPD_DATA: [(u32, f64); 401] = [
(380, 1.11),
(381, 1.048),
(382, 0.984266666666667),
(383, 0.920533333333333),
(384, 0.858533333333333),
(385, 0.8),
(386, 0.7536),
(387, 0.7124),
(388, 0.6764),
(389, 0.6456),
(390, 0.62),
(391, 0.594378240740741),
(392, 0.575261921296296),
(393, 0.563956481481481),
(394, 0.561767361111111),
(395, 0.57),
(396, 0.598545393518519),
(397, 0.637977037037037),
(398, 0.687453981481481),
(399, 0.746135277777778),
(400, 0.813179976851852),
(401, 0.884152037817696),
(402, 0.962861571105702),
(403, 1.40524053890277),
(404, 17.0994962371315),
(405, 37.8982393966663),
(406, 7.5039440188838),
(407, 1.50914521702447),
(408, 1.59644595477192),
(409, 1.72967574074417),
(410, 1.87095196759259),
(411, 2.02029027777778),
(412, 2.17779675925926),
(413, 2.34353888888889),
(414, 2.51758414351852),
(415, 2.7),
(416, 2.88635430555556),
(417, 3.08233907407407),
(418, 3.28914668981482),
(419, 3.50796953703704),
(420, 3.74),
(421, 3.996),
(422, 4.2652),
(423, 4.5464),
(424, 4.8384),
(425, 5.14),
(426, 5.45749037037037),
(427, 5.78030814814815),
(428, 6.10538074074074),
(429, 6.42963555555555),
(430, 6.75),
(431, 7.05115851851852),
(432, 7.34534222222222),
(433, 7.63253925925926),
(434, 7.91273777777778),
(435, 30.9171025764706),
(436, 143.552797303967),
(437, 8.73814643512825),
(438, 8.97160592592593),
(439, 9.21456),
(440, 9.4462962962963),
(441, 9.67075555555556),
(442, 9.88065185185185),
(443, 10.0736888888889),
(444, 10.2475703703704),
(445, 10.4),
(446, 10.5148977777778),
(447, 10.607197037037),
(448, 10.6780474074074),
(449, 10.7285985185185),
(450, 10.76),
(451, 10.77864),
(452, 10.77912),
(453, 10.76128),
(454, 10.72496),
(455, 10.67),
(456, 10.58952),
(457, 10.49176),
(458, 10.37824),
(459, 10.25048),
(460, 10.11),
(461, 9.95992),
(462, 9.79976),
(463, 9.63064),
(464, 9.45368),
(465, 9.27),
(466, 9.08136),
(467, 8.88808),
(468, 8.69112),
(469, 8.49144),
(470, 8.29),
(471, 8.03912),
(472, 7.80056),
(473, 7.58744),
(474, 7.41288),
(475, 7.29),
(476, 7.07672),
(477, 6.98016),
(478, 7.05224),
(479, 7.34488),
(480, 7.91),
(481, 9.5432),
(482, 11.3668),
(483, 13.2468),
(484, 15.0492),
(485, 16.64),
(486, 17.27688),
(487, 17.58624),
(488, 17.58616),
(489, 17.29472),
(490, 16.73),
(491, 15.72096),
(492, 14.52208),
(493, 13.19872),
(494, 11.81624),
(495, 10.44),
(496, 9.39328),
(497, 8.41904),
(498, 7.51816),
(499, 6.69152),
(500, 5.94),
(501, 5.27728),
(502, 4.68824),
(503, 4.17056),
(504, 3.72192),
(505, 3.34),
(506, 3.04808),
(507, 2.81184),
(508, 2.62256),
(509, 2.47152),
(510, 2.35),
(511, 2.22528),
(512, 2.11864),
(513, 2.02736),
(514, 1.94872),
(515, 1.88),
(516, 1.80792),
(517, 1.74296),
(518, 1.68504),
(519, 1.63408),
(520, 1.59000000000003),
(521, 1.54344000000056),
(522, 1.50592000000932),
(523, 1.47968000013771),
(524, 1.46696000178982),
(525, 1.47000002046629),
(526, 1.48643856591698),
(527, 1.52426895302469),
(528, 1.58689092246841),
(529, 1.67775491087045),
(530, 1.80058750371382),
(531, 1.99615682457712),
(532, 2.23006254911323),
(533, 2.52177443838004),
(534, 2.94363801143377),
(535, 3.69625090149122),
(536, 5.23566831355444),
(537, 8.38194036072008),
(538, 14.3039588059868),
(539, 24.1216729923715),
(540, 38.0753678149166),
(541, 54.5888545820307),
(542, 70.1062901879118),
(543, 80.1419117137781),
(544, 81.4950211352925),
(545, 74.2243133901908),
(546, 107.053491636583),
(547, 53.39648199843),
(548, 41.1168124451803),
(549, 36.2032677218217),
(550, 32.0963676972875),
(551, 26.38658127944),
(552, 19.2457851795217),
(553, 12.6355757632208),
(554, 8.07515257528316),
(555, 5.64349428175685),
(556, 4.55954218031181),
(557, 4.08629355790196),
(558, 3.81432887029263),
(559, 3.59195632528927),
(560, 3.38023428187183),
(561, 3.17458834610686),
(562, 2.97702438501273),
(563, 2.79119508752094),
(564, 2.62091143238544),
(565, 2.47000000015336),
(566, 2.34236078125488),
(567, 2.24173136718764),
(568, 2.1719215625),
(569, 2.136741171875),
(570, 2.14),
(571, 2.1785859765625),
(572, 2.26496125),
(573, 2.40466609375),
(574, 2.60324078125),
(575, 2.8662255859375),
(576, 5.28045757778058),
(577, 10.4643681266972),
(578, 4.19540500925072),
(579, 26.2005235255982),
(580, 9.73183726009138),
(581, 5.97175515483313),
(582, 6.6394980751406),
(583, 10.3735626798472),
(584, 31.2635418813598),
(585, 18.5276616159879),
(586, 9.75535892977421),
(587, 10.4637758005345),
(588, 11.205156875008),
(589, 11.7884088671875),
(590, 12.16),
(591, 11.8165316409247),
(592, 11.2668422796371),
(593, 10.5698875853778),
(594, 9.78462138921573),
(595, 8.97000000506199),
(596, 8.32025750000099),
(597, 7.725250625),
(598, 7.210115),
(599, 6.79998625),
(600, 6.52),
(601, 6.612161875),
(602, 6.83052),
(603, 7.1459925),
(604, 7.5294975),
(605, 7.951953125),
(606, 8.281055),
(607, 8.616749375),
(608, 8.95576000000759),
(609, 18.2577180866563),
(610, 137.221785463552),
(611, 17.4282970960812),
(612, 10.2794400000033),
(613, 25.5353132025103),
(614, 140.663227240878),
(615, 14.0234461511001),
(616, 11.3909325),
(617, 11.6099975),
(618, 11.80119),
(619, 11.962020625),
(620, 12.09),
(621, 12.26336171875),
(622, 12.3787126953125),
(623, 12.4133828125),
(624, 12.344701953125),
(625, 12.15),
(626, 11.6099474609375),
(627, 10.9476984375),
(628, 10.18974765625),
(629, 9.58972662216067),
(630, 18.2682108199543),
(631, 7.87637846571198),
(632, 6.80494765625),
(633, 5.9764984375),
(634, 5.1795474609375),
(635, 4.43),
(636, 3.770989453125),
(637, 3.1843859375),
(638, 2.6792876953125),
(639, 2.26479296875),
(640, 1.95),
(641, 1.84312),
(642, 1.82936),
(643, 1.89304),
(644, 2.01848),
(645, 2.19),
(646, 2.39896),
(647, 2.62088),
(648, 2.83832),
(649, 3.03384),
(650, 3.19),
(651, 3.17608),
(652, 3.11624),
(653, 3.02136),
(654, 2.90232),
(655, 2.77),
(656, 2.6708),
(657, 2.5712),
(658, 2.4732),
(659, 2.3788),
(660, 2.29),
(661, 2.22896),
(662, 2.17248),
(663, 2.11752),
(664, 2.06104),
(665, 2.0),
(666, 1.9032),
(667, 1.8028),
(668, 1.7028),
(669, 1.6072),
(670, 1.52),
(671, 1.46184),
(672, 1.41592),
(673, 1.38208),
(674, 1.36016),
(675, 1.35),
(676, 1.35368),
(677, 1.36824),
(678, 1.39296),
(679, 1.42712),
(680, 1.47),
(681, 1.53624),
(682, 1.60592),
(683, 1.67448),
(684, 1.73736),
(685, 1.79),
(686, 1.8192),
(687, 1.8312),
(688, 1.8236),
(689, 1.794),
(690, 1.74),
(691, 1.60128),
(692, 1.44784),
(693, 1.29176),
(694, 1.14512),
(695, 1.02),
(696, 0.93776),
(697, 0.89888),
(698, 0.91312),
(699, 0.99024),
(700, 1.14),
(701, 1.50944),
(702, 1.93672),
(703, 2.39728),
(704, 2.86656),
(705, 3.32),
(706, 3.718),
(707, 4.0548),
(708, 4.3096),
(709, 4.4616),
(710, 4.49),
(711, 4.14712),
(712, 3.69576),
(713, 3.17184),
(714, 2.61128),
(715, 2.05),
(716, 1.65384),
(717, 1.29632),
(718, 0.98088),
(719, 0.71096),
(720, 0.49),
(721, 0.37008),
(722, 0.29384),
(723, 0.25256),
(724, 0.23752),
(725, 0.24),
(726, 0.22248),
(727, 0.21224),
(728, 0.20776),
(729, 0.20752),
(730, 0.21),
(731, 0.2076),
(732, 0.2064),
(733, 0.2064),
(734, 0.2076),
(735, 0.21),
(736, 0.21552),
(737, 0.22176),
(738, 0.22824),
(739, 0.23448),
(740, 0.24),
(741, 0.2424),
(742, 0.2436),
(743, 0.2436),
(744, 0.2424),
(745, 0.24),
(746, 0.23576),
(747, 0.23048),
(748, 0.22432),
(749, 0.21744),
(750, 0.21),
(751, 0.19992),
(752, 0.19016),
(753, 0.18144),
(754, 0.17448),
(755, 0.17),
(756, 0.17512),
(757, 0.18256),
(758, 0.19144),
(759, 0.20088),
(760, 0.21),
(761, 0.21536),
(762, 0.21928),
(763, 0.22152),
(764, 0.22184),
(765, 0.22),
(766, 0.21288),
(767, 0.20384),
(768, 0.19336),
(769, 0.18192),
(770, 0.17),
(771, 0.15936),
(772, 0.14888),
(773, 0.13872),
(774, 0.12904),
(775, 0.12),
(776, 0.113466666666667),
(777, 0.107466666666667),
(778, 0.101733333333333),
(779, 0.096),
(780, 0.09),
];
impl Illuminant {
pub const FL10: Self = Self::new("FL10", IlluminantType::Fluorescent, Spd::new(&SPD_DATA));
}