From 4ef5b85f9cdc13c3f0364abe8c2e93fb26522d24 Mon Sep 17 00:00:00 2001
From: Paul Miller <>
Date: Tue, 12 Mar 2013 11:47:40 +0000
Subject: [PATCH 2/2] EvalSegmentedFn

Fix EvalSegmentedFn for case where a sampled segment does not cover a
domain of length 1 (i.e. x1 - x0 != 1.0)
---
 src/cmsgamma.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/cmsgamma.c b/src/cmsgamma.c
index 5676f27..faad3e3 100644
--- a/src/cmsgamma.c
+++ b/src/cmsgamma.c
@@ -515,7 +515,7 @@ cmsFloat64Number EvalSegmentedFn(const cmsToneCurve *g, cmsFloat64Number R)
             // Type == 0 means segment is sampled
             if (g ->Segments[i].Type == 0) {
 
-                cmsFloat32Number R1 = (cmsFloat32Number) (R - g ->Segments[i].x0);
+                cmsFloat32Number R1 = (cmsFloat32Number) (R - g ->Segments[i].x0) / (g ->Segments[i].x1 - g ->Segments[i].x0);
                 cmsFloat32Number Out;
 
                 // Setup the table (TODO: clean that)
-- 
1.7.7.5 (Apple Git-26)

