print one fewer digit than ideal

Implementation-specific rounding means that even if we've got the
shortest string that round trips, we might not have the same string.

I _think_ truncating the final digit will make everyone agree.
If not, I think we'll have to printf() ourselves.

Change-Id: I3a4daea7ac6c51015ce33fac3af75d5b4f057333
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/259822
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
diff --git a/profiles/color.org/Lower_Left.icc.txt b/profiles/color.org/Lower_Left.icc.txt
index d7fb280..fd378cb 100644
--- a/profiles/color.org/Lower_Left.icc.txt
+++ b/profiles/color.org/Lower_Left.icc.txt
@@ -22,10 +22,10 @@
 Best : 2.199219, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 Inv  : 0.4547069, 1, -0, 0, 0, 0, 0 (f(1) = 1)
 Best Error: | 0.000167131 0.000167131 0.000167131 |
- XYZ : | 0.38511658 0.14305115 0.43603516 |
-       | 0.7169037 0.06060791 0.2224884 |
-       | 0.09706116 0.71391296 0.013916016 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.3851165 0.1430511 0.4360351 |
+       | 0.716903 0.0606079 0.222488 |
+       | 0.0970611 0.7139129 0.01391601 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	291454 6280c2 30375f 2a2706 3a2e07 4b8133 281288
 	70ac1c 1c2510 69a32b 71b087 304356 261642 776813
diff --git a/profiles/color.org/Lower_Right.icc.txt b/profiles/color.org/Lower_Right.icc.txt
index ef747a2..60b0665 100644
--- a/profiles/color.org/Lower_Right.icc.txt
+++ b/profiles/color.org/Lower_Right.icc.txt
@@ -22,10 +22,10 @@
 Best : 2.199219, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 Inv  : 0.4547069, 1, -0, 0, 0, 0, 0 (f(1) = 1)
 Best Error: | 0.000167131 0.000167131 0.000167131 |
- XYZ : | 0.6097412 0.20527649 0.14918518 |
-       | 0.31111145 0.6256714 0.06321716 |
-       | 0.019470215 0.06086731 0.7445679 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.609741 0.2052764 0.1491851 |
+       | 0.3111114 0.625671 0.0632171 |
+       | 0.01947021 0.0608673 0.744567 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	204d31 93ce15 416213 1f1032 24134e 755408 2b7921
 	914d31 211911 8e5828 aeab10 4a5e08 1f3e2b 522d94
diff --git a/profiles/color.org/Upper_Left.icc.txt b/profiles/color.org/Upper_Left.icc.txt
index da07519..88819ed 100644
--- a/profiles/color.org/Upper_Left.icc.txt
+++ b/profiles/color.org/Upper_Left.icc.txt
@@ -32,10 +32,10 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-CHAD : | 1.0478363 0.022888184 -0.050201416 |
-       | 0.029541016 0.99050903 -0.017074585 |
-       | -0.009246826 0.015075684 0.75172424 |
-WTPT : | 0.9642029 1 0.8249054 |
+CHAD : | 1.047836 0.02288818 -0.05020141 |
+       | 0.02954101 0.9905090 -0.01707458 |
+       | -0.00924682 0.01507568 0.7517242 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	003012 e8ff0c 335505 00000c 000032 5a3300 2d9d18
 	8c3b0f 000000 884609 dcd000 274100 0c230c 3510c0
diff --git a/profiles/color.org/Upper_Right.icc.txt b/profiles/color.org/Upper_Right.icc.txt
index 1e74a0c..d8de9b8 100644
--- a/profiles/color.org/Upper_Right.icc.txt
+++ b/profiles/color.org/Upper_Right.icc.txt
@@ -34,10 +34,10 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-CHAD : | 1.0478363 0.022888184 -0.050201416 |
-       | 0.029541016 0.99050903 -0.017074585 |
-       | -0.009246826 0.015075684 0.75172424 |
-WTPT : | 0.9642029 1 0.8249054 |
+CHAD : | 1.047836 0.02288818 -0.05020141 |
+       | 0.02954101 0.9905090 -0.01707458 |
+       | -0.00924682 0.01507568 0.7517242 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	050217 c9c1ff 434d9d 273100 312b00 a1ff8a 0d054b
 	d3f938 2a480b bfe26d edffff 6592a8 0b091c a5670c
diff --git a/profiles/color.org/sRGB2014.icc.txt b/profiles/color.org/sRGB2014.icc.txt
index 4f5a114..09d92a2 100644
--- a/profiles/color.org/sRGB2014.icc.txt
+++ b/profiles/color.org/sRGB2014.icc.txt
@@ -32,13 +32,13 @@
 Best : 2.395543, 0.9495392, 0.04946931, 0.07771055, 0.04496579, 0.0003471375, 0 (D-gap: 0.000160849) (f(1) = 0.997971) (~sRGB)
 Inv  : 0.4174418, 1.132225, -0.0003930377, 12.86827, 0.003494316, -0.05207062, -0 (D-gap: -0.00197129) (f(1) = 1.0009)
 Best Error: | 0.00197129 0.00197129 0.00197129 |
- XYZ : | 0.43606567 0.3851471 0.1430664 |
-       | 0.2224884 0.71687317 0.06060791 |
-       | 0.013916016 0.097076416 0.71409607 |
-CHAD : | 1.0479126 0.02293396 -0.050201416 |
-       | 0.02960205 0.99046326 -0.017074585 |
-       | -0.009246826 0.015060425 0.7517853 |
-WTPT : | 0.9642029 1 0.8249054 |
+ XYZ : | 0.4360656 0.385147 0.143066 |
+       | 0.222488 0.7168731 0.0606079 |
+       | 0.01391601 0.09707641 0.7140960 |
+CHAD : | 1.047912 0.0229339 -0.05020141 |
+       | 0.0296020 0.9904632 -0.01707458 |
+       | -0.00924682 0.01506042 0.751785 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	345632 a4d61e 4c6617 190e2f 1e1149 5e4809 4d8927
 	6c3b2e 1c1711 6e4726 a1a315 4d5f0c 2d442c 44268d
diff --git a/profiles/color.org/sRGB_ICC_v4_Appearance.icc.txt b/profiles/color.org/sRGB_ICC_v4_Appearance.icc.txt
index 2d11cd8..6c88821 100644
--- a/profiles/color.org/sRGB_ICC_v4_Appearance.icc.txt
+++ b/profiles/color.org/sRGB_ICC_v4_Appearance.icc.txt
@@ -32,10 +32,10 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-CHAD : | 1.0479126 0.02293396 -0.050201416 |
-       | 0.02960205 0.99046326 -0.017074585 |
-       | -0.009246826 0.015060425 0.7517853 |
-WTPT : | 0.9642029 1 0.8249054 |
+CHAD : | 1.047912 0.0229339 -0.05020141 |
+       | 0.0296020 0.9904632 -0.01707458 |
+       | -0.00924682 0.01506042 0.751785 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	2f4e2d 92c11a 486216 190e2f 1d1048 5c4609 3e711e
 	653727 1d1711 6b4623 9c9b13 4a5b0b 2b4229 3a2375
diff --git a/profiles/color.org/sRGB_v4_ICC_preference.icc.txt b/profiles/color.org/sRGB_v4_ICC_preference.icc.txt
index cd6402d..13de97d 100644
--- a/profiles/color.org/sRGB_v4_ICC_preference.icc.txt
+++ b/profiles/color.org/sRGB_v4_ICC_preference.icc.txt
@@ -32,10 +32,10 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-CHAD : | 1.0480194 0.023010254 -0.0501709 |
-       | 0.029724121 0.9903412 -0.017074585 |
-       | -0.009231567 0.010284424 0.75213623 |
-WTPT : | 0.9642029 1 0.8249054 |
+CHAD : | 1.048019 0.02301025 -0.050170 |
+       | 0.02972412 0.990341 -0.01707458 |
+       | -0.00923156 0.01028442 0.7521362 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	0f2b1c 97bd13 445b15 190e29 1d113f 5f4706 1d4a14
 	6b3928 1f1912 764e26 b3a80d 424e05 1d3325 3b236d
diff --git a/profiles/fuzz/direct_fit_not_invertible.icc.txt b/profiles/fuzz/direct_fit_not_invertible.icc.txt
index 38eaeb8..b19f7c9 100644
--- a/profiles/fuzz/direct_fit_not_invertible.icc.txt
+++ b/profiles/fuzz/direct_fit_not_invertible.icc.txt
@@ -10,9 +10,9 @@
 rTRC : 16-bit table with 3 entries
 gTRC : 16-bit table with 3 entries
 bTRC : 16-bit table with 3 entries
- XYZ : | 0.9614258 0 0 |
-       | 0 1.0083008 0 |
-       | 0 0 0.81689453 |
+ XYZ : | 0.961425 0 0 |
+       | 0 1.008300 0 |
+       | 0 0 0.8168945 |
 252 random bytes transformed to linear XYZD50 bytes:
 	1f201a 1f201a 1f201a 1f201a 1f201a 1f201a 1f201a
 	1f201a 1f201a 1f201a 1f201a 1f201a 1f201a 1f201a
diff --git a/profiles/fuzz/fit_pq.icc.txt b/profiles/fuzz/fit_pq.icc.txt
index 776fd54..ec47ffc 100644
--- a/profiles/fuzz/fit_pq.icc.txt
+++ b/profiles/fuzz/fit_pq.icc.txt
@@ -16,9 +16,9 @@
 Best : 1, 1, 7.629395e-06, 0.003997864, 0.5, -0.4979935, 0 (D-gap: 1.52283e-05) (f(1) = 0.502007)
 Inv  : 1, 1, 0.4979935, 250.1336, 0.001998932, 0, -0 (D-gap: -1.90735e-06) (f(1) = 1.49799)
 Best Error: | 0.745052 0.745052 0.745052 |
- XYZ : | 0.95799255 0 0 |
-       | 0 1.0027313 0 |
-       | 0 0 0.81640625 |
+ XYZ : | 0.9579925 0 0 |
+       | 0 1.002731 0 |
+       | 0 0 0.8164062 |
 252 random bytes transformed to linear XYZD50 bytes:
 	00cf02 f4ff00 19e300 000023 000088 f40000 00ff00
 	f4000f 000000 f40000 f4ff00 66b700 007f00 6200d0
diff --git a/profiles/fuzz/inf_a.icc.txt b/profiles/fuzz/inf_a.icc.txt
index fcdfc95..54084f3 100644
--- a/profiles/fuzz/inf_a.icc.txt
+++ b/profiles/fuzz/inf_a.icc.txt
@@ -20,9 +20,9 @@
 Best : 0.07488938, 0.007860422, -3.070464e-05, 0.1250019, 0.00390625, -0.1817474, 0 (D-gap: 5.7213e-05) (f(1) = 0.513702)
 Inv  : 13.35303, 1.437515, 0.2612647, 7.999878, 0.0004882887, 0.003726959, -0 (D-gap: -0.000179274) (f(1) = 1181.82)
 Best Error: | 1181.7 1181.7 1181.7 |
