{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NegativeLiterals #-}
{-# LANGUAGE DataKinds #-}
module Graphics.Color.Illuminant.CIE1931
( CIE1931(..)
, spectralPowerDistributions
, xyzColorMatchingFunctions
, rectifyColorTemperature
, wavelengths
) where
import Graphics.Color.Algebra
import Graphics.Color.Space.Internal
rectifyColorTemperature ::
Int
-> Double
-> CCT (i :: k)
rectifyColorTemperature :: Int -> Double -> CCT i
rectifyColorTemperature Int
cct Double
c2 = Double -> CCT i
forall k (i :: k). Double -> CCT i
CCT (Int -> Double
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
cct Double -> Double -> Double
forall a. Num a => a -> a -> a
* Double
1.4388 Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Double
c2)
instance Illuminant 'A where
type Temperature 'A = 2856
whitePoint :: WhitePoint 'A e
whitePoint = e -> e -> WhitePoint 'A e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.44758 e
0.40745
colorTemperature :: CCT 'A
colorTemperature = Int -> Double -> CCT 'A
forall k (i :: k). Int -> Double -> CCT i
rectifyColorTemperature Int
2848 Double
1.4350
instance Illuminant 'B where
type Temperature 'B = 4874
whitePoint :: WhitePoint 'B e
whitePoint = e -> e -> WhitePoint 'B e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.34842 e
0.35161
instance Illuminant 'C where
type Temperature 'C = 6774
whitePoint :: WhitePoint 'C e
whitePoint = e -> e -> WhitePoint 'C e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.31006 e
0.31616
instance Illuminant 'D50 where
type Temperature 'D50 = 5003
whitePoint :: WhitePoint 'D50 e
whitePoint = e -> e -> WhitePoint 'D50 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.34567 e
0.35851
colorTemperature :: CCT 'D50
colorTemperature = Int -> Double -> CCT 'D50
forall k (i :: k). Int -> Double -> CCT i
rectifyColorTemperature Int
5000 Double
1.4380
instance Illuminant 'D55 where
type Temperature 'D55 = 5503
whitePoint :: WhitePoint 'D55 e
whitePoint = e -> e -> WhitePoint 'D55 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.33243 e
0.34744
colorTemperature :: CCT 'D55
colorTemperature = Int -> Double -> CCT 'D55
forall k (i :: k). Int -> Double -> CCT i
rectifyColorTemperature Int
5500 Double
1.4380
instance Illuminant 'D60 where
type Temperature 'D60 = 6003
whitePoint :: WhitePoint 'D60 e
whitePoint = e -> e -> WhitePoint 'D60 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.32163 e
0.33774
colorTemperature :: CCT 'D60
colorTemperature = Int -> Double -> CCT 'D60
forall k (i :: k). Int -> Double -> CCT i
rectifyColorTemperature Int
6000 Double
1.4380
instance Illuminant 'D65 where
type Temperature 'D65 = 6504
whitePoint :: WhitePoint 'D65 e
whitePoint = e -> e -> WhitePoint 'D65 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.31272 e
0.32903
colorTemperature :: CCT 'D65
colorTemperature = Int -> Double -> CCT 'D65
forall k (i :: k). Int -> Double -> CCT i
rectifyColorTemperature Int
6500 Double
1.4380
instance Illuminant 'D75 where
type Temperature 'D75 = 7504
whitePoint :: WhitePoint 'D75 e
whitePoint = e -> e -> WhitePoint 'D75 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.29903 e
0.31488
colorTemperature :: CCT 'D75
colorTemperature = Int -> Double -> CCT 'D75
forall k (i :: k). Int -> Double -> CCT i
rectifyColorTemperature Int
7500 Double
1.4380
instance Illuminant 'E where
type Temperature 'E = 5454
whitePoint :: WhitePoint 'E e
whitePoint = e -> e -> WhitePoint 'E e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint (e
1 e -> e -> e
forall a. Fractional a => a -> a -> a
/ e
3) (e
1 e -> e -> e
forall a. Fractional a => a -> a -> a
/ e
3)
instance Illuminant 'FL1 where
type Temperature 'FL1 = 6430
whitePoint :: WhitePoint 'FL1 e
whitePoint = e -> e -> WhitePoint 'FL1 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.31310 e
0.33710
instance Illuminant 'FL2 where
type Temperature 'FL2 = 4230
whitePoint :: WhitePoint 'FL2 e
whitePoint = e -> e -> WhitePoint 'FL2 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.37210 e
0.37510
instance Illuminant 'FL3 where
type Temperature 'FL3 = 3450
whitePoint :: WhitePoint 'FL3 e
whitePoint = e -> e -> WhitePoint 'FL3 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.40910 e
0.39410
instance Illuminant 'FL4 where
type Temperature 'FL4 = 2940
whitePoint :: WhitePoint 'FL4 e
whitePoint = e -> e -> WhitePoint 'FL4 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.44020 e
0.40310
instance Illuminant 'FL5 where
type Temperature 'FL5 = 6350
whitePoint :: WhitePoint 'FL5 e
whitePoint = e -> e -> WhitePoint 'FL5 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.31380 e
0.34520
instance Illuminant 'FL6 where
type Temperature 'FL6 = 4150
whitePoint :: WhitePoint 'FL6 e
whitePoint = e -> e -> WhitePoint 'FL6 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.37790 e
0.38820
instance Illuminant 'FL7 where
type Temperature 'FL7 = 6500
whitePoint :: WhitePoint 'FL7 e
whitePoint = e -> e -> WhitePoint 'FL7 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.31290 e
0.32920
instance Illuminant 'FL8 where
type Temperature 'FL8 = 5000
whitePoint :: WhitePoint 'FL8 e
whitePoint = e -> e -> WhitePoint 'FL8 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.34580 e
0.35860
instance Illuminant 'FL9 where
type Temperature 'FL9 = 4150
whitePoint :: WhitePoint 'FL9 e
whitePoint = e -> e -> WhitePoint 'FL9 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.37410 e
0.37270
instance Illuminant 'FL10 where
type Temperature 'FL10 = 5000
whitePoint :: WhitePoint 'FL10 e
whitePoint = e -> e -> WhitePoint 'FL10 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.34580 e
0.35880
instance Illuminant 'FL11 where
type Temperature 'FL11 = 4000
whitePoint :: WhitePoint 'FL11 e
whitePoint = e -> e -> WhitePoint 'FL11 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.38050 e
0.37690
instance Illuminant 'FL12 where
type Temperature 'FL12 = 3000
whitePoint :: WhitePoint 'FL12 e
whitePoint = e -> e -> WhitePoint 'FL12 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.43700 e
0.40420
instance Illuminant 'FL3_1 where
type Temperature 'FL3_1 = 2932
whitePoint :: WhitePoint 'FL3_1 e
whitePoint = e -> e -> WhitePoint 'FL3_1 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.44070 e
0.40330
instance Illuminant 'FL3_2 where
type Temperature 'FL3_2 = 3965
whitePoint :: WhitePoint 'FL3_2 e
whitePoint = e -> e -> WhitePoint 'FL3_2 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.38080 e
0.37340
instance Illuminant 'FL3_3 where
type Temperature 'FL3_3 = 6280
whitePoint :: WhitePoint 'FL3_3 e
whitePoint = e -> e -> WhitePoint 'FL3_3 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.31530 e
0.34390
instance Illuminant 'FL3_4 where
type Temperature 'FL3_4 = 2904
whitePoint :: WhitePoint 'FL3_4 e
whitePoint = e -> e -> WhitePoint 'FL3_4 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.44290 e
0.40430
instance Illuminant 'FL3_5 where
type Temperature 'FL3_5 = 4086
whitePoint :: WhitePoint 'FL3_5 e
whitePoint = e -> e -> WhitePoint 'FL3_5 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.37490 e
0.36720
instance Illuminant 'FL3_6 where
type Temperature 'FL3_6 = 4894
whitePoint :: WhitePoint 'FL3_6 e
whitePoint = e -> e -> WhitePoint 'FL3_6 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.34880 e
0.36000
instance Illuminant 'FL3_7 where
type Temperature 'FL3_7 = 2979
whitePoint :: WhitePoint 'FL3_7 e
whitePoint = e -> e -> WhitePoint 'FL3_7 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.43840 e
0.40450
instance Illuminant 'FL3_8 where
type Temperature 'FL3_8 = 4006
whitePoint :: WhitePoint 'FL3_8 e
whitePoint = e -> e -> WhitePoint 'FL3_8 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.38200 e
0.38320
instance Illuminant 'FL3_9 where
type Temperature 'FL3_9 = 4853
whitePoint :: WhitePoint 'FL3_9 e
whitePoint = e -> e -> WhitePoint 'FL3_9 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.34990 e
0.35910
instance Illuminant 'FL3_10 where
type Temperature 'FL3_10 = 5000
whitePoint :: WhitePoint 'FL3_10 e
whitePoint = e -> e -> WhitePoint 'FL3_10 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.34550 e
0.35600
instance Illuminant 'FL3_11 where
type Temperature 'FL3_11 = 5854
whitePoint :: WhitePoint 'FL3_11 e
whitePoint = e -> e -> WhitePoint 'FL3_11 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.32450 e
0.34340
instance Illuminant 'FL3_12 where
type Temperature 'FL3_12 = 2984
whitePoint :: WhitePoint 'FL3_12 e
whitePoint = e -> e -> WhitePoint 'FL3_12 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.43770 e
0.40370
instance Illuminant 'FL3_13 where
type Temperature 'FL3_13 = 3896
whitePoint :: WhitePoint 'FL3_13 e
whitePoint = e -> e -> WhitePoint 'FL3_13 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.38300 e
0.37240
instance Illuminant 'FL3_14 where
type Temperature 'FL3_14 = 5045
whitePoint :: WhitePoint 'FL3_14 e
whitePoint = e -> e -> WhitePoint 'FL3_14 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.34470 e
0.36090
instance Illuminant 'FL3_15 where
type Temperature 'FL3_15 = 6509
whitePoint :: WhitePoint 'FL3_15 e
whitePoint = e -> e -> WhitePoint 'FL3_15 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.31270 e
0.32880
instance Illuminant 'HP1 where
type Temperature 'HP1 = 1959
whitePoint :: WhitePoint 'HP1 e
whitePoint = e -> e -> WhitePoint 'HP1 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.53300 e
0.41500
instance Illuminant 'HP2 where
type Temperature 'HP2 = 2506
whitePoint :: WhitePoint 'HP2 e
whitePoint = e -> e -> WhitePoint 'HP2 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.47780 e
0.41580
instance Illuminant 'HP3 where
type Temperature 'HP3 = 3144
whitePoint :: WhitePoint 'HP3 e
whitePoint = e -> e -> WhitePoint 'HP3 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.43020 e
0.40750
instance Illuminant 'HP4 where
type Temperature 'HP4 = 4002
whitePoint :: WhitePoint 'HP4 e
whitePoint = e -> e -> WhitePoint 'HP4 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.38120 e
0.37970
instance Illuminant 'HP5 where
type Temperature 'HP5 = 4039
whitePoint :: WhitePoint 'HP5 e
whitePoint = e -> e -> WhitePoint 'HP5 e
forall k e (i :: k). e -> e -> WhitePoint i e
WhitePoint e
0.37760 e
0.37130
data CIE1931
= A
| B
| C
| D50
| D55
| D60
| D65
| D75
| E
| FL1
| FL2
| FL3
| FL4
| FL5
| FL6
| FL7
| FL8
| FL9
| FL10
| FL11
| FL12
| FL3_1
| FL3_2
| FL3_3
| FL3_4
| FL3_5
| FL3_6
| FL3_7
| FL3_8
| FL3_9
| FL3_10
| FL3_11
| FL3_12
| FL3_13
| FL3_14
| FL3_15
| HP1
| HP2
| HP3
| HP4
| HP5
deriving (CIE1931 -> CIE1931 -> Bool
(CIE1931 -> CIE1931 -> Bool)
-> (CIE1931 -> CIE1931 -> Bool) -> Eq CIE1931
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CIE1931 -> CIE1931 -> Bool
$c/= :: CIE1931 -> CIE1931 -> Bool
== :: CIE1931 -> CIE1931 -> Bool
$c== :: CIE1931 -> CIE1931 -> Bool
Eq, Int -> CIE1931 -> ShowS
[CIE1931] -> ShowS
CIE1931 -> String
(Int -> CIE1931 -> ShowS)
-> (CIE1931 -> String) -> ([CIE1931] -> ShowS) -> Show CIE1931
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CIE1931] -> ShowS
$cshowList :: [CIE1931] -> ShowS
show :: CIE1931 -> String
$cshow :: CIE1931 -> String
showsPrec :: Int -> CIE1931 -> ShowS
$cshowsPrec :: Int -> CIE1931 -> ShowS
Show, ReadPrec [CIE1931]
ReadPrec CIE1931
Int -> ReadS CIE1931
ReadS [CIE1931]
(Int -> ReadS CIE1931)
-> ReadS [CIE1931]
-> ReadPrec CIE1931
-> ReadPrec [CIE1931]
-> Read CIE1931
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CIE1931]
$creadListPrec :: ReadPrec [CIE1931]
readPrec :: ReadPrec CIE1931
$creadPrec :: ReadPrec CIE1931
readList :: ReadS [CIE1931]
$creadList :: ReadS [CIE1931]
readsPrec :: Int -> ReadS CIE1931
$creadsPrec :: Int -> ReadS CIE1931
Read, Int -> CIE1931
CIE1931 -> Int
CIE1931 -> [CIE1931]
CIE1931 -> CIE1931
CIE1931 -> CIE1931 -> [CIE1931]
CIE1931 -> CIE1931 -> CIE1931 -> [CIE1931]
(CIE1931 -> CIE1931)
-> (CIE1931 -> CIE1931)
-> (Int -> CIE1931)
-> (CIE1931 -> Int)
-> (CIE1931 -> [CIE1931])
-> (CIE1931 -> CIE1931 -> [CIE1931])
-> (CIE1931 -> CIE1931 -> [CIE1931])
-> (CIE1931 -> CIE1931 -> CIE1931 -> [CIE1931])
-> Enum CIE1931
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: CIE1931 -> CIE1931 -> CIE1931 -> [CIE1931]
$cenumFromThenTo :: CIE1931 -> CIE1931 -> CIE1931 -> [CIE1931]
enumFromTo :: CIE1931 -> CIE1931 -> [CIE1931]
$cenumFromTo :: CIE1931 -> CIE1931 -> [CIE1931]
enumFromThen :: CIE1931 -> CIE1931 -> [CIE1931]
$cenumFromThen :: CIE1931 -> CIE1931 -> [CIE1931]
enumFrom :: CIE1931 -> [CIE1931]
$cenumFrom :: CIE1931 -> [CIE1931]
fromEnum :: CIE1931 -> Int
$cfromEnum :: CIE1931 -> Int
toEnum :: Int -> CIE1931
$ctoEnum :: Int -> CIE1931
pred :: CIE1931 -> CIE1931
$cpred :: CIE1931 -> CIE1931
succ :: CIE1931 -> CIE1931
$csucc :: CIE1931 -> CIE1931
Enum, CIE1931
CIE1931 -> CIE1931 -> Bounded CIE1931
forall a. a -> a -> Bounded a
maxBound :: CIE1931
$cmaxBound :: CIE1931
minBound :: CIE1931
$cminBound :: CIE1931
Bounded)
wavelengths :: [(Double, V3 Double)]
wavelengths :: [(Double, V3 Double)]
wavelengths = [(Double, V3 Double)]
spectralPowerDistributions
{-# DEPRECATED wavelengths "In favor of 'spectralPowerDistributions'" #-}
spectralPowerDistributions :: [(Double, V3 Double)]
spectralPowerDistributions :: [(Double, V3 Double)]
spectralPowerDistributions =
[ (Double
300, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
0.04 Double
0.02 Double
0.00)
, (Double
305, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
3.02 Double
2.26 Double
1.00)
, (Double
310, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
6.00 Double
4.50 Double
2.00)
, (Double
315, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
17.80 Double
13.45 Double
3.00)
, (Double
320, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
29.60 Double
22.40 Double
4.00)
, (Double
325, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
42.45 Double
32.20 Double
6.25)
, (Double
330, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
55.30 Double
42.00 Double
8.50)
, (Double
335, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
56.30 Double
41.30 Double
8.15)
, (Double
340, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
57.30 Double
40.60 Double
7.80)
, (Double
345, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
59.55 Double
41.10 Double
7.25)
, (Double
350, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
61.80 Double
41.60 Double
6.70)
, (Double
355, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
61.65 Double
39.80 Double
6.00)
, (Double
360, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
61.50 Double
38.00 Double
5.30)
, (Double
365, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
65.15 Double
40.20 Double
5.70)
, (Double
370, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
68.80 Double
42.40 Double
6.10)
, (Double
375, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
66.10 Double
40.45 Double
4.55)
, (Double
380, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
63.40 Double
38.50 Double
3.00)
, (Double
385, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
64.60 Double
36.75 Double
2.10)
, (Double
390, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
65.80 Double
35.00 Double
1.20)
, (Double
395, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
80.30 Double
39.20 Double
0.05)
, (Double
400, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
94.80 Double
43.40 Double
-1.10)
, (Double
405, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
99.80 Double
44.85 Double
-0.80)
, (Double
410, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
104.80 Double
46.30 Double
-0.50)
, (Double
415, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
105.35 Double
45.10 Double
-0.60)
, (Double
420, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
105.90 Double
43.90 Double
-0.70)
, (Double
425, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
101.35 Double
40.50 Double
-0.95)
, (Double
430, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
96.80 Double
37.10 Double
-1.20)
, (Double
435, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
105.35 Double
36.90 Double
-1.90)
, (Double
440, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
113.90 Double
36.70 Double
-2.60)
, (Double
445, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
119.75 Double
36.30 Double
-2.75)
, (Double
450, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
125.60 Double
35.90 Double
-2.90)
, (Double
455, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
125.55 Double
34.25 Double
-2.85)
, (Double
460, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
125.50 Double
32.60 Double
-2.80)
, (Double
465, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
123.40 Double
30.25 Double
-2.70)
, (Double
470, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
121.30 Double
27.90 Double
-2.60)
, (Double
475, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
121.30 Double
26.10 Double
-2.60)
, (Double
480, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
121.30 Double
24.30 Double
-2.60)
, (Double
485, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
117.40 Double
22.20 Double
-2.20)
, (Double
490, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
113.50 Double
20.10 Double
-1.80)
, (Double
495, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
113.30 Double
18.15 Double
-1.65)
, (Double
500, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
113.10 Double
16.20 Double
-1.50)
, (Double
505, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
111.95 Double
14.70 Double
-1.40)
, (Double
510, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
110.80 Double
13.20 Double
-1.30)
, (Double
515, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
108.65 Double
10.90 Double
-1.25)
, (Double
520, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
106.50 Double
8.60 Double
-1.20)
, (Double
525, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
107.65 Double
7.35 Double
-1.10)
, (Double
530, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
108.80 Double
6.10 Double
-1.00)
, (Double
535, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
107.05 Double
5.15 Double
-0.75)
, (Double
540, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
105.30 Double
4.20 Double
-0.50)
, (Double
545, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
104.85 Double
3.05 Double
-0.40)
, (Double
550, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
104.40 Double
1.90 Double
-0.30)
, (Double
555, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
102.20 Double
0.95 Double
-0.15)
, (Double
560, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
100.00 Double
0.00 Double
0.00)
, (Double
565, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
98.00 Double
-0.80 Double
0.10)
, (Double
570, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
96.00 Double
-1.60 Double
0.20)
, (Double
575, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
95.55 Double
-2.55 Double
0.35)
, (Double
580, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
95.10 Double
-3.50 Double
0.50)
, (Double
585, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
92.10 Double
-3.50 Double
1.30)
, (Double
590, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
89.10 Double
-3.50 Double
2.10)
, (Double
595, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
89.80 Double
-4.65 Double
2.65)
, (Double
600, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
90.50 Double
-5.80 Double
3.20)
, (Double
605, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
90.40 Double
-6.50 Double
3.65)
, (Double
610, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
90.30 Double
-7.20 Double
4.10)
, (Double
615, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
89.35 Double
-7.90 Double
4.40)
, (Double
620, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
88.40 Double
-8.60 Double
4.70)
, (Double
625, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
86.20 Double
-9.05 Double
4.90)
, (Double
630, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
84.00 Double
-9.50 Double
5.10)
, (Double
635, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
84.55 Double
-10.20 Double
5.90)
, (Double
640, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
85.10 Double
-10.90 Double
6.70)
, (Double
645, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
83.50 Double
-10.80 Double
7.00)
, (Double
650, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
81.90 Double
-10.70 Double
7.30)
, (Double
655, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
82.25 Double
-11.35 Double
7.95)
, (Double
660, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
82.60 Double
-12.00 Double
8.60)
, (Double
665, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
83.75 Double
-13.00 Double
9.20)
, (Double
670, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
84.90 Double
-14.00 Double
9.80)
, (Double
675, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
83.10 Double
-13.80 Double
10.00)
, (Double
680, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
81.30 Double
-13.60 Double
10.20)
, (Double
685, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
76.60 Double
-12.80 Double
9.25)
, (Double
690, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
71.90 Double
-12.00 Double
8.30)
, (Double
695, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
73.10 Double
-12.65 Double
8.95)
, (Double
700, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
74.30 Double
-13.30 Double
9.60)
, (Double
705, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
75.35 Double
-13.10 Double
9.05)
, (Double
710, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
76.40 Double
-12.90 Double
8.50)
, (Double
715, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
69.85 Double
-11.75 Double
7.75)
, (Double
720, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
63.30 Double
-10.60 Double
7.00)
, (Double
725, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
67.50 Double
-11.10 Double
7.30)
, (Double
730, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
71.70 Double
-11.60 Double
7.60)
, (Double
735, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
74.35 Double
-11.90 Double
7.80)
, (Double
740, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
77.00 Double
-12.20 Double
8.00)
, (Double
745, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
71.10 Double
-11.20 Double
7.35)
, (Double
750, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
65.20 Double
-10.20 Double
6.70)
, (Double
755, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
56.45 Double
-9.00 Double
5.95)
, (Double
760, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
47.70 Double
-7.80 Double
5.20)
, (Double
765, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
58.15 Double
-9.50 Double
6.30)
, (Double
770, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
68.60 Double
-11.20 Double
7.40)
, (Double
775, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
66.80 Double
-10.80 Double
7.10)
, (Double
780, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
65.00 Double
-10.40 Double
6.80)
, (Double
785, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
65.50 Double
-10.50 Double
6.90)
, (Double
790, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
66.00 Double
-10.60 Double
7.00)
, (Double
795, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
63.50 Double
-10.15 Double
6.70)
, (Double
800, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
61.00 Double
-9.70 Double
6.40)
, (Double
805, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
57.15 Double
-9.00 Double
5.95)
, (Double
810, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
53.30 Double
-8.30 Double
5.50)
, (Double
815, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
56.10 Double
-8.80 Double
5.80)
, (Double
820, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
58.90 Double
-9.30 Double
6.10)
, (Double
825, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
60.40 Double
-9.55 Double
6.30)
, (Double
830, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
61.90 Double
-9.80 Double
6.50)
]
xyzColorMatchingFunctions :: [(Double, V3 Double, V2 Double)]
xyzColorMatchingFunctions :: [(Double, V3 Double, V2 Double)]
xyzColorMatchingFunctions =
[ (Double
l, Double -> Double -> Double -> V3 Double
forall a. a -> a -> a -> V3 a
V3 Double
x' Double
y' Double
z', Double -> Double -> V2 Double
forall a. a -> a -> V2 a
V2 Double
x Double
y)
| (Double
l, Double
x', Double
y', Double
z', Double
x, Double
y) <-
[ (Double
380, Double
0.001368, Double
0.000039, Double
0.006450, Double
0.17411, Double
0.00496)
, (Double
385, Double
0.002236, Double
0.000064, Double
0.010550, Double
0.17401, Double
0.00498)
, (Double
390, Double
0.004243, Double
0.000120, Double
0.020050, Double
0.17380, Double
0.00492)
, (Double
395, Double
0.007650, Double
0.000217, Double
0.036210, Double
0.17356, Double
0.00492)
, (Double
400, Double
0.014310, Double
0.000396, Double
0.067850, Double
0.17334, Double
0.00480)
, (Double
405, Double
0.023190, Double
0.000640, Double
0.110200, Double
0.17302, Double
0.00478)
, (Double
410, Double
0.043510, Double
0.001210, Double
0.207400, Double
0.17258, Double
0.00480)
, (Double
415, Double
0.077630, Double
0.002180, Double
0.371300, Double
0.17209, Double
0.00483)
, (Double
420, Double
0.134380, Double
0.004000, Double
0.645600, Double
0.17141, Double
0.00510)
, (Double
425, Double
0.214770, Double
0.007300, Double
1.039050, Double
0.17030, Double
0.00579)
, (Double
430, Double
0.283900, Double
0.011600, Double
1.385600, Double
0.16888, Double
0.00690)
, (Double
435, Double
0.328500, Double
0.016840, Double
1.622960, Double
0.16690, Double
0.00856)
, (Double
440, Double
0.348280, Double
0.023000, Double
1.747060, Double
0.16441, Double
0.01086)
, (Double
445, Double
0.348060, Double
0.029800, Double
1.782600, Double
0.16110, Double
0.01379)
, (Double
450, Double
0.336200, Double
0.038000, Double
1.772110, Double
0.15664, Double
0.01770)
, (Double
455, Double
0.318700, Double
0.048000, Double
1.744100, Double
0.15099, Double
0.02274)
, (Double
460, Double
0.290800, Double
0.060000, Double
1.669200, Double
0.14396, Double
0.02970)
, (Double
465, Double
0.251100, Double
0.073900, Double
1.528100, Double
0.13550, Double
0.03988)
, (Double
470, Double
0.195360, Double
0.090980, Double
1.287640, Double
0.12412, Double
0.05780)
, (Double
475, Double
0.142100, Double
0.112600, Double
1.041900, Double
0.10959, Double
0.08684)
, (Double
480, Double
0.095640, Double
0.139020, Double
0.812950, Double
0.09129, Double
0.13270)
, (Double
485, Double
0.057950, Double
0.169300, Double
0.616200, Double
0.06871, Double
0.20072)
, (Double
490, Double
0.032010, Double
0.208020, Double
0.465180, Double
0.04539, Double
0.29498)
, (Double
495, Double
0.014700, Double
0.258600, Double
0.353300, Double
0.02346, Double
0.41270)
, (Double
500, Double
0.004900, Double
0.323000, Double
0.272000, Double
0.00817, Double
0.53842)
, (Double
505, Double
0.002400, Double
0.407300, Double
0.212300, Double
0.00386, Double
0.65482)
, (Double
510, Double
0.009300, Double
0.503000, Double
0.158200, Double
0.01387, Double
0.75019)
, (Double
515, Double
0.029100, Double
0.608200, Double
0.111700, Double
0.03885, Double
0.81202)
, (Double
520, Double
0.063270, Double
0.710000, Double
0.078250, Double
0.07430, Double
0.83380)
, (Double
525, Double
0.109600, Double
0.793200, Double
0.057250, Double
0.11416, Double
0.82621)
, (Double
530, Double
0.165500, Double
0.862000, Double
0.042160, Double
0.15472, Double
0.80586)
, (Double
535, Double
0.225750, Double
0.914850, Double
0.029840, Double
0.19288, Double
0.78163)
, (Double
540, Double
0.290400, Double
0.954000, Double
0.020300, Double
0.22962, Double
0.75433)
, (Double
545, Double
0.359700, Double
0.980300, Double
0.013400, Double
0.26578, Double
0.72432)
, (Double
550, Double
0.433450, Double
0.994950, Double
0.008750, Double
0.30160, Double
0.69231)
, (Double
555, Double
0.512050, Double
1.000000, Double
0.005750, Double
0.33736, Double
0.65885)
, (Double
560, Double
0.594500, Double
0.995000, Double
0.003900, Double
0.37310, Double
0.62445)
, (Double
565, Double
0.678400, Double
0.978600, Double
0.002750, Double
0.40874, Double
0.58961)
, (Double
570, Double
0.762100, Double
0.952000, Double
0.002100, Double
0.44406, Double
0.55471)
, (Double
575, Double
0.842500, Double
0.915400, Double
0.001800, Double
0.47877, Double
0.52020)
, (Double
580, Double
0.916300, Double
0.870000, Double
0.001650, Double
0.51249, Double
0.48659)
, (Double
585, Double
0.978600, Double
0.816300, Double
0.001400, Double
0.54479, Double
0.45443)
, (Double
590, Double
1.026300, Double
0.757000, Double
0.001100, Double
0.57515, Double
0.42423)
, (Double
595, Double
1.056700, Double
0.694900, Double
0.001000, Double
0.60293, Double
0.39650)
, (Double
600, Double
1.062200, Double
0.631000, Double
0.000800, Double
0.62704, Double
0.37249)
, (Double
605, Double
1.045600, Double
0.566800, Double
0.000600, Double
0.64823, Double
0.35139)
, (Double
610, Double
1.002600, Double
0.503000, Double
0.000340, Double
0.66576, Double
0.33401)
, (Double
615, Double
0.938400, Double
0.441200, Double
0.000240, Double
0.68008, Double
0.31975)
, (Double
620, Double
0.854450, Double
0.381000, Double
0.000190, Double
0.69150, Double
0.30834)
, (Double
625, Double
0.751400, Double
0.321000, Double
0.000100, Double
0.70061, Double
0.29930)
, (Double
630, Double
0.642400, Double
0.265000, Double
0.000050, Double
0.70792, Double
0.29203)
, (Double
635, Double
0.541900, Double
0.217000, Double
0.000030, Double
0.71403, Double
0.28593)
, (Double
640, Double
0.447900, Double
0.175000, Double
0.000020, Double
0.71903, Double
0.28093)
, (Double
645, Double
0.360800, Double
0.138200, Double
0.000010, Double
0.72303, Double
0.27695)
, (Double
650, Double
0.283500, Double
0.107000, Double
0.000000, Double
0.72599, Double
0.27401)
, (Double
655, Double
0.218700, Double
0.081600, Double
0.000000, Double
0.72827, Double
0.27173)
, (Double
660, Double
0.164900, Double
0.061000, Double
0.000000, Double
0.72997, Double
0.27003)
, (Double
665, Double
0.121200, Double
0.044580, Double
0.000000, Double
0.73109, Double
0.26891)
, (Double
670, Double
0.087400, Double
0.032000, Double
0.000000, Double
0.73199, Double
0.26801)
, (Double
675, Double
0.063600, Double
0.023200, Double
0.000000, Double
0.73272, Double
0.26728)
, (Double
680, Double
0.046770, Double
0.017000, Double
0.000000, Double
0.73342, Double
0.26658)
, (Double
685, Double
0.032900, Double
0.011920, Double
0.000000, Double
0.73405, Double
0.26595)
, (Double
690, Double
0.022700, Double
0.008210, Double
0.000000, Double
0.73439, Double
0.26561)
, (Double
695, Double
0.015840, Double
0.005723, Double
0.000000, Double
0.73459, Double
0.26541)
, (Double
700, Double
0.011359, Double
0.004102, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
705, Double
0.008111, Double
0.002929, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
710, Double
0.005790, Double
0.002091, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
715, Double
0.004109, Double
0.001484, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
720, Double
0.002899, Double
0.001047, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
725, Double
0.002049, Double
0.000740, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
730, Double
0.001440, Double
0.000520, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
735, Double
0.001000, Double
0.000361, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
740, Double
0.000690, Double
0.000249, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
745, Double
0.000476, Double
0.000172, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
750, Double
0.000332, Double
0.000120, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
755, Double
0.000235, Double
0.000085, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
760, Double
0.000166, Double
0.000060, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
765, Double
0.000117, Double
0.000042, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
770, Double
0.000083, Double
0.000030, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
775, Double
0.000059, Double
0.000021, Double
0.000000, Double
0.73469, Double
0.26531)
, (Double
780, Double
0.000042, Double
0.000015, Double
0.000000, Double
0.73469, Double
0.26531)
]
]