diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2024-03-14 11:06:30 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2024-03-14 20:22:33 +0100 |
commit | 59d1ab57da78745d5b7f89d284d82588080300f5 (patch) | |
tree | c00fb3c3bc7fd164557d3320eb49df67265c4128 /src/gui/painting | |
parent | 5f516b24426bd6e28035d9e3291903f817d9d9f1 (diff) |
Strength reduction: div -> mul
Replace all divisions by constant with multiplications of its inverse
Change-Id: I05aa0631e8117e7d42da0eaa30077cd230caa919
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/gui/painting')
-rw-r--r-- | src/gui/painting/qcolormatrix_p.h | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/gui/painting/qcolormatrix_p.h b/src/gui/painting/qcolormatrix_p.h index d10346577f..c2ecd4617d 100644 --- a/src/gui/painting/qcolormatrix_p.h +++ b/src/gui/painting/qcolormatrix_p.h @@ -74,29 +74,29 @@ public: constexpr QColorVector ref = D50(); constexpr float eps = 0.008856f; constexpr float kap = 903.3f; - float xr = x / ref.x; - float yr = y / ref.y; - float zr = z / ref.z; + float xr = x * (1.f / ref.x); + float yr = y * (1.f / ref.y); + float zr = z * (1.f / ref.z); float fx, fy, fz; if (xr > eps) fx = fastCbrt(xr); else - fx = (kap * xr + 16.f) / 116.f; + fx = (kap * xr + 16.f) * (1.f / 116.f); if (yr > eps) fy = fastCbrt(yr); else - fy = (kap * yr + 16.f) / 116.f; + fy = (kap * yr + 16.f) * (1.f / 116.f); if (zr > eps) fz = fastCbrt(zr); else - fz = (kap * zr + 16.f) / 116.f; + fz = (kap * zr + 16.f) * (1.f / 116.f); const float L = 116.f * fy - 16.f; const float a = 500.f * (fx - fy); const float b = 200.f * (fy - fz); // We output Lab values that has been scaled to 0.0->1.0 values, see also labToXyz. - return QColorVector(L / 100.f, (a + 128.f) / 255.f, (b + 128.f) / 255.f); + return QColorVector(L * (1.f / 100.f), (a + 128.f) * (1.f / 255.f), (b + 128.f) * (1.f / 255.f)); } QColorVector labToXyz() const @@ -110,23 +110,23 @@ public: const float a = (y * 255.f) - 128.f; const float b = (z * 255.f) - 128.f; // From here is official Lab->XYZ conversion: - float fy = (L + 16.f) / 116.f; - float fx = fy + (a / 500.f); - float fz = fy - (b / 200.f); + float fy = (L + 16.f) * (1.f / 116.f); + float fx = fy + (a * (1.f / 500.f)); + float fz = fy - (b * (1.f / 200.f)); float xr, yr, zr; if (fx * fx * fx > eps) xr = fx * fx * fx; else - xr = (116.f * fx - 16) / kap; + xr = (116.f * fx - 16) * (1.f / kap); if (L > (kap * eps)) yr = fy * fy * fy; else - yr = L / kap; + yr = L * (1.f / kap); if (fz * fz * fz > eps) zr = fz * fz * fz; else - zr = (116.f * fz - 16) / kap; + zr = (116.f * fz - 16) * (1.f / kap); xr = xr * ref.x; yr = yr * ref.y; |