- XYZ : | 0.9614258 0 0 |
-       | 0 1.0004883 0 |
-       | 0 0 0.82470703 |
+ XYZ : | 0.961425 0 0 |
+       | 0 1.000488 0 |
+       | 0 0 0.8247070 |
 252 random bytes transformed to linear XYZD50 bytes:
 	1f2074 f5201a 81201a 1fe37b 97201a 3c201a 0020c3
 	1f20cd 1f20b1 1fec67 ebffbd ef771a 1f741a ef202f
diff --git a/profiles/fuzz/infinite_roundtrip.icc.txt b/profiles/fuzz/infinite_roundtrip.icc.txt
index 70c1e55..f95e450 100644
--- a/profiles/fuzz/infinite_roundtrip.icc.txt
+++ b/profiles/fuzz/infinite_roundtrip.icc.txt
@@ -19,9 +19,9 @@
 rTRC : 1.996582, 8224.125, 8224.125, 8224.125, 0, 8224.125, 0 (f(1) = 2.61714e+08)
 gTRC : 1.996582, 8224.125, 8224.125, 8224.125, 0, 8224.125, 0 (f(1) = 2.61714e+08)
 bTRC : 1.996582, 8224.125, 8224.125, 8224.125, 0, 8224.125, 0 (f(1) = 2.61714e+08)
- XYZ : | 8224.125 8224.125 8224.125 |
-       | 8224.125 8224.125 8224.125 |
-       | 8224.125 8224.125 8224.125 |
+ XYZ : | 8224.12 8224.12 8224.12 |
+       | 8224.12 8224.12 8224.12 |
+       | 8224.12 8224.12 8224.12 |
  !!! This does not appear to use a D50 whitepoint, rather [24672.4 24672.4 24672.4]
 252 random bytes transformed to linear XYZD50 bytes:
 	ffffff ffffff ffffff ffffff ffffff ffffff ffffff
diff --git a/profiles/fuzz/inverse_tf_adb_negative.icc.txt b/profiles/fuzz/inverse_tf_adb_negative.icc.txt
index 47f6b50..7c073a5 100644
--- a/profiles/fuzz/inverse_tf_adb_negative.icc.txt
+++ b/profiles/fuzz/inverse_tf_adb_negative.icc.txt
@@ -23,9 +23,9 @@
   ~= : 11.04649, 1, -0.0009775171, 0.4995193, 0.0009775171, 0.0003890991, 0 (Max error: 1) (D-gap: -9.91896e-05) (f(1) = 0.989616)
 bTRC : 16-bit table with 1024 entries
   ~= : 11.04649, 1, -0.0009775171, 0.4995193, 0.0009775171, 0.0003890991, 0 (Max error: 1) (D-gap: -9.91896e-05) (f(1) = 0.989616)
- XYZ : | 8224.125 8224.125 8224.125 |
-       | 8224.125 8224.125 8224.125 |
-       | -0.0034179688 8224.125 8224.125 |
+ XYZ : | 8224.12 8224.12 8224.12 |
+       | 8224.12 8224.12 8224.12 |
+       | -0.003417968 8224.12 8224.12 |
  !!! This does not appear to use a D50 whitepoint, rather [24672.4 24672.4 16448.2]
 252 random bytes transformed to linear XYZD50 bytes:
 	ffffff ffffff ffffff ffffff ffffff ffffff ffffff
diff --git a/profiles/fuzz/inverse_tf_huge_g.icc.txt b/profiles/fuzz/inverse_tf_huge_g.icc.txt
index 162d8be..e72fd23 100644
--- a/profiles/fuzz/inverse_tf_huge_g.icc.txt
+++ b/profiles/fuzz/inverse_tf_huge_g.icc.txt
@@ -18,9 +18,9 @@
 Best : 2.985061, 1, -1.594611e-05, 41.95129, 0.02380952, 0.9988265, 0 (D-gap: 4.17233e-07) (f(1) = 1.99879)
 Inv  : 0.3350015, 1, -0.9988265, 0.02383717, 0.9988403, 3.814697e-06, -0 (D-gap: -0.000247927) (f(1) = 0.104296)
 Best Error: | 0.97938 0.97938 0.97938 |
- XYZ : | 0.9642029 0 0 |
+ XYZ : | 0.964202 0 0 |
        | 0 1 0 |
-       | 0 0 0.8249054 |
+       | 0 0 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	b3701f c2dc2e 24c145 242c1f 24341e c6251f 8bd01f
 	cf6d1f 24251f cd251f d1c91f 622523 55b31f 4672ad
diff --git a/profiles/fuzz/inverse_tf_not_invertible.icc.txt b/profiles/fuzz/inverse_tf_not_invertible.icc.txt
index 8f416d3..1daabad 100644
--- a/profiles/fuzz/inverse_tf_not_invertible.icc.txt
+++ b/profiles/fuzz/inverse_tf_not_invertible.icc.txt
@@ -24,10 +24,10 @@
 Best : 1.403709, 0.9121704, 0.2242268, 0.07707816, 0.04078144, -0.1487198, 0 (D-gap: 0.00021739) (f(1) = 1.04768)
 Inv  : 0.7123984, 1.137833, 0.1692182, 12.97384, 0.003143358, -0.2457199, -0 (D-gap: -0.000215951) (f(1) = 0.964401)
 Best Error: | 0.662578 0.662578 0.662578 |
- XYZ : | 0.43606567 0.3850708 0.14305115 |
-       | 0.22250366 0.71687317 0.06060791 |
-       | 0.013916016 0.09706116 0.71398926 |
-WTPT : | 0.9505005 1 1.0890961 |
+ XYZ : | 0.4360656 0.385070 0.1430511 |
+       | 0.2225036 0.7168731 0.0606079 |
+       | 0.01391601 0.0970611 0.7139892 |
+WTPT : | 0.950500 1 1.089096 |
 252 random bytes transformed to linear XYZD50 bytes:
 	619c65 8eac17 6b762f 361b5d 452e84 736f0d 538b46
 	7e505b 453d30 866a50 a1a314 8ca915 5c825b 6e4b91
diff --git a/profiles/fuzz/nan_s.icc.txt b/profiles/fuzz/nan_s.icc.txt
index a2e14b5..9319c69 100644
--- a/profiles/fuzz/nan_s.icc.txt
+++ b/profiles/fuzz/nan_s.icc.txt
@@ -16,9 +16,9 @@
 Best : 2.025319, 1, 2.325047e-06, 206.8078, 0.00389105, 0.8047485, 0 (D-gap: 6.19888e-05) (f(1) = 1.80476)
 Inv  : 0.4937495, 1, -0.8046997, 0.004835406, 0.8046997, -3.051758e-05, -0 (D-gap: -0.00392157) (f(1) = 0.446409)
 Best Error: | 0.999377 0.999377 0.999377 |
- XYZ : | 0.95739746 0 0 |
-       | 0 1.0083008 0 |
-       | 0 0 0.8161621 |
+ XYZ : | 0.9573974 0 0 |
+       | 0 1.008300 0 |
+       | 0 0 0.816162 |
 252 random bytes transformed to linear XYZD50 bytes:
 	0d201a f42100 1fff1a 1f201a 1f001a 1f201a ee201a
 	33201a 1f201a 1f201a 1f781a 48202c 1f20c8 1f2044
diff --git a/profiles/fuzz/negative_a_plus_b.icc.txt b/profiles/fuzz/negative_a_plus_b.icc.txt
index de0ec7c..11a850b 100644
--- a/profiles/fuzz/negative_a_plus_b.icc.txt
+++ b/profiles/fuzz/negative_a_plus_b.icc.txt
@@ -10,9 +10,9 @@
 rTRC : 6.103516e-05, 2067, -18428.55, 0, 8.915603, -28305.75, -28305.75 (D-gap: 0) (f(1) = -28305.8)
 gTRC : 6.103516e-05, 2067, -18428.55, 0, 8.915603, -28305.75, -28305.75 (D-gap: 0) (f(1) = -28305.8)
 bTRC : 6.103516e-05, 2067, -18428.55, 0, 8.915603, -28305.75, -28305.75 (D-gap: 0) (f(1) = -28305.8)
- XYZ : | 0.9623871 0 0 |
-       | 0 1.0083923 0 |
-       | 0 0 0.8287506 |
+ XYZ : | 0.962387 0 0 |
+       | 0 1.008392 0 |
+       | 0 0 0.828750 |
 252 random bytes transformed to linear XYZD50 bytes:
 	000000 000000 000000 000000 000000 000000 000000
 	000000 000000 000000 000000 000000 000000 000000
diff --git a/profiles/fuzz/negative_a_when_inverted.icc.txt b/profiles/fuzz/negative_a_when_inverted.icc.txt
index ec6f323..d70efc1 100644
--- a/profiles/fuzz/negative_a_when_inverted.icc.txt
+++ b/profiles/fuzz/negative_a_when_inverted.icc.txt
@@ -16,9 +16,9 @@
 Best : 3.471169, 1, -7.677823e-06, 10.00992, 0.05, 0.500597, 0 (D-gap: 0.000131547) (f(1) = 1.50057)
 Inv  : 0.2880874, 1, -0.5004959, 0.09990092, 0.5004959, -2.288818e-05, -0 (D-gap: -0.0500229) (f(1) = 0.81871)
 Best Error: | 0.987463 0.987463 0.987463 |
- XYZ : | 0.95751953 0 0 |
-       | 0 1.0004883 0 |
-       | 0 0 0.82029724 |
+ XYZ : | 0.9575195 0 0 |
+       | 0 1.000488 0 |
+       | 0 0 0.8202972 |
 252 random bytes transformed to linear XYZD50 bytes:
 	4d201a 1f571a 1f201a 00201a 002074 1f201a 2d2000
 	1f201a 330d8d 1f001a 4d201a 1f2063 1f201a 1f201a
diff --git a/profiles/fuzz/one_d_clut.icc.txt b/profiles/fuzz/one_d_clut.icc.txt
index 6842b1f..38981c3 100644
--- a/profiles/fuzz/one_d_clut.icc.txt
+++ b/profiles/fuzz/one_d_clut.icc.txt
@@ -32,10 +32,10 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-CHAD : | 1.0478363 0.022888184 -0.050201416 |
-       | 0.029541016 0.99050903 -0.017074585 |
-       | -0.009246826 0.015075684 0.75172424 |
-WTPT : | 0.9642029 1 0.8249054 |
+CHAD : | 1.047836 0.02288818 -0.05020141 |
+       | 0.02954101 0.9905090 -0.01707458 |
+       | -0.00924682 0.01507568 0.7517242 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	000000 000800 000400 000000 000000 000800 000000
 	000800 000000 000800 000800 000600 000000 000600
