#define DEGREES_PER_RADIAN (180 / 3.14159265358979323846)
#define RADIANS_PER_DEGREE (1 / DEGREES_PER_RADIAN)
+#define DEGREES_PER_RADIANf (180 / 3.14159265358979323846f)
+#define RADIANS_PER_DEGREEf (1 / DEGREES_PER_RADIANf)
-#define LAB_EPSILON (216.0f / 24389.0f)
-#define LAB_KAPPA (24389.0f / 27.0f)
+#define LAB_EPSILON (216.0 / 24389.0)
+#define LAB_EPSILONf (216.0f / 24389.0f)
+#define LAB_KAPPA (24389.0 / 27.0)
+#define LAB_KAPPAf (24389.0f / 27.0f)
/* The constants below hard-code the D50-adapted sRGB ICC profile
* reference white, aka the ICC profile D50 illuminant.
* hard-coded D50 ICC profile illuminant values:
*/
-#define D50_WHITE_REF_X 0.964202880f
-#define D50_WHITE_REF_Y 1.000000000f
-#define D50_WHITE_REF_Z 0.824905400f
+#define D50_WHITE_REF_X 0.964202880
+#define D50_WHITE_REF_Y 1.000000000
+#define D50_WHITE_REF_Z 0.824905400
-#define NEAR_ZERO 0.0000000001f
+#define D50_WHITE_REF_Xf 0.964202880f
+#define D50_WHITE_REF_Yf 1.000000000f
+#define D50_WHITE_REF_Zf 0.824905400f
+
+#define NEAR_ZERO 0.0000000001
+#define NEAR_ZEROf 0.0000000001f
#define near_zero(a) ((a) < NEAR_ZERO && (a) > -NEAR_ZERO)
+#define near_zerof(a) ((a) < NEAR_ZEROf && (a) > -NEAR_ZEROf)
#define D50_WHITE_REF_x 0.345702921222f
#define D50_WHITE_REF_y 0.358537532290f
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long n = samples;
while (n--)
b = src[2];
a = src[3];
- if (near_zero(r) && near_zero(g) && near_zero(b))
+ if (near_zerof(r) && near_zerof(g) && near_zerof(b))
{
Y = 0.0f;
x = D50_WHITE_REF_x;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long n = samples;
while (n--)
g = src[1];
b = src[2];
- if (near_zero(r) && near_zero(g) && near_zero(b))
+ if (near_zerof(r) && near_zerof(g) && near_zerof(b))
{
Y = 0.0f;
x = D50_WHITE_REF_x;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long n = samples;
while (n--)
g = src[1];
b = src[2];
- if (near_zero(r) && near_zero(g) && near_zero(b))
+ if (near_zerof(r) && near_zerof(g) && near_zerof(b))
{
Y = 0.0f;
x = D50_WHITE_REF_x;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long n = samples;
while (n--)
b = src[2];
a = src[3];
- if (near_zero(r) && near_zero(g) && near_zero(b))
+ if (near_zerof(r) && near_zerof(g) && near_zerof(b))
{
Y = 0.0f;
- u = 4.0/19.0;
- v = 9.0/19.0;
+ u = 4.0f/19.0f;
+ v = 9.0f/19.0f;
}
else
{
Y = m_1_0 * r + m_1_1 * g + m_1_2 * b;
Z = m_2_0 * r + m_2_1 * g + m_2_2 * b;
- sum = (X + 15.0 * Y + 3.0 * Z);
- u = (4.0 * X) / sum;
- v = (9.0 * Y) / sum;
+ sum = (X + 15.0f * Y + 3.0f * Z);
+ u = (4.0f * X) / sum;
+ v = (9.0f * Y) / sum;
}
dst[0] = Y;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long n = samples;
while (n--)
g = src[1];
b = src[2];
- if (near_zero(r) && near_zero(g) && near_zero(b))
+ if (near_zerof(r) && near_zerof(g) && near_zerof(b))
{
Y = 0.0f;
u = 4.0/19.0;
Y = m_1_0 * r + m_1_1 * g + m_1_2 * b;
Z = m_2_0 * r + m_2_1 * g + m_2_2 * b;
- sum = (X + 15.0 * Y + 3.0 * Z);
- u = (4.0 * X) / sum;
- v = (9.0 * Y) / sum;
+ sum = (X + 15.0f * Y + 3.0f * Z);
+ u = (4.0f * X) / sum;
+ v = (9.0f * Y) / sum;
}
dst[0] = Y;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long n = samples;
while (n--)
g = src[1];
b = src[2];
- if (near_zero(r) && near_zero(g) && near_zero(b))
+ if (near_zerof(r) && near_zerof(g) && near_zerof(b))
{
Y = 0.0f;
- u = 4.0/19.0;
- v = 9.0/19.0;
+ u = 4.0f/19.0f;
+ v = 9.0f/19.0f;
}
else
{
Y = m_1_0 * r + m_1_1 * g + m_1_2 * b;
Z = m_2_0 * r + m_2_1 * g + m_2_2 * b;
- sum = (X + 15.0 * Y + 3.0 * Z);
- u = (4.0 * X) / sum;
- v = (9.0 * Y) / sum;
+ sum = (X + 15.0f * Y + 3.0f * Z);
+ u = (4.0f * X) / sum;
+ v = (9.0f * Y) / sum;
}
dst[0] = Y;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
- float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
- float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
- float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
- float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
- float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
- float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
- float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
- float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Yf;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Zf;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_Xf;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Zf;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_Xf;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Yf;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float y = src[1];
float Y = src[2];
- if (near_zero (y))
+ if (near_zerof (y))
{
X = 0.0f;
Y = 0.0f;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
- float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
- float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
- float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
- float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
- float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
- float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
- float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
- float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Yf;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Zf;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_Xf;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Zf;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_Xf;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Yf;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float Y = src[2];
- if (near_zero (Y))
+ if (near_zerof (Y))
{
X = 0.0f;
Y = 0.0f;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
- float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
- float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
- float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
- float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
- float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
- float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
- float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
- float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Yf;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Zf;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_Xf;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Zf;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_Xf;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Yf;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float Y = src[2];
float a = src[3];
- if (near_zero (Y))
+ if (near_zerof (Y))
{
X = 0.0f;
Y = 0.0f;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
- float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
- float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
- float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
- float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
- float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
- float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
- float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
- float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Yf;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Zf;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_Xf;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Zf;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_Xf;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Yf;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float u = src[1];
float v = src[2];
- if (near_zero (v))
+ if (near_zerof (v))
{
X = 0.0f;
Y = 0.0f;
}
else
{
- X = ((9.0 * u * Y)/(4.0 * v));
+ X = ((9.0f * u * Y)/(4.0f * v));
//Y = Y;
- Z = -(((20.0 * v + 3.0 * u - 12.0) * Y)/(4.0 * v));
+ Z = -(((20.0f * v + 3.0f * u - 12.0f) * Y)/(4.0f * v));
}
r = m_0_0 * X + m_0_1 * Y + m_0_2 * Z;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
- float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
- float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
- float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
- float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
- float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
- float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
- float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
- float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Yf;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Zf;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_Xf;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Zf;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_Xf;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Yf;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float u = src[1];
float v = src[2];
- if (near_zero (v))
+ if (near_zerof (v))
{
X = 0.0f;
Y = 0.0f;
}
else
{
- X = ((9.0 * u * Y)/(4.0 * v));
+ X = ((9.0f * u * Y)/(4.0f * v));
//Y = Y;
- Z = -(((20.0 * v + 3.0 * u - 12.0) * Y)/(4.0 * v));
+ Z = -(((20.0f * v + 3.0f * u - 12.0f) * Y)/(4.0f * v));
}
r = m_0_0 * X + m_0_1 * Y + m_0_2 * Z;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
- float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
- float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
- float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
- float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
- float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
- float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
- float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
- float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Yf;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Zf;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_Xf;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Zf;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_Xf;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Yf;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float v = src[2];
float a = src[3];
- if (near_zero (v))
+ if (near_zerof (v))
{
X = 0.0f;
Y = 0.0f;
}
else
{
- X = ((9.0 * u * Y)/(4.0 * v));
+ X = ((9.0f * u * Y)/(4.0f * v));
//Y = Y;
- Z = -(((20.0 * v + 3.0 * u - 12.0) * Y)/(4.0 * v));
+ Z = -(((20.0f * v + 3.0f * u - 12.0f) * Y)/(4.0f * v));
}
r = m_0_0 * X + m_0_1 * Y + m_0_2 * Z;
while (n--)
{
float yr = src[0];
- float L = yr > LAB_EPSILON ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPA * yr;
+ float L = yr > LAB_EPSILONf ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPAf * yr;
dst[0] = L;
while (n--)
{
float yr = src[0];
- float L = yr > LAB_EPSILON ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPA * yr;
+ float L = yr > LAB_EPSILONf ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPAf * yr;
dst[0] = L;
{
float yr = src[0];
float a = src[1];
- float L = yr > LAB_EPSILON ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPA * yr;
+ float L = yr > LAB_EPSILONf ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPAf * yr;
dst[0] = L;
dst[1] = a;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
float zr = m_2_0 * r + m_2_1 * g + m_2_2 * b;
- float fx = xr > LAB_EPSILON ? _cbrtf (xr) : (LAB_KAPPA * xr + 16.0f) / 116.0f;
- float fy = yr > LAB_EPSILON ? _cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
- float fz = zr > LAB_EPSILON ? _cbrtf (zr) : (LAB_KAPPA * zr + 16.0f) / 116.0f;
+ float fx = xr > LAB_EPSILONf ? _cbrtf (xr) : (LAB_KAPPAf * xr + 16.0f) / 116.0f;
+ float fy = yr > LAB_EPSILONf ? _cbrtf (yr) : (LAB_KAPPAf * yr + 16.0f) / 116.0f;
+ float fz = zr > LAB_EPSILONf ? _cbrtf (zr) : (LAB_KAPPAf * zr + 16.0f) / 116.0f;
float L = 116.0f * fy - 16.0f;
float A = 500.0f * (fx - fy);
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
long n = samples;
while (n--)
float b = src[2];
float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
- float L = yr > LAB_EPSILON ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPA * yr;
+ float L = yr > LAB_EPSILONf ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPAf * yr;
dst[0] = L;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
float zr = m_2_0 * r + m_2_1 * g + m_2_2 * b;
- float fx = xr > LAB_EPSILON ? _cbrtf (xr) : (LAB_KAPPA * xr + 16.0f) / 116.0f;
- float fy = yr > LAB_EPSILON ? _cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
- float fz = zr > LAB_EPSILON ? _cbrtf (zr) : (LAB_KAPPA * zr + 16.0f) / 116.0f;
+ float fx = xr > LAB_EPSILONf ? _cbrtf (xr) : (LAB_KAPPAf * xr + 16.0f) / 116.0f;
+ float fy = yr > LAB_EPSILONf ? _cbrtf (yr) : (LAB_KAPPAf * yr + 16.0f) / 116.0f;
+ float fz = zr > LAB_EPSILONf ? _cbrtf (zr) : (LAB_KAPPAf * zr + 16.0f) / 116.0f;
float L = 116.0f * fy - 16.0f;
float A = 500.0f * (fx - fy);
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
float zr = m_2_0 * r + m_2_1 * g + m_2_2 * b;
- float fx = xr > LAB_EPSILON ? _cbrtf (xr) : (LAB_KAPPA * xr + 16.0f) / 116.0f;
- float fy = yr > LAB_EPSILON ? _cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
- float fz = zr > LAB_EPSILON ? _cbrtf (zr) : (LAB_KAPPA * zr + 16.0f) / 116.0f;
+ float fx = xr > LAB_EPSILONf ? _cbrtf (xr) : (LAB_KAPPAf * xr + 16.0f) / 116.0f;
+ float fy = yr > LAB_EPSILONf ? _cbrtf (yr) : (LAB_KAPPAf * yr + 16.0f) / 116.0f;
+ float fz = zr > LAB_EPSILONf ? _cbrtf (zr) : (LAB_KAPPAf * zr + 16.0f) / 116.0f;
float L = 116.0f * fy - 16.0f;
float A = 500.0f * (fx - fy);
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
- float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
- float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
- float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
- float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
- float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
- float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
- float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
- float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Yf;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Zf;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_Xf;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Zf;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_Xf;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Yf;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float fx = fy + A / 500.0f;
float fz = fy - B / 200.0f;
- float yr = L > LAB_KAPPA * LAB_EPSILON ? cubef (fy) : L / LAB_KAPPA;
- float xr = cubef (fx) > LAB_EPSILON ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPA;
- float zr = cubef (fz) > LAB_EPSILON ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPA;
+ float yr = L > LAB_KAPPAf * LAB_EPSILONf ? cubef (fy) : L / LAB_KAPPAf;
+ float xr = cubef (fx) > LAB_EPSILONf ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPAf;
+ float zr = cubef (fz) > LAB_EPSILONf ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPAf;
float r = m_0_0 * xr + m_0_1 * yr + m_0_2 * zr;
float g = m_1_0 * xr + m_1_1 * yr + m_1_2 * zr;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
- float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
- float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
- float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
- float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
- float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
- float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
- float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
- float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Yf;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Zf;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_Xf;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Zf;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_Xf;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Yf;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float fx = fy + A / 500.0f;
float fz = fy - B / 200.0f;
- float yr = L > LAB_KAPPA * LAB_EPSILON ? cubef (fy) : L / LAB_KAPPA;
- float xr = cubef (fx) > LAB_EPSILON ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPA;
- float zr = cubef (fz) > LAB_EPSILON ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPA;
+ float yr = L > LAB_KAPPAf * LAB_EPSILONf ? cubef (fy) : L / LAB_KAPPAf;
+ float xr = cubef (fx) > LAB_EPSILONf ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPAf;
+ float zr = cubef (fz) > LAB_EPSILONf ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPAf;
float r = m_0_0 * xr + m_0_1 * yr + m_0_2 * zr;
float g = m_1_0 * xr + m_1_1 * yr + m_1_2 * zr;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_X;
- float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Y;
- float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Z;
- float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_X;
- float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Y;
- float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Z;
- float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_X;
- float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Y;
- float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Z;
+ float m_0_0 = space->space.XYZtoRGBf[0] * D50_WHITE_REF_Xf;
+ float m_0_1 = space->space.XYZtoRGBf[1] * D50_WHITE_REF_Yf;
+ float m_0_2 = space->space.XYZtoRGBf[2] * D50_WHITE_REF_Zf;
+ float m_1_0 = space->space.XYZtoRGBf[3] * D50_WHITE_REF_Xf;
+ float m_1_1 = space->space.XYZtoRGBf[4] * D50_WHITE_REF_Yf;
+ float m_1_2 = space->space.XYZtoRGBf[5] * D50_WHITE_REF_Zf;
+ float m_2_0 = space->space.XYZtoRGBf[6] * D50_WHITE_REF_Xf;
+ float m_2_1 = space->space.XYZtoRGBf[7] * D50_WHITE_REF_Yf;
+ float m_2_2 = space->space.XYZtoRGBf[8] * D50_WHITE_REF_Zf;
long n = samples;
while (n--)
float fx = fy + A / 500.0f;
float fz = fy - B / 200.0f;
- float yr = L > LAB_KAPPA * LAB_EPSILON ? cubef (fy) : L / LAB_KAPPA;
- float xr = cubef (fx) > LAB_EPSILON ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPA;
- float zr = cubef (fz) > LAB_EPSILON ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPA;
+ float yr = L > LAB_KAPPAf * LAB_EPSILONf ? cubef (fy) : L / LAB_KAPPAf;
+ float xr = cubef (fx) > LAB_EPSILONf ? cubef (fx) : (fx * 116.0f - 16.0f) / LAB_KAPPAf;
+ float zr = cubef (fz) > LAB_EPSILONf ? cubef (fz) : (fz * 116.0f - 16.0f) / LAB_KAPPAf;
float r = m_0_0 * xr + m_0_1 * yr + m_0_2 * zr;
float g = m_1_0 * xr + m_1_1 * yr + m_1_2 * zr;
float B = src[2];
float C = sqrtf (A * A + B * B);
- float H = atan2f (B, A) * DEGREES_PER_RADIAN;
+ float H = atan2f (B, A) * DEGREES_PER_RADIANf;
// Keep H within the range 0-360
if (H < 0.0f)
float C = src[1];
float H = src[2];
- float A = C * cosf (H * RADIANS_PER_DEGREE);
- float B = C * sinf (H * RADIANS_PER_DEGREE);
+ float A = C * cosf (H * RADIANS_PER_DEGREEf);
+ float B = C * sinf (H * RADIANS_PER_DEGREEf);
dst[0] = L;
dst[1] = A;
float a = src[3];
float C = sqrtf (A * A + B * B);
- float H = atan2f (B, A) * DEGREES_PER_RADIAN;
+ float H = atan2f (B, A) * DEGREES_PER_RADIANf;
// Keep H within the range 0-360
if (H < 0.0f)
float H = src[2];
float a = src[3];
- float A = C * cosf (H * RADIANS_PER_DEGREE);
- float B = C * sinf (H * RADIANS_PER_DEGREE);
+ float A = C * cosf (H * RADIANS_PER_DEGREEf);
+ float B = C * sinf (H * RADIANS_PER_DEGREEf);
dst[0] = L;
dst[1] = A;
while (remainder--)
{
float yr = src[0];
- float L = yr > LAB_EPSILON ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPA * yr;
+ float L = yr > LAB_EPSILONf ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPAf * yr;
dst[0] = L;
while (remainder--)
{
float yr = src[0];
- float L = yr > LAB_EPSILON ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPA * yr;
+ float L = yr > LAB_EPSILONf ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPAf * yr;
dst[0] = L;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- const float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- const float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- const float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
+ const float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ const float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ const float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
long i = 0;
long remainder;
float b = src[2];
float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
- float L = yr > LAB_EPSILON ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPA * yr;
+ float L = yr > LAB_EPSILONf ? 116.0f * _cbrtf (yr) - 16 : LAB_KAPPAf * yr;
dst[0] = L;
long samples)
{
const Babl *space = babl_conversion_get_source_space (conversion);
- const float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_X;
- const float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_X;
- const float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_X;
- const float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Y;
- const float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Y;
- const float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Y;
- const float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Z;
- const float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Z;
- const float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Z;
+ const float m_0_0 = space->space.RGBtoXYZf[0] / D50_WHITE_REF_Xf;
+ const float m_0_1 = space->space.RGBtoXYZf[1] / D50_WHITE_REF_Xf;
+ const float m_0_2 = space->space.RGBtoXYZf[2] / D50_WHITE_REF_Xf;
+ const float m_1_0 = space->space.RGBtoXYZf[3] / D50_WHITE_REF_Yf;
+ const float m_1_1 = space->space.RGBtoXYZf[4] / D50_WHITE_REF_Yf;
+ const float m_1_2 = space->space.RGBtoXYZf[5] / D50_WHITE_REF_Yf;
+ const float m_2_0 = space->space.RGBtoXYZf[6] / D50_WHITE_REF_Zf;
+ const float m_2_1 = space->space.RGBtoXYZf[7] / D50_WHITE_REF_Zf;
+ const float m_2_2 = space->space.RGBtoXYZf[8] / D50_WHITE_REF_Zf;
long i = 0;
long remainder;
float yr = m_1_0 * r + m_1_1 * g + m_1_2 * b;
float zr = m_2_0 * r + m_2_1 * g + m_2_2 * b;
- float fx = xr > LAB_EPSILON ? _cbrtf (xr) : (LAB_KAPPA * xr + 16.0f) / 116.0f;
- float fy = yr > LAB_EPSILON ? _cbrtf (yr) : (LAB_KAPPA * yr + 16.0f) / 116.0f;
- float fz = zr > LAB_EPSILON ? _cbrtf (zr) : (LAB_KAPPA * zr + 16.0f) / 116.0f;
+ float fx = xr > LAB_EPSILONf ? _cbrtf (xr) : (LAB_KAPPAf * xr + 16.0f) / 116.0f;
+ float fy = yr > LAB_EPSILONf ? _cbrtf (yr) : (LAB_KAPPAf * yr + 16.0f) / 116.0f;
+ float fz = zr > LAB_EPSILONf ? _cbrtf (zr) : (LAB_KAPPAf * zr + 16.0f) / 116.0f;
float L = 116.0f * fy - 16.0f;
float A = 500.0f * (fx - fy);