diff options
author | Marti Maria <info@littlecms.com> | 2017-09-07 19:35:20 +0200 |
---|---|---|
committer | Marti Maria <info@littlecms.com> | 2017-09-07 19:35:20 +0200 |
commit | aeaaa78e66b6c0c0bf0a1d2614efbaf4a522e66b (patch) | |
tree | 0ac1110358e55b08c4e3413db84d8978aa0a6fed | |
parent | 9efd86709a02496bdb7d482ce50c5ffe79c32eac (diff) | |
download | lcms2-aeaaa78e66b6c0c0bf0a1d2614efbaf4a522e66b.tar.gz |
QuickFloor doesn't work on some extreme conditions
So let's use the real function
-rw-r--r-- | src/cmsintrp.c | 12 |
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; |