diff --git a/profiles/fuzz/polytf_nan_after_update.icc.txt b/profiles/fuzz/polytf_nan_after_update.icc.txt
index 686138b..a601d7d 100644
--- a/profiles/fuzz/polytf_nan_after_update.icc.txt
+++ b/profiles/fuzz/polytf_nan_after_update.icc.txt
@@ -22,9 +22,9 @@
   ~= : 3.045648, 1, -5.939649e-05, 32, 0.003921569, 0.1258659, 0 (Max error: 0.772618) (D-gap: 0.000375792) (f(1) = 1.12568)
 bTRC : 16-bit table with 256 entries
   ~= : 3.045648, 1, 0.0003229971, 254.1323, 0.003921569, 0.9965984, 0 (Max error: 0.975963) (D-gap: 1.13249e-06) (f(1) = 1.99757)
- XYZ : | 8224.125 8224.125 8224.125 |
-       | 8224.125 8224.125 8224.125 |
-       | 8224.125 8224.125 8224.125 |
+ XYZ : | 8224.12 8224.12 8224.12 |
+       | 8224.12 8224.12 8224.12 |
+       | 8224.12 8224.12 8224.12 |
  !!! This does not appear to use a D50 whitepoint, rather [24672.4 24672.4 24672.4]
 252 random bytes transformed to linear XYZD50 bytes:
 	ffffff ffffff ffffff ffffff ffffff ffffff ffffff
diff --git a/profiles/fuzz/zero_g.icc.txt b/profiles/fuzz/zero_g.icc.txt
index 9898d3e..1615baa 100644
--- a/profiles/fuzz/zero_g.icc.txt
+++ b/profiles/fuzz/zero_g.icc.txt
@@ -10,9 +10,9 @@
 rTRC : 0, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 gTRC : 0, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 bTRC : 0, 1, 0, 0, 0, 0, 0 (f(1) = 1)
- XYZ : | 0.9614258 0 0 |
-       | 0 1.0004883 0 |
-       | 0 0 0.83251953 |
+ XYZ : | 0.961425 0 0 |
+       | 0 1.000488 0 |
+       | 0 0 0.8325195 |
 252 random bytes transformed to linear XYZD50 bytes:
 	f5ffd4 f5ffd4 f5ffd4 f5ffd4 f5ffd4 f5ffd4 f5ffd4
 	f5ffd4 f5ffd4 f5ffd4 f5ffd4 f5ffd4 f5ffd4 f5ffd4
diff --git a/profiles/misc/AdobeColorSpin.icc.txt b/profiles/misc/AdobeColorSpin.icc.txt
index 0a88dce..7545886 100644
--- a/profiles/misc/AdobeColorSpin.icc.txt
+++ b/profiles/misc/AdobeColorSpin.icc.txt
@@ -21,10 +21,10 @@
 Best : 2.199219, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 Inv  : 0.4547069, 1, -0, 0, 0, 0, 0 (f(1) = 1)
 Best Error: | 0.000167131 0.000167131 0.000167131 |
- XYZ : | 0.20527649 0.14918518 0.6097412 |
-       | 0.6256714 0.06321716 0.31111145 |
-       | 0.06086731 0.7445526 0.019470215 |
-WTPT : | 0.95047 1 1.0890503 |
+ XYZ : | 0.2052764 0.1491851 0.609741 |
+       | 0.625671 0.0632171 0.3111114 |
+       | 0.0608673 0.744552 0.01947021 |
+WTPT : | 0.9504 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	341958 4873c4 283361 302a05 463407 2c712e 2e158e
 	539d14 182310 4b9424 489b84 223c56 2e1a45 8a7111
diff --git a/profiles/misc/AdobeRGB.icc.txt b/profiles/misc/AdobeRGB.icc.txt
index ef747a2..60b0665 100644
--- a/profiles/misc/AdobeRGB.icc.txt
+++ b/profiles/misc/AdobeRGB.icc.txt
@@ -22,10 +22,10 @@
 Best : 2.199219, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 Inv  : 0.4547069, 1, -0, 0, 0, 0, 0 (f(1) = 1)
 Best Error: | 0.000167131 0.000167131 0.000167131 |
- XYZ : | 0.6097412 0.20527649 0.14918518 |
-       | 0.31111145 0.6256714 0.06321716 |
-       | 0.019470215 0.06086731 0.7445679 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.609741 0.2052764 0.1491851 |
+       | 0.3111114 0.625671 0.0632171 |
+       | 0.01947021 0.0608673 0.744567 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	204d31 93ce15 416213 1f1032 24134e 755408 2b7921
 	914d31 211911 8e5828 aeab10 4a5e08 1f3e2b 522d94
diff --git a/profiles/misc/Apple_Color_LCD.icc.txt b/profiles/misc/Apple_Color_LCD.icc.txt
index 14370c4..e222100 100644
--- a/profiles/misc/Apple_Color_LCD.icc.txt
+++ b/profiles/misc/Apple_Color_LCD.icc.txt
@@ -33,13 +33,13 @@
 Best : 2.395543, 0.9495392, 0.04946931, 0.07771055, 0.04496579, 0.0003471375, 0 (D-gap: 0.000160849) (f(1) = 0.997971) (~sRGB)
 Inv  : 0.4174418, 1.132225, -0.0003930377, 12.86827, 0.003494316, -0.05207062, -0 (D-gap: -0.00197129) (f(1) = 1.0009)
 Best Error: | 0.00197129 0.00197129 0.00197129 |
- XYZ : | 0.44433594 0.3794403 0.14041138 |
-       | 0.22476196 0.7261658 0.049072266 |
-       | 0.0054779053 0.07797241 0.7414551 |
-CHAD : | 1.0486145 0.02331543 -0.050338745 |
-       | 0.030181885 0.99002075 -0.01713562 |
-       | -0.009216309 0.015029907 0.75172424 |
-WTPT : | 0.94955444 1 1.0890198 |
+ XYZ : | 0.4443359 0.379440 0.1404113 |
+       | 0.2247619 0.726165 0.04907226 |
+       | 0.005477905 0.0779724 0.741455 |
+CHAD : | 1.048614 0.0233154 -0.05033874 |
+       | 0.03018188 0.9900207 -0.0171356 |
+       | -0.00921630 0.01502990 0.7517242 |
+WTPT : | 0.9495544 1 1.089019 |
 252 random bytes transformed to linear XYZD50 bytes:
 	345632 a4d918 4b6715 1a0d31 1e104c 5f4907 4c8a24
 	6d3b2e 1d1711 6f4725 a2a510 4d6009 2c452c 442491
diff --git a/profiles/misc/Apple_Wide_Color.icc.txt b/profiles/misc/Apple_Wide_Color.icc.txt
index 5a607ac..c98d8e5 100644
--- a/profiles/misc/Apple_Wide_Color.icc.txt
+++ b/profiles/misc/Apple_Wide_Color.icc.txt
@@ -31,10 +31,10 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-CHAD : | 1.0478058 0.022888184 -0.0501709 |
-       | 0.029525757 0.99050903 -0.017059326 |
-       | -0.009246826 0.015060425 0.75190735 |
-WTPT : | 0.9642029 1 0.82510376 |
+CHAD : | 1.047805 0.02288818 -0.050170 |
+       | 0.02952575 0.9905090 -0.01705932 |
+       | -0.00924682 0.01506042 0.7519073 |
+WTPT : | 0.964202 1 0.8251037 |
 252 random bytes transformed to linear XYZD50 bytes:
 	2c562d a2d713 4b6615 1a0e30 1e114a 614a06 3d8912
 	763f31 1c1711 734b27 a6a90d 4c5f06 2b442b 452790
diff --git a/profiles/misc/BenQ_GL2450.icc.txt b/profiles/misc/BenQ_GL2450.icc.txt
index 24d672f..072e36a 100644
--- a/profiles/misc/BenQ_GL2450.icc.txt
+++ b/profiles/misc/BenQ_GL2450.icc.txt
@@ -29,11 +29,11 @@
 Best : 1.993112, 1.001831, -0, 0, 0, -1.525879e-05, 0 (f(1) = 1.00362)
 Inv  : 0.5017281, 0.9963799, 1.520355e-05, 0, 0, -2.288818e-05, 0 (f(1) = 0.998169)
 Best Error: | 0.00890554 0.00890554 0.00890554 |
- XYZ : | 0.38839722 0.40229797 0.20140076 |
-       | 0.19389343 0.7411041 0.065093994 |
-       | 0.010299683 0.061203003 1.0146027 |
+ XYZ : | 0.3883972 0.4022979 0.2014007 |
+       | 0.1938934 0.741104 0.06509399 |
+       | 0.01029968 0.06120300 1.014602 |
  !!! This does not appear to use a D50 whitepoint, rather [0.992096 1.00009 1.08611]
-WTPT : | 0.9524994 1 1.0861053 |
+WTPT : | 0.952499 1 1.086105 |
 252 random bytes transformed to linear XYZD50 bytes:
 	406149 a5da17 54711b 20104c 281372 5d4c08 569330
 	693848 221b1c 6d483a 9ea810 536909 384f41 522acd
diff --git a/profiles/misc/BenQ_RL2455.icc.txt b/profiles/misc/BenQ_RL2455.icc.txt
index 151b950..bec2519 100644
--- a/profiles/misc/BenQ_RL2455.icc.txt
+++ b/profiles/misc/BenQ_RL2455.icc.txt
@@ -39,9 +39,9 @@
 Best : 2.201753, 0.9993706, 0.0006862282, 0.189456, 0.25, -9.918213e-05, 0 (D-gap: 7.38353e-06) (f(1) = 1.00002)
 Inv  : 0.4541835, 1.001389, 9.931985e-05, 5.27827, 0.047364, -0.0006790161, -0 (D-gap: -1.71512e-05) (f(1) = 0.999985)
 Best Error: | 0.0248302 0.0248302 0.0248302 |
- XYZ : | 0.4651947 0.35595703 0.14302063 |
-       | 0.23188782 0.6815338 0.08656311 |
-       | 0.009918213 0.09286499 0.72210693 |
+ XYZ : | 0.465194 0.3559570 0.1430206 |
+       | 0.2318878 0.681533 0.0865631 |
+       | 0.00991821 0.0928649 0.7221069 |
  A2B : "A", CLUT, "B"
  "A" : 3 inputs
   A0 : 16-bit table with 256 entries
@@ -58,7 +58,7 @@
   ~= : 1, 1, 0, 0, 0, 0, 0 (Max error: 0.000332177) (f(1) = 1) (~Identity)
   B2 : 16-bit table with 4096 entries
   ~= : 1, 1, 0, 0, 0, 0, 0 (Max error: 0.000332177) (f(1) = 1) (~Identity)
-WTPT : | 0.96429443 1 0.82510376 |
+WTPT : | 0.9642944 1 0.8251037 |
 252 random bytes transformed to linear XYZD50 bytes:
 	192a1a 51680e 26320b 0d0818 100a26 312504 244213
 	391f17 0f0c08 3a2513 525109 272f06 152216 231648
