summaryrefslogtreecommitdiff
path: root/xicc
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2017-12-01 10:32:14 +0100
committerJörg Frings-Fürst <debian@jff-webhosting.net>2017-12-01 10:32:14 +0100
commit4097e27114d227692d53c5d28487e12a3833cd24 (patch)
treed5c2a62c4db97de94f92150340612c64d3997669 /xicc
parentf8a0a4e1c775a90c313cb83201eec4cea4e9a7da (diff)
parent5514d94483c98e3320b202b1bb882023a7d12027 (diff)
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'xicc')
-rwxr-xr-x[-rw-r--r--]xicc/Jamfile6
-rwxr-xr-x[-rw-r--r--]xicc/License.txt0
-rwxr-xr-x[-rw-r--r--]xicc/Readme.txt0
-rwxr-xr-x[-rw-r--r--]xicc/afiles0
-rwxr-xr-x[-rw-r--r--]xicc/bt1886.c0
-rwxr-xr-x[-rw-r--r--]xicc/bt1886.h0
-rwxr-xr-x[-rw-r--r--]xicc/cam02.c127
-rwxr-xr-x[-rw-r--r--]xicc/cam02.h19
-rwxr-xr-x[-rw-r--r--]xicc/cam02plot.c8
-rwxr-xr-x[-rw-r--r--]xicc/cam02ref.h11
-rwxr-xr-x[-rw-r--r--]xicc/cam02test.c38
-rwxr-xr-x[-rw-r--r--]xicc/cam97s3.c0
-rwxr-xr-x[-rw-r--r--]xicc/cam97s3.h0
-rwxr-xr-x[-rw-r--r--]xicc/cam97test.c0
-rwxr-xr-x[-rw-r--r--]xicc/ccmx.c0
-rwxr-xr-x[-rw-r--r--]xicc/ccmx.h0
-rwxr-xr-x[-rw-r--r--]xicc/ccss.c0
-rwxr-xr-x[-rw-r--r--]xicc/ccss.h0
-rwxr-xr-x[-rw-r--r--]xicc/ccttest.c5
-rwxr-xr-x[-rw-r--r--]xicc/cgatsplot.c53
-rwxr-xr-x[-rw-r--r--]xicc/cv.c0
-rwxr-xr-x[-rw-r--r--]xicc/cvtest.c0
-rwxr-xr-x[-rw-r--r--]xicc/example.sp0
-rwxr-xr-x[-rw-r--r--]xicc/extracticc.c0
-rwxr-xr-x[-rw-r--r--]xicc/extractttag.c0
-rwxr-xr-x[-rw-r--r--]xicc/fakeCMY.c0
-rwxr-xr-x[-rw-r--r--]xicc/fbview.c0
-rwxr-xr-x[-rw-r--r--]xicc/iccgamut.c38
-rwxr-xr-x[-rw-r--r--]xicc/iccjpeg.c0
-rwxr-xr-x[-rw-r--r--]xicc/iccjpeg.h0
-rwxr-xr-x[-rw-r--r--]xicc/icheck.c0
-rwxr-xr-x[-rw-r--r--]xicc/monctest.c0
-rwxr-xr-x[-rw-r--r--]xicc/moncurve.c0
-rwxr-xr-x[-rw-r--r--]xicc/moncurve.h0
-rwxr-xr-x[-rw-r--r--]xicc/mpp.c0
-rwxr-xr-x[-rw-r--r--]xicc/mpp.h0
-rwxr-xr-x[-rw-r--r--]xicc/mpplu.c30
-rwxr-xr-x[-rw-r--r--]xicc/revfix.c0
-rwxr-xr-x[-rw-r--r--]xicc/specplot.c12
-rwxr-xr-x[-rw-r--r--]xicc/specsubsamp.c40
-rwxr-xr-x[-rw-r--r--]xicc/spectest.c1
-rwxr-xr-x[-rw-r--r--]xicc/spectest2.c1
-rwxr-xr-x[-rw-r--r--]xicc/tiffgamut.c57
-rwxr-xr-x[-rw-r--r--]xicc/tiffgmts.c0
-rwxr-xr-x[-rw-r--r--]xicc/transplot.c0
-rwxr-xr-x[-rw-r--r--]xicc/xcal.c0
-rwxr-xr-x[-rw-r--r--]xicc/xcal.h0
-rwxr-xr-x[-rw-r--r--]xicc/xcam.c8
-rwxr-xr-x[-rw-r--r--]xicc/xcam.h5
-rwxr-xr-x[-rw-r--r--]xicc/xcolorants.c0
-rwxr-xr-x[-rw-r--r--]xicc/xcolorants.h0
-rwxr-xr-x[-rw-r--r--]xicc/xcolorantslu.c0
-rwxr-xr-x[-rw-r--r--]xicc/xdevlin.c0
-rwxr-xr-x[-rw-r--r--]xicc/xdevlin.h0
-rwxr-xr-x[-rw-r--r--]xicc/xdgb.c0
-rwxr-xr-x[-rw-r--r--]xicc/xdgb.h0
-rwxr-xr-x[-rw-r--r--]xicc/xfbview.c0
-rwxr-xr-x[-rw-r--r--]xicc/xfit.c1
-rwxr-xr-x[-rw-r--r--]xicc/xfit.h1
-rwxr-xr-x[-rw-r--r--]xicc/xicc.c72
-rwxr-xr-x[-rw-r--r--]xicc/xicc.h23
-rwxr-xr-x[-rw-r--r--]xicc/xicclu.c59
-rwxr-xr-x[-rw-r--r--]xicc/xlut.c41
-rwxr-xr-x[-rw-r--r--]xicc/xlutfix.c0
-rwxr-xr-x[-rw-r--r--]xicc/xmatrix.c16
-rwxr-xr-x[-rw-r--r--]xicc/xmono.c2
-rwxr-xr-x[-rw-r--r--]xicc/xspect.c4584
-rwxr-xr-x[-rw-r--r--]xicc/xspect.h78
-rwxr-xr-x[-rw-r--r--]xicc/xutils.c0
-rwxr-xr-x[-rw-r--r--]xicc/xutils.h0
70 files changed, 2557 insertions, 2779 deletions
diff --git a/xicc/Jamfile b/xicc/Jamfile
index 169b471..29fcbf4 100644..100755
--- a/xicc/Jamfile
+++ b/xicc/Jamfile
@@ -39,6 +39,8 @@ LINKLIBS = libxicc ../spectro/libinsttypes ../gamut/libgamut ../rspl/librspl
../numlib/libnum ../numlib/libui
$(TIFFLIB) $(JPEGLIB) ;
+LINKFLAGS += $(GUILINKFLAGS) ;
+
# Not created yet
#Main xicctest : xicctest.c ;
@@ -145,10 +147,14 @@ if [ GLOB [ NormPaths . ] : cam16.c ] {
Main cam16vecplot : cam16vecplot.c cam16.c ;
}
+#Main Lpttune : Lpttune.c ;
+
if $(BUILD_JUNK) {
LINKLIBS += ../render/librender ;
+ Main Lpttune : Lpttune.c ;
+
Main illlocus : illlocus.c ;
Main illlocus2 : illlocus2.c ;
diff --git a/xicc/License.txt b/xicc/License.txt
index a871fcf..a871fcf 100644..100755
--- a/xicc/License.txt
+++ b/xicc/License.txt
diff --git a/xicc/Readme.txt b/xicc/Readme.txt
index f4a303a..f4a303a 100644..100755
--- a/xicc/Readme.txt
+++ b/xicc/Readme.txt
diff --git a/xicc/afiles b/xicc/afiles
index f2b84ad..f2b84ad 100644..100755
--- a/xicc/afiles
+++ b/xicc/afiles
diff --git a/xicc/bt1886.c b/xicc/bt1886.c
index ddd6066..ddd6066 100644..100755
--- a/xicc/bt1886.c
+++ b/xicc/bt1886.c
diff --git a/xicc/bt1886.h b/xicc/bt1886.h
index f14efdc..f14efdc 100644..100755
--- a/xicc/bt1886.h
+++ b/xicc/bt1886.h
diff --git a/xicc/cam02.c b/xicc/cam02.c
index a79aae1..db9c325 100644..100755
--- a/xicc/cam02.c
+++ b/xicc/cam02.c
@@ -197,7 +197,7 @@ double minj = 1e38, maxj = -1e38;
static void cam_free(cam02 *s);
static int set_view(struct _cam02 *s, ViewingCondition Ev, double Wxyz[3],
double La, double Yb, double Lv, double Yf, double Yg, double Gxyz[3],
- int hk, double hkscale);
+ int hk, double hkscale, double mtaf, double Wxyz2[3]);
static int XYZ_to_cam(struct _cam02 *s, double *Jab, double *xyz);
static int cam_to_XYZ(struct _cam02 *s, double *xyz, double *Jab);
@@ -292,7 +292,9 @@ double Yg, /* Flare as a fraction of the adapting/surround (Y range 0.0 .. 1.0)
double Gxyz[3], /* The Glare white coordinates (typically the Ambient color) */
/* If <= 0 will Wxyz will be used. */
int hk, /* Flag, NZ to use Helmholtz-Kohlrausch effect */
-double hkscale /* HK effect scaling factor */
+double hkscale, /* HK effect scaling factor */
+double mtaf, /* Mid tone partial adapation factor from Wxyz to Wxyz2, <= 0.0 if none */
+double Wxyz2[3] /* Mid tone Adapted White XYZ (Y range 0.0 .. 1.0) */
) {
double tt, t1, t2;
double tm[3][3];
@@ -383,6 +385,24 @@ double hkscale /* HK effect scaling factor */
}
s->hk = hk;
s->hkscale = hkscale;
+ if (mtaf > 0.0 && Wxyz2 != NULL) { /* Mid tone Adaption hack enabled */
+ if (mtaf > 1.0)
+ mtaf = 1.0;
+ s->mtaf = mtaf;
+ s->Wxyz2[0] = Wxyz2[0]/Wxyz2[1] * Wxyz[1]; /* Normalize scale */
+ s->Wxyz2[2] = Wxyz2[2]/Wxyz2[1] * Wxyz[1];
+ s->Wxyz2[1] = Wxyz[1];
+ s->mtap = (4.0 * mtaf); /* 0.5 -> pow 4 */
+ s->mtap *= s->mtaf;
+ s->pmta_en = 1;
+ } else {
+ s->mtaf = mtaf;
+ s->Wxyz2[0] = Wxyz[0];
+ s->Wxyz2[1] = Wxyz[1];
+ s->Wxyz2[2] = Wxyz[2];
+ s->mtap = 1.0;
+ s->pmta_en = 0;
+ }
/* The rgba vectors */
s->Va[0] = 1.0;
@@ -432,10 +452,16 @@ double hkscale /* HK effect scaling factor */
s->rgbW[0] = 0.7328 * s->Wxyz[0] + 0.4296 * s->Wxyz[1] - 0.1624 * s->Wxyz[2];
s->rgbW[1] = -0.7036 * s->Wxyz[0] + 1.6975 * s->Wxyz[1] + 0.0061 * s->Wxyz[2];
s->rgbW[2] = 0.0000 * s->Wxyz[0] + 0.0000 * s->Wxyz[1] + 1.0000 * s->Wxyz[2];
+ s->rgbW2[0] = 0.7328 * s->Wxyz2[0] + 0.4296 * s->Wxyz2[1] - 0.1624 * s->Wxyz2[2];
+ s->rgbW2[1] = -0.7036 * s->Wxyz2[0] + 1.6975 * s->Wxyz2[1] + 0.0061 * s->Wxyz2[2];
+ s->rgbW2[2] = 0.0000 * s->Wxyz2[0] + 0.0000 * s->Wxyz2[1] + 1.0000 * s->Wxyz2[2];
#else
s->rgbW[0] = s->Wxyz[0];
s->rgbW[1] = s->Wxyz[1];
s->rgbW[2] = s->Wxyz[2];
+ s->rgbW2[0] = s->Wxyz2[0];
+ s->rgbW2[1] = s->Wxyz2[1];
+ s->rgbW2[2] = s->Wxyz2[2];
#endif
/* Degree of chromatic adaptation */
@@ -445,11 +471,17 @@ double hkscale /* HK effect scaling factor */
s->Drgb[0] = s->D * (s->Wxyz[1]/s->rgbW[0]) + 1.0 - s->D;
s->Drgb[1] = s->D * (s->Wxyz[1]/s->rgbW[1]) + 1.0 - s->D;
s->Drgb[2] = s->D * (s->Wxyz[1]/s->rgbW[2]) + 1.0 - s->D;
+ s->Drgb2[0] = s->D * (s->Wxyz2[1]/s->rgbW2[0]) + 1.0 - s->D;
+ s->Drgb2[1] = s->D * (s->Wxyz2[1]/s->rgbW2[1]) + 1.0 - s->D;
+ s->Drgb2[2] = s->D * (s->Wxyz2[1]/s->rgbW2[2]) + 1.0 - s->D;
- /* Chromaticaly transformed white value */
+ /* Chromaticaly transformed sharpened white value */
s->rgbcW[0] = s->Drgb[0] * s->rgbW[0];
s->rgbcW[1] = s->Drgb[1] * s->rgbW[1];
s->rgbcW[2] = s->Drgb[2] * s->rgbW[2];
+ s->rgbcW2[0] = s->Drgb2[0] * s->rgbW2[0];
+ s->rgbcW2[1] = s->Drgb2[1] * s->rgbW2[1];
+ s->rgbcW2[2] = s->Drgb2[2] * s->rgbW2[2];
#ifndef DISABLE_HPE
/* Transform from spectrally sharpened, to Hunt-Pointer_Estevez cone space */
@@ -462,10 +494,22 @@ double hkscale /* HK effect scaling factor */
s->rgbpW[2] = -0.0096276087384294 * s->rgbcW[0]
- 0.0056980312161134 * s->rgbcW[1]
+ 1.0153256399545427 * s->rgbcW[2];
+ s->rgbpW2[0] = 0.7409744840453773 * s->rgbcW2[0]
+ + 0.2180245944753982 * s->rgbcW2[1]
+ + 0.0410009214792244 * s->rgbcW2[2];
+ s->rgbpW2[1] = 0.2853532916858801 * s->rgbcW2[0]
+ + 0.6242015741188157 * s->rgbcW2[1]
+ + 0.0904451341953042 * s->rgbcW2[2];
+ s->rgbpW2[2] = -0.0096276087384294 * s->rgbcW2[0]
+ - 0.0056980312161134 * s->rgbcW2[1]
+ + 1.0153256399545427 * s->rgbcW2[2];
#else
s->rgbpW[0] = s->rgbcW[0];
s->rgbpW[1] = s->rgbcW[1];
s->rgbpW[2] = s->rgbcW[2];
+ s->rgbpW2[0] = s->rgbcW2[0];
+ s->rgbpW2[1] = s->rgbcW2[1];
+ s->rgbpW2[2] = s->rgbcW2[2];
#endif /* DISABLE_HPE */
#ifndef DISABLE_SCR
@@ -479,6 +523,7 @@ double hkscale /* HK effect scaling factor */
s->cc[1][0] = 0.0; s->cc[1][1] = 1.0; s->cc[1][2] = 0.0;
s->cc[2][0] = 0.0; s->cc[2][1] = 0.0; s->cc[2][2] = 1.0;
#endif
+ icmCpy3x3(s->cc2, s->cc);
/* Chromaticaly transformed sample value */
icmSetUnity3x3(tm);
@@ -487,6 +532,11 @@ double hkscale /* HK effect scaling factor */
tm[2][2] = s->Drgb[2];
icmMul3x3(s->cc, tm);
+ tm[0][0] = s->Drgb2[0];
+ tm[1][1] = s->Drgb2[1];
+ tm[2][2] = s->Drgb2[2];
+ icmMul3x3(s->cc2, tm);
+
#ifndef DISABLE_HPE
/* Transform from spectrally sharpened, to Hunt-Pointer_Estevez cone space */
tm[0][0] = 0.7409744840453773;
@@ -499,10 +549,12 @@ double hkscale /* HK effect scaling factor */
tm[2][1] = -0.0056980312161134;
tm[2][2] = 1.0153256399545427;
icmMul3x3(s->cc, tm);
+ icmMul3x3(s->cc2, tm);
#endif /* DISABLE_HPE */
/* Create inverse combined cone and chromatic transform matrix: */
icmInverse3x3(s->icc, s->cc); /* Hmm. we assume it cannot fail */
+ icmInverse3x3(s->icc2, s->cc2);
#ifdef ENABLE_COMPR
/* Compression ranges */
@@ -594,6 +646,11 @@ double hkscale /* HK effect scaling factor */
printf("Base exponential nonlinearity z = %f\n", s->z);
printf("Post adapted cone response white rgbaW = %f %f %f\n", s->rgbaW[0], s->rgbaW[1], s->rgbaW[2]);
printf("Achromatic response of white Aw = %f\n", s->Aw);
+ if (s->pmta_en) {
+ printf("Mid tone partial adapation factor = %f\n", s->mtaf);
+ printf("Mid tone Adapted White Wxyz2 = %f %f %f\n", s->Wxyz2[0], s->Wxyz2[1], s->Wxyz2[2]);
+ printf("Mid tone partial adapation power = %f\n", s->mtap);
+ }
printf("\n");
#endif
return 0;
@@ -644,6 +701,23 @@ double XYZ[3]
/* all in one step. */
icmMulBy3x3(rgbp, s->cc, xyz);
+ /* Partial mid-tone adapation hack. */
+ /* Blend between two adapation states along Y */
+ if (s->pmta_en) {
+ double rgbp2[3], t;
+
+//printf("\nIn xyz %f %f %f\n",xyz[0], xyz[1], xyz[2]);
+ icmMulBy3x3(rgbp2, s->cc2, xyz);
+ t = xyz[1]/s->Wxyz[1];
+ if (t < 0.0)
+ t = 0.0;
+ else if (t > 1.0)
+ t = 1.0;
+ t = pow(t, s->mtap);
+//printf("Blend %f from %f %f %f and %f %f %f\n",t, rgbp2[0], rgbp2[1], rgbp2[2], rgbp[0], rgbp[1], rgbp[2]);
+ icmBlend3(rgbp, rgbp2, rgbp, t);
+ }
+
TRACE(("rgbp = %f %f %f\n", rgbp[0], rgbp[1], rgbp[2]))
#ifdef ENABLE_COMPR
@@ -1299,7 +1373,52 @@ double Jab[3]
/* Chromaticaly transformed sample value */
/* Spectrally sharpened cone responses */
/* XYZ values */
- icmMulBy3x3(xyz, s->icc, rgbp);
+ if (!s->pmta_en) {
+ icmMulBy3x3(xyz, s->icc, rgbp);
+
+ /* Partial mid-tone adapation hack. */
+ } else {
+ double xyz1[3], xyz2[3], t;
+ int i;
+
+ /* Aprox bwd transform to compute starting value */
+ icmMulBy3x3(xyz1, s->icc, rgbp);
+ icmMulBy3x3(xyz2, s->icc2, rgbp);
+ t = 0.5 * (xyz1[1] + xyz2[1])/s->Wxyz[1];
+ if (t < 0.0)
+ t = 0.0;
+ else if (t > 1.0)
+ t = 1.0;
+ t = pow(t, s->mtap);
+ icmBlend3(xyz, xyz2, xyz1, t);
+
+ /* Simple Newton itteration to more accurately invert */
+ for (i = 0; i < 5; i++) {
+ double rgbp0[3], rgbp1[3], rgbp2[3];
+ double rgbd[3], xyzd0[3], xyzd1[3], xyzd2[3];
+
+ /* Fwd transform */
+ icmMulBy3x3(rgbp1, s->cc, xyz);
+ icmMulBy3x3(rgbp2, s->cc2, xyz);
+ t = xyz[1]/s->Wxyz[1];
+ if (t < 0.0)
+ t = 0.0;
+ else if (t > 1.0)
+ t = 1.0;
+ t = pow(t, s->mtap);
+ icmBlend3(rgbp0, rgbp2, rgbp1, t);
+
+ icmSub3(rgbd, rgbp, rgbp0); /* Error to input value */
+
+ /* Bwd transform of error */
+ icmMulBy3x3(xyzd1, s->icc, rgbd);
+ icmMulBy3x3(xyzd2, s->icc2, rgbd);
+ icmBlend3(xyzd0, xyzd2, xyzd1, t);
+
+ /* Adjust solution for error */
+ icmAdd3(xyz, xyz, xyzd0);
+ }
+ }
TRACE(("XYZ = %f %f %f\n",xyz[0], xyz[1], xyz[2]))
diff --git a/xicc/cam02.h b/xicc/cam02.h
index 9550bd5..bf9d9c9 100644..100755
--- a/xicc/cam02.h
+++ b/xicc/cam02.h
@@ -143,7 +143,10 @@ struct _cam02 {
double Gxyz[3], /* The Glare white coordinates (ie. the Ambient color) */
/* If <= 0 will Wxyz will be used. */
int hk, /* Flag, NZ to use Helmholtz-Kohlrausch effect */
- double hkscale /* HK effect scaling factor */
+ double hkscale, /* HK effect scaling factor */
+
+ double mtaf, /* Mid tone partial adapation factor from Wxyz to Wxyz2, <= 0.0 if none */
+ double Wxyz2[3] /* Mid tone Adapted White XYZ (Y range 0.0 .. 1.0) */
);
/* Conversions. Return nz on error */
@@ -161,6 +164,10 @@ struct _cam02 {
double Yg; /* Glare as a fraction of the adapting/surround (Y range 0.0 .. 1.0) */
double Gxyz[3]; /* The Glare white coordinates (typically the Ambient color) */
+ /* Partial mid-tone adapation hack parameters */
+ double Wxyz2[3];/* Mid tone Adapted White XYZ (Y range 0.0 .. 1.0) */
+ double mtaf; /* Mid tone blend factor between Wxyz and Wxyz2 */
+
/* Internal parameters */
double C; /* Surround Impact */
double Nc; /* Chromatic Induction */
@@ -194,6 +201,16 @@ struct _cam02 {
double nluxslope; /* Non-linearity slope at upper crossover to linear */
double lA; /* JLIMIT Limited A */
+ /* Partial mid-tone adapation hack pre-computed values */
+ int pmta_en; /* NZ if enabled */
+ double mtap; /* Mid tone blend rate (power) between Wxyz and Wxyz2 */
+ double rgbW2[3]; /* Mid etone sharpened cone response white values */
+ double Drgb2[3]; /* Mid tone chromatic transformation value */
+ double rgbcW2[3]; /* Mid tone chromatically transformed white value */
+ double rgbpW2[3]; /* Mid tone hunt-Pointer-Estevez cone response space white */
+ double cc2[3][3]; /* Mide tone forward cone and chromatic transform */
+ double icc2[3][3]; /* Mide tone reverse cone and chromatic transform */
+
/* Option flags, code not always enabled */
int hk; /* Use Helmholtz-Kohlrausch effect */
int hkscale; /* [1.0] Scale HK effect up/down from default */
diff --git a/xicc/cam02plot.c b/xicc/cam02plot.c
index 16b5aa5..57b7835 100644..100755
--- a/xicc/cam02plot.c
+++ b/xicc/cam02plot.c
@@ -578,7 +578,9 @@ main(int argc, char *argv[]) {
0.00, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
white[4], /* The Glare color coordinates (typically the Ambient color) */
use_hk, /* use Helmholtz-Kohlraush flag */
- 1.0 /* HK scaling factor */
+ 1.0, /* HK scaling factor */
+ 0.0, /* No mid-tone hack */
+ NULL
);
/* Setup cam to convert from Jab */
@@ -597,7 +599,9 @@ main(int argc, char *argv[]) {
0.00, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
white[4], /* The Glare color coordinates (typically the Ambient color) */
use_hk, /* use Helmholtz-Kohlraush flag */
- 1.0 /* HK scaling factor */
+ 1.0, /* HK scaling factor */
+ 0.0, /* No mid-tone hack */
+ NULL
);
/* Figure out the size of the raster */
diff --git a/xicc/cam02ref.h b/xicc/cam02ref.h
index 28c3fd3..d890c31 100644..100755
--- a/xicc/cam02ref.h
+++ b/xicc/cam02ref.h
@@ -45,7 +45,10 @@ struct _cam02ref {
double Yf, /* Flare as a fraction of the reference white (range 0.0 .. 1.0) */
double Yg, /* Glare as a fraction of the adapting/surround (range 0.0 .. 1.0) */
double Gxyz[3], /* The Glare white coordinates (typically the Ambient color) */
- int hk /* Flag, NZ to use Helmholtz-Kohlraush effect */
+ int hk, /* Flag, NZ to use Helmholtz-Kohlraush effect */
+ double hkscale, /* HK effect scaling factor */
+ double mtaf, /* Mid tone partial adapation factor from Wxyz to Wxyz2, <= 0.0 if none */
+ double Wxyz2[3] /* Mid tone Adapted White XYZ (Y range 0.0 .. 1.0) */
);
/* Conversions */
@@ -125,7 +128,7 @@ double Lv /* Luminence of white in the Viewing/Scene/Image field (cd/m^2) */
static void cam02ref_free(cam02ref *s);
static int cam02ref_set_view(cam02ref *s, ViewingCondition Ev, double Wxyz[3],
double Yb, double La, double Lv, double Yf, double Yg, double Gxyz[3],
- int hk, double hkscale);
+ int hk, double hkscale, double mtaf, double Wxyz2[3]);
static int cam02ref_XYZ_to_cam(cam02ref *s, double *Jab, double *xyz);
static int cam02ref_cam_to_XYZ(cam02ref *s, double XYZ[3], double Jab[3]);
@@ -164,7 +167,9 @@ double Yf, /* Flare as a fraction of the reference white (Y range 0.0 .. 1.0) *
double Yg, /* Glare as a fraction of the adapting/surround (Y range 0.0 .. 1.0) */
double Gxyz[3], /* The Glare white coordinates (typically the Ambient color) */
int hk, /* Flag, NZ to use Helmholtz-Kohlraush effect */
-double hkscale /* HK effect scaling factor */
+double hkscale, /* HK effect scaling factor */
+double mtaf, /* Mid tone partial adapation factor from Wxyz to Wxyz2, <= 0.0 if none */
+double Wxyz2[3] /* Mid tone Adapted White XYZ (Y range 0.0 .. 1.0) */
) {
double tt;
diff --git a/xicc/cam02test.c b/xicc/cam02test.c
index fb7d98e..2b57b05 100644..100755
--- a/xicc/cam02test.c
+++ b/xicc/cam02test.c
@@ -407,7 +407,10 @@ main(void) {
tFlair[c], /* Flare as a fraction of the reference white (Y range 0.0 .. 1.0) */
0.00, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
twhite[c], /* The Flare color coordinates (typically the Ambient color) */
- USE_HK /* use Helmholtz-Kohlraush flag */
+ USE_HK, /* use Helmholtz-Kohlraush flag */
+ 1.0,
+ 0.0,
+ NULL
);
cam->set_view(
cam,
@@ -419,7 +422,10 @@ main(void) {
tFlair[c], /* Flare as a fraction of the reference white (Y range 0.0 .. 1.0) */
0.00, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
twhite[c], /* The Flare color coordinates (typically the Ambient color) */
- USE_HK /* use Helmholtz-Kohlraush flag */
+ USE_HK, /* use Helmholtz-Kohlraush flag */
+ 1.0,
+ 0.0,
+ NULL
);
camr->nldlimit = cam->nldlimit;
camr->jlimit = cam->jlimit;
@@ -563,7 +569,9 @@ main(void) {
0.00, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
sp_white[c],/* The Glare color coordinates (typically the Ambient color) */
USE_HK, /* use Helmholtz-Kohlraush flag */
- 1.0 /* Normal Helmholtz-Kohlraush scale */
+ 1.0, /* Normal Helmholtz-Kohlraush scale */
+ 0.0, /* No mid-tone hack */
+ NULL
);
cam->set_view(
@@ -577,7 +585,9 @@ main(void) {
0.00, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
sp_white[c],/* The Glare color coordinates (typically the Ambient color) */
USE_HK, /* use Helmholtz-Kohlraush flag */
- 1.0 /* Normal Helmholtz-Kohlraush scale */
+ 1.0, /* Normal Helmholtz-Kohlraush scale */
+ 0.0, /* No mid-tone hack */
+ NULL
);
camr->nldlimit = cam->nldlimit;
@@ -719,7 +729,9 @@ main(void) {
0.00, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
white[c], /* The Glare color coordinates (typically the Ambient color) */
USE_HK, /* use Helmholtz-Kohlraush flag */
- 1.0 /* Normal Helmholtz-Kohlraush scale */
+ 1.0, /* Normal Helmholtz-Kohlraush scale */
+ 0.0, /* No mid-tone hack */
+ NULL
);
cam->set_view(
@@ -733,7 +745,9 @@ main(void) {
0.00, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
white[c], /* The Glare color coordinates (typically the Ambient color) */
USE_HK, /* use Helmholtz-Kohlraush flag */
- 1.0 /* Normal Helmholtz-Kohlraush scale */
+ 1.0, /* Normal Helmholtz-Kohlraush scale */
+ 0.0, /* No mid-tone hack */
+ NULL
);
/* Make reference return error where it's going to disagree with implementation */
@@ -955,8 +969,10 @@ main(void) {
0.0, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
white[c], /* The Glare color coordinates (typically the Ambient color) */
USE_HK, /* use Helmholtz-Kohlraush flag */
- 1.0 /* Normal Helmholtz-Kohlraush scale */
- );
+ 1.0, /* Normal Helmholtz-Kohlraush scale */
+ 0.0, /* No mid-tone hack */
+ NULL
+ );
#ifdef INVTEST1
/* Test case */
@@ -1138,8 +1154,10 @@ main(void) {
0.0, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */
white[c], /* The Glare color coordinates (typically the Ambient color) */
USE_HK, /* use Helmholtz-Kohlraush flag */
- 1.0 /* Normal Helmholtz-Kohlraush scale */
- );
+ 1.0, /* Normal Helmholtz-Kohlraush scale */
+ 0.0, /* No mid-tone hack */
+ NULL
+ );
#ifdef TESTINV1
/* Double sample test case */
diff --git a/xicc/cam97s3.c b/xicc/cam97s3.c
index d75b33e..d75b33e 100644..100755
--- a/xicc/cam97s3.c
+++ b/xicc/cam97s3.c
diff --git a/xicc/cam97s3.h b/xicc/cam97s3.h
index 9893ea4..9893ea4 100644..100755
--- a/xicc/cam97s3.h
+++ b/xicc/cam97s3.h
diff --git a/xicc/cam97test.c b/xicc/cam97test.c
index ff71bc8..ff71bc8 100644..100755
--- a/xicc/cam97test.c
+++ b/xicc/cam97test.c
diff --git a/xicc/ccmx.c b/xicc/ccmx.c
index 7206f31..7206f31 100644..100755
--- a/xicc/ccmx.c
+++ b/xicc/ccmx.c
diff --git a/xicc/ccmx.h b/xicc/ccmx.h
index 03d29d1..03d29d1 100644..100755
--- a/xicc/ccmx.h
+++ b/xicc/ccmx.h
diff --git a/xicc/ccss.c b/xicc/ccss.c
index aae278e..aae278e 100644..100755
--- a/xicc/ccss.c
+++ b/xicc/ccss.c
diff --git a/xicc/ccss.h b/xicc/ccss.h
index dbcfbc1..dbcfbc1 100644..100755
--- a/xicc/ccss.h
+++ b/xicc/ccss.h
diff --git a/xicc/ccttest.c b/xicc/ccttest.c
index 1b859b5..f7f4363 100644..100755
--- a/xicc/ccttest.c
+++ b/xicc/ccttest.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <math.h>
+#include "cgats.h"
#include "xspect.h"
#include "numlib.h"
#include "plot.h"
@@ -49,8 +50,8 @@ static int do_spec(char *name, xspect *sp) {
printf("\n");
- /* Compute XYZ of illuminant */
- if (icx_ill_sp2XYZ(xyz, icxOT_CIE_1931_2, NULL, icxIT_custom, 0, sp) != 0)
+ /* Compute normalise XYZ of illuminant */
+ if (icx_ill_sp2XYZ(xyz, icxOT_CIE_1931_2, NULL, icxIT_custom, 0, sp, 0) != 0)
error ("icx_sp_temp2XYZ returned error");
icmXYZ2Yxy(Yxy, xyz);
diff --git a/xicc/cgatsplot.c b/xicc/cgatsplot.c
index ccaa28a..bb598fc 100644..100755
--- a/xicc/cgatsplot.c
+++ b/xicc/cgatsplot.c
@@ -33,7 +33,8 @@ void usage(void) {
fprintf(stderr,"Author: Graeme W. Gill\n");
fprintf(stderr,"usage: cgatssplot [-v] infile\n");
fprintf(stderr," -v verbose\n");
- fprintf(stderr," -0 .. -9 Choose channel to plot against\n");
+ fprintf(stderr," -x plot XYZ");
+ fprintf(stderr," -0 .. -9 Choose channel to plot against (dflt: index)\n");
exit(1);
}
@@ -51,21 +52,22 @@ main(
) {
int fa,nfa; /* argument we're looking at */
int verb = 0;
- int chan = 0; /* Chosen channel to plot against */
+ int chan = -1; /* Chosen channel to plot against, -1 for index */
char in_name[100];
char *buf, *outc;
int ti;
cgats *cgf = NULL; /* cgats file data */
int isLab = 0; /* cgats output is Lab, else XYZ */
+ int wantLab = 1; /* cgats output is Lab, else XYZ */
char *xyzfname[3] = { "XYZ_X", "XYZ_Y", "XYZ_Z" };
char *labfname[3] = { "LAB_L", "LAB_A", "LAB_B" };
int npat; /* Number of patches */
inkmask nmask; /* Device inkmask */
int nchan; /* Number of input chanels */
char *bident; /* Base ident */
- int chix[ICX_MXINKS]; /* Device chanel indexes */
- int pcsix[3]; /* Device chanel indexes */
+ int chix[ICX_MXINKS]; /* Device chanel indexes */
+ int pcsix[3]; /* Device chanel indexes */
pval *pat; /* patch values */
int i, j;
@@ -92,10 +94,14 @@ main(
}
/* Verbosity */
- if (argv[fa][1] == 'v' || argv[fa][1] == 'V') {
+ if (argv[fa][1] == 'v') {
verb = 1;
}
+ else if (argv[fa][1] == 'x') {
+ wantLab = 0;
+ }
+
else if (argv[fa][1] >= '0' && argv[fa][1] <= '9') {
chan = argv[fa][1] - '0';
}
@@ -196,18 +202,30 @@ main(
pat[i].v[1] /= 100.0;
pat[i].v[2] /= 100.0;
}
- if (!isLab) { /* Convert test patch result XYZ to PCS (D50 Lab) */
+ if (wantLab && !isLab) { /* Convert test patch result XYZ to PCS (D50 Lab) */
icmXYZ2Lab(&icmD50, pat[i].v, pat[i].v);
+ } else if (!wantLab && isLab) {
+ icmLab2XYZ(&icmD50, pat[i].v, pat[i].v);
+ }
+ if (!wantLab) {
+ pat[i].v[0] *= 100.0; /* Normalise XYZ to range 0.0 - 100.0 */
+ pat[i].v[1] *= 100.0;
+ pat[i].v[2] *= 100.0;
}
for (j = 0; j < nchan; j++) {
pat[i].d[j] = *((double *)cgf->t[0].fdata[i][chix[j]]);
}
}
+ isLab = wantLab;
+#ifdef NEVER
/* Sort by the selected channel */
+ if (chan >= 0 && chan < nchan) {
#define HEAP_COMPARE(A,B) (A.d[chan] < B.d[chan])
- HEAPSORT(pval, pat, npat);
+ HEAPSORT(pval, pat, npat);
#undef HEAP_COMPARE
+ }
+#endif
/* Create the plot */
{
@@ -226,13 +244,22 @@ main(
if ((y2 = (double *)malloc(sizeof(double) * npat)) == NULL)
error("Malloc failed - y2[]");
+printf("~1 chan = %d\n",chan);
for (i = 0; i < npat; i++) {
- xx[i] = pat[i].d[chan];
- y0[i] = pat[i].v[0];
- y1[i] = 50 + pat[i].v[1]/2.0;
- y2[i] = 50 + pat[i].v[2]/2.0;
-
-// printf("~1 %d: xx = %f, y = %f %f %f\n",i,xx[i],y0[i],y1[i],y2[i]);
+ if (chan >= 0 && chan < nchan)
+ xx[i] = pat[i].d[chan];
+ else
+ xx[i] = (double)i;
+ if (isLab) {
+ y0[i] = pat[i].v[0];
+ y1[i] = 50.0 + pat[i].v[1]/2.0;
+ y2[i] = 50.0 + pat[i].v[2]/2.0;
+ } else {
+ y0[i] = pat[i].v[0];
+ y1[i] = pat[i].v[1];
+ y2[i] = pat[i].v[2];
+ }
+ printf("~1 %d: xx = %f, y = %f %f %f\n",i,xx[i],y0[i],y1[i],y2[i]);
}
do_plot6(xx,y0,y1,NULL,NULL,y2,NULL,npat);
diff --git a/xicc/cv.c b/xicc/cv.c
index 7cd7927..7cd7927 100644..100755
--- a/xicc/cv.c
+++ b/xicc/cv.c
diff --git a/xicc/cvtest.c b/xicc/cvtest.c
index a9fa59f..a9fa59f 100644..100755
--- a/xicc/cvtest.c
+++ b/xicc/cvtest.c
diff --git a/xicc/example.sp b/xicc/example.sp
index 57cfcfc..57cfcfc 100644..100755
--- a/xicc/example.sp
+++ b/xicc/example.sp
diff --git a/xicc/extracticc.c b/xicc/extracticc.c
index 5fc24af..5fc24af 100644..100755
--- a/xicc/extracticc.c
+++ b/xicc/extracticc.c
diff --git a/xicc/extractttag.c b/xicc/extractttag.c
index 98c7835..98c7835 100644..100755
--- a/xicc/extractttag.c
+++ b/xicc/extractttag.c
diff --git a/xicc/fakeCMY.c b/xicc/fakeCMY.c
index 0863cfb..0863cfb 100644..100755
--- a/xicc/fakeCMY.c
+++ b/xicc/fakeCMY.c
diff --git a/xicc/fbview.c b/xicc/fbview.c
index 482ba5f..482ba5f 100644..100755
--- a/xicc/fbview.c
+++ b/xicc/fbview.c
diff --git a/xicc/iccgamut.c b/xicc/iccgamut.c
index ecbab7f..a7f11fe 100644..100755
--- a/xicc/iccgamut.c
+++ b/xicc/iccgamut.c
@@ -88,6 +88,10 @@ void usage(char *diag) {
fprintf(stderr," g:glare Flare light %% of ambient (default %d)\n",XICC_DEFAULT_GLARE);
fprintf(stderr," g:X:Y:Z Flare color as XYZ (default media white, Abs: D50)\n");
fprintf(stderr," g:x:y Flare color as x, y\n");
+ fprintf(stderr," h:hkscale Helmholtz-Kohlrausch effect scale factor (default 1.0)\n");
+ fprintf(stderr," m:mtaf Mid-tone partial adaptation factor (default 0.0)\n");
+ fprintf(stderr," m:X:Y:Z Mid-tone Adaptation white as XYZ (default D50)\n");
+ fprintf(stderr," m:x:y Mid-tone Adaptation white as x, y\n");
fprintf(stderr," -x pcent Expand/compress gamut cylindrically by percent\n");
fprintf(stderr," -s Create special cube surface topology plot\n");
fprintf(stderr,"\n");
@@ -126,6 +130,9 @@ main(int argc, char *argv[]) {
double vc_g = -1.0; /* Glare % overide */
double vc_gXYZ[3] = {-1.0, -1.0, -1.0}; /* Glare color override in XYZ */
double vc_gxy[2] = {-1.0, -1.0}; /* Glare color override in x,y */
+ double vc_hkscale = -1.0; /* HK scaling factor */
+ double vc_mtaf = -1.0; /* Mid tone partial adapation factor from Wxyz to Wxyz2 */
+ double vc_Wxyz2[3] = {-1.0, -1.0, -1.0}; /* Adapted white override in XYZ */
double expand = 1.0; /* Expand gamut cylindrically */
icxLuBase *luo;
@@ -362,6 +369,20 @@ main(int argc, char *argv[]) {
vc_g = x;
} else
usage("Unrecognised parameters after -cg");
+ } else if (na[0] == 'h' || na[0] == 'H') {
+ if (na[1] != ':')
+ usage("Unrecognised parameters after -ch");
+ vc_hkscale = atof(na+2);
+ } else if (na[0] == 'm' || na[0] == 'M') {
+ double x, y, z;
+ if (sscanf(na+1,":%lf:%lf:%lf",&x,&y,&z) == 3) {
+ vc_Wxyz2[0] = x; vc_Wxyz2[1] = y; vc_Wxyz2[2] = z;
+ } else if (sscanf(na+1,":%lf:%lf",&x,&y) == 2) {
+ vc_Wxyz2[0] = x; vc_Wxyz2[1] = y; vc_Wxyz2[2] = -1;
+ } else if (sscanf(na+1,":%lf",&x) == 1) {
+ vc_mtaf = x;
+ } else
+ usage("Unrecognised parameters after -cm");
} else
usage("Unrecognised parameters after -c");
}
@@ -467,6 +488,23 @@ main(int argc, char *argv[]) {
vc.Gxyz[0] = x/y * vc.Gxyz[1];
vc.Gxyz[2] = z/y * vc.Gxyz[1];
}
+ if (vc_hkscale >= 0.0)
+ vc.hkscale = vc_hkscale;
+ if (vc_mtaf >= 0.0)
+ vc.mtaf = vc_mtaf;
+ if (vc_Wxyz2[0] >= 0.0 && vc_Wxyz2[1] > 0.0 && vc_Wxyz2[2] >= 0.0) {
+ /* Normalise XYZ */
+ vc.Wxyz2[0] = vc_Wxyz2[0]/vc_Wxyz2[1] * vc.Wxyz2[1];
+ vc.Wxyz2[2] = vc_Wxyz2[2]/vc_Wxyz2[1] * vc.Wxyz2[1];
+ }
+ if (vc_Wxyz2[0] >= 0.0 && vc_Wxyz2[1] >= 0.0 && vc_Wxyz2[2] < 0.0) {
+ /* Convert Yxy to XYZ */
+ double x = vc_Wxyz2[0];
+ double y = vc_Wxyz2[1]; /* If Y == 1.0, then X+Y+Z = 1/y */
+ double z = 1.0 - x - y;
+ vc.Wxyz2[0] = x/y * vc.Wxyz2[1];
+ vc.Wxyz2[2] = z/y * vc.Wxyz2[1];
+ }
fl |= ICX_CLIP_NEAREST; /* Don't setup rev uncessarily */
diff --git a/xicc/iccjpeg.c b/xicc/iccjpeg.c
index 13d4e25..13d4e25 100644..100755
--- a/xicc/iccjpeg.c
+++ b/xicc/iccjpeg.c
diff --git a/xicc/iccjpeg.h b/xicc/iccjpeg.h
index 5e1888d..5e1888d 100644..100755
--- a/xicc/iccjpeg.h
+++ b/xicc/iccjpeg.h
diff --git a/xicc/icheck.c b/xicc/icheck.c
index 5f61d9a..5f61d9a 100644..100755
--- a/xicc/icheck.c
+++ b/xicc/icheck.c
diff --git a/xicc/monctest.c b/xicc/monctest.c
index a97b1b5..a97b1b5 100644..100755
--- a/xicc/monctest.c
+++ b/xicc/monctest.c
diff --git a/xicc/moncurve.c b/xicc/moncurve.c
index 1769ce4..1769ce4 100644..100755
--- a/xicc/moncurve.c
+++ b/xicc/moncurve.c
diff --git a/xicc/moncurve.h b/xicc/moncurve.h
index 5510c7d..5510c7d 100644..100755
--- a/xicc/moncurve.h
+++ b/xicc/moncurve.h
diff --git a/xicc/mpp.c b/xicc/mpp.c
index 86b6c30..86b6c30 100644..100755
--- a/xicc/mpp.c
+++ b/xicc/mpp.c
diff --git a/xicc/mpp.h b/xicc/mpp.h
index 26fa3a8..26fa3a8 100644..100755
--- a/xicc/mpp.h
+++ b/xicc/mpp.h
diff --git a/xicc/mpplu.c b/xicc/mpplu.c
index 09fe18c..ecc67b0 100644..100755
--- a/xicc/mpplu.c
+++ b/xicc/mpplu.c
@@ -40,7 +40,7 @@ void usage(void) {
fprintf(stderr," -i illum Choose illuminant for print/transparency spectral data:\n");
fprintf(stderr," A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp\n");
fprintf(stderr," -o observ Choose CIE Observer for spectral data:\n");
- fprintf(stderr," 1931_2 (def), 1964_10, S&B 1955_2, shaw, J&V 1978_2\n");
+ fprintf(stderr," 1931_2 (def), 1964_10, 2012_2, 2012_10, S&B 1955_2, shaw, J&V 1978_2 or file.cmf\n");
fprintf(stderr," -u Use Fluorescent Whitening Agent compensation\n");
fprintf(stderr," -g Create gamut output\n");
fprintf(stderr," -w Create gamut %s as well\n",vrml_format());
@@ -86,7 +86,8 @@ main(int argc, char *argv[]) {
int fwacomp = 0; /* FWA compensation */
icxIllumeType illum = icxIT_default; /* Spectral defaults */
xspect cust_illum; /* Custom illumination spectrum */
- icxObserverType observ = icxOT_default;
+ icxObserverType obType = icxOT_default;
+ xspect custObserver[3]; /* If obType = icxOT_custom */
char buf[200];
double in[MAX_CHAN], out[MAX_CHAN];
int rv = 0;
@@ -237,21 +238,30 @@ main(int argc, char *argv[]) {
if (na == NULL) usage();
if (strcmp(na, "1931_2") == 0) { /* Classic 2 degree */
spec = 1;
- observ = icxOT_CIE_1931_2;
+ obType = icxOT_CIE_1931_2;
} else if (strcmp(na, "1964_10") == 0) { /* Classic 10 degree */
spec = 1;
- observ = icxOT_CIE_1964_10;
+ obType = icxOT_CIE_1964_10;
+ } else if (strcmp(na, "2012_2") == 0) { /* Latest 2 degree */
+ spec = 1;
+ obType = icxOT_CIE_2012_2;
+ } else if (strcmp(na, "2012_10") == 0) { /* Latest 10 degree */
+ spec = 1;
+ obType = icxOT_CIE_2012_10;
} else if (strcmp(na, "1955_2") == 0) { /* Stiles and Burch 1955 2 degree */
spec = 1;
- observ = icxOT_Stiles_Burch_2;
+ obType = icxOT_Stiles_Burch_2;
} else if (strcmp(na, "1978_2") == 0) { /* Judd and Voss 1978 2 degree */
spec = 1;
- observ = icxOT_Judd_Voss_2;
+ obType = icxOT_Judd_Voss_2;
} else if (strcmp(na, "shaw") == 0) { /* Shaw and Fairchilds 1997 2 degree */
spec = 1;
- observ = icxOT_Shaw_Fairchild_2;
- } else
- usage();
+ obType = icxOT_Shaw_Fairchild_2;
+ } else { /* Assume it's a filename */
+ obType = icxOT_custom;
+ if (read_cmf(custObserver, na) != 0)
+ usage();
+ }
}
/* Fluerescent Whitner compensation */
@@ -330,7 +340,7 @@ main(int argc, char *argv[]) {
}
/* Select CIE return value details */
- if ((rv = mppo->set_ilob(mppo, illum, &cust_illum, observ, NULL, pcss, fwacomp)) != 0) {
+ if ((rv = mppo->set_ilob(mppo, illum, &cust_illum, obType, custObserver, pcss, fwacomp)) != 0) {
if (rv == 1)
error("Spectral profile needed for custom illuminant, observer or FWA");
error("Error setting illuminant, observer, or FWA");
diff --git a/xicc/revfix.c b/xicc/revfix.c
index ee9662a..ee9662a 100644..100755
--- a/xicc/revfix.c
+++ b/xicc/revfix.c
diff --git a/xicc/specplot.c b/xicc/specplot.c
index 9e43856..de819ed 100644..100755
--- a/xicc/specplot.c
+++ b/xicc/specplot.c
@@ -21,6 +21,7 @@
#include <stdio.h>
#include <math.h>
+#include "cgats.h"
#include "xspect.h"
#include "numlib.h"
#include "plot.h"
@@ -112,10 +113,17 @@ static int do_spec(
|| mt == inst_mrt_emission_flash
|| mt == inst_mrt_ambient_flash) {
- /* Compute XYZ of illuminant */
- if (icx_ill_sp2XYZ(xyz, icxOT_CIE_1931_2, NULL, icxIT_custom, 0, &tsp) != 0)
+ /* Compute absolute XYZ of illuminant */
+ if (icx_ill_sp2XYZ(xyz, icxOT_CIE_1931_2, NULL, icxIT_custom, 0, &tsp, 1) != 0)
warning("icx_ill_sp2XYZ returned error");
+ printf("Abs. Y = %f\n", xyz[1]);
+
+ /* Normalise to Y = 1 */
+ xyz[0] /= xyz[1];
+ xyz[2] /= xyz[1];
+ xyz[1] /= xyz[1];
+
icmXYZ2Yxy(Yxy, xyz);
icmXYZ2Lab(&icmD50, Lab, xyz);
diff --git a/xicc/specsubsamp.c b/xicc/specsubsamp.c
index f4ac1e4..1d6bbde 100644..100755
--- a/xicc/specsubsamp.c
+++ b/xicc/specsubsamp.c
@@ -19,6 +19,7 @@
#include <stdio.h>
#include <math.h>
+#include "cgats.h"
#include "xspect.h"
#include "numlib.h"
#include "ui.h"
@@ -30,7 +31,7 @@ void usage(void) {
fprintf(stderr," -i illum Choose illuminant for print/transparency spectral data:\n");
fprintf(stderr," A, C, D50, D50M2, D65, F5, F8, F10 or file.sp\n");
fprintf(stderr," -o observ Choose CIE Observer for spectral data:\n");
- fprintf(stderr," 1931_2, 1964_10, S&B 1955_2, shaw, J&V 1978_2\n");
+ fprintf(stderr," 1931_2, 1964_10, 2012_2, 2012_10, S&B 1955_2, shaw, J&V 1978_2 or file.cmf\n");
fprintf(stderr," -w st,en,sp Output start, end and spacing nm\n");
fprintf(stderr," -5 Commenf output wavelegths every 5\n");
exit(1);
@@ -45,7 +46,8 @@ main(
int verb = 0;
icxIllumeType illum = icxIT_D50; /* Spectral defaults */
xspect cust_illum; /* Custom illumination spectrum */
- icxObserverType observ = icxOT_CIE_1931_2;
+ icxObserverType obType = icxOT_CIE_1931_2;
+ xspect custObserver[3]; /* If obType = icxOT_custom */
int obs = 0; /* If nz output observer */
double wl_short = 380.0, wl_long = 730.0, wl_width = 10.0;
int wl_n = 0;
@@ -112,21 +114,31 @@ main(
if (na == NULL) usage();
if (strcmp(na, "1931_2") == 0) { /* Classic 2 degree */
obs = 1;
- observ = icxOT_CIE_1931_2;
+ obType = icxOT_CIE_1931_2;
} else if (strcmp(na, "1964_10") == 0) { /* Classic 10 degree */
obs = 1;
- observ = icxOT_CIE_1964_10;
+ obType = icxOT_CIE_1964_10;
+ } else if (strcmp(na, "2012_2") == 0) { /* Latest 2 degree */
+ obs = 1;
+ obType = icxOT_CIE_2012_2;
+ } else if (strcmp(na, "2012_10") == 0) { /* Latest 10 degree */
+ obs = 1;
+ obType = icxOT_CIE_2012_10;
} else if (strcmp(na, "1955_2") == 0) { /* Stiles and Burch 1955 2 degree */
obs = 1;
- observ = icxOT_Stiles_Burch_2;
+ obType = icxOT_Stiles_Burch_2;
} else if (strcmp(na, "1978_2") == 0) { /* Judd and Voss 1978 2 degree */
obs = 1;
- observ = icxOT_Judd_Voss_2;
+ obType = icxOT_Judd_Voss_2;
} else if (strcmp(na, "shaw") == 0) { /* Shaw and Fairchilds 1997 2 degree */
obs = 1;
- observ = icxOT_Shaw_Fairchild_2;
- } else
- usage();
+ obType = icxOT_Shaw_Fairchild_2;
+ } else { /* Assume it's a filename */
+ obs = 1;
+ obType = icxOT_custom;
+ if (read_cmf(custObserver, na) != 0)
+ usage();
+ }
}
else if (argv[fa][1] == 'w' || argv[fa][1] == 'W') {
@@ -163,8 +175,14 @@ main(
int i, j, k;
xspect *sp[3];
- if (standardObserver(sp, observ) != 0)
- error ("standardObserver returned error");
+ if (obType == icxOT_custom) {
+ sp[0] = &custObserver[0];
+ sp[1] = &custObserver[1];
+ sp[2] = &custObserver[2];
+ } else {
+ if (standardObserver(sp, obType) != 0)
+ error ("standardObserver returned error");
+ }
printf("/* %f - %f, %f spacing, %d samples */\n",wl_short,wl_long,wl_width,wl_n);
printf("{\n");
for (k = 0; k < 3; k++) {
diff --git a/xicc/spectest.c b/xicc/spectest.c
index bed19e0..0bcc716 100644..100755
--- a/xicc/spectest.c
+++ b/xicc/spectest.c
@@ -29,6 +29,7 @@
#include <stdio.h>
#include <math.h>
+#include "cgats.h"
#include "xspect.h"
#include "numlib.h"
#ifdef DOPLOT
diff --git a/xicc/spectest2.c b/xicc/spectest2.c
index cec6359..a1c338d 100644..100755
--- a/xicc/spectest2.c
+++ b/xicc/spectest2.c
@@ -25,6 +25,7 @@
#include <stdio.h>
#include <math.h>
+#include "cgats.h"
#include "xspect.h"
#include "insttypes.h"
//#include "inst.h"
diff --git a/xicc/tiffgamut.c b/xicc/tiffgamut.c
index 38b6b6c..5014994 100644..100755
--- a/xicc/tiffgamut.c
+++ b/xicc/tiffgamut.c
@@ -98,6 +98,10 @@ void usage(void) {
fprintf(stderr," g:glare Flare light %% of ambient (default %d)\n",XICC_DEFAULT_GLARE);
fprintf(stderr," g:X:Y:Z Flare color as XYZ (default media white, Abs: D50)\n");
fprintf(stderr," g:x:y Flare color as x, y\n");
+ fprintf(stderr," h:hkscale Helmholtz-Kohlrausch effect scale factor (default 1.0)\n");
+ fprintf(stderr," m:mtaf Mid-tone partial adaptation factor (default 0.0)\n");
+ fprintf(stderr," m:X:Y:Z Mid-tone Adaptation white as XYZ (default D50)\n");
+ fprintf(stderr," m:x:y Mid-tone Adaptation white as x, y\n");
fprintf(stderr," -x pcent Expand/compress gamut cylindrically by percent\n");
fprintf(stderr," -O outputfile Override the default output filename.\n");
exit(1);
@@ -355,6 +359,9 @@ main(int argc, char *argv[]) {
double vc_g = -1.0; /* Glare % overide */
double vc_gXYZ[3] = {-1.0, -1.0, -1.0}; /* Glare color override in XYZ */
double vc_gxy[2] = {-1.0, -1.0}; /* Glare color override in x,y */
+ double vc_hkscale = -1.0; /* HK scaling factor */
+ double vc_mtaf = -1.0; /* Mid tone partial adapation factor from Wxyz to Wxyz2 */
+ double vc_Wxyz2[3] = {-1.0, -1.0, -1.0}; /* Adapted white override in XYZ */
double expand = 1.0; /* Expand gamut cylindrically by ratio */
icxLuBase *luo = NULL; /* Generic lookup object */
icColorSpaceSignature ins = icSigLabData, outs; /* Type of input and output spaces */
@@ -550,6 +557,20 @@ main(int argc, char *argv[]) {
vc_g = x;
} else
usage();
+ } else if (na[0] == 'h' || na[0] == 'H') {
+ if (na[1] != ':')
+ usage();
+ vc_hkscale = atof(na+2);
+ } else if (na[0] == 'm' || na[0] == 'M') {
+ double x, y, z;
+ if (sscanf(na+1,":%lf:%lf:%lf",&x,&y,&z) == 3) {
+ vc_Wxyz2[0] = x; vc_Wxyz2[1] = y; vc_Wxyz2[2] = z;
+ } else if (sscanf(na+1,":%lf:%lf",&x,&y) == 2) {
+ vc_Wxyz2[0] = x; vc_Wxyz2[1] = y; vc_Wxyz2[2] = -1;
+ } else if (sscanf(na+1,":%lf",&x) == 1) {
+ vc_mtaf = x;
+ } else
+ usage();
} else
usage();
}
@@ -708,6 +729,23 @@ main(int argc, char *argv[]) {
vc.Gxyz[0] = x/y * vc.Gxyz[1];
vc.Gxyz[2] = z/y * vc.Gxyz[1];
}
+ if (vc_hkscale >= 0.0)
+ vc.hkscale = vc_hkscale;
+ if (vc_mtaf >= 0.0)
+ vc.mtaf = vc_mtaf;
+ if (vc_Wxyz2[0] >= 0.0 && vc_Wxyz2[1] > 0.0 && vc_Wxyz2[2] >= 0.0) {
+ /* Normalise XYZ */
+ vc.Wxyz2[0] = vc_Wxyz2[0]/vc_Wxyz2[1] * vc.Wxyz2[1];
+ vc.Wxyz2[2] = vc_Wxyz2[2]/vc_Wxyz2[1] * vc.Wxyz2[1];
+ }
+ if (vc_Wxyz2[0] >= 0.0 && vc_Wxyz2[1] >= 0.0 && vc_Wxyz2[2] < 0.0) {
+ /* Convert Yxy to XYZ */
+ double x = vc_Wxyz2[0];
+ double y = vc_Wxyz2[1]; /* If Y == 1.0, then X+Y+Z = 1/y */
+ double z = 1.0 - x - y;
+ vc.Wxyz2[0] = x/y * vc.Wxyz2[1];
+ vc.Wxyz2[2] = z/y * vc.Wxyz2[1];
+ }
/* Get a expanded color conversion object */
if ((luo = xicco->get_luobj(xicco, ICX_CLIP_NEAREST
@@ -768,12 +806,29 @@ main(int argc, char *argv[]) {
vc.Gxyz[0] = x/y * vc.Gxyz[1];
vc.Gxyz[2] = z/y * vc.Gxyz[1];
}
+ if (vc_hkscale >= 0.0)
+ vc.hkscale = vc_hkscale;
+ if (vc_mtaf >= 0.0)
+ vc.mtaf = vc_mtaf;
+ if (vc_Wxyz2[0] >= 0.0 && vc_Wxyz2[1] > 0.0 && vc_Wxyz2[2] >= 0.0) {
+ /* Normalise XYZ */
+ vc.Wxyz2[0] = vc_Wxyz2[0]/vc_Wxyz2[1] * vc.Wxyz2[1];
+ vc.Wxyz2[2] = vc_Wxyz2[2]/vc_Wxyz2[1] * vc.Wxyz2[1];
+ }
+ if (vc_Wxyz2[0] >= 0.0 && vc_Wxyz2[1] >= 0.0 && vc_Wxyz2[2] < 0.0) {
+ /* Convert Yxy to XYZ */
+ double x = vc_Wxyz2[0];
+ double y = vc_Wxyz2[1]; /* If Y == 1.0, then X+Y+Z = 1/y */
+ double z = 1.0 - x - y;
+ vc.Wxyz2[0] = x/y * vc.Wxyz2[1];
+ vc.Wxyz2[2] = z/y * vc.Wxyz2[1];
+ }
if ((cam = new_icxcam(cam_default)) == NULL)
error("new_icxcam failed");
cam->set_view(cam, vc.Ev, vc.Wxyz, vc.La, vc.Yb, vc.Lv, vc.Yf, vc.Yg, vc.Gxyz,
- XICC_USE_HK, vc.hkscale);
+ XICC_USE_HK, vc.hkscale, vc.mtaf, vc.Wxyz2);
}
/* Establish the PCS range if we are filtering */
diff --git a/xicc/tiffgmts.c b/xicc/tiffgmts.c
index 592c2dd..592c2dd 100644..100755
--- a/xicc/tiffgmts.c
+++ b/xicc/tiffgmts.c
diff --git a/xicc/transplot.c b/xicc/transplot.c
index 6473e2b..6473e2b 100644..100755
--- a/xicc/transplot.c
+++ b/xicc/transplot.c
diff --git a/xicc/xcal.c b/xicc/xcal.c
index 4a5b37e..4a5b37e 100644..100755
--- a/xicc/xcal.c
+++ b/xicc/xcal.c
diff --git a/xicc/xcal.h b/xicc/xcal.h
index c70b884..c70b884 100644..100755
--- a/xicc/xcal.h
+++ b/xicc/xcal.h
diff --git a/xicc/xcam.c b/xicc/xcam.c
index 0b46a24..39543f6 100644..100755
--- a/xicc/xcam.c
+++ b/xicc/xcam.c
@@ -24,7 +24,7 @@
static void icx_cam_free(icxcam *s);
static int icx_set_view(icxcam *s, ViewingCondition Ev, double Wxyz[3],
double La, double Yb, double Lv, double Yf, double Yg, double Gxyz[3],
- int hk, double hkscale);
+ int hk, double hkscale, double mtaf, double Wxyz2[3]);
static int icx_XYZ_to_cam(struct _icxcam *s, double Jab[3], double XYZ[3]);
static int icx_cam_to_XYZ(struct _icxcam *s, double XYZ[3], double Jab[3]);
static void settrace(struct _icxcam *s, int tracev);
@@ -129,7 +129,9 @@ double Yf, /* Flare as a fraction of the reference white (Y range 0.0 .. 1.0) *
double Yg, /* Glare as a fraction of the adapting/surround (Y range 0.0 .. 1.0) */
double Gxyz[3], /* The Glare white coordinates (typically the Ambient color) */
int hk, /* Flag, NZ to use Helmholtz-Kohlraush effect */
-double hkscale /* HK effect scaling factor */
+double hkscale, /* HK effect scaling factor */
+double mtaf, /* Mid tone partial adapation factor from Wxyz to Wxyz2, <= 0.0 if none */
+double Wxyz2[3] /* Mid tone Adapted White XYZ (Y range 0.0 .. 1.0) */
) {
s->Wxyz[0] = Wxyz[0];
s->Wxyz[1] = Wxyz[1];
@@ -142,7 +144,7 @@ double hkscale /* HK effect scaling factor */
}
case cam_CIECAM02: {
cam02 *pp = (cam02 *)s->p;
- return pp->set_view(pp, Ev, Wxyz, La, Yb, Lv, Yf, Yg, Gxyz, hk, hkscale);
+ return pp->set_view(pp, Ev, Wxyz, La, Yb, Lv, Yf, Yg, Gxyz, hk, hkscale, mtaf, Wxyz2);
}
default:
break;
diff --git a/xicc/xcam.h b/xicc/xcam.h
index de4f5b4..972b02c 100644..100755
--- a/xicc/xcam.h
+++ b/xicc/xcam.h
@@ -52,7 +52,10 @@ struct _icxcam {
double Yg, /* Glare as a fraction of the adapting/surround (range 0.0 .. 1.0) */
double Gxyz[3], /* The Glare white coordinates (typically the Ambient color) */
int hk, /* Flag, NZ to use Helmholtz-Kohlraush effect */
- double hkscale /* HK effect scaling factor */
+ double hkscale, /* HK effect scaling factor */
+
+ double mtaf, /* Mid tone partial adapation factor from Wxyz to Wxyz2, <= 0.0 if none */
+ double Wxyz2[3] /* Mid tone Adapted White XYZ (Y range 0.0 .. 1.0) */
);
/* Conversions */
diff --git a/xicc/xcolorants.c b/xicc/xcolorants.c
index f243718..f243718 100644..100755
--- a/xicc/xcolorants.c
+++ b/xicc/xcolorants.c
diff --git a/xicc/xcolorants.h b/xicc/xcolorants.h
index 804fea5..804fea5 100644..100755
--- a/xicc/xcolorants.h
+++ b/xicc/xcolorants.h
diff --git a/xicc/xcolorantslu.c b/xicc/xcolorantslu.c
index 601c4bd..601c4bd 100644..100755
--- a/xicc/xcolorantslu.c
+++ b/xicc/xcolorantslu.c
diff --git a/xicc/xdevlin.c b/xicc/xdevlin.c
index 05b4317..05b4317 100644..100755
--- a/xicc/xdevlin.c
+++ b/xicc/xdevlin.c
diff --git a/xicc/xdevlin.h b/xicc/xdevlin.h
index 7e51e40..7e51e40 100644..100755
--- a/xicc/xdevlin.h
+++ b/xicc/xdevlin.h
diff --git a/xicc/xdgb.c b/xicc/xdgb.c
index 80914b8..80914b8 100644..100755
--- a/xicc/xdgb.c
+++ b/xicc/xdgb.c
diff --git a/xicc/xdgb.h b/xicc/xdgb.h
index bfb1752..bfb1752 100644..100755
--- a/xicc/xdgb.h
+++ b/xicc/xdgb.h
diff --git a/xicc/xfbview.c b/xicc/xfbview.c
index 3d7c665..3d7c665 100644..100755
--- a/xicc/xfbview.c
+++ b/xicc/xfbview.c
diff --git a/xicc/xfit.c b/xicc/xfit.c
index 91afa64..b5a8694 100644..100755
--- a/xicc/xfit.c
+++ b/xicc/xfit.c
@@ -1834,6 +1834,7 @@ static int xfit_fit(
} else {
icmSetUnity3x3(p->fromAbs);
icmSetUnity3x3(p->toAbs);
+ icmCpy3(p->wp, icmD50_ary3); /* Default to forced absolute */
}
/* Setup input position/shape curves to be linear initially */
diff --git a/xicc/xfit.h b/xicc/xfit.h
index 14b4ecc..7e50c94 100644..100755
--- a/xicc/xfit.h
+++ b/xicc/xfit.h
@@ -55,6 +55,7 @@ typedef enum {
#define XFIT_OUT_WP_REL 0x0010 /* Extract the white point and make output relative */
#define XFIT_OUT_WP_REL_US 0x0030 /* Same as above but scale to avoid clipping above WP */
#define XFIT_OUT_WP_REL_C 0x0050 /* Same as above but clip any cLUT values over D50 */
+
#define XFIT_CLIP_WP 0x0080 /* Clip white point to have Y <= 1.0 (conflict with above) */
#define XFIT_OUT_LAB 0x0100 /* Output space is LAB else XYZ for reading WP */
diff --git a/xicc/xicc.c b/xicc/xicc.c
index 9e35ffc..eef469d 100644..100755
--- a/xicc/xicc.c
+++ b/xicc/xicc.c
@@ -836,7 +836,7 @@ double *kblk /* K only black */
//printf("~1 white %f %f %f, black %f %f %f, kblack %f %f %f\n",white[0],white[1],white[2],black[0],black[1],black[2],kblack[0],kblack[1],kblack[2]);
/* Convert to possibl xicc override PCS */
- switch (p->pcs) {
+ switch ((int)p->pcs) {
case icSigXYZData:
break; /* Don't have to do anyting */
case icSigLabData:
@@ -1676,6 +1676,14 @@ double *wp /* Provide XYZ white point if xicc is NULL */
/* Default HK scaling factor = none */
vc->hkscale = 1.0;
+
+ /* Default Mid tone partial adapation factor = none */
+ vc->mtaf = 0.0;
+
+ /* Default Mid tone partial adapation white point = D50 */
+ vc->Wxyz2[0] = icmD50.X;
+ vc->Wxyz2[1] = icmD50.Y;
+ vc->Wxyz2[2] = icmD50.Z;
}
/*
@@ -1733,10 +1741,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
- else if (no == 2
+ else if (no == 0
|| (as != NULL && stricmp(as,"pc") == 0)) {
- no = 2;
+ no = 0;
if (vc != NULL) {
vc->desc = " pc - Critical print evaluation environment (ISO-3664 P1)";
vc->Ev = vc_average; /* Average viewing conditions */
@@ -1747,10 +1755,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
- else if (no == 0
+ else if (no == 1
|| (as != NULL && stricmp(as,"pp") == 0)) {
- no = 0;
+ no = 1;
if (vc != NULL) {
vc->desc = " pp - Practical Reflection Print (ISO-3664 P2)";
vc->Ev = vc_none; /* Use explicit La/Lv */
@@ -1761,10 +1769,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
- else if (no == 1
+ else if (no == 2
|| (as != NULL && stricmp(as,"pe") == 0)) {
- no = 1;
+ no = 2;
if (vc != NULL) {
vc->desc = " pe - Print evaluation environment (CIE 116-1995)";
vc->Ev = vc_none; /* Use explicit La/Lv */
@@ -1775,6 +1783,21 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
+ else if (no == 3
+ || (as != NULL && stricmp(as,"pm") == 0)) {
+
+ no = 3;
+ if (vc != NULL) {
+ vc->desc = " pm - Print evaluation with partial Mid-tone adapation";
+ vc->Ev = vc_none; /* Use explicit La/Lv */
+ vc->La = 30.0; /* 0.2 * Lv ? */
+ vc->Lv = 150.0; /* White of the image field */
+ vc->Yb = 0.2; /* Grey world */
+ vc->Yf = 0.0; /* 0% flare */
+ vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
+ vc->mtaf = 0.7; /* Mid-tone partial adapation to D50 */
+ }
+ }
else if (no == 4
|| (as != NULL && stricmp(as,"mb") == 0)) {
@@ -1789,10 +1812,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
- else if (no == 3
+ else if (no == 5
|| (as != NULL && stricmp(as,"mt") == 0)) {
- no = 3;
+ no = 5;
if (vc != NULL) {
vc->desc = " mt - Monitor in typical work environment";
vc->Ev = vc_none; /* Use explicit La/Lv */
@@ -1803,10 +1826,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
- else if (no == 5
+ else if (no == 6
|| (as != NULL && stricmp(as,"md") == 0)) {
- no = 5;
+ no = 6;
if (vc != NULL) {
vc->desc = " md - Monitor in darkened work environment";
vc->Ev = vc_none; /* Use explicit La/Lv */
@@ -1817,10 +1840,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
- else if (no == 6
+ else if (no == 7
|| (as != NULL && stricmp(as,"jm") == 0)) {
- no = 6;
+ no = 7;
if (vc != NULL) {
vc->desc = " jm - Projector in dim environment";
vc->Ev = vc_none; /* Use explicit La/Lv */
@@ -1831,10 +1854,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
- else if (no == 7
+ else if (no == 8
|| (as != NULL && stricmp(as,"jd") == 0)) {
- no = 7;
+ no = 8;
if (vc != NULL) {
vc->desc = " jd - Projector in dark environment";
vc->Ev = vc_none; /* Use explicit La/Lv */
@@ -1845,10 +1868,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
- else if (no == 8
+ else if (no == 9
|| (as != NULL && stricmp(as,"tv") == 0)) {
- no = 8;
+ no = 9;
if (vc != NULL) {
vc->desc = " tv - Television/Film Studio";
vc->Ev = vc_none; /* Compute from La/Lv */
@@ -1859,10 +1882,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.01 * XICC_DEFAULT_GLARE; /* 5% glare */
}
}
- else if (no == 9
+ else if (no == 10
|| (as != NULL && stricmp(as,"pcd") == 0)) {
- no = 9;
+ no = 10;
if (vc != NULL) {
vc->desc = "pcd - Photo CD - original scene outdoors";
vc->Ev = vc_average; /* Average viewing conditions */
@@ -1872,10 +1895,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.0; /* 0% glare - assumed to be compensated ? */
}
}
- else if (no == 10
+ else if (no == 11
|| (as != NULL && stricmp(as,"ob") == 0)) {
- no = 10;
+ no = 11;
if (vc != NULL) {
vc->desc = " ob - Original scene - Bright Outdoors";
vc->Ev = vc_average; /* Average viewing conditions */
@@ -1885,10 +1908,10 @@ double *wp /* Provide XYZ white point if xicc is NULL */
vc->Yg = 0.0; /* 0% glare - assumed to be compensated ? */
}
}
- else if (no == 11
+ else if (no == 12
|| (as != NULL && stricmp(as,"cx") == 0)) {
- no = 11;
+ no = 12;
if (vc != NULL) {
vc->desc = " cx - Cut Sheet Transparencies on a viewing box";
vc->Ev = vc_cut_sheet; /* Cut sheet viewing conditions */
@@ -1931,6 +1954,9 @@ icxViewCond *vc
printf(" Glare to adapting/surround ratio = %f\n",vc->Yg);
printf(" Flare color = %f %f %f\n",vc->Gxyz[0], vc->Gxyz[1], vc->Gxyz[2]);
printf(" HK scaling = %f\n",vc->hkscale);
+ printf(" Mid tone partial adapation factor = %f\n",vc->mtaf);
+ if (vc->mtaf > 0.0)
+ printf(" Mid tone adapted white = %f %f %f\n",vc->Wxyz2[0], vc->Wxyz2[1], vc->Wxyz2[2]);
}
diff --git a/xicc/xicc.h b/xicc/xicc.h
index e4db20d..ba566e6 100644..100755
--- a/xicc/xicc.h
+++ b/xicc/xicc.h
@@ -191,6 +191,8 @@ typedef struct {
double Gxyz[3]; /* The Glare white coordinates (ie the Ambient color) */
/* will be taken from Wxyz if Gxyz <= 0.0 */
double hkscale; /* [1.0] HK scaling factor */
+ double mtaf; /* [0.0] Mid tone partial adapation factor from Wxyz to Wxyz2 0.0 .. 1.0 */
+ double Wxyz2[3]; /* Mid tone Adapted White XYZ (Y range 0.0 .. 1.0) */
char *desc; /* Possible description of this VC */
} icxViewCond;
@@ -282,17 +284,18 @@ struct _xicc {
#define ICX_SET_WHITE 0x00010000 /* find, set and make relative to the white point */
#define ICX_SET_WHITE_US 0x00030000 /* find, set and make relative to the white point hue, */
/* but not scale to W L value, to avoid input clipping */
-#define ICX_SET_WHITE_C 0x00050000 /* find, set and make relative to the white point hue, */
+#define ICX_SET_WHITE_ABS 0x00050000 /* Set dummy D50 white point to force absolute intent. */
+#define ICX_SET_WHITE_C 0x00090000 /* find, set and make relative to the white point hue, */
/* and clip any cLUT values over D50 to D50 */
-#define ICX_SET_BLACK 0x00080000 /* find and set the black point */
-#define ICX_WRITE_WBL 0x00100000 /* Matrix: write White, Black & Luminance tags */
-#define ICX_CLIP_WB 0x00200000 /* Clip white and black to be < 1 and > 0 respectively */
-#define ICX_CLIP_PRIMS 0x00400000 /* Clip matrix primaries to be > 0 */
-#define ICX_NO_IN_SHP_LUTS 0x00800000 /* Lut/Mtx: Don't create input (Device) shaper curves. */
-#define ICX_NO_IN_POS_LUTS 0x01000000 /* LuLut: Don't create input (Device) postion curves. */
-#define ICX_NO_OUT_LUTS 0x02000000 /* LuLut: Don't create output (PCS) curves. */
-//#define ICX_2PASSSMTH 0x04000000 /* If LuLut: Use Gaussian smoothing */
-//#define ICX_EXTRA_FIT 0x08000000 /* If LuLut: Counteract scat data point errors. */
+#define ICX_SET_BLACK 0x00100000 /* find and set the black point */
+#define ICX_WRITE_WBL 0x00200000 /* Matrix: write White, Black & Luminance tags */
+#define ICX_CLIP_WB 0x00400000 /* Clip white and black to be < 1 and > 0 respectively */
+#define ICX_CLIP_PRIMS 0x00800000 /* Clip matrix primaries to be > 0 */
+#define ICX_NO_IN_SHP_LUTS 0x01000000 /* Lut/Mtx: Don't create input (Device) shaper curves. */
+#define ICX_NO_IN_POS_LUTS 0x02000000 /* LuLut: Don't create input (Device) postion curves. */
+#define ICX_NO_OUT_LUTS 0x04000000 /* LuLut: Don't create output (PCS) curves. */
+//#define ICX_2PASSSMTH 0x08000000 /* If LuLut: Use Gaussian smoothing */
+//#define ICX_EXTRA_FIT 0x10000000 /* If LuLut: Counteract scat data point errors. */
/* And ICX_VERBOSE Turn on verboseness during creation */
struct _icxLuBase * (*set_luobj) (struct _xicc *p,
icmLookupFunc func, /* Functionality to set */
diff --git a/xicc/xicclu.c b/xicc/xicclu.c
index 20c7d8b..6bbb62a 100644..100755
--- a/xicc/xicclu.c
+++ b/xicc/xicclu.c
@@ -38,11 +38,20 @@
#include "plot.h"
#include "ui.h"
-#undef SPTEST /* Test rspl gamut surface code */
+#undef SPTEST /* [und] Test (flawed) rspl gamut surface code */
#define USE_NEARCLIP /* [def] Our usual expectation */
-#define USE_FASTNNSETP /* [def] Make it more responsive */
-#define XRES 128 /* Plotting resolution */
+#define USE_FASTNNSETP /* [def] Make it more responsive, but not same alg. */
+ /* NOTE camclip & merglut are runtime options! */
+#define XRES 128 /* [128] Plotting resolution */
+
+#ifndef USE_NEARCLIP
+# pragma message("!!!!!!!!!!!! USE_NEARCLIP turned off !!!!!!!!!")
+#endif
+
+#ifndef USE_FASTNNSETP
+# pragma message("!!!!!!!!!!!! USE_FASTNNSETP turned off !!!!!!!!!")
+#endif
void usage(char *diag) {
int i;
@@ -55,7 +64,7 @@ void usage(char *diag) {
fprintf(stderr," -g Plot slice instead of looking colors up. (Default white to black)\n");
fprintf(stderr," -G s:L:a:b Override plot slice start with Lab or Jab co-ordinate \n");
fprintf(stderr," -G e:L:a:b Override plot slice end with Lab or Jab co-ordinate \n");
- fprintf(stderr," -V Use 'vcgt' calibration tag from profile\n");
+ fprintf(stderr," -V Lookup or plot the 'vcgt' calibration tag from profile\n");
fprintf(stderr," -f function f = forward, b = backwards, g = gamut, p = preview\n");
fprintf(stderr," if = inverted forward, ib = inverted backwards\n");
fprintf(stderr," -i intent a = absolute, r = relative colorimetric\n");
@@ -121,6 +130,10 @@ void usage(char *diag) {
fprintf(stderr," g:glare Flare light %% of ambient (default %d)\n",XICC_DEFAULT_GLARE);
fprintf(stderr," g:X:Y:Z Flare color as XYZ (default media white, Abs: D50)\n");
fprintf(stderr," g:x:y Flare color as x, y\n");
+ fprintf(stderr," h:hkscale Helmholtz-Kohlrausch effect scale factor (default 1.0)\n");
+ fprintf(stderr," m:mtaf Mid-tone partial adaptation factor (default 0.0)\n");
+ fprintf(stderr," m:X:Y:Z Mid-tone Adaptation white as XYZ (default D50)\n");
+ fprintf(stderr," m:x:y Mid-tone Adaptation white as x, y\n");
fprintf(stderr,"\n");
fprintf(stderr," The colors to be translated should be fed into standard in,\n");
fprintf(stderr," one input color per line, white space separated.\n");
@@ -153,10 +166,6 @@ void spioutf(void *cbntx, double *out, double *in) {
#endif /* SPTEST */
-#ifndef USE_FASTNNSETP
-#pragma message("!!!!!!!!!!!! USE_FASTNNSETP turned off !!!!!!!!!")
-#endif
-
int
main(int argc, char *argv[]) {
int fa, nfa, mfa; /* argument we're looking at */
@@ -185,6 +194,9 @@ main(int argc, char *argv[]) {
double vc_g = -1.0; /* Glare % overide */
double vc_gXYZ[3] = {-1.0, -1.0, -1.0}; /* Glare color override in XYZ */
double vc_gxy[2] = {-1.0, -1.0}; /* Glare color override in x,y */
+ double vc_hkscale = -1.0; /* HK scaling factor */
+ double vc_mtaf = -1.0; /* Mid tone partial adapation factor from Wxyz to Wxyz2 */
+ double vc_Wxyz2[3] = {-1.0, -1.0, -1.0}; /* Adapted white override in XYZ */
int verb = 1;
int actual = 0;
int slocwarn = 0;
@@ -678,6 +690,20 @@ main(int argc, char *argv[]) {
vc_g = x;
} else
usage("Unrecognised parameters after -cg");
+ } else if (na[0] == 'h' || na[0] == 'H') {
+ if (na[1] != ':')
+ usage("Unrecognised parameters after -ch");
+ vc_hkscale = atof(na+2);
+ } else if (na[0] == 'm' || na[0] == 'M') {
+ double x, y, z;
+ if (sscanf(na+1,":%lf:%lf:%lf",&x,&y,&z) == 3) {
+ vc_Wxyz2[0] = x; vc_Wxyz2[1] = y; vc_Wxyz2[2] = z;
+ } else if (sscanf(na+1,":%lf:%lf",&x,&y) == 2) {
+ vc_Wxyz2[0] = x; vc_Wxyz2[1] = y; vc_Wxyz2[2] = -1;
+ } else if (sscanf(na+1,":%lf",&x) == 1) {
+ vc_mtaf = x;
+ } else
+ usage("Unrecognised parameters after -cm");
} else
usage("Unrecognised parameters after -c");
}
@@ -876,6 +902,23 @@ main(int argc, char *argv[]) {
vc.Gxyz[0] = x/y * vc.Gxyz[1];
vc.Gxyz[2] = z/y * vc.Gxyz[1];
}
+ if (vc_hkscale >= 0.0)
+ vc.hkscale = vc_hkscale;
+ if (vc_mtaf >= 0.0)
+ vc.mtaf = vc_mtaf;
+ if (vc_Wxyz2[0] >= 0.0 && vc_Wxyz2[1] > 0.0 && vc_Wxyz2[2] >= 0.0) {
+ /* Normalise XYZ */
+ vc.Wxyz2[0] = vc_Wxyz2[0]/vc_Wxyz2[1] * vc.Wxyz2[1];
+ vc.Wxyz2[2] = vc_Wxyz2[2]/vc_Wxyz2[1] * vc.Wxyz2[1];
+ }
+ if (vc_Wxyz2[0] >= 0.0 && vc_Wxyz2[1] >= 0.0 && vc_Wxyz2[2] < 0.0) {
+ /* Convert Yxy to XYZ */
+ double x = vc_Wxyz2[0];
+ double y = vc_Wxyz2[1]; /* If Y == 1.0, then X+Y+Z = 1/y */
+ double z = 1.0 - x - y;
+ vc.Wxyz2[0] = x/y * vc.Wxyz2[1];
+ vc.Wxyz2[2] = z/y * vc.Wxyz2[1];
+ }
//xicc_dump_viewcond(&vc);
/* Get a expanded color conversion object */
diff --git a/xicc/xlut.c b/xicc/xlut.c
index a18956c..444d084 100644..100755
--- a/xicc/xlut.c
+++ b/xicc/xlut.c
@@ -160,15 +160,16 @@
#undef DISABLE_KCURVE_FILTER /* [Undef] don't filter the Kcurve */
#undef REPORT_LOCUS_SEGMENTS /* [Undef[ Examine how many segments there are in aux inversion */
-#undef FASTREVSETUP_NON_CAM /* [Undef] Use fast setup on innerm non-CAM lookup, if we're */
+#undef FASTREVSETUP_NON_CAM /* [Undef] Use fast setup on inner non-CAM lookup, if we're */
/* going to use CAM clip for nn lookup */
-#define XYZ_EXTRA_SMOOTH 20.0 /* Extra smoothing factor for XYZ profiles */
+#define XYZ_EXTRA_SMOOTH 20.0 /* [20] Extra smoothing factor for XYZ profiles */
/* !!! Note this is mainly due to smoothing being */
/* scaled by data range in rspl code !!! */
-#define SHP_SMOOTH 1.0 /* Input shaper curve smoothing */
-#define OUT_SMOOTH1 1.0 /* Output shaper curve smoothing for L*, X,Y,Z */
-#define OUT_SMOOTH2 1.0 /* Output shaper curve smoothing for a*, b* */
+ /* - have fix but all rspl use then needs re-tuning! */
+#define SHP_SMOOTH 1.0 /* [1.0] Input shaper curve smoothing */
+#define OUT_SMOOTH1 1.0 /* [1.0] Output shaper curve smoothing for L*, X,Y,Z */
+#define OUT_SMOOTH2 1.0 /* [1.0] Output shaper curve smoothing for a*, b* */
#define CAMCLIPTRANS 1.0 /* [1.0] Cam clipping transition region Delta E */
/* Should this be smaller ? */
@@ -2190,7 +2191,7 @@ icxLuLut *p /* Object being initialised */
p->clip.LabLike = 0;
p->clip.fdi = p->clutTable->fdi;
- switch(clutos) {
+ switch((int)clutos) {
case icxSigJabData:
case icSigLabData: {
@@ -2343,7 +2344,8 @@ fprintf(stderr,"~1 Internal optimised 4D separations not yet implemented!\n");
xicc_enum_viewcond(xicp, &p->vc, -1, NULL, 0, NULL); /* Use a default */
p->cam = new_icxcam(cam_default);
p->cam->set_view(p->cam, p->vc.Ev, p->vc.Wxyz, p->vc.La, p->vc.Yb, p->vc.Lv,
- p->vc.Yf, p->vc.Yg, p->vc.Gxyz, XICC_USE_HK, p->vc.hkscale);
+ p->vc.Yf, p->vc.Yg, p->vc.Gxyz, XICC_USE_HK, p->vc.hkscale,
+ p->vc.mtaf, p->vc.Wxyz2);
} else {
p->cam = NULL;
}
@@ -2449,6 +2451,8 @@ fprintf(stderr,"~1 Internal optimised 4D separations not yet implemented!\n");
gres[i] = p->lut->clutPoints;
#ifdef FASTREVSETUP_NON_CAM
+ # pragma message("!!!!!!!!!!!! FASTREVSETUP_NON_CAM is on !!!!!!!!!")
+
/* Don't fill in nnrev array if we aren't going to use it */
if (p->camclip && p->nearclip)
xflags = RSPL_FASTREVSETUP;
@@ -2486,6 +2490,8 @@ fprintf(stderr,"~1 Internal optimised 4D separations not yet implemented!\n");
/* Set the Nearest Neighbor clipping Weighting */
p->clutTable->rev_set_lchw(p->clutTable, lchw);
}
+#else
+# pragma message("!!!!!!!!!!!! USELCHWEIGHT is off !!!!!!!!!")
#endif /* USELCHWEIGHT */
/* clut clipping is setup separately */
@@ -3117,7 +3123,7 @@ int quality /* Quality metric, 0..3 */
for (e = 0; e < p->inputChan; e++)
dgwhite[e] = dwhite[e];
- /* If this is actuall an input device, lookup wp & bp */
+ /* If this is actualy an input device, lookup wp & bp */
/* and override dwhite & dblack */
if (h->deviceClass == icSigInputClass) {
double wpy = -1e60, bpy = 1e60;
@@ -3371,12 +3377,16 @@ int quality /* Quality metric, 0..3 */
if (flags & ICX_SET_WHITE) {
- xfflags |= XFIT_OUT_WP_REL;
- if ((flags & ICX_SET_WHITE_C) == ICX_SET_WHITE_C) {
- xfflags |= XFIT_OUT_WP_REL_C;
+ if ((flags & ICX_SET_WHITE_ABS) != ICX_SET_WHITE_ABS) {
+
+ xfflags |= XFIT_OUT_WP_REL;
+
+ if ((flags & ICX_SET_WHITE_C) == ICX_SET_WHITE_C)
+ xfflags |= XFIT_OUT_WP_REL_C;
+
+ else if ((flags & ICX_SET_WHITE_US) == ICX_SET_WHITE_US)
+ xfflags |= XFIT_OUT_WP_REL_US;
}
- else if ((flags & ICX_SET_WHITE_US) == ICX_SET_WHITE_US)
- xfflags |= XFIT_OUT_WP_REL_US;
if (p->pcs != icSigXYZData)
xfflags |= XFIT_OUT_LAB;
@@ -3956,7 +3966,8 @@ int quality /* Quality metric, 0..3 */
xicc_enum_viewcond(xicp, &p->vc, -1, NULL, 0, NULL); /* Use a default */
p->cam = new_icxcam(cam_default);
p->cam->set_view(p->cam, p->vc.Ev, p->vc.Wxyz, p->vc.La, p->vc.Yb, p->vc.Lv,
- p->vc.Yf, p->vc.Yg, p->vc.Gxyz, XICC_USE_HK, p->vc.hkscale);
+ p->vc.Yf, p->vc.Yg, p->vc.Gxyz, XICC_USE_HK, p->vc.hkscale,
+ p->vc.mtaf, p->vc.Wxyz2);
if (flags & ICX_VERBOSE)
printf("Done A to B table creation\n");
@@ -4257,7 +4268,7 @@ double detail /* gamut detail level, 0.0 = def */
/* Get an appropriate device to PCS conversion for the fwd conversion */
/* we use after bwd conversion in lutbwdgam_func() */
- switch (intent) {
+ switch ((int)intent) {
/* If it is relative */
case icmDefaultIntent: /* Shouldn't happen */
case icPerceptual:
diff --git a/xicc/xlutfix.c b/xicc/xlutfix.c
index a0c0e4e..a0c0e4e 100644..100755
--- a/xicc/xlutfix.c
+++ b/xicc/xlutfix.c
diff --git a/xicc/xmatrix.c b/xicc/xmatrix.c
index c18ef1c..a7d1a62 100644..100755
--- a/xicc/xmatrix.c
+++ b/xicc/xmatrix.c
@@ -317,7 +317,8 @@ int dir /* 0 = fwd, 1 = bwd */
xicc_enum_viewcond(xicp, &p->vc, -1, NULL, 0, NULL); /* Use a default */
p->cam = new_icxcam(cam_default);
p->cam->set_view(p->cam, p->vc.Ev, p->vc.Wxyz, p->vc.La, p->vc.Yb, p->vc.Lv,
- p->vc.Yf, p->vc.Yg, p->vc.Gxyz, XICC_USE_HK, p->vc.hkscale);
+ p->vc.Yf, p->vc.Yg, p->vc.Gxyz, XICC_USE_HK, p->vc.hkscale,
+ p->vc.mtaf, p->vc.Wxyz2);
} else {
p->cam = NULL;
}
@@ -1339,7 +1340,7 @@ double smooth /* Curve smoothing, nominally 1.0 */
/* ------------------------------- */
/* Choose a white and black point */
- if (flags & (ICX_SET_WHITE | ICX_SET_BLACK)) {
+ if (flags & (ICX_SET_WHITE | ICX_SET_BLACK)) {
if (flags & ICX_VERBOSE)
printf("Find white & black points\n");
@@ -1518,6 +1519,14 @@ double smooth /* Curve smoothing, nominally 1.0 */
} else {
icmSetUnity3x3(fromAbs);
icmSetUnity3x3(toAbs);
+ icmCpy3(wp, icmD50_ary3);
+ }
+
+ /* Force do nothing/Absolute white point */
+ if ((flags & ICX_SET_WHITE_ABS) == ICX_SET_WHITE_ABS) {
+ icmSetUnity3x3(fromAbs);
+ icmSetUnity3x3(toAbs);
+ icmCpy3(wp, icmD50_ary3);
}
/* Create copy of input points with output converted to white relative */
@@ -1599,7 +1608,8 @@ printf(" set black %d w = %f\n", nodp,rpoints[nodp].w);
/* but we need to adjust the device to relative conversion */
/* to make device white map exactly to D50, without touching */
/* the overall absolute behaviour. */
- if (p->flags & ICX_SET_WHITE) {
+ if ((p->flags & ICX_SET_WHITE) != 0
+ && (p->flags & ICX_SET_WHITE_ABS) != ICX_SET_WHITE_ABS) {
double aw[3]; /* aprox rel. white */
icmXYZNumber _wp; /* Uncorrected dw maps to _wp */
double cmat[3][3]; /* Model correction matrix */
diff --git a/xicc/xmono.c b/xicc/xmono.c
index d1f091b..fbd2f0e 100644..100755
--- a/xicc/xmono.c
+++ b/xicc/xmono.c
@@ -264,7 +264,7 @@ int dir /* 0 = fwd, 1 = bwd */
p->vc = *vc; /* Copy the structure */
p->cam = new_icxcam(cam_default);
p->cam->set_view(p->cam, vc->Ev, vc->Wxyz, vc->La, vc->Yb, vc->Lv, vc->Yf, vc->Yg, vc->Gxyz,
- XICC_USE_HK, vc->hkscale);
+ XICC_USE_HK, vc->hkscale, vc->mtaf, vc->Wxyz2);
} else
p->cam = NULL;
diff --git a/xicc/xspect.c b/xicc/xspect.c
index 9df298e..b77f322 100644..100755
--- a/xicc/xspect.c
+++ b/xicc/xspect.c
@@ -23,12 +23,6 @@
/*
* TTBD:
*
- * Should add some more modern standard CMFs - see <http://www.cvrl.org/>
- *
- * [Does this make any sense though ? That is what's happening
- * for a standard A illuminant instrument emitting D50 XYZ values,
- * but doesn't represent actually viewing under a (say) M2 illuminant.
- * But is M0 actual A illuminant, or notional D50 measured by an A illuminant ?]
*/
#include <stdlib.h>
@@ -1372,6 +1366,588 @@ static xspect ob_CIE_1964_10[3] = {
}
};
+/* CIE (2012) 2-deg XYZ, TC 1-36 proposed 2-deg XYZ */
+/* CMFs transformed from the CIE (2006) 2-deg LMS cone fundamentals */
+/* <http://www.cvrl.org/ciexyzpr.htm> */
+/* <http://www.cvrl.org/database/text/cienewxyz/cie2012xyz2.htm> */
+static xspect ob_CIE_2012_2[3] = {
+ {
+ 441, 390.0, 830.0, /* 471 bands from 360 to 830 nm in 1nm steps */
+ 1.0, /* Scale factor */
+ {
+ 3.769647E-03, 4.532416E-03, 5.446553E-03, 6.538868E-03, 7.839699E-03,
+ 9.382967E-03, 1.120608E-02, 1.334965E-02, 1.585690E-02, 1.877286E-02,
+ 2.214302E-02, 2.601285E-02, 3.043036E-02, 3.544325E-02, 4.109640E-02,
+ 4.742986E-02, 5.447394E-02, 6.223612E-02, 7.070048E-02, 7.982513E-02,
+ 8.953803E-02, 9.974848E-02, 1.104019E-01, 1.214566E-01, 1.328741E-01,
+ 1.446214E-01, 1.566468E-01, 1.687901E-01, 1.808328E-01, 1.925216E-01,
+ 2.035729E-01, 2.137531E-01, 2.231348E-01, 2.319245E-01, 2.403892E-01,
+ 2.488523E-01, 2.575896E-01, 2.664991E-01, 2.753532E-01, 2.838921E-01,
+ 2.918246E-01, 2.989200E-01, 3.052993E-01, 3.112031E-01, 3.169047E-01,
+ 3.227087E-01, 3.288194E-01, 3.349242E-01, 3.405452E-01, 3.451688E-01,
+ 3.482554E-01, 3.494153E-01, 3.489075E-01, 3.471746E-01, 3.446705E-01,
+ 3.418483E-01, 3.390240E-01, 3.359926E-01, 3.324276E-01, 3.280157E-01,
+ 3.224637E-01, 3.156225E-01, 3.078201E-01, 2.994771E-01, 2.909776E-01,
+ 2.826646E-01, 2.747962E-01, 2.674312E-01, 2.605847E-01, 2.542749E-01,
+ 2.485254E-01, 2.433039E-01, 2.383414E-01, 2.333253E-01, 2.279619E-01,
+ 2.219781E-01, 2.151735E-01, 2.075619E-01, 1.992183E-01, 1.902290E-01,
+ 1.806905E-01, 1.707154E-01, 1.604471E-01, 1.500244E-01, 1.395705E-01,
+ 1.291920E-01, 1.189859E-01, 1.090615E-01, 9.951424E-02, 9.041850E-02,
+ 8.182895E-02, 7.376817E-02, 6.619477E-02, 5.906380E-02, 5.234242E-02,
+ 4.600865E-02, 4.006154E-02, 3.454373E-02, 2.949091E-02, 2.492140E-02,
+ 2.083981E-02, 1.723591E-02, 1.407924E-02, 1.134516E-02, 9.019658E-03,
+ 7.097731E-03, 5.571145E-03, 4.394566E-03, 3.516303E-03, 2.887638E-03,
+ 2.461588E-03, 2.206348E-03, 2.149559E-03, 2.337091E-03, 2.818931E-03,
+ 3.649178E-03, 4.891359E-03, 6.629364E-03, 8.942902E-03, 1.190224E-02,
+ 1.556989E-02, 1.997668E-02, 2.504698E-02, 3.067530E-02, 3.674999E-02,
+ 4.315171E-02, 4.978584E-02, 5.668554E-02, 6.391651E-02, 7.154352E-02,
+ 7.962917E-02, 8.821473E-02, 9.726978E-02, 1.067504E-01, 1.166192E-01,
+ 1.268468E-01, 1.374060E-01, 1.482471E-01, 1.593076E-01, 1.705181E-01,
+ 1.818026E-01, 1.931090E-01, 2.045085E-01, 2.161166E-01, 2.280650E-01,
+ 2.405015E-01, 2.535441E-01, 2.671300E-01, 2.811351E-01, 2.954164E-01,
+ 3.098117E-01, 3.241678E-01, 3.384319E-01, 3.525786E-01, 3.665839E-01,
+ 3.804244E-01, 3.940988E-01, 4.076972E-01, 4.213484E-01, 4.352003E-01,
+ 4.494206E-01, 4.641616E-01, 4.794395E-01, 4.952180E-01, 5.114395E-01,
+ 5.280233E-01, 5.448696E-01, 5.618898E-01, 5.790137E-01, 5.961882E-01,
+ 6.133784E-01, 6.305897E-01, 6.479223E-01, 6.654866E-01, 6.833782E-01,
+ 7.016774E-01, 7.204110E-01, 7.394495E-01, 7.586285E-01, 7.777885E-01,
+ 7.967750E-01, 8.154530E-01, 8.337389E-01, 8.515493E-01, 8.687862E-01,
+ 8.853376E-01, 9.011588E-01, 9.165278E-01, 9.318245E-01, 9.474524E-01,
+ 9.638388E-01, 9.812596E-01, 9.992953E-01, 1.017343E+00, 1.034790E+00,
+ 1.051011E+00, 1.065522E+00, 1.078421E+00, 1.089944E+00, 1.100320E+00,
+ 1.109767E+00, 1.118438E+00, 1.126266E+00, 1.133138E+00, 1.138952E+00,
+ 1.143620E+00, 1.147095E+00, 1.149464E+00, 1.150838E+00, 1.151326E+00,
+ 1.151033E+00, 1.150002E+00, 1.148061E+00, 1.144998E+00, 1.140622E+00,
+ 1.134757E+00, 1.127298E+00, 1.118342E+00, 1.108033E+00, 1.096515E+00,
+ 1.083928E+00, 1.070387E+00, 1.055934E+00, 1.040592E+00, 1.024385E+00,
+ 1.007344E+00, 9.895268E-01, 9.711213E-01, 9.523257E-01, 9.333248E-01,
+ 9.142877E-01, 8.952798E-01, 8.760157E-01, 8.561607E-01, 8.354235E-01,
+ 8.135565E-01, 7.904565E-01, 7.664364E-01, 7.418777E-01, 7.171219E-01,
+ 6.924717E-01, 6.681600E-01, 6.442697E-01, 6.208450E-01, 5.979243E-01,
+ 5.755410E-01, 5.537296E-01, 5.325412E-01, 5.120218E-01, 4.922070E-01,
+ 4.731224E-01, 4.547417E-01, 4.368719E-01, 4.193121E-01, 4.018980E-01,
+ 3.844986E-01, 3.670592E-01, 3.497167E-01, 3.326305E-01, 3.159341E-01,
+ 2.997374E-01, 2.841189E-01, 2.691053E-01, 2.547077E-01, 2.409319E-01,
+ 2.277792E-01, 2.152431E-01, 2.033010E-01, 1.919276E-01, 1.810987E-01,
+ 1.707914E-01, 1.609842E-01, 1.516577E-01, 1.427936E-01, 1.343737E-01,
+ 1.263808E-01, 1.187979E-01, 1.116088E-01, 1.047975E-01, 9.834835E-02,
+ 9.224597E-02, 8.647506E-02, 8.101986E-02, 7.586514E-02, 7.099633E-02,
+ 6.639960E-02, 6.206225E-02, 5.797409E-02, 5.412533E-02, 5.050600E-02,
+ 4.710606E-02, 4.391411E-02, 4.091411E-02, 3.809067E-02, 3.543034E-02,
+ 3.292138E-02, 3.055672E-02, 2.834146E-02, 2.628033E-02, 2.437465E-02,
+ 2.262306E-02, 2.101935E-02, 1.954647E-02, 1.818727E-02, 1.692727E-02,
+ 1.575417E-02, 1.465854E-02, 1.363571E-02, 1.268205E-02, 1.179394E-02,
+ 1.096778E-02, 1.019964E-02, 9.484317E-03, 8.816851E-03, 8.192921E-03,
+ 7.608750E-03, 7.061391E-03, 6.549509E-03, 6.071970E-03, 5.627476E-03,
+ 5.214608E-03, 4.831848E-03, 4.477579E-03, 4.150166E-03, 3.847988E-03,
+ 3.569452E-03, 3.312857E-03, 3.076022E-03, 2.856894E-03, 2.653681E-03,
+ 2.464821E-03, 2.289060E-03, 2.125694E-03, 1.974121E-03, 1.833723E-03,
+ 1.703876E-03, 1.583904E-03, 1.472939E-03, 1.370151E-03, 1.274803E-03,
+ 1.186238E-03, 1.103871E-03, 1.027194E-03, 9.557493E-04, 8.891262E-04,
+ 8.269535E-04, 7.689351E-04, 7.149425E-04, 6.648590E-04, 6.185421E-04,
+ 5.758303E-04, 5.365046E-04, 5.001842E-04, 4.665005E-04, 4.351386E-04,
+ 4.058303E-04, 3.783733E-04, 3.526892E-04, 3.287199E-04, 3.063998E-04,
+ 2.856577E-04, 2.664108E-04, 2.485462E-04, 2.319529E-04, 2.165300E-04,
+ 2.021853E-04, 1.888338E-04, 1.763935E-04, 1.647895E-04, 1.539542E-04,
+ 1.438270E-04, 1.343572E-04, 1.255141E-04, 1.172706E-04, 1.095983E-04,
+ 1.024685E-04, 9.584715E-05, 8.968316E-05, 8.392734E-05, 7.853708E-05,
+ 7.347551E-05, 6.871576E-05, 6.425257E-05, 6.008292E-05, 5.620098E-05,
+ 5.259870E-05, 4.926279E-05, 4.616623E-05, 4.328212E-05, 4.058715E-05,
+ 3.806114E-05, 3.568818E-05, 3.346023E-05, 3.137090E-05, 2.941371E-05,
+ 2.758222E-05, 2.586951E-05, 2.426701E-05, 2.276639E-05, 2.136009E-05,
+ 2.004122E-05, 1.880380E-05, 1.764358E-05, 1.655671E-05, 1.553939E-05,
+ 1.458792E-05, 1.369853E-05, 1.286705E-05, 1.208947E-05, 1.136207E-05,
+ 1.068141E-05, 1.004411E-05, 9.446399E-06, 8.884754E-06, 8.356050E-06,
+ 7.857521E-06, 7.386996E-06, 6.943576E-06, 6.526548E-06, 6.135087E-06,
+ 5.768284E-06, 5.425069E-06, 5.103974E-06, 4.803525E-06, 4.522350E-06,
+ 4.259166E-06, 4.012715E-06, 3.781597E-06, 3.564496E-06, 3.360236E-06,
+ 3.167765E-06, 2.986206E-06, 2.814999E-06, 2.653663E-06, 2.501725E-06,
+ 2.358723E-06, 2.224206E-06, 2.097737E-06, 1.978894E-06, 1.867268E-06,
+ 1.762465E-06
+ }
+ },
+ {
+ 441, 390.0, 830.0, /* 471 bands from 360 to 830 nm in 1nm steps */
+ 1.0, /* Scale factor */
+ {
+ 4.146161E-04, 5.028333E-04, 6.084991E-04, 7.344436E-04, 8.837389E-04,
+ 1.059646E-03, 1.265532E-03, 1.504753E-03, 1.780493E-03, 2.095572E-03,
+ 2.452194E-03, 2.852216E-03, 3.299115E-03, 3.797466E-03, 4.352768E-03,
+ 4.971717E-03, 5.661014E-03, 6.421615E-03, 7.250312E-03, 8.140173E-03,
+ 9.079860E-03, 1.005608E-02, 1.106456E-02, 1.210522E-02, 1.318014E-02,
+ 1.429377E-02, 1.545004E-02, 1.664093E-02, 1.785302E-02, 1.907018E-02,
+ 2.027369E-02, 2.144805E-02, 2.260041E-02, 2.374789E-02, 2.491247E-02,
+ 2.612106E-02, 2.739923E-02, 2.874993E-02, 3.016909E-02, 3.165145E-02,
+ 3.319038E-02, 3.477912E-02, 3.641495E-02, 3.809569E-02, 3.981843E-02,
+ 4.157940E-02, 4.337098E-02, 4.517180E-02, 4.695420E-02, 4.868718E-02,
+ 5.033657E-02, 5.187611E-02, 5.332218E-02, 5.470603E-02, 5.606335E-02,
+ 5.743393E-02, 5.885107E-02, 6.030809E-02, 6.178644E-02, 6.326570E-02,
+ 6.472352E-02, 6.614749E-02, 6.757256E-02, 6.904928E-02, 7.063280E-02,
+ 7.238339E-02, 7.435960E-02, 7.659383E-02, 7.911436E-02, 8.195345E-02,
+ 8.514816E-02, 8.872657E-02, 9.266008E-02, 9.689723E-02, 1.013746E-01,
+ 1.060145E-01, 1.107377E-01, 1.155111E-01, 1.203122E-01, 1.251161E-01,
+ 1.298957E-01, 1.346299E-01, 1.393309E-01, 1.440235E-01, 1.487372E-01,
+ 1.535066E-01, 1.583644E-01, 1.633199E-01, 1.683761E-01, 1.735365E-01,
+ 1.788048E-01, 1.841819E-01, 1.896559E-01, 1.952101E-01, 2.008259E-01,
+ 2.064828E-01, 2.121826E-01, 2.180279E-01, 2.241586E-01, 2.307302E-01,
+ 2.379160E-01, 2.458706E-01, 2.546023E-01, 2.640760E-01, 2.742490E-01,
+ 2.850680E-01, 2.964837E-01, 3.085010E-01, 3.211393E-01, 3.344175E-01,
+ 3.483536E-01, 3.629601E-01, 3.782275E-01, 3.941359E-01, 4.106582E-01,
+ 4.277595E-01, 4.453993E-01, 4.635396E-01, 4.821376E-01, 5.011430E-01,
+ 5.204972E-01, 5.401387E-01, 5.600208E-01, 5.800972E-01, 6.003172E-01,
+ 6.206256E-01, 6.409398E-01, 6.610772E-01, 6.808134E-01, 6.999044E-01,
+ 7.180890E-01, 7.351593E-01, 7.511821E-01, 7.663143E-01, 7.807352E-01,
+ 7.946448E-01, 8.082074E-01, 8.213817E-01, 8.340701E-01, 8.461711E-01,
+ 8.575799E-01, 8.682408E-01, 8.783061E-01, 8.879907E-01, 8.975211E-01,
+ 9.071347E-01, 9.169947E-01, 9.269295E-01, 9.366731E-01, 9.459482E-01,
+ 9.544675E-01, 9.619834E-01, 9.684390E-01, 9.738289E-01, 9.781519E-01,
+ 9.814106E-01, 9.836669E-01, 9.852081E-01, 9.863813E-01, 9.875357E-01,
+ 9.890228E-01, 9.910811E-01, 9.934913E-01, 9.959172E-01, 9.980205E-01,
+ 9.994608E-01, 9.999930E-01, 9.997557E-01, 9.989839E-01, 9.979123E-01,
+ 9.967737E-01, 9.957356E-01, 9.947115E-01, 9.935534E-01, 9.921156E-01,
+ 9.902549E-01, 9.878596E-01, 9.849324E-01, 9.815036E-01, 9.776035E-01,
+ 9.732611E-01, 9.684764E-01, 9.631369E-01, 9.571062E-01, 9.502540E-01,
+ 9.424569E-01, 9.336897E-01, 9.242893E-01, 9.146707E-01, 9.052333E-01,
+ 8.963613E-01, 8.883069E-01, 8.808462E-01, 8.736445E-01, 8.663755E-01,
+ 8.587203E-01, 8.504295E-01, 8.415047E-01, 8.320109E-01, 8.220154E-01,
+ 8.115868E-01, 8.007874E-01, 7.896515E-01, 7.782053E-01, 7.664733E-01,
+ 7.544785E-01, 7.422473E-01, 7.298229E-01, 7.172525E-01, 7.045818E-01,
+ 6.918553E-01, 6.791009E-01, 6.662846E-01, 6.533595E-01, 6.402807E-01,
+ 6.270066E-01, 6.135148E-01, 5.998494E-01, 5.860682E-01, 5.722261E-01,
+ 5.583746E-01, 5.445535E-01, 5.307673E-01, 5.170130E-01, 5.032889E-01,
+ 4.895950E-01, 4.759442E-01, 4.623958E-01, 4.490154E-01, 4.358622E-01,
+ 4.229897E-01, 4.104152E-01, 3.980356E-01, 3.857300E-01, 3.733907E-01,
+ 3.609245E-01, 3.482860E-01, 3.355702E-01, 3.228963E-01, 3.103704E-01,
+ 2.980865E-01, 2.861160E-01, 2.744822E-01, 2.631953E-01, 2.522628E-01,
+ 2.416902E-01, 2.314809E-01, 2.216378E-01, 2.121622E-01, 2.030542E-01,
+ 1.943124E-01, 1.859227E-01, 1.778274E-01, 1.699654E-01, 1.622841E-01,
+ 1.547397E-01, 1.473081E-01, 1.400169E-01, 1.329013E-01, 1.259913E-01,
+ 1.193120E-01, 1.128820E-01, 1.067113E-01, 1.008052E-01, 9.516653E-02,
+ 8.979594E-02, 8.469044E-02, 7.984009E-02, 7.523372E-02, 7.086061E-02,
+ 6.671045E-02, 6.277360E-02, 5.904179E-02, 5.550703E-02, 5.216139E-02,
+ 4.899699E-02, 4.600578E-02, 4.317885E-02, 4.050755E-02, 3.798376E-02,
+ 3.559982E-02, 3.334856E-02, 3.122332E-02, 2.921780E-02, 2.732601E-02,
+ 2.554223E-02, 2.386121E-02, 2.227859E-02, 2.079020E-02, 1.939185E-02,
+ 1.807939E-02, 1.684817E-02, 1.569188E-02, 1.460446E-02, 1.358062E-02,
+ 1.261573E-02, 1.170696E-02, 1.085608E-02, 1.006476E-02, 9.333376E-03,
+ 8.661284E-03, 8.046048E-03, 7.481130E-03, 6.959987E-03, 6.477070E-03,
+ 6.027677E-03, 5.608169E-03, 5.216691E-03, 4.851785E-03, 4.512008E-03,
+ 4.195941E-03, 3.902057E-03, 3.628371E-03, 3.373005E-03, 3.134315E-03,
+ 2.910864E-03, 2.701528E-03, 2.505796E-03, 2.323231E-03, 2.153333E-03,
+ 1.995557E-03, 1.849316E-03, 1.713976E-03, 1.588899E-03, 1.473453E-03,
+ 1.367022E-03, 1.268954E-03, 1.178421E-03, 1.094644E-03, 1.016943E-03,
+ 9.447269E-04, 8.775171E-04, 8.150438E-04, 7.570755E-04, 7.033755E-04,
+ 6.537050E-04, 6.078048E-04, 5.653435E-04, 5.260046E-04, 4.895061E-04,
+ 4.555970E-04, 4.240548E-04, 3.946860E-04, 3.673178E-04, 3.417941E-04,
+ 3.179738E-04, 2.957441E-04, 2.750558E-04, 2.558640E-04, 2.381142E-04,
+ 2.217445E-04, 2.066711E-04, 1.927474E-04, 1.798315E-04, 1.678023E-04,
+ 1.565566E-04, 1.460168E-04, 1.361535E-04, 1.269451E-04, 1.183671E-04,
+ 1.103928E-04, 1.029908E-04, 9.611836E-05, 8.973323E-05, 8.379694E-05,
+ 7.827442E-05, 7.313312E-05, 6.834142E-05, 6.387035E-05, 5.969389E-05,
+ 5.578862E-05, 5.213509E-05, 4.872179E-05, 4.553845E-05, 4.257443E-05,
+ 3.981884E-05, 3.725877E-05, 3.487467E-05, 3.264765E-05, 3.056140E-05,
+ 2.860175E-05, 2.675841E-05, 2.502943E-05, 2.341373E-05, 2.190914E-05,
+ 2.051259E-05, 1.921902E-05, 1.801796E-05, 1.689899E-05, 1.585309E-05,
+ 1.487243E-05, 1.395085E-05, 1.308528E-05, 1.227327E-05, 1.151233E-05,
+ 1.080001E-05, 1.013364E-05, 9.509919E-06, 8.925630E-06, 8.377852E-06,
+ 7.863920E-06, 7.381539E-06, 6.929096E-06, 6.505136E-06, 6.108221E-06,
+ 5.736935E-06, 5.389831E-06, 5.065269E-06, 4.761667E-06, 4.477561E-06,
+ 4.211597E-06, 3.962457E-06, 3.728674E-06, 3.508881E-06, 3.301868E-06,
+ 3.106561E-06, 2.922119E-06, 2.748208E-06, 2.584560E-06, 2.430867E-06,
+ 2.286786E-06, 2.151905E-06, 2.025656E-06, 1.907464E-06, 1.796794E-06,
+ 1.693147E-06, 1.596032E-06, 1.504903E-06, 1.419245E-06, 1.338600E-06,
+ 1.262556E-06, 1.190771E-06, 1.123031E-06, 1.059151E-06, 9.989507E-07,
+ 9.422514E-07, 8.888804E-07, 8.386690E-07, 7.914539E-07, 7.470770E-07,
+ 7.053860E-07
+ }
+ },
+ {
+ 441, 390.0, 830.0, /* 471 bands from 360 to 830 nm in 1nm steps */
+ 1.0, /* Scale factor */
+ {
+ 1.847260E-02, 2.221101E-02, 2.669819E-02, 3.206937E-02, 3.847832E-02,
+ 4.609784E-02, 5.511953E-02, 6.575257E-02, 7.822113E-02, 9.276013E-02,
+ 1.096090E-01, 1.290077E-01, 1.512047E-01, 1.764441E-01, 2.049517E-01,
+ 2.369246E-01, 2.725123E-01, 3.117820E-01, 3.547064E-01, 4.011473E-01,
+ 4.508369E-01, 5.034164E-01, 5.586361E-01, 6.162734E-01, 6.760982E-01,
+ 7.378822E-01, 8.013019E-01, 8.655573E-01, 9.295791E-01, 9.921293E-01,
+ 1.051821E+00, 1.107509E+00, 1.159527E+00, 1.208869E+00, 1.256834E+00,
+ 1.305008E+00, 1.354758E+00, 1.405594E+00, 1.456414E+00, 1.505960E+00,
+ 1.552826E+00, 1.595902E+00, 1.635768E+00, 1.673573E+00, 1.710604E+00,
+ 1.748280E+00, 1.787504E+00, 1.826609E+00, 1.863108E+00, 1.894332E+00,
+ 1.917479E+00, 1.930529E+00, 1.934819E+00, 1.932650E+00, 1.926395E+00,
+ 1.918437E+00, 1.910430E+00, 1.901224E+00, 1.889000E+00, 1.871996E+00,
+ 1.848545E+00, 1.817792E+00, 1.781627E+00, 1.742514E+00, 1.702749E+00,
+ 1.664439E+00, 1.629207E+00, 1.597360E+00, 1.568896E+00, 1.543823E+00,
+ 1.522157E+00, 1.503611E+00, 1.486673E+00, 1.469595E+00, 1.450709E+00,
+ 1.428440E+00, 1.401587E+00, 1.370094E+00, 1.334220E+00, 1.294275E+00,
+ 1.250610E+00, 1.203696E+00, 1.154316E+00, 1.103284E+00, 1.051347E+00,
+ 9.991789E-01, 9.473958E-01, 8.966222E-01, 8.473981E-01, 8.001576E-01,
+ 7.552379E-01, 7.127879E-01, 6.725198E-01, 6.340976E-01, 5.972433E-01,
+ 5.617313E-01, 5.274921E-01, 4.948809E-01, 4.642586E-01, 4.358841E-01,
+ 4.099313E-01, 3.864261E-01, 3.650566E-01, 3.454812E-01, 3.274095E-01,
+ 3.105939E-01, 2.948102E-01, 2.798194E-01, 2.654100E-01, 2.514084E-01,
+ 2.376753E-01, 2.241211E-01, 2.107484E-01, 1.975839E-01, 1.846574E-01,
+ 1.720018E-01, 1.596918E-01, 1.479415E-01, 1.369428E-01, 1.268279E-01,
+ 1.176796E-01, 1.094970E-01, 1.020943E-01, 9.527993E-02, 8.890075E-02,
+ 8.283548E-02, 7.700982E-02, 7.144001E-02, 6.615436E-02, 6.117199E-02,
+ 5.650407E-02, 5.215121E-02, 4.809566E-02, 4.431720E-02, 4.079734E-02,
+ 3.751912E-02, 3.446846E-02, 3.163764E-02, 2.901901E-02, 2.660364E-02,
+ 2.438164E-02, 2.234097E-02, 2.046415E-02, 1.873456E-02, 1.713788E-02,
+ 1.566174E-02, 1.429644E-02, 1.303702E-02, 1.187897E-02, 1.081725E-02,
+ 9.846470E-03, 8.960687E-03, 8.152811E-03, 7.416025E-03, 6.744115E-03,
+ 6.131421E-03, 5.572778E-03, 5.063463E-03, 4.599169E-03, 4.175971E-03,
+ 3.790291E-03, 3.438952E-03, 3.119341E-03, 2.829038E-03, 2.565722E-03,
+ 2.327186E-03, 2.111280E-03, 1.915766E-03, 1.738589E-03, 1.577920E-03,
+ 1.432128E-03, 1.299781E-03, 1.179667E-03, 1.070694E-03, 9.718623E-04,
+ 8.822531E-04, 8.010231E-04, 7.273884E-04, 6.606347E-04, 6.001146E-04,
+ 5.452416E-04, 4.954847E-04, 4.503642E-04, 4.094455E-04, 3.723345E-04,
+ 3.386739E-04, 3.081396E-04, 2.804370E-04, 2.552996E-04, 2.324859E-04,
+ 2.117772E-04, 1.929758E-04, 1.759024E-04, 1.603947E-04, 1.463059E-04,
+ 1.335031E-04, 1.218660E-04, 1.112857E-04, 1.016634E-04, 9.291003E-05,
+ 8.494468E-05, 7.769425E-05, 7.109247E-05, 6.507936E-05, 5.960061E-05,
+ 5.460706E-05, 5.005417E-05, 4.590157E-05, 4.211268E-05, 3.865437E-05,
+ 3.549661E-05, 3.261220E-05, 2.997643E-05, 2.756693E-05, 2.536339E-05,
+ 2.334738E-05, 2.150221E-05, 1.981268E-05, 1.826500E-05, 1.684667E-05,
+ 1.554631E-05, 1.435360E-05, 1.325915E-05, 1.225443E-05, 1.133169E-05,
+ 1.048387E-05, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00
+ }
+ }
+};
+
+/* CIE (2012) 10-deg XYZ, TC 1-36 proposed 10-deg XYZ */
+/* CMFs transformed from the CIE (2006) 2-deg LMS cone fundamentals */
+static xspect ob_CIE_2012_10[3] = {
+ {
+ 441, 390.0, 830.0, /* 471 bands from 360 to 830 nm in 1nm steps */
+ 1.0, /* Scale factor */
+ {
+ 2.952420E-03, 3.577275E-03, 4.332146E-03, 5.241609E-03, 6.333902E-03,
+ 7.641137E-03, 9.199401E-03, 1.104869E-02, 1.323262E-02, 1.579791E-02,
+ 1.879338E-02, 2.226949E-02, 2.627978E-02, 3.087862E-02, 3.611890E-02,
+ 4.204986E-02, 4.871256E-02, 5.612868E-02, 6.429866E-02, 7.319818E-02,
+ 8.277331E-02, 9.295327E-02, 1.037137E-01, 1.150520E-01, 1.269771E-01,
+ 1.395127E-01, 1.526661E-01, 1.663054E-01, 1.802197E-01, 1.941448E-01,
+ 2.077647E-01, 2.207911E-01, 2.332355E-01, 2.452462E-01, 2.570397E-01,
+ 2.688989E-01, 2.810677E-01, 2.933967E-01, 3.055933E-01, 3.173165E-01,
+ 3.281798E-01, 3.378678E-01, 3.465097E-01, 3.543953E-01, 3.618655E-01,
+ 3.693084E-01, 3.770107E-01, 3.846850E-01, 3.918591E-01, 3.980192E-01,
+ 4.026189E-01, 4.052637E-01, 4.062482E-01, 4.060660E-01, 4.052283E-01,
+ 4.042529E-01, 4.034808E-01, 4.025362E-01, 4.008675E-01, 3.979327E-01,
+ 3.932139E-01, 3.864108E-01, 3.779513E-01, 3.684176E-01, 3.583473E-01,
+ 3.482214E-01, 3.383830E-01, 3.288309E-01, 3.194977E-01, 3.103345E-01,
+ 3.013112E-01, 2.923754E-01, 2.833273E-01, 2.739463E-01, 2.640352E-01,
+ 2.534221E-01, 2.420135E-01, 2.299346E-01, 2.173617E-01, 2.044672E-01,
+ 1.914176E-01, 1.783672E-01, 1.654407E-01, 1.527391E-01, 1.403439E-01,
+ 1.283167E-01, 1.167124E-01, 1.056121E-01, 9.508569E-02, 8.518206E-02,
+ 7.593120E-02, 6.733159E-02, 5.932018E-02, 5.184106E-02, 4.486119E-02,
+ 3.836770E-02, 3.237296E-02, 2.692095E-02, 2.204070E-02, 1.773951E-02,
+ 1.400745E-02, 1.082291E-02, 8.168996E-03, 6.044623E-03, 4.462638E-03,
+ 3.446810E-03, 3.009513E-03, 3.090744E-03, 3.611221E-03, 4.491435E-03,
+ 5.652072E-03, 7.035322E-03, 8.669631E-03, 1.060755E-02, 1.290468E-02,
+ 1.561956E-02, 1.881640E-02, 2.256923E-02, 2.694456E-02, 3.199910E-02,
+ 3.778185E-02, 4.430635E-02, 5.146516E-02, 5.912224E-02, 6.714220E-02,
+ 7.538941E-02, 8.376697E-02, 9.233581E-02, 1.011940E-01, 1.104362E-01,
+ 1.201511E-01, 1.303960E-01, 1.411310E-01, 1.522944E-01, 1.638288E-01,
+ 1.756832E-01, 1.878114E-01, 2.001621E-01, 2.126822E-01, 2.253199E-01,
+ 2.380254E-01, 2.507787E-01, 2.636778E-01, 2.768607E-01, 2.904792E-01,
+ 3.046991E-01, 3.196485E-01, 3.352447E-01, 3.513290E-01, 3.677148E-01,
+ 3.841856E-01, 4.005312E-01, 4.166669E-01, 4.325420E-01, 4.481063E-01,
+ 4.633109E-01, 4.781440E-01, 4.927483E-01, 5.073315E-01, 5.221315E-01,
+ 5.374170E-01, 5.534217E-01, 5.701242E-01, 5.874093E-01, 6.051269E-01,
+ 6.230892E-01, 6.410999E-01, 6.590659E-01, 6.769436E-01, 6.947143E-01,
+ 7.123849E-01, 7.299978E-01, 7.476478E-01, 7.654250E-01, 7.834009E-01,
+ 8.016277E-01, 8.201041E-01, 8.386843E-01, 8.571936E-01, 8.754652E-01,
+ 8.933408E-01, 9.106772E-01, 9.273554E-01, 9.432502E-01, 9.582244E-01,
+ 9.721304E-01, 9.849237E-01, 9.970067E-01, 1.008907E+00, 1.021163E+00,
+ 1.034327E+00, 1.048753E+00, 1.063937E+00, 1.079166E+00, 1.093723E+00,
+ 1.106886E+00, 1.118106E+00, 1.127493E+00, 1.135317E+00, 1.141838E+00,
+ 1.147304E+00, 1.151897E+00, 1.155582E+00, 1.158284E+00, 1.159934E+00,
+ 1.160477E+00, 1.159890E+00, 1.158259E+00, 1.155692E+00, 1.152293E+00,
+ 1.148163E+00, 1.143345E+00, 1.137685E+00, 1.130993E+00, 1.123097E+00,
+ 1.113846E+00, 1.103152E+00, 1.091121E+00, 1.077902E+00, 1.063644E+00,
+ 1.048485E+00, 1.032546E+00, 1.015870E+00, 9.984859E-01, 9.804227E-01,
+ 9.617111E-01, 9.424119E-01, 9.227049E-01, 9.027804E-01, 8.828123E-01,
+ 8.629581E-01, 8.432731E-01, 8.234742E-01, 8.032342E-01, 7.822715E-01,
+ 7.603498E-01, 7.373739E-01, 7.136470E-01, 6.895336E-01, 6.653567E-01,
+ 6.413984E-01, 6.178723E-01, 5.948484E-01, 5.723600E-01, 5.504353E-01,
+ 5.290979E-01, 5.083728E-01, 4.883006E-01, 4.689171E-01, 4.502486E-01,
+ 4.323126E-01, 4.150790E-01, 3.983657E-01, 3.819846E-01, 3.657821E-01,
+ 3.496358E-01, 3.334937E-01, 3.174776E-01, 3.017298E-01, 2.863684E-01,
+ 2.714900E-01, 2.571632E-01, 2.434102E-01, 2.302389E-01, 2.176527E-01,
+ 2.056507E-01, 1.942251E-01, 1.833530E-01, 1.730097E-01, 1.631716E-01,
+ 1.538163E-01, 1.449230E-01, 1.364729E-01, 1.284483E-01, 1.208320E-01,
+ 1.136072E-01, 1.067579E-01, 1.002685E-01, 9.412394E-02, 8.830929E-02,
+ 8.281010E-02, 7.761208E-02, 7.270064E-02, 6.806167E-02, 6.368176E-02,
+ 5.954815E-02, 5.564917E-02, 5.197543E-02, 4.851788E-02, 4.526737E-02,
+ 4.221473E-02, 3.934954E-02, 3.665730E-02, 3.412407E-02, 3.173768E-02,
+ 2.948752E-02, 2.736717E-02, 2.538113E-02, 2.353356E-02, 2.182558E-02,
+ 2.025590E-02, 1.881892E-02, 1.749930E-02, 1.628167E-02, 1.515301E-02,
+ 1.410230E-02, 1.312106E-02, 1.220509E-02, 1.135114E-02, 1.055593E-02,
+ 9.816228E-03, 9.128517E-03, 8.488116E-03, 7.890589E-03, 7.332061E-03,
+ 6.809147E-03, 6.319204E-03, 5.861036E-03, 5.433624E-03, 5.035802E-03,
+ 4.666298E-03, 4.323750E-03, 4.006709E-03, 3.713708E-03, 3.443294E-03,
+ 3.194041E-03, 2.964424E-03, 2.752492E-03, 2.556406E-03, 2.374564E-03,
+ 2.205568E-03, 2.048294E-03, 1.902113E-03, 1.766485E-03, 1.640857E-03,
+ 1.524672E-03, 1.417322E-03, 1.318031E-03, 1.226059E-03, 1.140743E-03,
+ 1.061495E-03, 9.877949E-04, 9.191847E-04, 8.552568E-04, 7.956433E-04,
+ 7.400120E-04, 6.880980E-04, 6.397864E-04, 5.949726E-04, 5.535291E-04,
+ 5.153113E-04, 4.801234E-04, 4.476245E-04, 4.174846E-04, 3.894221E-04,
+ 3.631969E-04, 3.386279E-04, 3.156452E-04, 2.941966E-04, 2.742235E-04,
+ 2.556624E-04, 2.384390E-04, 2.224525E-04, 2.076036E-04, 1.938018E-04,
+ 1.809649E-04, 1.690167E-04, 1.578839E-04, 1.474993E-04, 1.378026E-04,
+ 1.287394E-04, 1.202644E-04, 1.123502E-04, 1.049725E-04, 9.810596E-05,
+ 9.172477E-05, 8.579861E-05, 8.028174E-05, 7.513013E-05, 7.030565E-05,
+ 6.577532E-05, 6.151508E-05, 5.752025E-05, 5.378813E-05, 5.031350E-05,
+ 4.708916E-05, 4.410322E-05, 4.133150E-05, 3.874992E-05, 3.633762E-05,
+ 3.407653E-05, 3.195242E-05, 2.995808E-05, 2.808781E-05, 2.633581E-05,
+ 2.469630E-05, 2.316311E-05, 2.172855E-05, 2.038519E-05, 1.912625E-05,
+ 1.794555E-05, 1.683776E-05, 1.579907E-05, 1.482604E-05, 1.391527E-05,
+ 1.306345E-05, 1.226720E-05, 1.152279E-05, 1.082663E-05, 1.017540E-05,
+ 9.565993E-06, 8.995405E-06, 8.460253E-06, 7.957382E-06, 7.483997E-06,
+ 7.037621E-06, 6.616311E-06, 6.219265E-06, 5.845844E-06, 5.495311E-06,
+ 5.166853E-06, 4.859511E-06, 4.571973E-06, 4.302920E-06, 4.051121E-06,
+ 3.815429E-06, 3.594719E-06, 3.387736E-06, 3.193301E-06, 3.010363E-06,
+ 2.837980E-06, 2.675365E-06, 2.522020E-06, 2.377511E-06, 2.241417E-06,
+ 2.113325E-06, 1.992830E-06, 1.879542E-06, 1.773083E-06, 1.673086E-06,
+ 1.579199E-06
+ }
+ },
+ {
+ 441, 390.0, 830.0, /* 471 bands from 360 to 830 nm in 1nm steps */
+ 1.0, /* Scale factor */
+ {
+ 4.076779E-04, 4.977769E-04, 6.064754E-04, 7.370040E-04, 8.929388E-04,
+ 1.078166E-03, 1.296816E-03, 1.553159E-03, 1.851463E-03, 2.195795E-03,
+ 2.589775E-03, 3.036799E-03, 3.541926E-03, 4.111422E-03, 4.752618E-03,
+ 5.474207E-03, 6.285034E-03, 7.188068E-03, 8.181786E-03, 9.260417E-03,
+ 1.041303E-02, 1.162642E-02, 1.289884E-02, 1.423442E-02, 1.564080E-02,
+ 1.712968E-02, 1.871265E-02, 2.038394E-02, 2.212935E-02, 2.392985E-02,
+ 2.576133E-02, 2.760156E-02, 2.945513E-02, 3.133884E-02, 3.327575E-02,
+ 3.529554E-02, 3.742705E-02, 3.967137E-02, 4.201998E-02, 4.446166E-02,
+ 4.698226E-02, 4.956742E-02, 5.221219E-02, 5.491387E-02, 5.766919E-02,
+ 6.047429E-02, 6.332195E-02, 6.619271E-02, 6.906185E-02, 7.190190E-02,
+ 7.468288E-02, 7.738452E-02, 8.003601E-02, 8.268524E-02, 8.538745E-02,
+ 8.820537E-02, 9.118925E-02, 9.431041E-02, 9.751346E-02, 1.007349E-01,
+ 1.039030E-01, 1.069639E-01, 1.099676E-01, 1.129992E-01, 1.161541E-01,
+ 1.195389E-01, 1.232503E-01, 1.273047E-01, 1.316964E-01, 1.364178E-01,
+ 1.414586E-01, 1.468003E-01, 1.524002E-01, 1.582021E-01, 1.641400E-01,
+ 1.701373E-01, 1.761233E-01, 1.820896E-01, 1.880463E-01, 1.940065E-01,
+ 1.999859E-01, 2.060054E-01, 2.120981E-01, 2.183041E-01, 2.246686E-01,
+ 2.312426E-01, 2.380741E-01, 2.451798E-01, 2.525682E-01, 2.602479E-01,
+ 2.682271E-01, 2.765005E-01, 2.850035E-01, 2.936475E-01, 3.023319E-01,
+ 3.109438E-01, 3.194105E-01, 3.278683E-01, 3.365263E-01, 3.456176E-01,
+ 3.554018E-01, 3.660893E-01, 3.775857E-01, 3.896960E-01, 4.021947E-01,
+ 4.148227E-01, 4.273539E-01, 4.398206E-01, 4.523360E-01, 4.650298E-01,
+ 4.780482E-01, 4.915173E-01, 5.054224E-01, 5.197057E-01, 5.343012E-01,
+ 5.491344E-01, 5.641302E-01, 5.792416E-01, 5.944264E-01, 6.096388E-01,
+ 6.248296E-01, 6.399656E-01, 6.550943E-01, 6.702903E-01, 6.856375E-01,
+ 7.012292E-01, 7.171103E-01, 7.330917E-01, 7.489041E-01, 7.642530E-01,
+ 7.788199E-01, 7.923410E-01, 8.048510E-01, 8.164747E-01, 8.273520E-01,
+ 8.376358E-01, 8.474653E-01, 8.568868E-01, 8.659242E-01, 8.746041E-01,
+ 8.829552E-01, 8.910274E-01, 8.989495E-01, 9.068753E-01, 9.149652E-01,
+ 9.233858E-01, 9.322325E-01, 9.412862E-01, 9.502378E-01, 9.587647E-01,
+ 9.665325E-01, 9.732504E-01, 9.788415E-01, 9.832867E-01, 9.865720E-01,
+ 9.886887E-01, 9.897056E-01, 9.899849E-01, 9.899624E-01, 9.900731E-01,
+ 9.907500E-01, 9.922826E-01, 9.943837E-01, 9.966221E-01, 9.985649E-01,
+ 9.997775E-01, 9.999440E-01, 9.992200E-01, 9.978793E-01, 9.961934E-01,
+ 9.944304E-01, 9.927831E-01, 9.911578E-01, 9.893925E-01, 9.873288E-01,
+ 9.848127E-01, 9.817253E-01, 9.780714E-01, 9.738860E-01, 9.692028E-01,
+ 9.640545E-01, 9.584409E-01, 9.522379E-01, 9.452968E-01, 9.374773E-01,
+ 9.286495E-01, 9.187953E-01, 9.083014E-01, 8.976352E-01, 8.872401E-01,
+ 8.775360E-01, 8.687920E-01, 8.607474E-01, 8.530233E-01, 8.452535E-01,
+ 8.370838E-01, 8.282409E-01, 8.187320E-01, 8.086352E-01, 7.980296E-01,
+ 7.869950E-01, 7.756040E-01, 7.638996E-01, 7.519157E-01, 7.396832E-01,
+ 7.272309E-01, 7.145878E-01, 7.017926E-01, 6.888866E-01, 6.759103E-01,
+ 6.629035E-01, 6.498911E-01, 6.368410E-01, 6.237092E-01, 6.104541E-01,
+ 5.970375E-01, 5.834395E-01, 5.697044E-01, 5.558892E-01, 5.420475E-01,
+ 5.282296E-01, 5.144746E-01, 5.007881E-01, 4.871687E-01, 4.736160E-01,
+ 4.601308E-01, 4.467260E-01, 4.334589E-01, 4.203919E-01, 4.075810E-01,
+ 3.950755E-01, 3.828894E-01, 3.709190E-01, 3.590447E-01, 3.471615E-01,
+ 3.351794E-01, 3.230562E-01, 3.108859E-01, 2.987840E-01, 2.868527E-01,
+ 2.751807E-01, 2.638343E-01, 2.528330E-01, 2.421835E-01, 2.318904E-01,
+ 2.219564E-01, 2.123826E-01, 2.031698E-01, 1.943179E-01, 1.858250E-01,
+ 1.776882E-01, 1.698926E-01, 1.623822E-01, 1.550986E-01, 1.479918E-01,
+ 1.410203E-01, 1.341614E-01, 1.274401E-01, 1.208887E-01, 1.145345E-01,
+ 1.083996E-01, 1.025007E-01, 9.684588E-02, 9.143944E-02, 8.628318E-02,
+ 8.137687E-02, 7.671708E-02, 7.229404E-02, 6.809696E-02, 6.411549E-02,
+ 6.033976E-02, 5.676054E-02, 5.336992E-02, 5.016027E-02, 4.712405E-02,
+ 4.425383E-02, 4.154205E-02, 3.898042E-02, 3.656091E-02, 3.427597E-02,
+ 3.211852E-02, 3.008192E-02, 2.816001E-02, 2.634698E-02, 2.463731E-02,
+ 2.302574E-02, 2.150743E-02, 2.007838E-02, 1.873474E-02, 1.747269E-02,
+ 1.628841E-02, 1.517767E-02, 1.413473E-02, 1.315408E-02, 1.223092E-02,
+ 1.136106E-02, 1.054190E-02, 9.775050E-03, 9.061962E-03, 8.402962E-03,
+ 7.797457E-03, 7.243230E-03, 6.734381E-03, 6.265001E-03, 5.830085E-03,
+ 5.425391E-03, 5.047634E-03, 4.695140E-03, 4.366592E-03, 4.060685E-03,
+ 3.776140E-03, 3.511578E-03, 3.265211E-03, 3.035344E-03, 2.820496E-03,
+ 2.619372E-03, 2.430960E-03, 2.254796E-03, 2.090489E-03, 1.937586E-03,
+ 1.795595E-03, 1.663989E-03, 1.542195E-03, 1.429639E-03, 1.325752E-03,
+ 1.229980E-03, 1.141734E-03, 1.060269E-03, 9.848854E-04, 9.149703E-04,
+ 8.499903E-04, 7.895158E-04, 7.333038E-04, 6.811458E-04, 6.328287E-04,
+ 5.881375E-04, 5.468389E-04, 5.086349E-04, 4.732403E-04, 4.404016E-04,
+ 4.098928E-04, 3.815137E-04, 3.550902E-04, 3.304668E-04, 3.075030E-04,
+ 2.860718E-04, 2.660718E-04, 2.474586E-04, 2.301919E-04, 2.142225E-04,
+ 1.994949E-04, 1.859336E-04, 1.734067E-04, 1.617865E-04, 1.509641E-04,
+ 1.408466E-04, 1.313642E-04, 1.224905E-04, 1.142060E-04, 1.064886E-04,
+ 9.931439E-05, 9.265512E-05, 8.647225E-05, 8.072780E-05, 7.538716E-05,
+ 7.041878E-05, 6.579338E-05, 6.148250E-05, 5.746008E-05, 5.370272E-05,
+ 5.018934E-05, 4.690245E-05, 4.383167E-05, 4.096780E-05, 3.830123E-05,
+ 3.582218E-05, 3.351903E-05, 3.137419E-05, 2.937068E-05, 2.749380E-05,
+ 2.573083E-05, 2.407249E-05, 2.251704E-05, 2.106350E-05, 1.970991E-05,
+ 1.845353E-05, 1.728979E-05, 1.620928E-05, 1.520262E-05, 1.426169E-05,
+ 1.337946E-05, 1.255038E-05, 1.177169E-05, 1.104118E-05, 1.035662E-05,
+ 9.715798E-06, 9.116316E-06, 8.555201E-06, 8.029561E-06, 7.536768E-06,
+ 7.074424E-06, 6.640464E-06, 6.233437E-06, 5.852035E-06, 5.494963E-06,
+ 5.160948E-06, 4.848687E-06, 4.556705E-06, 4.283580E-06, 4.027993E-06,
+ 3.788729E-06, 3.564599E-06, 3.354285E-06, 3.156557E-06, 2.970326E-06,
+ 2.794625E-06, 2.628701E-06, 2.472248E-06, 2.325030E-06, 2.186768E-06,
+ 2.057152E-06, 1.935813E-06, 1.822239E-06, 1.715914E-06, 1.616355E-06,
+ 1.523114E-06, 1.435750E-06, 1.353771E-06, 1.276714E-06, 1.204166E-06,
+ 1.135758E-06, 1.071181E-06, 1.010243E-06, 9.527779E-07, 8.986224E-07,
+ 8.476168E-07, 7.996052E-07, 7.544361E-07, 7.119624E-07, 6.720421E-07,
+ 6.345380E-07
+ }
+ },
+ {
+ 441, 390.0, 830.0, /* 471 bands from 360 to 830 nm in 1nm steps */
+ 1.0, /* Scale factor */
+ {
+ 1.318752E-02, 1.597879E-02, 1.935758E-02, 2.343758E-02, 2.835021E-02,
+ 3.424588E-02, 4.129467E-02, 4.968641E-02, 5.962964E-02, 7.134926E-02,
+ 8.508254E-02, 1.010753E-01, 1.195838E-01, 1.408647E-01, 1.651644E-01,
+ 1.927065E-01, 2.236782E-01, 2.582109E-01, 2.963632E-01, 3.381018E-01,
+ 3.832822E-01, 4.316884E-01, 4.832440E-01, 5.379345E-01, 5.957740E-01,
+ 6.568187E-01, 7.210459E-01, 7.878635E-01, 8.563391E-01, 9.253017E-01,
+ 9.933444E-01, 1.059178E+00, 1.122832E+00, 1.184947E+00, 1.246476E+00,
+ 1.308674E+00, 1.372628E+00, 1.437661E+00, 1.502449E+00, 1.565456E+00,
+ 1.624940E+00, 1.679488E+00, 1.729668E+00, 1.776755E+00, 1.822228E+00,
+ 1.867751E+00, 1.914504E+00, 1.961055E+00, 2.005136E+00, 2.044296E+00,
+ 2.075946E+00, 2.098231E+00, 2.112591E+00, 2.121427E+00, 2.127239E+00,
+ 2.132574E+00, 2.139093E+00, 2.144815E+00, 2.146832E+00, 2.142250E+00,
+ 2.128264E+00, 2.103205E+00, 2.069388E+00, 2.030030E+00, 1.988178E+00,
+ 1.946651E+00, 1.907521E+00, 1.870689E+00, 1.835578E+00, 1.801657E+00,
+ 1.768440E+00, 1.735338E+00, 1.701254E+00, 1.665053E+00, 1.625712E+00,
+ 1.582342E+00, 1.534439E+00, 1.482544E+00, 1.427438E+00, 1.369876E+00,
+ 1.310576E+00, 1.250226E+00, 1.189511E+00, 1.129050E+00, 1.069379E+00,
+ 1.010952E+00, 9.541809E-01, 8.995253E-01, 8.473720E-01, 7.980093E-01,
+ 7.516389E-01, 7.082645E-01, 6.673867E-01, 6.284798E-01, 5.911174E-01,
+ 5.549619E-01, 5.198843E-01, 4.862772E-01, 4.545497E-01, 4.249955E-01,
+ 3.978114E-01, 3.730218E-01, 3.502618E-01, 3.291407E-01, 3.093356E-01,
+ 2.905816E-01, 2.726773E-01, 2.555143E-01, 2.390188E-01, 2.231335E-01,
+ 2.078158E-01, 1.930407E-01, 1.788089E-01, 1.651287E-01, 1.520103E-01,
+ 1.394643E-01, 1.275353E-01, 1.163771E-01, 1.061161E-01, 9.682266E-02,
+ 8.852389E-02, 8.118263E-02, 7.463132E-02, 6.870644E-02, 6.327834E-02,
+ 5.824484E-02, 5.353812E-02, 4.914863E-02, 4.507511E-02, 4.131175E-02,
+ 3.784916E-02, 3.467234E-02, 3.175471E-02, 2.907029E-02, 2.659651E-02,
+ 2.431375E-02, 2.220677E-02, 2.026852E-02, 1.849246E-02, 1.687084E-02,
+ 1.539505E-02, 1.405450E-02, 1.283354E-02, 1.171754E-02, 1.069415E-02,
+ 9.753000E-03, 8.886096E-03, 8.089323E-03, 7.359131E-03, 6.691736E-03,
+ 6.083223E-03, 5.529423E-03, 5.025504E-03, 4.566879E-03, 4.149405E-03,
+ 3.769336E-03, 3.423302E-03, 3.108313E-03, 2.821650E-03, 2.560830E-03,
+ 2.323578E-03, 2.107847E-03, 1.911867E-03, 1.734006E-03, 1.572736E-03,
+ 1.426627E-03, 1.294325E-03, 1.174475E-03, 1.065842E-03, 9.673215E-04,
+ 8.779264E-04, 7.967847E-04, 7.231502E-04, 6.563501E-04, 5.957678E-04,
+ 5.408385E-04, 4.910441E-04, 4.459046E-04, 4.049826E-04, 3.678818E-04,
+ 3.342429E-04, 3.037407E-04, 2.760809E-04, 2.509970E-04, 2.282474E-04,
+ 2.076129E-04, 1.888948E-04, 1.719127E-04, 1.565030E-04, 1.425177E-04,
+ 1.298230E-04, 1.182974E-04, 1.078310E-04, 9.832455E-05, 8.968787E-05,
+ 8.183954E-05, 7.470582E-05, 6.821991E-05, 6.232132E-05, 5.695534E-05,
+ 5.207245E-05, 4.762781E-05, 4.358082E-05, 3.989468E-05, 3.653612E-05,
+ 3.347499E-05, 3.068400E-05, 2.813839E-05, 2.581574E-05, 2.369574E-05,
+ 2.175998E-05, 1.999179E-05, 1.837603E-05, 1.689896E-05, 1.554815E-05,
+ 1.431231E-05, 1.318119E-05, 1.214548E-05, 1.119673E-05, 1.032727E-05,
+ 9.530130E-06, 8.798979E-06, 8.128065E-06, 7.512160E-06, 6.946506E-06,
+ 6.426776E-06, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00, 0.000000E+00,
+ 0.000000E+00
+ }
+ }
+};
+
#ifndef SALONEINSTLIB
/* Standard CIE 1964 10 degree observer, */
/* adjusted for compatibility with 2 degree observer. */
@@ -1959,898 +2535,6 @@ static xspect ob_EBU_2012[3] = {
}
};
-#ifdef NEVER
-
-CIE TC 1-36 proposed
-2-deg XYZ CMFs transformed from the CIE (2006) 2-deg LMS cone fundamentals
-
-390 3.769647E-03 4.146161E-04 1.847260E-02
-391 4.532416E-03 5.028333E-04 2.221101E-02
-392 5.446553E-03 6.084991E-04 2.669819E-02
-393 6.538868E-03 7.344436E-04 3.206937E-02
-394 7.839699E-03 8.837389E-04 3.847832E-02
-395 9.382967E-03 1.059646E-03 4.609784E-02
-396 1.120608E-02 1.265532E-03 5.511953E-02
-397 1.334965E-02 1.504753E-03 6.575257E-02
-398 1.585690E-02 1.780493E-03 7.822113E-02
-399 1.877286E-02 2.095572E-03 9.276013E-02
-400 2.214302E-02 2.452194E-03 1.096090E-01
-401 2.601285E-02 2.852216E-03 1.290077E-01
-402 3.043036E-02 3.299115E-03 1.512047E-01
-403 3.544325E-02 3.797466E-03 1.764441E-01
-404 4.109640E-02 4.352768E-03 2.049517E-01
-405 4.742986E-02 4.971717E-03 2.369246E-01
-406 5.447394E-02 5.661014E-03 2.725123E-01
-407 6.223612E-02 6.421615E-03 3.117820E-01
-408 7.070048E-02 7.250312E-03 3.547064E-01
-409 7.982513E-02 8.140173E-03 4.011473E-01
-410 8.953803E-02 9.079860E-03 4.508369E-01
-411 9.974848E-02 1.005608E-02 5.034164E-01
-412 1.104019E-01 1.106456E-02 5.586361E-01
-413 1.214566E-01 1.210522E-02 6.162734E-01
-414 1.328741E-01 1.318014E-02 6.760982E-01
-415 1.446214E-01 1.429377E-02 7.378822E-01
-416 1.566468E-01 1.545004E-02 8.013019E-01
-417 1.687901E-01 1.664093E-02 8.655573E-01
-418 1.808328E-01 1.785302E-02 9.295791E-01
-419 1.925216E-01 1.907018E-02 9.921293E-01
-420 2.035729E-01 2.027369E-02 1.051821E+00
-421 2.137531E-01 2.144805E-02 1.107509E+00
-422 2.231348E-01 2.260041E-02 1.159527E+00
-423 2.319245E-01 2.374789E-02 1.208869E+00
-424 2.403892E-01 2.491247E-02 1.256834E+00
-425 2.488523E-01 2.612106E-02 1.305008E+00
-426 2.575896E-01 2.739923E-02 1.354758E+00
-427 2.664991E-01 2.874993E-02 1.405594E+00
-428 2.753532E-01 3.016909E-02 1.456414E+00
-429 2.838921E-01 3.165145E-02 1.505960E+00
-430 2.918246E-01 3.319038E-02 1.552826E+00
-431 2.989200E-01 3.477912E-02 1.595902E+00
-432 3.052993E-01 3.641495E-02 1.635768E+00
-433 3.112031E-01 3.809569E-02 1.673573E+00
-434 3.169047E-01 3.981843E-02 1.710604E+00
-435 3.227087E-01 4.157940E-02 1.748280E+00
-436 3.288194E-01 4.337098E-02 1.787504E+00
-437 3.349242E-01 4.517180E-02 1.826609E+00
-438 3.405452E-01 4.695420E-02 1.863108E+00
-439 3.451688E-01 4.868718E-02 1.894332E+00
-440 3.482554E-01 5.033657E-02 1.917479E+00
-441 3.494153E-01 5.187611E-02 1.930529E+00
-442 3.489075E-01 5.332218E-02 1.934819E+00
-443 3.471746E-01 5.470603E-02 1.932650E+00
-444 3.446705E-01 5.606335E-02 1.926395E+00
-445 3.418483E-01 5.743393E-02 1.918437E+00
-446 3.390240E-01 5.885107E-02 1.910430E+00
-447 3.359926E-01 6.030809E-02 1.901224E+00
-448 3.324276E-01 6.178644E-02 1.889000E+00
-449 3.280157E-01 6.326570E-02 1.871996E+00
-450 3.224637E-01 6.472352E-02 1.848545E+00
-451 3.156225E-01 6.614749E-02 1.817792E+00
-452 3.078201E-01 6.757256E-02 1.781627E+00
-453 2.994771E-01 6.904928E-02 1.742514E+00
-454 2.909776E-01 7.063280E-02 1.702749E+00
-455 2.826646E-01 7.238339E-02 1.664439E+00
-456 2.747962E-01 7.435960E-02 1.629207E+00
-457 2.674312E-01 7.659383E-02 1.597360E+00
-458 2.605847E-01 7.911436E-02 1.568896E+00
-459 2.542749E-01 8.195345E-02 1.543823E+00
-460 2.485254E-01 8.514816E-02 1.522157E+00
-461 2.433039E-01 8.872657E-02 1.503611E+00
-462 2.383414E-01 9.266008E-02 1.486673E+00
-463 2.333253E-01 9.689723E-02 1.469595E+00
-464 2.279619E-01 1.013746E-01 1.450709E+00
-465 2.219781E-01 1.060145E-01 1.428440E+00
-466 2.151735E-01 1.107377E-01 1.401587E+00
-467 2.075619E-01 1.155111E-01 1.370094E+00
-468 1.992183E-01 1.203122E-01 1.334220E+00
-469 1.902290E-01 1.251161E-01 1.294275E+00
-470 1.806905E-01 1.298957E-01 1.250610E+00
-471 1.707154E-01 1.346299E-01 1.203696E+00
-472 1.604471E-01 1.393309E-01 1.154316E+00
-473 1.500244E-01 1.440235E-01 1.103284E+00
-474 1.395705E-01 1.487372E-01 1.051347E+00
-475 1.291920E-01 1.535066E-01 9.991789E-01
-476 1.189859E-01 1.583644E-01 9.473958E-01
-477 1.090615E-01 1.633199E-01 8.966222E-01
-478 9.951424E-02 1.683761E-01 8.473981E-01
-479 9.041850E-02 1.735365E-01 8.001576E-01
-480 8.182895E-02 1.788048E-01 7.552379E-01
-481 7.376817E-02 1.841819E-01 7.127879E-01
-482 6.619477E-02 1.896559E-01 6.725198E-01
-483 5.906380E-02 1.952101E-01 6.340976E-01
-484 5.234242E-02 2.008259E-01 5.972433E-01
-485 4.600865E-02 2.064828E-01 5.617313E-01
-486 4.006154E-02 2.121826E-01 5.274921E-01
-487 3.454373E-02 2.180279E-01 4.948809E-01
-488 2.949091E-02 2.241586E-01 4.642586E-01
-489 2.492140E-02 2.307302E-01 4.358841E-01
-490 2.083981E-02 2.379160E-01 4.099313E-01
-491 1.723591E-02 2.458706E-01 3.864261E-01
-492 1.407924E-02 2.546023E-01 3.650566E-01
-493 1.134516E-02 2.640760E-01 3.454812E-01
-494 9.019658E-03 2.742490E-01 3.274095E-01
-495 7.097731E-03 2.850680E-01 3.105939E-01
-496 5.571145E-03 2.964837E-01 2.948102E-01
-497 4.394566E-03 3.085010E-01 2.798194E-01
-498 3.516303E-03 3.211393E-01 2.654100E-01
-499 2.887638E-03 3.344175E-01 2.514084E-01
-500 2.461588E-03 3.483536E-01 2.376753E-01
-501 2.206348E-03 3.629601E-01 2.241211E-01
-502 2.149559E-03 3.782275E-01 2.107484E-01
-503 2.337091E-03 3.941359E-01 1.975839E-01
-504 2.818931E-03 4.106582E-01 1.846574E-01
-505 3.649178E-03 4.277595E-01 1.720018E-01
-506 4.891359E-03 4.453993E-01 1.596918E-01
-507 6.629364E-03 4.635396E-01 1.479415E-01
-508 8.942902E-03 4.821376E-01 1.369428E-01
-509 1.190224E-02 5.011430E-01 1.268279E-01
-510 1.556989E-02 5.204972E-01 1.176796E-01
-511 1.997668E-02 5.401387E-01 1.094970E-01
-512 2.504698E-02 5.600208E-01 1.020943E-01
-513 3.067530E-02 5.800972E-01 9.527993E-02
-514 3.674999E-02 6.003172E-01 8.890075E-02
-515 4.315171E-02 6.206256E-01 8.283548E-02
-516 4.978584E-02 6.409398E-01 7.700982E-02
-517 5.668554E-02 6.610772E-01 7.144001E-02
-518 6.391651E-02 6.808134E-01 6.615436E-02
-519 7.154352E-02 6.999044E-01 6.117199E-02
-520 7.962917E-02 7.180890E-01 5.650407E-02
-521 8.821473E-02 7.351593E-01 5.215121E-02
-522 9.726978E-02 7.511821E-01 4.809566E-02
-523 1.067504E-01 7.663143E-01 4.431720E-02
-524 1.166192E-01 7.807352E-01 4.079734E-02
-525 1.268468E-01 7.946448E-01 3.751912E-02
-526 1.374060E-01 8.082074E-01 3.446846E-02
-527 1.482471E-01 8.213817E-01 3.163764E-02
-528 1.593076E-01 8.340701E-01 2.901901E-02
-529 1.705181E-01 8.461711E-01 2.660364E-02
-530 1.818026E-01 8.575799E-01 2.438164E-02
-531 1.931090E-01 8.682408E-01 2.234097E-02
-532 2.045085E-01 8.783061E-01 2.046415E-02
-533 2.161166E-01 8.879907E-01 1.873456E-02
-534 2.280650E-01 8.975211E-01 1.713788E-02
-535 2.405015E-01 9.071347E-01 1.566174E-02
-536 2.535441E-01 9.169947E-01 1.429644E-02
-537 2.671300E-01 9.269295E-01 1.303702E-02
-538 2.811351E-01 9.366731E-01 1.187897E-02
-539 2.954164E-01 9.459482E-01 1.081725E-02
-540 3.098117E-01 9.544675E-01 9.846470E-03
-541 3.241678E-01 9.619834E-01 8.960687E-03
-542 3.384319E-01 9.684390E-01 8.152811E-03
-543 3.525786E-01 9.738289E-01 7.416025E-03
-544 3.665839E-01 9.781519E-01 6.744115E-03
-545 3.804244E-01 9.814106E-01 6.131421E-03
-546 3.940988E-01 9.836669E-01 5.572778E-03
-547 4.076972E-01 9.852081E-01 5.063463E-03
-548 4.213484E-01 9.863813E-01 4.599169E-03
-549 4.352003E-01 9.875357E-01 4.175971E-03
-550 4.494206E-01 9.890228E-01 3.790291E-03
-551 4.641616E-01 9.910811E-01 3.438952E-03
-552 4.794395E-01 9.934913E-01 3.119341E-03
-553 4.952180E-01 9.959172E-01 2.829038E-03
-554 5.114395E-01 9.980205E-01 2.565722E-03
-555 5.280233E-01 9.994608E-01 2.327186E-03
-556 5.448696E-01 9.999930E-01 2.111280E-03
-557 5.618898E-01 9.997557E-01 1.915766E-03
-558 5.790137E-01 9.989839E-01 1.738589E-03
-559 5.961882E-01 9.979123E-01 1.577920E-03
-560 6.133784E-01 9.967737E-01 1.432128E-03
-561 6.305897E-01 9.957356E-01 1.299781E-03
-562 6.479223E-01 9.947115E-01 1.179667E-03
-563 6.654866E-01 9.935534E-01 1.070694E-03
-564 6.833782E-01 9.921156E-01 9.718623E-04
-565 7.016774E-01 9.902549E-01 8.822531E-04
-566 7.204110E-01 9.878596E-01 8.010231E-04
-567 7.394495E-01 9.849324E-01 7.273884E-04
-568 7.586285E-01 9.815036E-01 6.606347E-04
-569 7.777885E-01 9.776035E-01 6.001146E-04
-570 7.967750E-01 9.732611E-01 5.452416E-04
-571 8.154530E-01 9.684764E-01 4.954847E-04
-572 8.337389E-01 9.631369E-01 4.503642E-04
-573 8.515493E-01 9.571062E-01 4.094455E-04
-574 8.687862E-01 9.502540E-01 3.723345E-04
-575 8.853376E-01 9.424569E-01 3.386739E-04
-576 9.011588E-01 9.336897E-01 3.081396E-04
-577 9.165278E-01 9.242893E-01 2.804370E-04
-578 9.318245E-01 9.146707E-01 2.552996E-04
-579 9.474524E-01 9.052333E-01 2.324859E-04
-580 9.638388E-01 8.963613E-01 2.117772E-04
-581 9.812596E-01 8.883069E-01 1.929758E-04
-582 9.992953E-01 8.808462E-01 1.759024E-04
-583 1.017343E+00 8.736445E-01 1.603947E-04
-584 1.034790E+00 8.663755E-01 1.463059E-04
-585 1.051011E+00 8.587203E-01 1.335031E-04
-586 1.065522E+00 8.504295E-01 1.218660E-04
-587 1.078421E+00 8.415047E-01 1.112857E-04
-588 1.089944E+00 8.320109E-01 1.016634E-04
-589 1.100320E+00 8.220154E-01 9.291003E-05
-590 1.109767E+00 8.115868E-01 8.494468E-05
-591 1.118438E+00 8.007874E-01 7.769425E-05
-592 1.126266E+00 7.896515E-01 7.109247E-05
-593 1.133138E+00 7.782053E-01 6.507936E-05
-594 1.138952E+00 7.664733E-01 5.960061E-05
-595 1.143620E+00 7.544785E-01 5.460706E-05
-596 1.147095E+00 7.422473E-01 5.005417E-05
-597 1.149464E+00 7.298229E-01 4.590157E-05
-598 1.150838E+00 7.172525E-01 4.211268E-05
-599 1.151326E+00 7.045818E-01 3.865437E-05
-600 1.151033E+00 6.918553E-01 3.549661E-05
-601 1.150002E+00 6.791009E-01 3.261220E-05
-602 1.148061E+00 6.662846E-01 2.997643E-05
-603 1.144998E+00 6.533595E-01 2.756693E-05
-604 1.140622E+00 6.402807E-01 2.536339E-05
-605 1.134757E+00 6.270066E-01 2.334738E-05
-606 1.127298E+00 6.135148E-01 2.150221E-05
-607 1.118342E+00 5.998494E-01 1.981268E-05
-608 1.108033E+00 5.860682E-01 1.826500E-05
-609 1.096515E+00 5.722261E-01 1.684667E-05
-610 1.083928E+00 5.583746E-01 1.554631E-05
-611 1.070387E+00 5.445535E-01 1.435360E-05
-612 1.055934E+00 5.307673E-01 1.325915E-05
-613 1.040592E+00 5.170130E-01 1.225443E-05
-614 1.024385E+00 5.032889E-01 1.133169E-05
-615 1.007344E+00 4.895950E-01 1.048387E-05
-616 9.895268E-01 4.759442E-01 0.000000E+00
-617 9.711213E-01 4.623958E-01 0.000000E+00
-618 9.523257E-01 4.490154E-01 0.000000E+00
-619 9.333248E-01 4.358622E-01 0.000000E+00
-620 9.142877E-01 4.229897E-01 0.000000E+00
-621 8.952798E-01 4.104152E-01 0.000000E+00
-622 8.760157E-01 3.980356E-01 0.000000E+00
-623 8.561607E-01 3.857300E-01 0.000000E+00
-624 8.354235E-01 3.733907E-01 0.000000E+00
-625 8.135565E-01 3.609245E-01 0.000000E+00
-626 7.904565E-01 3.482860E-01 0.000000E+00
-627 7.664364E-01 3.355702E-01 0.000000E+00
-628 7.418777E-01 3.228963E-01 0.000000E+00
-629 7.171219E-01 3.103704E-01 0.000000E+00
-630 6.924717E-01 2.980865E-01 0.000000E+00
-631 6.681600E-01 2.861160E-01 0.000000E+00
-632 6.442697E-01 2.744822E-01 0.000000E+00
-633 6.208450E-01 2.631953E-01 0.000000E+00
-634 5.979243E-01 2.522628E-01 0.000000E+00
-635 5.755410E-01 2.416902E-01 0.000000E+00
-636 5.537296E-01 2.314809E-01 0.000000E+00
-637 5.325412E-01 2.216378E-01 0.000000E+00
-638 5.120218E-01 2.121622E-01 0.000000E+00
-639 4.922070E-01 2.030542E-01 0.000000E+00
-640 4.731224E-01 1.943124E-01 0.000000E+00
-641 4.547417E-01 1.859227E-01 0.000000E+00
-642 4.368719E-01 1.778274E-01 0.000000E+00
-643 4.193121E-01 1.699654E-01 0.000000E+00
-644 4.018980E-01 1.622841E-01 0.000000E+00
-645 3.844986E-01 1.547397E-01 0.000000E+00
-646 3.670592E-01 1.473081E-01 0.000000E+00
-647 3.497167E-01 1.400169E-01 0.000000E+00
-648 3.326305E-01 1.329013E-01 0.000000E+00
-649 3.159341E-01 1.259913E-01 0.000000E+00
-650 2.997374E-01 1.193120E-01 0.000000E+00
-651 2.841189E-01 1.128820E-01 0.000000E+00
-652 2.691053E-01 1.067113E-01 0.000000E+00
-653 2.547077E-01 1.008052E-01 0.000000E+00
-654 2.409319E-01 9.516653E-02 0.000000E+00
-655 2.277792E-01 8.979594E-02 0.000000E+00
-656 2.152431E-01 8.469044E-02 0.000000E+00
-657 2.033010E-01 7.984009E-02 0.000000E+00
-658 1.919276E-01 7.523372E-02 0.000000E+00
-659 1.810987E-01 7.086061E-02 0.000000E+00
-660 1.707914E-01 6.671045E-02 0.000000E+00
-661 1.609842E-01 6.277360E-02 0.000000E+00
-662 1.516577E-01 5.904179E-02 0.000000E+00
-663 1.427936E-01 5.550703E-02 0.000000E+00
-664 1.343737E-01 5.216139E-02 0.000000E+00
-665 1.263808E-01 4.899699E-02 0.000000E+00
-666 1.187979E-01 4.600578E-02 0.000000E+00
-667 1.116088E-01 4.317885E-02 0.000000E+00
-668 1.047975E-01 4.050755E-02 0.000000E+00
-669 9.834835E-02 3.798376E-02 0.000000E+00
-670 9.224597E-02 3.559982E-02 0.000000E+00
-671 8.647506E-02 3.334856E-02 0.000000E+00
-672 8.101986E-02 3.122332E-02 0.000000E+00
-673 7.586514E-02 2.921780E-02 0.000000E+00
-674 7.099633E-02 2.732601E-02 0.000000E+00
-675 6.639960E-02 2.554223E-02 0.000000E+00
-676 6.206225E-02 2.386121E-02 0.000000E+00
-677 5.797409E-02 2.227859E-02 0.000000E+00
-678 5.412533E-02 2.079020E-02 0.000000E+00
-679 5.050600E-02 1.939185E-02 0.000000E+00
-680 4.710606E-02 1.807939E-02 0.000000E+00
-681 4.391411E-02 1.684817E-02 0.000000E+00
-682 4.091411E-02 1.569188E-02 0.000000E+00
-683 3.809067E-02 1.460446E-02 0.000000E+00
-684 3.543034E-02 1.358062E-02 0.000000E+00
-685 3.292138E-02 1.261573E-02 0.000000E+00
-686 3.055672E-02 1.170696E-02 0.000000E+00
-687 2.834146E-02 1.085608E-02 0.000000E+00
-688 2.628033E-02 1.006476E-02 0.000000E+00
-689 2.437465E-02 9.333376E-03 0.000000E+00
-690 2.262306E-02 8.661284E-03 0.000000E+00
-691 2.101935E-02 8.046048E-03 0.000000E+00
-692 1.954647E-02 7.481130E-03 0.000000E+00
-693 1.818727E-02 6.959987E-03 0.000000E+00
-694 1.692727E-02 6.477070E-03 0.000000E+00
-695 1.575417E-02 6.027677E-03 0.000000E+00
-696 1.465854E-02 5.608169E-03 0.000000E+00
-697 1.363571E-02 5.216691E-03 0.000000E+00
-698 1.268205E-02 4.851785E-03 0.000000E+00
-699 1.179394E-02 4.512008E-03 0.000000E+00
-700 1.096778E-02 4.195941E-03 0.000000E+00
-701 1.019964E-02 3.902057E-03 0.000000E+00
-702 9.484317E-03 3.628371E-03 0.000000E+00
-703 8.816851E-03 3.373005E-03 0.000000E+00
-704 8.192921E-03 3.134315E-03 0.000000E+00
-705 7.608750E-03 2.910864E-03 0.000000E+00
-706 7.061391E-03 2.701528E-03 0.000000E+00
-707 6.549509E-03 2.505796E-03 0.000000E+00
-708 6.071970E-03 2.323231E-03 0.000000E+00
-709 5.627476E-03 2.153333E-03 0.000000E+00
-710 5.214608E-03 1.995557E-03 0.000000E+00
-711 4.831848E-03 1.849316E-03 0.000000E+00
-712 4.477579E-03 1.713976E-03 0.000000E+00
-713 4.150166E-03 1.588899E-03 0.000000E+00
-714 3.847988E-03 1.473453E-03 0.000000E+00
-715 3.569452E-03 1.367022E-03 0.000000E+00
-716 3.312857E-03 1.268954E-03 0.000000E+00
-717 3.076022E-03 1.178421E-03 0.000000E+00
-718 2.856894E-03 1.094644E-03 0.000000E+00
-719 2.653681E-03 1.016943E-03 0.000000E+00
-720 2.464821E-03 9.447269E-04 0.000000E+00
-721 2.289060E-03 8.775171E-04 0.000000E+00
-722 2.125694E-03 8.150438E-04 0.000000E+00
-723 1.974121E-03 7.570755E-04 0.000000E+00
-724 1.833723E-03 7.033755E-04 0.000000E+00
-725 1.703876E-03 6.537050E-04 0.000000E+00
-726 1.583904E-03 6.078048E-04 0.000000E+00
-727 1.472939E-03 5.653435E-04 0.000000E+00
-728 1.370151E-03 5.260046E-04 0.000000E+00
-729 1.274803E-03 4.895061E-04 0.000000E+00
-730 1.186238E-03 4.555970E-04 0.000000E+00
-731 1.103871E-03 4.240548E-04 0.000000E+00
-732 1.027194E-03 3.946860E-04 0.000000E+00
-733 9.557493E-04 3.673178E-04 0.000000E+00
-734 8.891262E-04 3.417941E-04 0.000000E+00
-735 8.269535E-04 3.179738E-04 0.000000E+00
-736 7.689351E-04 2.957441E-04 0.000000E+00
-737 7.149425E-04 2.750558E-04 0.000000E+00
-738 6.648590E-04 2.558640E-04 0.000000E+00
-739 6.185421E-04 2.381142E-04 0.000000E+00
-740 5.758303E-04 2.217445E-04 0.000000E+00
-741 5.365046E-04 2.066711E-04 0.000000E+00
-742 5.001842E-04 1.927474E-04 0.000000E+00
-743 4.665005E-04 1.798315E-04 0.000000E+00
-744 4.351386E-04 1.678023E-04 0.000000E+00
-745 4.058303E-04 1.565566E-04 0.000000E+00
-746 3.783733E-04 1.460168E-04 0.000000E+00
-747 3.526892E-04 1.361535E-04 0.000000E+00
-748 3.287199E-04 1.269451E-04 0.000000E+00
-749 3.063998E-04 1.183671E-04 0.000000E+00
-750 2.856577E-04 1.103928E-04 0.000000E+00
-751 2.664108E-04 1.029908E-04 0.000000E+00
-752 2.485462E-04 9.611836E-05 0.000000E+00
-753 2.319529E-04 8.973323E-05 0.000000E+00
-754 2.165300E-04 8.379694E-05 0.000000E+00
-755 2.021853E-04 7.827442E-05 0.000000E+00
-756 1.888338E-04 7.313312E-05 0.000000E+00
-757 1.763935E-04 6.834142E-05 0.000000E+00
-758 1.647895E-04 6.387035E-05 0.000000E+00
-759 1.539542E-04 5.969389E-05 0.000000E+00
-760 1.438270E-04 5.578862E-05 0.000000E+00
-761 1.343572E-04 5.213509E-05 0.000000E+00
-762 1.255141E-04 4.872179E-05 0.000000E+00
-763 1.172706E-04 4.553845E-05 0.000000E+00
-764 1.095983E-04 4.257443E-05 0.000000E+00
-765 1.024685E-04 3.981884E-05 0.000000E+00
-766 9.584715E-05 3.725877E-05 0.000000E+00
-767 8.968316E-05 3.487467E-05 0.000000E+00
-768 8.392734E-05 3.264765E-05 0.000000E+00
-769 7.853708E-05 3.056140E-05 0.000000E+00
-770 7.347551E-05 2.860175E-05 0.000000E+00
-771 6.871576E-05 2.675841E-05 0.000000E+00
-772 6.425257E-05 2.502943E-05 0.000000E+00
-773 6.008292E-05 2.341373E-05 0.000000E+00
-774 5.620098E-05 2.190914E-05 0.000000E+00
-775 5.259870E-05 2.051259E-05 0.000000E+00
-776 4.926279E-05 1.921902E-05 0.000000E+00
-777 4.616623E-05 1.801796E-05 0.000000E+00
-778 4.328212E-05 1.689899E-05 0.000000E+00
-779 4.058715E-05 1.585309E-05 0.000000E+00
-780 3.806114E-05 1.487243E-05 0.000000E+00
-781 3.568818E-05 1.395085E-05 0.000000E+00
-782 3.346023E-05 1.308528E-05 0.000000E+00
-783 3.137090E-05 1.227327E-05 0.000000E+00
-784 2.941371E-05 1.151233E-05 0.000000E+00
-785 2.758222E-05 1.080001E-05 0.000000E+00
-786 2.586951E-05 1.013364E-05 0.000000E+00
-787 2.426701E-05 9.509919E-06 0.000000E+00
-788 2.276639E-05 8.925630E-06 0.000000E+00
-789 2.136009E-05 8.377852E-06 0.000000E+00
-790 2.004122E-05 7.863920E-06 0.000000E+00
-791 1.880380E-05 7.381539E-06 0.000000E+00
-792 1.764358E-05 6.929096E-06 0.000000E+00
-793 1.655671E-05 6.505136E-06 0.000000E+00
-794 1.553939E-05 6.108221E-06 0.000000E+00
-795 1.458792E-05 5.736935E-06 0.000000E+00
-796 1.369853E-05 5.389831E-06 0.000000E+00
-797 1.286705E-05 5.065269E-06 0.000000E+00
-798 1.208947E-05 4.761667E-06 0.000000E+00
-799 1.136207E-05 4.477561E-06 0.000000E+00
-800 1.068141E-05 4.211597E-06 0.000000E+00
-801 1.004411E-05 3.962457E-06 0.000000E+00
-802 9.446399E-06 3.728674E-06 0.000000E+00
-803 8.884754E-06 3.508881E-06 0.000000E+00
-804 8.356050E-06 3.301868E-06 0.000000E+00
-805 7.857521E-06 3.106561E-06 0.000000E+00
-806 7.386996E-06 2.922119E-06 0.000000E+00
-807 6.943576E-06 2.748208E-06 0.000000E+00
-808 6.526548E-06 2.584560E-06 0.000000E+00
-809 6.135087E-06 2.430867E-06 0.000000E+00
-810 5.768284E-06 2.286786E-06 0.000000E+00
-811 5.425069E-06 2.151905E-06 0.000000E+00
-812 5.103974E-06 2.025656E-06 0.000000E+00
-813 4.803525E-06 1.907464E-06 0.000000E+00
-814 4.522350E-06 1.796794E-06 0.000000E+00
-815 4.259166E-06 1.693147E-06 0.000000E+00
-816 4.012715E-06 1.596032E-06 0.000000E+00
-817 3.781597E-06 1.504903E-06 0.000000E+00
-818 3.564496E-06 1.419245E-06 0.000000E+00
-819 3.360236E-06 1.338600E-06 0.000000E+00
-820 3.167765E-06 1.262556E-06 0.000000E+00
-821 2.986206E-06 1.190771E-06 0.000000E+00
-822 2.814999E-06 1.123031E-06 0.000000E+00
-823 2.653663E-06 1.059151E-06 0.000000E+00
-824 2.501725E-06 9.989507E-07 0.000000E+00
-825 2.358723E-06 9.422514E-07 0.000000E+00
-826 2.224206E-06 8.888804E-07 0.000000E+00
-827 2.097737E-06 8.386690E-07 0.000000E+00
-828 1.978894E-06 7.914539E-07 0.000000E+00
-829 1.867268E-06 7.470770E-07 0.000000E+00
-830 1.762465E-06 7.053860E-07 0.000000E+00
-
-CIE TC 1-36 proposed
-10-deg XYZ CMFs transformed from the CIE (2006) 2-deg LMS cone fundamentals
-
-390 2.952420E-03 4.076779E-04 1.318752E-02
-391 3.577275E-03 4.977769E-04 1.597879E-02
-392 4.332146E-03 6.064754E-04 1.935758E-02
-393 5.241609E-03 7.370040E-04 2.343758E-02
-394 6.333902E-03 8.929388E-04 2.835021E-02
-395 7.641137E-03 1.078166E-03 3.424588E-02
-396 9.199401E-03 1.296816E-03 4.129467E-02
-397 1.104869E-02 1.553159E-03 4.968641E-02
-398 1.323262E-02 1.851463E-03 5.962964E-02
-399 1.579791E-02 2.195795E-03 7.134926E-02
-400 1.879338E-02 2.589775E-03 8.508254E-02
-401 2.226949E-02 3.036799E-03 1.010753E-01
-402 2.627978E-02 3.541926E-03 1.195838E-01
-403 3.087862E-02 4.111422E-03 1.408647E-01
-404 3.611890E-02 4.752618E-03 1.651644E-01
-405 4.204986E-02 5.474207E-03 1.927065E-01
-406 4.871256E-02 6.285034E-03 2.236782E-01
-407 5.612868E-02 7.188068E-03 2.582109E-01
-408 6.429866E-02 8.181786E-03 2.963632E-01
-409 7.319818E-02 9.260417E-03 3.381018E-01
-410 8.277331E-02 1.041303E-02 3.832822E-01
-411 9.295327E-02 1.162642E-02 4.316884E-01
-412 1.037137E-01 1.289884E-02 4.832440E-01
-413 1.150520E-01 1.423442E-02 5.379345E-01
-414 1.269771E-01 1.564080E-02 5.957740E-01
-415 1.395127E-01 1.712968E-02 6.568187E-01
-416 1.526661E-01 1.871265E-02 7.210459E-01
-417 1.663054E-01 2.038394E-02 7.878635E-01
-418 1.802197E-01 2.212935E-02 8.563391E-01
-419 1.941448E-01 2.392985E-02 9.253017E-01
-420 2.077647E-01 2.576133E-02 9.933444E-01
-421 2.207911E-01 2.760156E-02 1.059178E+00
-422 2.332355E-01 2.945513E-02 1.122832E+00
-423 2.452462E-01 3.133884E-02 1.184947E+00
-424 2.570397E-01 3.327575E-02 1.246476E+00
-425 2.688989E-01 3.529554E-02 1.308674E+00
-426 2.810677E-01 3.742705E-02 1.372628E+00
-427 2.933967E-01 3.967137E-02 1.437661E+00
-428 3.055933E-01 4.201998E-02 1.502449E+00
-429 3.173165E-01 4.446166E-02 1.565456E+00
-430 3.281798E-01 4.698226E-02 1.624940E+00
-431 3.378678E-01 4.956742E-02 1.679488E+00
-432 3.465097E-01 5.221219E-02 1.729668E+00
-433 3.543953E-01 5.491387E-02 1.776755E+00
-434 3.618655E-01 5.766919E-02 1.822228E+00
-435 3.693084E-01 6.047429E-02 1.867751E+00
-436 3.770107E-01 6.332195E-02 1.914504E+00
-437 3.846850E-01 6.619271E-02 1.961055E+00
-438 3.918591E-01 6.906185E-02 2.005136E+00
-439 3.980192E-01 7.190190E-02 2.044296E+00
-440 4.026189E-01 7.468288E-02 2.075946E+00
-441 4.052637E-01 7.738452E-02 2.098231E+00
-442 4.062482E-01 8.003601E-02 2.112591E+00
-443 4.060660E-01 8.268524E-02 2.121427E+00
-444 4.052283E-01 8.538745E-02 2.127239E+00
-445 4.042529E-01 8.820537E-02 2.132574E+00
-446 4.034808E-01 9.118925E-02 2.139093E+00
-447 4.025362E-01 9.431041E-02 2.144815E+00
-448 4.008675E-01 9.751346E-02 2.146832E+00
-449 3.979327E-01 1.007349E-01 2.142250E+00
-450 3.932139E-01 1.039030E-01 2.128264E+00
-451 3.864108E-01 1.069639E-01 2.103205E+00
-452 3.779513E-01 1.099676E-01 2.069388E+00
-453 3.684176E-01 1.129992E-01 2.030030E+00
-454 3.583473E-01 1.161541E-01 1.988178E+00
-455 3.482214E-01 1.195389E-01 1.946651E+00
-456 3.383830E-01 1.232503E-01 1.907521E+00
-457 3.288309E-01 1.273047E-01 1.870689E+00
-458 3.194977E-01 1.316964E-01 1.835578E+00
-459 3.103345E-01 1.364178E-01 1.801657E+00
-460 3.013112E-01 1.414586E-01 1.768440E+00
-461 2.923754E-01 1.468003E-01 1.735338E+00
-462 2.833273E-01 1.524002E-01 1.701254E+00
-463 2.739463E-01 1.582021E-01 1.665053E+00
-464 2.640352E-01 1.641400E-01 1.625712E+00
-465 2.534221E-01 1.701373E-01 1.582342E+00
-466 2.420135E-01 1.761233E-01 1.534439E+00
-467 2.299346E-01 1.820896E-01 1.482544E+00
-468 2.173617E-01 1.880463E-01 1.427438E+00
-469 2.044672E-01 1.940065E-01 1.369876E+00
-470 1.914176E-01 1.999859E-01 1.310576E+00
-471 1.783672E-01 2.060054E-01 1.250226E+00
-472 1.654407E-01 2.120981E-01 1.189511E+00
-473 1.527391E-01 2.183041E-01 1.129050E+00
-474 1.403439E-01 2.246686E-01 1.069379E+00
-475 1.283167E-01 2.312426E-01 1.010952E+00
-476 1.167124E-01 2.380741E-01 9.541809E-01
-477 1.056121E-01 2.451798E-01 8.995253E-01
-478 9.508569E-02 2.525682E-01 8.473720E-01
-479 8.518206E-02 2.602479E-01 7.980093E-01
-480 7.593120E-02 2.682271E-01 7.516389E-01
-481 6.733159E-02 2.765005E-01 7.082645E-01
-482 5.932018E-02 2.850035E-01 6.673867E-01
-483 5.184106E-02 2.936475E-01 6.284798E-01
-484 4.486119E-02 3.023319E-01 5.911174E-01
-485 3.836770E-02 3.109438E-01 5.549619E-01
-486 3.237296E-02 3.194105E-01 5.198843E-01
-487 2.692095E-02 3.278683E-01 4.862772E-01
-488 2.204070E-02 3.365263E-01 4.545497E-01
-489 1.773951E-02 3.456176E-01 4.249955E-01
-490 1.400745E-02 3.554018E-01 3.978114E-01
-491 1.082291E-02 3.660893E-01 3.730218E-01
-492 8.168996E-03 3.775857E-01 3.502618E-01
-493 6.044623E-03 3.896960E-01 3.291407E-01
-494 4.462638E-03 4.021947E-01 3.093356E-01
-495 3.446810E-03 4.148227E-01 2.905816E-01
-496 3.009513E-03 4.273539E-01 2.726773E-01
-497 3.090744E-03 4.398206E-01 2.555143E-01
-498 3.611221E-03 4.523360E-01 2.390188E-01
-499 4.491435E-03 4.650298E-01 2.231335E-01
-500 5.652072E-03 4.780482E-01 2.078158E-01
-501 7.035322E-03 4.915173E-01 1.930407E-01
-502 8.669631E-03 5.054224E-01 1.788089E-01
-503 1.060755E-02 5.197057E-01 1.651287E-01
-504 1.290468E-02 5.343012E-01 1.520103E-01
-505 1.561956E-02 5.491344E-01 1.394643E-01
-506 1.881640E-02 5.641302E-01 1.275353E-01
-507 2.256923E-02 5.792416E-01 1.163771E-01
-508 2.694456E-02 5.944264E-01 1.061161E-01
-509 3.199910E-02 6.096388E-01 9.682266E-02
-510 3.778185E-02 6.248296E-01 8.852389E-02
-511 4.430635E-02 6.399656E-01 8.118263E-02
-512 5.146516E-02 6.550943E-01 7.463132E-02
-513 5.912224E-02 6.702903E-01 6.870644E-02
-514 6.714220E-02 6.856375E-01 6.327834E-02
-515 7.538941E-02 7.012292E-01 5.824484E-02
-516 8.376697E-02 7.171103E-01 5.353812E-02
-517 9.233581E-02 7.330917E-01 4.914863E-02
-518 1.011940E-01 7.489041E-01 4.507511E-02
-519 1.104362E-01 7.642530E-01 4.131175E-02
-520 1.201511E-01 7.788199E-01 3.784916E-02
-521 1.303960E-01 7.923410E-01 3.467234E-02
-522 1.411310E-01 8.048510E-01 3.175471E-02
-523 1.522944E-01 8.164747E-01 2.907029E-02
-524 1.638288E-01 8.273520E-01 2.659651E-02
-525 1.756832E-01 8.376358E-01 2.431375E-02
-526 1.878114E-01 8.474653E-01 2.220677E-02
-527 2.001621E-01 8.568868E-01 2.026852E-02
-528 2.126822E-01 8.659242E-01 1.849246E-02
-529 2.253199E-01 8.746041E-01 1.687084E-02
-530 2.380254E-01 8.829552E-01 1.539505E-02
-531 2.507787E-01 8.910274E-01 1.405450E-02
-532 2.636778E-01 8.989495E-01 1.283354E-02
-533 2.768607E-01 9.068753E-01 1.171754E-02
-534 2.904792E-01 9.149652E-01 1.069415E-02
-535 3.046991E-01 9.233858E-01 9.753000E-03
-536 3.196485E-01 9.322325E-01 8.886096E-03
-537 3.352447E-01 9.412862E-01 8.089323E-03
-538 3.513290E-01 9.502378E-01 7.359131E-03
-539 3.677148E-01 9.587647E-01 6.691736E-03
-540 3.841856E-01 9.665325E-01 6.083223E-03
-541 4.005312E-01 9.732504E-01 5.529423E-03
-542 4.166669E-01 9.788415E-01 5.025504E-03
-543 4.325420E-01 9.832867E-01 4.566879E-03
-544 4.481063E-01 9.865720E-01 4.149405E-03
-545 4.633109E-01 9.886887E-01 3.769336E-03
-546 4.781440E-01 9.897056E-01 3.423302E-03
-547 4.927483E-01 9.899849E-01 3.108313E-03
-548 5.073315E-01 9.899624E-01 2.821650E-03
-549 5.221315E-01 9.900731E-01 2.560830E-03
-550 5.374170E-01 9.907500E-01 2.323578E-03
-551 5.534217E-01 9.922826E-01 2.107847E-03
-552 5.701242E-01 9.943837E-01 1.911867E-03
-553 5.874093E-01 9.966221E-01 1.734006E-03
-554 6.051269E-01 9.985649E-01 1.572736E-03
-555 6.230892E-01 9.997775E-01 1.426627E-03
-556 6.410999E-01 9.999440E-01 1.294325E-03
-557 6.590659E-01 9.992200E-01 1.174475E-03
-558 6.769436E-01 9.978793E-01 1.065842E-03
-559 6.947143E-01 9.961934E-01 9.673215E-04
-560 7.123849E-01 9.944304E-01 8.779264E-04
-561 7.299978E-01 9.927831E-01 7.967847E-04
-562 7.476478E-01 9.911578E-01 7.231502E-04
-563 7.654250E-01 9.893925E-01 6.563501E-04
-564 7.834009E-01 9.873288E-01 5.957678E-04
-565 8.016277E-01 9.848127E-01 5.408385E-04
-566 8.201041E-01 9.817253E-01 4.910441E-04
-567 8.386843E-01 9.780714E-01 4.459046E-04
-568 8.571936E-01 9.738860E-01 4.049826E-04
-569 8.754652E-01 9.692028E-01 3.678818E-04
-570 8.933408E-01 9.640545E-01 3.342429E-04
-571 9.106772E-01 9.584409E-01 3.037407E-04
-572 9.273554E-01 9.522379E-01 2.760809E-04
-573 9.432502E-01 9.452968E-01 2.509970E-04
-574 9.582244E-01 9.374773E-01 2.282474E-04
-575 9.721304E-01 9.286495E-01 2.076129E-04
-576 9.849237E-01 9.187953E-01 1.888948E-04
-577 9.970067E-01 9.083014E-01 1.719127E-04
-578 1.008907E+00 8.976352E-01 1.565030E-04
-579 1.021163E+00 8.872401E-01 1.425177E-04
-580 1.034327E+00 8.775360E-01 1.298230E-04
-581 1.048753E+00 8.687920E-01 1.182974E-04
-582 1.063937E+00 8.607474E-01 1.078310E-04
-583 1.079166E+00 8.530233E-01 9.832455E-05
-584 1.093723E+00 8.452535E-01 8.968787E-05
-585 1.106886E+00 8.370838E-01 8.183954E-05
-586 1.118106E+00 8.282409E-01 7.470582E-05
-587 1.127493E+00 8.187320E-01 6.821991E-05
-588 1.135317E+00 8.086352E-01 6.232132E-05
-589 1.141838E+00 7.980296E-01 5.695534E-05
-590 1.147304E+00 7.869950E-01 5.207245E-05
-591 1.151897E+00 7.756040E-01 4.762781E-05
-592 1.155582E+00 7.638996E-01 4.358082E-05
-593 1.158284E+00 7.519157E-01 3.989468E-05
-594 1.159934E+00 7.396832E-01 3.653612E-05
-595 1.160477E+00 7.272309E-01 3.347499E-05
-596 1.159890E+00 7.145878E-01 3.068400E-05
-597 1.158259E+00 7.017926E-01 2.813839E-05
-598 1.155692E+00 6.888866E-01 2.581574E-05
-599 1.152293E+00 6.759103E-01 2.369574E-05
-600 1.148163E+00 6.629035E-01 2.175998E-05
-601 1.143345E+00 6.498911E-01 1.999179E-05
-602 1.137685E+00 6.368410E-01 1.837603E-05
-603 1.130993E+00 6.237092E-01 1.689896E-05
-604 1.123097E+00 6.104541E-01 1.554815E-05
-605 1.113846E+00 5.970375E-01 1.431231E-05
-606 1.103152E+00 5.834395E-01 1.318119E-05
-607 1.091121E+00 5.697044E-01 1.214548E-05
-608 1.077902E+00 5.558892E-01 1.119673E-05
-609 1.063644E+00 5.420475E-01 1.032727E-05
-610 1.048485E+00 5.282296E-01 9.530130E-06
-611 1.032546E+00 5.144746E-01 8.798979E-06
-612 1.015870E+00 5.007881E-01 8.128065E-06
-613 9.984859E-01 4.871687E-01 7.512160E-06
-614 9.804227E-01 4.736160E-01 6.946506E-06
-615 9.617111E-01 4.601308E-01 6.426776E-06
-616 9.424119E-01 4.467260E-01 0.000000E+00
-617 9.227049E-01 4.334589E-01 0.000000E+00
-618 9.027804E-01 4.203919E-01 0.000000E+00
-619 8.828123E-01 4.075810E-01 0.000000E+00
-620 8.629581E-01 3.950755E-01 0.000000E+00
-621 8.432731E-01 3.828894E-01 0.000000E+00
-622 8.234742E-01 3.709190E-01 0.000000E+00
-623 8.032342E-01 3.590447E-01 0.000000E+00
-624 7.822715E-01 3.471615E-01 0.000000E+00
-625 7.603498E-01 3.351794E-01 0.000000E+00
-626 7.373739E-01 3.230562E-01 0.000000E+00
-627 7.136470E-01 3.108859E-01 0.000000E+00
-628 6.895336E-01 2.987840E-01 0.000000E+00
-629 6.653567E-01 2.868527E-01 0.000000E+00
-630 6.413984E-01 2.751807E-01 0.000000E+00
-631 6.178723E-01 2.638343E-01 0.000000E+00
-632 5.948484E-01 2.528330E-01 0.000000E+00
-633 5.723600E-01 2.421835E-01 0.000000E+00
-634 5.504353E-01 2.318904E-01 0.000000E+00
-635 5.290979E-01 2.219564E-01 0.000000E+00
-636 5.083728E-01 2.123826E-01 0.000000E+00
-637 4.883006E-01 2.031698E-01 0.000000E+00
-638 4.689171E-01 1.943179E-01 0.000000E+00
-639 4.502486E-01 1.858250E-01 0.000000E+00
-640 4.323126E-01 1.776882E-01 0.000000E+00
-641 4.150790E-01 1.698926E-01 0.000000E+00
-642 3.983657E-01 1.623822E-01 0.000000E+00
-643 3.819846E-01 1.550986E-01 0.000000E+00
-644 3.657821E-01 1.479918E-01 0.000000E+00
-645 3.496358E-01 1.410203E-01 0.000000E+00
-646 3.334937E-01 1.341614E-01 0.000000E+00
-647 3.174776E-01 1.274401E-01 0.000000E+00
-648 3.017298E-01 1.208887E-01 0.000000E+00
-649 2.863684E-01 1.145345E-01 0.000000E+00
-650 2.714900E-01 1.083996E-01 0.000000E+00
-651 2.571632E-01 1.025007E-01 0.000000E+00
-652 2.434102E-01 9.684588E-02 0.000000E+00
-653 2.302389E-01 9.143944E-02 0.000000E+00
-654 2.176527E-01 8.628318E-02 0.000000E+00
-655 2.056507E-01 8.137687E-02 0.000000E+00
-656 1.942251E-01 7.671708E-02 0.000000E+00
-657 1.833530E-01 7.229404E-02 0.000000E+00
-658 1.730097E-01 6.809696E-02 0.000000E+00
-659 1.631716E-01 6.411549E-02 0.000000E+00
-660 1.538163E-01 6.033976E-02 0.000000E+00
-661 1.449230E-01 5.676054E-02 0.000000E+00
-662 1.364729E-01 5.336992E-02 0.000000E+00
-663 1.284483E-01 5.016027E-02 0.000000E+00
-664 1.208320E-01 4.712405E-02 0.000000E+00
-665 1.136072E-01 4.425383E-02 0.000000E+00
-666 1.067579E-01 4.154205E-02 0.000000E+00
-667 1.002685E-01 3.898042E-02 0.000000E+00
-668 9.412394E-02 3.656091E-02 0.000000E+00
-669 8.830929E-02 3.427597E-02 0.000000E+00
-670 8.281010E-02 3.211852E-02 0.000000E+00
-671 7.761208E-02 3.008192E-02 0.000000E+00
-672 7.270064E-02 2.816001E-02 0.000000E+00
-673 6.806167E-02 2.634698E-02 0.000000E+00
-674 6.368176E-02 2.463731E-02 0.000000E+00
-675 5.954815E-02 2.302574E-02 0.000000E+00
-676 5.564917E-02 2.150743E-02 0.000000E+00
-677 5.197543E-02 2.007838E-02 0.000000E+00
-678 4.851788E-02 1.873474E-02 0.000000E+00
-679 4.526737E-02 1.747269E-02 0.000000E+00
-680 4.221473E-02 1.628841E-02 0.000000E+00
-681 3.934954E-02 1.517767E-02 0.000000E+00
-682 3.665730E-02 1.413473E-02 0.000000E+00
-683 3.412407E-02 1.315408E-02 0.000000E+00
-684 3.173768E-02 1.223092E-02 0.000000E+00
-685 2.948752E-02 1.136106E-02 0.000000E+00
-686 2.736717E-02 1.054190E-02 0.000000E+00
-687 2.538113E-02 9.775050E-03 0.000000E+00
-688 2.353356E-02 9.061962E-03 0.000000E+00
-689 2.182558E-02 8.402962E-03 0.000000E+00
-690 2.025590E-02 7.797457E-03 0.000000E+00
-691 1.881892E-02 7.243230E-03 0.000000E+00
-692 1.749930E-02 6.734381E-03 0.000000E+00
-693 1.628167E-02 6.265001E-03 0.000000E+00
-694 1.515301E-02 5.830085E-03 0.000000E+00
-695 1.410230E-02 5.425391E-03 0.000000E+00
-696 1.312106E-02 5.047634E-03 0.000000E+00
-697 1.220509E-02 4.695140E-03 0.000000E+00
-698 1.135114E-02 4.366592E-03 0.000000E+00
-699 1.055593E-02 4.060685E-03 0.000000E+00
-700 9.816228E-03 3.776140E-03 0.000000E+00
-701 9.128517E-03 3.511578E-03 0.000000E+00
-702 8.488116E-03 3.265211E-03 0.000000E+00
-703 7.890589E-03 3.035344E-03 0.000000E+00
-704 7.332061E-03 2.820496E-03 0.000000E+00
-705 6.809147E-03 2.619372E-03 0.000000E+00
-706 6.319204E-03 2.430960E-03 0.000000E+00
-707 5.861036E-03 2.254796E-03 0.000000E+00
-708 5.433624E-03 2.090489E-03 0.000000E+00
-709 5.035802E-03 1.937586E-03 0.000000E+00
-710 4.666298E-03 1.795595E-03 0.000000E+00
-711 4.323750E-03 1.663989E-03 0.000000E+00
-712 4.006709E-03 1.542195E-03 0.000000E+00
-713 3.713708E-03 1.429639E-03 0.000000E+00
-714 3.443294E-03 1.325752E-03 0.000000E+00
-715 3.194041E-03 1.229980E-03 0.000000E+00
-716 2.964424E-03 1.141734E-03 0.000000E+00
-717 2.752492E-03 1.060269E-03 0.000000E+00
-718 2.556406E-03 9.848854E-04 0.000000E+00
-719 2.374564E-03 9.149703E-04 0.000000E+00
-720 2.205568E-03 8.499903E-04 0.000000E+00
-721 2.048294E-03 7.895158E-04 0.000000E+00
-722 1.902113E-03 7.333038E-04 0.000000E+00
-723 1.766485E-03 6.811458E-04 0.000000E+00
-724 1.640857E-03 6.328287E-04 0.000000E+00
-725 1.524672E-03 5.881375E-04 0.000000E+00
-726 1.417322E-03 5.468389E-04 0.000000E+00
-727 1.318031E-03 5.086349E-04 0.000000E+00
-728 1.226059E-03 4.732403E-04 0.000000E+00
-729 1.140743E-03 4.404016E-04 0.000000E+00
-730 1.061495E-03 4.098928E-04 0.000000E+00
-731 9.877949E-04 3.815137E-04 0.000000E+00
-732 9.191847E-04 3.550902E-04 0.000000E+00
-733 8.552568E-04 3.304668E-04 0.000000E+00
-734 7.956433E-04 3.075030E-04 0.000000E+00
-735 7.400120E-04 2.860718E-04 0.000000E+00
-736 6.880980E-04 2.660718E-04 0.000000E+00
-737 6.397864E-04 2.474586E-04 0.000000E+00
-738 5.949726E-04 2.301919E-04 0.000000E+00
-739 5.535291E-04 2.142225E-04 0.000000E+00
-740 5.153113E-04 1.994949E-04 0.000000E+00
-741 4.801234E-04 1.859336E-04 0.000000E+00
-742 4.476245E-04 1.734067E-04 0.000000E+00
-743 4.174846E-04 1.617865E-04 0.000000E+00
-744 3.894221E-04 1.509641E-04 0.000000E+00
-745 3.631969E-04 1.408466E-04 0.000000E+00
-746 3.386279E-04 1.313642E-04 0.000000E+00
-747 3.156452E-04 1.224905E-04 0.000000E+00
-748 2.941966E-04 1.142060E-04 0.000000E+00
-749 2.742235E-04 1.064886E-04 0.000000E+00
-750 2.556624E-04 9.931439E-05 0.000000E+00
-751 2.384390E-04 9.265512E-05 0.000000E+00
-752 2.224525E-04 8.647225E-05 0.000000E+00
-753 2.076036E-04 8.072780E-05 0.000000E+00
-754 1.938018E-04 7.538716E-05 0.000000E+00
-755 1.809649E-04 7.041878E-05 0.000000E+00
-756 1.690167E-04 6.579338E-05 0.000000E+00
-757 1.578839E-04 6.148250E-05 0.000000E+00
-758 1.474993E-04 5.746008E-05 0.000000E+00
-759 1.378026E-04 5.370272E-05 0.000000E+00
-760 1.287394E-04 5.018934E-05 0.000000E+00
-761 1.202644E-04 4.690245E-05 0.000000E+00
-762 1.123502E-04 4.383167E-05 0.000000E+00
-763 1.049725E-04 4.096780E-05 0.000000E+00
-764 9.810596E-05 3.830123E-05 0.000000E+00
-765 9.172477E-05 3.582218E-05 0.000000E+00
-766 8.579861E-05 3.351903E-05 0.000000E+00
-767 8.028174E-05 3.137419E-05 0.000000E+00
-768 7.513013E-05 2.937068E-05 0.000000E+00
-769 7.030565E-05 2.749380E-05 0.000000E+00
-770 6.577532E-05 2.573083E-05 0.000000E+00
-771 6.151508E-05 2.407249E-05 0.000000E+00
-772 5.752025E-05 2.251704E-05 0.000000E+00
-773 5.378813E-05 2.106350E-05 0.000000E+00
-774 5.031350E-05 1.970991E-05 0.000000E+00
-775 4.708916E-05 1.845353E-05 0.000000E+00
-776 4.410322E-05 1.728979E-05 0.000000E+00
-777 4.133150E-05 1.620928E-05 0.000000E+00
-778 3.874992E-05 1.520262E-05 0.000000E+00
-779 3.633762E-05 1.426169E-05 0.000000E+00
-780 3.407653E-05 1.337946E-05 0.000000E+00
-781 3.195242E-05 1.255038E-05 0.000000E+00
-782 2.995808E-05 1.177169E-05 0.000000E+00
-783 2.808781E-05 1.104118E-05 0.000000E+00
-784 2.633581E-05 1.035662E-05 0.000000E+00
-785 2.469630E-05 9.715798E-06 0.000000E+00
-786 2.316311E-05 9.116316E-06 0.000000E+00
-787 2.172855E-05 8.555201E-06 0.000000E+00
-788 2.038519E-05 8.029561E-06 0.000000E+00
-789 1.912625E-05 7.536768E-06 0.000000E+00
-790 1.794555E-05 7.074424E-06 0.000000E+00
-791 1.683776E-05 6.640464E-06 0.000000E+00
-792 1.579907E-05 6.233437E-06 0.000000E+00
-793 1.482604E-05 5.852035E-06 0.000000E+00
-794 1.391527E-05 5.494963E-06 0.000000E+00
-795 1.306345E-05 5.160948E-06 0.000000E+00
-796 1.226720E-05 4.848687E-06 0.000000E+00
-797 1.152279E-05 4.556705E-06 0.000000E+00
-798 1.082663E-05 4.283580E-06 0.000000E+00
-799 1.017540E-05 4.027993E-06 0.000000E+00
-800 9.565993E-06 3.788729E-06 0.000000E+00
-801 8.995405E-06 3.564599E-06 0.000000E+00
-802 8.460253E-06 3.354285E-06 0.000000E+00
-803 7.957382E-06 3.156557E-06 0.000000E+00
-804 7.483997E-06 2.970326E-06 0.000000E+00
-805 7.037621E-06 2.794625E-06 0.000000E+00
-806 6.616311E-06 2.628701E-06 0.000000E+00
-807 6.219265E-06 2.472248E-06 0.000000E+00
-808 5.845844E-06 2.325030E-06 0.000000E+00
-809 5.495311E-06 2.186768E-06 0.000000E+00
-810 5.166853E-06 2.057152E-06 0.000000E+00
-811 4.859511E-06 1.935813E-06 0.000000E+00
-812 4.571973E-06 1.822239E-06 0.000000E+00
-813 4.302920E-06 1.715914E-06 0.000000E+00
-814 4.051121E-06 1.616355E-06 0.000000E+00
-815 3.815429E-06 1.523114E-06 0.000000E+00
-816 3.594719E-06 1.435750E-06 0.000000E+00
-817 3.387736E-06 1.353771E-06 0.000000E+00
-818 3.193301E-06 1.276714E-06 0.000000E+00
-819 3.010363E-06 1.204166E-06 0.000000E+00
-820 2.837980E-06 1.135758E-06 0.000000E+00
-821 2.675365E-06 1.071181E-06 0.000000E+00
-822 2.522020E-06 1.010243E-06 0.000000E+00
-823 2.377511E-06 9.527779E-07 0.000000E+00
-824 2.241417E-06 8.986224E-07 0.000000E+00
-825 2.113325E-06 8.476168E-07 0.000000E+00
-826 1.992830E-06 7.996052E-07 0.000000E+00
-827 1.879542E-06 7.544361E-07 0.000000E+00
-828 1.773083E-06 7.119624E-07 0.000000E+00
-829 1.673086E-06 6.720421E-07 0.000000E+00
-830 1.579199E-06 6.345380E-07 0.000000E+00
-#endif /* NEVER */
#endif /* !SALONEINSTLIB */
/* Return pointers to three xpsects with a standard observer weighting curves */
@@ -2875,6 +2559,16 @@ icxObserverType obType /* Type of observer */
sp[1] = &ob_CIE_1964_10[1];
sp[2] = &ob_CIE_1964_10[2];
return 0;
+ case icxOT_CIE_2012_2:
+ sp[0] = &ob_CIE_2012_2[0];
+ sp[1] = &ob_CIE_2012_2[1];
+ sp[2] = &ob_CIE_2012_2[2];
+ return 0;
+ case icxOT_CIE_2012_10:
+ sp[0] = &ob_CIE_2012_10[0];
+ sp[1] = &ob_CIE_2012_10[1];
+ sp[2] = &ob_CIE_2012_10[2];
+ return 0;
#ifndef SALONEINSTLIB
case icxOT_Stiles_Burch_2:
sp[0] = &ob_Stiles_Burch_2[0];
@@ -2919,6 +2613,10 @@ char *standardObserverDescription(icxObserverType obType) {
return "CIE 1931 2 degree observer";
case icxOT_CIE_1964_10:
return "CIE 1964 10 degree observer";
+ case icxOT_CIE_2012_2:
+ return "CIE 2012 2 degree observer";
+ case icxOT_CIE_2012_10:
+ return "CIE 2012 10 degree observer";
#ifndef SALONEINSTLIB
case icxOT_Stiles_Burch_2:
return "Stiles & Burch 1955 2 degree observer (aligned)";
@@ -3847,7 +3545,9 @@ char *meas_type2str(inst_meas_type mt) {
/* save a set of spectrum to a CGATS file */
/* type 0 = SPECT, 1 = CMF */
/* Return NZ on error */
-int write_nxspect(char *fname, inst_meas_type mt, xspect *sp, int nspec, int type) {
+
+/* Part 1 */
+int write_nxspect_1(cgats **pocg, inst_meas_type mt, xspect *sp, int nspec, int type) {
char buf[100];
time_t clk = time(0);
struct tm *tsp = localtime(&clk);
@@ -3893,53 +3593,77 @@ int write_nxspect(char *fname, inst_meas_type mt, xspect *sp, int nspec, int typ
ocg->add_kword(ocg, 0, "MEAS_TYPE",tag, NULL);
}
- sprintf(buf,"%d", sp->spec_n);
- ocg->add_kword(ocg, 0, "SPECTRAL_BANDS",buf, NULL);
+ if (sp != NULL) {
+ sprintf(buf,"%d", sp->spec_n);
+ ocg->add_kword(ocg, 0, "SPECTRAL_BANDS",buf, NULL);
- sprintf(buf,"%d", sp->spec_n);
- ocg->add_kword(ocg, 0, "SPECTRAL_BANDS",buf, NULL);
- sprintf(buf,"%f", sp->spec_wl_short);
- ocg->add_kword(ocg, 0, "SPECTRAL_START_NM",buf, NULL);
- sprintf(buf,"%f", sp->spec_wl_long);
- ocg->add_kword(ocg, 0, "SPECTRAL_END_NM",buf, NULL);
- sprintf(buf,"%f", sp->norm);
- ocg->add_kword(ocg, 0, "SPECTRAL_NORM",buf, NULL);
+ sprintf(buf,"%d", sp->spec_n);
+ ocg->add_kword(ocg, 0, "SPECTRAL_BANDS",buf, NULL);
+ sprintf(buf,"%f", sp->spec_wl_short);
+ ocg->add_kword(ocg, 0, "SPECTRAL_START_NM",buf, NULL);
+ sprintf(buf,"%f", sp->spec_wl_long);
+ ocg->add_kword(ocg, 0, "SPECTRAL_END_NM",buf, NULL);
+ sprintf(buf,"%f", sp->norm);
+ ocg->add_kword(ocg, 0, "SPECTRAL_NORM",buf, NULL);
- /* Should we adda A COORD field for "CMF" and an INDEX field for "SPECT" ? */
+ /* Should we adda A COORD field for "CMF" and an INDEX field for "SPECT" ? */
- /* Generate fields for spectral values */
- for (i = 0; i < sp->spec_n; i++) {
- int nm;
+ /* Generate fields for spectral values */
+ for (i = 0; i < sp->spec_n; i++) {
+ int nm;
- /* Compute nearest integer wavelength */
- nm = (int)(XSPECT_XWL(sp, i) + 0.5);
- sprintf(buf,"SPEC_%03d",nm);
- ocg->add_field(ocg, 0, buf, r_t);
- }
+ /* Compute nearest integer wavelength */
+ nm = (int)(XSPECT_XWL(sp, i) + 0.5);
+ sprintf(buf,"SPEC_%03d",nm);
+ ocg->add_field(ocg, 0, buf, r_t);
+ }
- if ((setel = (cgats_set_elem *)malloc(sizeof(cgats_set_elem) * sp->spec_n)) == NULL) {
- ocg->del(ocg);
- return 1;
- }
+ if ((setel = (cgats_set_elem *)malloc(sizeof(cgats_set_elem) * sp->spec_n)) == NULL) {
+ ocg->del(ocg);
+ return 1;
+ }
- for (j = 0; j < nspec; j++) {
- for (i = 0; i < sp[j].spec_n; i++) {
- setel[i].d = sp[j].spec[i];
+ for (j = 0; j < nspec; j++) {
+ for (i = 0; i < sp[j].spec_n; i++) {
+ setel[i].d = sp[j].spec[i];
+ }
+ ocg->add_setarr(ocg, 0, setel);
}
- ocg->add_setarr(ocg, 0, setel);
- }
+
+ free(setel);
+ } /* end save spectra */
+
+ *pocg = ocg;
+
+ return 0;
+}
+
+/* Part 2 */
+int write_nxspect_2(cgats *ocg, char *fname) {
if (ocg->write_name(ocg, fname)) {
DBGF((DBGA,"CGATS file write error : %s\n",ocg->err));
return 1;
}
- free(setel);
- ocg->del(ocg); /* Clean up */
+ ocg->del(ocg); /* Write & Clean up */
return 0;
}
+/* save a set of spectrum to a CGATS file */
+/* type 0 = SPECT, 1 = CMF */
+/* Return NZ on error */
+int write_nxspect(char *fname, inst_meas_type mt, xspect *sp, int nspec, int type) {
+ cgats *ocg;
+ int rv;
+
+ if ((rv = write_nxspect_1(&ocg, mt, sp, nspec, type)) != 0)
+ return rv;
+
+ return write_nxspect_2(ocg, fname);
+}
+
/* Restore a set of spectrum from a CGATS file. */
/* Up to nspec will be restored starting at offset off. */
/* The number restored from the file will be written to *nret */
@@ -3947,7 +3671,9 @@ int write_nxspect(char *fname, inst_meas_type mt, xspect *sp, int nspec, int typ
/* (Note that not all ccss information is read. Use ccss->read_ccss() for this. */
/* Return NZ on error */
/* (Would be nice to return an error message!) */
-int read_nxspect(xspect *sp, inst_meas_type *mt, char *fname,
+
+/* Part 1 */
+int read_nxspect_1(cgats **picg, xspect *sp, inst_meas_type *mt, char *fname,
int *nret, int off, int nspec, int type) {
cgats *icg; /* input cgats structure */
char buf[100];
@@ -4004,71 +3730,96 @@ int read_nxspect(xspect *sp, inst_meas_type *mt, char *fname,
*mt = inst_mrt_none;
}
- if ((ii = icg->find_kword(icg, 0, "SPECTRAL_BANDS")) < 0) {
- DBG ("Input file doesn't contain keyword SPECTRAL_BANDS\n");
- icg->del(icg);
- return 1;
- }
- proto.spec_n = atoi(icg->t[0].kdata[ii]);
- if ((ii = icg->find_kword(icg, 0, "SPECTRAL_START_NM")) < 0) {
- DBG("Input file doesn't contain keyword SPECTRAL_START_NM\n");
- icg->del(icg);
- return 1;
- }
- proto.spec_wl_short = atof(icg->t[0].kdata[ii]);
- if ((ii = icg->find_kword(icg, 0, "SPECTRAL_END_NM")) < 0) {
- DBG("Input file doesn't contain keyword SPECTRAL_END_NM\n");
- icg->del(icg);
- return 1;
- }
- proto.spec_wl_long = atof(icg->t[0].kdata[ii]);
-
- if ((ii = icg->find_kword(icg, 0, "SPECTRAL_NORM")) < 0) {
- DBG("Input file doesn't contain keyword SPECTRAL_NORM - assuming 1.0\n");
- proto.norm = 1.0;
- } else {
- proto.norm = atof(icg->t[0].kdata[ii]);
- }
-
- /* Find the fields for spectral values */
- for (i = 0; i < proto.spec_n; i++) {
- int nm, fi;
-
- /* Compute nearest integer wavelength */
- nm = (int)(XSPECT_XWL(&proto, i) + 0.5);
- sprintf(buf,"SPEC_%03d",nm);
-
- if ((fi = icg->find_field(icg, 0, buf)) < 0) {
- DBGF((DBGA,"Input file doesn't contain field %s\n",buf));
+ if (sp != NULL) {
+ if ((ii = icg->find_kword(icg, 0, "SPECTRAL_BANDS")) < 0) {
+ DBG ("Input file doesn't contain keyword SPECTRAL_BANDS\n");
icg->del(icg);
return 1;
}
-
- if (icg->t[0].ftype[fi] != r_t) {
- DBGF((DBGA,"Field %s in specrum is wrong type - should be a float\n",buf));
+ proto.spec_n = atoi(icg->t[0].kdata[ii]);
+ if ((ii = icg->find_kword(icg, 0, "SPECTRAL_START_NM")) < 0) {
+ DBG("Input file doesn't contain keyword SPECTRAL_START_NM\n");
icg->del(icg);
return 1;
}
- sflds[i] = fi;
- }
-
- /* Read all the spectra */
- for (j = off; j < (off + nspec) && j < icg->t[0].nsets; j++) {
+ proto.spec_wl_short = atof(icg->t[0].kdata[ii]);
+ if ((ii = icg->find_kword(icg, 0, "SPECTRAL_END_NM")) < 0) {
+ DBG("Input file doesn't contain keyword SPECTRAL_END_NM\n");
+ icg->del(icg);
+ return 1;
+ }
+ proto.spec_wl_long = atof(icg->t[0].kdata[ii]);
- XSPECT_COPY_INFO(&sp[j-off], &proto);
+ if ((ii = icg->find_kword(icg, 0, "SPECTRAL_NORM")) < 0) {
+ DBG("Input file doesn't contain keyword SPECTRAL_NORM - assuming 1.0\n");
+ proto.norm = 1.0;
+ } else {
+ proto.norm = atof(icg->t[0].kdata[ii]);
+ }
+ /* Find the fields for spectral values */
for (i = 0; i < proto.spec_n; i++) {
- sp[j-off].spec[i] = *((double *)icg->t[0].fdata[j][sflds[i]]);
+ int nm, fi;
+
+ /* Compute nearest integer wavelength */
+ nm = (int)(XSPECT_XWL(&proto, i) + 0.5);
+ sprintf(buf,"SPEC_%03d",nm);
+
+ if ((fi = icg->find_field(icg, 0, buf)) < 0) {
+ DBGF((DBGA,"Input file doesn't contain field %s\n",buf));
+ icg->del(icg);
+ return 1;
+ }
+
+ if (icg->t[0].ftype[fi] != r_t) {
+ DBGF((DBGA,"Field %s in specrum is wrong type - should be a float\n",buf));
+ icg->del(icg);
+ return 1;
+ }
+ sflds[i] = fi;
}
+
+ /* Read all the spectra */
+ for (j = off; j < (off + nspec) && j < icg->t[0].nsets; j++) {
+
+ XSPECT_COPY_INFO(&sp[j-off], &proto);
+
+ for (i = 0; i < proto.spec_n; i++) {
+ sp[j-off].spec[i] = *((double *)icg->t[0].fdata[j][sflds[i]]);
+ }
+ }
+ if (nret != NULL)
+ *nret = j - off;
+
+ /* If there are no spevctra to save */
+ } else {
+ if (nret != NULL)
+ *nret = 0;
}
- if (nret != NULL)
- *nret = j - off;
+
+ *picg = icg;
+
+ return 0;
+}
+
+int read_nxspect_2(cgats *icg) {
icg->del(icg);
return 0;
}
+int read_nxspect(xspect *sp, inst_meas_type *mt, char *fname,
+ int *nret, int off, int nspec, int type) {
+ cgats *icg;
+ int rv;
+
+ if ((rv = read_nxspect_1(&icg, sp, mt, fname, nret, off, nspec, type)) != 0)
+ return rv;
+
+ return read_nxspect_2(icg);
+}
+
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* save a spectrum to a CGATS file */
@@ -4077,6 +3828,14 @@ int write_xspect(char *fname, inst_meas_type mt, xspect *sp) {
return write_nxspect(fname, mt, sp, 1, 0);
}
+int write_xspect_1(cgats **ocgp, inst_meas_type mt, xspect *sp) {
+ return write_nxspect_1(ocgp, mt, sp, 1, 0);
+}
+
+int write_xspect_2(cgats *ocg, char *fname) {
+ return write_nxspect_2(ocg, fname);
+}
+
/* restore a spectrum from a CGATS file */
/* Return NZ on error */
/* (Would be nice to return an error message!) */
@@ -4093,6 +3852,23 @@ int read_xspect(xspect *sp, inst_meas_type *mt, char *fname) {
return 0;
}
+int read_xspect_1(cgats **picg, xspect *sp, inst_meas_type *mt, char *fname) {
+ int rv, nret;
+
+ if ((rv = read_nxspect_1(picg, sp, mt, fname, &nret, 0, 1, 1)) != 0)
+ return rv;
+ if (nret != 1) {
+ DBG("Didn't read one spectra\n");
+ return 1;
+ }
+
+ return 0;
+}
+
+int read_xspect_2(cgats *icg) {
+ return read_nxspect_2(icg);
+}
+
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* save a set of 3 spectrum to a CGATS CMF file */
/* Return NZ on error */
@@ -4290,6 +4066,69 @@ static int getval_raw_xspec3_lin(xspect *sp, double *rv, double wl) {
return rc;
}
+/* Get a raw 3rd order polinomial interpolated spectrum value x 3 */
+/* Return NZ if value is valid, Z and xtrapolated value */
+/* if outside the range */
+/* NOTE: Returned value isn't normalised by sp->norm */
+static int getval_raw_xspec3_poly3(xspect *sp, double *rv, double xw) {
+ int i, rc = 1;
+ double spcing, f;
+ double x[4], k[4];
+
+ if (xw < sp[0].spec_wl_short) {
+ xw = sp[0].spec_wl_short;
+ rc = 0;
+ }
+
+ if (xw > sp[0].spec_wl_long) {
+ xw = sp[0].spec_wl_long;
+ rc = 0;
+ }
+
+ /* Compute fraction 0.0 - 1.0 out of known spectrum. */
+ /* Place it so that the target wavelength lands in middle section */
+ /* of Lagrange basis points. */
+ spcing = (sp[0].spec_wl_long - sp[0].spec_wl_short)/(sp[0].spec_n-1.0);
+ f = (xw - sp[0].spec_wl_short) / (sp[0].spec_wl_long - sp[0].spec_wl_short);
+ f *= (sp[0].spec_n - 1.0);
+ i = (int)floor(f); /* Base grid coordinate */
+
+ if (i < 1) /* Limit to valid Lagrange basis index range, */
+ i = 1; /* and extrapolate from that at ends. */
+ else if (i > (sp[0].spec_n - 3))
+ i = (sp[0].spec_n - 3);
+
+ /* Setup the surrounding values */
+ x[0] = sp[0].spec_wl_short + (i-1) * spcing;
+ x[1] = sp[0].spec_wl_short + i * spcing;
+ x[2] = sp[0].spec_wl_short + (i+1) * spcing;
+ x[3] = sp[0].spec_wl_short + (i+2) * spcing;
+
+ /* Setup weightings */
+ k[0] = (xw-x[1]) * (xw-x[2]) * (xw-x[3])/((x[0]-x[1]) * (x[0]-x[2]) * (x[0]-x[3]));
+ k[1] = (xw-x[0]) * (xw-x[2]) * (xw-x[3])/((x[1]-x[0]) * (x[1]-x[2]) * (x[1]-x[3]));
+ k[2] = (xw-x[0]) * (xw-x[1]) * (xw-x[3])/((x[2]-x[0]) * (x[2]-x[1]) * (x[2]-x[3]));
+ k[3] = (xw-x[0]) * (xw-x[1]) * (xw-x[2])/((x[3]-x[0]) * (x[3]-x[1]) * (x[3]-x[2]));
+
+ /* Compute interpolated value using Lagrange: */
+ rv[0] = k[0] * sp[0].spec[i-1]
+ + k[1] * sp[0].spec[i]
+ + k[2] * sp[0].spec[i+1]
+ + k[3] * sp[0].spec[i+2];
+
+ rv[1] = k[0] * sp[1].spec[i-1]
+ + k[1] * sp[1].spec[i]
+ + k[2] * sp[1].spec[i+1]
+ + k[3] * sp[1].spec[i+2];
+
+ rv[2] = k[0] * sp[2].spec[i-1]
+ + k[1] * sp[2].spec[i]
+ + k[2] * sp[2].spec[i+1]
+ + k[3] * sp[2].spec[i+2];
+
+ return rc;
+}
+
#ifdef NEVER /* Nearest neighbor resampler, for testing */
/* Get a raw nearest-neighbor interpolated spectrum value. */
/* Return NZ if value is valid, Z and last valid value */
@@ -4342,6 +4181,9 @@ static int getval_raw_xspec_nn(xspect *sp, double *rv, double wl) {
static int getval_raw_xspec(xspect *sp, double *rv, double wl) {
double spcg = (sp->spec_wl_long - sp->spec_wl_short)/(sp->spec_n-1.0);
+ /* Hmm. Should we use poly3 for all spot resampling ? */
+ /* - or is it better to use linear on the assumption */
+ /* that the fwhm is rarely better than 5nm ? */
if (spcg < 5.01) {
return getval_raw_xspec_lin(sp, rv, wl);
} else {
@@ -4387,6 +4229,15 @@ void xspect_denorm(xspect *sp) {
sp->norm = 1.0;
}
+/* Scale the spectral values (don't alter norm) */
+void xspect_scale(xspect *sp, double scale) {
+ int i;
+
+ for (i = 0; i < sp->spec_n; i++) {
+ sp->spec[i] *= scale;
+ }
+}
+
#ifndef SALONEINSTLIB
/* Convert from one xspect type to another (targ type) */
@@ -4420,6 +4271,25 @@ void xspect2xspect(xspect *dst, xspect *targ, xspect *src) {
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+/* Dump a spectra to stdout */
+void xspect_dump(xspect *sp) {
+ int i;
+
+ printf("\t%d, %f, %f\n",sp->spec_n,sp->spec_wl_short,sp->spec_wl_long);
+ printf("\t%f\n",sp->norm);
+
+ for (i = 0; i < sp->spec_n; i++) {
+ if ((i % 5) == 0)
+ printf("\t\t");
+ printf("%f%s ", sp->spec[i],(i < sp->spec_n-1) ? "," : "");
+ if ((i % 5) == 4 || i == (sp->spec_n-1))
+ printf("\n");
+ }
+ printf("\n");
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
/* Plot up to 3 spectra */
void xspect_plot_w(xspect *sp1, xspect *sp2, xspect *sp3, int wait) {
static double xx[XSPECT_MAX_BANDS];
@@ -4483,7 +4353,7 @@ void xspect_plot(xspect *sp1, xspect *sp2, xspect *sp3) {
xspect_plot_w(sp1, sp2, sp3, 1);
}
-/* Plot up to 10 spectra */
+/* Plot up to 10 spectra in an array */
void xspect_plot10(xspect *sp, int n) {
double xx[XSPECT_MAX_BANDS];
double *yp[10];
@@ -4525,6 +4395,60 @@ void xspect_plot10(xspect *sp, int n) {
yp[5], yp[6], yp[7], yp[8], yp[9], j, 0);
}
+/* Plot up to 10 spectra pointed to by an array */
+void xspect_plot10p_w(xspect *sp[10], int n, int wait) {
+ double xx[XSPECT_MAX_BANDS];
+ double *yp[10];
+ double yy[10][XSPECT_MAX_BANDS];
+ double wl, wlshort, wllong;
+ int i, j;
+
+ for (i = 0; i < 10; i++)
+ yp[i] = NULL;
+
+ if (sp == NULL)
+ return;
+
+ wlshort = 1e6;
+ wllong = -1e6;
+
+ for (i = 0; i < n; i++) {
+ if (sp[i] == NULL)
+ continue;
+ if (sp[i]->spec_wl_short < wlshort)
+ wlshort = sp[i]->spec_wl_short;
+ if (sp[i]->spec_wl_long > wllong)
+ wllong = sp[i]->spec_wl_long;
+ }
+
+ if (wlshort > wllong)
+ return;
+
+ wlshort = floor(wlshort + 0.5);
+ wllong = floor(wllong + 0.5);
+
+ /* Compute at 1nm intervals over the whole range covered */
+ for (j = 0, wl = wlshort; j < XSPECT_MAX_BANDS && wl < wllong; j++, wl += 1.0) {
+#if defined(__APPLE__) && defined(__POWERPC__)
+ gcc_bug_fix(j);
+#endif
+ xx[j] = wl;
+ for (i = 0; i < n; i++) {
+ if (sp[i] == NULL)
+ continue;
+ yp[i] = yy[i];
+ yy[i][j] = value_xspect(sp[i], wl);
+ }
+ }
+ do_plot10pw(xx, yp[0], yp[1], yp[2], yp[3], yp[4],
+ yp[5], yp[6], yp[7], yp[8], yp[9], j, NULL, NULL, 0, wait);
+}
+
+/* Plot up to 10 spectra pointed to by an array * wait for a key */
+void xspect_plot10p(xspect *sp[10], int n) {
+ xspect_plot10p_w(sp, n, 1);
+}
+
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Given an emission spectrum, set the UV output to the given level. */
@@ -4655,6 +4579,7 @@ xspect *in /* Colorant reflectance to be applied */
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+static void xsp2cie_photo2rad(xsp2cie *p, double *rout, double *pout, xspect *sout, xspect *in);
static void xsp2cie_fwa_convert(xsp2cie *p, double *out, xspect *in);
static void xsp2cie_fwa_sconvert(xsp2cie *p, xspect *sout, double *out, xspect *in);
static int xsp2cie_fwa_extract(xsp2cie *p, xspect *out, xspect *in);
@@ -5336,6 +5261,7 @@ xspect *in /* Spectrum to be converted */
if (p->isemis) {
scale = 0.683002; /* Convert from mW/m^2 to Lumens/m^2 */
/* (== 683 Luments/Watt/m^2) */
+ scale *= p->spec_bw; /* Scale for integration interval */
} else {
scale = 1.0/scale;
}
@@ -5425,8 +5351,10 @@ xspect *in /* Spectrum to be converted */
}
/* If Lab is target, convert to D50 Lab */
- if (p->doLab) {
+ if (p->doLab == 1) {
icmXYZ2Lab(&icmD50, wout, wout);
+ } else if (p->doLab == 2) {
+ icmXYZ2Lpt(&icmD50, wout, wout);
}
if (out != NULL) {
@@ -5669,6 +5597,90 @@ xspect *in /* Colorant reflectance to be applied */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
#endif /* !SALONEINSTLIB */
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+/* Convert spectrum from photometric to radiometric. */
+/* Note that the input spectrum normalisation value is used. */
+/* Emissive spectral values are assumed to be in mW/nm, and sampled */
+/* rather than integrated if they are not at 1nm spacing. */
+static void xsp2cie_photo2rad(
+xsp2cie *p, /* this */
+double *routp, /* Return total lumens */
+double *poutp, /* Return total mW */
+xspect *sout, /* Return input spectrum converted to lm/nm */
+xspect *in /* Spectrum to be converted */
+) {
+ double rscale = 0.0;
+ double rout, pout;
+ double ww;
+
+ /* Compute the Y value (normalised to 1.0) */
+ /* Integrate at 1nm intervals over the observer range (as */
+ /* per CIE recommendations). Lower resolution spectra are */
+ /* upsampled using linear/3rd order polinomial interpolated */
+ /* (also as per CIE recommendations), and consistent (?) with the */
+ /* assumption of a triangular spectral response made in the */
+ /* ANSI CGATS.5-1993 spec. If illumninant or material spectra */
+ /* values are truncated at the extremes, then the last valid values */
+ /* are used, also consistent with CIE and ANSI CGATS recommendations. */
+ rout = 0.0;
+ pout = 0.0;
+ for (ww = p->spec_wl_short; ww <= p->spec_wl_long; ww += p->spec_bw) {
+ double I = 1.0, O, S;
+ if (!p->isemis)
+ getval_xspec(&p->illuminant, &I, ww);
+ getval_xspec(&p->observer[1], &O, ww);
+ getval_xspec(in, &S, ww);
+ rscale += I * O; /* Integrate Y illuminant * observer values */
+ rout += I * O * S;
+ pout += S;
+ }
+
+ if (p->isemis) {
+ // Hmm. Should we really make rscale += O for this case and then
+ // rscale = 0.683002/rscale ??
+ rscale = 0.683002; /* Convert from mW/m^2 to Lumens/m^2 */
+ /* (== 683 Luments/Watt/m^2) */
+ } else {
+ rscale *= p->spec_bw; /* Scale for integration interval */
+ rscale = 1.0/rscale;
+ }
+ /* Scale for illuminant/observer normalisation of Y */
+ rout *= rscale;
+#ifdef CLAMP_XYZ
+ if (p->clamp && rout < 0.0)
+ rout = 0.0; /* Just to be sure we don't get silly values */
+#endif /* CLAMP_XYZ */
+ if (routp != NULL)
+ *routp = rout;
+
+ pout *= p->spec_bw; /* Scale for integration interval */
+ if (poutp != NULL)
+ *poutp = pout;
+
+ /* Compute phometric output spectrum. For reflective/transmissive, this is */
+ /* the illuminant times the reflectivity/transmissitivity times Y weighting, */
+ /* for emisive this is the spectrum times the Y weighting */
+ if (sout != NULL) {
+ int i;
+
+ *sout = *in; /* Structure copy */
+
+ for (i = 0; i < in->spec_n; i++) {
+ double I = 1.0, O, S;
+
+ ww = XSPECT_XWL(in, i);
+
+ if (!p->isemis)
+ getval_xspec(&p->illuminant, &I, ww);
+ getval_xspec(&p->observer[1], &O, ww);
+ getval_xspec(in, &S, ww);
+ sout->spec[i] = rscale * I * O * S;
+ }
+ }
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Override the integration wavelength range and step size */
static void xsp2cie_set_int_steps(
xsp2cie *p, /* this */
@@ -5723,6 +5735,7 @@ xspect *in /* Spectrum to be converted */
// scale = 0.683002/scale ??
scale = 0.683002; /* Convert from mW/m^2 to Lumens/m^2 */
/* (== 683 Luments/Watt/m^2) */
+ scale *= p->spec_bw; /* Scale for integration interval */
} else {
scale = 1.0/scale;
}
@@ -5735,8 +5748,10 @@ xspect *in /* Spectrum to be converted */
}
/* If Lab is target, convert to D50 Lab */
- if (p->doLab) {
+ if (p->doLab == 1) {
icmXYZ2Lab(&icmD50, out, out);
+ } else if (p->doLab == 2) {
+ icmXYZ2Lpt(&icmD50, out, out);
}
if (sout != NULL) {
@@ -5756,8 +5771,10 @@ void xsp2cie_get_cie_il(xsp2cie *p, double *xyz) {
standardIlluminant(&sp, icxIT_E, 0.0);
p->convert(p, xyz, &sp);
- if (p->doLab)
+ if (p->doLab == 1)
icmLab2XYZ(&icmD50, xyz, xyz);
+ else if (p->doLab == 2)
+ icmLpt2XYZ(&icmD50, xyz, xyz);
}
void xsp2cie_del(
@@ -5774,6 +5791,7 @@ xspect *custIllum, /* Custom illuminant if ilType == icxIT_custom */
icxObserverType obType, /* Observer */
xspect custObserver[3], /* Custom observer if obType == icxOT_custom */
icColorSpaceSignature rcs, /* Return color space, icSigXYZData or D50 icSigLabData */
+ /* or D50 icmSigLptData */
/* ** Must be icSigXYZData if SALONEINSTLIB ** */
icxClamping clamp /* NZ to clamp XYZ/Lab to be +ve */
) {
@@ -5855,6 +5873,16 @@ icxClamping clamp /* NZ to clamp XYZ/Lab to be +ve */
p->observer[1] = ob_CIE_1964_10[1];
p->observer[2] = ob_CIE_1964_10[2];
break;
+ case icxOT_CIE_2012_2:
+ p->observer[0] = ob_CIE_2012_2[0];
+ p->observer[1] = ob_CIE_2012_2[1];
+ p->observer[2] = ob_CIE_2012_2[2];
+ break;
+ case icxOT_CIE_2012_10:
+ p->observer[0] = ob_CIE_2012_10[0];
+ p->observer[1] = ob_CIE_2012_10[1];
+ p->observer[2] = ob_CIE_2012_10[2];
+ break;
#ifndef SALONEINSTLIB
case icxOT_Stiles_Burch_2:
p->observer[0] = ob_Stiles_Burch_2[0];
@@ -5893,6 +5921,8 @@ icxClamping clamp /* NZ to clamp XYZ/Lab to be +ve */
#ifndef SALONEINSTLIB
else if (rcs == icSigLabData)
p->doLab = 1;
+ else if (rcs == icmSigLptData)
+ p->doLab = 2;
#endif /* !SALONEINSTLIB */
else {
DBGF((DBGA,"new_xsp2cie() unrecognised CIE type 0x%x",rcs));
@@ -5907,6 +5937,7 @@ icxClamping clamp /* NZ to clamp XYZ/Lab to be +ve */
p->spec_wl_long = p->observer[1].spec_wl_long;
p->set_int_steps = xsp2cie_set_int_steps;
+ p->photo2rad = xsp2cie_photo2rad;
p->convert = xsp2cie_convert;
p->sconvert = xsp2cie_sconvert;
p->get_cie_il = xsp2cie_get_cie_il;
@@ -5969,8 +6000,8 @@ int icx_spectrum_locus(double xyz[3], double wl, icxObserverType obType) {
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-/* Pre-calculated spectral locuses of Daylight and Plankian at 5 Mired intervals, */
-/* used by the fast but slightly less accurate CCT support icx_XYZ2ill_ct2() */
+/* Pre-calculated spectral locuses of Daylight and Plankian at 4 Mired intervals, */
+/* used by the fast but almost as accurate CCT support icx_XYZ2ill_ct2() */
/* Created using illlocus.c */
/* These aren't actually spectrum, they are XYZ values */
@@ -5978,1776 +6009,984 @@ int icx_spectrum_locus(double xyz[3], double wl, icxObserverType obType) {
static xspect illoc_Plankian_CIE_1931_2[3] = {
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.001190, 1.000021, 0.998861, 0.997711, 0.996571,
- 0.995444, 0.994330, 0.993229, 0.992143, 0.991072,
- 0.990017, 0.988980, 0.987961, 0.986960, 0.985979,
- 0.985018, 0.984078, 0.983159, 0.982263, 0.981390,
- 0.980540, 0.979714, 0.978913, 0.978137, 0.977387,
- 0.976663, 0.975965, 0.975295, 0.974652, 0.974036,
- 0.973449, 0.972890, 0.972359, 0.971858, 0.971385,
- 0.970942, 0.970529, 0.970145, 0.969791, 0.969468,
- 0.969174, 0.968910, 0.968677, 0.968474, 0.968301,
- 0.968159, 0.968047, 0.967965, 0.967914, 0.967893,
- 0.967902, 0.967941, 0.968010, 0.968109, 0.968238,
- 0.968396, 0.968584, 0.968802, 0.969049, 0.969325,
- 0.969629, 0.969963, 0.970325, 0.970715, 0.971134,
- 0.971581, 0.972055, 0.972558, 0.973087, 0.973644,
- 0.974227, 0.974838, 0.975475, 0.976138, 0.976827,
- 0.977542, 0.978282, 0.979048, 0.979839, 0.980655,
- 0.981495, 0.982360, 0.983249, 0.984162, 0.985098,
- 0.986058, 0.987041, 0.988047, 0.989076, 0.990127,
- 0.991200, 0.992295, 0.993412, 0.994551, 0.995711,
- 0.996891, 0.998093, 0.999315, 1.000557, 1.001820,
- 1.003102, 1.004404, 1.005726, 1.007066, 1.008426,
- 1.009804, 1.011201, 1.012616, 1.014050, 1.015501,
- 1.016970, 1.018456, 1.019960, 1.021480, 1.023018,
- 1.024572, 1.026143, 1.027729, 1.029332, 1.030951,
- 1.032586, 1.034236, 1.035901, 1.037581, 1.039276,
- 1.040986, 1.042711, 1.044450, 1.046203, 1.047970,
- 1.049751, 1.051546, 1.053354, 1.055175, 1.057010,
- 1.058857, 1.060718, 1.062591, 1.064477, 1.066375,
- 1.068285, 1.070207, 1.072141, 1.074087, 1.076045,
- 1.078013, 1.079994, 1.081985, 1.083987, 1.086000,
- 1.088024, 1.090059, 1.092103, 1.094159, 1.096224,
- 1.098299, 1.100384, 1.102479, 1.104584, 1.106698,
- 1.108822, 1.110954, 1.113096, 1.115247, 1.117407,
- 1.119575, 1.121752, 1.123938, 1.126132, 1.128334,
- 1.130544, 1.132763, 1.134989, 1.137223, 1.139465,
- 1.141715, 1.143972, 1.146236, 1.148508, 1.150786,
- 1.153072, 1.155365, 1.157665, 1.159971, 1.162284,
- 1.164604, 1.166930, 1.169263, 1.171601, 1.173946,
- 1.176297, 1.178654, 1.181017, 1.183386, 1.185760,
- 1.188140, 1.190526, 1.192917, 1.195313, 1.197715,
- 1.200122, 1.202534, 1.204951, 1.207372, 1.209799,
- 1.212231, 1.214667, 1.217107, 1.219553, 1.222002,
- 1.224456, 1.226915, 1.229377, 1.231844, 1.234315,
- 1.236790, 1.239268, 1.241751, 1.244237, 1.246727,
- 1.249221, 1.251718, 1.254219, 1.256723, 1.259230,
- 1.261741, 1.264255, 1.266772, 1.269292, 1.271816,
- 1.274342, 1.276871, 1.279403, 1.281938, 1.284475,
- 1.287015, 1.289558, 1.292103, 1.294651, 1.297201,
- 1.299753, 1.302308, 1.304865, 1.307424, 1.309985,
- 1.312548, 1.315113, 1.317681, 1.320250, 1.322821,
- 1.325393, 1.327968, 1.330544, 1.333122, 1.335701,
- 1.338282, 1.340865, 1.343448, 1.346034, 1.348620,
- 1.351208, 1.353797, 1.356387, 1.358979, 1.361571,
- 1.364165, 1.366759, 1.369355, 1.371951, 1.374548,
- 1.377146, 1.379745, 1.382345, 1.384945, 1.387546,
- 1.390147, 1.392749, 1.395352, 1.397955, 1.400559,
- 1.403162, 1.405767, 1.408371, 1.410976, 1.413581,
- 1.416186, 1.418792, 1.421397, 1.424003, 1.426609,
- 1.429214, 1.431820, 1.434425, 1.437031, 1.439636,
- 1.442241, 1.444846, 1.447451, 1.450055, 1.452659,
- 1.455263, 1.457866, 1.460469, 1.463072, 1.465674,
- 1.468275, 1.470876, 1.473477, 1.476077, 1.478676,
- 1.481274, 1.483872, 1.486469, 1.489065, 1.491661,
- 1.494255, 1.496849, 1.499442, 1.502034, 1.504625,
- 1.507215, 1.509804, 1.512392, 1.514979, 1.517565,
- 1.520150, 1.522734, 1.525316, 1.527898, 1.530478,
- 1.533057, 1.535634, 1.538211, 1.540786, 1.543359,
- 1.545932, 1.548503, 1.551072, 1.553640, 1.556207,
- 1.558772, 1.561335, 1.563897, 1.566458, 1.569017,
- 1.571574, 1.574130, 1.576684, 1.579236, 1.581787,
- 1.584336, 1.586883, 1.589429, 1.591972, 1.594514,
- 1.597054, 1.599593, 1.602129, 1.604664, 1.607196,
- 1.609727, 1.612256, 1.614782, 1.617307, 1.619830,
- 1.622351, 1.624869, 1.627386, 1.629901, 1.632413,
- 1.634924, 1.637432, 1.639938, 1.642442, 1.644944,
- 1.647444, 1.649941, 1.652436, 1.654929, 1.657420,
- 1.659908, 1.662394, 1.664878, 1.667359, 1.669838,
- 1.672315, 1.674790, 1.677261, 1.679731, 1.682198,
- 1.684663, 1.687125, 1.689585, 1.692042, 1.694497,
- 1.696949, 1.699399, 1.701846, 1.704291, 1.706733,
- 1.709173, 1.711610, 1.714044, 1.716476, 1.718905,
- 1.721331, 1.723755, 1.726176, 1.728594, 1.731010,
- 1.733423, 1.735833, 1.738241, 1.740646, 1.743048,
- 1.745447, 1.747844, 1.750238, 1.752629, 1.755017,
- 1.757402, 1.759785, 1.762164, 1.764541, 1.766915,
- 1.769286, 1.771654, 1.774019, 1.776382, 1.778741,
- 1.781098, 1.783451, 1.785802, 1.788150, 1.790494,
- 1.792836, 1.795175, 1.797511, 1.799843, 1.802173,
- 1.804500, 1.806824, 1.809144, 1.811462, 1.813777,
- 1.816088, 1.818397, 1.820702, 1.823004, 1.825303,
- 1.827600, 1.829893, 1.832182, 1.834469, 1.836753,
- 1.839033, 1.841311, 1.843585, 1.845856, 1.848124,
- 1.850388, 1.852650, 1.854908, 1.857163, 1.859415,
- 1.861664, 1.863909, 1.866152, 1.868391, 1.870627,
- 1.872859, 1.875088, 1.877315, 1.879537, 1.881757,
- 1.883973, 1.886186, 1.888396, 1.890603, 1.892806,
- 1.895006
+ 1.00118965, 0.99886057, 0.99657136, 0.99432958, 0.99214254,
+ 0.99001729, 0.98796054, 0.98597866, 0.98407763, 0.98226302,
+ 0.98054000, 0.97891328, 0.97738715, 0.97596548, 0.97465168,
+ 0.97344875, 0.97235928, 0.97138544, 0.97052903, 0.96979149,
+ 0.96917390, 0.96867704, 0.96830134, 0.96804699, 0.96791391,
+ 0.96790175, 0.96800998, 0.96823785, 0.96858444, 0.96904866,
+ 0.96962928, 0.97032494, 0.97113419, 0.97205545, 0.97308709,
+ 0.97422739, 0.97547459, 0.97682685, 0.97828232, 0.97983913,
+ 0.98149534, 0.98324906, 0.98509833, 0.98704124, 0.98907584,
+ 0.99120022, 0.99341246, 0.99571067, 0.99809295, 1.00055746,
+ 1.00310234, 1.00572579, 1.00842601, 1.01120123, 1.01404972,
+ 1.01696978, 1.01995971, 1.02301786, 1.02614263, 1.02933240,
+ 1.03258563, 1.03590077, 1.03927633, 1.04271082, 1.04620282,
+ 1.04975089, 1.05335365, 1.05700975, 1.06071784, 1.06447663,
+ 1.06828483, 1.07214120, 1.07604450, 1.07999354, 1.08398714,
+ 1.08802415, 1.09210343, 1.09622388, 1.10038442, 1.10458398,
+ 1.10882154, 1.11309606, 1.11740656, 1.12175205, 1.12613157,
+ 1.13054420, 1.13498900, 1.13946509, 1.14397156, 1.14850757,
+ 1.15307227, 1.15766481, 1.16228439, 1.16693021, 1.17160149,
+ 1.17629745, 1.18101735, 1.18576045, 1.19052602, 1.19531335,
+ 1.20012176, 1.20495056, 1.20979907, 1.21466664, 1.21955264,
+ 1.22445642, 1.22937737, 1.23431487, 1.23926835, 1.24423720,
+ 1.24922086, 1.25421876, 1.25923035, 1.26425509, 1.26929245,
+ 1.27434190, 1.27940293, 1.28447504, 1.28955774, 1.29465054,
+ 1.29975296, 1.30486454, 1.30998483, 1.31511336, 1.32024971,
+ 1.32539343, 1.33054410, 1.33570130, 1.34086463, 1.34603367,
+ 1.35120804, 1.35638735, 1.36157121, 1.36675924, 1.37195109,
+ 1.37714639, 1.38234479, 1.38754593, 1.39274948, 1.39795510,
+ 1.40316246, 1.40837123, 1.41358110, 1.41879175, 1.42400288,
+ 1.42921418, 1.43442537, 1.43963614, 1.44484621, 1.45005530,
+ 1.45526314, 1.46046945, 1.46567396, 1.47087643, 1.47607658,
+ 1.48127417, 1.48646895, 1.49166067, 1.49684910, 1.50203400,
+ 1.50721514, 1.51239229, 1.51756524, 1.52273375, 1.52789762,
+ 1.53305664, 1.53821060, 1.54335929, 1.54850252, 1.55364008,
+ 1.55877179, 1.56389746, 1.56901689, 1.57412991, 1.57923634,
+ 1.58433601, 1.58942872, 1.59451433, 1.59959266, 1.60466355,
+ 1.60972683, 1.61478235, 1.61982995, 1.62486949, 1.62990081,
+ 1.63492376, 1.63993821, 1.64494400, 1.64994101, 1.65492909,
+ 1.65990811, 1.66487795, 1.66983847, 1.67478954, 1.67973105,
+ 1.68466287, 1.68958488, 1.69449697, 1.69939902, 1.70429092,
+ 1.70917256, 1.71404384, 1.71890464, 1.72375486, 1.72859441,
+ 1.73342318, 1.73824108, 1.74304800, 1.74784386, 1.75262857,
+ 1.75740204, 1.76216417, 1.76691489, 1.77165410, 1.77638173,
+ 1.78109770, 1.78580193, 1.79049434, 1.79517486, 1.79984341,
+ 1.80449992, 1.80914432, 1.81377655, 1.81839653, 1.82300421,
+ 1.82759951, 1.83218238, 1.83675275, 1.84131057, 1.84585578,
+ 1.85038832, 1.85490813, 1.85941517, 1.86390939, 1.86839072,
+ 1.87285913, 1.87731457, 1.88175698, 1.88618633, 1.89060256,
+ 1.89500565
}
},
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000
}
},
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.963589, 1.948210, 1.932763, 1.917253, 1.901688,
- 1.886072, 1.870411, 1.854712, 1.838981, 1.823223,
- 1.807443, 1.791649, 1.775844, 1.760035, 1.744226,
- 1.728424, 1.712632, 1.696857, 1.681103, 1.665375,
- 1.649677, 1.634014, 1.618391, 1.602811, 1.587278,
- 1.571797, 1.556372, 1.541005, 1.525701, 1.510463,
- 1.495294, 1.480197, 1.465176, 1.450233, 1.435370,
- 1.420591, 1.405897, 1.391292, 1.376777, 1.362354,
- 1.348026, 1.333793, 1.319659, 1.305623, 1.291689,
- 1.277856, 1.264128, 1.250503, 1.236985, 1.223573,
- 1.210269, 1.197073, 1.183986, 1.171008, 1.158141,
- 1.145385, 1.132739, 1.120205, 1.107783, 1.095472,
- 1.083273, 1.071187, 1.059212, 1.047349, 1.035599,
- 1.023960, 1.012432, 1.001016, 0.989711, 0.978517,
- 0.967433, 0.956459, 0.945595, 0.934840, 0.924194,
- 0.913655, 0.903225, 0.892901, 0.882684, 0.872572,
- 0.862566, 0.852664, 0.842867, 0.833172, 0.823580,
- 0.814090, 0.804701, 0.795412, 0.786223, 0.777133,
- 0.768140, 0.759245, 0.750447, 0.741744, 0.733136,
- 0.724623, 0.716202, 0.707875, 0.699638, 0.691493,
- 0.683438, 0.675472, 0.667595, 0.659805, 0.652102,
- 0.644486, 0.636954, 0.629507, 0.622143, 0.614862,
- 0.607663, 0.600545, 0.593508, 0.586550, 0.579671,
- 0.572870, 0.566146, 0.559498, 0.552926, 0.546429,
- 0.540006, 0.533656, 0.527379, 0.521173, 0.515039,
- 0.508975, 0.502980, 0.497055, 0.491197, 0.485407,
- 0.479683, 0.474025, 0.468433, 0.462905, 0.457441,
- 0.452040, 0.446701, 0.441424, 0.436208, 0.431053,
- 0.425958, 0.420921, 0.415943, 0.411023, 0.406160,
- 0.401354, 0.396604, 0.391908, 0.387268, 0.382682,
- 0.378149, 0.373669, 0.369241, 0.364865, 0.360540,
- 0.356266, 0.352042, 0.347867, 0.343741, 0.339663,
- 0.335634, 0.331651, 0.327715, 0.323825, 0.319981,
- 0.316182, 0.312428, 0.308718, 0.305051, 0.301428,
- 0.297847, 0.294308, 0.290811, 0.287356, 0.283941,
- 0.280566, 0.277231, 0.273935, 0.270678, 0.267460,
- 0.264279, 0.261137, 0.258031, 0.254962, 0.251929,
- 0.248932, 0.245971, 0.243045, 0.240153, 0.237295,
- 0.234472, 0.231682, 0.228924, 0.226200, 0.223508,
- 0.220848, 0.218219, 0.215621, 0.213055, 0.210519,
- 0.208013, 0.205536, 0.203089, 0.200672, 0.198282,
- 0.195922, 0.193589, 0.191284, 0.189007, 0.186756,
- 0.184533, 0.182336, 0.180165, 0.178020, 0.175900,
- 0.173806, 0.171737, 0.169692, 0.167672, 0.165676,
- 0.163703, 0.161754, 0.159829, 0.157926, 0.156046,
- 0.154189, 0.152353, 0.150540, 0.148748, 0.146978,
- 0.145229, 0.143501, 0.141793, 0.140106, 0.138439,
- 0.136792, 0.135164, 0.133556, 0.131968, 0.130398,
- 0.128847, 0.127315, 0.125801, 0.124305, 0.122827,
- 0.121366, 0.119924, 0.118498, 0.117090, 0.115698,
- 0.114323, 0.112965, 0.111623, 0.110297, 0.108987,
- 0.107692, 0.106413, 0.105150, 0.103901, 0.102668,
- 0.101449, 0.100245, 0.099055, 0.097880, 0.096719,
- 0.095571, 0.094438, 0.093318, 0.092212, 0.091118,
- 0.090038, 0.088971, 0.087917, 0.086875, 0.085846,
- 0.084829, 0.083825, 0.082832, 0.081852, 0.080883,
- 0.079926, 0.078980, 0.078046, 0.077123, 0.076211,
- 0.075310, 0.074419, 0.073540, 0.072671, 0.071812,
- 0.070964, 0.070126, 0.069298, 0.068480, 0.067672,
- 0.066874, 0.066085, 0.065306, 0.064536, 0.063775,
- 0.063023, 0.062281, 0.061547, 0.060822, 0.060106,
- 0.059399, 0.058700, 0.058009, 0.057327, 0.056653,
- 0.055987, 0.055329, 0.054679, 0.054036, 0.053402,
- 0.052775, 0.052156, 0.051544, 0.050939, 0.050342,
- 0.049752, 0.049169, 0.048593, 0.048023, 0.047461,
- 0.046906, 0.046357, 0.045814, 0.045279, 0.044749,
- 0.044226, 0.043710, 0.043199, 0.042695, 0.042197,
- 0.041704, 0.041218, 0.040737, 0.040262, 0.039793,
- 0.039330, 0.038872, 0.038420, 0.037973, 0.037531,
- 0.037095, 0.036664, 0.036238, 0.035817, 0.035401,
- 0.034990, 0.034584, 0.034183, 0.033787, 0.033396,
- 0.033009, 0.032627, 0.032249, 0.031876, 0.031508,
- 0.031144, 0.030784, 0.030428, 0.030077, 0.029730,
- 0.029387, 0.029049, 0.028714, 0.028383, 0.028056,
- 0.027734, 0.027415, 0.027100, 0.026788, 0.026480,
- 0.026177, 0.025876, 0.025579, 0.025286, 0.024996,
- 0.024710, 0.024427, 0.024148, 0.023872, 0.023599,
- 0.023329, 0.023063, 0.022800, 0.022540, 0.022283,
- 0.022029, 0.021778, 0.021530, 0.021285, 0.021043,
- 0.020804, 0.020568, 0.020334, 0.020104, 0.019876,
- 0.019651, 0.019428, 0.019208, 0.018991, 0.018776,
- 0.018564, 0.018354, 0.018147, 0.017942, 0.017740,
- 0.017540, 0.017343, 0.017148, 0.016955, 0.016764,
- 0.016576, 0.016390, 0.016206, 0.016024, 0.015845,
- 0.015668, 0.015492, 0.015319, 0.015148, 0.014979,
- 0.014811, 0.014646, 0.014483, 0.014322, 0.014162,
- 0.014005, 0.013849, 0.013695, 0.013543, 0.013393,
- 0.013245, 0.013098, 0.012953, 0.012810, 0.012668,
- 0.012528, 0.012390, 0.012253, 0.012118, 0.011985,
- 0.011853, 0.011723, 0.011594, 0.011467, 0.011341,
- 0.011217, 0.011094, 0.010972, 0.010852, 0.010734,
- 0.010617, 0.010501, 0.010386, 0.010273, 0.010161,
- 0.010051, 0.009942, 0.009834, 0.009727, 0.009621,
- 0.009517, 0.009414, 0.009312, 0.009212, 0.009112,
- 0.009014, 0.008917, 0.008821, 0.008726, 0.008632,
- 0.008540, 0.008448, 0.008357, 0.008268, 0.008180,
- 0.008092
+ 1.96358909, 1.93276284, 1.90168755, 1.87041114, 1.83898096,
+ 1.80744344, 1.77584388, 1.74422613, 1.71263247, 1.68110337,
+ 1.64967734, 1.61839087, 1.58727830, 1.55637174, 1.52570109,
+ 1.49529401, 1.46517591, 1.43537002, 1.40589738, 1.37677696,
+ 1.34802570, 1.31965859, 1.29168878, 1.26412763, 1.23698487,
+ 1.21026863, 1.18398560, 1.15814109, 1.13273915, 1.10778264,
+ 1.08327336, 1.05921210, 1.03559876, 1.01243241, 0.98971136,
+ 0.96743328, 0.94559520, 0.92419362, 0.90322457, 0.88268364,
+ 0.86256605, 0.84286669, 0.82358017, 0.80470085, 0.78622290,
+ 0.76814028, 0.75044686, 0.73313633, 0.71620235, 0.69963847,
+ 0.68343821, 0.66759505, 0.65210248, 0.63695397, 0.62214300,
+ 0.60766310, 0.59350782, 0.57967077, 0.56614559, 0.55292599,
+ 0.54000577, 0.52737878, 0.51503895, 0.50298029, 0.49119689,
+ 0.47968295, 0.46843272, 0.45744058, 0.44670098, 0.43620847,
+ 0.42595769, 0.41594337, 0.40616035, 0.39660354, 0.38726798,
+ 0.37814878, 0.36924113, 0.36054035, 0.35204182, 0.34374103,
+ 0.33563356, 0.32771505, 0.31998128, 0.31242806, 0.30505134,
+ 0.29784711, 0.29081146, 0.28394058, 0.27723072, 0.27067820,
+ 0.26427945, 0.25803094, 0.25192925, 0.24597102, 0.24015294,
+ 0.23447181, 0.22892448, 0.22350786, 0.21821895, 0.21305480,
+ 0.20801253, 0.20308932, 0.19828242, 0.19358913, 0.18900681,
+ 0.18453290, 0.18016487, 0.17590026, 0.17173667, 0.16767174,
+ 0.16370317, 0.15982871, 0.15604617, 0.15235340, 0.14874829,
+ 0.14522880, 0.14179291, 0.13843868, 0.13516418, 0.13196755,
+ 0.12884694, 0.12580058, 0.12282672, 0.11992366, 0.11708971,
+ 0.11432327, 0.11162272, 0.10898652, 0.10641315, 0.10390113,
+ 0.10144899, 0.09905534, 0.09671877, 0.09443794, 0.09221154,
+ 0.09003826, 0.08791685, 0.08584608, 0.08382474, 0.08185167,
+ 0.07992571, 0.07804574, 0.07621067, 0.07441943, 0.07267098,
+ 0.07096429, 0.06929838, 0.06767227, 0.06608501, 0.06453567,
+ 0.06302335, 0.06154717, 0.06010625, 0.05869977, 0.05732689,
+ 0.05598681, 0.05467875, 0.05340194, 0.05215564, 0.05093910,
+ 0.04975163, 0.04859252, 0.04746109, 0.04635668, 0.04527865,
+ 0.04422635, 0.04319918, 0.04219652, 0.04121780, 0.04026243,
+ 0.03932986, 0.03841953, 0.03753092, 0.03666350, 0.03581676,
+ 0.03499021, 0.03418336, 0.03339574, 0.03262688, 0.03187633,
+ 0.03114365, 0.03042842, 0.02973021, 0.02904861, 0.02838323,
+ 0.02773367, 0.02709955, 0.02648050, 0.02587616, 0.02528617,
+ 0.02471019, 0.02414789, 0.02359892, 0.02306298, 0.02253974,
+ 0.02202890, 0.02153017, 0.02104324, 0.02056785, 0.02010370,
+ 0.01965053, 0.01920807, 0.01877607, 0.01835427, 0.01794244,
+ 0.01754032, 0.01714768, 0.01676431, 0.01638996, 0.01602443,
+ 0.01566751, 0.01531898, 0.01497865, 0.01464632, 0.01432179,
+ 0.01400488, 0.01369541, 0.01339319, 0.01309805, 0.01280983,
+ 0.01252835, 0.01225345, 0.01198498, 0.01172278, 0.01146670,
+ 0.01121659, 0.01097231, 0.01073372, 0.01050069, 0.01027308,
+ 0.01005075, 0.00983359, 0.00962147, 0.00941427, 0.00921188,
+ 0.00901416, 0.00882103, 0.00863235, 0.00844804, 0.00826797,
+ 0.00809206
}
}
};
static xspect illoc_Daylight_CIE_1931_2[3] = {
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 0.980513, 0.979463, 0.978420, 0.977383, 0.976353,
- 0.975333, 0.974322, 0.973321, 0.972332, 0.971354,
- 0.970390, 0.969439, 0.968503, 0.967582, 0.966676,
- 0.965787, 0.964916, 0.964062, 0.963227, 0.962412,
- 0.961616, 0.960840, 0.960086, 0.959353, 0.958642,
- 0.957953, 0.957288, 0.956646, 0.956029, 0.955436,
- 0.954867, 0.954325, 0.953808, 0.953317, 0.952852,
- 0.952415, 0.952005, 0.951622, 0.951268, 0.950941,
- 0.950643, 0.950374, 0.950135, 0.949924, 0.949743,
- 0.949592, 0.949471, 0.949381, 0.949321, 0.949292,
- 0.949293, 0.949326, 0.949391, 0.949486, 0.949613,
- 0.949771, 0.949961, 0.950182, 0.950435, 0.950720,
- 0.951037, 0.951386, 0.951766, 0.952178, 0.952622,
- 0.953098, 0.953606, 0.954145, 0.954716, 0.955318,
- 0.955951, 0.956616, 0.957312, 0.958039, 0.958797,
- 0.959585, 0.960405, 0.961254, 0.962134, 0.963043,
- 0.963982, 0.964951, 0.965949, 0.966977, 0.968033,
- 0.969117, 0.970230, 0.971371, 0.972540, 0.973736,
- 0.974959, 0.976209, 0.977486, 0.978788, 0.980117,
- 0.981471, 0.982850, 0.984254, 0.985682, 0.987134,
- 0.988610, 0.990109, 0.991631, 0.993175, 0.994740,
- 0.996328, 0.997936, 0.999565, 1.001214, 1.002882,
- 1.004570, 1.006276, 1.008000, 1.009741, 1.011500,
- 1.013275, 1.015066, 1.016872, 1.018693, 1.020528,
- 1.022376, 1.024238, 1.026112, 1.027997, 1.029894,
- 1.031800, 1.033717, 1.035642, 1.037576, 1.039518,
- 1.041466, 1.043421, 1.045381, 1.047345, 1.049314,
- 1.051286, 1.053260, 1.055236, 1.057212, 1.059189,
- 1.061165, 1.063139, 1.065110, 1.067079, 1.069042,
- 1.071001, 1.072954, 1.074900, 1.076838, 1.078767,
- 1.080687, 1.082596, 1.084493, 1.086378, 1.088250,
- 1.090107, 1.091949, 1.093774, 1.095582, 1.097372,
- 1.099142, 1.100892, 1.102620, 1.104327, 1.106009,
- 1.107668, 1.109300, 1.110907, 1.112485, 1.114036,
- 1.115556, 1.117047, 1.118505, 1.119931, 1.121323,
- 1.122681, 1.124003, 1.125288, 1.126535, 1.127744,
- 1.128913
+ 0.98051318, 0.97841966, 0.97635345, 0.97432184, 0.97233180,
+ 0.97039000, 0.96850277, 0.96667617, 0.96491589, 0.96322734,
+ 0.96161563, 0.96008555, 0.95864160, 0.95728801, 0.95602873,
+ 0.95486746, 0.95380762, 0.95285244, 0.95200487, 0.95126769,
+ 0.95064345, 0.95013453, 0.94974312, 0.94947125, 0.94932079,
+ 0.94929347, 0.94939071, 0.94961278, 0.94996076, 0.95043539,
+ 0.95103711, 0.95176612, 0.95262240, 0.95360571, 0.95471557,
+ 0.95595133, 0.95731214, 0.95879695, 0.96040455, 0.96213356,
+ 0.96398242, 0.96594941, 0.96803268, 0.97023018, 0.97253976,
+ 0.97495908, 0.97748567, 0.98011689, 0.98285000, 0.98568205,
+ 0.98860998, 0.99163057, 0.99474044, 0.99793606, 1.00121376,
+ 1.00456967, 1.00799980, 1.01149997, 1.01506584, 1.01869291,
+ 1.02237650, 1.02611175, 1.02989363, 1.03371694, 1.03757629,
+ 1.04146611, 1.04538066, 1.04931399, 1.05326001, 1.05721242,
+ 1.06116475, 1.06511036, 1.06904244, 1.07295400, 1.07683790,
+ 1.08068685, 1.08449339, 1.08824994, 1.09194881, 1.09558214,
+ 1.09914202, 1.10262042, 1.10600924, 1.10930032, 1.11248548,
+ 1.11555649, 1.11850514, 1.12132325, 1.12400265, 1.12653529,
+ 1.12891318
}
},
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000
}
},
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 1.943602, 1.928150, 1.912613, 1.897001, 1.881321,
- 1.865580, 1.849784, 1.833942, 1.818059, 1.802142,
- 1.786198, 1.770233, 1.754253, 1.738263, 1.722270,
- 1.706279, 1.690295, 1.674323, 1.658369, 1.642436,
- 1.626531, 1.610657, 1.594819, 1.579020, 1.563266,
- 1.547559, 1.531903, 1.516302, 1.500760, 1.485279,
- 1.469863, 1.454514, 1.439236, 1.424031, 1.408902,
- 1.393851, 1.378881, 1.363993, 1.349191, 1.334475,
- 1.319847, 1.305310, 1.290866, 1.276515, 1.262259,
- 1.248099, 1.234037, 1.220075, 1.206212, 1.192450,
- 1.178790, 1.165233, 1.151811, 1.138526, 1.125350,
- 1.112284, 1.099330, 1.086490, 1.073764, 1.061153,
- 1.048660, 1.036283, 1.024025, 1.011886, 0.999866,
- 0.987966, 0.976187, 0.964529, 0.952992, 0.941577,
- 0.930283, 0.919111, 0.908061, 0.897132, 0.886325,
- 0.875640, 0.865075, 0.854632, 0.844310, 0.834108,
- 0.824027, 0.814065, 0.804222, 0.794499, 0.784893,
- 0.775406, 0.766036, 0.756782, 0.747645, 0.738623,
- 0.729716, 0.720923, 0.712244, 0.703678, 0.695223,
- 0.686881, 0.678648, 0.670526, 0.662513, 0.654608,
- 0.646811, 0.639121, 0.631537, 0.624058, 0.616683,
- 0.609412, 0.602244, 0.595178, 0.588213, 0.581349,
- 0.574584, 0.567919, 0.561351, 0.554880, 0.548506,
- 0.542227, 0.536043, 0.529953, 0.523956, 0.518051,
- 0.512238, 0.506516, 0.500884, 0.495341, 0.489887,
- 0.484521, 0.479241, 0.474048, 0.468940, 0.463917,
- 0.458978, 0.454122, 0.449349, 0.444657, 0.440047,
- 0.435518, 0.431068, 0.426697, 0.422405, 0.418191,
- 0.414054, 0.409993, 0.406009, 0.402099, 0.398265,
- 0.394504, 0.390817, 0.387203, 0.383662, 0.380192,
- 0.376793, 0.373466, 0.370208, 0.367020, 0.363902,
- 0.360852, 0.357870, 0.354957, 0.352110, 0.349331,
- 0.346618, 0.343971, 0.341389, 0.338873, 0.336422,
- 0.334036, 0.331714, 0.329455, 0.327260, 0.325129,
- 0.323060, 0.321055, 0.319111, 0.317230, 0.315412,
- 0.313654, 0.311959, 0.310325, 0.308753, 0.307241,
- 0.305791
+ 1.94360231, 1.91261334, 1.88132109, 1.84978432, 1.81805903,
+ 1.78619845, 1.75425296, 1.72227012, 1.69029469, 1.65836864,
+ 1.62653120, 1.59481893, 1.56326577, 1.53190313, 1.50075998,
+ 1.46986292, 1.43923629, 1.40890227, 1.37888097, 1.34919053,
+ 1.31984725, 1.29086564, 1.26225857, 1.23403734, 1.20621178,
+ 1.17879034, 1.15181073, 1.12534969, 1.09933037, 1.07376387,
+ 1.04865950, 1.02402484, 0.99986591, 0.97618733, 0.95299239,
+ 0.93028318, 0.90806074, 0.88632509, 0.86507541, 0.84431004,
+ 0.82402663, 0.80422220, 0.78489319, 0.76603555, 0.74764478,
+ 0.72971602, 0.71224406, 0.69522340, 0.67864834, 0.66251293,
+ 0.64681108, 0.63153657, 0.61668308, 0.60224419, 0.58821348,
+ 0.57458445, 0.56135062, 0.54850552, 0.53604270, 0.52395576,
+ 0.51223835, 0.50088419, 0.48988709, 0.47924093, 0.46893970,
+ 0.45897750, 0.44934854, 0.44004715, 0.43106779, 0.42240505,
+ 0.41405367, 0.40600852, 0.39826465, 0.39081724, 0.38366164,
+ 0.37679336, 0.37020811, 0.36390176, 0.35787036, 0.35211017,
+ 0.34661764, 0.34138942, 0.33642238, 0.33171362, 0.32726047,
+ 0.32306048, 0.31911149, 0.31541156, 0.31195906, 0.30875263,
+ 0.30579122
}
}
};
static xspect illoc_OPlankian_CIE_1931_2[3] = {
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.001252, 1.000085, 0.998928, 0.997780, 0.996643,
- 0.995518, 0.994406, 0.993307, 0.992222, 0.991153,
- 0.990100, 0.989064, 0.988046, 0.987046, 0.986066,
- 0.985106, 0.984166, 0.983248, 0.982352, 0.981479,
- 0.980629, 0.979803, 0.979001, 0.978224, 0.977473,
- 0.976748, 0.976049, 0.975377, 0.974732, 0.974114,
- 0.973525, 0.972963, 0.972430, 0.971926, 0.971451,
- 0.971005, 0.970588, 0.970201, 0.969844, 0.969516,
- 0.969218, 0.968951, 0.968713, 0.968506, 0.968328,
- 0.968181, 0.968064, 0.967978, 0.967921, 0.967894,
- 0.967898, 0.967931, 0.967995, 0.968088, 0.968210,
- 0.968363, 0.968544, 0.968755, 0.968995, 0.969265,
- 0.969562, 0.969889, 0.970244, 0.970627, 0.971039,
- 0.971478, 0.971945, 0.972440, 0.972962, 0.973510,
- 0.974086, 0.974689, 0.975317, 0.975972, 0.976653,
- 0.977360, 0.978092, 0.978850, 0.979632, 0.980439,
- 0.981271, 0.982127, 0.983007, 0.983911, 0.984839,
- 0.985790, 0.986764, 0.987761, 0.988780, 0.989822,
- 0.990886, 0.991972, 0.993080, 0.994209, 0.995359,
- 0.996531, 0.997723, 0.998935, 1.000168, 1.001421,
- 1.002694, 1.003986, 1.005298, 1.006629, 1.007979,
- 1.009347, 1.010734, 1.012140, 1.013563, 1.015004,
- 1.016463, 1.017940, 1.019434, 1.020944, 1.022472,
- 1.024016, 1.025577, 1.027153, 1.028746, 1.030355,
- 1.031979, 1.033619, 1.035274, 1.036945, 1.038630,
- 1.040330, 1.042044, 1.043773, 1.045516, 1.047273,
- 1.049044, 1.050828, 1.052626, 1.054437, 1.056262,
- 1.058099, 1.059950, 1.061813, 1.063688, 1.065576,
- 1.067476, 1.069388, 1.071312, 1.073248, 1.075195,
- 1.077154, 1.079124, 1.081105, 1.083097, 1.085100,
- 1.087114, 1.089138, 1.091173, 1.093218, 1.095274,
- 1.097339, 1.099414, 1.101499, 1.103593, 1.105697,
- 1.107811, 1.109934, 1.112065, 1.114206, 1.116356,
- 1.118514, 1.120682, 1.122857, 1.125041, 1.127233,
- 1.129434, 1.131643, 1.133859, 1.136083, 1.138315,
- 1.140555, 1.142802, 1.145057, 1.147319, 1.149588,
- 1.151864, 1.154147, 1.156437, 1.158734, 1.161037,
- 1.163347, 1.165664, 1.167987, 1.170316, 1.172651,
- 1.174993, 1.177340, 1.179694, 1.182053, 1.184418,
- 1.186788, 1.189164, 1.191546, 1.193933, 1.196325,
- 1.198723, 1.201125, 1.203533, 1.205945, 1.208363,
- 1.210785, 1.213212, 1.215644, 1.218080, 1.220520,
- 1.222965, 1.225414, 1.227868, 1.230326, 1.232787,
- 1.235253, 1.237723, 1.240197, 1.242674, 1.245155,
- 1.247640, 1.250128, 1.252620, 1.255115, 1.257614,
- 1.260116, 1.262621, 1.265130, 1.267641, 1.270156,
- 1.272674, 1.275194, 1.277717, 1.280244, 1.282773,
- 1.285304, 1.287838, 1.290375, 1.292914, 1.295456,
- 1.298000, 1.300546, 1.303095, 1.305646, 1.308199,
- 1.310754, 1.313311, 1.315870, 1.318431, 1.320994,
- 1.323559, 1.326125, 1.328693, 1.331263, 1.333835,
- 1.336408, 1.338982, 1.341558, 1.344135, 1.346714,
- 1.349294, 1.351876, 1.354458, 1.357042, 1.359627,
- 1.362212, 1.364799, 1.367387, 1.369976, 1.372566,
- 1.375156, 1.377748, 1.380340, 1.382933, 1.385526,
- 1.388120, 1.390715, 1.393311, 1.395906, 1.398503,
- 1.401099, 1.403696, 1.406294, 1.408892, 1.411490,
- 1.414088, 1.416686, 1.419285, 1.421883, 1.424482,
- 1.427081, 1.429680, 1.432278, 1.434877, 1.437476,
- 1.440074, 1.442672, 1.445270, 1.447868, 1.450465,
- 1.453063, 1.455659, 1.458256, 1.460852, 1.463447,
- 1.466042, 1.468637, 1.471231, 1.473824, 1.476417,
- 1.479009, 1.481601, 1.484192, 1.486782, 1.489371,
- 1.491960, 1.494547, 1.497134, 1.499720, 1.502305,
- 1.504889, 1.507473, 1.510055, 1.512636, 1.515216,
- 1.517795, 1.520373, 1.522950, 1.525525, 1.528100,
- 1.530673, 1.533245, 1.535816, 1.538385, 1.540953,
- 1.543520, 1.546085, 1.548649, 1.551212, 1.553773,
- 1.556333, 1.558891, 1.561448, 1.564003, 1.566557,
- 1.569109, 1.571660, 1.574208, 1.576756, 1.579301,
- 1.581845, 1.584387, 1.586928, 1.589467, 1.592004,
- 1.594539, 1.597072, 1.599604, 1.602133, 1.604661,
- 1.607187, 1.609711, 1.612233, 1.614753, 1.617271,
- 1.619788, 1.622302, 1.624814, 1.627324, 1.629832,
- 1.632338, 1.634842, 1.637344, 1.639843, 1.642341,
- 1.644836, 1.647329, 1.649820, 1.652309, 1.654795,
- 1.657279, 1.659761, 1.662241, 1.664718, 1.667193,
- 1.669666, 1.672136, 1.674604, 1.677070, 1.679533,
- 1.681994, 1.684452, 1.686908, 1.689362, 1.691813,
- 1.694261, 1.696707, 1.699151, 1.701592, 1.704030,
- 1.706466, 1.708900, 1.711331, 1.713759, 1.716184,
- 1.718607, 1.721028, 1.723445, 1.725860, 1.728273,
- 1.730683, 1.733090, 1.735494, 1.737896, 1.740294,
- 1.742691, 1.745084, 1.747475, 1.749862, 1.752248,
- 1.754630, 1.757009, 1.759386, 1.761760, 1.764131,
- 1.766499, 1.768864, 1.771227, 1.773586, 1.775943,
- 1.778297, 1.780648, 1.782995, 1.785340, 1.787683,
- 1.790022, 1.792358, 1.794691, 1.797021, 1.799349,
- 1.801673, 1.803994, 1.806312, 1.808627, 1.810940,
- 1.813249, 1.815555, 1.817858, 1.820158, 1.822455,
- 1.824749, 1.827040, 1.829327, 1.831612, 1.833893,
- 1.836172, 1.838447, 1.840719, 1.842988, 1.845254,
- 1.847517, 1.849776, 1.852033, 1.854286, 1.856536,
- 1.858783, 1.861027, 1.863267, 1.865504, 1.867738,
- 1.869969, 1.872197, 1.874421, 1.876643, 1.878860,
- 1.881075, 1.883287, 1.885495, 1.887700, 1.889901,
- 1.892100
+ 1.00125164, 0.99892771, 0.99664323, 0.99440568, 0.99222235,
+ 0.99010022, 0.98804598, 0.98606595, 0.98416609, 0.98235194,
+ 0.98062864, 0.97900090, 0.97747300, 0.97604880, 0.97473170,
+ 0.97352471, 0.97243041, 0.97145101, 0.97058830, 0.96984375,
+ 0.96921844, 0.96871317, 0.96832840, 0.96806433, 0.96792091,
+ 0.96789782, 0.96799453, 0.96821034, 0.96854433, 0.96899544,
+ 0.96956248, 0.97024410, 0.97103887, 0.97194524, 0.97296159,
+ 0.97408624, 0.97531742, 0.97665334, 0.97809216, 0.97963201,
+ 0.98127100, 0.98300723, 0.98483877, 0.98676371, 0.98878014,
+ 0.99088614, 0.99307981, 0.99535927, 0.99772265, 1.00016810,
+ 1.00269378, 1.00529790, 1.00797867, 1.01073434, 1.01356317,
+ 1.01646347, 1.01943357, 1.02247182, 1.02557660, 1.02874634,
+ 1.03197947, 1.03527448, 1.03862985, 1.04204414, 1.04551589,
+ 1.04904369, 1.05262617, 1.05626197, 1.05994977, 1.06368825,
+ 1.06747615, 1.07131223, 1.07519525, 1.07912402, 1.08309737,
+ 1.08711415, 1.09117323, 1.09527352, 1.09941392, 1.10359339,
+ 1.10781089, 1.11206541, 1.11635594, 1.12068151, 1.12504118,
+ 1.12943400, 1.13385905, 1.13831545, 1.14280230, 1.14731875,
+ 1.15186395, 1.15643707, 1.16103730, 1.16566385, 1.17031592,
+ 1.17499276, 1.17969362, 1.18441775, 1.18916445, 1.19393299,
+ 1.19872269, 1.20353287, 1.20836285, 1.21321199, 1.21807964,
+ 1.22296517, 1.22786796, 1.23278742, 1.23772293, 1.24267392,
+ 1.24763982, 1.25262006, 1.25761409, 1.26262138, 1.26764138,
+ 1.27267359, 1.27771748, 1.28277256, 1.28783833, 1.29291431,
+ 1.29800003, 1.30309502, 1.30819882, 1.31331098, 1.31843106,
+ 1.32355863, 1.32869327, 1.33383455, 1.33898207, 1.34413542,
+ 1.34929421, 1.35445805, 1.35962657, 1.36479938, 1.36997612,
+ 1.37515643, 1.38033995, 1.38552634, 1.39071525, 1.39590635,
+ 1.40109931, 1.40629380, 1.41148951, 1.41668612, 1.42188333,
+ 1.42708084, 1.43227834, 1.43747555, 1.44267219, 1.44786797,
+ 1.45306261, 1.45825585, 1.46344741, 1.46863705, 1.47382449,
+ 1.47900950, 1.48419181, 1.48937119, 1.49454740, 1.49972020,
+ 1.50488936, 1.51005466, 1.51521587, 1.52037278, 1.52552516,
+ 1.53067281, 1.53581552, 1.54095309, 1.54608531, 1.55121199,
+ 1.55633294, 1.56144796, 1.56655688, 1.57165950, 1.57675566,
+ 1.58184516, 1.58692784, 1.59200353, 1.59707206, 1.60213327,
+ 1.60718700, 1.61223308, 1.61727137, 1.62230170, 1.62732394,
+ 1.63233793, 1.63734353, 1.64234060, 1.64732900, 1.65230859,
+ 1.65727924, 1.66224082, 1.66719320, 1.67213625, 1.67706985,
+ 1.68199388, 1.68690821, 1.69181274, 1.69670735, 1.70159192,
+ 1.70646634, 1.71133051, 1.71618432, 1.72102767, 1.72586045,
+ 1.73068257, 1.73549392, 1.74029442, 1.74508397, 1.74986247,
+ 1.75462984, 1.75938599, 1.76413083, 1.76886428, 1.77358625,
+ 1.77829667, 1.78299546, 1.78768254, 1.79235783, 1.79702126,
+ 1.80167276, 1.80631225, 1.81093968, 1.81555497, 1.82015805,
+ 1.82474887, 1.82932735, 1.83389344, 1.83844709, 1.84298822,
+ 1.84751679, 1.85203273, 1.85653600, 1.86102655, 1.86550431,
+ 1.86996925, 1.87442131, 1.87886046, 1.88328663, 1.88769979,
+ 1.89209989
}
},
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000
}
},
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.964399, 1.949065, 1.933662, 1.918197, 1.902676,
- 1.887104, 1.871488, 1.855833, 1.840145, 1.824431,
- 1.808694, 1.792942, 1.777180, 1.761413, 1.745646,
- 1.729884, 1.714133, 1.698398, 1.682683, 1.666994,
- 1.651334, 1.635709, 1.620122, 1.604578, 1.589081,
- 1.573634, 1.558243, 1.542909, 1.527638, 1.512431,
- 1.497293, 1.482226, 1.467234, 1.452320, 1.437485,
- 1.422732, 1.408065, 1.393485, 1.378994, 1.364595,
- 1.350290, 1.336080, 1.321966, 1.307952, 1.294037,
- 1.280224, 1.266513, 1.252907, 1.239405, 1.226009,
- 1.212720, 1.199539, 1.186466, 1.173502, 1.160647,
- 1.147903, 1.135268, 1.122745, 1.110333, 1.098031,
- 1.085841, 1.073763, 1.061796, 1.049940, 1.038196,
- 1.026563, 1.015041, 1.003630, 0.992329, 0.981138,
- 0.970058, 0.959087, 0.948225, 0.937472, 0.926827,
- 0.916289, 0.905859, 0.895535, 0.885318, 0.875206,
- 0.865199, 0.855295, 0.845496, 0.835799, 0.826205,
- 0.816712, 0.807319, 0.798027, 0.788834, 0.779739,
- 0.770743, 0.761843, 0.753039, 0.744331, 0.735718,
- 0.727199, 0.718772, 0.710438, 0.702195, 0.694043,
- 0.685981, 0.678008, 0.670124, 0.662326, 0.654616,
- 0.646991, 0.639451, 0.631995, 0.624623, 0.617333,
- 0.610126, 0.602999, 0.595952, 0.588985, 0.582096,
- 0.575286, 0.568552, 0.561895, 0.555313, 0.548805,
- 0.542372, 0.536012, 0.529725, 0.523509, 0.517364,
- 0.511289, 0.505284, 0.499347, 0.493478, 0.487677,
- 0.481943, 0.476274, 0.470670, 0.465131, 0.459655,
- 0.454243, 0.448893, 0.443605, 0.438378, 0.433211,
- 0.428104, 0.423056, 0.418066, 0.413134, 0.408260,
- 0.403442, 0.398679, 0.393972, 0.389320, 0.384722,
- 0.380177, 0.375686, 0.371246, 0.366858, 0.362522,
- 0.358235, 0.353999, 0.349812, 0.345675, 0.341585,
- 0.337543, 0.333549, 0.329601, 0.325700, 0.321844,
- 0.318033, 0.314267, 0.310545, 0.306866, 0.303231,
- 0.299639, 0.296088, 0.292580, 0.289112, 0.285685,
- 0.282299, 0.278952, 0.275645, 0.272376, 0.269147,
- 0.265955, 0.262800, 0.259683, 0.256603, 0.253559,
- 0.250551, 0.247578, 0.244640, 0.241737, 0.238869,
- 0.236034, 0.233232, 0.230464, 0.227729, 0.225026,
- 0.222354, 0.219715, 0.217106, 0.214529, 0.211982,
- 0.209465, 0.206978, 0.204520, 0.202092, 0.199692,
- 0.197321, 0.194978, 0.192663, 0.190375, 0.188114,
- 0.185880, 0.183673, 0.181492, 0.179337, 0.177207,
- 0.175103, 0.173024, 0.170969, 0.168939, 0.166933,
- 0.164951, 0.162992, 0.161057, 0.159145, 0.157255,
- 0.155388, 0.153543, 0.151720, 0.149919, 0.148140,
- 0.146381, 0.144644, 0.142927, 0.141231, 0.139555,
- 0.137899, 0.136262, 0.134646, 0.133048, 0.131470,
- 0.129910, 0.128369, 0.126846, 0.125342, 0.123855,
- 0.122387, 0.120935, 0.119502, 0.118085, 0.116685,
- 0.115302, 0.113935, 0.112585, 0.111251, 0.109933,
- 0.108631, 0.107344, 0.106072, 0.104816, 0.103575,
- 0.102349, 0.101137, 0.099940, 0.098757, 0.097588,
- 0.096434, 0.095293, 0.094166, 0.093052, 0.091952,
- 0.090864, 0.089790, 0.088729, 0.087680, 0.086644,
- 0.085620, 0.084609, 0.083610, 0.082622, 0.081647,
- 0.080683, 0.079731, 0.078790, 0.077860, 0.076942,
- 0.076035, 0.075138, 0.074252, 0.073377, 0.072512,
- 0.071658, 0.070814, 0.069980, 0.069156, 0.068342,
- 0.067537, 0.066743, 0.065958, 0.065182, 0.064415,
- 0.063658, 0.062910, 0.062171, 0.061440, 0.060718,
- 0.060006, 0.059301, 0.058605, 0.057917, 0.057238,
- 0.056567, 0.055904, 0.055248, 0.054601, 0.053961,
- 0.053329, 0.052705, 0.052088, 0.051478, 0.050876,
- 0.050281, 0.049693, 0.049113, 0.048539, 0.047972,
- 0.047411, 0.046858, 0.046311, 0.045771, 0.045237,
- 0.044710, 0.044188, 0.043674, 0.043165, 0.042662,
- 0.042166, 0.041675, 0.041190, 0.040711, 0.040238,
- 0.039770, 0.039308, 0.038852, 0.038401, 0.037955,
- 0.037515, 0.037080, 0.036650, 0.036226, 0.035806,
- 0.035392, 0.034982, 0.034577, 0.034177, 0.033782,
- 0.033392, 0.033006, 0.032625, 0.032249, 0.031877,
- 0.031509, 0.031146, 0.030787, 0.030432, 0.030082,
- 0.029736, 0.029394, 0.029056, 0.028722, 0.028392,
- 0.028066, 0.027744, 0.027426, 0.027111, 0.026801,
- 0.026494, 0.026190, 0.025891, 0.025594, 0.025302,
- 0.025013, 0.024727, 0.024445, 0.024166, 0.023890,
- 0.023618, 0.023349, 0.023083, 0.022820, 0.022560,
- 0.022304, 0.022050, 0.021800, 0.021553, 0.021308,
- 0.021066, 0.020828, 0.020592, 0.020359, 0.020128,
- 0.019901, 0.019676, 0.019453, 0.019234, 0.019017,
- 0.018802, 0.018590, 0.018381, 0.018174, 0.017970,
- 0.017767, 0.017568, 0.017371, 0.017176, 0.016983,
- 0.016793, 0.016604, 0.016418, 0.016235, 0.016053,
- 0.015874, 0.015697, 0.015521, 0.015348, 0.015177,
- 0.015008, 0.014841, 0.014676, 0.014513, 0.014352,
- 0.014192, 0.014035, 0.013879, 0.013725, 0.013574,
- 0.013423, 0.013275, 0.013128, 0.012983, 0.012840,
- 0.012699, 0.012559, 0.012420, 0.012284, 0.012149,
- 0.012015, 0.011883, 0.011753, 0.011624, 0.011497,
- 0.011371, 0.011247, 0.011124, 0.011002, 0.010882,
- 0.010764, 0.010647, 0.010531, 0.010416, 0.010303,
- 0.010191, 0.010081, 0.009971, 0.009863, 0.009756,
- 0.009651, 0.009547, 0.009444, 0.009342, 0.009241,
- 0.009142, 0.009043, 0.008946, 0.008850, 0.008755,
- 0.008661, 0.008568, 0.008477, 0.008386, 0.008296,
- 0.008208
+ 1.96439943, 1.93366215, 1.90267576, 1.87148781, 1.84014529,
+ 1.80869432, 1.77717987, 1.74564552, 1.71413328, 1.68268338,
+ 1.65133414, 1.62012186, 1.58908072, 1.55824272, 1.52763764,
+ 1.49729306, 1.46723434, 1.43748466, 1.40806505, 1.37899449,
+ 1.35028991, 1.32196635, 1.29403698, 1.26651323, 1.23940489,
+ 1.21272015, 1.18646578, 1.16064717, 1.13526846, 1.11033259,
+ 1.08584145, 1.06179593, 1.03819603, 1.01504089, 0.99232893,
+ 0.97005791, 0.94822494, 0.92682663, 0.90585907, 0.88531796,
+ 0.86519858, 0.84549592, 0.82620466, 0.80731924, 0.78883389,
+ 0.77074266, 0.75303945, 0.73571806, 0.71877218, 0.70219544,
+ 0.68598141, 0.67012363, 0.65461562, 0.63945092, 0.62462307,
+ 0.61012562, 0.59595218, 0.58209638, 0.56855193, 0.55531258,
+ 0.54237214, 0.52972451, 0.51736364, 0.50528359, 0.49347848,
+ 0.48194252, 0.47067002, 0.45965535, 0.44889301, 0.43837756,
+ 0.42810367, 0.41806609, 0.40825969, 0.39867939, 0.38932025,
+ 0.38017739, 0.37124604, 0.36252151, 0.35399921, 0.34567465,
+ 0.33754341, 0.32960116, 0.32184367, 0.31426679, 0.30686645,
+ 0.29963868, 0.29257957, 0.28568531, 0.27895217, 0.27237648,
+ 0.26595467, 0.25968323, 0.25355874, 0.24757783, 0.24173724,
+ 0.23603373, 0.23046418, 0.22502551, 0.21971471, 0.21452884,
+ 0.20946502, 0.20452044, 0.19969236, 0.19497807, 0.19037495,
+ 0.18588043, 0.18149199, 0.17720716, 0.17302356, 0.16893881,
+ 0.16495064, 0.16105678, 0.15725505, 0.15354329, 0.14991942,
+ 0.14638137, 0.14292714, 0.13955477, 0.13626235, 0.13304801,
+ 0.12990992, 0.12684628, 0.12385536, 0.12093544, 0.11808486,
+ 0.11530199, 0.11258524, 0.10993304, 0.10734389, 0.10481629,
+ 0.10234879, 0.09993997, 0.09758846, 0.09529289, 0.09305195,
+ 0.09086434, 0.08872880, 0.08664410, 0.08460904, 0.08262243,
+ 0.08068314, 0.07879003, 0.07694202, 0.07513804, 0.07337703,
+ 0.07165797, 0.06997988, 0.06834177, 0.06674270, 0.06518173,
+ 0.06365796, 0.06217050, 0.06071849, 0.05930109, 0.05791746,
+ 0.05656681, 0.05524834, 0.05396129, 0.05270491, 0.05147846,
+ 0.05028124, 0.04911253, 0.04797167, 0.04685798, 0.04577082,
+ 0.04470955, 0.04367355, 0.04266222, 0.04167497, 0.04071121,
+ 0.03977039, 0.03885196, 0.03795538, 0.03708013, 0.03622569,
+ 0.03539158, 0.03457729, 0.03378236, 0.03300632, 0.03224871,
+ 0.03150911, 0.03078706, 0.03008216, 0.02939399, 0.02872215,
+ 0.02806625, 0.02742590, 0.02680073, 0.02619038, 0.02559449,
+ 0.02501271, 0.02444471, 0.02389015, 0.02334872, 0.02282009,
+ 0.02230396, 0.02180003, 0.02130800, 0.02082759, 0.02035853,
+ 0.01990053, 0.01945333, 0.01901668, 0.01859032, 0.01817400,
+ 0.01776748, 0.01737052, 0.01698291, 0.01660440, 0.01623479,
+ 0.01587386, 0.01552140, 0.01517721, 0.01484110, 0.01451285,
+ 0.01419230, 0.01387925, 0.01357352, 0.01327494, 0.01298333,
+ 0.01269854, 0.01242039, 0.01214873, 0.01188339, 0.01162424,
+ 0.01137112, 0.01112389, 0.01088241, 0.01064653, 0.01041613,
+ 0.01019107, 0.00997123, 0.00975647, 0.00954669, 0.00934176,
+ 0.00914157, 0.00894599, 0.00875493, 0.00856827, 0.00838592,
+ 0.00820775
}
}
};
static xspect illoc_ODaylight_CIE_1931_2[3] = {
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 0.980733, 0.979686, 0.978644, 0.977610, 0.976584,
- 0.975566, 0.974557, 0.973559, 0.972572, 0.971597,
- 0.970635, 0.969687, 0.968753, 0.967834, 0.966931,
- 0.966045, 0.965176, 0.964324, 0.963492, 0.962678,
- 0.961884, 0.961111, 0.960358, 0.959627, 0.958918,
- 0.958232, 0.957568, 0.956929, 0.956313, 0.955721,
- 0.955155, 0.954614, 0.954098, 0.953609, 0.953146,
- 0.952710, 0.952302, 0.951920, 0.951567, 0.951242,
- 0.950945, 0.950677, 0.950439, 0.950229, 0.950049,
- 0.949899, 0.949779, 0.949690, 0.949630, 0.949602,
- 0.949604, 0.949638, 0.949703, 0.949799, 0.949926,
- 0.950085, 0.950275, 0.950497, 0.950750, 0.951035,
- 0.951352, 0.951701, 0.952081, 0.952493, 0.952937,
- 0.953413, 0.953920, 0.954459, 0.955030, 0.955632,
- 0.956265, 0.956929, 0.957625, 0.958351, 0.959108,
- 0.959896, 0.960715, 0.961563, 0.962442, 0.963351,
- 0.964289, 0.965257, 0.966254, 0.967281, 0.968336,
- 0.969419, 0.970531, 0.971670, 0.972838, 0.974033,
- 0.975254, 0.976503, 0.977778, 0.979079, 0.980406,
- 0.981759, 0.983136, 0.984538, 0.985965, 0.987415,
- 0.988889, 0.990386, 0.991906, 0.993448, 0.995012,
- 0.996597, 0.998203, 0.999830, 1.001477, 1.003143,
- 1.004828, 1.006532, 1.008254, 1.009993, 1.011749,
- 1.013522, 1.015310, 1.017114, 1.018932, 1.020765,
- 1.022611, 1.024470, 1.026341, 1.028223, 1.030117,
- 1.032021, 1.033935, 1.035858, 1.037789, 1.039727,
- 1.041673, 1.043625, 1.045582, 1.047543, 1.049509,
- 1.051478, 1.053449, 1.055422, 1.057396, 1.059369,
- 1.061342, 1.063313, 1.065282, 1.067247, 1.069208,
- 1.071163, 1.073113, 1.075056, 1.076991, 1.078917,
- 1.080834, 1.082740, 1.084634, 1.086516, 1.088385,
- 1.090239, 1.092078, 1.093900, 1.095705, 1.097492,
- 1.099259, 1.101006, 1.102732, 1.104435, 1.106115,
- 1.107771, 1.109401, 1.111004, 1.112581, 1.114128,
- 1.115647, 1.117134, 1.118590, 1.120014, 1.121404,
- 1.122759, 1.124078, 1.125361, 1.126607, 1.127813,
- 1.128981
+ 0.98073262, 0.97864445, 0.97658353, 0.97455712, 0.97257220,
+ 0.97063541, 0.96875308, 0.96693124, 0.96517559, 0.96349152,
+ 0.96188413, 0.96035821, 0.95891825, 0.95756847, 0.95631283,
+ 0.95515500, 0.95409842, 0.95314629, 0.95230159, 0.95156707,
+ 0.95094529, 0.95043862, 0.95004926, 0.94977923, 0.94963039,
+ 0.94960449, 0.94970294, 0.94992599, 0.95027476, 0.95074995,
+ 0.95135202, 0.95208117, 0.95293738, 0.95392040, 0.95502977,
+ 0.95626483, 0.95762472, 0.95910842, 0.96071470, 0.96244218,
+ 0.96428931, 0.96625438, 0.96833552, 0.97053071, 0.97283778,
+ 0.97525439, 0.97777809, 0.98040625, 0.98313609, 0.98596471,
+ 0.98888903, 0.99190584, 0.99501176, 0.99820327, 1.00147669,
+ 1.00482817, 1.00825371, 1.01174915, 1.01531016, 1.01893222,
+ 1.02261067, 1.02634067, 1.03011718, 1.03393500, 1.03778877,
+ 1.04167291, 1.04558168, 1.04950918, 1.05344929, 1.05739573,
+ 1.06134205, 1.06528161, 1.06920761, 1.07311309, 1.07699090,
+ 1.08083377, 1.08463427, 1.08838482, 1.09207772, 1.09570517,
+ 1.09925925, 1.10273195, 1.10611518, 1.10940081, 1.11258066,
+ 1.11564653, 1.11859023, 1.12140357, 1.12407842, 1.12660674,
+ 1.12898057
}
},
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000
}
},
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 1.945100, 1.929640, 1.914098, 1.898479, 1.882791,
- 1.867042, 1.851240, 1.835389, 1.819499, 1.803574,
- 1.787622, 1.771648, 1.755660, 1.739661, 1.723659,
- 1.707659, 1.691666, 1.675685, 1.659721, 1.643779,
- 1.627864, 1.611981, 1.596132, 1.580324, 1.564559,
- 1.548842, 1.533176, 1.517564, 1.502011, 1.486520,
- 1.471093, 1.455733, 1.440444, 1.425228, 1.410088,
- 1.395026, 1.380044, 1.365145, 1.350331, 1.335604,
- 1.320965, 1.306416, 1.291960, 1.277597, 1.263330,
- 1.249158, 1.235085, 1.221110, 1.207236, 1.193462,
- 1.179790, 1.166222, 1.152787, 1.139490, 1.126302,
- 1.113225, 1.100260, 1.087407, 1.074669, 1.062047,
- 1.049542, 1.037153, 1.024884, 1.012733, 1.000701,
- 0.988790, 0.977000, 0.965330, 0.953782, 0.942355,
- 0.931050, 0.919867, 0.908805, 0.897866, 0.887048,
- 0.876351, 0.865776, 0.855322, 0.844989, 0.834777,
- 0.824684, 0.814712, 0.804859, 0.795125, 0.785509,
- 0.776012, 0.766631, 0.757368, 0.748221, 0.739189,
- 0.730272, 0.721470, 0.712781, 0.704205, 0.695742,
- 0.687390, 0.679148, 0.671017, 0.662995, 0.655081,
- 0.647275, 0.639576, 0.631984, 0.624496, 0.617113,
- 0.609834, 0.602658, 0.595584, 0.588611, 0.581739,
- 0.574967, 0.568293, 0.561718, 0.555239, 0.548858,
- 0.542572, 0.536381, 0.530283, 0.524280, 0.518368,
- 0.512549, 0.506820, 0.501181, 0.495632, 0.490171,
- 0.484799, 0.479513, 0.474313, 0.469200, 0.464171,
- 0.459226, 0.454364, 0.449586, 0.444889, 0.440273,
- 0.435739, 0.431284, 0.426908, 0.422611, 0.418392,
- 0.414250, 0.410184, 0.406195, 0.402281, 0.398442,
- 0.394677, 0.390986, 0.387368, 0.383822, 0.380348,
- 0.376946, 0.373614, 0.370353, 0.367162, 0.364039,
- 0.360986, 0.358001, 0.355084, 0.352234, 0.349451,
- 0.346735, 0.344085, 0.341501, 0.338982, 0.336528,
- 0.334139, 0.331814, 0.329553, 0.327356, 0.325222,
- 0.323151, 0.321143, 0.319198, 0.317315, 0.315494,
- 0.313734, 0.312037, 0.310401, 0.308827, 0.307314,
- 0.305862
+ 1.94509985, 1.91409750, 1.88279115, 1.85123956, 1.81949876,
+ 1.78762198, 1.75565965, 1.72365933, 1.69166581, 1.65972109,
+ 1.62786443, 1.59613242, 1.56455902, 1.53317568, 1.50201140,
+ 1.47109282, 1.44044431, 1.41008807, 1.38004426, 1.35033106,
+ 1.32096478, 1.29195997, 1.26332953, 1.23508479, 1.20723562,
+ 1.17979049, 1.15278717, 1.12630248, 1.10025953, 1.07466947,
+ 1.04954162, 1.02488359, 1.00070144, 0.97699981, 0.95378200,
+ 0.93105015, 0.90880530, 0.88704751, 0.86577595, 0.84498900,
+ 0.82468432, 0.80485893, 0.78550931, 0.76663139, 0.74822070,
+ 0.73027239, 0.71278125, 0.69574179, 0.67914831, 0.66299488,
+ 0.64727541, 0.63198367, 0.61711335, 0.60265805, 0.58861132,
+ 0.57496669, 0.56171766, 0.54885776, 0.53638055, 0.52427962,
+ 0.51254863, 0.50118129, 0.49017140, 0.47951285, 0.46919963,
+ 0.45922581, 0.44958562, 0.44027338, 0.43128355, 0.42261070,
+ 0.41424959, 0.40619507, 0.39844218, 0.39098611, 0.38382219,
+ 0.37694595, 0.37035307, 0.36403942, 0.35800105, 0.35223421,
+ 0.34673535, 0.34150112, 0.33652838, 0.33181422, 0.32735598,
+ 0.32315120, 0.31919770, 0.31549357, 0.31203715, 0.30882709,
+ 0.30586232
}
}
};
static xspect illoc_Plankian_CIE_1964_10[3] = {
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 0.981980, 0.981153, 0.980335, 0.979528, 0.978732,
- 0.977948, 0.977178, 0.976421, 0.975679, 0.974952,
- 0.974241, 0.973547, 0.972870, 0.972212, 0.971572,
- 0.970952, 0.970352, 0.969772, 0.969214, 0.968677,
- 0.968163, 0.967671, 0.967202, 0.966758, 0.966337,
- 0.965941, 0.965570, 0.965224, 0.964903, 0.964609,
- 0.964340, 0.964098, 0.963883, 0.963694, 0.963532,
- 0.963398, 0.963291, 0.963212, 0.963160, 0.963136,
- 0.963140, 0.963172, 0.963231, 0.963319, 0.963434,
- 0.963578, 0.963749, 0.963948, 0.964175, 0.964430,
- 0.964713, 0.965023, 0.965361, 0.965726, 0.966119,
- 0.966539, 0.966986, 0.967460, 0.967960, 0.968487,
- 0.969041, 0.969621, 0.970227, 0.970859, 0.971517,
- 0.972201, 0.972910, 0.973644, 0.974402, 0.975186,
- 0.975994, 0.976827, 0.977683, 0.978564, 0.979468,
- 0.980396, 0.981347, 0.982320, 0.983317, 0.984336,
- 0.985378, 0.986441, 0.987526, 0.988633, 0.989762,
- 0.990911, 0.992081, 0.993272, 0.994484, 0.995715,
- 0.996967, 0.998238, 0.999529, 1.000840, 1.002169,
- 1.003517, 1.004884, 1.006269, 1.007672, 1.009094,
- 1.010533, 1.011989, 1.013463, 1.014954, 1.016462,
- 1.017986, 1.019527, 1.021084, 1.022657, 1.024246,
- 1.025851, 1.027470, 1.029106, 1.030756, 1.032421,
- 1.034101, 1.035795, 1.037503, 1.039225, 1.040961,
- 1.042711, 1.044475, 1.046251, 1.048041, 1.049844,
- 1.051659, 1.053487, 1.055327, 1.057180, 1.059045,
- 1.060921, 1.062809, 1.064709, 1.066621, 1.068543,
- 1.070476, 1.072421, 1.074376, 1.076342, 1.078318,
- 1.080304, 1.082300, 1.084307, 1.086323, 1.088349,
- 1.090384, 1.092429, 1.094483, 1.096546, 1.098618,
- 1.100699, 1.102789, 1.104887, 1.106993, 1.109108,
- 1.111231, 1.113362, 1.115500, 1.117647, 1.119801,
- 1.121962, 1.124131, 1.126307, 1.128491, 1.130681,
- 1.132878, 1.135082, 1.137292, 1.139509, 1.141733,
- 1.143962, 1.146198, 1.148440, 1.150688, 1.152942,
- 1.155202, 1.157467, 1.159737, 1.162013, 1.164295,
- 1.166582, 1.168873, 1.171170, 1.173472, 1.175778,
- 1.178090, 1.180405, 1.182726, 1.185051, 1.187380,
- 1.189713, 1.192051, 1.194392, 1.196738, 1.199088,
- 1.201441, 1.203798, 1.206159, 1.208523, 1.210891,
- 1.213262, 1.215636, 1.218014, 1.220394, 1.222778,
- 1.225165, 1.227554, 1.229947, 1.232342, 1.234740,
- 1.237140, 1.239543, 1.241949, 1.244357, 1.246767,
- 1.249179, 1.251594, 1.254010, 1.256429, 1.258849,
- 1.261272, 1.263696, 1.266122, 1.268550, 1.270979,
- 1.273410, 1.275843, 1.278276, 1.280712, 1.283148,
- 1.285586, 1.288025, 1.290465, 1.292906, 1.295348,
- 1.297792, 1.300236, 1.302681, 1.305126, 1.307573,
- 1.310020, 1.312468, 1.314916, 1.317365, 1.319814,
- 1.322264, 1.324714, 1.327165, 1.329615, 1.332066,
- 1.334517, 1.336969, 1.339420, 1.341871, 1.344323,
- 1.346774, 1.349225, 1.351676, 1.354127, 1.356578,
- 1.359028, 1.361478, 1.363927, 1.366377, 1.368825,
- 1.371274, 1.373721, 1.376168, 1.378615, 1.381061,
- 1.383506, 1.385950, 1.388394, 1.390837, 1.393279,
- 1.395720, 1.398160, 1.400599, 1.403038, 1.405475,
- 1.407911, 1.410346, 1.412780, 1.415213, 1.417644,
- 1.420075, 1.422504, 1.424931, 1.427358, 1.429783,
- 1.432207, 1.434629, 1.437050, 1.439469, 1.441887,
- 1.444304, 1.446718, 1.449131, 1.451543, 1.453953,
- 1.456361, 1.458768, 1.461173, 1.463576, 1.465977,
- 1.468376, 1.470774, 1.473170, 1.475564, 1.477956,
- 1.480346, 1.482734, 1.485120, 1.487504, 1.489886,
- 1.492266, 1.494644, 1.497020, 1.499393, 1.501765,
- 1.504134, 1.506501, 1.508867, 1.511229, 1.513590,
- 1.515948, 1.518304, 1.520658, 1.523009, 1.525358,
- 1.527705, 1.530049, 1.532391, 1.534730, 1.537067,
- 1.539402, 1.541734, 1.544064, 1.546391, 1.548715,
- 1.551037, 1.553357, 1.555674, 1.557988, 1.560300,
- 1.562609, 1.564915, 1.567219, 1.569520, 1.571818,
- 1.574114, 1.576407, 1.578698, 1.580985, 1.583270,
- 1.585552, 1.587831, 1.590108, 1.592381, 1.594652,
- 1.596920, 1.599185, 1.601448, 1.603707, 1.605964,
- 1.608217, 1.610468, 1.612716, 1.614961, 1.617203,
- 1.619442, 1.621678, 1.623911, 1.626141, 1.628368,
- 1.630592, 1.632813, 1.635031, 1.637247, 1.639459,
- 1.641668, 1.643873, 1.646076, 1.648276, 1.650473,
- 1.652666, 1.654857, 1.657044, 1.659228, 1.661409,
- 1.663587, 1.665762, 1.667934, 1.670103, 1.672268,
- 1.674430, 1.676589, 1.678745, 1.680897, 1.683047,
- 1.685193, 1.687336, 1.689476, 1.691612, 1.693746,
- 1.695876, 1.698003, 1.700126, 1.702246, 1.704363,
- 1.706477, 1.708588, 1.710695, 1.712799, 1.714899,
- 1.716997, 1.719091, 1.721182, 1.723269, 1.725353,
- 1.727434, 1.729511, 1.731586, 1.733656, 1.735724,
- 1.737788, 1.739849, 1.741906, 1.743960, 1.746011,
- 1.748058, 1.750102, 1.752143, 1.754180, 1.756214,
- 1.758245, 1.760272, 1.762296, 1.764316, 1.766333,
- 1.768347, 1.770357, 1.772364, 1.774367, 1.776367,
- 1.778364, 1.780357, 1.782347, 1.784334, 1.786317,
- 1.788296, 1.790272, 1.792245, 1.794214, 1.796180,
- 1.798143, 1.800102, 1.802058, 1.804010, 1.805959,
- 1.807904, 1.809846, 1.811785, 1.813720, 1.815652,
- 1.817580, 1.819505, 1.821426, 1.823344, 1.825259,
- 1.827170, 1.829078, 1.830982, 1.832883, 1.834780,
- 1.836674, 1.838565, 1.840452, 1.842335, 1.844216,
- 1.846092
+ 0.98198010, 0.98033482, 0.97873185, 0.97717770, 0.97567871,
+ 0.97424096, 0.97287024, 0.97157205, 0.97035156, 0.96921356,
+ 0.96816250, 0.96720244, 0.96633706, 0.96556966, 0.96490314,
+ 0.96434005, 0.96388256, 0.96353249, 0.96329132, 0.96316020,
+ 0.96313999, 0.96323124, 0.96343424, 0.96374902, 0.96417539,
+ 0.96471294, 0.96536106, 0.96611895, 0.96698569, 0.96796017,
+ 0.96904118, 0.97022738, 0.97151736, 0.97290957, 0.97440245,
+ 0.97599432, 0.97768349, 0.97946820, 0.98134667, 0.98331707,
+ 0.98537759, 0.98752638, 0.98976157, 0.99208132, 0.99448377,
+ 0.99696708, 0.99952940, 1.00216890, 1.00488379, 1.00767225,
+ 1.01053253, 1.01346286, 1.01646152, 1.01952680, 1.02265702,
+ 1.02585053, 1.02910569, 1.03242090, 1.03579459, 1.03922521,
+ 1.04271124, 1.04625119, 1.04984359, 1.05348700, 1.05718000,
+ 1.06092123, 1.06470931, 1.06854291, 1.07242074, 1.07634150,
+ 1.08030395, 1.08430686, 1.08834901, 1.09242924, 1.09654637,
+ 1.10069929, 1.10488686, 1.10910802, 1.11336169, 1.11764682,
+ 1.12196239, 1.12630740, 1.13068087, 1.13508183, 1.13950934,
+ 1.14396248, 1.14844034, 1.15294204, 1.15746670, 1.16201349,
+ 1.16658156, 1.17117010, 1.17577831, 1.18040541, 1.18505064,
+ 1.18971324, 1.19439248, 1.19908763, 1.20379800, 1.20852290,
+ 1.21326165, 1.21801358, 1.22277805, 1.22755442, 1.23234208,
+ 1.23714042, 1.24194884, 1.24676675, 1.25159359, 1.25642880,
+ 1.26127183, 1.26612215, 1.27097923, 1.27584256, 1.28071163,
+ 1.28558597, 1.29046507, 1.29534848, 1.30023574, 1.30512639,
+ 1.31001999, 1.31491611, 1.31981433, 1.32471423, 1.32961542,
+ 1.33451749, 1.33942006, 1.34432275, 1.34922519, 1.35412702,
+ 1.35902788, 1.36392743, 1.36882533, 1.37372125, 1.37861486,
+ 1.38350585, 1.38839391, 1.39327873, 1.39816003, 1.40303750,
+ 1.40791087, 1.41277987, 1.41764421, 1.42250364, 1.42735791,
+ 1.43220675, 1.43704992, 1.44188718, 1.44671830, 1.45154305,
+ 1.45636121, 1.46117254, 1.46597685, 1.47077392, 1.47556355,
+ 1.48034554, 1.48511970, 1.48988583, 1.49464376, 1.49939330,
+ 1.50413427, 1.50886651, 1.51358985, 1.51830412, 1.52300916,
+ 1.52770483, 1.53239097, 1.53706742, 1.54173406, 1.54639073,
+ 1.55103731, 1.55567365, 1.56029964, 1.56491514, 1.56952003,
+ 1.57411419, 1.57869751, 1.58326987, 1.58783116, 1.59238129,
+ 1.59692013, 1.60144760, 1.60596359, 1.61046801, 1.61496077,
+ 1.61944177, 1.62391094, 1.62836818, 1.63281341, 1.63724655,
+ 1.64166754, 1.64607628, 1.65047271, 1.65485677, 1.65922837,
+ 1.66358746, 1.66793398, 1.67226786, 1.67658903, 1.68089746,
+ 1.68519307, 1.68947583, 1.69374566, 1.69800254, 1.70224640,
+ 1.70647721, 1.71069492, 1.71489949, 1.71909087, 1.72326904,
+ 1.72743394, 1.73158555, 1.73572384, 1.73984877, 1.74396030,
+ 1.74805842, 1.75214309, 1.75621429, 1.76027199, 1.76431617,
+ 1.76834680, 1.77236387, 1.77636736, 1.78035724, 1.78433351,
+ 1.78829614, 1.79224512, 1.79618045, 1.80010209, 1.80401005,
+ 1.80790432, 1.81178488, 1.81565173, 1.81950486, 1.82334427,
+ 1.82716994, 1.83098189, 1.83478010, 1.83856457, 1.84233531,
+ 1.84609231
}
},
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000
}
},
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.923654, 1.909157, 1.894584, 1.879941, 1.865235,
- 1.850470, 1.835651, 1.820786, 1.805878, 1.790933,
- 1.775958, 1.760956, 1.745934, 1.730896, 1.715848,
- 1.700795, 1.685741, 1.670691, 1.655651, 1.640624,
- 1.625615, 1.610629, 1.595669, 1.580741, 1.565847,
- 1.550992, 1.536180, 1.521413, 1.506697, 1.492034,
- 1.477427, 1.462880, 1.448395, 1.433975, 1.419624,
- 1.405344, 1.391137, 1.377005, 1.362952, 1.348979,
- 1.335088, 1.321281, 1.307560, 1.293927, 1.280383,
- 1.266930, 1.253569, 1.240302, 1.227130, 1.214053,
- 1.201074, 1.188192, 1.175410, 1.162727, 1.150144,
- 1.137662, 1.125282, 1.113004, 1.100828, 1.088756,
- 1.076786, 1.064920, 1.053158, 1.041499, 1.029944,
- 1.018493, 1.007146, 0.995903, 0.984764, 0.973728,
- 0.962796, 0.951967, 0.941240, 0.930617, 0.920096,
- 0.909677, 0.899359, 0.889143, 0.879028, 0.869013,
- 0.859098, 0.849282, 0.839565, 0.829947, 0.820426,
- 0.811003, 0.801676, 0.792445, 0.783310, 0.774269,
- 0.765323, 0.756470, 0.747710, 0.739042, 0.730466,
- 0.721980, 0.713585, 0.705279, 0.697062, 0.688933,
- 0.680891, 0.672936, 0.665067, 0.657283, 0.649583,
- 0.641968, 0.634435, 0.626984, 0.619616, 0.612328,
- 0.605120, 0.597991, 0.590942, 0.583970, 0.577075,
- 0.570257, 0.563515, 0.556848, 0.550255, 0.543736,
- 0.537290, 0.530916, 0.524614, 0.518382, 0.512221,
- 0.506129, 0.500106, 0.494151, 0.488264, 0.482443,
- 0.476688, 0.470999, 0.465374, 0.459814, 0.454317,
- 0.448883, 0.443510, 0.438200, 0.432950, 0.427760,
- 0.422630, 0.417559, 0.412547, 0.407592, 0.402694,
- 0.397852, 0.393067, 0.388337, 0.383662, 0.379041,
- 0.374473, 0.369959, 0.365497, 0.361086, 0.356728,
- 0.352420, 0.348162, 0.343953, 0.339794, 0.335684,
- 0.331622, 0.327607, 0.323639, 0.319718, 0.315842,
- 0.312013, 0.308228, 0.304487, 0.300791, 0.297138,
- 0.293529, 0.289961, 0.286436, 0.282953, 0.279511,
- 0.276109, 0.272748, 0.269426, 0.266144, 0.262900,
- 0.259696, 0.256529, 0.253400, 0.250308, 0.247252,
- 0.244234, 0.241251, 0.238303, 0.235391, 0.232513,
- 0.229670, 0.226861, 0.224085, 0.221343, 0.218633,
- 0.215956, 0.213311, 0.210697, 0.208115, 0.205564,
- 0.203043, 0.200553, 0.198092, 0.195661, 0.193260,
- 0.190887, 0.188543, 0.186227, 0.183939, 0.181678,
- 0.179445, 0.177238, 0.175059, 0.172905, 0.170778,
- 0.168676, 0.166600, 0.164549, 0.162523, 0.160521,
- 0.158544, 0.156590, 0.154660, 0.152754, 0.150871,
- 0.149010, 0.147172, 0.145357, 0.143563, 0.141792,
- 0.140042, 0.138313, 0.136605, 0.134918, 0.133252,
- 0.131606, 0.129980, 0.128373, 0.126787, 0.125220,
- 0.123672, 0.122142, 0.120632, 0.119140, 0.117666,
- 0.116210, 0.114772, 0.113352, 0.111949, 0.110563,
- 0.109194, 0.107842, 0.106507, 0.105188, 0.103885,
- 0.102598, 0.101327, 0.100071, 0.098831, 0.097606,
- 0.096397, 0.095202, 0.094021, 0.092856, 0.091704,
- 0.090567, 0.089444, 0.088335, 0.087239, 0.086157,
- 0.085088, 0.084032, 0.082989, 0.081960, 0.080942,
- 0.079938, 0.078946, 0.077966, 0.076998, 0.076042,
- 0.075098, 0.074166, 0.073245, 0.072335, 0.071437,
- 0.070550, 0.069674, 0.068808, 0.067954, 0.067110,
- 0.066276, 0.065453, 0.064640, 0.063837, 0.063044,
- 0.062260, 0.061487, 0.060723, 0.059969, 0.059223,
- 0.058488, 0.057761, 0.057043, 0.056334, 0.055634,
- 0.054943, 0.054260, 0.053586, 0.052920, 0.052263,
- 0.051613, 0.050972, 0.050338, 0.049713, 0.049095,
- 0.048485, 0.047883, 0.047288, 0.046700, 0.046120,
- 0.045547, 0.044981, 0.044422, 0.043870, 0.043325,
- 0.042787, 0.042255, 0.041730, 0.041212, 0.040700,
- 0.040194, 0.039695, 0.039202, 0.038715, 0.038234,
- 0.037760, 0.037291, 0.036828, 0.036370, 0.035919,
- 0.035473, 0.035032, 0.034597, 0.034168, 0.033744,
- 0.033325, 0.032911, 0.032503, 0.032099, 0.031701,
- 0.031308, 0.030919, 0.030536, 0.030157, 0.029783,
- 0.029413, 0.029048, 0.028688, 0.028332, 0.027981,
- 0.027634, 0.027291, 0.026953, 0.026619, 0.026289,
- 0.025963, 0.025642, 0.025324, 0.025010, 0.024700,
- 0.024394, 0.024092, 0.023794, 0.023499, 0.023208,
- 0.022921, 0.022637, 0.022357, 0.022080, 0.021807,
- 0.021537, 0.021270, 0.021007, 0.020747, 0.020491,
- 0.020237, 0.019987, 0.019740, 0.019496, 0.019255,
- 0.019017, 0.018782, 0.018550, 0.018321, 0.018094,
- 0.017871, 0.017650, 0.017432, 0.017217, 0.017004,
- 0.016795, 0.016587, 0.016383, 0.016181, 0.015981,
- 0.015784, 0.015589, 0.015397, 0.015207, 0.015020,
- 0.014835, 0.014652, 0.014471, 0.014293, 0.014117,
- 0.013943, 0.013771, 0.013602, 0.013434, 0.013269,
- 0.013106, 0.012944, 0.012785, 0.012628, 0.012473,
- 0.012319, 0.012168, 0.012018, 0.011871, 0.011725,
- 0.011581, 0.011438, 0.011298, 0.011159, 0.011022,
- 0.010887, 0.010753, 0.010621, 0.010491, 0.010363,
- 0.010235, 0.010110, 0.009986, 0.009864, 0.009743,
- 0.009623, 0.009506, 0.009389, 0.009274, 0.009161,
- 0.009048, 0.008938, 0.008828, 0.008720, 0.008614,
- 0.008508, 0.008404, 0.008302, 0.008200, 0.008100,
- 0.008001, 0.007903, 0.007807, 0.007712, 0.007617,
- 0.007524, 0.007433, 0.007342, 0.007252, 0.007164,
- 0.007077, 0.006990, 0.006905, 0.006821, 0.006738,
- 0.006656, 0.006575, 0.006495, 0.006416, 0.006338,
- 0.006261
+ 1.92365392, 1.89458387, 1.86523481, 1.83565136, 1.80587776,
+ 1.77595769, 1.74593393, 1.71584817, 1.68574077, 1.65565062,
+ 1.62561492, 1.59566912, 1.56584681, 1.53617959, 1.50669711,
+ 1.47742699, 1.44839480, 1.41962414, 1.39113660, 1.36295183,
+ 1.33508762, 1.30755992, 1.28038293, 1.25356920, 1.22712967,
+ 1.20107381, 1.17540964, 1.15014388, 1.12528201, 1.10082833,
+ 1.07678611, 1.05315760, 1.02994416, 1.00714631, 0.98476381,
+ 0.96279573, 0.94124048, 0.92009596, 0.89935950, 0.87902799,
+ 0.85909793, 0.83956543, 0.82042628, 0.80167600, 0.78330985,
+ 0.76532288, 0.74770996, 0.73046580, 0.71358499, 0.69706199,
+ 0.68089118, 0.66506690, 0.64958339, 0.63443491, 0.61961565,
+ 0.60511982, 0.59094162, 0.57707529, 0.56351504, 0.55025517,
+ 0.53728997, 0.52461379, 0.51222105, 0.50010619, 0.48826372,
+ 0.47668823, 0.46537435, 0.45431680, 0.44351035, 0.43294986,
+ 0.42263025, 0.41254652, 0.40269376, 0.39306712, 0.38366183,
+ 0.37447321, 0.36549665, 0.35672762, 0.34816166, 0.33979441,
+ 0.33162156, 0.32363891, 0.31584231, 0.30822770, 0.30079109,
+ 0.29352858, 0.28643631, 0.27951054, 0.27274758, 0.26614379,
+ 0.25969564, 0.25339966, 0.24725242, 0.24125060, 0.23539093,
+ 0.22967019, 0.22408525, 0.21863304, 0.21331053, 0.20811479,
+ 0.20304292, 0.19809210, 0.19325955, 0.18854258, 0.18393851,
+ 0.17944477, 0.17505879, 0.17077811, 0.16660028, 0.16252292,
+ 0.15854371, 0.15466036, 0.15087063, 0.14717236, 0.14356341,
+ 0.14004168, 0.13660515, 0.13325180, 0.12997969, 0.12678690,
+ 0.12367158, 0.12063190, 0.11766606, 0.11477234, 0.11194901,
+ 0.10919441, 0.10650692, 0.10388494, 0.10132691, 0.09883130,
+ 0.09639665, 0.09402148, 0.09170437, 0.08944395, 0.08723885,
+ 0.08508775, 0.08298936, 0.08094240, 0.07894564, 0.07699788,
+ 0.07509794, 0.07324465, 0.07143691, 0.06967360, 0.06795366,
+ 0.06627603, 0.06463969, 0.06304365, 0.06148691, 0.05996854,
+ 0.05848760, 0.05704317, 0.05563438, 0.05426035, 0.05292023,
+ 0.05161321, 0.05033846, 0.04909521, 0.04788269, 0.04670014,
+ 0.04554683, 0.04442204, 0.04332508, 0.04225526, 0.04121192,
+ 0.04019441, 0.03920210, 0.03823436, 0.03729059, 0.03637020,
+ 0.03547262, 0.03459728, 0.03374364, 0.03291117, 0.03209933,
+ 0.03130762, 0.03053555, 0.02978263, 0.02904838, 0.02833235,
+ 0.02763408, 0.02695314, 0.02628909, 0.02564153, 0.02501003,
+ 0.02439420, 0.02379366, 0.02320802, 0.02263692, 0.02207999,
+ 0.02153688, 0.02100725, 0.02049077, 0.01998711, 0.01949594,
+ 0.01901697, 0.01854988, 0.01809438, 0.01765019, 0.01721701,
+ 0.01679458, 0.01638264, 0.01598091, 0.01558914, 0.01520710,
+ 0.01483452, 0.01447119, 0.01411686, 0.01377132, 0.01343434,
+ 0.01310571, 0.01278523, 0.01247268, 0.01216788, 0.01187063,
+ 0.01158074, 0.01129803, 0.01102231, 0.01075342, 0.01049118,
+ 0.01023543, 0.00998601, 0.00974275, 0.00950551, 0.00927413,
+ 0.00904847, 0.00882838, 0.00861373, 0.00840439, 0.00820021,
+ 0.00800107, 0.00780684, 0.00761740, 0.00743264, 0.00725243,
+ 0.00707667, 0.00690523, 0.00673802, 0.00657492, 0.00641584,
+ 0.00626068
}
}
};
static xspect illoc_Daylight_CIE_1964_10[3] = {
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 0.954594, 0.954039, 0.953491, 0.952950, 0.952416,
- 0.951891, 0.951374, 0.950867, 0.950370, 0.949884,
- 0.949409, 0.948945, 0.948494, 0.948056, 0.947632,
- 0.947221, 0.946825, 0.946444, 0.946078, 0.945729,
- 0.945395, 0.945079, 0.944780, 0.944498, 0.944235,
- 0.943990, 0.943765, 0.943558, 0.943372, 0.943205,
- 0.943059, 0.942934, 0.942830, 0.942748, 0.942687,
- 0.942649, 0.942633, 0.942639, 0.942669, 0.942722,
- 0.942799, 0.942900, 0.943024, 0.943174, 0.943347,
- 0.943546, 0.943770, 0.944019, 0.944293, 0.944594,
- 0.944920, 0.945273, 0.945651, 0.946054, 0.946484,
- 0.946940, 0.947423, 0.947932, 0.948468, 0.949031,
- 0.949620, 0.950237, 0.950880, 0.951550, 0.952247,
- 0.952971, 0.953722, 0.954499, 0.955304, 0.956135,
- 0.956992, 0.957876, 0.958787, 0.959724, 0.960688,
- 0.961677, 0.962693, 0.963735, 0.964802, 0.965895,
- 0.967013, 0.968157, 0.969326, 0.970520, 0.971739,
- 0.972982, 0.974249, 0.975541, 0.976856, 0.978195,
- 0.979557, 0.980943, 0.982351, 0.983782, 0.985235,
- 0.986710, 0.988207, 0.989725, 0.991264, 0.992823,
- 0.994403, 0.996003, 0.997623, 0.999262, 1.000920,
- 1.002596, 1.004290, 1.006002, 1.007731, 1.009477,
- 1.011239, 1.013018, 1.014811, 1.016620, 1.018443,
- 1.020280, 1.022130, 1.023993, 1.025869, 1.027757,
- 1.029655, 1.031565, 1.033485, 1.035414, 1.037353,
- 1.039299, 1.041254, 1.043215, 1.045183, 1.047157,
- 1.049136, 1.051120, 1.053107, 1.055098, 1.057090,
- 1.059085, 1.061080, 1.063076, 1.065071, 1.067064,
- 1.069055, 1.071044, 1.073028, 1.075009, 1.076983,
- 1.078952, 1.080913, 1.082866, 1.084811, 1.086746,
- 1.088670, 1.090583, 1.092484, 1.094371, 1.096244,
- 1.098102, 1.099944, 1.101768, 1.103575, 1.105363,
- 1.107131, 1.108878, 1.110603, 1.112305, 1.113984,
- 1.115638, 1.117266, 1.118867, 1.120440, 1.121985,
- 1.123500, 1.124984, 1.126436, 1.127856, 1.129241,
- 1.130592, 1.131908, 1.133186, 1.134427, 1.135629,
- 1.136792
+ 0.95459407, 0.95349111, 0.95241608, 0.95137406, 0.95036997,
+ 0.94940854, 0.94849436, 0.94763182, 0.94682514, 0.94607835,
+ 0.94539532, 0.94477973, 0.94423508, 0.94376472, 0.94337182,
+ 0.94305939, 0.94283028, 0.94268721, 0.94263273, 0.94266926,
+ 0.94279911, 0.94302445, 0.94334731, 0.94376966, 0.94429331,
+ 0.94492003, 0.94565055, 0.94648366, 0.94742252, 0.94846786,
+ 0.94962022, 0.95087992, 0.95224710, 0.95372172, 0.95530356,
+ 0.95699225, 0.95878723, 0.96068779, 0.96269306, 0.96480202,
+ 0.96701349, 0.96932617, 0.97173857, 0.97424908, 0.97685594,
+ 0.97955724, 0.98235094, 0.98523482, 0.98820655, 0.99126363,
+ 0.99440342, 0.99762310, 1.00091974, 1.00429021, 1.00773125,
+ 1.01123943, 1.01481114, 1.01844261, 1.02212992, 1.02586895,
+ 1.02965540, 1.03348482, 1.03735256, 1.04125378, 1.04518348,
+ 1.04913645, 1.05310731, 1.05709048, 1.06108022, 1.06507057,
+ 1.06905542, 1.07302845, 1.07698319, 1.08091298, 1.08481100,
+ 1.08867027, 1.09248366, 1.09624388, 1.09994352, 1.10357505,
+ 1.10713082, 1.11060309, 1.11398402, 1.11726572, 1.12044027,
+ 1.12349969, 1.12643600, 1.12924125, 1.13190751, 1.13442693,
+ 1.13679173
}
},
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000
}
},
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 1.879446, 1.865348, 1.851156, 1.836877, 1.822518,
- 1.808084, 1.793581, 1.779017, 1.764398, 1.749728,
- 1.735014, 1.720261, 1.705476, 1.690662, 1.675827,
- 1.660974, 1.646108, 1.631236, 1.616360, 1.601486,
- 1.586618, 1.571761, 1.556919, 1.542095, 1.527294,
- 1.512519, 1.497775, 1.483064, 1.468390, 1.453756,
- 1.439166, 1.424623, 1.410129, 1.395688, 1.381302,
- 1.366973, 1.352705, 1.338499, 1.324359, 1.310286,
- 1.296282, 1.282349, 1.268490, 1.254705, 1.240998,
- 1.227369, 1.213820, 1.200353, 1.186968, 1.173668,
- 1.160454, 1.147326, 1.134316, 1.121427, 1.108633,
- 1.095933, 1.083332, 1.070830, 1.058428, 1.046129,
- 1.033933, 1.021842, 1.009857, 0.997979, 0.986209,
- 0.974548, 0.962996, 0.951555, 0.940225, 0.929007,
- 0.917901, 0.906907, 0.896026, 0.885259, 0.874605,
- 0.864065, 0.853639, 0.843326, 0.833128, 0.823044,
- 0.813073, 0.803217, 0.793474, 0.783845, 0.774329,
- 0.764926, 0.755636, 0.746458, 0.737392, 0.728439,
- 0.719596, 0.710865, 0.702244, 0.693733, 0.685332,
- 0.677040, 0.668856, 0.660780, 0.652812, 0.644950,
- 0.637194, 0.629545, 0.622000, 0.614559, 0.607222,
- 0.599989, 0.592857, 0.585828, 0.578899, 0.572071,
- 0.565342, 0.558713, 0.552181, 0.545747, 0.539410,
- 0.533170, 0.527024, 0.520973, 0.515017, 0.509153,
- 0.503382, 0.497703, 0.492115, 0.486617, 0.481209,
- 0.475890, 0.470659, 0.465515, 0.460458, 0.455487,
- 0.450602, 0.445801, 0.441084, 0.436451, 0.431899,
- 0.427430, 0.423042, 0.418734, 0.414506, 0.410357,
- 0.406287, 0.402294, 0.398378, 0.394539, 0.390776,
- 0.387087, 0.383474, 0.379934, 0.376467, 0.373074,
- 0.369752, 0.366502, 0.363322, 0.360213, 0.357174,
- 0.354204, 0.351303, 0.348469, 0.345704, 0.343005,
- 0.340373, 0.337807, 0.335306, 0.332871, 0.330501,
- 0.328194, 0.325951, 0.323772, 0.321656, 0.319602,
- 0.317611, 0.315681, 0.313813, 0.312005, 0.310259,
- 0.308574, 0.306948, 0.305383, 0.303877, 0.302431,
- 0.301045
+ 1.87944579, 1.85115635, 1.82251764, 1.79358144, 1.76439755,
+ 1.73501373, 1.70547561, 1.67582672, 1.64610843, 1.61635996,
+ 1.58661842, 1.55691876, 1.52729388, 1.49777462, 1.46838982,
+ 1.43916636, 1.41012925, 1.38130165, 1.35270497, 1.32435893,
+ 1.29628160, 1.26848951, 1.24099772, 1.21381984, 1.18696819,
+ 1.16045377, 1.13431602, 1.10863254, 1.08333193, 1.05842802,
+ 1.03393283, 1.00985677, 0.98620872, 0.96299611, 0.94022508,
+ 0.91790055, 0.89602628, 0.87460505, 0.85363865, 0.83312802,
+ 0.81307330, 0.79347392, 0.77432863, 0.75563561, 0.73739249,
+ 0.71959642, 0.70224412, 0.68533193, 0.66885584, 0.65281154,
+ 0.63719444, 0.62199974, 0.60722242, 0.59285729, 0.57889903,
+ 0.56534217, 0.55218116, 0.53941036, 0.52702408, 0.51501656,
+ 0.50338204, 0.49211473, 0.48120883, 0.47065858, 0.46045822,
+ 0.45060201, 0.44108429, 0.43189942, 0.42304184, 0.41450605,
+ 0.40628664, 0.39837826, 0.39077568, 0.38347377, 0.37646749,
+ 0.36975195, 0.36332236, 0.35717408, 0.35130261, 0.34570361,
+ 0.34037291, 0.33530649, 0.33050055, 0.32595147, 0.32165585,
+ 0.31761051, 0.31381252, 0.31025919, 0.30694811, 0.30387717,
+ 0.30104455
}
}
};
static xspect illoc_OPlankian_CIE_1964_10[3] = {
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 0.982024, 0.981198, 0.980382, 0.979576, 0.978782,
- 0.978000, 0.977230, 0.976474, 0.975733, 0.975007,
- 0.974297, 0.973603, 0.972927, 0.972268, 0.971629,
- 0.971008, 0.970408, 0.969828, 0.969269, 0.968731,
- 0.968216, 0.967723, 0.967253, 0.966807, 0.966385,
- 0.965987, 0.965613, 0.965265, 0.964942, 0.964645,
- 0.964374, 0.964129, 0.963911, 0.963719, 0.963554,
- 0.963416, 0.963305, 0.963222, 0.963166, 0.963138,
- 0.963138, 0.963165, 0.963220, 0.963302, 0.963413,
- 0.963551, 0.963717, 0.963911, 0.964133, 0.964382,
- 0.964659, 0.964963, 0.965295, 0.965654, 0.966040,
- 0.966453, 0.966894, 0.967361, 0.967855, 0.968375,
- 0.968922, 0.969495, 0.970094, 0.970719, 0.971369,
- 0.972045, 0.972746, 0.973473, 0.974224, 0.975000,
- 0.975800, 0.976625, 0.977473, 0.978346, 0.979242,
- 0.980161, 0.981103, 0.982069, 0.983057, 0.984068,
- 0.985100, 0.986155, 0.987232, 0.988330, 0.989450,
- 0.990590, 0.991752, 0.992934, 0.994136, 0.995359,
- 0.996601, 0.997864, 0.999146, 1.000447, 1.001767,
- 1.003106, 1.004463, 1.005839, 1.007233, 1.008645,
- 1.010075, 1.011522, 1.012986, 1.014468, 1.015966,
- 1.017481, 1.019012, 1.020560, 1.022123, 1.023703,
- 1.025298, 1.026908, 1.028534, 1.030175, 1.031830,
- 1.033500, 1.035184, 1.036883, 1.038596, 1.040322,
- 1.042063, 1.043816, 1.045583, 1.047363, 1.049156,
- 1.050962, 1.052781, 1.054611, 1.056454, 1.058309,
- 1.060176, 1.062055, 1.063945, 1.065847, 1.067760,
- 1.069684, 1.071618, 1.073564, 1.075520, 1.077487,
- 1.079463, 1.081450, 1.083447, 1.085454, 1.087470,
- 1.089496, 1.091532, 1.093576, 1.095630, 1.097692,
- 1.099764, 1.101844, 1.103933, 1.106030, 1.108135,
- 1.110249, 1.112370, 1.114500, 1.116637, 1.118782,
- 1.120934, 1.123094, 1.125260, 1.127435, 1.129616,
- 1.131804, 1.133998, 1.136200, 1.138408, 1.140622,
- 1.142843, 1.145070, 1.147303, 1.149542, 1.151787,
- 1.154037, 1.156293, 1.158555, 1.160823, 1.163095,
- 1.165373, 1.167656, 1.169944, 1.172237, 1.174535,
- 1.176838, 1.179145, 1.181457, 1.183773, 1.186094,
- 1.188419, 1.190748, 1.193081, 1.195418, 1.197759,
- 1.200104, 1.202453, 1.204805, 1.207161, 1.209521,
- 1.211884, 1.214250, 1.216619, 1.218992, 1.221367,
- 1.223746, 1.226128, 1.228512, 1.230899, 1.233289,
- 1.235682, 1.238077, 1.240475, 1.242875, 1.245277,
- 1.247682, 1.250088, 1.252497, 1.254908, 1.257321,
- 1.259736, 1.262153, 1.264571, 1.266992, 1.269414,
- 1.271837, 1.274262, 1.276689, 1.279116, 1.281546,
- 1.283976, 1.286408, 1.288841, 1.291275, 1.293710,
- 1.296146, 1.298583, 1.301021, 1.303460, 1.305899,
- 1.308340, 1.310780, 1.313222, 1.315664, 1.318106,
- 1.320549, 1.322993, 1.325437, 1.327881, 1.330325,
- 1.332770, 1.335214, 1.337659, 1.340104, 1.342549,
- 1.344994, 1.347438, 1.349883, 1.352328, 1.354772,
- 1.357216, 1.359660, 1.362103, 1.364546, 1.366989,
- 1.369431, 1.371872, 1.374314, 1.376754, 1.379194,
- 1.381633, 1.384072, 1.386509, 1.388946, 1.391383,
- 1.393818, 1.396252, 1.398686, 1.401119, 1.403550,
- 1.405981, 1.408410, 1.410839, 1.413266, 1.415692,
- 1.418117, 1.420541, 1.422963, 1.425384, 1.427804,
- 1.430222, 1.432640, 1.435055, 1.437469, 1.439882,
- 1.442293, 1.444703, 1.447111, 1.449518, 1.451923,
- 1.454326, 1.456728, 1.459128, 1.461526, 1.463922,
- 1.466317, 1.468710, 1.471101, 1.473490, 1.475877,
- 1.478263, 1.480646, 1.483028, 1.485407, 1.487785,
- 1.490160, 1.492534, 1.494905, 1.497274, 1.499642,
- 1.502007, 1.504370, 1.506730, 1.509089, 1.511445,
- 1.513799, 1.516151, 1.518501, 1.520848, 1.523193,
- 1.525536, 1.527876, 1.530214, 1.532549, 1.534883,
- 1.537213, 1.539541, 1.541867, 1.544191, 1.546511,
- 1.548830, 1.551145, 1.553459, 1.555769, 1.558077,
- 1.560383, 1.562686, 1.564986, 1.567284, 1.569579,
- 1.571871, 1.574160, 1.576447, 1.578732, 1.581013,
- 1.583292, 1.585568, 1.587841, 1.590111, 1.592379,
- 1.594644, 1.596906, 1.599165, 1.601422, 1.603675,
- 1.605926, 1.608173, 1.610418, 1.612660, 1.614899,
- 1.617135, 1.619369, 1.621599, 1.623826, 1.626051,
- 1.628272, 1.630490, 1.632706, 1.634918, 1.637127,
- 1.639334, 1.641537, 1.643737, 1.645935, 1.648129,
- 1.650320, 1.652508, 1.654693, 1.656875, 1.659053,
- 1.661229, 1.663401, 1.665571, 1.667737, 1.669900,
- 1.672060, 1.674217, 1.676370, 1.678521, 1.680668,
- 1.682812, 1.684953, 1.687091, 1.689225, 1.691357,
- 1.693485, 1.695609, 1.697731, 1.699849, 1.701965,
- 1.704076, 1.706185, 1.708290, 1.710393, 1.712491,
- 1.714587, 1.716679, 1.718768, 1.720854, 1.722936,
- 1.725016, 1.727091, 1.729164, 1.731233, 1.733299,
- 1.735362, 1.737421, 1.739477, 1.741530, 1.743579,
- 1.745625, 1.747667, 1.749707, 1.751743, 1.753775,
- 1.755804, 1.757830, 1.759853, 1.761872, 1.763888,
- 1.765900, 1.767909, 1.769915, 1.771917, 1.773916,
- 1.775911, 1.777904, 1.779892, 1.781878, 1.783860,
- 1.785838, 1.787814, 1.789785, 1.791754, 1.793719,
- 1.795680, 1.797639, 1.799593, 1.801545, 1.803493,
- 1.805437, 1.807379, 1.809316, 1.811251, 1.813182,
- 1.815109, 1.817034, 1.818954, 1.820872, 1.822786,
- 1.824696, 1.826603, 1.828507, 1.830407, 1.832304,
- 1.834197, 1.836087, 1.837974, 1.839857, 1.841737,
- 1.843613
+ 0.98202407, 0.98038206, 0.97878193, 0.97723018, 0.97573308,
+ 0.97429668, 0.97292673, 0.97162871, 0.97040775, 0.96926863,
+ 0.96821578, 0.96725324, 0.96638469, 0.96561342, 0.96494234,
+ 0.96437399, 0.96391056, 0.96355386, 0.96330539, 0.96316633,
+ 0.96313753, 0.96321957, 0.96341276, 0.96371714, 0.96413255,
+ 0.96465860, 0.96529470, 0.96604008, 0.96689382, 0.96785485,
+ 0.96892198, 0.97009390, 0.97136919, 0.97274637, 0.97422385,
+ 0.97580000, 0.97747314, 0.97924153, 0.98110340, 0.98305696,
+ 0.98510039, 0.98723187, 0.98944955, 0.99175159, 0.99413615,
+ 0.99660141, 0.99914552, 1.00176668, 1.00446309, 1.00723297,
+ 1.01007456, 1.01298610, 1.01596589, 1.01901222, 1.02212343,
+ 1.02529786, 1.02853391, 1.03182996, 1.03518446, 1.03859586,
+ 1.04206265, 1.04558335, 1.04915649, 1.05278065, 1.05645441,
+ 1.06017639, 1.06394526, 1.06775967, 1.07161833, 1.07551997,
+ 1.07946333, 1.08344718, 1.08747034, 1.09153161, 1.09562985,
+ 1.09976393, 1.10393274, 1.10813519, 1.11237022, 1.11663679,
+ 1.12093388, 1.12526049, 1.12961564, 1.13399836, 1.13840773,
+ 1.14284281, 1.14730271, 1.15178654, 1.15629344, 1.16082256,
+ 1.16537307, 1.16994415, 1.17453501, 1.17914487, 1.18377296,
+ 1.18841853, 1.19308086, 1.19775923, 1.20245292, 1.20716125,
+ 1.21188356, 1.21661917, 1.22136744, 1.22612774, 1.23089944,
+ 1.23568195, 1.24047466, 1.24527700, 1.25008839, 1.25490828,
+ 1.25973611, 1.26457136, 1.26941351, 1.27426203, 1.27911643,
+ 1.28397622, 1.28884092, 1.29371005, 1.29858315, 1.30345979,
+ 1.30833950, 1.31322188, 1.31810648, 1.32299290, 1.32788074,
+ 1.33276959, 1.33765908, 1.34254882, 1.34743845, 1.35232759,
+ 1.35721591, 1.36210305, 1.36698866, 1.37187243, 1.37675403,
+ 1.38163314, 1.38650945, 1.39138265, 1.39625246, 1.40111858,
+ 1.40598073, 1.41083863, 1.41569202, 1.42054062, 1.42538418,
+ 1.43022245, 1.43505518, 1.43988214, 1.44470308, 1.44951777,
+ 1.45432600, 1.45912753, 1.46392217, 1.46870969, 1.47348990,
+ 1.47826260, 1.48302758, 1.48778467, 1.49253368, 1.49727442,
+ 1.50200671, 1.50673040, 1.51144530, 1.51615126, 1.52084812,
+ 1.52553571, 1.53021390, 1.53488252, 1.53954144, 1.54419052,
+ 1.54882961, 1.55345859, 1.55807733, 1.56268569, 1.56728356,
+ 1.57187082, 1.57644735, 1.58101303, 1.58556776, 1.59011142,
+ 1.59464392, 1.59916515, 1.60367502, 1.60817342, 1.61266027,
+ 1.61713547, 1.62159894, 1.62605059, 1.63049034, 1.63491811,
+ 1.63933381, 1.64373739, 1.64812875, 1.65250784, 1.65687458,
+ 1.66122891, 1.66557076, 1.66990007, 1.67421678, 1.67852084,
+ 1.68281219, 1.68709077, 1.69135653, 1.69560942, 1.69984940,
+ 1.70407642, 1.70829043, 1.71249139, 1.71667926, 1.72085401,
+ 1.72501558, 1.72916395, 1.73329909, 1.73742096, 1.74152952,
+ 1.74562475, 1.74970663, 1.75377511, 1.75783019, 1.76187183,
+ 1.76590000, 1.76991470, 1.77391590, 1.77790358, 1.78187773,
+ 1.78583832, 1.78978534, 1.79371878, 1.79763862, 1.80154486,
+ 1.80543748, 1.80931648, 1.81318184, 1.81703356, 1.82087163,
+ 1.82469604, 1.82850680, 1.83230390, 1.83608733, 1.83985710,
+ 1.84361321
}
},
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000
}
},
{
- 481, 40.000000, 1000.000000,
+ 241, 40.000000, 1000.000000,
1.0,
{
- 1.924417, 1.909963, 1.895433, 1.880833, 1.866169,
- 1.851446, 1.836670, 1.821847, 1.806982, 1.792079,
- 1.777145, 1.762185, 1.747204, 1.732207, 1.717200,
- 1.702186, 1.687172, 1.672162, 1.657160, 1.642171,
- 1.627200, 1.612250, 1.597327, 1.582434, 1.567576,
- 1.552755, 1.537977, 1.523244, 1.508560, 1.493928,
- 1.479353, 1.464836, 1.450380, 1.435990, 1.421667,
- 1.407414, 1.393233, 1.379128, 1.365099, 1.351151,
- 1.337283, 1.323499, 1.309801, 1.296189, 1.282666,
- 1.269233, 1.255891, 1.242643, 1.229488, 1.216429,
- 1.203466, 1.190600, 1.177833, 1.165164, 1.152595,
- 1.140127, 1.127759, 1.115493, 1.103328, 1.091266,
- 1.079307, 1.067450, 1.055696, 1.044046, 1.032499,
- 1.021055, 1.009714, 0.998477, 0.987344, 0.976313,
- 0.965385, 0.954560, 0.943837, 0.933217, 0.922698,
- 0.912282, 0.901966, 0.891751, 0.881636, 0.871622,
- 0.861707, 0.851891, 0.842173, 0.832554, 0.823032,
- 0.813606, 0.804277, 0.795044, 0.785906, 0.776862,
- 0.767912, 0.759056, 0.750292, 0.741619, 0.733038,
- 0.724548, 0.716148, 0.707836, 0.699613, 0.691478,
- 0.683430, 0.675469, 0.667593, 0.659802, 0.652096,
- 0.644473, 0.636932, 0.629474, 0.622098, 0.614802,
- 0.607586, 0.600449, 0.593390, 0.586410, 0.579507,
- 0.572679, 0.565928, 0.559252, 0.552649, 0.546121,
- 0.539665, 0.533281, 0.526969, 0.520728, 0.514556,
- 0.508454, 0.502421, 0.496455, 0.490557, 0.484726,
- 0.478960, 0.473260, 0.467625, 0.462053, 0.456545,
- 0.451100, 0.445716, 0.440394, 0.435133, 0.429932,
- 0.424791, 0.419708, 0.414684, 0.409718, 0.404808,
- 0.399955, 0.395158, 0.390417, 0.385730, 0.381097,
- 0.376517, 0.371991, 0.367517, 0.363095, 0.358724,
- 0.354404, 0.350135, 0.345915, 0.341744, 0.337621,
- 0.333547, 0.329520, 0.325540, 0.321607, 0.317720,
- 0.313878, 0.310081, 0.306329, 0.302621, 0.298956,
- 0.295335, 0.291756, 0.288219, 0.284723, 0.281269,
- 0.277856, 0.274483, 0.271149, 0.267855, 0.264600,
- 0.261384, 0.258205, 0.255064, 0.251961, 0.248894,
- 0.245864, 0.242869, 0.239910, 0.236986, 0.234097,
- 0.231243, 0.228422, 0.225635, 0.222881, 0.220161,
- 0.217472, 0.214816, 0.212191, 0.209598, 0.207035,
- 0.204504, 0.202002, 0.199531, 0.197089, 0.194677,
- 0.192293, 0.189938, 0.187612, 0.185313, 0.183042,
- 0.180798, 0.178581, 0.176391, 0.174227, 0.172090,
- 0.169978, 0.167891, 0.165830, 0.163794, 0.161782,
- 0.159794, 0.157831, 0.155891, 0.153975, 0.152082,
- 0.150211, 0.148364, 0.146539, 0.144736, 0.142954,
- 0.141195, 0.139457, 0.137739, 0.136043, 0.134367,
- 0.132712, 0.131077, 0.129462, 0.127866, 0.126290,
- 0.124733, 0.123194, 0.121675, 0.120174, 0.118692,
- 0.117227, 0.115781, 0.114352, 0.112940, 0.111546,
- 0.110169, 0.108808, 0.107465, 0.106137, 0.104826,
- 0.103531, 0.102252, 0.100988, 0.099740, 0.098508,
- 0.097290, 0.096087, 0.094899, 0.093726, 0.092567,
- 0.091422, 0.090291, 0.089174, 0.088071, 0.086981,
- 0.085905, 0.084842, 0.083792, 0.082755, 0.081731,
- 0.080719, 0.079720, 0.078733, 0.077759, 0.076796,
- 0.075845, 0.074906, 0.073978, 0.073062, 0.072157,
- 0.071264, 0.070381, 0.069509, 0.068648, 0.067798,
- 0.066958, 0.066128, 0.065309, 0.064500, 0.063701,
- 0.062911, 0.062132, 0.061362, 0.060602, 0.059851,
- 0.059109, 0.058376, 0.057653, 0.056938, 0.056233,
- 0.055536, 0.054848, 0.054168, 0.053497, 0.052834,
- 0.052179, 0.051532, 0.050893, 0.050263, 0.049640,
- 0.049025, 0.048417, 0.047817, 0.047224, 0.046639,
- 0.046061, 0.045490, 0.044927, 0.044370, 0.043820,
- 0.043277, 0.042741, 0.042211, 0.041688, 0.041172,
- 0.040662, 0.040158, 0.039660, 0.039169, 0.038684,
- 0.038205, 0.037731, 0.037264, 0.036802, 0.036347,
- 0.035897, 0.035452, 0.035013, 0.034579, 0.034151,
- 0.033728, 0.033311, 0.032899, 0.032491, 0.032089,
- 0.031692, 0.031300, 0.030912, 0.030530, 0.030152,
- 0.029779, 0.029411, 0.029047, 0.028688, 0.028333,
- 0.027982, 0.027636, 0.027295, 0.026957, 0.026624,
- 0.026295, 0.025970, 0.025649, 0.025332, 0.025019,
- 0.024709, 0.024404, 0.024103, 0.023805, 0.023511,
- 0.023221, 0.022934, 0.022651, 0.022371, 0.022095,
- 0.021822, 0.021553, 0.021287, 0.021024, 0.020765,
- 0.020509, 0.020256, 0.020006, 0.019759, 0.019515,
- 0.019275, 0.019037, 0.018803, 0.018571, 0.018342,
- 0.018116, 0.017893, 0.017672, 0.017455, 0.017240,
- 0.017028, 0.016818, 0.016611, 0.016406, 0.016205,
- 0.016005, 0.015808, 0.015614, 0.015422, 0.015232,
- 0.015045, 0.014860, 0.014677, 0.014497, 0.014319,
- 0.014143, 0.013969, 0.013798, 0.013628, 0.013461,
- 0.013296, 0.013132, 0.012971, 0.012812, 0.012655,
- 0.012500, 0.012346, 0.012195, 0.012046, 0.011898,
- 0.011752, 0.011608, 0.011466, 0.011325, 0.011187,
- 0.011050, 0.010915, 0.010781, 0.010649, 0.010519,
- 0.010390, 0.010263, 0.010137, 0.010013, 0.009891,
- 0.009770, 0.009651, 0.009533, 0.009416, 0.009301,
- 0.009188, 0.009076, 0.008965, 0.008856, 0.008747,
- 0.008641, 0.008535, 0.008431, 0.008328, 0.008227,
- 0.008127, 0.008028, 0.007930, 0.007833, 0.007738,
- 0.007644, 0.007551, 0.007459, 0.007368, 0.007278,
- 0.007190, 0.007102, 0.007016, 0.006931, 0.006847,
- 0.006763, 0.006681, 0.006600, 0.006520, 0.006441,
- 0.006363
+ 1.92441750, 1.89543256, 1.86616881, 1.83667048, 1.80698152,
+ 1.77714526, 1.74720420, 1.71719974, 1.68717198, 1.65715957,
+ 1.62719951, 1.59732707, 1.56757565, 1.53797675, 1.50855987,
+ 1.47935255, 1.45038029, 1.42166663, 1.39323313, 1.36509943,
+ 1.33728330, 1.30980071, 1.28266590, 1.25589143, 1.22948831,
+ 1.20346605, 1.17783273, 1.15259513, 1.12775881, 1.10332816,
+ 1.07930650, 1.05569618, 1.03249864, 1.00971448, 0.98734353,
+ 0.96538496, 0.94383727, 0.92269841, 0.90196582, 0.88163647,
+ 0.86170691, 0.84217335, 0.82303165, 0.80427739, 0.78590590,
+ 0.76791232, 0.75029156, 0.73303841, 0.71614750, 0.69961336,
+ 0.68343044, 0.66759311, 0.65209569, 0.63693245, 0.62209767,
+ 0.60758558, 0.59339045, 0.57950652, 0.56592809, 0.55264946,
+ 0.53966498, 0.52696904, 0.51455607, 0.50242056, 0.49055706,
+ 0.47896018, 0.46762458, 0.45654500, 0.44571625, 0.43513321,
+ 0.42479083, 0.41468413, 0.40480822, 0.39515827, 0.38572955,
+ 0.37651737, 0.36751716, 0.35872439, 0.35013464, 0.34174355,
+ 0.33354684, 0.32554031, 0.31771984, 0.31008137, 0.30262093,
+ 0.29533462, 0.28821862, 0.28126917, 0.27448260, 0.26785530,
+ 0.26138373, 0.25506442, 0.24889398, 0.24286908, 0.23698645,
+ 0.23124289, 0.22563528, 0.22016053, 0.21481566, 0.20959771,
+ 0.20450380, 0.19953111, 0.19467687, 0.18993839, 0.18531300,
+ 0.18079812, 0.17639121, 0.17208978, 0.16789141, 0.16379371,
+ 0.15979436, 0.15589108, 0.15208164, 0.14836387, 0.14473562,
+ 0.14119481, 0.13773941, 0.13436742, 0.13107688, 0.12786589,
+ 0.12473258, 0.12167513, 0.11869175, 0.11578069, 0.11294026,
+ 0.11016877, 0.10746461, 0.10482618, 0.10225192, 0.09974031,
+ 0.09728986, 0.09489911, 0.09256665, 0.09029108, 0.08807106,
+ 0.08590524, 0.08379234, 0.08173108, 0.07972024, 0.07775860,
+ 0.07584498, 0.07397823, 0.07215722, 0.07038085, 0.06864804,
+ 0.06695775, 0.06530894, 0.06370062, 0.06213181, 0.06060154,
+ 0.05910890, 0.05765296, 0.05623284, 0.05484766, 0.05349658,
+ 0.05217877, 0.05089341, 0.04963973, 0.04841695, 0.04722431,
+ 0.04606108, 0.04492654, 0.04381999, 0.04274075, 0.04168814,
+ 0.04066153, 0.03966026, 0.03868373, 0.03773132, 0.03680244,
+ 0.03589652, 0.03501299, 0.03415130, 0.03331091, 0.03249130,
+ 0.03169197, 0.03091240, 0.03015212, 0.02941065, 0.02868752,
+ 0.02798228, 0.02729450, 0.02662374, 0.02596958, 0.02533161,
+ 0.02470943, 0.02410265, 0.02351089, 0.02293378, 0.02237095,
+ 0.02182206, 0.02128675, 0.02076470, 0.02025557, 0.01975904,
+ 0.01927480, 0.01880255, 0.01834199, 0.01789282, 0.01745477,
+ 0.01702756, 0.01661093, 0.01620460, 0.01580832, 0.01542185,
+ 0.01504493, 0.01467734, 0.01431884, 0.01396921, 0.01362822,
+ 0.01329565, 0.01297131, 0.01265498, 0.01234647, 0.01204558,
+ 0.01175213, 0.01146592, 0.01118678, 0.01091453, 0.01064900,
+ 0.01039002, 0.01013743, 0.00989108, 0.00965080, 0.00941644,
+ 0.00918786, 0.00896491, 0.00874746, 0.00853537, 0.00832849,
+ 0.00812672, 0.00792990, 0.00773794, 0.00755069, 0.00736805,
+ 0.00718990, 0.00701613, 0.00684662, 0.00668129, 0.00652001,
+ 0.00636269
}
}
};
static xspect illoc_ODaylight_CIE_1964_10[3] = {
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 0.954689, 0.954137, 0.953592, 0.953054, 0.952523,
- 0.952001, 0.951488, 0.950984, 0.950490, 0.950007,
- 0.949535, 0.949074, 0.948627, 0.948192, 0.947770,
- 0.947363, 0.946970, 0.946591, 0.946229, 0.945882,
- 0.945551, 0.945238, 0.944942, 0.944663, 0.944402,
- 0.944161, 0.943938, 0.943734, 0.943550, 0.943386,
- 0.943243, 0.943120, 0.943019, 0.942939, 0.942880,
- 0.942844, 0.942831, 0.942840, 0.942872, 0.942927,
- 0.943006, 0.943109, 0.943235, 0.943387, 0.943562,
- 0.943763, 0.943988, 0.944239, 0.944516, 0.944818,
- 0.945146, 0.945500, 0.945880, 0.946285, 0.946716,
- 0.947174, 0.947658, 0.948168, 0.948706, 0.949270,
- 0.949861, 0.950478, 0.951123, 0.951794, 0.952492,
- 0.953217, 0.953969, 0.954747, 0.955552, 0.956384,
- 0.957242, 0.958127, 0.959039, 0.959976, 0.960940,
- 0.961930, 0.962946, 0.963988, 0.965056, 0.966149,
- 0.967268, 0.968412, 0.969581, 0.970775, 0.971994,
- 0.973237, 0.974504, 0.975796, 0.977111, 0.978450,
- 0.979812, 0.981197, 0.982605, 0.984035, 0.985488,
- 0.986963, 0.988459, 0.989976, 0.991515, 0.993074,
- 0.994653, 0.996252, 0.997871, 0.999509, 1.001166,
- 1.002842, 1.004535, 1.006246, 1.007974, 1.009719,
- 1.011480, 1.013257, 1.015050, 1.016857, 1.018679,
- 1.020514, 1.022363, 1.024225, 1.026100, 1.027986,
- 1.029883, 1.031791, 1.033710, 1.035637, 1.037574,
- 1.039519, 1.041472, 1.043432, 1.045399, 1.047371,
- 1.049348, 1.051330, 1.053315, 1.055304, 1.057295,
- 1.059288, 1.061281, 1.063275, 1.065268, 1.067259,
- 1.069249, 1.071235, 1.073218, 1.075196, 1.077168,
- 1.079135, 1.081094, 1.083046, 1.084988, 1.086921,
- 1.088844, 1.090754, 1.092653, 1.094538, 1.096409,
- 1.098265, 1.100105, 1.101927, 1.103732, 1.105518,
- 1.107284, 1.109029, 1.110752, 1.112453, 1.114129,
- 1.115781, 1.117407, 1.119007, 1.120578, 1.122121,
- 1.123634, 1.125116, 1.126567, 1.127985, 1.129369,
- 1.130718, 1.132032, 1.133309, 1.134548, 1.135749,
- 1.136910
+ 0.95468887, 0.95359221, 0.95252348, 0.95148774, 0.95048990,
+ 0.94953468, 0.94862665, 0.94777020, 0.94696951, 0.94622863,
+ 0.94555141, 0.94494151, 0.94440243, 0.94393752, 0.94354992,
+ 0.94324265, 0.94301856, 0.94288035, 0.94283058, 0.94287165,
+ 0.94300587, 0.94323541, 0.94356230, 0.94398848, 0.94451581,
+ 0.94514600, 0.94587982, 0.94671601, 0.94765777, 0.94870582,
+ 0.94986069, 0.95112270, 0.95249199, 0.95396853, 0.95555209,
+ 0.95724230, 0.95903861, 0.96094029, 0.96294649, 0.96505618,
+ 0.96726820, 0.96958122, 0.97199377, 0.97450424, 0.97711088,
+ 0.97981177, 0.98260486, 0.98548797, 0.98845874, 0.99151468,
+ 0.99465315, 0.99787136, 1.00116634, 1.00453500, 1.00797406,
+ 1.01148010, 1.01504952, 1.01867856, 1.02236329, 1.02609959,
+ 1.02988319, 1.03370963, 1.03757425, 1.04147225, 1.04539861,
+ 1.04934814, 1.05331546, 1.05729500, 1.06128103, 1.06526759,
+ 1.06924858, 1.07321771, 1.07716849, 1.08109429, 1.08498828,
+ 1.08884351, 1.09265285, 1.09640903, 1.10010464, 1.10373217,
+ 1.10728398, 1.11075233, 1.11412941, 1.11740735, 1.12057822,
+ 1.12363406, 1.12656691, 1.12936883, 1.13203190, 1.13454829,
+ 1.13691023
}
},
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
- 1.000000
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
+ 1.00000000
}
},
{
- 181, 40.000000, 400.000000,
+ 91, 40.000000, 400.000000,
1.0,
{
- 1.880550, 1.866451, 1.852259, 1.837979, 1.823618,
- 1.809182, 1.794679, 1.780113, 1.765491, 1.750820,
- 1.736104, 1.721349, 1.706561, 1.691745, 1.676907,
- 1.662051, 1.647182, 1.632306, 1.617427, 1.602550,
- 1.587679, 1.572818, 1.557971, 1.543143, 1.528338,
- 1.513559, 1.498810, 1.484094, 1.469415, 1.454777,
- 1.440182, 1.425633, 1.411134, 1.396687, 1.382295,
- 1.367961, 1.353687, 1.339475, 1.325329, 1.311249,
- 1.297239, 1.283299, 1.269433, 1.255642, 1.241928,
- 1.228292, 1.214736, 1.201262, 1.187870, 1.174563,
- 1.161341, 1.148206, 1.135188, 1.122292, 1.109489,
- 1.096782, 1.084173, 1.071663, 1.059253, 1.046946,
- 1.034742, 1.022643, 1.010649, 0.998763, 0.986985,
- 0.975315, 0.963755, 0.952306, 0.940967, 0.929740,
- 0.918626, 0.907623, 0.896734, 0.885958, 0.875296,
- 0.864747, 0.854312, 0.843991, 0.833784, 0.823691,
- 0.813712, 0.803847, 0.794095, 0.784457, 0.774933,
- 0.765521, 0.756222, 0.747036, 0.737962, 0.729000,
- 0.720149, 0.711409, 0.702779, 0.694260, 0.685850,
- 0.677549, 0.669357, 0.661272, 0.653296, 0.645425,
- 0.637662, 0.630004, 0.622450, 0.615002, 0.607657,
- 0.600415, 0.593275, 0.586237, 0.579301, 0.572464,
- 0.565728, 0.559090, 0.552551, 0.546109, 0.539764,
- 0.533516, 0.527363, 0.521304, 0.515340, 0.509469,
- 0.503690, 0.498004, 0.492408, 0.486903, 0.481488,
- 0.476161, 0.470923, 0.465772, 0.460709, 0.455731,
- 0.450839, 0.446031, 0.441307, 0.436667, 0.432109,
- 0.427633, 0.423238, 0.418924, 0.414689, 0.410534,
- 0.406457, 0.402459, 0.398537, 0.394691, 0.390922,
- 0.387228, 0.383608, 0.380063, 0.376591, 0.373191,
- 0.369864, 0.366608, 0.363424, 0.360309, 0.357265,
- 0.354290, 0.351383, 0.348545, 0.345774, 0.343071,
- 0.340434, 0.337863, 0.335359, 0.332919, 0.330544,
- 0.328233, 0.325986, 0.323803, 0.321683, 0.319625,
- 0.317629, 0.315696, 0.313824, 0.312014, 0.310264,
- 0.308575, 0.306946, 0.305378, 0.303869, 0.302420,
- 0.301031
+ 1.88054971, 1.85225862, 1.82361769, 1.79467867, 1.76549137,
+ 1.73610350, 1.70656073, 1.67690655, 1.64718235, 1.61742735,
+ 1.58767865, 1.55797122, 1.52833797, 1.49880974, 1.46941539,
+ 1.44018182, 1.41113405, 1.38229526, 1.35368687, 1.32532862,
+ 1.29723861, 1.26943338, 1.24192801, 1.21473614, 1.18787010,
+ 1.16134092, 1.13518806, 1.10948921, 1.08417293, 1.05925307,
+ 1.03474170, 1.01064924, 0.98698458, 0.96375520, 0.94096725,
+ 0.91862567, 0.89673425, 0.87529579, 0.85431209, 0.83378412,
+ 0.81371204, 0.79409528, 0.77493263, 0.75622227, 0.73796185,
+ 0.72014854, 0.70277908, 0.68584981, 0.66935673, 0.65329554,
+ 0.63766168, 0.62245035, 0.60765654, 0.59327508, 0.57930063,
+ 0.56572776, 0.55255092, 0.53976448, 0.52736274, 0.51533997,
+ 0.50369040, 0.49240826, 0.48148775, 0.47092312, 0.46070861,
+ 0.45083850, 0.44130712, 0.43210885, 0.42323813, 0.41468947,
+ 0.40645745, 0.39853674, 0.39092213, 0.38360847, 0.37659074,
+ 0.36986406, 0.36342364, 0.35726484, 0.35138319, 0.34577433,
+ 0.34043411, 0.33535852, 0.33054377, 0.32598623, 0.32168253,
+ 0.31762949, 0.31382417, 0.31026392, 0.30694632, 0.30386928,
+ 0.30103097
}
}
};
@@ -7772,7 +7011,8 @@ static double cct2_func(void *fdata, double tp[]) {
/* Get XYZ for given temp in Mired. */
/* Will clip to limits of locus */
- getval_raw_xspec3_lin(x->iloc, xyz, tp[0]);
+// getval_raw_xspec3_lin(x->iloc, xyz, tp[0]);
+ getval_raw_xspec3_poly3(x->iloc, xyz, tp[0]);
xyz[0] /= xyz[1];
xyz[2] /= xyz[1];
@@ -7853,7 +7093,8 @@ int viscct /* nz to use visual CIEDE2000, 0 to use CCT CIE 1960 UCS. */
if(txyz != NULL) {
/* Return the closest value on the locus */
- getval_raw_xspec3_lin(x.iloc, txyz, cp[0]);
+// getval_raw_xspec3_lin(x.iloc, txyz, cp[0]);
+ getval_raw_xspec3_poly3(x.iloc, txyz, cp[0]);
txyz[0] /= txyz[1];
txyz[2] /= txyz[1];
txyz[1] /= txyz[1];
@@ -7968,7 +7209,8 @@ double Yin /* Input Y value */
/* Get XYZ for given temp in Mired. */
/* Will clip to limits of locus */
- getval_raw_xspec3_lin(iloc, xyz, tin);
+// getval_raw_xspec3_lin(iloc, xyz, tin);
+ getval_raw_xspec3_poly3(iloc, xyz, tin);
/* Scale by Yin */
xyz[0] *= Yin/xyz[1];
@@ -8370,14 +7612,11 @@ static xslpoly splo_CIE_1931_2_xy = { 0, icxOT_CIE_1931_2, 0, 0 };
static xslpoly splo_CIE_1931_2_uv = { 0, icxOT_CIE_1931_2, 1, 0 };
static xslpoly splo_CIE_1964_10_xy = { 0, icxOT_CIE_1964_10, 0, 0 };
static xslpoly splo_CIE_1964_10_uv = { 0, icxOT_CIE_1964_10, 1, 0 };
-static xslpoly splo_Stiles_Burch_2_xy = { 0, icxOT_Stiles_Burch_2, 0, 0 };
-static xslpoly splo_Stiles_Burch_2_uv = { 0, icxOT_Stiles_Burch_2, 1, 0 };
-static xslpoly splo_Judd_Voss_2_xy = { 0, icxOT_Judd_Voss_2, 0, 0 };
-static xslpoly splo_Judd_Voss_2_uv = { 0, icxOT_Judd_Voss_2, 1, 0 };
-static xslpoly splo_CIE_1964_10c_xy = { 0, icxOT_CIE_1964_10c, 0, 0 };
-static xslpoly splo_CIE_1964_10c_uv = { 0, icxOT_CIE_1964_10c, 1, 0 };
-static xslpoly splo_Shaw_Fairchild_2_xy = { 0, icxOT_Shaw_Fairchild_2, 0, 0 };
-static xslpoly splo_Shaw_Fairchild_2_uv = { 0, icxOT_Shaw_Fairchild_2, 1, 0 };
+
+static xslpoly splo_CIE_2012_2_xy = { 0, icxOT_CIE_2012_2, 0, 0 };
+static xslpoly splo_CIE_2012_2_uv = { 0, icxOT_CIE_2012_2, 1, 0 };
+static xslpoly splo_CIE_2012_10_xy = { 0, icxOT_CIE_2012_10, 0, 0 };
+static xslpoly splo_CIE_2012_10_uv = { 0, icxOT_CIE_2012_10, 1, 0 };
/* Illuminant locus */
static xslpoly illo_D_CIE_1931_2_xy = { 1, icxOT_CIE_1931_2, 0, 0 };
@@ -8389,6 +7628,15 @@ static xslpoly illo_P_CIE_1931_2_uv = { 2, icxOT_CIE_1931_2, 1, 0 };
static xslpoly illo_P_CIE_1964_10_xy = { 2, icxOT_CIE_1964_10, 0, 0 };
static xslpoly illo_P_CIE_1964_10_uv = { 2, icxOT_CIE_1964_10, 1, 0 };
+static xslpoly illo_D_CIE_2012_2_xy = { 1, icxOT_CIE_2012_2, 0, 0 };
+static xslpoly illo_D_CIE_2012_2_uv = { 1, icxOT_CIE_2012_2, 1, 0 };
+static xslpoly illo_D_CIE_2012_10_xy = { 1, icxOT_CIE_2012_10, 0, 0 };
+static xslpoly illo_D_CIE_2012_10_uv = { 1, icxOT_CIE_2012_10, 1, 0 };
+static xslpoly illo_P_CIE_2012_2_xy = { 2, icxOT_CIE_2012_2, 0, 0 };
+static xslpoly illo_P_CIE_2012_2_uv = { 2, icxOT_CIE_2012_2, 1, 0 };
+static xslpoly illo_P_CIE_2012_10_xy = { 2, icxOT_CIE_2012_10, 0, 0 };
+static xslpoly illo_P_CIE_2012_10_uv = { 2, icxOT_CIE_2012_10, 1, 0 };
+
/* Return a pointer to the (static) chromaticity locus poligon */
/* return NULL on failure. */
xslpoly *chrom_locus_poligon(
@@ -8437,6 +7685,40 @@ int uv /* 0 = xy, 1 = u'v' space */
rv = &illo_P_CIE_1964_10_uv;
}
break;
+ case icxOT_CIE_2012_2:
+ if (uv == 0) {
+ if (loty == icxLT_spectral)
+ rv = &splo_CIE_2012_2_xy;
+ else if (loty == icxLT_daylight)
+ rv = &illo_D_CIE_2012_2_xy;
+ else if (loty == icxLT_plankian)
+ rv = &illo_P_CIE_2012_2_xy;
+ } else {
+ if (loty == icxLT_spectral)
+ rv = &splo_CIE_2012_2_uv;
+ else if (loty == icxLT_daylight)
+ rv = &illo_D_CIE_2012_2_uv;
+ else if (loty == icxLT_plankian)
+ rv = &illo_P_CIE_2012_2_uv;
+ }
+ break;
+ case icxOT_CIE_2012_10:
+ if (uv == 0) {
+ if (loty == icxLT_spectral)
+ rv = &splo_CIE_2012_10_xy;
+ else if (loty == icxLT_daylight)
+ rv = &illo_D_CIE_2012_10_xy;
+ else if (loty == icxLT_plankian)
+ rv = &illo_P_CIE_2012_10_xy;
+ } else {
+ if (loty == icxLT_spectral)
+ rv = &splo_CIE_2012_10_uv;
+ else if (loty == icxLT_daylight)
+ rv = &illo_D_CIE_2012_10_uv;
+ else if (loty == icxLT_plankian)
+ rv = &illo_P_CIE_2012_10_uv;
+ }
+ break;
default:
rv = NULL;
}
@@ -8914,7 +8196,9 @@ icxObserverType obType, /* Observer */
xspect custObserver[3], /* Optional custom observer */
icxIllumeType ilType, /* Type of illuminant, icxIT_[O]Dtemp or icxIT_[O]Ptemp */
double ct, /* Input temperature in degrees K */
-xspect *custIllum /* Optional custom illuminant */
+xspect *custIllum, /* Optional custom illuminant */
+int abs /* If nz return absolute value in cd/m^2 or Lux */
+ /* else return Y = 1 normalised value */
) {
xspect sp; /* Xspect to fill in */
xsp2cie *conv; /* Means of converting spectrum to XYZ */
@@ -8931,10 +8215,12 @@ xspect *custIllum /* Optional custom illuminant */
conv->del(conv);
- /* Normalise */
- xyz[0] /= xyz[1];
- xyz[2] /= xyz[1];
- xyz[1] /= xyz[1];
+ if (!abs) {
+ /* Normalise */
+ xyz[0] /= xyz[1];
+ xyz[2] /= xyz[1];
+ xyz[1] /= xyz[1];
+ }
return 0;
}
@@ -9233,8 +8519,8 @@ xspect *sample /* Illuminant sample to compute CRI of */
/* Compute the XYZ of the reference white */
tocie->convert(tocie, wt, &wts);
-//DBGF((DBGA,"XYZ white = %f %f %f\n",wt[0],wt[1],wt[2]));
-//DBGF((DBGA,"XYZ sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
+DBGF((DBGA,"XYZ white = %f %f %f\n",wt[0],wt[1],wt[2]));
+DBGF((DBGA,"XYZ sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
/* Normalize the spectra so as to create a normalized white */
wts.norm *= wt[1];
@@ -9244,8 +8530,8 @@ xspect *sample /* Illuminant sample to compute CRI of */
tocie->convert(tocie, sa, sample);
tocie->del(tocie);
-//DBGF((DBGA,"norm XYZ white = %f %f %f\n",wt[0],wt[1],wt[2]));
-//DBGF((DBGA,"norm XYZ sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
+DBGF((DBGA,"norm XYZ white = %f %f %f\n",wt[0],wt[1],wt[2]));
+DBGF((DBGA,"norm XYZ sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
/* Convert to perceptual CIE 1960 UCS */
icmAry2XYZ(wtn, wt); /* Use reference white as UCS white */
@@ -9257,13 +8543,13 @@ xspect *sample /* Illuminant sample to compute CRI of */
c_ad = wt_Ycd[1]/sa_Ycd[1]; /* Chromatic adaptation scaling factors */
d_ad = wt_Ycd[2]/sa_Ycd[2];
-//DBGF((DBGA,"UCS white = %f %f %f\n",wt[0],wt[1],wt[2]));
-//DBGF((DBGA,"UCS sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
+DBGF((DBGA,"UCS white = %f %f %f\n",wt[0],wt[1],wt[2]));
+DBGF((DBGA,"UCS sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
dc = sqrt((wt[1] - sa[1]) * (wt[1] - sa[1]) + (wt[2] - sa[2]) * (wt[2] - sa[2]));
-//DBGF((DBGA,"dc = %f\n",dc));
-//if (dc > 0.0054) DBGF((DBGA,"CRI is invalid\n"));
+DBGF((DBGA,"dc = %f\n",dc));
+if (dc > 0.0054) DBGF((DBGA,"CRI is invalid\n"));
/* If dc > 0.0054 we should abort computing the CRI, */
/* but this means we fail on lots of real world lighting. */
@@ -9496,8 +8782,8 @@ xspect *sample /* Illuminant sample to compute TLCI of */
/* Compute the XYZ of the reference white */
tocie->convert(tocie, wt, &wts);
-//DBGF((DBGA,"XYZ white = %f %f %f\n",wt[0],wt[1],wt[2]));
-//DBGF((DBGA,"XYZ sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
+DBGF((DBGA,"XYZ white = %f %f %f\n",wt[0],wt[1],wt[2]));
+DBGF((DBGA,"XYZ sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
/* Normalize the spectra so as to create a normalized white */
wts.norm *= wt[1];
@@ -9508,20 +8794,20 @@ xspect *sample /* Illuminant sample to compute TLCI of */
tocie->del(tocie);
tocie = NULL;
-//DBGF((DBGA,"norm XYZ white = %f %f %f\n",wt[0],wt[1],wt[2]));
-//DBGF((DBGA,"norm XYZ sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
+DBGF((DBGA,"norm XYZ white = %f %f %f\n",wt[0],wt[1],wt[2]));
+DBGF((DBGA,"norm XYZ sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
/* Convert to perceptual CIE 1960 UCS */
icmXYZ21960UCS(wt, wt); /* 1960 UCS Yuv reference white */
icmXYZ21960UCS(sa, sa); /* 1960 UCS Yuv sample white */
-//DBGF((DBGA,"UCS white = %f %f %f\n",wt[0],wt[1],wt[2]));
-//DBGF((DBGA,"UCS sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
+DBGF((DBGA,"UCS white = %f %f %f\n",wt[0],wt[1],wt[2]));
+DBGF((DBGA,"UCS sampl = %f %f %f\n",sa[0],sa[1],sa[2]));
dc = sqrt((wt[1] - sa[1]) * (wt[1] - sa[1]) + (wt[2] - sa[2]) * (wt[2] - sa[2]));
-//DBGF((DBGA,"dc = %f (normalized dist %f)\n",dc,dc/0.0054));
-//if (dc > 0.0054) DBGF((DBGA,"TLCI is invalid\n"));
+DBGF((DBGA,"dc = %f (normalized dist %f)\n",dc,dc/0.0054));
+if (dc > 0.0054) DBGF((DBGA,"TLCI is invalid\n"));
/* If dc > 0.0054 we should abort computing the TLCI, */
/* but this means we fail on lots of real world lighting. */
@@ -9624,6 +8910,8 @@ xspect *sample /* Illuminant sample to compute TLCI of */
return tlci;
}
+#undef ANDROID // ~~~~9999
+
/* - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Compute Australian Radiation Protection and Nuclear Safety Agency (ARPANSA) */
/* Exposure to Ultraviolet Radiation exposure limits from a spectrum in mw/m-2/nm. */
diff --git a/xicc/xspect.h b/xicc/xspect.h
index 3dd99a5..b42a961 100644..100755
--- a/xicc/xspect.h
+++ b/xicc/xspect.h
@@ -71,6 +71,13 @@ typedef struct {
/* Some helpful macro's: */
+/* Set the spectrums parameters */
+#define XSPECT_SET_INFO(PDST, N, SHORT, LONG, NORM) \
+ (PDST)->spec_n = (N), \
+ (PDST)->spec_wl_short = (SHORT), \
+ (PDST)->spec_wl_long = (LONG), \
+ (PDST)->norm = (NORM)
+
/* Copy everything except the spectral values */
#define XSPECT_COPY_INFO(PDST, PSRC) \
(PDST)->spec_n = (PSRC)->spec_n, \
@@ -102,13 +109,32 @@ typedef struct {
#define XSPECT_XIX(PXSP, WL) \
((int)floor(XSPECT_XDIX(PXSP, WL) + 0.5))
+/* Given the address of an xspect, compute the wavelegth interval */
+#define XSPECT_WLI(PXSP) \
+((((PXSP)->spec_wl_long) - ((PXSP)->spec_wl_short))/(((PXSP)->spec_n)-1.0))
+
#ifndef SALONEINSTLIB
/* Single spectrum utility functions. Return NZ if error */
int write_xspect(char *fname, inst_meas_type mt, xspect *s);
int read_xspect(xspect *sp, inst_meas_type *mt, char *fname);
+/* Two step write & read spectrum, to be able to write & read extra kewords values */
+
+/* Prepare to write spectrum, and return cgats */
+int write_xspect_1(cgats **ocgp, inst_meas_type mt, xspect *s);
+
+/* Complete writing spectrum */
+int write_xspect_2(cgats *ocg, char *fname);
+
+/* Read spectrum and return cgats as well */
+int read_xspect_1(cgats **picg, xspect *sp, inst_meas_type *mt, char *fname);
+
+/* Complete reading spectrum */
+int read_xspect_2(cgats *icg);
+
/* CMF utility functions. Return NZ if error */
+/* (See cmf/pcmf.h for write/read pcmf) */
int write_cmf(char *fname, xspect cmf[3]);
int read_cmf(xspect cmf[3], char *fname);
@@ -121,6 +147,13 @@ int write_nxspect(char *fname, inst_meas_type mt, xspect *sp, int nspec, int typ
int read_nxspect(xspect *sp, inst_meas_type *mt,
char *fname, int *nret, int off, int nspec, int type);
+/* Two step write & read n spectrum, to be able to write & read extra kewords values */
+int write_nxspect_1(cgats **pocg, inst_meas_type mt, xspect *sp, int nspec, int type);
+int write_nxspect_2(cgats *ocg, char *fname);
+int read_nxspect_1(cgats **picg, xspect *sp, inst_meas_type *mt, char *fname,
+ int *nret, int off, int nspec, int type);
+int read_nxspect_2(cgats *icg);
+
#endif /* !SALONEINSTLIB*/
/* Get interpolated value at wavelenth (not normalised) */
@@ -129,19 +162,31 @@ double value_xspect(xspect *sp, double wl);
/* De-normalize and set normalisation factor to 1.0 */
void xspect_denorm(xspect *sp);
+/* Scale the spectral values (don't alter norm) */
+void xspect_scale(xspect *sp, double scale);
+
#ifndef SALONEINSTLIB
/* Convert from one xspect type to another */
void xspect2xspect(xspect *dst, xspect *targ, xspect *src);
+/* Dump a spectra to stdout */
+void xspect_dump(xspect *sp);
+
/* Plot up to 3 spectra */
void xspect_plot_w(xspect *sp1, xspect *sp2, xspect *sp3, int wait);
/* Plot up to 3 spectra & wait for key */
void xspect_plot(xspect *sp1, xspect *sp2, xspect *sp3);
-/* Plot up to 10 spectra */
+/* Plot up to 10 spectra in an array */
void xspect_plot10(xspect *sp, int n);
+/* Plot up to 10 spectra pointed to by an array & wait for key */
+void xspect_plot10p(xspect *sp[10], int n);
+
+/* Plot up to 10 spectra pointed to by an array */
+void xspect_plot10p_w(xspect *sp[10], int n, int wait);
+
#endif /* !SALONEINSTLIB*/
/* ------------------------------------------------------------------------------ */
@@ -194,12 +239,14 @@ typedef enum {
icxOT_custom = 2, /* Custom observer type weighting */
icxOT_CIE_1931_2 = 3, /* Standard CIE 1931 2 degree */
icxOT_CIE_1964_10 = 4, /* Standard CIE 1964 10 degree */
+ icxOT_CIE_2012_2 = 5, /* Proposed Standard CIE 2012 2 degree */
+ icxOT_CIE_2012_10 = 6, /* Proposed Standard CIE 2012 10 degree */
#ifndef SALONEINSTLIB
- icxOT_Stiles_Burch_2 = 5, /* Stiles & Burch 1955 2 degree */
- icxOT_Judd_Voss_2 = 6, /* Judd & Voss 1978 2 degree */
- icxOT_CIE_1964_10c = 7, /* Standard CIE 1964 10 degree, 2 degree compatible */
- icxOT_Shaw_Fairchild_2 = 8, /* Shaw & Fairchild 1997 2 degree */
- icxOT_EBU_2012 = 9 /* EBU standard camera curves 2012 */
+ icxOT_Stiles_Burch_2 = 7, /* Stiles & Burch 1955 2 degree */
+ icxOT_Judd_Voss_2 = 8, /* Judd & Voss 1978 2 degree */
+ icxOT_CIE_1964_10c = 9, /* Standard CIE 1964 10 degree, 2 degree compatible */
+ icxOT_Shaw_Fairchild_2 = 10, /* Shaw & Fairchild 1997 2 degree */
+ icxOT_EBU_2012 = 11 /* EBU standard camera curves 2012 */
#endif /* !SALONEINSTLIB*/
} icxObserverType;
@@ -223,7 +270,7 @@ struct _xsp2cie {
xspect illuminant; /* Lookup conversion/observer illuminant */
int isemis; /* nz if we are doing an emission conversion */
xspect observer[3];
- int doLab; /* Return D50 Lab result */
+ int doLab; /* 1 == Return D50 Lab result, 2 == D50 Lpt */
icxClamping clamp; /* Clamp XYZ and Lab to be +ve */
/* Integration range and steps - set to observer range and 1nm by default. */
@@ -256,6 +303,17 @@ struct _xsp2cie {
double longwl /* Ending nm */
);
+ /* Convert spectrum from photometric to radiometric. */
+ /* Note that the input spectrum normalisation value is used. */
+ /* Emissive spectral values are assumed to be in mW/nm, and sampled */
+ /* rather than integrated if they are not at 1nm spacing. */
+ void (*photo2rad)(struct _xsp2cie *p, /* this */
+ double *rout, /* Return total lumens */
+ double *pout, /* Return total mW */
+ xspect *sout, /* Return input spectrum converted to lm/nm */
+ xspect *in /* Spectrum to be converted */
+ );
+
/* Convert (and possibly fwa correct) reflectance spectrum */
/* Note that the input spectrum normalisation value is used. */
/* Note that the returned XYZ is 0..1 range for reflectanc. */
@@ -344,6 +402,7 @@ xsp2cie *new_xsp2cie(
icxObserverType obType, /* Observer */
xspect custObserver[3], /* Custom observer if obType == icxOT_custom */
icColorSpaceSignature rcs, /* Return color space, icSigXYZData or D50 icSigLabData */
+ /* or D50 icmSigLptData */
/* ** Must be icSigXYZData if SALONEINSTLIB ** */
icxClamping clamp /* NZ to clamp XYZ/Lab to be +ve */
);
@@ -445,7 +504,10 @@ icxObserverType obType, /* Observer */
xspect custObserver[3], /* Optional custom observer */
icxIllumeType ilType, /* Type of illuminant */
double temp, /* Input temperature in degrees K */
-xspect *custIllum); /* Optional custom illuminant */
+xspect *custIllum, /* Optional custom illuminant */
+int abs /* If nz return absolute value in cd/m^2 or Lux */
+ /* else return Y = 1 normalised value */
+);
/* Given a choice of temperature dependent illuminant (icxIT_[O]Dtemp or icxIT_[O]Ptemp), */
/* return the closest correlated color temperature to the given spectrum or XYZ. */
diff --git a/xicc/xutils.c b/xicc/xutils.c
index 019cee6..019cee6 100644..100755
--- a/xicc/xutils.c
+++ b/xicc/xutils.c
diff --git a/xicc/xutils.h b/xicc/xutils.h
index 27de570..27de570 100644..100755
--- a/xicc/xutils.h
+++ b/xicc/xutils.h