summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarti Maria <info@littlecms.com>2017-09-07 19:35:20 +0200
committerMarti Maria <info@littlecms.com>2017-09-07 19:35:20 +0200
commitaeaaa78e66b6c0c0bf0a1d2614efbaf4a522e66b (patch)
tree0ac1110358e55b08c4e3413db84d8978aa0a6fed
parent9efd86709a02496bdb7d482ce50c5ffe79c32eac (diff)
downloadlcms2-aeaaa78e66b6c0c0bf0a1d2614efbaf4a522e66b.tar.gz
QuickFloor doesn't work on some extreme conditions
So let's use the real function
-rw-r--r--src/cmsintrp.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/cmsintrp.c b/src/cmsintrp.c
index ec126f5..e44ab3e 100644
--- a/src/cmsintrp.c
+++ b/src/cmsintrp.c
@@ -472,9 +472,9 @@ void TrilinearInterpFloat(const cmsFloat32Number Input[],
py = fclamp(Input[1]) * p->Domain[1];
pz = fclamp(Input[2]) * p->Domain[2];
- x0 = (int) _cmsQuickFloor(px); fx = px - (cmsFloat32Number) x0;
- y0 = (int) _cmsQuickFloor(py); fy = py - (cmsFloat32Number) y0;
- z0 = (int) _cmsQuickFloor(pz); fz = pz - (cmsFloat32Number) z0;
+ x0 = (int) floor(px); fx = px - (cmsFloat32Number) x0; // We need full floor funcionality here
+ y0 = (int) floor(py); fy = py - (cmsFloat32Number) y0;
+ z0 = (int) floor(pz); fz = pz - (cmsFloat32Number) z0;
X0 = p -> opta[2] * x0;
X1 = X0 + (fclamp(Input[0]) >= 1.0 ? 0 : p->opta[2]);
@@ -616,9 +616,9 @@ void TetrahedralInterpFloat(const cmsFloat32Number Input[],
py = fclamp(Input[1]) * p->Domain[1];
pz = fclamp(Input[2]) * p->Domain[2];
- x0 = (int) _cmsQuickFloor(px); rx = (px - (cmsFloat32Number) x0);
- y0 = (int) _cmsQuickFloor(py); ry = (py - (cmsFloat32Number) y0);
- z0 = (int) _cmsQuickFloor(pz); rz = (pz - (cmsFloat32Number) z0);
+ x0 = (int) floor(px); rx = (px - (cmsFloat32Number) x0); // We need full floor functionality here
+ y0 = (int) floor(py); ry = (py - (cmsFloat32Number) y0);
+ z0 = (int) floor(pz); rz = (pz - (cmsFloat32Number) z0);
X0 = p -> opta[2] * x0;