diff --git a/profiles/misc/Coated_FOGRA27_CMYK.icc.txt b/profiles/misc/Coated_FOGRA27_CMYK.icc.txt
index b5f7c9d..3e29339 100644
--- a/profiles/misc/Coated_FOGRA27_CMYK.icc.txt
+++ b/profiles/misc/Coated_FOGRA27_CMYK.icc.txt
@@ -31,7 +31,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.86979675 0.89930725 0.7805023 |
+WTPT : | 0.8697967 0.8993072 0.780502 |
 252 random bytes transformed to linear XYZD50 bytes:
 	0e1b20 392210 0b0c05 1a1218 1c1305 17210b 231e10
 	25233b 010102 0f1514 222e4a 492e20 2b2d1d 030202
diff --git a/profiles/misc/Coated_FOGRA39_CMYK.icc.txt b/profiles/misc/Coated_FOGRA39_CMYK.icc.txt
index 90177f7..863e79a 100644
--- a/profiles/misc/Coated_FOGRA39_CMYK.icc.txt
+++ b/profiles/misc/Coated_FOGRA39_CMYK.icc.txt
@@ -35,7 +35,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.84480286 0.87620544 0.745697 |
+WTPT : | 0.8448028 0.8762054 0.74569 |
 252 random bytes transformed to linear XYZD50 bytes:
 	111c23 3a220f 0c0e06 1b131a 1c1305 18220c 251f11
 	27253e 000102 101615 232f4c 4a2f21 2c2e1e 030201
diff --git a/profiles/misc/ColorLogic_ISO_Coated_CMYK.icc.txt b/profiles/misc/ColorLogic_ISO_Coated_CMYK.icc.txt
index 2704028..8be192e 100644
--- a/profiles/misc/ColorLogic_ISO_Coated_CMYK.icc.txt
+++ b/profiles/misc/ColorLogic_ISO_Coated_CMYK.icc.txt
@@ -36,7 +36,7 @@
   ~= : 1, 0.9961089, 0, 0, 0, 0, 0 (Max error: 0.000143707) (f(1) = 0.996105)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.8448181 0.8761902 0.7456665 |
+WTPT : | 0.844818 0.876190 0.745666 |
 252 random bytes transformed to linear XYZD50 bytes:
 	101b21 382210 0c0d06 1a1318 1b1205 18210c 231e11
 	26243c 000102 101514 232e4a 492f21 2c2d1e 030201
diff --git a/profiles/misc/Color_Spin_Gamma_18.icc.txt b/profiles/misc/Color_Spin_Gamma_18.icc.txt
index 55327a0..4fffec4 100644
--- a/profiles/misc/Color_Spin_Gamma_18.icc.txt
+++ b/profiles/misc/Color_Spin_Gamma_18.icc.txt
@@ -21,10 +21,10 @@
 Best : 1.800781, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 Inv  : 0.5553145, 1, -0, 0, 0, 0, 0 (f(1) = 1)
 Best Error: | 0.000189781 0.000189781 0.000189781 |
- XYZ : | 0.38511658 0.14303589 0.43605042 |
-       | 0.7169037 0.06060791 0.2224884 |
-       | 0.09706116 0.71391296 0.013916016 |
-WTPT : | 0.95047 1 1.0890503 |
+ XYZ : | 0.3851165 0.1430358 0.4360504 |
+       | 0.716903 0.0606079 0.222488 |
+       | 0.0970611 0.7139129 0.01391601 |
+WTPT : | 0.9504 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	341961 698bc4 3d476d 39360a 483d0c 538b40 2f1690
 	7bb521 29341a 75ad36 76b492 3a5265 322050 83781b
diff --git a/profiles/misc/DisplayCal_ASUS_NonMonotonic.icc.txt b/profiles/misc/DisplayCal_ASUS_NonMonotonic.icc.txt
index 0b05379..bf31633 100644
--- a/profiles/misc/DisplayCal_ASUS_NonMonotonic.icc.txt
+++ b/profiles/misc/DisplayCal_ASUS_NonMonotonic.icc.txt
@@ -39,9 +39,9 @@
 Best : 2.330241, 1, -4.805624e-07, 1.546164e-09, 0.02352941, -0.0001525879, 0 (D-gap: 7.89479e-06) (f(1) = 0.999863)
 Inv  : 0.4291402, 1, 0.0001525879, 6.467617e+08, 3.638034e-11, 0, -0 (D-gap: -0.000505093) (f(1) = 1.00006)
 Best Error: | 0.100611 0.0871768 0.152941 |
- XYZ : | 0.43673706 0.38032532 0.1471405 |
-       | 0.21763611 0.72984314 0.052520752 |
-       | 0.0026550293 0.06440735 0.75782776 |
+ XYZ : | 0.4367370 0.3803253 0.147140 |
+       | 0.2176361 0.7298431 0.05252075 |
+       | 0.002655029 0.0644073 0.7578277 |
  A2B : "A", CLUT, "B"
  "A" : 3 inputs
   A0 : 16-bit table with 2049 entries
@@ -55,7 +55,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.9493561 1 1.1591797 |
+WTPT : | 0.949356 1 1.159179 |
 252 random bytes transformed to linear XYZD50 bytes:
 	1a2c18 526c09 263409 0c0619 0f0727 2f2402 264611
 	351b17 0e0b08 372313 505205 273004 162315 22124a
diff --git a/profiles/misc/Dot_Gain_20_Grayscale.icc.txt b/profiles/misc/Dot_Gain_20_Grayscale.icc.txt
index 07ba151..4507797 100644
--- a/profiles/misc/Dot_Gain_20_Grayscale.icc.txt
+++ b/profiles/misc/Dot_Gain_20_Grayscale.icc.txt
@@ -20,10 +20,10 @@
 Best : 1.736919, 1, -3.613532e-07, 0.06290532, 0.02352941, 0, 0 (D-gap: 4.44008e-06) (f(1) = 1.00002)
 Inv  : 0.5757321, 1, -0, 15.89691, 0.001480125, -1.525879e-05, -0 (D-gap: -5.66281e-05) (f(1) = 0.999985)
 Best Error: | 0.000202144 0.000202144 0.000202144 |
- XYZ : | 0.9642029 0 0 |
+ XYZ : | 0.964202 0 0 |
        | 0 1 0 |
-       | 0 0 0.8249054 |
-WTPT : | 0.9642029 1 0.8249054 |
+       | 0 0 0.824905 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	018a40 a7fc08 509115 320748 300a67 b74404 00ca26
 	dc1043 3d1e1d d43036 e4af05 668201 0f703a 6515ab
diff --git a/profiles/misc/Generic_RGB_Gamma_18.icc.txt b/profiles/misc/Generic_RGB_Gamma_18.icc.txt
index 2f6e5e5..9811713 100644
--- a/profiles/misc/Generic_RGB_Gamma_18.icc.txt
+++ b/profiles/misc/Generic_RGB_Gamma_18.icc.txt
@@ -23,13 +23,13 @@
 Best : 1.800781, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 Inv  : 0.5553145, 1, -0, 0, 0, 0, 0 (f(1) = 1)
 Best Error: | 0.000189781 0.000189781 0.000189781 |
- XYZ : | 0.45429993 0.35334778 0.15664673 |
-       | 0.24191284 0.67362976 0.0844574 |
-       | 0.014892578 0.09063721 0.719574 |
-CHAD : | 1.0478821 0.022918701 -0.050201416 |
-       | 0.029571533 0.9904938 -0.017059326 |
-       | -0.009231567 0.015075684 0.75164795 |
-WTPT : | 0.95047 1 1.0890961 |
+ XYZ : | 0.4542999 0.3533477 0.1566467 |
+       | 0.2419128 0.6736297 0.084457 |
+       | 0.01489257 0.0906372 0.71957 |
+CHAD : | 1.047882 0.02291870 -0.05020141 |
+       | 0.02957153 0.990493 -0.01705932 |
+       | -0.00923156 0.01507568 0.7516479 |
+WTPT : | 0.9504 1 1.089096 |
 252 random bytes transformed to linear XYZD50 bytes:
 	3b6141 a8d31f 5a751f 26173e 2b1b59 6d590c 4e8b31
 	78473d 2a241b 7d5834 a9ad17 5c6e0e 37523b 553797
diff --git a/profiles/misc/Gray_Gamma_22.icc.txt b/profiles/misc/Gray_Gamma_22.icc.txt
index 547757b..64a47cb 100644
--- a/profiles/misc/Gray_Gamma_22.icc.txt
+++ b/profiles/misc/Gray_Gamma_22.icc.txt
@@ -17,10 +17,10 @@
 Best : 2.199219, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 Inv  : 0.4547069, 1, -0, 0, 0, 0, 0 (f(1) = 1)
 Best Error: | 0.000167131 0.000167131 0.000167131 |
- XYZ : | 0.9642029 0 0 |
+ XYZ : | 0.964202 0 0 |
        | 0 1 0 |
-       | 0 0 0.8249054 |
-WTPT : | 0.9505005 1 1.0890961 |
+       | 0 0 0.824905 |
+WTPT : | 0.950500 1 1.089096 |
 252 random bytes transformed to linear XYZD50 bytes:
 	00752e 96fb03 3c7c0b 210336 1f0455 a93001 00be18
 	d50831 2a1111 cb1e25 df9e02 516d00 075a2a 500ba1
diff --git a/profiles/misc/HD_709.icc.txt b/profiles/misc/HD_709.icc.txt
index 690c8d9..a4f667e 100644
--- a/profiles/misc/HD_709.icc.txt
+++ b/profiles/misc/HD_709.icc.txt
@@ -33,13 +33,13 @@
 Best : 2.395543, 0.9495392, 0.04946931, 0.07771055, 0.04496579, 0.0003471375, 0 (D-gap: 0.000160849) (f(1) = 0.997971) (~sRGB)
 Inv  : 0.4174418, 1.132225, -0.0003930377, 12.86827, 0.003494316, -0.05207062, -0 (D-gap: -0.00197129) (f(1) = 1.0009)
 Best Error: | 0.00197129 0.00197129 0.00197129 |
- XYZ : | 0.358963 0.4463501 0.15888977 |
-       | 0.19592285 0.7428436 0.06123352 |
-       | 0.009674072 0.043518066 0.77171326 |
-CHAD : | 1.0457611 0.021820068 -0.049453735 |
-       | 0.02796936 0.9915619 -0.016738892 |
-       | -0.009185791 0.015045166 0.75375366 |
-WTPT : | 0.95251465 1 1.0860596 |
+ XYZ : | 0.35896 0.446350 0.1588897 |
+       | 0.1959228 0.742843 0.0612335 |
+       | 0.00967407 0.04351806 0.7717132 |
+CHAD : | 1.045761 0.02182006 -0.04945373 |
+       | 0.0279693 0.991561 -0.01673889 |
+       | -0.00918579 0.01504516 0.7537536 |
+WTPT : | 0.9525146 1 1.086059 |
 252 random bytes transformed to linear XYZD50 bytes:
 	3c592f a8d910 4f6811 180d33 1e104f 544506 598e1f
 	5c3530 1b1711 604226 99a10c 4d5f06 32462a 412597
