use crate::{
illuminant::{Illuminant, IlluminantType},
spectral::Spd,
};
static SPD_DATA: [(u32, f64); 401] = [
(380, 4.18),
(381, 3.93),
(382, 3.67186666666667),
(383, 3.41373333333333),
(384, 3.16373333333333),
(385, 2.93),
(386, 2.76216),
(387, 2.61648),
(388, 2.49072),
(389, 2.38264),
(390, 2.29),
(391, 2.18752),
(392, 2.10176),
(393, 2.03624),
(394, 1.99448),
(395, 1.98),
(396, 1.9960750617284),
(397, 2.04653135802469),
(398, 2.13495012345679),
(399, 2.26491259259259),
(400, 2.44),
(401, 2.69157827160494),
(402, 2.98849777777778),
(403, 3.32739358024691),
(404, 3.70490074080109),
(405, 265.094111310001),
(406, 94.4892073947998),
(407, 5.01603456790123),
(408, 5.51156543209876),
(409, 6.0372),
(410, 6.59234567901234),
(411, 7.19005925925926),
(412, 7.81268641975308),
(413, 8.45622222222222),
(414, 9.11666172839506),
(415, 9.79),
(416, 10.4262074074074),
(417, 11.0788098765432),
(418, 11.7553086419753),
(419, 12.4632049382716),
(420, 13.21),
(421, 14.0508),
(422, 14.9336),
(423, 15.854),
(424, 16.8076),
(425, 17.79),
(426, 18.809),
(427, 19.84495),
(428, 20.8904),
(429, 21.9379),
(430, 22.98),
(431, 23.99981),
(432, 25.00168),
(433, 25.98052),
(434, 31.4335780135959),
(435, 840.135762038403),
(436, 33.2535780135959),
(437, 29.60452),
(438, 30.39768),
(439, 31.11981),
(440, 31.76),
(441, 32.22366),
(442, 32.60448),
(443, 32.91247),
(444, 33.15764),
(445, 33.35),
(446, 33.55336),
(447, 33.71048),
(448, 33.81792),
(449, 33.87224),
(450, 33.87),
(451, 33.78792),
(452, 33.64736),
(453, 33.44984),
(454, 33.19688),
(455, 32.89),
(456, 32.49584),
(457, 32.05952),
(458, 31.59128),
(459, 31.10136),
(460, 30.6),
(461, 30.17424),
(462, 29.73832),
(463, 29.28328),
(464, 28.80016),
(465, 28.28),
(466, 27.63288),
(467, 26.95104),
(468, 26.24576),
(469, 25.52832),
(470, 24.81),
(471, 23.9952),
(472, 23.2288),
(473, 22.5488),
(474, 21.9932),
(475, 21.6000000000001),
(476, 20.3182400000001),
(477, 19.5471200000002),
(478, 19.5968800000003),
(479, 20.7777600000004),
(480, 23.4000000000007),
(481, 31.815440000001),
(482, 41.2823200000016),
(483, 51.1004800000025),
(484, 60.5697600000038),
(485, 68.9900000000058),
(486, 72.4344800000089),
(487, 74.2362400000135),
(488, 74.5017600000204),
(489, 73.3375200000308),
(490, 70.8500000000461),
(491, 66.3120800000689),
(492, 60.8722400001026),
(493, 54.8453600001521),
(494, 48.5463200002247),
(495, 42.2900000003305),
(496, 37.6799200004843),
(497, 33.4201600007069),
(498, 29.5034400010278),
(499, 25.9224800014885),
(500, 22.6700000021474),
(501, 19.7051200030857),
(502, 17.0625600044167),
(503, 14.7434400062972),
(504, 12.7488800089432),
(505, 11.0800000126516),
(506, 9.94528001782778),
(507, 9.08664002502369),
(508, 8.45336003498702),
(509, 7.99472004872637),
(510, 7.66000006759627),
(511, 7.23528009340776),
(512, 6.87384012857152),
(513, 6.56576017628208),
(514, 6.30112024075377),
(515, 6.07000032752134),
(516, 5.81576044382083),
(517, 5.58688059906965),
(518, 5.38512080546844),
(519, 5.21224107875122),
(520, 5.07000143911545),
(521, 4.94288191236832),
(522, 4.85424253133156),
(523, 4.81016333755547),
(524, 4.81672438344961),
(525, 4.88000573582607),
(526, 4.98642157488114),
(527, 5.16663464492265),
(528, 5.43164429349368),
(529, 5.79247352709693),
(530, 6.2603345330167),
(531, 6.924623920782),
(532, 7.70895650913395),
(533, 8.6483094409273),
(534, 9.91328291329219),
(535, 12.1115627311111),
(536, 17.099525148615),
(537, 28.7120327444216),
(538, 54.0206360857884),
(539, 102.024320950022),
(540, 178.43612208605),
(541, 277.283114196356),
(542, 376.321495498068),
(543, 442.743938823021),
(544, 452.220210847839),
(545, 623.06844056003),
(546, 316.56992140198),
(547, 233.308640135182),
(548, 178.040206739224),
(549, 149.681380190123),
(550, 131.659951566098),
(551, 109.009835867036),
(552, 80.0783831263421),
(553, 52.7571218333611),
(554, 33.7790291068553),
(555, 23.731351043232),
(556, 19.4598781318283),
(557, 17.7802098236015),
(558, 16.9508601426987),
(559, 16.3213369592661),
(560, 15.7168651253045),
(561, 15.0617674721959),
(562, 14.408762258877),
(563, 13.7724356680848),
(564, 13.1680154744191),
(565, 12.6107910484886),
(566, 11.8068812401041),
(567, 11.1580464975905),
(568, 10.7568718231649),
(569, 10.6959410171016),
(570, 11.0678365882696),
(571, 12.637834037483),
(572, 14.6576451522851),
(573, 17.0516746341117),
(574, 19.7443257430195),
(575, 22.6600003268153),
(576, 25.6378894472692),
(577, 28.7089041326006),
(578, 31.8188337529242),
(579, 93.908528362975),
(580, 44.492856491019),
(581, 40.6503573917316),
(582, 43.2317176446266),
(583, 53.6161435030161),
(584, 189.509086214492),
(585, 95.6934114056866),
(586, 52.3955329352671),
(587, 54.3790373183345),
(588, 56.0847407866069),
(589, 57.4065475009398),
(590, 58.2700837791789),
(591, 58.0842806058538),
(592, 57.4206399629433),
(593, 56.3339687760739),
(594, 54.879076274945),
(595, 53.1107740251665),
(596, 51.4263692008877),
(597, 49.4525613455236),
(598, 47.15854544989),
(599, 44.5135185228024),
(600, 41.4866794110543),
(601, 36.5304092692226),
(602, 31.5099341045562),
(603, 26.7736617342147),
(604, 22.6700008318681),
(605, 19.5473635793614),
(606, 21.1966216441867),
(607, 23.3453537496817),
(608, 34.676396278058),
(609, 150.378008733719),
(610, 545.047764733859),
(611, 749.286451140014),
(612, 370.438356526433),
(613, 167.741357438246),
(614, 272.328841307311),
(615, 94.3922388763886),
(616, 46.5432731570482),
(617, 48.4323843242178),
(618, 50.6083031393265),
(619, 52.546187496352),
(620, 54.2025444941071),
(621, 57.7288408743687),
(622, 60.9929013381692),
(623, 63.7042669566305),
(624, 65.5724778845953),
(625, 66.3070734819868),
(626, 63.4307391031265),
(627, 59.3865795511627),
(628, 54.4308458617927),
(629, 52.5016171574598),
(630, 180.00970241074),
(631, 40.4711740270358),
(632, 31.0043512332004),
(633, 25.3898144926081),
(634, 20.2352763164198),
(635, 15.7416773017392),
(636, 13.411851567954),
(637, 11.8193734559535),
(638, 10.8397108851307),
(639, 10.3483320356758),
(640, 10.2207053570754),
(641, 9.73178623710158),
(642, 9.507685332241),
(643, 9.5740002271571),
(644, 9.95632875739764),
(645, 10.6802689961615),
(646, 12.6741392391957),
(647, 14.8351379884766),
(648, 16.9631839352413),
(649, 18.8581959428477),
(650, 20.3200930298571),
(651, 19.7209543536535),
(652, 18.6454991948385),
(653, 17.2506069425779),
(654, 15.6931570810137),
(655, 14.1300291768115),
(656, 13.3885028678654),
(657, 12.7874578531557),
(658, 12.3161738837226),
(659, 11.9639307547032),
(660, 11.7200082983643),
(661, 11.7340063780531),
(662, 11.7948048829844),
(663, 11.8516037237807),
(664, 11.853602828684),
(665, 11.7500021403576),
(666, 11.0852016132059),
(667, 10.3144012111414),
(668, 9.48800090573562),
(669, 8.6564006746983),
(670, 7.87000050063286),
(671, 7.38240037002464),
(672, 6.99000027242284),
(673, 6.69240019978273),
(674, 6.48920014593987),
(675, 6.38000010619193),
(676, 6.41016007696808),
(677, 6.52208005556884),
(678, 6.70392003996259),
(679, 6.9438400286271),
(680, 7.23000002042692),
(681, 7.55824001451877),
(682, 7.90712001027918),
(683, 8.26288000724917),
(684, 8.61176000509237),
(685, 8.94000000356331),
(686, 9.25944000248364),
(687, 9.52432000172434),
(688, 9.71448000119251),
(689, 9.80976000082149),
(690, 9.79000000056369),
(691, 9.51472000038529),
(692, 9.11416000026232),
(693, 8.5982400001779),
(694, 7.97688000012018),
(695, 7.26000000008087),
(696, 5.8172000000542),
(697, 4.45880000003619),
(698, 3.35480000002407),
(699, 2.67520000001594),
(700, 2.59000000001052),
(701, 4.48968000000692),
(702, 7.01864000000453),
(703, 10.041760000003),
(704, 13.4239200000019),
(705, 17.0300000000012),
(706, 21.4820000000008),
(707, 25.6984000000005),
(708, 29.3548000000003),
(709, 32.1268000000002),
(710, 33.6900000000001),
(711, 30.8332800000001),
(712, 26.8406400000001),
(713, 22.10936),
(714, 17.03672),
(715, 12.02),
(716, 9.08304000000001),
(717, 6.58992000000001),
(718, 4.53128),
(719, 2.89776),
(720, 1.68),
(721, 1.15664),
(722, 0.958320000000001),
(723, 1.00368),
(724, 1.21136),
(725, 1.5),
(726, 1.466),
(727, 1.4308),
(728, 1.3936),
(729, 1.3536),
(730, 1.31),
(731, 1.24088),
(732, 1.17184),
(733, 1.10736),
(734, 1.05192),
(735, 1.01),
(736, 1.00944),
(737, 1.02552),
(738, 1.05688),
(739, 1.10216),
(740, 1.16),
(741, 1.27192),
(742, 1.38296),
(743, 1.48104),
(744, 1.55408),
(745, 1.59),
(746, 1.46728),
(747, 1.31064),
(748, 1.13536),
(749, 0.95672),
(750, 0.79),
(751, 0.59672),
(752, 0.45936),
(753, 0.40664),
(754, 0.46728),
(755, 0.67),
(756, 1.56256),
(757, 2.52488),
(758, 3.45592),
(759, 4.25464),
(760, 4.82),
(761, 4.22408),
(762, 3.39944),
(763, 2.45176),
(764, 1.48672),
(765, 0.61),
(766, 0.5404),
(767, 0.6172),
(768, 0.7928),
(769, 1.0196),
(770, 1.25),
(771, 1.2028),
(772, 1.1224),
(773, 1.0196),
(774, 0.9052),
(775, 0.79),
(776, 0.741333333333333),
(777, 0.699333333333333),
(778, 0.660666666666667),
(779, 0.622),
(780, 0.58),
];
impl Illuminant {
pub const FL3_8: Self = Self::new("FL3.8", IlluminantType::Fluorescent, Spd::new(&SPD_DATA));
}