diff --git a/profiles/misc/Japan_Color_2001_Coated.icc.txt b/profiles/misc/Japan_Color_2001_Coated.icc.txt
index bc5d969..e2d9c47 100644
--- a/profiles/misc/Japan_Color_2001_Coated.icc.txt
+++ b/profiles/misc/Japan_Color_2001_Coated.icc.txt
@@ -31,7 +31,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.75927734 0.78593445 0.664032 |
+WTPT : | 0.7592773 0.7859344 0.66403 |
 252 random bytes transformed to linear XYZD50 bytes:
 	101d25 3d240f 0b0d05 1b131b 1d1406 17230c 241f11
 	26233f 000001 0f1615 243052 4c3022 2c2e1d 020100
diff --git a/profiles/misc/Kodak_sRGB.icc.txt b/profiles/misc/Kodak_sRGB.icc.txt
index f2705a2..71dbd16 100644
--- a/profiles/misc/Kodak_sRGB.icc.txt
+++ b/profiles/misc/Kodak_sRGB.icc.txt
@@ -29,9 +29,9 @@
 Best : 2.429111, 0.937191, 0.06168338, 1.070039, 0.003921569, 0.003055573, 0 (D-gap: 0.000184181) (f(1) = 1.00032)
 Inv  : 0.4116732, 1.170876, -0.003577695, 0.9345455, 0.004196231, -0.06580353, -0 (D-gap: -0.00415665) (f(1) = 0.99987)
 Best Error: | 0.00426031 0.00426031 0.00426031 |
- XYZ : | 0.43763733 0.38841248 0.14241028 |
-       | 0.21495056 0.7129059 0.072128296 |
-       | 0.011260986 0.080718994 0.72587585 |
+ XYZ : | 0.4376373 0.3884124 0.1424102 |
+       | 0.2149505 0.712905 0.07212829 |
+       | 0.01126098 0.08071899 0.7258758 |
  A2B : "A", CLUT, "B"
  "A" : 3 inputs
   A0 : 16-bit table with 256 entries
@@ -48,7 +48,7 @@
   ~= : 4.998877, 1, 2.980232e-07, 0.9980438, 0.9982907, 0.00484848, 0 (Max error: 0.00196159) (D-gap: -3.0458e-05) (f(1) = 1.00486)
   B2 : 16-bit table with 4096 entries
   ~= : 4.998877, 1, 2.980232e-07, 0.9980438, 0.9982907, 0.00484848, 0 (Max error: 0.00196159) (D-gap: -3.0458e-05) (f(1) = 1.00486)
-WTPT : | 0.8594055 0.8912964 0.7357025 |
+WTPT : | 0.859405 0.891296 0.735702 |
 252 random bytes transformed to linear XYZD50 bytes:
 	355632 a5d31d 4c6517 190f30 1e124a 5d4709 4e8727
 	693a2f 1c1712 6c4626 a0a014 4d5d0c 2e442c 42288e
diff --git a/profiles/misc/Lexmark_X110.icc.txt b/profiles/misc/Lexmark_X110.icc.txt
index c16463d..e6603cb 100644
--- a/profiles/misc/Lexmark_X110.icc.txt
+++ b/profiles/misc/Lexmark_X110.icc.txt
@@ -22,7 +22,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.9505005 1 1.0888062 |
+WTPT : | 0.950500 1 1.088806 |
 252 random bytes transformed to linear XYZD50 bytes:
 	6fa094 d8f243 a7d043 825cbe 8365c0 a39f15 5c8161
 	a871bd 5a5249 aa8b81 d2f028 a6cb1b 729e83 937fb7
diff --git a/profiles/misc/MR2416GSDF.icc.txt b/profiles/misc/MR2416GSDF.icc.txt
index 4036b3f..5f3ea2c 100644
--- a/profiles/misc/MR2416GSDF.icc.txt
+++ b/profiles/misc/MR2416GSDF.icc.txt
@@ -26,14 +26,14 @@
 Best : 6.107902, 0.5691719, 0.4350795, 0.04863813, 0.01568628, -0.005722046, 0 (D-gap: 0.000529933) (f(1) = 1.02042)
 Inv  : 0.1637223, 31.27466, 0.178955, 20.56, 0.0007629511, -0.7644653, -0 (D-gap: -0.0100443) (f(1) = 0.994202)
 Best Error: | 0.0100443 0.0100443 0.0100443 |
- XYZ : | 0.4459076 0.3938141 0.13781738 |
-       | 0.22624207 0.73461914 0.053771973 |
-       | 0.004348755 0.08099365 0.7522278 |
+ XYZ : | 0.445907 0.393814 0.1378173 |
+       | 0.2262420 0.7346191 0.05377197 |
+       | 0.00434875 0.0809936 0.752227 |
  !!! This does not appear to use a D50 whitepoint, rather [0.977539 1.01463 0.83757]
-CHAD : | 1.0695648 0.034210205 -0.05618286 |
-       | 0.046295166 0.97895813 -0.019805908 |
-       | -0.0093688965 0.014602661 0.74076843 |
-WTPT : | 0.9642029 1 0.8249054 |
+CHAD : | 1.069564 0.03421020 -0.0561828 |
+       | 0.04629516 0.9789581 -0.01980590 |
+       | -0.009368896 0.01460266 0.7407684 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	253d20 98d117 34490e 0f081f 130a34 4b3504 41771a
 	61341c 110e0a 5f3916 918b0d 354207 1d2e1b 311a7f
diff --git a/profiles/misc/MartiMaria_browsertest_A2B.icc.txt b/profiles/misc/MartiMaria_browsertest_A2B.icc.txt
index 71e8020..26b661a 100644
--- a/profiles/misc/MartiMaria_browsertest_A2B.icc.txt
+++ b/profiles/misc/MartiMaria_browsertest_A2B.icc.txt
@@ -22,7 +22,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.9642029 1 0.8249054 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	181915 7b8069 7b8069 7b8069 7b8069 7b8069 090a08
 	7b8069 7b8069 7b8069 7b8069 7b8069 7b8069 7b8069
diff --git a/profiles/misc/MartiMaria_browsertest_HARD.icc.txt b/profiles/misc/MartiMaria_browsertest_HARD.icc.txt
index ca4eb3d..6651281 100644
--- a/profiles/misc/MartiMaria_browsertest_HARD.icc.txt
+++ b/profiles/misc/MartiMaria_browsertest_HARD.icc.txt
@@ -22,9 +22,9 @@
 gTRC : 16-bit table with 255 entries
   ~= : 1, 0.003875792, 0, 0, 0, 0, 0 (Max error: 0.000128567) (f(1) = 0.00387573)
 bTRC : 16-bit table with 255 entries
- XYZ : | 0.9642029 0 0.9642029 |
+ XYZ : | 0.964202 0 0.964202 |
        | 1 0 1 |
-       | 0.8249054 0 0.8249054 |
+       | 0.824905 0 0.824905 |
  !!! This does not appear to use a D50 whitepoint, rather [1.92841 2 1.64981]
  A2B : "A", CLUT, "B"
  "A" : 3 inputs
@@ -36,7 +36,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.9642029 1 0.8249054 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	181915 7b8069 7b8069 7b8069 7b8069 7b8069 090a08
 	7b8069 7b8069 7b8069 7b8069 7b8069 7b8069 7b8069
diff --git a/profiles/misc/Phase_One_P25.icc.txt b/profiles/misc/Phase_One_P25.icc.txt
index d344772..c4ab4a3 100644
--- a/profiles/misc/Phase_One_P25.icc.txt
+++ b/profiles/misc/Phase_One_P25.icc.txt
@@ -27,9 +27,9 @@
 Best : 0.378341, 1.767159, 0.01614364, 3.844358, 0.007843138, -0.2351913, 0 (D-gap: 9.07481e-06) (f(1) = 1.00939)
 Inv  : 2.643118, 0.806221, 0.1896162, 0.2601215, 0.03015183, -0.009002686, -0 (D-gap: 0.000124334) (f(1) = 0.980007)
 Best Error: | 0.0199992 0.102694 0.124728 |
- XYZ : | 0.64790344 0.35736084 0.15641785 |
-       | 0.3829193 1.109726 0 |
-       | 0.08326721 0.6792755 0.52342224 |
+ XYZ : | 0.6479034 0.3573608 0.1564178 |
+       | 0.382919 1.10972 0 |
+       | 0.0832672 0.679275 0.5234222 |
  !!! This does not appear to use a D50 whitepoint, rather [1.16168 1.49265 1.28596]
  A2B : "A", CLUT, "B"
  "A" : 3 inputs
@@ -44,7 +44,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.9634552 1 0.82403564 |
+WTPT : | 0.963455 1 0.8240356 |
 252 random bytes transformed to linear XYZD50 bytes:
 	1d5c40 86f80b 4a7913 2e1551 341674 8a6006 38a75e
 	b45e34 2f2417 af6d2b b4ae06 547302 1f4c33 6822be
diff --git a/profiles/misc/PrintOpen_ISO_Coated_CMYK.icc.txt b/profiles/misc/PrintOpen_ISO_Coated_CMYK.icc.txt
index 0be81c8..4c72fef 100644
--- a/profiles/misc/PrintOpen_ISO_Coated_CMYK.icc.txt
+++ b/profiles/misc/PrintOpen_ISO_Coated_CMYK.icc.txt
@@ -30,7 +30,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.84552 0.87683105 0.74716187 |
+WTPT : | 0.8455 0.8768310 0.7471618 |
 252 random bytes transformed to linear XYZD50 bytes:
 	162328 3a2310 090a05 1d151d 1b1306 18230c 211b10
 	2a2742 000101 101615 253047 4c3123 27291b 020201
diff --git a/profiles/misc/SM245B.icc.txt b/profiles/misc/SM245B.icc.txt
index 0d233bb..22a86fe 100644
--- a/profiles/misc/SM245B.icc.txt
+++ b/profiles/misc/SM245B.icc.txt
@@ -28,11 +28,11 @@
 Best : 2.200056, 1, -7.76723e-07, 0.00389105, 0.01176471, 0, 0 (D-gap: 1.11191e-05) (f(1) = 1.00002)
 Inv  : 0.4545339, 1, -0, 257, 4.577707e-05, 0, -0 (D-gap: -0.00110817) (f(1) = 1)
 Best Error: | 0.00392157 0.00392157 0.00392157 |
- XYZ : | 0.45872498 0.32295227 0.16848755 |
-       | 0.2328949 0.6973877 0.06971741 |
-       | 0.01411438 0.14978027 0.9237671 |
+ XYZ : | 0.4587249 0.3229522 0.1684875 |
+       | 0.232894 0.697387 0.0697174 |
+       | 0.0141143 0.1497802 0.923767 |
  !!! This does not appear to use a D50 whitepoint, rather [0.950165 1 1.08766]
-WTPT : | 0.9501648 1 1.0876465 |
+WTPT : | 0.950164 1 1.087646 |
 252 random bytes transformed to linear XYZD50 bytes:
 	2f5645 99d32b 476620 1c0e3e 211160 604a0b 428637
 	723d3c 1d1716 724a31 9da41d 4a5f12 29443c 4b29b7
diff --git a/profiles/misc/SWOP_Coated_20_GCR_CMYK.icc.txt b/profiles/misc/SWOP_Coated_20_GCR_CMYK.icc.txt
index 15ada1b..c0be290 100644
--- a/profiles/misc/SWOP_Coated_20_GCR_CMYK.icc.txt
+++ b/profiles/misc/SWOP_Coated_20_GCR_CMYK.icc.txt
@@ -32,7 +32,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.9642029 1 0.82489014 |
+WTPT : | 0.964202 1 0.8248901 |
 252 random bytes transformed to linear XYZD50 bytes:
 	121d22 36200e 090a05 191117 181106 131d0a 221d12
 	252136 000000 0e1312 242d47 472e1f 252618 010100
diff --git a/profiles/misc/ThinkpadX1YogaV2.icc.txt b/profiles/misc/ThinkpadX1YogaV2.icc.txt
index ab4f566..26608bd 100644
--- a/profiles/misc/ThinkpadX1YogaV2.icc.txt
+++ b/profiles/misc/ThinkpadX1YogaV2.icc.txt
@@ -26,13 +26,13 @@
 Best : 2.199997, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 Inv  : 0.4545461, 1, -0, 0, 0, 0, 0 (f(1) = 1)
 Best Error: | 0.000167012 0.000167012 0.000167012 |
- XYZ : | 0.5669861 0.26065063 0.13656616 |
-       | 0.2580719 0.6846466 0.057281494 |
-       | 0.00044250488 0.044403076 0.78004456 |
-CHAD : | 1.0486145 0.02331543 -0.050354004 |
-       | 0.030181885 0.99002075 -0.017150879 |
-       | -0.009231567 0.015029907 0.75172424 |
-WTPT : | 0.9642029 1 0.8249054 |
+ XYZ : | 0.566986 0.2606506 0.1365661 |
+       | 0.258071 0.684646 0.05728149 |
+       | 0.0004425048 0.04440307 0.7800445 |
+CHAD : | 1.048614 0.0233154 -0.05035400 |
+       | 0.03018188 0.9900207 -0.01715087 |
+       | -0.00923156 0.01502990 0.7517242 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	265331 9ad40e 456610 1d0e34 211151 704e04 35841f
 	88422f 201811 864e25 ada809 4c6005 23432b 4d2899
diff --git a/profiles/misc/US_Web_Coated_SWOP_CMYK.icc.txt b/profiles/misc/US_Web_Coated_SWOP_CMYK.icc.txt
index c1f3b7a..2addd45 100644
--- a/profiles/misc/US_Web_Coated_SWOP_CMYK.icc.txt
+++ b/profiles/misc/US_Web_Coated_SWOP_CMYK.icc.txt
@@ -31,7 +31,7 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-WTPT : | 0.70840454 0.73594666 0.5710449 |
+WTPT : | 0.7084045 0.7359466 0.571044 |
 252 random bytes transformed to linear XYZD50 bytes:
 	121f24 392210 0a0c06 1b141c 1d1407 151f0c 242014
 	23223b 000001 0f1514 212d48 482f22 242619 020101
diff --git a/profiles/misc/XPS13_9360.icc.txt b/profiles/misc/XPS13_9360.icc.txt
index 988c9e9..3364afd 100644
--- a/profiles/misc/XPS13_9360.icc.txt
+++ b/profiles/misc/XPS13_9360.icc.txt
@@ -26,13 +26,13 @@
 Best : 2.199997, 1, 0, 0, 0, 0, 0 (f(1) = 1)
 Inv  : 0.4545461, 1, -0, 0, 0, 0, 0 (f(1) = 1)
 Best Error: | 0.000167012 0.000167012 0.000167012 |
- XYZ : | 0.43795776 0.38423157 0.14201355 |
-       | 0.2230835 0.71687317 0.060058594 |
-       | 0.014511108 0.09725952 0.7131195 |
-CHAD : | 1.0472717 0.022460938 -0.050811768 |
-       | 0.028808594 0.99142456 -0.017227173 |
-       | -0.00944519 0.0154418945 0.74728394 |
-WTPT : | 0.9642029 1 0.8249054 |
+ XYZ : | 0.4379577 0.3842315 0.1420135 |
+       | 0.223083 0.7168731 0.06005859 |
+       | 0.01451110 0.0972595 0.713119 |
+CHAD : | 1.047271 0.02246093 -0.05081176 |
+       | 0.02880859 0.9914245 -0.01722717 |
+       | -0.0094451 0.015441894 0.7472839 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	355733 a5d71d 4d6817 190d30 1e104a 5f4908 4d8a27
 	6c3a2f 1c1711 6f4826 a2a514 4f610c 2d452d 44268e
diff --git a/profiles/misc/XRite_GRACol7_340_CMYK.icc.txt b/profiles/misc/XRite_GRACol7_340_CMYK.icc.txt
index bea44b4..ba91c02 100644
--- a/profiles/misc/XRite_GRACol7_340_CMYK.icc.txt
+++ b/profiles/misc/XRite_GRACol7_340_CMYK.icc.txt
@@ -34,7 +34,7 @@
 CHAD : | 1 0 0 |
        | 0 1 0 |
        | 0 0 1 |
-WTPT : | 0.8447876 0.8761749 0.7453766 |
+WTPT : | 0.844787 0.876174 0.745376 |
 252 random bytes transformed to linear XYZD50 bytes:
 	121d23 3b2510 0c0e07 1c151b 1e1607 17210e 252013
 	242239 010102 111616 212b45 493020 26281a 030201
diff --git a/profiles/misc/calibrated_nonzero_black.icc.txt b/profiles/misc/calibrated_nonzero_black.icc.txt
index 6c191f1..8dec597 100644
--- a/profiles/misc/calibrated_nonzero_black.icc.txt
+++ b/profiles/misc/calibrated_nonzero_black.icc.txt
@@ -27,13 +27,13 @@
 Best : 2.199834, 0.9994049, -3.508671e-05, 0.3307393, 0.003921569, 0.001289368, 0 (D-gap: -2.67371e-06) (f(1) = 0.999908)
 Inv  : 0.4545797, 1.001312, -0.00129106, 3.02353, 0.001297017, 1.907349e-05, -0 (D-gap: 0.000822901) (f(1) = 1.00003)
 Best Error: | 0.00474447 0.00474447 0.00474447 |
- XYZ : | 0.436615 0.38534546 0.14224243 |
-       | 0.22212219 0.71839905 0.0594635 |
-       | 0.012954712 0.09654236 0.71539307 |
-CHAD : | 1.0476837 0.022857666 -0.049865723 |
-       | 0.029525757 0.9903717 -0.016967773 |
-       | -0.009170532 0.0149383545 0.75354004 |
-WTPT : | 0.9642029 1 0.8249054 |
+ XYZ : | 0.43661 0.3853454 0.1422424 |
+       | 0.2221221 0.7183990 0.059463 |
+       | 0.01295471 0.0965423 0.7153930 |
+CHAD : | 1.047683 0.02285766 -0.04986572 |
+       | 0.02952575 0.990371 -0.01696777 |
+       | -0.00917053 0.014938354 0.7535400 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	355834 a5d71d 4d6817 1a0e30 1e104b 5f4a08 4e8a27
 	6c3a2f 1d1711 6e4826 a2a514 4f610c 2d462d 44268e
diff --git a/profiles/misc/crbug_1017960_19.icc.txt b/profiles/misc/crbug_1017960_19.icc.txt
index 21ae4f3..475c658 100644
--- a/profiles/misc/crbug_1017960_19.icc.txt
+++ b/profiles/misc/crbug_1017960_19.icc.txt
@@ -29,13 +29,13 @@
 Best : 2.198663, 1.013107, -0.02007966, 0.09246967, 0.1333333, 0.00378418, 0 (D-gap: 5.86417e-05) (f(1) = 0.988472)
 Inv  : 0.4548219, 0.971817, -0.00367753, 10.81436, 0.01232929, 0.01985931, -0 (D-gap: -0.000332966) (f(1) = 1.00521)
 Best Error: | 0.0450786 0.0138438 0.154441 |
- XYZ : | 0.3805542 0.434021 0.14962769 |
-       | 0.21951294 0.68196106 0.098526 |
-       | 0.04006958 0.088272095 0.6965637 |
-CHAD : | 1.0478821 0.022918701 -0.050201416 |
-       | 0.029571533 0.9904938 -0.017059326 |
-       | -0.009231567 0.015075684 0.75164795 |
-WTPT : | 0.95047 1 1.0890961 |
+ XYZ : | 0.380554 0.43402 0.1496276 |
+       | 0.2195129 0.6819610 0.09852 |
+       | 0.0400695 0.08827209 0.696563 |
+CHAD : | 1.047882 0.02291870 -0.05020141 |
+       | 0.02957153 0.990493 -0.01705932 |
+       | -0.00923156 0.01507568 0.7516479 |
+WTPT : | 0.9504 1 1.089096 |
 252 random bytes transformed to linear XYZD50 bytes:
 	3f564a a3cb20 4b5e1b 1b124c 23186f 52430d 578330
 	68404e 191519 68493e 9e9c1a 4a580d 364642 442fad
diff --git a/profiles/misc/crbug_976551.icc.txt b/profiles/misc/crbug_976551.icc.txt
index 2e7d10b..2af4050 100644
--- a/profiles/misc/crbug_976551.icc.txt
+++ b/profiles/misc/crbug_976551.icc.txt
@@ -29,13 +29,13 @@
 Best : 1.444059, 1.080429, -0.06959254, 0.09840215, 0.07722384, 0.005664825, 0 (D-gap: 0.000134651) (f(1) = 1.0213)
 Inv  : 0.6924927, 0.8943901, -0.005066564, 10.16238, 0.007598992, 0.06447601, -0 (D-gap: -0.000520892) (f(1) = 0.986366)
 Best Error: | 0.0190027 0.01756 0.0213387 |
- XYZ : | 0.512558 0.29548645 0.15614319 |
-       | 0.24029541 0.7005768 0.059127808 |
-       | -0.0010375977 0.042297363 0.7836609 |
-CHAD : | 1.0486145 0.02331543 -0.050338745 |
-       | 0.030181885 0.99002075 -0.01713562 |
-       | -0.009216309 0.015029907 0.75172424 |
-WTPT : | 0.94955444 1 1.0890198 |
+ XYZ : | 0.51255 0.2954864 0.1561431 |
+       | 0.2402954 0.700576 0.05912780 |
+       | -0.001037597 0.04229736 0.783660 |
+CHAD : | 1.048614 0.0233154 -0.05033874 |
+       | 0.03018188 0.9900207 -0.0171356 |
+       | -0.00921630 0.01502990 0.7517242 |
+WTPT : | 0.9495544 1 1.089019 |
 252 random bytes transformed to linear XYZD50 bytes:
 	396c49 a7dc10 60831b 2f184c 341c6a 7a6306 459331
 	894847 342b1f 8d5f3b b0b70b 657d06 385e43 6339a5
diff --git a/profiles/misc/sRGB_Calibrated_Heterogeneous.icc.txt b/profiles/misc/sRGB_Calibrated_Heterogeneous.icc.txt
index 3893e0e..e06c2b2 100644
--- a/profiles/misc/sRGB_Calibrated_Heterogeneous.icc.txt
+++ b/profiles/misc/sRGB_Calibrated_Heterogeneous.icc.txt
@@ -24,10 +24,10 @@
 Best : 2.231967, 1.004677, -0.00411076, 0.01206226, 0.03921569, -9.918213e-05, 0 (D-gap: 9.16654e-07) (f(1) = 1.00115)
 Inv  : 0.4480354, 0.989666, 9.815718e-05, 82.90323, 0.0004730297, 0.004089355, -0 (D-gap: -3.39784e-05) (f(1) = 0.999481)
 Best Error: | 0.00580043 0.00582463 0.00695762 |
- XYZ : | 0.4492798 0.38258362 0.13233948 |
-       | 0.22447205 0.7223511 0.05317688 |
-       | 0.0011291504 0.05355835 0.7702179 |
-WTPT : | 0.9642029 1 0.8249054 |
+ XYZ : | 0.449279 0.3825836 0.1323394 |
+       | 0.2244720 0.722351 0.0531768 |
+       | 0.001129150 0.0535583 0.770217 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	34572f a6d810 4c6710 180c31 1c0f4d 604904 4c8a1f
 	6e3a2c 1b160f 704723 a5a60a 4e6006 2c452a 422497
diff --git a/profiles/misc/sRGB_Calibrated_Homogeneous.icc.txt b/profiles/misc/sRGB_Calibrated_Homogeneous.icc.txt
index d485d75..1acad69 100644
--- a/profiles/misc/sRGB_Calibrated_Homogeneous.icc.txt
+++ b/profiles/misc/sRGB_Calibrated_Homogeneous.icc.txt
@@ -25,10 +25,10 @@
 Best : 2.41034, 0.9454765, 0.05625459, 0.0774319, 0.03921569, -4.577637e-05, 0 (D-gap: 0.000209285) (f(1) = 1.00411)
 Inv  : 0.4148793, 1.144882, 5.240855e-05, 12.91457, 0.003036545, -0.05947113, -0 (D-gap: -0.00262654) (f(1) = 0.998199)
 Best Error: | 0.00262654 0.00262654 0.00262654 |
- XYZ : | 0.43547058 0.3885498 0.14019775 |
-       | 0.22172546 0.7219696 0.05630493 |
-       | 0.0134887695 0.08792114 0.7234802 |
-WTPT : | 0.9505005 1 1.0890045 |
+ XYZ : | 0.4354705 0.388549 0.1401977 |
+       | 0.2217254 0.721969 0.0563049 |
+       | 0.013488769 0.0879211 0.723480 |
+WTPT : | 0.950500 1 1.089004 |
 252 random bytes transformed to linear XYZD50 bytes:
 	355733 a6d91c 4d6817 1a0e30 1e114b 5f4909 4e8b26
 	6c3b2f 1d1812 6e4826 a3a513 4e600b 2e452c 442690
diff --git a/profiles/misc/sRGB_HP.icc.txt b/profiles/misc/sRGB_HP.icc.txt
index 77c5a77..c542596 100644
--- a/profiles/misc/sRGB_HP.icc.txt
+++ b/profiles/misc/sRGB_HP.icc.txt
@@ -33,10 +33,10 @@
 Best : 2.395543, 0.9495392, 0.04946931, 0.07771055, 0.04496579, 0.0003471375, 0 (D-gap: 0.000160849) (f(1) = 0.997971) (~sRGB)
 Inv  : 0.4174418, 1.132225, -0.0003930377, 12.86827, 0.003494316, -0.05207062, -0 (D-gap: -0.00197129) (f(1) = 1.0009)
 Best Error: | 0.00197129 0.00197129 0.00197129 |
- XYZ : | 0.43606567 0.3851471 0.1430664 |
-       | 0.2224884 0.71687317 0.06060791 |
-       | 0.013916016 0.097076416 0.71409607 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.4360656 0.385147 0.143066 |
+       | 0.222488 0.7168731 0.0606079 |
+       | 0.01391601 0.09707641 0.7140960 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	345632 a4d61e 4c6617 190e2f 1e1149 5e4809 4d8927
 	6c3b2e 1c1711 6e4726 a1a315 4d5f0c 2d442c 44268d
diff --git a/profiles/misc/sRGB_HP_2.icc.txt b/profiles/misc/sRGB_HP_2.icc.txt
index 2244c9f..9a9715a 100644
--- a/profiles/misc/sRGB_HP_2.icc.txt
+++ b/profiles/misc/sRGB_HP_2.icc.txt
@@ -33,10 +33,10 @@
 Best : 2.395543, 0.9495392, 0.04946931, 0.07771055, 0.04496579, 0.0003471375, 0 (D-gap: 0.000160849) (f(1) = 0.997971) (~sRGB)
 Inv  : 0.4174418, 1.132225, -0.0003930377, 12.86827, 0.003494316, -0.05207062, -0 (D-gap: -0.00197129) (f(1) = 1.0009)
 Best Error: | 0.00197129 0.00197129 0.00197129 |
- XYZ : | 0.43606567 0.3851471 0.1430664 |
-       | 0.2224884 0.71687317 0.06060791 |
-       | 0.013916016 0.097076416 0.71409607 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.4360656 0.385147 0.143066 |
+       | 0.222488 0.7168731 0.0606079 |
+       | 0.01391601 0.09707641 0.7140960 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	345632 a4d61e 4c6617 190e2f 1e1149 5e4809 4d8927
 	6c3b2e 1c1711 6e4726 a1a315 4d5f0c 2d442c 44268d
diff --git a/profiles/misc/sRGB_ICC_v4_beta.icc.txt b/profiles/misc/sRGB_ICC_v4_beta.icc.txt
index 7a68b6d..83cc5fd 100644
--- a/profiles/misc/sRGB_ICC_v4_beta.icc.txt
+++ b/profiles/misc/sRGB_ICC_v4_beta.icc.txt
@@ -32,10 +32,10 @@
   B0 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B1 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
   B2 : 1, 1, 0, 0, 0, 0, 0 (f(1) = 1) (~Identity)
-CHAD : | 1.0479126 0.02293396 -0.050201416 |
-       | 0.02960205 0.99046326 -0.017074585 |
-       | -0.009246826 0.015060425 0.7517853 |
-WTPT : | 0.9642029 1 0.8249054 |
+CHAD : | 1.047912 0.0229339 -0.05020141 |
+       | 0.0296020 0.9904632 -0.01707458 |
+       | -0.00924682 0.01506042 0.751785 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	2f4e2d 92c11a 486216 190e2f 1d1048 5c4609 3e711e
 	653727 1d1711 6b4623 9c9b13 4a5b0b 2b4229 3a2375
diff --git a/profiles/misc/sRGB_black_scaled.icc.txt b/profiles/misc/sRGB_black_scaled.icc.txt
index 31aafa9..534d281 100644
--- a/profiles/misc/sRGB_black_scaled.icc.txt
+++ b/profiles/misc/sRGB_black_scaled.icc.txt
@@ -32,13 +32,13 @@
 Best : 2.395543, 0.9495392, 0.04946931, 0.07771055, 0.04496579, 0.0003471375, 0 (D-gap: 0.000160849) (f(1) = 0.997971) (~sRGB)
 Inv  : 0.4174418, 1.132225, -0.0003930377, 12.86827, 0.003494316, -0.05207062, -0 (D-gap: -0.00197129) (f(1) = 1.0009)
 Best Error: | 0.00197129 0.00197129 0.00197129 |
- XYZ : | 0.43606567 0.3851471 0.1430664 |
-       | 0.2224884 0.71687317 0.06060791 |
-       | 0.013916016 0.097076416 0.71409607 |
-CHAD : | 1.0479126 0.02293396 -0.050201416 |
-       | 0.02960205 0.99046326 -0.017074585 |
-       | -0.009246826 0.015060425 0.7517853 |
-WTPT : | 0.9642029 1 0.8249054 |
+ XYZ : | 0.4360656 0.385147 0.143066 |
+       | 0.222488 0.7168731 0.0606079 |
+       | 0.01391601 0.09707641 0.7140960 |
+CHAD : | 1.047912 0.0229339 -0.05020141 |
+       | 0.0296020 0.9904632 -0.01707458 |
+       | -0.00924682 0.01506042 0.751785 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	345632 a4d61e 4c6617 190e2f 1e1149 5e4809 4d8927
 	6c3b2e 1c1711 6e4726 a1a315 4d5f0c 2d442c 44268d
diff --git a/profiles/misc/sRGB_lcms.icc.txt b/profiles/misc/sRGB_lcms.icc.txt
index 654a897..f7eb4c2 100644
--- a/profiles/misc/sRGB_lcms.icc.txt
+++ b/profiles/misc/sRGB_lcms.icc.txt
@@ -24,13 +24,13 @@
 Best : 2.399994, 0.9478607, 0.05213928, 0.07739258, 0.04045105, 0, 0 (D-gap: 8.08388e-07) (f(1) = 1) (~sRGB)
 Inv  : 0.4166677, 1.137306, -0, 12.92114, 0.003130611, -0.05498505, -0 (D-gap: 1.33514e-05) (f(1) = 1)
 Best Error: | 8.2612e-05 8.2612e-05 8.2612e-05 |
- XYZ : | 0.43585205 0.3853302 0.14302063 |
-       | 0.22238159 0.717041 0.06059265 |
-       | 0.013916016 0.09713745 0.71383667 |
-CHAD : | 1.0480042 0.022994995 -0.05014038 |
-       | 0.029708862 0.9903412 -0.017059326 |
-       | -0.009231567 0.015014648 0.7522583 |
-WTPT : | 0.9642029 1 0.8249054 |
+ XYZ : | 0.4358520 0.385330 0.1430206 |
+       | 0.2223815 0.71704 0.0605926 |
+       | 0.01391601 0.0971374 0.7138366 |
+CHAD : | 1.048004 0.02299499 -0.0501403 |
+       | 0.02970886 0.990341 -0.01705932 |
+       | -0.00923156 0.01501464 0.752258 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	345632 a4d61e 4c6617 190e2f 1e1149 5e4809 4d8927
 	6c3b2e 1c1711 6e4726 a1a315 4d5f0c 2d442c 44268d
diff --git a/profiles/mobile/Display_P3_LUT.icc.txt b/profiles/mobile/Display_P3_LUT.icc.txt
index b8440f4..4128bc2 100644
--- a/profiles/mobile/Display_P3_LUT.icc.txt
+++ b/profiles/mobile/Display_P3_LUT.icc.txt
@@ -27,13 +27,13 @@
 Best : 2.395543, 0.9495392, 0.04946931, 0.07771055, 0.04496579, 0.0003471375, 0 (D-gap: 0.000160849) (f(1) = 0.997971) (~sRGB)
 Inv  : 0.4174418, 1.132225, -0.0003930377, 12.86827, 0.003494316, -0.05207062, -0 (D-gap: -0.00197129) (f(1) = 1.0009)
 Best Error: | 0.00197129 0.00197129 0.00197129 |
- XYZ : | 0.51512146 0.29197693 0.15710449 |
-       | 0.24119568 0.6922455 0.0665741 |
-       | -0.0010375977 0.041885376 0.7840729 |
-CHAD : | 1.0478821 0.022918701 -0.050186157 |
-       | 0.029586792 0.9904785 -0.017044067 |
-       | -0.009216309 0.015075684 0.75167847 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.5151214 0.2919769 0.1571044 |
+       | 0.2411956 0.692245 0.066574 |
+       | -0.001037597 0.04188537 0.784072 |
+CHAD : | 1.047882 0.02291870 -0.05018615 |
+       | 0.02958679 0.990478 -0.01704406 |
+       | -0.00921630 0.01507568 0.7516784 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	2b5330 99d30e 456411 1d0f33 221250 674b04 3c841f
 	7d3f2e 1e1811 7c4b24 a5a409 4a5e05 26432b 4c2998
diff --git a/profiles/mobile/Display_P3_parametric.icc.txt b/profiles/mobile/Display_P3_parametric.icc.txt
index 8d44193..efbdada 100644
--- a/profiles/mobile/Display_P3_parametric.icc.txt
+++ b/profiles/mobile/Display_P3_parametric.icc.txt
@@ -24,13 +24,13 @@
 Best : 2.399994, 0.9478607, 0.05213928, 0.07739258, 0.04045105, 0, 0 (D-gap: 8.08388e-07) (f(1) = 1) (~sRGB)
 Inv  : 0.4166677, 1.137306, -0, 12.92114, 0.003130611, -0.05498505, -0 (D-gap: 1.33514e-05) (f(1) = 1)
 Best Error: | 8.2612e-05 8.2612e-05 8.2612e-05 |
- XYZ : | 0.51512146 0.29197693 0.15710449 |
-       | 0.24119568 0.6922455 0.0665741 |
-       | -0.0010375977 0.041885376 0.7840729 |
-CHAD : | 1.0478821 0.022918701 -0.050186157 |
-       | 0.029586792 0.9904785 -0.017044067 |
-       | -0.009216309 0.015075684 0.75167847 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.5151214 0.2919769 0.1571044 |
+       | 0.2411956 0.692245 0.066574 |
+       | -0.001037597 0.04188537 0.784072 |
+CHAD : | 1.047882 0.02291870 -0.05018615 |
+       | 0.02958679 0.990478 -0.01704406 |
+       | -0.00921630 0.01507568 0.7516784 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	2b5330 99d30e 456411 1d0f33 221250 674b04 3c841f
 	7d3f2e 1e1811 7c4b24 a5a409 4a5e05 26432b 4c2998
diff --git a/profiles/mobile/iPhone7p.icc.txt b/profiles/mobile/iPhone7p.icc.txt
index b144521..75c5714 100644
--- a/profiles/mobile/iPhone7p.icc.txt
+++ b/profiles/mobile/iPhone7p.icc.txt
@@ -23,13 +23,13 @@
 Best : 2.399994, 0.947998, 0.05200195, 0.07699585, 0.03900146, 0, 0 (D-gap: 4.87827e-06) (f(1) = 1) (~sRGB)
 Inv  : 0.4166677, 1.136909, -0, 12.98771, 0.003002951, -0.05482483, -0 (D-gap: -3.19481e-05) (f(1) = 1)
 Best Error: | 7.4923e-05 7.4923e-05 7.4923e-05 |
- XYZ : | 0.51512146 0.29197693 0.15710449 |
-       | 0.24119568 0.6922455 0.0665741 |
-       | -0.0010528564 0.041885376 0.7840729 |
-CHAD : | 1.0478821 0.022918701 -0.050201416 |
-       | 0.029586792 0.9904785 -0.017059326 |
-       | -0.009231567 0.015075684 0.75167847 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.5151214 0.2919769 0.1571044 |
+       | 0.2411956 0.692245 0.066574 |
+       | -0.001052856 0.04188537 0.784072 |
+CHAD : | 1.047882 0.02291870 -0.05020141 |
+       | 0.02958679 0.990478 -0.01705932 |
+       | -0.00923156 0.01507568 0.7516784 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	2b5330 99d30e 456411 1d0f33 22124f 674b04 3c841f
 	7d3f2e 1e1811 7c4b24 a5a409 4a5e05 26432b 4c2998
diff --git a/profiles/mobile/sRGB_LUT.icc.txt b/profiles/mobile/sRGB_LUT.icc.txt
index 6cc0ecc..1b6db14 100644
--- a/profiles/mobile/sRGB_LUT.icc.txt
+++ b/profiles/mobile/sRGB_LUT.icc.txt
@@ -27,13 +27,13 @@
 Best : 2.395543, 0.9495392, 0.04946931, 0.07771055, 0.04496579, 0.0003471375, 0 (D-gap: 0.000160849) (f(1) = 0.997971) (~sRGB)
 Inv  : 0.4174418, 1.132225, -0.0003930377, 12.86827, 0.003494316, -0.05207062, -0 (D-gap: -0.00197129) (f(1) = 1.0009)
 Best Error: | 0.00197129 0.00197129 0.00197129 |
- XYZ : | 0.43603516 0.38511658 0.14305115 |
-       | 0.2224884 0.7169037 0.06060791 |
-       | 0.013916016 0.09706116 0.71391296 |
-CHAD : | 1.0478821 0.022918701 -0.050186157 |
-       | 0.029586792 0.9904785 -0.017044067 |
-       | -0.009216309 0.015075684 0.75167847 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.4360351 0.3851165 0.1430511 |
+       | 0.222488 0.716903 0.0606079 |
+       | 0.01391601 0.0970611 0.7139129 |
+CHAD : | 1.047882 0.02291870 -0.05018615 |
+       | 0.02958679 0.990478 -0.01704406 |
+       | -0.00921630 0.01507568 0.7516784 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	345632 a4d61e 4c6617 190e2f 1e1149 5e4809 4d8927
 	6c3b2e 1c1711 6e4726 a1a315 4d5f0c 2d442c 44268d
diff --git a/profiles/mobile/sRGB_parametric.icc.txt b/profiles/mobile/sRGB_parametric.icc.txt
index f2ede7e..1d3d65e 100644
--- a/profiles/mobile/sRGB_parametric.icc.txt
+++ b/profiles/mobile/sRGB_parametric.icc.txt
@@ -24,13 +24,13 @@
 Best : 2.399994, 0.9478607, 0.05213928, 0.07739258, 0.04045105, 0, 0 (D-gap: 8.08388e-07) (f(1) = 1) (~sRGB)
 Inv  : 0.4166677, 1.137306, -0, 12.92114, 0.003130611, -0.05498505, -0 (D-gap: 1.33514e-05) (f(1) = 1)
 Best Error: | 8.2612e-05 8.2612e-05 8.2612e-05 |
- XYZ : | 0.43603516 0.38511658 0.14305115 |
-       | 0.2224884 0.7169037 0.06060791 |
-       | 0.013916016 0.09706116 0.71391296 |
-CHAD : | 1.0478821 0.022918701 -0.050186157 |
-       | 0.029586792 0.9904785 -0.017044067 |
-       | -0.009216309 0.015075684 0.75167847 |
-WTPT : | 0.9504547 1 1.0890503 |
+ XYZ : | 0.4360351 0.3851165 0.1430511 |
+       | 0.222488 0.716903 0.0606079 |
+       | 0.01391601 0.0970611 0.7139129 |
+CHAD : | 1.047882 0.02291870 -0.05018615 |
+       | 0.02958679 0.990478 -0.01704406 |
+       | -0.00921630 0.01507568 0.7516784 |
+WTPT : | 0.950454 1 1.089050 |
 252 random bytes transformed to linear XYZD50 bytes:
 	345632 a4d61e 4c6617 190e2f 1e1149 5e4809 4d8927
 	6c3b2e 1c1711 6e4726 a1a315 4d5f0c 2d442c 44268d
diff --git a/profiles/sRGB_Facebook.icc.txt b/profiles/sRGB_Facebook.icc.txt
index 538878f..bdaef5b 100644
--- a/profiles/sRGB_Facebook.icc.txt
+++ b/profiles/sRGB_Facebook.icc.txt
@@ -26,10 +26,10 @@
 Best : 2.387424, 0.9516296, 0.04789746, 0.07743954, 0.04, 0.0003929138, 0 (D-gap: 0.000151274) (f(1) = 0.999268) (~sRGB)
 Inv  : 0.4188614, 1.125809, -0.0004423458, 12.9133, 0.003097581, -0.05030823, -0 (D-gap: -0.00200752) (f(1) = 1.00032)
 Best Error: | 0.00184847 0.00184847 0.00184847 |
- XYZ : | 0.43606567 0.3851471 0.1430664 |
-       | 0.2224884 0.71687317 0.06060791 |
-       | 0.013916016 0.097076416 0.71409607 |
-WTPT : | 0.9642029 1 0.8249054 |
+ XYZ : | 0.4360656 0.385147 0.143066 |
+       | 0.222488 0.7168731 0.0606079 |
+       | 0.01391601 0.09707641 0.7140960 |
+WTPT : | 0.964202 1 0.824905 |
 252 random bytes transformed to linear XYZD50 bytes:
 	345633 a4d61e 4c6617 190e2f 1e1149 5e4809 4d8927
 	6c3b2e 1c1711 6e4726 a1a315 4d5f0c 2d442c 44268d
diff --git a/test_only.c b/test_only.c
index bda718f..08c12f1 100644
--- a/test_only.c
+++ b/test_only.c
@@ -17,15 +17,29 @@
 
 static void print_shortest_float(FILE* fp, float x) {
     char buf[80];
-    int digits;
-    for (digits = 0; digits < 12; digits++) {
-        snprintf(buf, sizeof(buf), "%.*f", digits, x);
+    int chars = 0;
+    for (int digits = 0; digits < 12; digits++) {
+        chars = snprintf(buf, sizeof(buf), "%.*f", digits, x);
         float back;
         if (1 != sscanf(buf, "%f", &back) || back == x) {
             break;
         }
     }
-    fprintf(fp, "%.*f", digits, x);
+
+    // We've found the smallest number of digits that roundtrips our float.
+    // That'd be the ideal thing to print, but sadly fprintf() rounding is
+    // implementation specific, so results vary in the last digit.
+    //
+    // We compromise by dropping that last digit.
+    //
+    // E.g. glibc prints 0x1.7p-6 == 0x3cb80000 as 0.022460938 in 11 digits,
+    // while newlib prints as 0.022460937.  We print 0.02246094.
+
+    bool is_fractional = NULL != strchr(buf, '.');
+    if (is_fractional) {
+        chars--;
+    }
+    fprintf(fp, "%.*s", chars, buf);
 }
 
 static void dump_transform_to_XYZD50(FILE* fp,